[Pkg-mediawiki-commits] r343 - in mediawiki-extensions/branches/experimental: . debian dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/CategoryTree dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/LanguageSelector dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/News dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Poem dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/ext.cite dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/FootNote dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/PageCSS dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Polyglot dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser dist/mediawiki-extensions-collection/usr/share/doc/mediawiki-extensions/collection dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/collection dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js dist/mediawiki-extensions-confirmedit/usr/share/doc/mediawiki-extensions/confirmedit dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit dist/mediawiki-extensions-geshi/usr/share/doc/mediawiki-extensions/geshi dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons dist/mediawiki-extensions-openid/var/lib/mediawiki/maintenance/mediawiki-extensions/openid

Thorsten Glaser tg at alioth.debian.org
Fri Jun 29 14:46:20 UTC 2012


Author: tg
Date: 2012-06-29 14:46:19 +0000 (Fri, 29 Jun 2012)
New Revision: 343

Added:
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeCatTreeParserTests.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/ExtendedParamsExample.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/RELEASE-NOTES
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/convertTests.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/stringFunctionTests.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.magic.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.css
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ja
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/ext.cite/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/ext.cite/ext.cite.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.css
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.css
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki_body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Convert.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions_body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser_body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/renameUserCleanup.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.hooks.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.session.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.suggest.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/CollectionCore.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/Open_book.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/collapse.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/disabled.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/down.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/expand.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/green-button-back.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/red-button-back.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/remove.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/show.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-accept.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-add.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-book_open.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-cancel.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-help.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-remove.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-wand.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/trans.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/up.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.css
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/check_load_from_localstorage.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/collection.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/jstorage.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/suggest.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/doc/mediawiki-extensions/confirmedit/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Captcha.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/CaptchaStore.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEditHooks.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/HTMLCaptchaField.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ext.confirmedit.asirra.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/recaptchalib.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.local.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/README.OpenID-mediawiki-extension
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/DatabaseConnection.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/MemcachedStore.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenIDProvider.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDDashboard.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.pg.sql
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.sql
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_multiple_key_index_user_openid_user.sql
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_uoi_user_registration.sql
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-drop_non_multiple_key_index_uoi_user.sql
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-uoi_user-not-unique.sql
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/aol_large.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/blogger_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/claimid_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/flickr_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/google_large.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/livejournal_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/myopenid_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/openid-inputicon.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/openid_large.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/verisign_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/vidoop_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/vox_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/wordpress_small.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/yahoo_large.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid-plain.css
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.css
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.js
Removed:
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/collection/json2.js
Modified:
   mediawiki-extensions/branches/experimental/debian/changelog
   mediawiki-extensions/branches/experimental/debian/mediawiki-extensions-base.links
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/CategoryTree/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeParserTests.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/LanguageSelector/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/CHANGELOG
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/News/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/funcsParserTests.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/testExpr.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Poem/poemParserTests.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryPageSubclass.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreeFunctions.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreePage.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite_body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite_body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ar
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-arz
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-de
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fi
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fr
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-he
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-hu
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-id
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-arab
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cn
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cyrl
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-kz
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-latn
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-tr
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-lt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-nl
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-oc
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ru
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-sq
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hans
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hant
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/FootNote/Footnote.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap_body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/desc-20.png
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/desc.svg
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.classes.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.hooks.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.js
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.page.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/NewsRenderer.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/PageCSS/PageCSS.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Expr.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.magic.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Polyglot/Polyglot.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/RenameUserJob.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/SpecialRenameuser.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/doc/mediawiki-extensions/collection/README.txt
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.templates.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/captcha.py
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/doc/mediawiki-extensions/geshi/README
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.class.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAutoAuthentication.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/TODO
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.alias.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.hooks.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.i18n.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.setup.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenID.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDConvert.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDLogin.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDServer.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDXRDS.body.php
   mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/var/lib/mediawiki/maintenance/mediawiki-extensions/openid/optionToTable.php
   mediawiki-extensions/branches/experimental/svn-revisions
Log:
indiscriminately update the upstream code (no code review done)


Modified: mediawiki-extensions/branches/experimental/debian/changelog
===================================================================
--- mediawiki-extensions/branches/experimental/debian/changelog	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/debian/changelog	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,8 +2,9 @@
 
   * Target MediaWiki 1.19 (currently in experimental)
   * Replace courtesy copy of libjs-json in mw-e-collection
+  * Update extension code
 
- -- Thorsten Glaser <tg at mirbsd.de>  Wed, 06 Jun 2012 18:08:18 +0200
+ -- Thorsten Glaser <tg at mirbsd.de>  Fri, 29 Jun 2012 16:45:42 +0200
 
 mediawiki-extensions (2.6) unstable; urgency=low
 

Modified: mediawiki-extensions/branches/experimental/debian/mediawiki-extensions-base.links
===================================================================
--- mediawiki-extensions/branches/experimental/debian/mediawiki-extensions-base.links	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/debian/mediawiki-extensions-base.links	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,35 +1,35 @@
+usr/share/mediawiki-extensions/base/CategoryTree var/lib/mediawiki/extensions/CategoryTree
+usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.php etc/mediawiki-extensions/extensions-available/CategoryTree.php
 usr/share/mediawiki-extensions/base/Cite var/lib/mediawiki/extensions/Cite
+usr/share/mediawiki-extensions/base/Cite/Cite.php etc/mediawiki-extensions/extensions-available/Cite.php
 usr/share/mediawiki-extensions/base/Cite/SpecialCite.php etc/mediawiki-extensions/extensions-available/SpecialCite.php
-usr/share/mediawiki-extensions/base/Cite/Cite.php etc/mediawiki-extensions/extensions-available/Cite.php
+usr/share/mediawiki-extensions/base/CreateBox var/lib/mediawiki/extensions/CreateBox
+usr/share/mediawiki-extensions/base/CreateBox/CreateBox.php etc/mediawiki-extensions/extensions-available/CreateBox.php
+usr/share/mediawiki-extensions/base/FootNote var/lib/mediawiki/extensions/FootNote
+usr/share/mediawiki-extensions/base/FootNote/Footnote.php etc/mediawiki-extensions/extensions-available/Footnote.php
+usr/share/mediawiki-extensions/base/ImageMap var/lib/mediawiki/extensions/ImageMap
+usr/share/mediawiki-extensions/base/ImageMap/ImageMap.php etc/mediawiki-extensions/extensions-available/ImageMap.php
 usr/share/mediawiki-extensions/base/InputBox var/lib/mediawiki/extensions/InputBox
 usr/share/mediawiki-extensions/base/InputBox/InputBox.php etc/mediawiki-extensions/extensions-available/InputBox.php
+usr/share/mediawiki-extensions/base/Interwiki var/lib/mediawiki/extensions/Interwiki
+usr/share/mediawiki-extensions/base/Interwiki/SpecialInterwiki.php etc/mediawiki-extensions/extensions-available/SpecialInterwiki.php
+usr/share/mediawiki-extensions/base/LanguageSelector var/lib/mediawiki/extensions/LanguageSelector
+usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.php etc/mediawiki-extensions/extensions-available/LanguageSelector.php
+usr/share/mediawiki-extensions/base/NewUserNotif var/lib/mediawiki/extensions/NewUserNotif
+usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.php etc/mediawiki-extensions/extensions-available/NewUserNotif.php
+usr/share/mediawiki-extensions/base/NewestPages var/lib/mediawiki/extensions/NewestPages
+usr/share/mediawiki-extensions/base/NewestPages/NewestPages.php etc/mediawiki-extensions/extensions-available/NewestPages.php
+usr/share/mediawiki-extensions/base/News var/lib/mediawiki/extensions/News
+usr/share/mediawiki-extensions/base/News/News.php etc/mediawiki-extensions/extensions-available/News.php
+usr/share/mediawiki-extensions/base/PageCSS var/lib/mediawiki/extensions/PageCSS
+usr/share/mediawiki-extensions/base/PageCSS/PageCSS.php etc/mediawiki-extensions/extensions-available/PageCSS.php
+usr/share/mediawiki-extensions/base/ParserFunctions var/lib/mediawiki/extensions/ParserFunctions
+usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.php etc/mediawiki-extensions/extensions-available/ParserFunctions.php
 usr/share/mediawiki-extensions/base/Poem var/lib/mediawiki/extensions/Poem
 usr/share/mediawiki-extensions/base/Poem/Poem.php etc/mediawiki-extensions/extensions-available/Poem.php
-usr/share/mediawiki-extensions/base/ParserFunctions var/lib/mediawiki/extensions/ParserFunctions
-usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.php etc/mediawiki-extensions/extensions-available/ParserFunctions.php
-usr/share/mediawiki-extensions/base/PageCSS var/lib/mediawiki/extensions/PageCSS
-usr/share/mediawiki-extensions/base/PageCSS/PageCSS.php etc/mediawiki-extensions/extensions-available/PageCSS.php
-usr/share/mediawiki-extensions/base/FootNote var/lib/mediawiki/extensions/FootNote
-usr/share/mediawiki-extensions/base/FootNote/Footnote.php etc/mediawiki-extensions/extensions-available/Footnote.php
-usr/share/mediawiki-extensions/base/NewestPages var/lib/mediawiki/extensions/NewestPages
-usr/share/mediawiki-extensions/base/NewestPages/NewestPages.php etc/mediawiki-extensions/extensions-available/NewestPages.php
+usr/share/mediawiki-extensions/base/Polyglot var/lib/mediawiki/extensions/Polyglot
+usr/share/mediawiki-extensions/base/Polyglot/Polyglot.php etc/mediawiki-extensions/extensions-available/Polyglot.php
 usr/share/mediawiki-extensions/base/Renameuser var/lib/mediawiki/extensions/Renameuser
 usr/share/mediawiki-extensions/base/Renameuser/SpecialRenameuser.php etc/mediawiki-extensions/extensions-available/SpecialRenameuser.php
-usr/share/mediawiki-extensions/base/CategoryTree var/lib/mediawiki/extensions/CategoryTree
-usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.php etc/mediawiki-extensions/extensions-available/CategoryTree.php
-usr/share/mediawiki-extensions/base/News var/lib/mediawiki/extensions/News
-usr/share/mediawiki-extensions/base/News/News.php etc/mediawiki-extensions/extensions-available/News.php
 usr/share/mediawiki-extensions/base/RSS_Reader var/lib/mediawiki/extensions/RSS_Reader
 usr/share/mediawiki-extensions/base/RSS_Reader/RSSReader.php etc/mediawiki-extensions/extensions-available/RSSReader.php
-usr/share/mediawiki-extensions/base/LanguageSelector var/lib/mediawiki/extensions/LanguageSelector
-usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.php etc/mediawiki-extensions/extensions-available/LanguageSelector.php
-usr/share/mediawiki-extensions/base/Polyglot var/lib/mediawiki/extensions/Polyglot
-usr/share/mediawiki-extensions/base/Polyglot/Polyglot.php etc/mediawiki-extensions/extensions-available/Polyglot.php
-usr/share/mediawiki-extensions/base/NewUserNotif var/lib/mediawiki/extensions/NewUserNotif
-usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.php etc/mediawiki-extensions/extensions-available/NewUserNotif.php
-usr/share/mediawiki-extensions/base/CreateBox var/lib/mediawiki/extensions/CreateBox
-usr/share/mediawiki-extensions/base/CreateBox/CreateBox.php etc/mediawiki-extensions/extensions-available/CreateBox.php
-usr/share/mediawiki-extensions/base/ImageMap var/lib/mediawiki/extensions/ImageMap
-usr/share/mediawiki-extensions/base/ImageMap/ImageMap.php etc/mediawiki-extensions/extensions-available/ImageMap.php
-usr/share/mediawiki-extensions/base/Interwiki var/lib/mediawiki/extensions/Interwiki
-usr/share/mediawiki-extensions/base/Interwiki/SpecialInterwiki.php etc/mediawiki-extensions/extensions-available/SpecialInterwiki.php

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/CategoryTree/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/CategoryTree/README	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/CategoryTree/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -16,4 +16,3 @@
 
 Instructions on installing and using this extension are available at
 <http://www.mediawiki.org/wiki/Extension:CategoryTree>
-

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeCatTreeParserTests.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeCatTreeParserTests.txt	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeCatTreeParserTests.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,25 @@
+# Force the test runner to ensure the extension is loaded
+!! hooks
+ref
+references
+categorytree
+!! endhooks
+
+!! test 
+Bug 20748 - <references /> doesn't work after category tree in some cases
+!! input
+<ref>ref</ref>
+
+<categorytree showcount=on>Articles tagged for deletion and rescue</categorytree>
+<references />
+!! result
+<p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
+</p>
+<div class=" CategoryTreeTag" data-ct-mode="0" data-ct-options="{&quot;mode&quot;:0,&quot;hideprefix&quot;:20,&quot;showcount&quot;:true,&quot;namespaces&quot;:false}"><div class="CategoryTreeSection"><div class="CategoryTreeItem"><span class="CategoryTreeEmptyBullet">[<b>×</b>] </span> <a class="CategoryTreeLabel  CategoryTreeLabelNs14 new CategoryTreeLabelCategory" href="/index.php?title=Category:Articles_tagged_for_deletion_and_rescue&action=edit&redlink=1">Articles tagged for deletion and rescue</a>‎ <span title="Contains 0 subcategories, 0 pages, and 0 files" dir="ltr">(empty)</span></div>
+		<div class="CategoryTreeChildren" style="display:block"><i class="CategoryTreeNotice">no subcategories</i></div></div>
+		</div>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">ref</span>
+</li></ol>
+
+!! end
+

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeParserTests.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeParserTests.txt	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Cite/citeParserTests.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -9,7 +9,7 @@
 !! input
 Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref>
 !! result
-<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
 <br /><strong class="error">Cite error: <code><ref></code> tags exist, but no <code><references/></code> tag was found</strong>
 !! end
@@ -21,9 +21,10 @@
 
 <references/>
 !! result
-<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li></ol>
 
 !! end
 
@@ -42,9 +43,10 @@
 
 <references/>
 !! result
-<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> A <i>simple</i> template.</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">A <i>simple</i> template.</span>
+</li></ol>
 
 !! end
 
@@ -55,9 +57,10 @@
 
 <references/>
 !! result
-<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> {{simple template}}</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">{{simple template}}</span>
+</li></ol>
 
 !! end
 
@@ -93,9 +96,10 @@
 
 <references/>
 !! result
-<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>Templating<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Text</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">Text</span>
+</li></ol>
 
 !! end
 
@@ -108,18 +112,17 @@
 
 <references/>
 !! result
-<p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
-<table class="gallery" cellspacing="0" cellpadding="0">
-	<tr>
-		<td><div class="gallerybox" style="width: 155px;">
-			<div class="thumb" style="padding: 66px 0; width: 150px;"><div style="margin-left: auto; margin-right: auto; width: 120px;"><a href="/wiki/File:Foobar.jpg" class="image" title="Foobar.jpg"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" border="0" /></a></div></div>
+<ul class="gallery">
+		<li class="gallerybox" style="width: 155px"><div style="width: 155px">
+			<div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div>
 			<div class="gallerytext">
 			</div>
-		</div></td>
-	</tr>
-</table>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> one</li></ol>
+		</div></li>
+</ul>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">one</span>
+</li></ol>
 
 !! end
 
@@ -128,7 +131,7 @@
 !! input
 {{REVISIONID}}<ref>elite</ref>
 !! result
-<p>1337<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+<p>1337<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p>
 <br /><strong class="error">Cite error: <code><ref></code> tags exist, but no <code><references/></code> tag was found</strong>
 !! end
@@ -151,10 +154,11 @@
 
 <references/>
 !! result
-<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
-</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
+<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0">[1]</a></sup>
+</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1" title="">1.1</a></sup> content</li></ol>
+<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1">1.1</a></sup> <span class="reference-text">content</span>
+</li></ol>
 
 !! end
 
@@ -167,10 +171,11 @@
 
 <references/>
 !! result
-<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
-</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
+<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0">[1]</a></sup>
+</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1" title="">1.1</a></sup> 0</li></ol>
+<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1">1.1</a></sup> <span class="reference-text">0</span>
+</li></ol>
 
 !! end
 
@@ -183,10 +188,11 @@
 
 <references/>
 !! result
-<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
-</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0" title="">[1]</a></sup>
+<p><sup id="cite_ref-blank_0-0" class="reference"><a href="#cite_note-blank-0">[1]</a></sup>
+</p><p><sup id="cite_ref-blank_0-1" class="reference"><a href="#cite_note-blank-0">[1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1" title="">1.1</a></sup> 1</li></ol>
+<ol class="references"><li id="cite_note-blank-0">↑ <sup><a href="#cite_ref-blank_0-0">1.0</a></sup> <sup><a href="#cite_ref-blank_0-1">1.1</a></sup> <span class="reference-text">1</span>
+</li></ol>
 
 !! end
 
@@ -199,13 +205,16 @@
 
 <references />
 !! result
-<p><sup id="cite_ref-test123test_0-0" class="reference"><a href="#cite_note-test123test-0" title="">[1]</a></sup>
-<sup id="cite_ref-123test_1-0" class="reference"><a href="#cite_note-123test-1" title="">[2]</a></sup>
-<sup id="cite_ref-test123_2-0" class="reference"><a href="#cite_note-test123-2" title="">[3]</a></sup>
+<p><sup id="cite_ref-test123test_0-0" class="reference"><a href="#cite_note-test123test-0">[1]</a></sup>
+<sup id="cite_ref-123test_1-0" class="reference"><a href="#cite_note-123test-1">[2]</a></sup>
+<sup id="cite_ref-test123_2-0" class="reference"><a href="#cite_note-test123-2">[3]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-test123test-0"><a href="#cite_ref-test123test_0-0" title="">↑</a> One</li>
-<li id="cite_note-123test-1"><a href="#cite_ref-123test_1-0" title="">↑</a> Two</li>
-<li id="cite_note-test123-2"><a href="#cite_ref-test123_2-0" title="">↑</a> Three</li></ol>
+<ol class="references"><li id="cite_note-test123test-0"><a href="#cite_ref-test123test_0-0">↑</a> <span class="reference-text">One</span>
+</li>
+<li id="cite_note-123test-1"><a href="#cite_ref-123test_1-0">↑</a> <span class="reference-text">Two</span>
+</li>
+<li id="cite_note-test123-2"><a href="#cite_ref-test123_2-0">↑</a> <span class="reference-text">Three</span>
+</li></ol>
 
 !! end
 
@@ -222,29 +231,26 @@
 
 <ref name="blankwithnoreference" />
 
-<references>I'm a references with something to say!</references>
-
 <references name="quasit" />
 
 <references />
 !! result
 <p><strong class="error">Cite error: Invalid <code><ref></code> tag;
 name cannot be a simple integer. Use a descriptive title</strong>
-</p><p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
+</p><p><sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
 </p><p><strong class="error">Cite error: Invalid <code><ref></code> tag;
 refs with no content must have a name</strong>
-</p><p><sup id="cite_ref-bar_1-0" class="reference"><a href="#cite_note-bar-1" title="">[2]</a></sup>
-</p><p><sup id="cite_ref-blankwithnoreference_2-0" class="reference"><a href="#cite_note-blankwithnoreference-2" title="">[3]</a></sup>
+</p><p><sup id="cite_ref-bar_1-0" class="reference"><a href="#cite_note-bar-1">[2]</a></sup>
+</p><p><sup id="cite_ref-blankwithnoreference_2-0" class="reference"><a href="#cite_note-blankwithnoreference-2">[3]</a></sup>
 </p><p><strong class="error">Cite error: Invalid <code><references></code> tag;
-no input is allowed. Use <code><references /></code></strong>
-</p><p><strong class="error">Cite error: Invalid <code><references></code> tag;
 parameter "group" is allowed only.
 Use <code><references /></code>, or <code><references group="..." /></code></strong>
 </p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Also zero, but differently! (Normal ref)</li>
-<li id="cite_note-bar"><a href="#cite_ref-bar_0" title="">↑</a> <strong class="error">Cite error: Invalid <code><ref></code> tag;
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">Also zero, but differently! (Normal ref)</span>
+</li>
+<li id="cite_note-bar"><a href="#cite_ref-bar_0">↑</a> <strong class="error">Cite error: Invalid <code><ref></code> tag;
 no text was provided for refs named <code>bar</code></strong></li>
-<li id="cite_note-blankwithnoreference"><a href="#cite_ref-blankwithnoreference_0" title="">↑</a> <strong class="error">Cite error: Invalid <code><ref></code> tag;
+<li id="cite_note-blankwithnoreference"><a href="#cite_ref-blankwithnoreference_0">↑</a> <strong class="error">Cite error: Invalid <code><ref></code> tag;
 no text was provided for refs named <code>blankwithnoreference</code></strong></li></ol>
 
 !! end
@@ -259,11 +265,13 @@
 <references/>
 <references group=note/>
 !! result
-<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup>
-Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1" title="">[note 1]</a></sup>
+<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup>
+Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[note 1]</a></sup>
 </p>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
-<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1" title="">↑</a> Proceeds of Rockology, vol. XXI</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li></ol>
+<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1">↑</a> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li></ol>
 
 !! end
 
@@ -277,14 +285,107 @@
 ;notes
 <references group="注" />
 !! result
-<p>AAA<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[参 1]</a></sup>BBB<sup id="cite_ref-1" class="reference"><a href="#cite_note-1" title="">[注 1]</a></sup>CCC<sup id="cite_ref-2" class="reference"><a href="#cite_note-2" title="">[参 2]</a></sup>
+<p>AAA<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[参 1]</a></sup>BBB<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[注 1]</a></sup>CCC<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[参 2]</a></sup>
 </p>
 <dl><dt>refs
 </dt></dl>
-<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">↑</a> ref a</li>
-<li id="cite_note-2"><a href="#cite_ref-2" title="">↑</a> ref c</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">ref a</span>
+</li>
+<li id="cite_note-2"><a href="#cite_ref-2">↑</a> <span class="reference-text">ref c</span>
+</li></ol>
 <dl><dt>notes
 </dt></dl>
-<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1" title="">↑</a> note b</li></ol>
+<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1">↑</a> <span class="reference-text">note b</span>
+</li></ol>
 
 !! end
+
+!! test
+<ref> defined in <references>
+!! input
+<ref name="foo"/>
+
+<references>
+<ref name="foo">BAR</ref>
+</references>
+!! result
+<p><sup id="cite_ref-foo_0-0" class="reference"><a href="#cite_note-foo-0">[1]</a></sup>
+</p>
+<ol class="references"><li id="cite_note-foo-0"><a href="#cite_ref-foo_0-0">↑</a> <span class="reference-text">BAR</span>
+</li></ol>
+
+!! end
+
+!! test
+<ref> defined in <references> called with #tag
+!! input
+<ref name="foo"/>
+
+{{#tag:references|
+<ref name="foo">BAR</ref>
+}}
+!! result
+<p><sup id="cite_ref-foo_0-0" class="reference"><a href="#cite_note-foo-0">[1]</a></sup>
+</p>
+<ol class="references"><li id="cite_note-foo-0"><a href="#cite_ref-foo_0-0">↑</a> <span class="reference-text">BAR</span>
+</li></ol>
+
+!! end
+
+!! test
+<ref> defined in <references> error conditions
+!! input
+<ref name="foo" group="2"/>
+
+<references group="2">
+<ref name="foo"/>
+<ref name="unused">BAR</ref>
+<ref name="foo" group="1">bad group</ref>
+<ref>BAR BAR</ref>
+</references>
+!! result
+<p><sup id="cite_ref-foo_0-0" class="reference"><a href="#cite_note-foo-0">[2 1]</a></sup>
+</p>
+<ol class="references"><li id="cite_note-foo"><a href="#cite_ref-foo_0">↑</a> <strong class="error">Cite error: Invalid <code><ref></code> tag;
+no text was provided for refs named <code>foo</code></strong></li></ol>
+<p><strong class="error">Cite error: <code><ref></code> tag with name "unused" defined in <code><references></code> is not used in prior text.</strong><br />
+<strong class="error">Cite error: <code><ref></code> tag in <code><references></code> has conflicting group attribute "1".</strong><br />
+<strong class="error">Cite error: <code><ref></code> tag defined in <code><references></code> has no name attribute.</strong>
+</p>
+!! end
+
+!! article
+MediaWiki:cite_link_label_group-klingon
+!! text
+wa' cha' wej loS vagh jav Soch chorgh Hut wa'maH
+!! endarticle
+
+!! test
+<ref> with custom group link
+!! input
+Wikipedia rocks!<ref group="klingon">Proceeds of Rockology, vol. XXI</ref>
+
+<references group="klingon"/>
+!! result
+<p>Wikipedia rocks!<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[wa']</a></sup>
+</p>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">Proceeds of Rockology, vol. XXI</span>
+</li></ol>
+
+!! end
+
+!! test
+Bug 31374 regression check: nested strip items
+!! input
+{{#tag:ref|note<ref>reference</ref>|group=Note}}
+<references group=Note />
+<references />
+!! result
+<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[Note 1]</a></sup>
+</p>
+<ol class="references"><li id="cite_note-1"><a href="#cite_ref-1">↑</a> <span class="reference-text">note<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup></span>
+</li></ol>
+<ol class="references"><li id="cite_note-0"><a href="#cite_ref-0">↑</a> <span class="reference-text">reference</span>
+</li></ol>
+
+!! end

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/LanguageSelector/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/LanguageSelector/README	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/LanguageSelector/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -74,8 +74,8 @@
    content. This is the default, but it looks quite ugly without extra CSS
    rules applied.
 ** LANGUAGE_SELECTOR_IN_TOOLBOX: inject a dropdown box at the bottom of the
-   toolbox in the sidebar. This only works with the MonoBook skin, or skins
-   explicitly supporting the MonoBookTemplateToolboxEnd hook.
+   toolbox in the sidebar. This doesn't work in all skins, mostly in skin
+   MonoBook, or skins explicitly supporting the SkinTemplateToolboxEnd hook.
 ** LANGUAGE_SELECTOR_AS_PORTLET: inject the language selector as a portlet
    in the sidebar, similar to how interlanguage-links are shown. 
    Works with MonoBook skin, may also work with some SkinTemplate-based skins.

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/ExtendedParamsExample.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/ExtendedParamsExample.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/ExtendedParamsExample.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Example Extension to provide additional parameters to the subject line and message body for NewUserNotif
+ *
+ * @file
+ * @author Jack D. Pond <jack.pond at psitex.com>
+ * @ingroup Extensions
+ * @copyright 2011 Jack D. pond
+ * @url http://www.mediawiki.org/wiki/Manual:Extensions
+ * @licence GNU General Public Licence 2.0 or later
+ */
+
+if (!defined('MEDIAWIKI')) die('Not an entry point.');
+
+$wgExtensionFunctions[] = 'efNewUserNotifSetupExtension';
+$wgExtensionCredits['other'][] = array(
+	'path' => __FILE__,
+	'name' => 'AdditionalNewUserNotifParams',
+	'author' => array( 'Jack D. Pond' ),
+	'version' => '1.0',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:NewUserNotif',
+);
+
+/**
+ * Set up hooks for Additional NewUserNotif Parameters
+ *
+*/
+function efNewUserNotifSetupExtension() {
+	global $wgHooks;
+	$wgHooks['NewUserNotifSubject'][] =  'efNewUserNotifSubject';
+	$wgHooks['NewUserNotifBody'][] = 'efNewUserNotifBody';
+	return true;
+}
+
+
+/**
+ * This function creates additional parameters which can be used in the email notification Subject Line for new users
+ *
+ * @param $callobj NewUserNotifier object (this).
+ * @param $subjectLine String: Returns the message subject line
+ * @param $siteName Site Name of the Wiki
+ * @param $recipient Email/User Name of the Message Recipient.
+ * @param $user User name of the added user
+ * @return  true
+ */
+
+function efNewUserNotifSubject ( $callobj , $subjectLine , $siteName , $recipient , $user )
+{
+	$subjectLine = wfMsgForContent(
+				'newusernotifsubj',
+				$siteName,										// $1 Site Name
+				$user->getName()								// $2 User Name
+	);
+	return ( true );
+}
+
+/**
+ * This function creates additional parameters which can be used in the email notification message body for new users
+ *
+ * @param $callobj NewUserNotifier object (this).
+ * @param $messageBody String: Returns the message body.
+ * @param $siteName Site Name of the Wiki
+ * @param $recipient Email/User Name of the Message Recipient.
+ * @param $user User name of the added user
+ * @return  true
+ */
+
+function efNewUserNotifBody ( $callobj , $messageBody , $siteName , $recipient , $user )
+{
+	global $wgContLang;
+	$messageBody = wfMsgForContent(
+				'newusernotifbody',
+				$recipient,										// $1 Recipient (of notification message) 
+				$user->getName(),								// $2 User Name
+				$siteName,										// $3 Site Name
+				$wgContLang->timeAndDate( wfTimestampNow() ),	// $4 Time and date stamp
+				$wgContLang->date( wfTimestampNow() ),			// $5 Date Stamp
+				$wgContLang->time( wfTimestampNow() ),			// $6 Time Stamp
+				$user->getEmail(),			                    // $7 email
+				rawurlencode($siteName),						// $8 Site name encoded for email message link
+				wfGetIP(),										// $9 Submitter's IP Address
+				rawurlencode($user->getName())					// $10 User Name encoded for email message link
+	);
+	return ( true );
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/README	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -76,4 +76,4 @@
 
 == 6. Feedback ==
 
-All feedback, bug reports, etc. welcome via <robchur at gmail.com>.
\ No newline at end of file
+All feedback, bug reports, etc. welcome via <robchur at gmail.com>.

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/RELEASE-NOTES
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/RELEASE-NOTES	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewUserNotif/RELEASE-NOTES	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,15 @@
+NEW USER EMAIL NOTIFICATION EXTENSION
+
+	Version 1.5
+	© 2006-2007 Rob Church, maintained by jpond
+
+This is free software licenced under the GNU General Public Licence. Please
+see http://www.gnu.org/copyleft/gpl.html for further details, including the
+full text and terms of the license.
+
+=== Summary of changes in 1.5.1 ===
+
+* Added two hooks that allow for the customization of both messages and parameters passed to generate the messages
+* Added an example extension to the distribution, ExtendedParamsExample.php
+* Updated Documentation - http://www.mediawiki.org/w/index.php?title=Extension:New_User_Email_Notification
+* Added RELEASE-NOTES to distribution

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/CHANGELOG
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/CHANGELOG	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/CHANGELOG	2012-06-29 14:46:19 UTC (rev 343)
@@ -7,11 +7,20 @@
 
 The main changes between versions are listed here:
 
-27/08/2006
-Version 1.6
-	* Allow user to exclude redirects from results
-	* Minor tweaks to HTML
+01/06/2009
+Version 1.9
+	* Modernisized. 
 
+01/06/2009
+Version 1.8
+	* Make PostgreSQL compatible. Patch contributed by Hans Spaans.
+
+11/01/2008
+Version 1.7
+	* use wfLoadExtensionMessages for NewestPages
+	* remove pre MW1.11 backward compat
+	* delay message loading
+
 17/08/2006
 Version 1.5
 	* Wrap links to redirect pages in <span class="allpagesredirect">

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/README	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/NewestPages/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,7 +1,7 @@
 NEWEST PAGES EXTENSION
 
-	Version 1.7
-	© 2006 Rob Church
+	Version 1.9
+	© 2006-2009 Rob Church
 
 This is free software licensed under the GNU General Public Licence. Please
 see http://www.gnu.org/copyleft/gpl.html for further details, including the
@@ -19,10 +19,10 @@
 
 == 1. Introduction ==
 
-The Newest Pages extension adds an includable special page to MediaWiki which
-produces an ordered list of the newest pages in the wiki, up to a specified
-limit. The page can be accessed as a regular special page, or included within
-other pages as a form of dynamic list.
+The Newest Pages extension adds an includable special page to MediaWiki version
+1.12 and up which produces an ordered list of the newest pages in the wiki, up
+to a specified limit. The page can be accessed as a regular special page, or
+included within other pages as a form of dynamic list.
 
 == 2. Installing the extension ==
 
@@ -30,7 +30,7 @@
 NewestPages.php and NewestPages.i18n.php into your MediaWiki extensions directory.
 Then edit your LocalSettings.php file and add the following line:
 
-	require_once( 'extensions/NewestPages.php' );
+	require_once( 'extensions/NewestPages/NewestPages.php' );
 
 Save the file to complete the installation.
 
@@ -96,4 +96,4 @@
 page, I decided to clean up the code, give the page a more generalised function,
 and release it.
 
-Feedback welcomed at <robchur at gmail.com> as usual.
\ No newline at end of file
+Feedback welcomed at <robchur at gmail.com> as usual.

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/News/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/News/README	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/News/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -217,4 +217,4 @@
 * $wgNewsFeedUserPattern: this defines the pattern used to generate author
 names in feed items. In the pattern, $1 is replaced by the user name. To 
 e.g. generate email-addresses at your site as author names, use
-  $wgNewsFeedUserPattern = '$1@' . $wgServerName;
+  $wgNewsFeedUserPattern = '$1 at example.com';

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/README	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,21 @@
+ParserFunctions v1.4.0
+
+1. Licensing
+2. How to install
+3. Tests
+
+1. Licensing
+Licensed under GNU GPL. See COPYING for more license information.
+
+2. How to install
+   a. Download this tarbell and extract the contents to $IP/extensions/ParserFunctions/
+      where $IP is your root wiki install
+   b. Add 'require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php");' to the 
+      end of your LocalSettings (without the single quotes)
+   c. Enjoy
+
+3. Tests
+ParserFunctions ships with two tests
+- Parser tests. These get added to the main parser tests, see there for docs
+- Expression tests. These are designed to test the math-related functions
+  See testExpr.php

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/convertTests.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/convertTests.txt	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/convertTests.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,231 @@
+!! functionhooks
+convert
+!! endfunctionhooks
+
+!! test
+Simple conversion
+!! input
+{{#convert: 10 m | km }}
+!!result
+<p>0.01 kilometres
+</p>
+!! end
+
+!! test
+Position and formatting of numbers and units
+!! input
+*{{#convert: 10  m | km }}
+*{{#convert: 10m | km }}
+*{{#convert: 10 km | m }}
+*{{#convert: 10-km | m }}
+*{{#convert: 10E2 km | m }}
+*{{#convert: 10E-2 km | m }}
+*{{#convert: 10.0E2 km | m }}
+*{{#convert: 10.0E2.5 km | m }}
+!! result
+<ul><li>0.01  kilometres
+</li><li>0.01kilometres
+</li><li>10,000 metres
+</li><li>10,000-metres
+</li><li>1,000,000 metres
+</li><li>100 metres
+</li><li>1,000,000 metres
+</li><li>1,000,000.5,000 metres
+</li></ul>
+
+!! end
+
+!! test
+Precision 1
+!! input
+*{{#convert: 10 m | km }}
+*{{#convert: 11 m | km }}
+*{{#convert: 12 m | km }}
+*{{#convert: 13 m | km }}
+*{{#convert: 14 m | km }}
+*{{#convert: 15 m | km }}
+*{{#convert: 16 m | km }}
+*{{#convert: 17 m | km }}
+*{{#convert: 18 m | km }}
+*{{#convert: 19 m | km }}
+*{{#convert: 20 m | km }}
+!! result
+<ul><li>0.01 kilometres
+</li><li>0.011 kilometres
+</li><li>0.012 kilometres
+</li><li>0.013 kilometres
+</li><li>0.014 kilometres
+</li><li>0.015 kilometres
+</li><li>0.016 kilometres
+</li><li>0.017 kilometres
+</li><li>0.018 kilometres
+</li><li>0.019 kilometres
+</li><li>0.02 kilometres
+</li></ul>
+
+!! end
+
+!! test
+Precision 2
+!! input
+*{{#convert: 10.0 m | km }}
+*{{#convert: 10.1 m | km }}
+*{{#convert: 10.2 m | km }}
+*{{#convert: 10.3 m | km }}
+*{{#convert: 10.4 m | km }}
+*{{#convert: 10.5 m | km }}
+*{{#convert: 10.6 m | km }}
+*{{#convert: 10.7 m | km }}
+!! result
+<ul><li>0.0100 kilometres
+</li><li>0.0101 kilometres
+</li><li>0.0102 kilometres
+</li><li>0.0103 kilometres
+</li><li>0.0104 kilometres
+</li><li>0.0105 kilometres
+</li><li>0.0106 kilometres
+</li><li>0.0107 kilometres
+</li></ul>
+
+!! end
+
+!! test
+String interpolation
+!! input
+{{#convert: 25, 26, 27, 28, 29, and 30 km }}
+!! result
+<p>25,000, 26,000, 27,000, 28,000, 29,000, and 30,000 metres
+</p>
+!! end
+
+!! test
+Precision 3
+!! input
+{{#convert: 25, 26, 27, 28, 29, and 30 miles }}
+!! result
+<p>40,000, 42,000, 43,000, 45,000, 47,000, and 50,000 metres
+</p>
+!! end
+
+!! test
+Precision 4
+!! input
+{{#convert:35000, 35E3, 35.0E3, 350E2, 3.500E4, 35000E0, 350000E-1 m | km }}
+!! result
+<p>35, 35, 35.0, 35, 35.00, 35, 35 kilometres
+</p>
+!! end
+
+!! test
+#sourceunit
+!!input
+*{{#convert: 25 | #sourceunit = km }}
+*{{#convert: 25 | #sourceunit=km }}
+*{{#convert: 25 | #sourceunit = km | #sourceunit = mm }}
+*{{#convert: 25 | #sourceunit = km | cm }}
+!! result
+<ul><li>25,000 metres
+</li><li>25,000 metres
+</li><li>0.025 metres
+</li><li>2,500,000 centimetres
+</li></ul>
+
+!! end
+
+!! test
+Precision overrides
+!!input
+*{{#convert: 1 mi | #dp = 0 }}
+*{{#convert: 1 mi | #dp=1 }}
+*{{#convert: 1 mi | #dp = -2 }}
+*{{#convert: 1 mi | #dp = 5 }}
+*{{#convert: 1 mi | #dp = -8 }}
+*{{#convert: 1 mi | #sf = 0 }}
+*{{#convert: 1 mi | #sf=1 }}
+*{{#convert: 1 mi | #sf = 3 }}
+*{{#convert: 1 mi | #sf = 5 }}
+*{{#convert: 1 mi | #sf = -8 }}
+!! result
+<ul><li>1,609 metres
+</li><li>1,609.3 metres
+</li><li>1,600 metres
+</li><li>1,609.344 metres
+</li><li>0 metres
+</li><li>2,000 metres
+</li><li>2,000 metres
+</li><li>1,610 metres
+</li><li>1,609.3 metres
+</li><li>2,000 metres
+</li></ul>
+
+!! end
+
+
+!! test
+Errors
+!! input
+*{{#convert: 25 | km }}
+*{{#convert: 25 foobars | mi }}
+*{{#convert: 25 mi | #sourceunit = foobar }}
+*{{#convert: 25 km | s }}
+*{{#convert: 25 km/Pa | m/Pa }}
+*{{#convert: 25 km/s/l }}
+*{{#convert: 25 km/m3 }}
+!! result
+<ul><li><strong class="error">Error: No source unit given.</strong>
+</li><li><strong class="error">Error: Unknown unit "foobars".</strong>
+</li><li><strong class="error">Error: Unknown unit "foobar".</strong>
+</li><li><strong class="error">Error: Cannot convert between units of "length" and "time".</strong>
+</li><li><strong class="error">Error: Invalid compound unit "length/pressure".</strong>
+</li><li><strong class="error">Error: Cannot parse double compound units like "km/s/l".</strong>
+</li><li><strong class="error">Error: Invalid compound unit "length/volume".</strong>
+</li></ul>
+
+!! end
+
+
+!! test
+#sourceunit = #targetunit
+!! input
+*{{#convert: 25 km | #targetunit = #sourceunit }}
+*{{#convert: 25 km | #sourceunit = #targetunit }}
+!! result
+<ul><li>25 kilometres
+</li><li>25 kilometres
+</li></ul>
+
+!! end
+
+!! test
+#language
+!! input
+*{{#convert: 10  m | km | #language=en-gb }}
+*{{#convert: 10m | km | #language = en }}
+*{{#convert: 10 km | m |#language=en}}
+*{{#convert: 10 Pa | mmHg | #language = fr }}
+!! result
+<ul><li>0.01  kilometres
+</li><li>0.01kilometers
+</li><li>10,000 meters
+</li><li>0.1 millimètre de mercure
+</li></ul>
+
+!! end
+
+!! test
+Case sensitivity
+!! input
+*{{#convert: 10 mm | m }}
+*{{#convert: 10 Mm | m }}
+*{{#convert: 10 km | Mm }}
+*{{#convert: 10 Pa | mmHg }}
+*{{#convert: 10 pa | mmHg  }}
+!! result
+<ul><li>0.01 metres
+</li><li>10,000,000 metres
+</li><li>0.01 megametres
+</li><li>0.1 millimetres of mercury
+</li><li><strong class="error">Error: Unknown unit "pa".</strong>
+</li></ul>
+
+!! end

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/funcsParserTests.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/funcsParserTests.txt	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/funcsParserTests.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -6,8 +6,23 @@
 
 # fixme: #time seems to be accepting input as local time, which strikes me as wrong
 
+!! article
+ParserFunctions page
+!! text
+A sample page so we can test ifexist.
+
+This used to be a Main Page, but that caused duplicate article
+warnings when running the normal tests at the same time.
+!! endarticle
+
+!! article
+File:Dionysos-Brunnen am Kölner Dom.jpg
+!! text
+blah blah
+!! endarticle
+
 !! test
-Input times should probably be UTC, not local time
+Input times are UTC, not local time
 !! input
 {{#time:c|15 January 2001}}
 !!result
@@ -41,3 +56,158 @@
 <p>2061
 </p>
 !! end
+
+!! test
+Explicitly specified timezone: UTC
+!! input
+{{#time:Y-m-d H:i| 2011-11-12 23:00 UTC }}
+!! result
+<p>2011-11-12 23:00
+</p>
+!! end
+
+!! test
+Explicitly specified timezone: Europe/Paris (UTC+1)
+!! input
+{{#time:Y-m-d H:i| 2011-11-12 23:00 Europe/Paris }}
+!! result
+<p>2011-11-12 22:00
+</p>
+!! end
+
+!! test
+Explicitly specified timezone: America/New_York (UTC-5)
+!! input
+{{#time:Y-m-d H:i| 2011-11-12 23:00 America/New_York }}
+!! result
+<p>2011-11-13 04:00
+</p>
+!! end
+
+!! test
+Explicitely specified output language (Dutch)
+!! input
+{{#time:d F Y|1988-02-28|nl}}
+!! result
+<p>28 februari 1988
+</p>
+!! end
+
+!! test
+Bug 19093: Default values don't fall through in switch
+!! input
+<{{#switch: foo | bar | #default = DEF }}>
+<{{#switch: foo | #default | bar = DEF }}>
+!! result
+<p><DEF>
+<DEF>
+</p>
+!! end
+
+!! test
+{{#ifexist}}
+!! input
+{{#ifexist:Media:Foobar.jpg|Found|Not found}}
+{{#ifexist:ParserFunctions page|Found|Not found}}
+{{#ifexist:Missing|Found|Not found}}
+!! result
+<p>Found
+Found
+Not found
+</p>
+!! end
+
+!! test
+#if
+!! input
+{{#if: | yes | no}}
+{{#if: string | yes | no}}
+{{#if:      | yes | no}}
+{{#if:
+
+
+| yes | no}}
+{{#if: 1==2 | yes | no}}
+{{#if: foo | yes }}
+{{#if: | yes }}(empty)
+{{#if: foo | | no}}(empty)
+{{#if: {{{1}}} | yes | no}}
+{{#if: {{{1|}}} | yes | no}}
+!! result
+<p>no
+yes
+no
+no
+yes
+yes
+(empty)
+(empty)
+yes
+no
+</p>
+!! end
+
+!! test
+#ifeq
+!!input
+{{#ifeq: 01 | 1 | yes | no}}
+{{#ifeq: 0 | -0 | yes | no}}
+{{#ifeq: foo | bar | yes | no}}
+{{#ifeq: foo | Foo | yes | no}}
+{{#ifeq: "01" | "1" | yes | no}}
+!! result
+<p>yes
+yes
+no
+no
+no
+</p>
+!! end
+
+!! test
+#iferror
+!!input
+{{#iferror: {{#expr: 1 + 2 }} | error | correct }}
+{{#iferror: {{#expr: 1 + X }} | error | correct }}
+{{#iferror: {{#expr: 1 + 2 }} | error }}
+{{#iferror: {{#expr: 1 + X }} | error }}
+{{#iferror: {{#expr: 1 + 2 }} }}
+{{#iferror: {{#expr: 1 + X }} }}empty
+!! result
+<p>correct
+error
+3
+error
+3
+empty
+</p>
+!! end
+
+
+!! test
+#ifexpr
+!! input
+{{#ifexpr: | yes | no}}
+{{#ifexpr: 1 > 0 | yes }}
+{{#ifexpr: 1 < 0 | yes }}empty
+{{#ifexpr: 1 > 0 | | no}}empty
+{{#ifexpr: 1 < 0 | | no}}
+{{#ifexpr: 1 > 0 }}empty
+!! result
+<p>no
+yes
+empty
+empty
+no
+empty
+</p>
+!! end
+
+!! test
+Bug 22866: #ifexpr should evaluate "-0" as false
+!! input
+{{#ifexpr: (-1)*0 | true | false }}
+!! result
+<p>false
+</p>
+!! end

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/stringFunctionTests.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/stringFunctionTests.txt	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/stringFunctionTests.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,32 @@
+# @todo expand
+!! functionhooks
+len
+!! endfunctionhooks
+
+!! test
+#len
+!! input
+{{#len:}}
+{{#len:0}}
+{{#len:test}}
+!!result
+<p>0
+1
+4
+</p>
+!! end
+
+!! test
+#urldecode
+!! input
+{{#urldecode:}}
+{{#urldecode:foo%20bar}}
+{{#urldecode:%D0%9C%D0%B5%D0%B4%D0%B8%D0%B0%D0%92%D0%B8%D0%BA%D0%B8}}
+{{#urldecode: some unescaped string}}
+!! result
+<p>foo bar
+МедиаВики
+some unescaped string
+</p>
+!! end
+

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/testExpr.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/testExpr.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/ParserFunctions/testExpr.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,30 +1,30 @@
 <?php
 
-require_once ( getenv('MW_INSTALL_PATH') !== false
-	? getenv('MW_INSTALL_PATH')."/maintenance/commandLine.inc"
+require_once ( getenv( 'MW_INSTALL_PATH' ) !== false
+	? getenv( 'MW_INSTALL_PATH' ) . "/maintenance/commandLine.inc"
 	: dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' );
 require( 'Expr.php' );
-	
+
 $tests = file( 'exprTests.txt' );
 
 $pass = $fail = 0;
 
 // Each test is on one line. The test must always evaluate to '1'.
 $parser = new ExprParser;
-foreach( $tests as $test ) {
-	$test = trim($test);
-	if ( in_string( ';', $test ) )
-		list($input,$expected) = explode(';', $test);
+foreach ( $tests as $test ) {
+	$test = trim( $test );
+	if ( strpos( $test, ';' ) !== false )
+		list( $input, $expected ) = explode( ';', $test );
 	else {
 		$input = $test;
 		$expected = 1;
 	}
-	
-	$expected = trim($expected);
-	$input = trim($input);
 
+	$expected = trim( $expected );
+	$input = trim( $input );
+
 	$result = $parser->doExpression( $input );
-	if ($result != $expected) {
+	if ( $result != $expected ) {
 		print
 			"FAILING test -- $input
  gave a final result of $result, instead of $expected.\n";
@@ -35,4 +35,4 @@
 	}
 }
 
-print "Passed $pass tests, failed $fail tests, out of a total of ".($pass+$fail)."\n";
\ No newline at end of file
+print "Passed $pass tests, failed $fail tests, out of a total of " . ( $pass + $fail ) . "\n";
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Poem/poemParserTests.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Poem/poemParserTests.txt	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/doc/mediawiki-extensions/base/Poem/poemParserTests.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -50,7 +50,7 @@
 !! result
 <div class="poem">
 <p><br />
-   test<br />
+   test<br />
 </p>
 </div>
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryPageSubclass.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryPageSubclass.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryPageSubclass.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,24 +1,27 @@
 <?php
 
 class CategoryTreeCategoryPage extends CategoryPage {
-	function closeShowCategory() {
-		global $wgOut, $wgRequest;
-		$from = $wgRequest->getVal( 'from' );
-		$until = $wgRequest->getVal( 'until' );
-
-		$viewer = new CategoryTreeCategoryViewer( $this->mTitle, $from, $until );
-		$wgOut->addHTML( $viewer->getHTML() );
-	}
+	protected $mCategoryViewerClass = 'CategoryTreeCategoryViewer';
 }
 
 class CategoryTreeCategoryViewer extends CategoryViewer {
 	var $child_cats;
 
+	/**
+	 * @var CategoryTree
+	 */
+	var $categorytree;
+
+	/**
+	 * @return CategoryTree
+	 */
 	function getCategoryTree() {
 		global $wgOut, $wgCategoryTreeCategoryPageOptions, $wgCategoryTreeForceHeaders;
 
-		if ( ! isset($this->categorytree) ) {
-			if ( !$wgCategoryTreeForceHeaders ) CategoryTree::setHeaders( $wgOut );
+		if ( !isset( $this->categorytree ) ) {
+			if ( !$wgCategoryTreeForceHeaders ) {
+				CategoryTree::setHeaders( $wgOut );
+			}
 
 			$this->categorytree = new CategoryTree( $wgCategoryTreeCategoryPageOptions );
 		}
@@ -28,21 +31,21 @@
 
 	/**
 	 * Add a subcategory to the internal lists
+	 * @param $cat Category
+	 * @param $sortkey
+	 * @param $pageLength
+	 * @return
 	 */
-	function addSubcategoryObject( $cat, $sortkey, $pageLength ) {
-		global $wgContLang, $wgOut, $wgRequest;
+	function addSubcategoryObject( Category $cat, $sortkey, $pageLength ) {
+		global $wgRequest;
 
 		$title = $cat->getTitle();
 
 		if ( $wgRequest->getCheck( 'notree' ) ) {
-			return parent::addSubcategoryObject( $cat, $sortkey, $pageLength );
+			parent::addSubcategoryObject( $cat, $sortkey, $pageLength );
+			return;
 		}
 
-		/*if ( ! $GLOBALS['wgCategoryTreeUnifiedView'] ) {
-			$this->child_cats[] = $cat;
-			return parent::addSubcategory( $cat, $sortkey, $pageLength );
-		}*/
-
 		$tree = $this->getCategoryTree();
 
 		$this->children[] = $tree->renderNodeInfo( $title, $cat );
@@ -56,7 +59,7 @@
 	}
 
 	function finaliseCategoryState() {
-		if( $this->flip ) {
+		if ( $this->flip ) {
 			$this->child_cats = array_reverse( $this->child_cats );
 		}
 		parent::finaliseCategoryState();

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.alias.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,407 @@
+<?php
+/**
+ * Aliases for Special:CategoryTree
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006-2008 Daniel Kinzler and others
+ * @license GNU General Public Licence 2.0 or later
+ */
+
+$specialPageAliases = array();
+
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'CategoryTree' => array( 'CategoryTree' ),
+);
+
+/** Afrikaans (Afrikaans) */
+$specialPageAliases['af'] = array(
+	'CategoryTree' => array( 'KategorieBoom' ),
+);
+
+/** Aragonese (Aragonés) */
+$specialPageAliases['an'] = array(
+	'CategoryTree' => array( 'Árbol_de_categorías' ),
+);
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
+	'CategoryTree' => array( 'شجرة_تصنيف' ),
+);
+
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'CategoryTree' => array( 'شجرة_تصنيف' ),
+);
+
+/** Bikol Central (Bikol Central) */
+$specialPageAliases['bcl'] = array(
+	'CategoryTree' => array( 'KahoyNinKategorya' ),
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬) */
+$specialPageAliases['be-tarask'] = array(
+	'CategoryTree' => array( 'Дрэва_катэгорыяў' ),
+);
+
+/** Bulgarian (Български) */
+$specialPageAliases['bg'] = array(
+	'CategoryTree' => array( 'Дърво_на_категориите' ),
+);
+
+/** Breton (Brezhoneg) */
+$specialPageAliases['br'] = array(
+	'CategoryTree' => array( 'GwezennadurRummad' ),
+);
+
+/** Bosnian (Bosanski) */
+$specialPageAliases['bs'] = array(
+	'CategoryTree' => array( 'StabloKategorija' ),
+);
+
+/** Catalan (Català) */
+$specialPageAliases['ca'] = array(
+	'CategoryTree' => array( 'Categories en arbre', 'Arbre de categories' ),
+);
+
+/** Czech (Česky) */
+$specialPageAliases['cs'] = array(
+	'CategoryTree' => array( 'Strom_kategorií' ),
+);
+
+/** Danish (Dansk) */
+$specialPageAliases['da'] = array(
+	'CategoryTree' => array( 'Kategoritræ' ),
+);
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = array(
+	'CategoryTree' => array( 'Kategorienbaum', 'Kategoriebaum' ),
+);
+
+/** Lower Sorbian (Dolnoserbski) */
+$specialPageAliases['dsb'] = array(
+	'CategoryTree' => array( 'Bom_kategorijow' ),
+);
+
+/** Greek (Ελληνικά) */
+$specialPageAliases['el'] = array(
+	'CategoryTree' => array( 'ΔέντροΚατηγορίας' ),
+);
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = array(
+	'CategoryTree' => array( 'Kategorio-arbo' ),
+);
+
+/** Spanish (Español) */
+$specialPageAliases['es'] = array(
+	'CategoryTree' => array( 'ÁrbolDeCategorías', 'Árbol_de_categorías' ),
+);
+
+/** Estonian (Eesti) */
+$specialPageAliases['et'] = array(
+	'CategoryTree' => array( 'Kategooriapuu' ),
+);
+
+/** Basque (Euskara) */
+$specialPageAliases['eu'] = array(
+	'CategoryTree' => array( 'KategoriaZuhaitza' ),
+);
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = array(
+	'CategoryTree' => array( 'درخت_رده' ),
+);
+
+/** Finnish (Suomi) */
+$specialPageAliases['fi'] = array(
+	'CategoryTree' => array( 'Luokkapuu' ),
+);
+
+/** French (Français) */
+$specialPageAliases['fr'] = array(
+	'CategoryTree' => array( 'ArbreCatégorie', 'ArbreCategorie', 'Arbre_catégorie' ),
+);
+
+/** Franco-Provençal (Arpetan) */
+$specialPageAliases['frp'] = array(
+	'CategoryTree' => array( 'Structura_d\'âbro_de_les_catègories', 'StructuraDÂbroDeLesCatègories' ),
+);
+
+/** Galician (Galego) */
+$specialPageAliases['gl'] = array(
+	'CategoryTree' => array( 'Árbore_de_categorías' ),
+);
+
+/** Swiss German (Alemannisch) */
+$specialPageAliases['gsw'] = array(
+	'CategoryTree' => array( 'Kategoriebaum' ),
+);
+
+/** Gujarati (ગુજરાતી) */
+$specialPageAliases['gu'] = array(
+	'CategoryTree' => array( 'શ્રેણીવૃક્ષ' ),
+);
+
+/** Hebrew (עברית) */
+$specialPageAliases['he'] = array(
+	'CategoryTree' => array( 'עץ_קטגוריות' ),
+);
+
+/** Upper Sorbian (Hornjoserbsce) */
+$specialPageAliases['hsb'] = array(
+	'CategoryTree' => array( 'Kategorijowy_štom' ),
+);
+
+/** 湘语 (湘语) */
+$specialPageAliases['hsn'] = array(
+	'CategoryTree' => array( '类别树' ),
+);
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'CategoryTree' => array( 'NivoKategori' ),
+);
+
+/** Hungarian (Magyar) */
+$specialPageAliases['hu'] = array(
+	'CategoryTree' => array( 'Kategóriafa' ),
+);
+
+/** Interlingua (Interlingua) */
+$specialPageAliases['ia'] = array(
+	'CategoryTree' => array( 'Arbore_de_categorias' ),
+);
+
+/** Indonesian (Bahasa Indonesia) */
+$specialPageAliases['id'] = array(
+	'CategoryTree' => array( 'Pohon_kategori', 'PohonKategori' ),
+);
+
+/** Ido (Ido) */
+$specialPageAliases['io'] = array(
+	'CategoryTree' => array( 'KategorioArboro' ),
+);
+
+/** Italian (Italiano) */
+$specialPageAliases['it'] = array(
+	'CategoryTree' => array( 'AlberoCategorie' ),
+);
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = array(
+	'CategoryTree' => array( 'カテゴリツリー' ),
+);
+
+/** Georgian (ქართული) */
+$specialPageAliases['ka'] = array(
+	'CategoryTree' => array( 'კატეგორიის_ხე' ),
+);
+
+/** Khmer (ភាសាខ្មែរ) */
+$specialPageAliases['km'] = array(
+	'CategoryTree' => array( 'មែកធាងចំណាត់ថ្នាក់ក្រុម' ),
+);
+
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'CategoryTree' => array( '분류트리' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'CategoryTree' => array( 'Saachjruppeboum' ),
+);
+
+/** Kurdish (Kurdî) */
+$specialPageAliases['ku'] = array(
+	'CategoryTree' => array( 'Dara_kategoriyan' ),
+);
+
+/** Latin (Latina) */
+$specialPageAliases['la'] = array(
+	'CategoryTree' => array( 'Categoriarum arbor' ),
+);
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = array(
+	'CategoryTree' => array( 'Árvole_de_Kateggorías' ),
+);
+
+/** Luxembourgish (Lëtzebuergesch) */
+$specialPageAliases['lb'] = array(
+	'CategoryTree' => array( 'Struktur_vun_de_Kategorien' ),
+);
+
+/** Malagasy (Malagasy) */
+$specialPageAliases['mg'] = array(
+	'CategoryTree' => array( 'Hazon-tsokajy' ),
+);
+
+/** Macedonian (Македонски) */
+$specialPageAliases['mk'] = array(
+	'CategoryTree' => array( 'ДрвоНаКатегории' ),
+);
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'CategoryTree' => array( 'വർഗ്ഗവൃക്ഷം' ),
+);
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = array(
+	'CategoryTree' => array( 'वर्गवृक्ष' ),
+);
+
+/** Malay (Bahasa Melayu) */
+$specialPageAliases['ms'] = array(
+	'CategoryTree' => array( 'Salasilah_kategori' ),
+);
+
+/** Maltese (Malti) */
+$specialPageAliases['mt'] = array(
+	'CategoryTree' => array( 'SiġraKategorija' ),
+);
+
+/** Erzya (Эрзянь) */
+$specialPageAliases['myv'] = array(
+	'CategoryTree' => array( 'КатегорияньЧувто' ),
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$specialPageAliases['nb'] = array(
+	'CategoryTree' => array( 'Kategoritre' ),
+);
+
+/** Low German (Plattdüütsch) */
+$specialPageAliases['nds'] = array(
+	'CategoryTree' => array( 'Kategorieboom' ),
+);
+
+/** Nedersaksisch (Nedersaksisch) */
+$specialPageAliases['nds-nl'] = array(
+	'CategoryTree' => array( 'Kategorieboom' ),
+);
+
+/** Dutch (Nederlands) */
+$specialPageAliases['nl'] = array(
+	'CategoryTree' => array( 'Categorieboom' ),
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬) */
+$specialPageAliases['nn'] = array(
+	'CategoryTree' => array( 'Kategoritre' ),
+);
+
+/** Occitan (Occitan) */
+$specialPageAliases['oc'] = array(
+	'CategoryTree' => array( 'ArbreCategoria', 'Arbre_categoria' ),
+);
+
+/** Polish (Polski) */
+$specialPageAliases['pl'] = array(
+	'CategoryTree' => array( 'Drzewo_kategorii' ),
+);
+
+/** Pashto (پښتو) */
+$specialPageAliases['ps'] = array(
+	'CategoryTree' => array( 'د_وېشنيزو_ونه' ),
+);
+
+/** Portuguese (Português) */
+$specialPageAliases['pt'] = array(
+	'CategoryTree' => array( 'Árvore_de_categorias' ),
+);
+
+/** Brazilian Portuguese (Português do Brasil) */
+$specialPageAliases['pt-br'] = array(
+	'CategoryTree' => array( 'Árvore_de_categorias', 'Árvore_de_categoria' ),
+);
+
+/** Romanian (Română) */
+$specialPageAliases['ro'] = array(
+	'CategoryTree' => array( 'Arborele_categoriilor' ),
+);
+
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = array(
+	'CategoryTree' => array( 'वर्गवृक्ष:' ),
+);
+
+/** Sinhala (සිංහල) */
+$specialPageAliases['si'] = array(
+	'CategoryTree' => array( 'ප්‍රවර්ගරුක' ),
+);
+
+/** Slovak (Slovenčina) */
+$specialPageAliases['sk'] = array(
+	'CategoryTree' => array( 'StromKategórií' ),
+);
+
+/** Swedish (Svenska) */
+$specialPageAliases['sv'] = array(
+	'CategoryTree' => array( 'Kategoriträd' ),
+);
+
+/** Swahili (Kiswahili) */
+$specialPageAliases['sw'] = array(
+	'CategoryTree' => array( 'SafuyaJamii' ),
+);
+
+/** Telugu (తెలుగు) */
+$specialPageAliases['te'] = array(
+	'CategoryTree' => array( 'వర్గవృక్షం' ),
+);
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = array(
+	'CategoryTree' => array( 'หมวดหมู่แบบผังต้นไม้' ),
+);
+
+/** Tagalog (Tagalog) */
+$specialPageAliases['tl'] = array(
+	'CategoryTree' => array( 'Puno ng kaurian' ),
+);
+
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = array(
+	'CategoryTree' => array( 'KategoriAğacı', 'KategoriHiyerarşisi', 'UlamAğacı', 'UlamHiyerarşisi' ),
+);
+
+/** Vèneto (Vèneto) */
+$specialPageAliases['vec'] = array(
+	'CategoryTree' => array( 'ÀlbaroCategorie' ),
+);
+
+/** Veps (Vepsän kel') */
+$specialPageAliases['vep'] = array(
+	'CategoryTree' => array( 'KategorijoidenPu' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = array(
+	'CategoryTree' => array( 'Cây_thể_loại' ),
+);
+
+/** Yiddish (ייִדיש) */
+$specialPageAliases['yi'] = array(
+	'CategoryTree' => array( 'קאטעגאריע_בוים' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'CategoryTree' => array( '分类树' ),
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$specialPageAliases['zh-hant'] = array(
+	'CategoryTree' => array( '分類樹' ),
+);
+
+/** Chinese (Taiwan) (‪中文(台灣)‬) */
+$specialPageAliases['zh-tw'] = array(
+	'CategoryTree' => array( '分類樹' ),
+);
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.magic.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.magic.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.magic.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,177 @@
+<?php
+/**
+ * Internationalisation file for extension CategoryTree.
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006-2008 Daniel Kinzler
+ * @license GNU General Public Licence 2.0 or later
+ */
+
+$magicWords = array();
+
+/** English (English) */
+$magicWords['en'] = array(
+	'categorytree' => array( 0, 'categorytree' ),
+);
+
+/** Afrikaans (Afrikaans) */
+$magicWords['af'] = array(
+	'categorytree' => array( 0, 'kategorieboom', 'categorytree' ),
+);
+
+/** Arabic (العربية) */
+$magicWords['ar'] = array(
+	'categorytree' => array( 0, 'شجرة_تصنيف' ),
+);
+
+/** Egyptian Spoken Arabic (مصرى) */
+$magicWords['arz'] = array(
+	'categorytree' => array( 0, 'شجرة_تصنيف', 'categorytree' ),
+);
+
+/** Breton (Brezhoneg) */
+$magicWords['br'] = array(
+	'categorytree' => array( 0, 'GwezennadurRummad' ),
+);
+
+/** Chechen (Нохчийн) */
+$magicWords['ce'] = array(
+	'categorytree' => array( 0, 'кадегардит', 'деревокатегорий', 'categorytree' ),
+);
+
+/** German (Deutsch) */
+$magicWords['de'] = array(
+	'categorytree' => array( 0, 'kategorienbaum', 'kategoriebaum' ),
+);
+
+/** Esperanto (Esperanto) */
+$magicWords['eo'] = array(
+	'categorytree' => array( 0, 'kategoriarbo' ),
+);
+
+/** Spanish (Español) */
+$magicWords['es'] = array(
+	'categorytree' => array( 0, 'árboldecategorías', 'arboldecategorias' ),
+);
+
+/** Estonian (Eesti) */
+$magicWords['et'] = array(
+	'categorytree' => array( 0, 'kategooriapuu' ),
+);
+
+/** Igbo (Igbo) */
+$magicWords['ig'] = array(
+	'categorytree' => array( 0, 'óshíshíébéonọr', 'categorytree' ),
+);
+
+/** Italian (Italiano) */
+$magicWords['it'] = array(
+	'categorytree' => array( 0, 'alberocategorie' ),
+);
+
+/** Japanese (日本語) */
+$magicWords['ja'] = array(
+	'categorytree' => array( 0, 'カテゴリツリー' ),
+);
+
+/** Korean (한국어) */
+$magicWords['ko'] = array(
+	'categorytree' => array( 0, '분류트리' ),
+);
+
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬) */
+$magicWords['ku-latn'] = array(
+	'categorytree' => array( 0, 'dara_kategoriyan' ),
+);
+
+/** Ladino (Ladino) */
+$magicWords['lad'] = array(
+	'categorytree' => array( 0, 'árvoledekateggorías', 'árboldecategorías', 'arboldecategorias', 'categorytree' ),
+);
+
+/** Malagasy (Malagasy) */
+$magicWords['mg'] = array(
+	'categorytree' => array( 0, 'karazantsokajy', 'categorytree' ),
+);
+
+/** Macedonian (Македонски) */
+$magicWords['mk'] = array(
+	'categorytree' => array( 0, 'стеблонакатегории' ),
+);
+
+/** Malayalam (മലയാളം) */
+$magicWords['ml'] = array(
+	'categorytree' => array( 0, 'വർഗ്ഗവൃക്ഷം' ),
+);
+
+/** Marathi (मराठी) */
+$magicWords['mr'] = array(
+	'categorytree' => array( 0, 'वर्गवृक्ष', 'categorytree' ),
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$magicWords['nb'] = array(
+	'categorytree' => array( 0, 'kategoritre' ),
+);
+
+/** Nedersaksisch (Nedersaksisch) */
+$magicWords['nds-nl'] = array(
+	'categorytree' => array( 0, 'kategorieboom', 'categorieboom' ),
+);
+
+/** Dutch (Nederlands) */
+$magicWords['nl'] = array(
+	'categorytree' => array( 0, 'categorieboom' ),
+);
+
+/** Polish (Polski) */
+$magicWords['pl'] = array(
+	'categorytree' => array( 0, 'drzewokategorii' ),
+);
+
+/** Russian (Русский) */
+$magicWords['ru'] = array(
+	'categorytree' => array( 0, 'деревокатегорий' ),
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬) */
+$magicWords['sr-ec'] = array(
+	'categorytree' => array( 0, 'стаблокатегорије', 'стабло_категорије' ),
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬) */
+$magicWords['sr-el'] = array(
+	'categorytree' => array( 0, 'stablokategorije', 'stablo_kategorije' ),
+);
+
+/** Swedish (Svenska) */
+$magicWords['sv'] = array(
+	'categorytree' => array( 0, 'kategoriträd', 'categorytree' ),
+);
+
+/** Turkish (Türkçe) */
+$magicWords['tr'] = array(
+	'categorytree' => array( 0, 'kategorihiyerarşisi', 'kategoriağacı', 'ulamhiyerarşisi', 'ulamağacı' ),
+);
+
+/** Tatar (Cyrillic script) (Татарча) */
+$magicWords['tt-cyrl'] = array(
+	'categorytree' => array( 0, 'төркемнәр_шәҗәрәсе' ),
+);
+
+/** Ukrainian (Українська) */
+$magicWords['uk'] = array(
+	'categorytree' => array( 0, 'деревокатегорій', 'деревокатегорий', 'categorytree' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$magicWords['vi'] = array(
+	'categorytree' => array( 0, 'câythểloại' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$magicWords['zh-hans'] = array(
+	'categorytree' => array( 0, '分类树' ),
+);
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -37,8 +37,12 @@
 	'categorytree-empty-bullet'     => '[<b>×</b>]', # do not translate or duplicate this message to other languages
 	'categorytree-page-bullet'      => ' ', # do not translate or duplicate this message to other languages
 
-	'categorytree-member-counts'    => 'contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, and {{PLURAL:$3|1 file|$3 files}}', # $1=subcategories, $2=subpages, $3=files, $4=total, $5=shown-in-tree
-	'categorytree-member-num'    => '($5)', # do not translate or duplicate this message to other languages
+	'categorytree-member-counts'    => 'Contains {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, and {{PLURAL:$3|1 file|$3 files}}', # $1=subcategories, $2=subpages, $3=files, $4=total, $5=shown-in-tree
+	'categorytree-member-num'       => '($5)', # do not translate or duplicate this message to other languages
+	'categorytree-num-categories'   => '$1 C',
+	'categorytree-num-pages'        => '$1 P',
+	'categorytree-num-files'        => '$1 F',
+	'categorytree-num-empty'        => 'empty',
 
 	'categorytree-load'             => 'load',
 	'categorytree-loading'          => 'loading…',
@@ -52,13 +56,18 @@
 );
 
 /** Message documentation (Message documentation)
+ * @author Amire80
  * @author Aotake
+ * @author EugeneZelenko
  * @author Jon Harald Søby
  * @author Malafaya
+ * @author McDutchie
  * @author Meno25
  * @author Raimond Spekking
  * @author Raymond
  * @author Siebrand
+ * @author The Evil IP address
+ * @author Yekrats
  * @author Александр Сигачёв
  * @author פוילישער
  */
@@ -68,7 +77,7 @@
 
 Title for the CategoryPortlet, when shown in the side bar',
 	'categorytree-legend' => 'Legend of the fieldset around the input form of [[Special:Categorytree]].',
-	'categorytree-desc' => 'Short description of the CategoryTree extension, shown on [[Special:Version]]',
+	'categorytree-desc' => '{{desc}}',
 	'categorytree-header' => 'Header-text shown on [[Special:CategoryTree]]',
 	'categorytree-category' => '{{Identical|Category}}
 
@@ -82,16 +91,21 @@
 {{Identical|All pages}}',
 	'categorytree-collapse' => 'Tooltip for the "collapse" button',
 	'categorytree-expand' => 'Tooltip for the "expand" button',
-	'categorytree-member-counts' => 'Tooltip showing a detailed summary of subcategory member counts. Parameters: 
-* $1 = number of subcategories, 
-* $2 = number of pages (without subcategories and files), 
-* $3 = number of files, 
-* $4 = total number of members, 
-* $5 = members to be shown in the tree, depending on mode. 
-Use with { {PLURAL} }',
+	'categorytree-member-counts' => 'Tooltip showing a detailed summary of subcategory member counts. Parameters:
+* $1 = number of subcategories,
+* $2 = number of pages (without subcategories and files),
+* $3 = number of files,
+* $4 = total number of members,
+* $5 = members to be shown in the tree, depending on mode.
+Use with <nowiki>{{PLURAL}}</nowiki>',
+	'categorytree-num-categories' => 'Number of sub-categories in a category. The word "categories" should be abbreviated. Appears in brackets after a name of an empty category. This message supports PLURAL.',
+	'categorytree-num-pages' => 'Number of pages in a category. The word "pages" should be abbreviated. Appears in brackets after a name of an empty category. This message supports PLURAL.',
+	'categorytree-num-files' => 'Number of files in a category. The word "files" should be abbreviated.  Appears in brackets after a name of an empty category. This message supports PLURAL.',
+	'categorytree-num-empty' => 'The word "empty", as in "empty category". Appears in brackets after a name of an empty category.
+{{Identical|Empty}}',
 	'categorytree-load' => '{{Identical|Load}}
 
-Tooltip for the "expend" button, if the content was not yet loaded',
+Tooltip for the "expand" button, if the content was not yet loaded',
 	'categorytree-loading' => '{{Identical|Loading}}
 
 Status message shown while loading content',
@@ -104,6 +118,63 @@
 	'categorytree-retry' => 'Instruction to try again later',
 );
 
+/** Magyar (magázó) (Magyar (magázó))
+ * @author Dani
+ */
+$messages['hu-formal'] = array(
+	'categorytree-retry' => 'Várjon egy kicsit, majd próbálja újra!',
+);
+
+/** Emiliàn (Emiliàn)
+ * @author Reder
+ */
+$messages['egl'] = array(
+	'categorytree-portlet' => 'Categorie',
+	'categorytree-category' => 'Categorie:',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+);
+
+/** толышә зывон (толышә зывон)
+ * @author Гусейн
+ */
+$messages['tly'] = array(
+	'categorytree-portlet' => 'Категоријон',
+	'categorytree-category' => 'Категоријә:',
+	'categorytree-mode-all' => 'Һәммәј сәһифон',
+	'categorytree-load' => 'бо жәј',
+	'categorytree-no-subcategories' => 'категоријон жинтон ни',
+);
+
+/** Meänkieli (Meänkieli)
+ * @author Mestos
+ */
+$messages['fit'] = array(
+	'categorytree' => 'Luokkapuu',
+	'categorytree-portlet' => 'Luokat',
+	'categorytree-legend' => 'Näytä luokkapuu',
+	'categorytree-header' => 'Syötä alle luokka jonka haluat nähhä puumuoossa. Tämä toiminalisuus vaatii kehittynheen JavaScript-tuen, jota kuttuthaan AJAXiksi. Jos sulla on vanhaa selain, eli JavaScript ei ole päälä, tämä ominaisuus ei toimi',
+	'categorytree-category' => 'Luokka',
+	'categorytree-go' => 'Näytä puu',
+	'categorytree-parents' => 'Yläluokat',
+	'categorytree-mode-categories' => 'vain luokat',
+	'categorytree-mode-pages' => 'kaikki sivut kuvia lukhuun ottamatta',
+	'categorytree-mode-all' => 'kaikki sivut',
+	'categorytree-collapse' => 'piilota',
+	'categorytree-expand' => 'näytä',
+	'categorytree-member-counts' => 'sisältää {{PLURAL:$1|1 alaluokan|$1 alaluokkaa}}, {{PLURAL:$2|1 sivun|$2 sivua}} ja {{PLURAL:$3|1 tieoston|$3 tieostoa}}',
+	'categorytree-load' => 'näytä',
+	'categorytree-loading' => 'haethaan',
+	'categorytree-nothing-found' => 'ei mithään löyetty',
+	'categorytree-no-subcategories' => 'ei alaluokkia',
+	'categorytree-no-parent-categories' => 'ei yläluokkia',
+	'categorytree-no-pages' => 'ei sivuja eikä alaluokkia',
+	'categorytree-not-found' => 'Luokkaa <i>$1</i> ei löytyny',
+	'categorytree-error' => 'Prupleemia tieoitten lattaamisessa',
+	'categorytree-retry' => 'Oota vähän aikaa ja yritä uuesti',
+);
+
 /** Afrikaans (Afrikaans)
  * @author Arnobarnard
  * @author Naudefj
@@ -124,6 +195,10 @@
 	'categorytree-collapse' => 'vou toe',
 	'categorytree-expand' => 'vou oop',
 	'categorytree-member-counts' => 'bevat {{PLURAL:$1|een subkategorie|$1 subkategorieë}}, {{PLURAL:$2|een bladsy|$2 blaaie}} en {{PLURAL:$3|een lêer|$3 lêers}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 B',
+	'categorytree-num-files' => '$1 L',
+	'categorytree-num-empty' => 'leeg',
 	'categorytree-load' => 'laai',
 	'categorytree-loading' => 'laai tans',
 	'categorytree-nothing-found' => 'niks gevind nie',
@@ -143,7 +218,7 @@
 	'categorytree' => 'የመደቦች ዛፍ',
 	'categorytree-portlet' => 'መደቦች',
 	'categorytree-legend' => 'የመደቦች ዛፍ ለማየት',
-	'categorytree-header' => "[+] ተጭነው ንዑሱ-መደብ ይዘረጋል፣ [-] ተጭነው ደግሞ ይመልሳል። 
+	'categorytree-header' => "[+] ተጭነው ንዑሱ-መደብ ይዘረጋል፣ [-] ተጭነው ደግሞ ይመልሳል።
 
 በግራ በኩል ባለው ሳጥን ውስጥ የመደቡን ስም ዝም ብለው መጻፍ ይችላሉ። (የዚሁ ዊኪ መደብ ስሞች ለመመልከት፣ [[Special:Mostlinkedcategories|እዚህ ይጫኑ]]።) ከዚያ፥ ምን ያሕል ንዑስ-መደቦች እንዳሉበት ለማየት «ዛፉ ይታይ» የሚለውን ይጫኑ። በቀኝ በኩል ካለው ሳጥን 'all pages' ከመረጡ፥ በየመደቡ ውስጥ ያሉት መጣጥፎች በተጨማሪ ይታያሉ።
 
@@ -169,16 +244,20 @@
 	'categorytree-portlet' => 'Categorías',
 	'categorytree-legend' => "Amostar l'árbol de categorías",
 	'categorytree-desc' => "Traste basato en AJAX t'amostrar a [[Special:CategoryTree|estrutura de categorías]] d'una wiki",
-	'categorytree-header' => "Escriba un nombre de categoría ta beyer os suyos contenius en forma d'árbol. Pare cuenta que ista pachina requiere as funzions JavaScriptz abanzatas conoixitas como AJAX. Si tiene un nabegador antigo, u tiene desautibato JavaScript, a pachina no funzionará.",
+	'categorytree-header' => "Escriba un nombre de categoría ta veyer os suyos contenius en forma d'árbol. Pare cuenta que ista pachina requiere as funcions JavaScriptz abanzatas conoixitas como AJAX. Si tiene un navegador antigo, u tiene desactivato JavaScript, a pachina no funcionará.",
 	'categorytree-category' => 'Categoría:',
 	'categorytree-go' => "Amostrar l'Árbol",
 	'categorytree-parents' => 'Categorías mais',
 	'categorytree-mode-categories' => 'amostrar nomás categorías',
-	'categorytree-mode-pages' => 'pachinas pero no archibos',
+	'categorytree-mode-pages' => 'pachinas pero no ficheros',
 	'categorytree-mode-all' => 'todas as pachinas',
 	'categorytree-collapse' => 'amagar',
 	'categorytree-expand' => 'amostrar',
-	'categorytree-member-counts' => 'contiene {{PLURAL:$1|1 sucategoría|$1 subcategorías}}, {{PLURAL:$2|1 pachina|$2 pachinas}}, y {{PLURAL:$3|1 archibo|$3 archibos}}',
+	'categorytree-member-counts' => 'contiene {{PLURAL:$1|1 sucategoría|$1 subcategorías}}, {{PLURAL:$2|1 pachina|$2 pachinas}}, y {{PLURAL:$3|1 fichero|$3 ficheros}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vueda',
 	'categorytree-load' => 'cargar',
 	'categorytree-loading' => 'cargando',
 	'categorytree-nothing-found' => "No s'ha trobato cosa",
@@ -187,11 +266,14 @@
 	'categorytree-no-pages' => 'No bi ha articlos ni subcategorías',
 	'categorytree-not-found' => "Categoría ''$1'' no trobata",
 	'categorytree-error' => 'Error en cargar os datos',
-	'categorytree-retry' => 'Por fabor, aspere bels intes y prebe de nuebas.',
+	'categorytree-retry' => 'Por favor, aspere bels intes y prebe de nuevas.',
 );
 
 /** Arabic (العربية)
+ * @author AwamerT
  * @author Meno25
+ * @author OsamaK
+ * @author زكريا
  */
 $messages['ar'] = array(
 	'categorytree' => 'شجرة تصنيف',
@@ -207,10 +289,14 @@
 	'categorytree-mode-categories' => 'تصنيفات فقط',
 	'categorytree-mode-pages' => 'الصفحات ماعدا الملفات',
 	'categorytree-mode-all' => 'كل الصفحات',
-	'categorytree-collapse' => 'ضغط',
+	'categorytree-collapse' => 'اطو',
 	'categorytree-expand' => 'فرد',
 	'categorytree-member-counts' => 'يحتوي على {{PLURAL:$1|1 تصنيف فرعي|$1 تصنيف فرعي}}، {{PLURAL:$2|1 صفحة|$2 صفحة}}، و {{PLURAL:$3|1 ملف|$3 ملف}}',
-	'categorytree-load' => 'تحميل',
+	'categorytree-num-categories' => '$1 ت',
+	'categorytree-num-pages' => ' $1 ص',
+	'categorytree-num-files' => ' $1 م',
+	'categorytree-num-empty' => 'فارغ',
+	'categorytree-load' => 'حمل',
 	'categorytree-loading' => 'جاري التحميل',
 	'categorytree-nothing-found' => 'لم يتم العثور على شيء',
 	'categorytree-no-subcategories' => 'لا تصنيفات فرعية',
@@ -221,6 +307,24 @@
 	'categorytree-retry' => 'من فضلك انتظر لحظة وحاول مرة أخرى.',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'categorytree' => 'ܐܝܠܢܐ ܕܣܕܪܐ',
+	'categorytree-portlet' => 'ܣܕܪ̈ܐ',
+	'categorytree-legend' => 'ܚܘܝ ܐܝܠܢܐ ܕܣܘܕܪܐ',
+	'categorytree-category' => 'ܣܕܪܐ:',
+	'categorytree-go' => 'ܚܘܝ ܐܝܠܢܐ',
+	'categorytree-mode-categories' => 'ܣܕܪ̈ܐ ܒܠܚܘܕ',
+	'categorytree-mode-pages' => 'ܦܐܬܬ̈ܐ ܫܒܘܩ ܕܠܦܦ̈ܐ',
+	'categorytree-mode-all' => 'ܟܠ ܦܐܬܬ̈ܐ',
+	'categorytree-collapse' => 'ܐܟܪܟ',
+	'categorytree-expand' => 'ܪܘܚ',
+	'categorytree-no-subcategories' => 'ܠܝܬ ܣܕܪ̈ܐ ܦܪ̈ܥܝܐ',
+	'categorytree-not-found' => 'ܣܕܪܐ <i>$1</i> ܠܐ ܐܫܟܚܬ',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ghaly
  * @author Meno25
@@ -243,6 +347,9 @@
 	'categorytree-collapse' => 'اضغط',
 	'categorytree-expand' => 'اتوسع',
 	'categorytree-member-counts' => 'فيه {{PLURAL:$1|1 تصنيف فرعي|$1 تصنيف فرعي}}، {{PLURAL:$2|1 صفحة|$2 صفحة}}، و {{PLURAL:$3|1 ملف|$3 ملف}}',
+	'categorytree-num-categories' => '$1 ت',
+	'categorytree-num-pages' => ' $1 ص',
+	'categorytree-num-files' => ' $1 م',
 	'categorytree-load' => 'تحميل',
 	'categorytree-loading' => 'بيحمل',
 	'categorytree-nothing-found' => 'مالقيناش حاجة',
@@ -255,31 +362,36 @@
 );
 
 /** Assamese (অসমীয়া)
+ * @author Chaipau
+ * @author Gitartha.bordoloi
+ * @author Psneog
  * @author Rajuonline
  */
 $messages['as'] = array(
-	'categorytree' => 'শ্রেণীবৃক্ষ্য',
-	'categorytree-legend' => 'শ্রেণীবৃক্ষ্য দেখুৱাওক',
-	'categorytree-category' => 'শ্রেণী',
-	'categorytree-go' => 'বৃক্ষ্য দেখুৱাওক',
+	'categorytree' => 'শ্ৰেণীবৃক্ষ',
+	'categorytree-portlet' => 'শ্ৰেণী',
+	'categorytree-legend' => 'শ্ৰেণীবৃক্ষ দেখুৱাওক',
+	'categorytree-category' => 'শ্ৰেণী',
+	'categorytree-go' => 'বৃক্ষ দেখুৱাওক',
 	'categorytree-parents' => 'পালক',
-	'categorytree-mode-categories' => 'কেবল শ্রেণী',
-	'categorytree-mode-pages' => 'চিত্রবিহীন পৃষ্ঠাসমুহ',
+	'categorytree-mode-categories' => 'কেৱল শ্ৰেণী',
+	'categorytree-mode-pages' => 'ফাইল বাদে পৃষ্ঠাসমুহ',
 	'categorytree-mode-all' => 'সকলো পৃষ্ঠা',
 	'categorytree-collapse' => 'সৰু কৰক',
 	'categorytree-expand' => 'বহলাওক',
-	'categorytree-load' => 'লোড কৰক',
-	'categorytree-loading' => 'লোড কৰি থকা হৈছে...',
-	'categorytree-nothing-found' => 'একো পোৱা নগল',
-	'categorytree-no-subcategories' => 'কোনো উপশ্রেণী নাই',
-	'categorytree-no-pages' => 'কোনো পৃষ্ঠা বা উপশ্রেণী নাই',
-	'categorytree-not-found' => '<i>$1</i> শ্রেণীতো পোৱা নগল',
-	'categorytree-error' => 'তথ্য জমাবলৈ সমস্যা হৈছে',
-	'categorytree-retry' => 'অনুগ্রহ কৰি কিছু সময় অপেক্ষা কৰি তাৰ পিছত চেষ্টা কৰক।',
+	'categorytree-load' => "ল'ড কৰক",
+	'categorytree-loading' => "ল'ড কৰি থকা হৈছে...",
+	'categorytree-nothing-found' => "একো পোৱা নগ'ল",
+	'categorytree-no-subcategories' => 'উপশ্ৰেণী নাই',
+	'categorytree-no-pages' => 'এনে কোনো পৃষ্ঠা বা উপশ্ৰেণী নাই',
+	'categorytree-not-found' => '<i>$1</i> শ্ৰেণীটো বিচাৰি পোৱা নগল',
+	'categorytree-error' => "তথ্য ল'ড কৰাত সমস্যা হৈছে।",
+	'categorytree-retry' => 'অনুগ্ৰহ কৰি কিছু সময় অপেক্ষা কৰি তাৰ পিছত চেষ্টা কৰক।',
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
 	'categorytree' => 'Árbole de categoríes',
@@ -295,9 +407,13 @@
 	'categorytree-mode-categories' => 'categoríes namái',
 	'categorytree-mode-pages' => 'páxines sacante los archivos',
 	'categorytree-mode-all' => 'toles páxines',
-	'categorytree-collapse' => 'esconder',
+	'categorytree-collapse' => 'anubrir',
 	'categorytree-expand' => 'espandir',
 	'categorytree-member-counts' => 'contién {{PLURAL:$1|1 subcategoría|$1 subcategoríes}}, {{PLURAL:$2|1 páxina|$2 páxines}} y {{PLURAL:$3|1 archivu|$3 archivos}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'balera',
 	'categorytree-load' => 'cargar',
 	'categorytree-loading' => 'cargando',
 	'categorytree-nothing-found' => "nun s'atopó nada",
@@ -335,27 +451,120 @@
 	'categorytree-retry' => 'Vay kemel aze tolyawal !',
 );
 
+/** Aymara (Aymar aru)
+ * @author Dferg
+ */
+$messages['ay'] = array(
+	'categorytree-category' => 'Patawi:',
+);
+
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ * @author PPerviz
+ * @author Vugar 1981
+ * @author Wertuose
+ */
+$messages['az'] = array(
+	'categorytree' => 'Kateqoriya ağacı',
+	'categorytree-portlet' => 'Kateqoriyalar',
+	'categorytree-legend' => 'Kateqoriya ağacını göstər.',
+	'categorytree-desc' => '[[Special:CategoryTree|Kategori sistemini]] dinamik idarə et',
+	'categorytree-header' => 'Kategoriya adını girib, içerisini ierarxik şəkildə görə bilərsiniz. Bu özəllik AJAX adıyla biliən JavaScript ilə oşləyər. əgər operatorunuz köhnə isə ya da JavaScript istifadəsi mümkün deyilsə, işləməz.',
+	'categorytree-category' => 'Kateqoriya:',
+	'categorytree-go' => 'Yüklə',
+	'categorytree-parents' => 'Üst kateqoriyalar',
+	'categorytree-mode-categories' => 'sadəcə kateqoriyaları göstər',
+	'categorytree-mode-pages' => 'Fayllardan əlavə səhifələr',
+	'categorytree-mode-all' => 'bütün səhifələr',
+	'categorytree-collapse' => 'gizlə',
+	'categorytree-expand' => 'genişləndir',
+	'categorytree-member-counts' => '{{PLURAL:$1|1 altkategoriya|$1 altkategoriya}}, {{PLURAL:$2|1 səhifə|$2 səhifə}}, ve {{PLURAL:$3|1 şəkil|$3 şəkil}}dən ibarətdir',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'boş',
+	'categorytree-load' => 'yüklə',
+	'categorytree-loading' => 'yüklənir…',
+	'categorytree-nothing-found' => 'Təəsüf edirik, nəticə yoxdur.',
+	'categorytree-no-subcategories' => 'alt kateqoriyalar yoxdur',
+	'categorytree-no-parent-categories' => 'Üst kateqoriya yoxdur.',
+	'categorytree-no-pages' => 'Alt kateqoriya və məqalə yoxdur.',
+	'categorytree-not-found' => '<i>"$1"</i> adlı kateqoriya tapılmadı.',
+	'categorytree-error' => 'Məlumat bazasında problem var.',
+	'categorytree-retry' => 'Xahiş edirik bir az gözləyin və yenidən yoxlayın.',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ * @author Haqmar
+ */
+$messages['ba'] = array(
+	'categorytree' => 'Категориялар ағасы',
+	'categorytree-portlet' => 'Категориялар',
+	'categorytree-legend' => 'Категориялар ағасын күрһәтергә',
+	'categorytree-desc' => '[[Special:CategoryTree|Категориялар төҙөлөшө]] буйлап динамик йөрөү мөмкинлеге',
+	'categorytree-header' => 'Категорияның исемен керетегеҙ, һәм ул ағас төҙөлөшөндә күрһәтеләсәк.
+Иғтибар итегеҙ — был JavaScript-тың AJAX мөмкинлеген талап итә.
+Әгәр һеҙҙә браузерҙың бик иҫке өлгөһө булһа, йәки JavaScript һүндерелгән булһа,  ул эшләмәйәсәк.',
+	'categorytree-category' => 'Категория:',
+	'categorytree-go' => 'Тейәү',
+	'categorytree-parents' => 'Төп категориялар',
+	'categorytree-mode-categories' => 'категориялар ғына',
+	'categorytree-mode-pages' => 'файлдарҙан башҡа',
+	'categorytree-mode-all' => 'бар биттәр',
+	'categorytree-collapse' => 'төрөргә',
+	'categorytree-expand' => 'асырға',
+	'categorytree-member-counts' => '{{PLURAL:$1|$1 эске категорияһы}}, {{PLURAL:$2|$2 бите}} һәм {{PLURAL:$3|$3 файлы}} бар',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 Б',
+	'categorytree-num-files' => '$1 Ф',
+	'categorytree-num-empty' => 'буш',
+	'categorytree-load' => 'сығарырға',
+	'categorytree-loading' => 'сығарыу бара...',
+	'categorytree-nothing-found' => 'бер ни ҙә табылманы',
+	'categorytree-no-subcategories' => 'эске категориялар юҡ.',
+	'categorytree-no-parent-categories' => 'төп категориялар юҡ',
+	'categorytree-no-pages' => 'мәҡәләләр йәки эске категориялар юҡ.',
+	'categorytree-not-found' => '<i>$1</i> категорияһы табылманы.',
+	'categorytree-error' => 'Мәғлүмәт сығарыуҙа хата бар.',
+	'categorytree-retry' => 'Зинһар, бер аҙ көткәндән һуң яңынан ҡабатлап ҡарағыҙ.',
+);
+
 /** Bavarian (Boarisch)
  * @author Man77
+ * @author Mucalexx
  */
 $messages['bar'] = array(
-	'categorytree' => 'Kategorienbam',
+	'categorytree' => 'Kategorienbaam',
 	'categorytree-portlet' => 'Kategorien',
-	'categorytree-legend' => 'in Kategorienbam ãnzoang',
-	'categorytree-collapse' => 'eiklåppm',
-	'categorytree-expand' => 'ausklåppm',
-	'categorytree-load' => 'lådn',
+	'categorytree-legend' => 'an Kategorienbaam åzoang',
+	'categorytree-desc' => "Dameeglicht a dynaamische Navigazion fyr d' Speziaalseiten [[Special:CategoryTree|Kategorienbaam]]",
+	'categorytree-header' => "Zoagt fyr d' ågeewane Kategorie d' Unterkategorie in ner Baamstruktur.
+De Seiten braucht bstimmte JavaScript-Funkzionen (Ajax) und funkzionird meeglicherweis ned, wånn JavaScript ausgschoiden is oder a uroider Browser vawendt werd.",
+	'categorytree-category' => 'Kategorie:',
+	'categorytree-go' => 'Loner',
+	'categorytree-parents' => 'Owerkategorien',
+	'categorytree-mode-categories' => 'netter Kategorien',
+	'categorytree-mode-pages' => "Seiten ausser d' Daatein",
+	'categorytree-mode-all' => 'olle Seiten',
+	'categorytree-collapse' => 'eihkloppm',
+	'categorytree-expand' => 'auskloppm',
+	'categorytree-member-counts' => 'enthoit {{PLURAL:$1|1 Unterkategorie|$1 Unterkategorien}}, {{PLURAL:$2|1 Seite|$2 Seiten}} und {{PLURAL:$3|1 Datei|$3 Datein}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'laar',
+	'categorytree-load' => 'loon',
+	'categorytree-loading' => 'lood ...',
+	'categorytree-nothing-found' => 'Nix gfunden',
+	'categorytree-no-subcategories' => 'Koah Unterkategorie',
+	'categorytree-no-parent-categories' => 'Koane Owerkategorien',
+	'categorytree-no-pages' => 'Koane Seiten oder Unterkategorien',
+	'categorytree-not-found' => 'Kategorie „$1“ ned gfunden',
+	'categorytree-error' => 'Probleem beim Loon voh de Daaten.',
+	'categorytree-retry' => 'Bittschee wort a Momenterl und vasuachs dånn nuamoi.',
 );
 
-/** Samogitian (Žemaitėška)
- * @author Hugo.arg
- */
-$messages['bat-smg'] = array(
-	'categorytree' => 'Kateguorėju medis',
-	'categorytree-category' => 'Kateguorėjė:',
-	'categorytree-mode-all' => 'vėsė poslapē',
-);
-
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
@@ -400,7 +609,29 @@
 	'categorytree-retry' => 'Paki halat mûna tapos probaran giraray.',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Беларуская)
+ * @author Тест
+ * @author Чаховіч Уладзіслаў
+ */
+$messages['be'] = array(
+	'categorytree' => 'Дрэва катэгорый',
+	'categorytree-portlet' => 'Катэгорыі',
+	'categorytree-legend' => 'Паказаць дрэва катэгорый',
+	'categorytree-desc' => 'AJAX-кампанент для адлюстравання [[Special:CategoryTree|структуры катэгорый]] вікі',
+	'categorytree-header' => 'Увядзіце імя катэгорыі, і яна будзе паказана ў выглядзе дрэва.
+Гэта магчымасць даступная, толькі калі ваш браўзер падтрымлівае AJAX.
+Калі ў вас старая версія браўзера ці адключаны JavaScript, паказ падкатэгорый у выглядзе дрэва недаступны.',
+	'categorytree-category' => 'Катэгорыя:',
+	'categorytree-go' => 'Загрузіць',
+	'categorytree-parents' => 'Бацькоўскія катэгорыі',
+	'categorytree-mode-categories' => 'толькі катэгорыі',
+	'categorytree-mode-pages' => 'акрамя файлаў',
+	'categorytree-mode-all' => 'усе старонкі',
+	'categorytree-collapse' => 'схаваць',
+	'categorytree-expand' => 'паказаць',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author Cesco
  * @author EugeneZelenko
  * @author Jim-by
@@ -423,6 +654,10 @@
 	'categorytree-collapse' => 'згарнуць',
 	'categorytree-expand' => 'разгарнуць',
 	'categorytree-member-counts' => 'утрымлівае $1 {{PLURAL:$1|падкатэгорыю|падкатэгорыі|падкатэгорыяў}}, $2 {{PLURAL:$2|старонку|старонкі|старонак}} і $3 {{PLURAL:$3|файл|файлы|файлаў}}',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 С',
+	'categorytree-num-files' => '$1 Ф',
+	'categorytree-num-empty' => 'пуста',
 	'categorytree-load' => 'загрузіць',
 	'categorytree-loading' => 'загрузка…',
 	'categorytree-nothing-found' => 'нічога ня знойдзена',
@@ -465,7 +700,53 @@
 	'categorytree-retry' => 'Изчакайте малко и опитайте отново.',
 );
 
+/** Bihari (भोजपुरी)
+ * @author Ganesh
+ */
+$messages['bh'] = array(
+	'categorytree-portlet' => 'श्रेणी',
+);
+
+/** Bhojpuri (भोजपुरी)
+ * @author Ganesh
+ */
+$messages['bho'] = array(
+	'categorytree-portlet' => 'श्रेणी',
+);
+
+/** Banjar (Bahasa Banjar)
+ * @author J Subhi
+ * @author Riemogerz
+ */
+$messages['bjn'] = array(
+	'categorytree' => 'Puhun tumbung',
+	'categorytree-portlet' => 'Tutumbung',
+	'categorytree-legend' => 'Tampaiakan tumbung puhun',
+	'categorytree-desc' => 'Napigasi dinamis [[Special:CategoryTree|struktur tumbung]]',
+	'categorytree-category' => 'Tumbung',
+	'categorytree-go' => 'Tampaiakan puhun',
+	'categorytree-parents' => 'Kuitan',
+	'categorytree-mode-categories' => 'Tutumbung haja',
+	'categorytree-mode-pages' => 'tutungkaran kacuali barakas',
+	'categorytree-mode-all' => 'samunyaan tutungkaran',
+	'categorytree-expand' => 'Singkai',
+	'categorytree-num-categories' => '$1 T',
+	'categorytree-num-pages' => '$1 T',
+	'categorytree-num-files' => '$1 B',
+	'categorytree-num-empty' => 'kusung',
+	'categorytree-load' => 'muatakan',
+	'categorytree-loading' => 'mamuat...',
+	'categorytree-nothing-found' => 'Kada taugai',
+	'categorytree-no-subcategories' => 'kada sub-tutumbung',
+	'categorytree-no-parent-categories' => 'kada kuitan tutumbung',
+	'categorytree-no-pages' => 'kadada tutungkaran atawa sub-tutumbung',
+	'categorytree-not-found' => 'Tumbung <i>$1</i> kada taugai',
+	'categorytree-error' => 'Masalah mamuat data.',
+	'categorytree-retry' => 'Muhun hadangi satumat wan cubai pulang.',
+);
+
 /** Bengali (বাংলা)
+ * @author Ansumang
  * @author Bellayet
  * @author Zaheen
  */
@@ -485,6 +766,10 @@
 	'categorytree-mode-all' => 'সব পাতা',
 	'categorytree-collapse' => 'গুটিয়ে ফেলা হোক',
 	'categorytree-expand' => 'প্রসারিত করা হোক',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'খালি',
 	'categorytree-load' => 'নিয়ে আসা হোক',
 	'categorytree-loading' => 'নিয়ে আসা হচ্ছে',
 	'categorytree-nothing-found' => 'কিছু পাওয়া যায়নি',
@@ -496,6 +781,13 @@
 	'categorytree-retry' => 'অনুগ্রহ করে একটু অপেক্ষা করে আবার চেষ্টা করুন।',
 );
 
+/** Tibetan (བོད་ཡིག)
+ * @author Freeyak
+ */
+$messages['bo'] = array(
+	'categorytree-portlet' => 'རྣམ་གྲངས།',
+);
+
 /** Breton (Brezhoneg)
  * @author Fulup
  */
@@ -503,22 +795,26 @@
 	'categorytree' => 'Gwezennadur ar rummadoù',
 	'categorytree-portlet' => 'Rummadoù',
 	'categorytree-legend' => 'Gwelet gwezennadur ar rummad',
-	'categorytree-desc' => 'Bitrak diazezet war AJAX evit diskouez [[Special:CategoryTree|framm rummad]] ur wiki',
-	'categorytree-header' => "Merkit anv ur rummad evit gwelet petra zo ennañ e stumm ur gwezennadur. 
+	'categorytree-desc' => 'Furchal a ra ent dinamek [[Special:CategoryTree|framm ar rummadoù]]',
+	'categorytree-header' => "Merkit anv ur rummad evit gwelet petra zo ennañ e stumm ur gwezennadur.
 Notit e rankit kaout an arc'hwelioù JavaScript araokaet anvet AJAX.
 M'eo kozh-mat stumm ho merdeer pe m'eo diweredekaet JavaScript ganeoc'h, ne'z aio ket en-dro.",
-	'categorytree-category' => 'Rummad:',
+	'categorytree-category' => 'Rummad :',
 	'categorytree-go' => 'Diskouez ar gwezennadur',
 	'categorytree-parents' => 'Usrummadoù',
 	'categorytree-mode-categories' => 'Rummadoù hepken',
-	'categorytree-mode-pages' => 'Pajennoù hep ar skeudennoù',
+	'categorytree-mode-pages' => 'pajennoù hep ar skeudennoù',
 	'categorytree-mode-all' => 'an holl bajennoù',
 	'categorytree-collapse' => 'Serriñ',
 	'categorytree-expand' => 'Dispakañ',
 	'categorytree-member-counts' => 'ennañ {{PLURAL:$1|1 isrummad|$1 isrummad}}, {{PLURAL:$2|1 bajenn|$2 pajenn}}, ha {{PLURAL:$3|1 restr|$3 restr}}',
+	'categorytree-num-categories' => '$1 Rum.',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'goullo',
 	'categorytree-load' => 'kargañ',
 	'categorytree-loading' => 'o kargañ',
-	'categorytree-nothing-found' => 'Netra bet kavet',
+	'categorytree-nothing-found' => "N'eus bet kavet netra",
 	'categorytree-no-subcategories' => 'isrummad ebet',
 	'categorytree-no-parent-categories' => 'Rummad kar ebet',
 	'categorytree-no-pages' => 'Pennad ebet hag isrummad ebet',
@@ -536,7 +832,7 @@
 	'categorytree-portlet' => 'Kategorije',
 	'categorytree-legend' => 'Prikazuje stablo kategorija',
 	'categorytree-desc' => 'Dinamičko pregledavanje [[Special:CategoryTree|strukture kategorija]]',
-	'categorytree-header' => 'Unesite ime kategorije da vidite njen sadržaj kao strukturno stablo. Ovo zahtijeva proširenu JavaScript funkcionalnost kao AJAX. Ako imate neki stariji Internet preglednik, ili ste iskljucili JavaScript, ovo nece raditi.',
+	'categorytree-header' => 'Unesite ime kategorije da vidite njen sadržaj kao strukturno stablo. Ovo zahtijeva proširenu JavaScript funkcionalnost kao AJAX. Ako imate neki stariji preglednik, ili ste isključili JavaScript, ovo neće raditi.',
 	'categorytree-category' => 'Kategorija',
 	'categorytree-go' => 'Prikaži stablo',
 	'categorytree-parents' => 'Nadkategorije',
@@ -546,12 +842,12 @@
 	'categorytree-collapse' => 'sakrij',
 	'categorytree-expand' => 'proširi',
 	'categorytree-member-counts' => 'sadrži {{PLURAL:$1|jednu podkategoriju|$1 podkategorije|$1 podkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}',
-	'categorytree-load' => 'ucitaj',
-	'categorytree-loading' => 'ucitavam',
+	'categorytree-load' => 'učitaj',
+	'categorytree-loading' => 'učitavam…',
 	'categorytree-nothing-found' => 'nema podkategorija',
 	'categorytree-no-subcategories' => 'nema podkategorija',
 	'categorytree-no-parent-categories' => 'nema nadređene kategorije',
-	'categorytree-no-pages' => 'nema podkategorija ili clanaka',
+	'categorytree-no-pages' => 'nema ni stranica ni podkategorija',
 	'categorytree-not-found' => 'Kategorija <i>$1</i> nije nađena',
 	'categorytree-error' => 'Problem pri punjenju podataka.',
 	'categorytree-retry' => 'Molimo pričekate trenutak i pokušajte ponovno.',
@@ -561,34 +857,49 @@
  * @author Aleator
  * @author Paucabot
  * @author SMP
+ * @author Toniher
  * @author Vriullop
  */
 $messages['ca'] = array(
 	'categorytree' => 'Categories en arbre',
 	'categorytree-portlet' => 'Categories',
 	'categorytree-legend' => "Mostra l'arbre de categories",
-	'categorytree-desc' => "Gadget fet amb AJAX per a mostrar l'[[Special:CategoryTree|estructura de les categories]] d'un wiki",
+	'categorytree-desc' => "Navegació dinàmica per l'[[Special:CategoryTree|estructura de categories]]",
 	'categorytree-header' => "Entreu el nom d'una categoria per a veure l'arbre del seu contingut. Aquesta pàgina utilitza una funcionalitat avançada del JavaScript coneguda com a AJAX, i no funciona en navegadors antics o que tinguin el JavaScript desactivat.",
 	'categorytree-category' => 'Categoria:',
 	'categorytree-go' => 'Carregueu',
-	'categorytree-parents' => 'Categories pare',
+	'categorytree-parents' => 'Categories superiors',
 	'categorytree-mode-categories' => 'mostra només categories',
 	'categorytree-mode-pages' => 'mostra categories i pàgines',
 	'categorytree-mode-all' => 'mostra categories, pàgines i imatges',
 	'categorytree-collapse' => 'Tancar',
 	'categorytree-expand' => 'Expandir',
 	'categorytree-member-counts' => 'conté {{PLURAL:$1|1 subcategoria|$1 subcategories}}, {{PLURAL:$2|1 pàgina|$2 pàgines}}, i {{PLURAL:$3|1 fitxer|$3 fitxers}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'buit',
 	'categorytree-load' => 'Carrega',
 	'categorytree-loading' => 'carregant',
 	'categorytree-nothing-found' => 'no hi ha sub-categories',
 	'categorytree-no-subcategories' => 'no hi ha subcategories.',
-	'categorytree-no-parent-categories' => "No s'han trobat categories mare",
+	'categorytree-no-parent-categories' => 'cap categoria superior',
 	'categorytree-no-pages' => 'no hi ha articles o subcategories.',
 	'categorytree-not-found' => "No s'ha trobat la categoria ''$1''.",
 	'categorytree-error' => 'Problema en la càrrega de dades.',
 	'categorytree-retry' => 'Torneu-ho a intentar en uns moments.',
 );
 
+/** Chavacano de Zamboanga (Chavacano de Zamboanga)
+ * @author Weekeejames
+ */
+$messages['cbk-zam'] = array(
+	'categorytree' => 'El pono de maga categoria',
+	'categorytree-category' => 'Categoria:',
+	'categorytree-collapse' => 'esconde',
+	'categorytree-expand' => 'extende',
+);
+
 /** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄)
  * @author GnuDoyng
  */
@@ -606,6 +917,24 @@
 	'categorytree-not-found' => 'Mò̤ tō̤ diŏh lôi-biék <i>$1</i>',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'categorytree' => 'Кадегарши дит',
+	'categorytree-portlet' => 'Кадегарш',
+	'categorytree-legend' => 'Гайта кадегарши дит',
+	'categorytree-category' => 'Кадегар:',
+	'categorytree-go' => 'Чуйаккха',
+	'categorytree-parents' => 'Кхолламан кадегарш',
+	'categorytree-mode-all' => 'массо агlонаш',
+	'categorytree-collapse' => 'къайла яккха',
+	'categorytree-expand' => 'хьайаста',
+	'categorytree-loading' => 'чуйолуш…',
+	'categorytree-no-subcategories' => 'йац бухаркадегарш',
+	'categorytree-not-found' => 'Кадегар «$1» ца карийна.',
+);
+
 /** Cebuano (Cebuano)
  * @author Abastillas
  */
@@ -614,6 +943,32 @@
 	'categorytree-category' => 'Kategoriya:',
 );
 
+/** Sorani (کوردی)
+ * @author Asoxor
+ */
+$messages['ckb'] = array(
+	'categorytree' => 'درەختی پۆل',
+	'categorytree-portlet' => 'پۆلەكان',
+	'categorytree-legend' => 'درەختی پۆل نیشانبدە',
+	'categorytree-header' => 'ناوی پۆلێک بنووسە بۆ بینینی ناوەرۆک و پێکھاتە درەختییەکەی.
+ئاگادار بە کە ئەمە پێویستی بە کارگێڕییەکی پێشکەوتووی JavaScript ھەیە کە بە AJAX ناسراوە.
+ئەگەر وێبگەڕێکی زۆر کۆنت ھەیە یان JavaScriptت لەکارخستووە، کار ناکات.',
+	'categorytree-category' => 'پۆل:',
+	'categorytree-go' => 'دەرختەکە نیشانبدە',
+	'categorytree-mode-categories' => 'تەنیا پۆلەکان',
+	'categorytree-mode-all' => 'گشت پەڕەکان',
+	'categorytree-collapse' => 'کۆیبکەوە',
+	'categorytree-expand' => 'بڵاویبکەوە',
+	'categorytree-member-counts' => '{{PLURAL:$1|یەک ژێرپۆل|$1 ژێرپۆل}}، {{PLURAL:$2|یەک پەڕە|$2 پەڕە}}، and {{PLURAL:$3|یەک پەڕگە|$3 پەڕگە}} لەبەردەگرێتەوە',
+	'categorytree-load' => 'باربکە',
+	'categorytree-loading' => 'بارکردن...',
+	'categorytree-nothing-found' => 'ھیچ نەدۆزرایەوە',
+	'categorytree-no-subcategories' => 'ھیچ ژێرھاوپۆلێک نییە',
+	'categorytree-not-found' => 'پۆلی <i>$1</i> نەدۆزرایەوە',
+	'categorytree-error' => 'کێشە لە بارکردنی داتا.',
+	'categorytree-retry' => 'تکایە دەمێک ڕاوەستە و دیسان تاقیبکەوە.',
+);
+
 /** Corsican (Corsu) */
 $messages['co'] = array(
 	'categorytree-category' => 'Categuria:',
@@ -634,7 +989,7 @@
 	'categorytree-header' => 'Zadejte název kategorie k zobrazení jejího obsahu jako stromové struktury.
 
 (Tato funkce vyžaduje pokročilé funkce JavaScriptu známé jako Ajax. Jestliže máte velmi starý prohlížeč nebo vypnutý JavaScript, nezobrazí se strom správně nebo vůbec.)',
-	'categorytree-category' => 'Kategorie',
+	'categorytree-category' => 'Kategorie:',
 	'categorytree-go' => 'Zobrazit',
 	'categorytree-parents' => 'Nadřazené kategorie',
 	'categorytree-mode-categories' => 'pouze kategorie',
@@ -643,6 +998,10 @@
 	'categorytree-collapse' => 'zavřít',
 	'categorytree-expand' => 'otevřít',
 	'categorytree-member-counts' => 'obsahuje {{PLURAL:$1|1 podkategorii|$1 podkategorie|$1 podkategorií}}, {{PLURAL:$2|1 stránku|$2 stránky|$2 stránek}} a {{PLURAL:$3|1 soubor|$3 soubory|$3 souborů}}',
+	'categorytree-num-categories' => '$1 kat.',
+	'categorytree-num-pages' => '$1 str.',
+	'categorytree-num-files' => '$1 soub.',
+	'categorytree-num-empty' => 'prázdná',
 	'categorytree-load' => 'načíst',
 	'categorytree-loading' => 'načítá se',
 	'categorytree-nothing-found' => 'nic nebylo nalezeno',
@@ -658,21 +1017,22 @@
  * @author ОйЛ
  */
 $messages['cu'] = array(
-	'categorytree-portlet' => 'катигорі́ѩ',
-	'categorytree-category' => 'катигорі́ꙗ :',
-	'categorytree-mode-all' => 'вьсѩ́ страни́цѧ',
+	'categorytree' => 'катигорїи дрѣво',
+	'categorytree-portlet' => 'катигорїѩ',
+	'categorytree-category' => 'катигорїꙗ :',
+	'categorytree-mode-all' => 'вьсѩ страницѧ',
 );
 
 /** Welsh (Cymraeg)
  * @author Lloffiwr
  */
 $messages['cy'] = array(
-	'categorytree' => 'CoedenGategori',
+	'categorytree' => 'Coeden gategori',
 	'categorytree-portlet' => 'Categorïau',
 	'categorytree-legend' => 'Dangos y goeden gategori',
 	'categorytree-desc' => "Teclyn AJAX yn arddangos [[Special:CategoryTree|adeiledd categorïau]]'r wici",
-	'categorytree-header' => "Teipiwch enw categori yn y blwch er mwyn gweld ei gynnwys ar lun coeden. 
-Sylwer bod yn rhaid defnyddio offer uwch Sgript Java o'r enw AJAX er mwyn gwneud hyn. 
+	'categorytree-header' => "Teipiwch enw categori yn y blwch er mwyn gweld ei gynnwys ar lun coeden.
+Sylwer bod yn rhaid defnyddio offer uwch Sgript Java o'r enw AJAX er mwyn gwneud hyn.
 Ni lwydda'r gofyniad os yw'ch porwr yn hen iawn neu os nad yw Sgript Java wedi ei alluogi.",
 	'categorytree-category' => 'Categori:',
 	'categorytree-go' => 'Dangos y Goeden',
@@ -683,6 +1043,10 @@
 	'categorytree-collapse' => 'crebachu',
 	'categorytree-expand' => 'ehangu',
 	'categorytree-member-counts' => 'yn cynnwys y canlynol: {{PLURAL:$1|$1 is-gategori}}, $2 {{PLURAL:$2|tudalen|dudalen|dudalen|tudalen|thudalen|tudalen}}, {{PLURAL:$3|$3 ffeil}}',
+	'categorytree-num-categories' => '$1 Cat',
+	'categorytree-num-pages' => '$1 Tud',
+	'categorytree-num-files' => '$1 Ff',
+	'categorytree-num-empty' => 'gwag',
 	'categorytree-load' => 'llwytho',
 	'categorytree-loading' => "wrthi'n llwytho...",
 	'categorytree-nothing-found' => "dim i'w gael",
@@ -699,6 +1063,7 @@
  * @author Byrial
  * @author Fredelige
  * @author Jon Harald Søby
+ * @author Peter Alberti
  */
 $messages['da'] = array(
 	'categorytree' => 'Kategoritræ',
@@ -715,12 +1080,16 @@
 	'categorytree-collapse' => 'fold sammen',
 	'categorytree-expand' => 'fold ud',
 	'categorytree-member-counts' => 'indeholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tom',
 	'categorytree-load' => 'hent',
 	'categorytree-loading' => 'indlæser',
 	'categorytree-nothing-found' => 'intet fundet',
 	'categorytree-no-subcategories' => 'ingen underkategorier',
 	'categorytree-no-parent-categories' => 'ingen overkategorier',
-	'categorytree-no-pages' => 'ingen artikler eller underkategorier',
+	'categorytree-no-pages' => 'ingen sider eller underkategorier',
 	'categorytree-not-found' => "Kategorien ''$1'' blev ikke fundet",
 	'categorytree-error' => 'Der opstod et problem under indlæsning af data.',
 	'categorytree-retry' => 'Vent et øjeblik og prøv igen.',
@@ -728,13 +1097,15 @@
 
 /** German (Deutsch)
  * @author Daniel Kinzler, brightbyte.de
+ * @author Kghbln
  * @author Raimond Spekking
+ * @author SVG
  */
 $messages['de'] = array(
 	'categorytree' => 'Kategorienbaum',
 	'categorytree-portlet' => 'Kategorien',
 	'categorytree-legend' => 'Zeige Kategorienbaum',
-	'categorytree-desc' => 'Dynamische Navigation für die [[Special:CategoryTree|Kategorien-Struktur]]',
+	'categorytree-desc' => 'Ergänzt eine [[Special:CategoryTree|Spezialseite]], welche die dynamische Navigation durch die Kategoriestruktur ermöglicht',
 	'categorytree-header' => 'Zeigt für die angegebene Kategorie die Unterkategorien in einer Baumstruktur.
 Diese Seite benötigt bestimmte JavaScript-Funktionen (Ajax) und funktioniert möglicherweise nicht, wenn JavaScript ausgeschaltet ist oder ein sehr alter Browser verwendet wird.',
 	'categorytree-category' => 'Kategorie:',
@@ -746,8 +1117,12 @@
 	'categorytree-collapse' => 'einklappen',
 	'categorytree-expand' => 'ausklappen',
 	'categorytree-member-counts' => 'enthält {{PLURAL:$1|1 Unterkategorie|$1 Unterkategorien}}, {{PLURAL:$2|1 Seite|$2 Seiten}} und {{PLURAL:$3|1 Datei|$3 Dateien}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'leer',
 	'categorytree-load' => 'laden',
-	'categorytree-loading' => 'laden …',
+	'categorytree-loading' => 'lade …',
 	'categorytree-nothing-found' => 'Nichts gefunden',
 	'categorytree-no-subcategories' => 'Keine Unterkategorien',
 	'categorytree-no-parent-categories' => 'Keine Oberkategorien',
@@ -764,17 +1139,44 @@
 	'categorytree-mode-pages' => 'Seiten ausser Dateien',
 );
 
-/** German (formal address) (Deutsch (Sie-Form))
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
  * @author Raimond Spekking
  */
 $messages['de-formal'] = array(
 	'categorytree-retry' => 'Bitte warten Sie einen Moment und versuchen Sie es dann erneut.',
 );
 
-/** Zazaki (Zazaki) */
+/** Zazaki (Zazaki)
+ * @author Erdemaslancan
+ * @author Xoser
+ */
 $messages['diq'] = array(
 	'categorytree' => 'Dara Kategoriye',
+	'categorytree-portlet' => 'Kategoriyan',
+	'categorytree-legend' => 'Darê kategorîyî bimucne',
+	'categorytree-desc' => '[[Special:CategoryTree|structureyê kategorîyî]] de analiz bike',
+	'categorytree-header' => 'Qe vînayîşê structureyê darî, yew nameyê kategorîyî binuse.
+Qe hebitnayiş, komputer de gani JavaScriptê AJAXî bibi.
+Eka browseyê tu kihanî ya zi tu JavaScript qefilmayiyo, program nihebitiyeno.',
 	'categorytree-category' => 'Kategoriye:',
+	'categorytree-go' => 'Dar bimucne',
+	'categorytree-parents' => 'Ebeveynî',
+	'categorytree-mode-categories' => 'teyna kategoriyan',
+	'categorytree-mode-pages' => 'Teyna pelan, dosyayan hesab meke',
+	'categorytree-mode-all' => 'pelanê hemî',
+	'categorytree-collapse' => 'qic bike',
+	'categorytree-expand' => 'gird bike',
+	'categorytree-member-counts' => ' {{PLURAL:$1|1 subkategorî|$1 subkategorîyan}}, {{PLURAL:$2|1 pel|$2 pelan}} u {{PLURAL:$3|1 dosya|$3 dosyayn}} esto',
+	'categorytree-num-categories' => 'K $1',
+	'categorytree-load' => 'bar bike',
+	'categorytree-loading' => 'Bar keno...',
+	'categorytree-nothing-found' => 'çik çini yo',
+	'categorytree-no-subcategories' => 'subkategorîyan çini yo',
+	'categorytree-no-parent-categories' => 'Kategorîyê ser çini yo',
+	'categorytree-no-pages' => 'pelan yazi subkategorîyan çini yo',
+	'categorytree-not-found' => 'Kategorî <i>$1</i> nidiyo',
+	'categorytree-error' => 'Data bar kerdişî de ğelet esto.',
+	'categorytree-retry' => 'Yew di dekika bivinder u reyna kilik bike.',
 );
 
 /** Lower Sorbian (Dolnoserbski)
@@ -797,6 +1199,10 @@
 	'categorytree-collapse' => 'złožyś',
 	'categorytree-expand' => 'rozłožyś',
 	'categorytree-member-counts' => 'wopśimujo {{PLURAL:$1|1 pódkategoriju|$1 pódkategoriji|$1 pódkategorije|$1 pódkategorijow}}, {{PLURAL:$2|1 bok|$2 boka|$2 boki|$2 bokow}} a {{PLURAL:$3|1 dataju|$3 dataji|$3 dataje|$3 datajow}}',
+	'categorytree-num-categories' => '$1 k',
+	'categorytree-num-pages' => '$1 b',
+	'categorytree-num-files' => '$1 d',
+	'categorytree-num-empty' => 'prozny',
 	'categorytree-load' => 'lodowaś',
 	'categorytree-loading' => 'lodujo se...',
 	'categorytree-nothing-found' => 'Nic namakany',
@@ -808,12 +1214,23 @@
 	'categorytree-retry' => 'Pócakaj pšosym moment a wopytaj hyšći raz.',
 );
 
+/** Central Dusun (Dusun Bundu-liwan)
+ * @author FRANCIS5091
+ */
+$messages['dtp'] = array(
+	'categorytree-portlet' => 'Tinanansar',
+	'categorytree-category' => 'Tinansar',
+	'categorytree-mode-all' => 'Oinsanan bobolikon',
+	'categorytree-no-subcategories' => 'Ingaa kawo do kalas',
+);
+
 /** Ewe (Eʋegbe) */
 $messages['ee'] = array(
 	'categorytree-mode-all' => 'axawo katã',
 );
 
 /** Greek (Ελληνικά)
+ * @author AK
  * @author Badseed
  * @author Consta
  * @author Dead3y3
@@ -836,6 +1253,10 @@
 	'categorytree-collapse' => 'κατάρρευση',
 	'categorytree-expand' => 'επέκτεινε',
 	'categorytree-member-counts' => 'περιέχει {{PLURAL:$1|1 υποκατηγορία|$1 υποκατηγορίες}}, {{PLURAL:$2|1 σελίδα|$2 σελίδες}} και {{PLURAL:$3|1 αρχείο|$3 αρχεία}}',
+	'categorytree-num-categories' => '$1 Κ',
+	'categorytree-num-pages' => '$1 Σ',
+	'categorytree-num-files' => '$1 Α',
+	'categorytree-num-empty' => 'κενή',
 	'categorytree-load' => 'φορτώστε',
 	'categorytree-loading' => 'φόρτωση',
 	'categorytree-nothing-found' => 'δεν βρέθηκε τίποτα',
@@ -863,30 +1284,36 @@
 	'categorytree-mode-categories' => 'nur kategorioj',
 	'categorytree-mode-pages' => 'paĝoj krom dosieroj',
 	'categorytree-mode-all' => 'ĉiuj paĝoj',
-	'categorytree-collapse' => 'kunfaldi',
-	'categorytree-expand' => 'etendi',
+	'categorytree-collapse' => 'kaŝi',
+	'categorytree-expand' => 'montri',
 	'categorytree-member-counts' => 'enhavas {{PLURAL:$1|1 subkategorion|$1 subkategoriojn}}, {{PLURAL:$2|1 paĝon|$2 paĝojn}}, kaj {{PLURAL:$3|1 dosieron|$3 dosierojn}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'malplena',
 	'categorytree-load' => 'elŝuti',
-	'categorytree-loading' => 'elŝutante...',
+	'categorytree-loading' => 'ŝarĝante...',
 	'categorytree-nothing-found' => 'nenio trovita',
 	'categorytree-no-subcategories' => 'neniu subkategorio',
 	'categorytree-no-parent-categories' => 'neniuj superaj kategorioj',
-	'categorytree-no-pages' => 'neniu pago o subkategorio',
+	'categorytree-no-pages' => 'neniuj paĝoj aŭ subkategorioj',
 	'categorytree-not-found' => 'La kategorio <i>$1</i> ne estis trovita.',
 	'categorytree-error' => 'Problemo ŝarĝante datenojn',
 	'categorytree-retry' => 'Bonvolu atendi momenton kaj provi denove.',
 );
 
 /** Spanish (Español)
+ * @author Locos epraix
  * @author Muro de Aguas
  * @author Remember the dot
  * @author Sanbec
  * @author Spacebirdy
+ * @author Vivaelcelta
  */
 $messages['es'] = array(
-	'categorytree' => 'Árbol de categorías (CategoryTree)',
+	'categorytree' => 'Árbol de categorías',
 	'categorytree-portlet' => 'Categorías',
-	'categorytree-legend' => 'Mostrar el árbol de categorías',
+	'categorytree-legend' => 'Mostrar árbol de categorías',
 	'categorytree-desc' => 'Navegar dinámicamente por la [[Special:CategoryTree|estructura de categorías]]',
 	'categorytree-header' => 'Escribe un nombre de categoría para ver su contenido con una estructura en árbol.
 Ten en cuenta que esto requiere funciones JavaScript avanzadas conocidas como AJAX.
@@ -900,13 +1327,17 @@
 	'categorytree-collapse' => 'ocultar',
 	'categorytree-expand' => 'mostrar',
 	'categorytree-member-counts' => 'contiene {{PLURAL:$1|una subcategoría|$1 subcategorías}}, {{PLURAL:$2|una página|$2 páginas}}, y {{PLURAL:$3|un archivo|$3 archivos}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vacía',
 	'categorytree-load' => 'cargar',
 	'categorytree-loading' => 'cargando',
 	'categorytree-nothing-found' => 'Lo sentimos, no se ha encontrado nada',
-	'categorytree-no-subcategories' => 'sin subcategorías.',
+	'categorytree-no-subcategories' => 'sin subcategorías',
 	'categorytree-no-parent-categories' => 'no hay categorías superiores',
 	'categorytree-no-pages' => 'sin artículos ni subcategorías.',
-	'categorytree-not-found' => "Categoría ''$1'' no encontrada",
+	'categorytree-not-found' => 'Categoría <i>$1</i> no encontrada',
 	'categorytree-error' => 'Error al cargar los datos',
 	'categorytree-retry' => 'Por favor, espera un momento y vuelve a intentarlo.',
 );
@@ -914,18 +1345,37 @@
 /** Estonian (Eesti)
  * @author Avjoska
  * @author Jaan513
+ * @author Pikne
  */
 $messages['et'] = array(
 	'categorytree' => 'Kategooriapuu',
 	'categorytree-portlet' => 'Kategooriad',
 	'categorytree-legend' => 'Näita kategooriapuud',
+	'categorytree-desc' => '[[Special:CategoryTree|Kategooriate ülesehituse]] dünaamiline vaatamine.',
+	'categorytree-header' => 'Sisesta kategooria nimi, et näha selle ülesehitust liigendatud loendina.
+Toimingu jaoks on vaja peent JavaScripti, mida kutsutakse AJAXiks.
+Kui sul on väga vana veebilehitseja või JavaScrip keelatud, see ei toimi.',
 	'categorytree-category' => 'Kategooria:',
+	'categorytree-go' => 'Näita puud',
+	'categorytree-parents' => 'Ülemkategooriad',
 	'categorytree-mode-categories' => 'ainult kategooriad',
-	'categorytree-mode-pages' => 'leheküljed, välja arvatud pildid',
+	'categorytree-mode-pages' => 'failideta',
 	'categorytree-mode-all' => 'kõik leheküljed',
+	'categorytree-collapse' => 'peida',
+	'categorytree-expand' => 'näita',
+	'categorytree-member-counts' => 'sisaldab {{PLURAL:$1|üht|$1}} alamkategooriat, {{PLURAL:$2|üht|$2}} lehekülge ja {{PLURAL:$3|üht|$3}} faili',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 L',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tühi',
+	'categorytree-load' => 'laadi',
+	'categorytree-loading' => 'laadimine...',
 	'categorytree-nothing-found' => 'ei leitud midagi',
 	'categorytree-no-subcategories' => 'alamkategooriaid ei ole',
+	'categorytree-no-parent-categories' => 'ülemkategooriad pole',
+	'categorytree-no-pages' => 'lehekülgi ega alamkategooriad pole',
 	'categorytree-not-found' => 'Kategooriat <i>$1</i> ei leitud.',
+	'categorytree-error' => 'Probleem andmete laadimisel.',
 	'categorytree-retry' => 'Palun oota hetk ja proovi uuesti.',
 );
 
@@ -948,6 +1398,10 @@
 	'categorytree-collapse' => 'itxi',
 	'categorytree-expand' => 'zabaldu',
 	'categorytree-member-counts' => '{{PLURAL:$1|azpikategoria 1|$1 azpikategoria}}, {{PLURAL:$2|orrialde 1|$2 orrialde}} eta {{PLURALK:$3|fitxategi 1|$3 fitxategi}} ditu',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 O',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'hutsik',
 	'categorytree-load' => 'kargatu',
 	'categorytree-loading' => 'kargatzen',
 	'categorytree-nothing-found' => 'ez da ezer aurkitu',
@@ -971,37 +1425,45 @@
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
+ * @author Leyth
+ * @author ZxxZxxZ
  */
 $messages['fa'] = array(
 	'categorytree' => 'درخت رده',
 	'categorytree-portlet' => 'رده‌ها',
 	'categorytree-legend' => 'نمایش درخت رده',
 	'categorytree-desc' => 'ابزار مبتنی بر AJAX برای نمایش [[Special:CategoryTree|ساختار رده‌های]] یک ویکی',
-	'categorytree-header' => 'نام یک رده را وارد کنید تا محتویات آن به صورت درخت نمایش یابد. توجه کنید که این کار نیاز به قابلیت‌های پیشرفتهٔ جاوااسکریپت موسوم به آژاکس دارد. اگر از مرورگری خیلی قدیمی استفاده می‌کنید یا جاوااسکریپت را غیرفعال کرده‌اید، کار نمی‌کند.',
-	'categorytree-category' => 'رده',
-	'categorytree-go' => 'نمايش درخت',
-	'categorytree-parents' => 'والدین',
+	'categorytree-header' => 'نام رده‌ای را وارد کنید تا محتویات آن به صورت درختی نمایش یابد. توجه کنید که این کار نیاز به قابلیت‌های پیشرفتهٔ جاوااسکریپت موسوم به ای‌جکس دارد. اگر از مرورگری خیلی قدیمی استفاده می‌کنید یا جاوااسکریپت را غیرفعال کرده‌اید، کار نمی‌کند.',
+	'categorytree-category' => 'رده:',
+	'categorytree-go' => 'نمایش درخت',
+	'categorytree-parents' => 'ریشه',
 	'categorytree-mode-categories' => 'فقط رده‌ها',
 	'categorytree-mode-pages' => 'صفحه‌های جز تصویر',
 	'categorytree-mode-all' => 'همهٔ صفحه‌ها',
-	'categorytree-collapse' => 'مچالش',
+	'categorytree-collapse' => 'نهفتن',
 	'categorytree-expand' => 'گسترش',
 	'categorytree-member-counts' => 'شامل {{PLURAL:$1|یک زیررده|$1 زیررده}}، {{PLURAL:$2|یک صفحه|$2 صفحه}} و {{PLURAL:$3|یک پرونده|$3 پرونده است}}',
-	'categorytree-load' => 'بارکردن',
+	'categorytree-num-categories' => '$1 ر',
+	'categorytree-num-pages' => '$1 ص',
+	'categorytree-num-files' => '$1 پ',
+	'categorytree-num-empty' => 'خالی',
+	'categorytree-load' => 'بارگذاری',
 	'categorytree-loading' => 'در حال بارگیری',
 	'categorytree-nothing-found' => 'هیچ‌چیز یافت نشد.',
 	'categorytree-no-subcategories' => 'هیچ زیررده‌ای ندارد.',
 	'categorytree-no-parent-categories' => 'فاقد ردهٔ بالاتر',
 	'categorytree-no-pages' => 'هیچ صفحه یا زیررده‌ای ندارد.',
-	'categorytree-not-found' => "ردهٔ  ''$1'' يافت نشد.",
+	'categorytree-not-found' => 'ردهٔ <i>$1</i> یافت نشد',
 	'categorytree-error' => 'اشکال در دریافت اطلاعات.',
-	'categorytree-retry' => 'لطفاً چند لحظه صبر کنید و سپس دوباره امتحان کنید.',
+	'categorytree-retry' => 'لطفاً کمی صبر و دوباره امتحان کنید.',
 );
 
 /** Finnish (Suomi)
  * @author Agony
  * @author Crt
+ * @author Nedergard
  * @author Nike
  * @author Str4nd
  */
@@ -1020,6 +1482,10 @@
 	'categorytree-collapse' => 'piilota',
 	'categorytree-expand' => 'näytä',
 	'categorytree-member-counts' => 'sisältää {{PLURAL:$1|1 alaluokan|$1 alaluokkaa}}, {{PLURAL:$2|1 sivun|$2 sivua}} ja {{PLURAL:$3|1 tiedoston|$3 tiedostoa}}',
+	'categorytree-num-categories' => '$1 L',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 T',
+	'categorytree-num-empty' => 'tyhjä',
 	'categorytree-load' => 'näytä',
 	'categorytree-loading' => 'etsitään',
 	'categorytree-nothing-found' => 'ei alaluokkia',
@@ -1032,43 +1498,77 @@
 );
 
 /** Faroese (Føroyskt)
+ * @author Diupwijk
+ * @author EileenSanda
  * @author Spacebirdy
  */
 $messages['fo'] = array(
 	'categorytree' => 'BólkaTræ',
+	'categorytree-portlet' => 'Bólkar',
+	'categorytree-legend' => 'Vís bólka træið',
+	'categorytree-desc' => 'Dynamisk stýring í [[Special:CategoryTree|bólka strukturinum]]',
+	'categorytree-header' => 'Skriva heiti á einum bólki fyri at síggja innihaldið sum træ strukturur.
+Legg til merkis, at hetta krevur víðarikomið JacaScript virksemi (funktionalitet), sum er kent sum AJAX.
+Um tú hevur ein sera gamlan kaga (brovsara), ella hevur gjørt JavaScript óvirkið, so fer tað ikki at virka.',
 	'categorytree-category' => 'Bólkur:',
 	'categorytree-go' => 'Vís træ',
+	'categorytree-parents' => 'Foreldur',
+	'categorytree-mode-categories' => 'bert bólkar',
+	'categorytree-mode-pages' => 'Síður uttan fílur',
 	'categorytree-mode-all' => 'allar síður',
+	'categorytree-collapse' => 'samanbrot',
+	'categorytree-expand' => 'víðka',
+	'categorytree-member-counts' => 'Inniheldur {{PLURAL:$1|1 undirbólk|$1 undirbólkar}}, {{PLURAL:$2|1 síðu|$2 síður}}, og {{PLURAL:$3|1 fílu|$3 fílur}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tómur',
+	'categorytree-load' => 'heinta',
+	'categorytree-loading' => 'lesur inn',
+	'categorytree-nothing-found' => 'onki funnið',
+	'categorytree-no-subcategories' => 'ongir undirbólkar',
+	'categorytree-no-parent-categories' => 'ongir foreldra bólkar',
+	'categorytree-no-pages' => 'ongar síður ella undirbólkar',
+	'categorytree-not-found' => 'Bólkur <i>$1</i> ikki funnin',
+	'categorytree-error' => 'Trupulleikar við at taka niður dáta.',
+	'categorytree-retry' => 'Vinarliga bíða eitt bil og royn so aftur.',
 );
 
 /** French (Français)
+ * @author Gomoko
  * @author Grondin
  * @author IAlex
  * @author Meithal
+ * @author Peter17
  * @author Sherbrooke
+ * @author Urhixidur
  * @author Verdy p
  */
 $messages['fr'] = array(
 	'categorytree' => 'Arborescence des catégories',
 	'categorytree-portlet' => 'Catégories',
 	'categorytree-legend' => 'Visionner l’arborescence de la catégorie',
-	'categorytree-desc' => 'Gadget basé sur AJAX pour afficher la [[Special:CategoryTree|structure de la catégorie]] d’un wiki',
+	'categorytree-desc' => 'Visite dynamiquement la [[Special:CategoryTree|structure des catégories]]',
 	'categorytree-header' => 'Entrez un nom de catégorie pour voir son contenu en structure arborescente. Ceci utilise des fonctionnalités JavaScript avancées connues sous le nom d’AJAX. Si vous avez un très vieux navigateur Web ou si vous n’avez pas activé la fonctionnalité JavaScript, cela ne fonctionnera pas.',
-	'categorytree-category' => 'Catégorie',
+	'categorytree-category' => 'Catégorie :',
 	'categorytree-go' => 'voir l’arborescence',
 	'categorytree-parents' => 'super-catégorie(s)',
 	'categorytree-mode-categories' => 'seulement les catégories',
 	'categorytree-mode-pages' => 'pages sans les images',
 	'categorytree-mode-all' => 'toutes les pages',
-	'categorytree-collapse' => 'Refermer',
+	'categorytree-collapse' => 'Replier',
 	'categorytree-expand' => 'Développer',
 	'categorytree-member-counts' => 'contient $1 sous-catégorie{{PLURAL:$1||s}}, $2 page{{PLURAL:$2||s}} et $3 fichier{{PLURAL:$3||s}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vide',
 	'categorytree-load' => 'charger',
 	'categorytree-loading' => 'chargement...',
 	'categorytree-nothing-found' => 'Aucune trouvée',
 	'categorytree-no-subcategories' => 'Aucune sous-catégorie',
 	'categorytree-no-parent-categories' => 'Aucune catégorie parente',
-	'categorytree-no-pages' => 'Aucune page ou sous-catégorie.',
+	'categorytree-no-pages' => 'Aucune page ou sous-catégorie',
 	'categorytree-not-found' => 'Catégorie <tt>$1</tt> introuvable',
 	'categorytree-error' => 'Problème de chargement des données.',
 	'categorytree-retry' => 'Veuillez attendre un instant puis réessayer.',
@@ -1078,23 +1578,31 @@
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'categorytree' => 'Arborèscence de les catègories',
+	'categorytree' => 'Structura d’âbro de les catègories',
+	'categorytree-portlet' => 'Catègories',
+	'categorytree-legend' => 'Vêre la structura d’âbro de la catègorie',
 	'categorytree-desc' => 'Outil basâ dessus AJAX por afichiér la [[Special:CategoryTree|structura de la catègorie]] d’un vouiqui',
-	'categorytree-header' => 'Entrâd un nom de catègorie por vêre son contegnu en structura arborèscenta.
+	'categorytree-header' => 'Buchiéd un nom de catègorie por vêre son contegnu en structura d’âbro.
 Cen utilise des fonccionalitâts JavaScript avanciês cognues desot lo nom d’AJAX.
-Se vos avéd un rudo viely navigator Malyâjo ou que vos éd pas activâ la fonccionalitât JavaScript, cen fonccionerat pas.',
-	'categorytree-category' => 'Catègorie:',
-	'categorytree-go' => 'Afichiér l’arborèscence',
+Se vos avéd un rudo viely navigator ou ben se vos éd pas activâ la fonccionalitât JavaScript, cen fonccionerat pas.',
+	'categorytree-category' => 'Catègorie :',
+	'categorytree-go' => 'Fâre vêre la structura d’âbro',
 	'categorytree-parents' => 'Sur-catègorie(s) ',
-	'categorytree-mode-categories' => 'ren que les catègories',
-	'categorytree-mode-pages' => 'pâges sen les émâges',
+	'categorytree-mode-categories' => 'solament les catègories',
+	'categorytree-mode-pages' => 'pâges sen los fichiérs',
 	'categorytree-mode-all' => 'totes les pâges',
-	'categorytree-collapse' => 'Recllôre',
-	'categorytree-expand' => 'Dèvelopar',
+	'categorytree-collapse' => 'recllôre',
+	'categorytree-expand' => 'dèvelopar',
+	'categorytree-member-counts' => 'contint $1 sot-catègorie{{PLURAL:$1||s}}, $2 pâge{{PLURAL:$2||s}} et $3 fichiér{{PLURAL:$3||s}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vouedo',
 	'categorytree-load' => 'Uvrir',
 	'categorytree-loading' => 'uvèrtura...',
 	'categorytree-nothing-found' => 'Pas trovâ, dèsolâ.',
 	'categorytree-no-subcategories' => 'Gins de sot-catègorie.',
+	'categorytree-no-parent-categories' => 'gins de catègorie parenta',
 	'categorytree-no-pages' => 'Gins d’articllo ou de sot-catègorie.',
 	'categorytree-not-found' => 'La catègorie <tt>$1</tt> at pas étâ trovâ.',
 	'categorytree-error' => 'Problèmo de chargement de les balyês.',
@@ -1109,11 +1617,13 @@
 	'categorytree' => 'Arbul des categoriis',
 	'categorytree-portlet' => 'Categoriis',
 	'categorytree-legend' => 'Mostre arbul des categoriis',
+	'categorytree-desc' => 'Navigazion dinamic te [[Special:CategoryTree|struture des categoriis]]',
 	'categorytree-header' => 'Inserìs il non de categorie di cui tu vuelis viodi i siei contignûts intune struture a arbul.
 Cheste funzion e à bisugne di funzions avanzadis JavaScript, cognossudis come AJAX.
 Se tu âs un sgarfadôr a vonde vieri, o tu âs disativât JavaScript, cheste pagjine no funzionarà.',
 	'categorytree-category' => 'Categorie:',
 	'categorytree-go' => 'Mostre arbul',
+	'categorytree-parents' => 'Categoriis superiôrs',
 	'categorytree-mode-categories' => 'mostre dome lis categoriis',
 	'categorytree-mode-pages' => 'dutis lis pagjinis, fûr che i files',
 	'categorytree-mode-all' => 'dutis lis pagjinis',
@@ -1132,12 +1642,15 @@
 );
 
 /** Western Frisian (Frysk)
+ * @author SK-luuut
  * @author Snakesteuben
  */
 $messages['fy'] = array(
 	'categorytree' => 'Kategorybeam',
+	'categorytree-portlet' => 'Kategoryen',
+	'categorytree-legend' => 'Lit kategorystambeam sjen',
 	'categorytree-header' => 'Folje in kategorynamme yn om de ynhâld yn in beamstruktuer te sjen. Tink dêrom dat dit spesjale JavaScript funksjes brûkt bekend as AJAX. At jo in tige âlde blêdzjer hawwe of jo hawwe JavaScript net oan stean, dan wurket dit net.',
-	'categorytree-category' => 'Kategory beam',
+	'categorytree-category' => 'Kategory:',
 	'categorytree-go' => 'Los',
 	'categorytree-mode-categories' => 'allinne kategoryen',
 	'categorytree-mode-pages' => 'alle siden útsein ôfbylden',
@@ -1167,7 +1680,7 @@
 	'categorytree-header' => 'Cuir isteach ainm catagóra chun a hinneachar a thaispeáint i struchtúr crainn.
 Tabhair faoi deara gur riachtanach ardfheidhmiúlacht JavaScript (AJAX) a bheith agat.
 Má tá do bhrabhsálaí róshean, nó má dhíchumasaigh tú JavaScript, ní oibreoidh sé.',
-	'categorytree-category' => 'Catagóir',
+	'categorytree-category' => 'Catagóir:',
 	'categorytree-go' => 'Taispeán an Crann',
 	'categorytree-parents' => 'Máthairnóid',
 	'categorytree-mode-categories' => 'catagóirí amháin',
@@ -1195,20 +1708,24 @@
 $messages['gl'] = array(
 	'categorytree' => 'Árbore de categorías',
 	'categorytree-portlet' => 'Categorías',
-	'categorytree-legend' => 'Amosar a árbore de categorías',
-	'categorytree-desc' => 'Trebello baseado no AJAX para amosar a [[Special:CategoryTree|estrutura das categorías]] dun wiki',
-	'categorytree-header' => 'Introduza o nome dunha categoría para ver o contido da estrutura da árbore.
-Déase conta de que se require a funcionalidade avanzada do JavaScript, coñecida como AJAX.
-Se ten un navegador moi vello, ou deshabilitado para o JavaScript, non vai funcionar.',
+	'categorytree-legend' => 'Mostrar a árbore de categorías',
+	'categorytree-desc' => 'Trebello baseado no AJAX para mostrar a [[Special:CategoryTree|estrutura das categorías]] dun wiki',
+	'categorytree-header' => 'Introduza o nome dunha categoría para ver o seu contido nunha estrutura da árbore.
+Teña en conta que é necesaria a funcionalidade avanzada do JavaScript coñecida como AJAX.
+Se o navegador é moi vello ou ten o JavaScript desactivado isto non vai funcionar.',
 	'categorytree-category' => 'Categoría:',
-	'categorytree-go' => 'Amosar a árbore',
+	'categorytree-go' => 'Mostrar a árbore',
 	'categorytree-parents' => 'Categoría raíz',
-	'categorytree-mode-categories' => 'só categorías',
-	'categorytree-mode-pages' => 'páxinas agás ficheiros',
+	'categorytree-mode-categories' => 'só as categorías',
+	'categorytree-mode-pages' => 'páxinas agás os ficheiros',
 	'categorytree-mode-all' => 'todas as páxinas',
 	'categorytree-collapse' => 'contraer',
 	'categorytree-expand' => 'expandir',
 	'categorytree-member-counts' => 'contén {{PLURAL:$1|unha subcategoría|$1 subcategorías}}, {{PLURAL:$2|unha páxina|$2 páxinas}} e mais {{PLURAL:$3|un ficheiro|$3 ficheiros}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'baleira',
 	'categorytree-load' => 'cargar',
 	'categorytree-loading' => 'cargando…',
 	'categorytree-nothing-found' => 'non se atopou nada',
@@ -1216,8 +1733,8 @@
 	'categorytree-no-parent-categories' => 'non hai categorías superiores a esta',
 	'categorytree-no-pages' => 'non hai páxinas nin subcategorías',
 	'categorytree-not-found' => 'A categoría "<i>$1</i>" non foi atopada',
-	'categorytree-error' => 'Problema da carga de datos.',
-	'categorytree-retry' => 'Por favor, agarde un momento e ténteo de novo.',
+	'categorytree-error' => 'Problema coa carga de datos.',
+	'categorytree-retry' => 'Agarde un momento e inténteo de novo.',
 );
 
 /** Ancient Greek (Ἀρχαία ἑλληνικὴ)
@@ -1244,6 +1761,7 @@
 );
 
 /** Swiss German (Alemannisch)
+ * @author Als-Chlämens
  * @author Als-Holder
  * @author Hendergassler
  */
@@ -1263,6 +1781,10 @@
 	'categorytree-collapse' => 'zueklappe',
 	'categorytree-expand' => 'ufklappe',
 	'categorytree-member-counts' => 'het {{PLURAL:$1|1 Unterkategori|$1 Unterkategorie}}, {{PLURAL:$2|1 Syte|$2 Syte}}, un {{PLURAL:$3|1 Datei|$3 Dateie}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'läär',
 	'categorytree-load' => 'lade',
 	'categorytree-loading' => 's isch am Laade ...',
 	'categorytree-nothing-found' => 'nyt gfunde',
@@ -1275,13 +1797,40 @@
 );
 
 /** Gujarati (ગુજરાતી)
+ * @author Ankit
+ * @author Ashok modhvadia
  * @author Dsvyas
  */
 $messages['gu'] = array(
+	'categorytree' => 'શ્રેણીવૃક્ષ',
+	'categorytree-portlet' => 'શ્રેણીઓ',
+	'categorytree-legend' => 'શ્રેણીવૃક્ષ બતાવો',
+	'categorytree-desc' => '[[Special:CategoryTree|શ્રેણી રચના]]નું ગતિશીલ સંચાલન',
+	'categorytree-header' => 'શ્રેણીની વિષયસૂચી ને વૃક્ષસંરચનામાં જોવા માટે શ્રેણીનું નામ દાખલ કરો.
+એ વાતની નોંધ લેશો કે, આ માટે AJAX તરીકે ઓળખાતી સુધરેલી જાવાસ્ક્રિપ્ટ કાર્યક્ષમતા જરૂરી છે.
+જો તમારૂં બ્રાઉઝર અતિ જુનું હશે કે જાવાસ્ક્રિપ્ટ અક્રિય કરેલી હશે તો આ કાર્ય કરશે નહીં.',
+	'categorytree-category' => 'શ્રેણી:',
 	'categorytree-go' => 'વૃક્ષ બતાવો',
 	'categorytree-parents' => 'પિતૃ',
+	'categorytree-mode-categories' => 'ફક્ત શ્રેણીઓ',
+	'categorytree-mode-pages' => 'ફાઇલો સિવાયનાં પાનાઓ',
 	'categorytree-mode-all' => 'બધા પાનાં',
+	'categorytree-collapse' => 'સંકેલો',
+	'categorytree-expand' => 'વિસ્તારો',
+	'categorytree-member-counts' => 'સમાવિષ્ટ {{PLURAL:$1|૧ ઉપશ્રેણી|$1 ઉપશ્રેણીઓ}}, {{PLURAL:$2|૧ પાનું|$2 પાનાંઓ}}, અને {{PLURAL:$3|૧ ફાઇલ|$3 ફાઇલો}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'ખાલી',
+	'categorytree-load' => 'ભારાક્રાન્ત',
+	'categorytree-loading' => 'ભારાક્રાન્તિત...',
 	'categorytree-nothing-found' => 'કઈ ન મળ્યું',
+	'categorytree-no-subcategories' => 'ઉપશ્રેણીઓ નથી',
+	'categorytree-no-parent-categories' => 'પૈતૃકશ્રેણીઓ નથી',
+	'categorytree-no-pages' => 'પાનાઓ કે ઉપશ્રેણીઓ નથી',
+	'categorytree-not-found' => 'શ્રેણી <i>$1</i> મળેલ નથી',
+	'categorytree-error' => 'ડેટા ભારાક્રાંતરણમાં સમસ્યા.',
+	'categorytree-retry' => 'કૃપયા એક ક્ષણ પ્રતીક્ષા કરી ફરી પ્રયત્ન કરો',
 );
 
 /** Manx (Gaelg)
@@ -1290,9 +1839,9 @@
 $messages['gv'] = array(
 	'categorytree' => 'BilleyRonnaghyn',
 	'categorytree-portlet' => 'Ronnaghyn',
-	'categorytree-legend' => 'Billey ronnaghyn y haishbyney',
+	'categorytree-legend' => 'Taishbyney billey ronnaghyn',
 	'categorytree-category' => 'Ronney:',
-	'categorytree-go' => 'Billey y haishbyney',
+	'categorytree-go' => 'Taishbyney billey',
 	'categorytree-mode-categories' => 'ronnaghyn ynrican',
 	'categorytree-mode-all' => 'dagh ooilley ghuillag',
 	'categorytree-collapse' => 'filley',
@@ -1302,6 +1851,11 @@
 	'categorytree-no-subcategories' => 'gyn fo-ronnaghyn',
 );
 
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'categorytree-category' => 'Rukuni:',
+);
+
 /** Hakka (Hak-kâ-fa)
  * @author Hakka
  */
@@ -1321,6 +1875,7 @@
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
  */
 $messages['he'] = array(
@@ -1328,8 +1883,10 @@
 	'categorytree-portlet' => 'קטגוריות',
 	'categorytree-legend' => 'הצגת עץ קטגוריות',
 	'categorytree-desc' => 'כלי מבוסס AJAX להצגת [[Special:CategoryTree|מבנה הקטגוריות]] של אתר ויקי',
-	'categorytree-header' => 'הקלידו שם קטגוריה כדי לראות את תכניה במבנה עץ. שימו לב שהדבר דורש תכונת JavaScript מתקדמת, הידועה בשם AJAX. אם יש לכם דפדפן ישן מאוד, או ש־JavaScript מנוטרלת אצלכם בדפדפן, הוא לא יעבוד.',
-	'categorytree-category' => 'קטגוריה',
+	'categorytree-header' => 'הקלידו שם קטגוריה כדי לראות את תכניה במבנה עץ.
+שימו לב שהדבר דורש יכולת JavaScript מתקדמת, הידועה בשם AJAX.
+אם יש לכם דפדפן ישן מאוד, או שהתמיכה ב־JavaScript כבויה אצלכם בדפדפן, זה לא יעבוד.',
+	'categorytree-category' => 'קטגוריה:',
 	'categorytree-go' => 'הצגת העץ',
 	'categorytree-parents' => 'הורים',
 	'categorytree-mode-categories' => 'קטגוריות בלבד',
@@ -1338,22 +1895,30 @@
 	'categorytree-collapse' => 'כיווץ',
 	'categorytree-expand' => 'הרחבה',
 	'categorytree-member-counts' => 'כוללת {{PLURAL:$1|קטגוריית משנה אחת|$1 קטגוריות משנה}}, {{PLURAL:$2|דף אחד|$2 דפים}}, ו{{PLURAL:$3|קובץ אחד|־$3 קבצים}}',
+	'categorytree-num-categories' => "{{PLURAL:$1|קט' אחת|$1 קט'}}",
+	'categorytree-num-pages' => '{{PLURAL:$1|דף אחד|$1 דפים}}',
+	'categorytree-num-files' => "{{PLURAL:$1|קובץ אחד|$1 קב'}}",
+	'categorytree-num-empty' => 'ריקה',
 	'categorytree-load' => 'טעינה',
 	'categorytree-loading' => 'בטעינה',
 	'categorytree-nothing-found' => 'לא נמצאו תוצאות',
 	'categorytree-no-subcategories' => 'אין קטגוריות משנה',
 	'categorytree-no-parent-categories' => 'אין קטגוריות הורה',
 	'categorytree-no-pages' => 'אין דפים או קטגוריות משנה',
-	'categorytree-not-found' => "הקטגוריה '''$1''' לא נמצאה",
-	'categorytree-error' => 'בעיה בטעינת המידע.',
+	'categorytree-not-found' => 'הקטגוריה <i>$1</i> לא נמצאה',
+	'categorytree-error' => 'בעיה בטעינת הנתונים.',
 	'categorytree-retry' => 'אנא המתינו מעט ונסו שנית.',
 );
 
 /** Hindi (हिन्दी)
+ * @author Kannankumar
  * @author Kaustubh
+ * @author Pooja.srivastava
+ * @author Shyam123.ckp
  */
 $messages['hi'] = array(
 	'categorytree' => 'श्रेणीवृक्ष',
+	'categorytree-portlet' => 'श्रेणियाँ',
 	'categorytree-legend' => 'श्रेणीवृक्ष दिखायें',
 	'categorytree-desc' => 'विकिकी [[Special:CategoryTree|श्रेणीयाँ]] दिखानेके लिये AJAX से बना औज़ार',
 	'categorytree-header' => 'एक श्रेणीके कन्टेन्ट्स वृक्ष के रूपमें देखने के लिये उसका नाम दें।
@@ -1363,14 +1928,20 @@
 	'categorytree-go' => 'वृक्ष दिखायें',
 	'categorytree-parents' => 'पालक',
 	'categorytree-mode-categories' => 'सिर्फ श्रेणीयाँ',
-	'categorytree-mode-pages' => 'चित्र ना होने वाले पन्ने',
+	'categorytree-mode-pages' => 'श्रेणी पेड़ मोड पृष्ठों',
 	'categorytree-mode-all' => 'सभी पन्ने',
 	'categorytree-collapse' => 'छोटा करें',
 	'categorytree-expand' => 'बडा करें',
+	'categorytree-member-counts' => 'इसमे {{PLURAL:$1| 1 श्रेणि | $1  श्रेणियाँ}},  {{PLURAL:$2| 1 पृष्ठ| $2  पृष्ठों}}, और  {{PLURAL:$3| 1 फाइल | $3  फ़ाइलें}} हे ।',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'खाली',
 	'categorytree-load' => 'लोड करें',
 	'categorytree-loading' => 'लोड कर रहें हैं...',
 	'categorytree-nothing-found' => 'कुछ भी मिला नहीं',
 	'categorytree-no-subcategories' => 'उपश्रेणीयाँ नहीं हैं',
+	'categorytree-no-parent-categories' => 'कोई उपर् कि श्रेणियाँ नहि हे',
 	'categorytree-no-pages' => 'लेख या उपश्रेणीयाँ नहीं हैं',
 	'categorytree-not-found' => 'श्रेणी <i>$1</i> मिली नहीं',
 	'categorytree-error' => 'डाटा लोड करने में समस्या।',
@@ -1379,8 +1950,8 @@
 
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
+ * @author Ex13
  * @author SpeedyGonsales
- * @author Suradnik13
  */
 $messages['hr'] = array(
 	'categorytree' => 'Stablasti prikaz hijerarhije kategorija',
@@ -1426,6 +1997,10 @@
 	'categorytree-collapse' => 'schować',
 	'categorytree-expand' => 'pokazać',
 	'categorytree-member-counts' => 'wobsahuje {{PLURAL:$1|1 podkategoriju|$1 podkategoriji|$1 podkategorije|$1 podkategorijow}}, {{PLURAL:$2|1 stronu|$2 stronje|$2 strony|$2 stronow}} a {{PLURAL:$3|1 dataju|$3 dataji|$3 dataje|$3 datajow}}',
+	'categorytree-num-categories' => '$1 k',
+	'categorytree-num-pages' => '$1 s',
+	'categorytree-num-files' => '$1 d',
+	'categorytree-num-empty' => 'prózdny',
 	'categorytree-load' => 'začitać',
 	'categorytree-loading' => 'čita so…',
 	'categorytree-nothing-found' => 'ničo namakane',
@@ -1438,35 +2013,38 @@
 );
 
 /** Haitian (Kreyòl ayisyen)
+ * @author Boukman
  * @author Masterches
  */
 $messages['ht'] = array(
 	'categorytree' => 'Òganizasyon kategori yo',
 	'categorytree-legend' => 'Montre òganizasyon pou kategori a',
-	'categorytree-desc' => 'Jwèt, gadjèt sòti nan AJAX pou montre [[Special:CategoryTree|òganizasyon kategori ]] yon wiki.',
-	'categorytree-header' => 'Antre non yon kategori pou wè sa l genyen anndan l, òganizasyon l.
-Tande byen ke sa mande fonksyon JavaScript ki gen wo nivo tankou AJAX.
-Si ou ta genyen yon vye navigatè (navigatè, bwozè entènèt), oubyen JavaScript pa aktive, li pe ke mache byen.',
+	'categorytree-desc' => 'Gade [[Special:CategoryTree|òganizasyon kategori]] toutpandan l ap chanje.',
+	'categorytree-header' => 'Antre non yon kategori pou wè sa li genyen anndan li sou plizyè nivo.
+Note byen ke sa mande fonksyon avanse JavaScript ki rele AJAX.
+Si ou genyen yon ansyen navigatè entènèt, oubyen JavaScript pa aktive, li pap mache.',
 	'categorytree-category' => 'Kategori:',
-	'categorytree-go' => 'Montre òganizasyon, estrikti',
-	'categorytree-parents' => 'Papa ak manman',
+	'categorytree-go' => 'Montre òganizasyon sou plizyè nivo',
+	'categorytree-parents' => 'kategori ki gen pi wo nivo',
 	'categorytree-mode-categories' => 'Kategori yo sèlman',
-	'categorytree-mode-pages' => 'paj san imaj, retire tout imaj nan paj an',
+	'categorytree-mode-pages' => 'paj yo (pa gen imaj yo)',
 	'categorytree-mode-all' => 'tout paj yo',
-	'categorytree-collapse' => 'fème tout seksyon yo',
-	'categorytree-expand' => 'Elaji seksyon an',
-	'categorytree-load' => 'Chaje, ouvri',
+	'categorytree-collapse' => 'redui',
+	'categorytree-expand' => 'etann',
+	'categorytree-load' => 'Chaje',
 	'categorytree-loading' => 'ap chaje...',
-	'categorytree-nothing-found' => 'nou pa twouve anyen ki ap koresponn',
+	'categorytree-nothing-found' => 'nou pa jwenn anyen',
 	'categorytree-no-subcategories' => 'kategori sa pa gen pitit, pa gen kategori pi ba.',
-	'categorytree-no-pages' => 'pa gen paj oubyen atik oubyen kategori pi ba',
+	'categorytree-no-pages' => 'pa gen paj oubyen kategori ki pi ba',
 	'categorytree-not-found' => 'Nou pa twouve kategori <i>$1</i>',
 	'categorytree-error' => 'Pwoblèm lè nou tap chaje, ouvri done yo.',
-	'categorytree-retry' => 'Souple, rete yon enstan, yon moman epi eseye ankò.',
+	'categorytree-retry' => 'Tanpri, tann yon moman epi eseye ankò.',
 );
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Dj
+ * @author Glanthor Reviol
  * @author KossuthRad
  */
 $messages['hu'] = array(
@@ -1477,27 +2055,32 @@
 	'categorytree-header' => 'Add meg annak a kategóriának a nevét, amelynek meg szeretnéd tekinteni
 a fastruktúráját. Ehhez egy, AJAX nevű JavaScript-technológia szükséges.
 Ha túlságosan régi böngésződ van, vagy a JavaScript le van tiltva, akkor nem fog működni.',
-	'categorytree-category' => 'Kategória',
+	'categorytree-category' => 'Kategória:',
 	'categorytree-go' => 'Mehet',
-	'categorytree-parents' => 'Szülő kategóriák',
+	'categorytree-parents' => 'Szülőkategóriák',
 	'categorytree-mode-categories' => 'csak kategóriák',
-	'categorytree-mode-pages' => 'lapok a fájlok nélkül',
-	'categorytree-mode-all' => 'Az összes oldal',
-	'categorytree-collapse' => 'összecsuk',
+	'categorytree-mode-pages' => 'lapok fájlok nélkül',
+	'categorytree-mode-all' => 'az összes oldal',
+	'categorytree-collapse' => 'becsuk',
 	'categorytree-expand' => 'kinyit',
 	'categorytree-member-counts' => '{{PLURAL:$1|egy|$1}} alkategóriát, {{PLURAL:$2|egy|$2}} lapot, és {{PLURAL:$3|egy|$3}} fájlt tartalmaz',
-	'categorytree-load' => 'Töltés',
-	'categorytree-loading' => 'töltés',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 L',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'üres',
+	'categorytree-load' => 'betöltés',
+	'categorytree-loading' => 'betöltés…',
 	'categorytree-nothing-found' => 'nincs találat',
-	'categorytree-no-subcategories' => 'nincs alkategória.',
+	'categorytree-no-subcategories' => 'nincsenek alkategóriák',
 	'categorytree-no-parent-categories' => 'nincsenek szülőkategóriái',
-	'categorytree-no-pages' => 'nincs cikk vagy alkategória.',
-	'categorytree-not-found' => 'Kategória <i>$1</i> nem található',
-	'categorytree-error' => 'Probélma a betöltődő adattal',
-	'categorytree-retry' => 'Kérlek várj egy pillanatot és próbáld újra.',
+	'categorytree-no-pages' => 'nincsenek lapok és alkategóriák',
+	'categorytree-not-found' => 'A következő kategória nem található: <i>$1</i>',
+	'categorytree-error' => 'Hiba történt az adatok betöltése közben.',
+	'categorytree-retry' => 'Várj egy kicsit, majd próbáld újra!',
 );
 
 /** Armenian (Հայերեն)
+ * @author Chaojoker
  * @author Teak
  */
 $messages['hy'] = array(
@@ -1505,18 +2088,18 @@
 	'categorytree-portlet' => 'Կատեգորիաներ',
 	'categorytree-legend' => 'Ցույց տալ կատեգորիաների ծառը',
 	'categorytree-desc' => '[[Special:CategoryTree|Կատեգորիայի կառուցվծքի]] դինամիկ արտապատկերում',
-	'categorytree-header' => 'Մուտքագրեք կատեգորիայի անունը` ծառի համակարգը տեսնելու համար։
-Ի նկատի ունեցեք, որ սա հնարավոր է միայն ձեր բրաուզերի կողմից AJAX-ի ֆունկցիանալության դեպքում։
-Եթե դուք աշխատում եք շատ հին բրաուզերով, կամ ձեր JavaScript-ը անջատված է` այն չի գործի։',
-	'categorytree-category' => 'Կատեգորիա.',
+	'categorytree-header' => 'Մուտքագրեք կատեգորիայի անունը՝ ծառի համակարգը տեսնելու համար։
+Ի նկատի ունեցեք, որ սա հնարավոր է միայն ձեր զննարկիչի կողմից AJAX-ի ֆունկցիանալության դեպքում։
+Եթե դուք աշխատում եք շատ հին զննարկիչով, կամ ձեր JavaScript-ը անջատված է՝ այն չի գործի։',
+	'categorytree-category' => 'Կատեգորիա:',
 	'categorytree-go' => 'Ցույց տալ ծառը',
 	'categorytree-parents' => 'Ծնող-կատեգորիաներ',
 	'categorytree-mode-categories' => 'միայն կատեգորիաները',
-	'categorytree-mode-pages' => 'ֆայլերից բացի',
+	'categorytree-mode-pages' => 'նիշքերից բացի',
 	'categorytree-mode-all' => 'բոլոր էջերը',
 	'categorytree-collapse' => 'փակել',
 	'categorytree-expand' => 'բացել',
-	'categorytree-member-counts' => 'պարունակում է {{PLURAL:$1|1 ենթակատեգորիա|$1 ենթակատեգորիա}}, {{PLURAL:$2|1 էջ|$2 էջ}} և {{PLURAL:$3|1 ֆայլ|$3 ֆայլ}}',
+	'categorytree-member-counts' => 'պարունակում է {{PLURAL:$1|1 ենթակատեգորիա|$1 ենթակատեգորիա}}, {{PLURAL:$2|1 էջ|$2 էջ}} և {{PLURAL:$3|1 նիշք|$3 նիշք}}',
 	'categorytree-load' => 'բեռնել',
 	'categorytree-loading' => 'բեռնվում է',
 	'categorytree-nothing-found' => 'ոչինչ չի գտնվել',
@@ -1546,21 +2129,27 @@
 	'categorytree-mode-categories' => 'categorias solmente',
 	'categorytree-mode-pages' => 'paginas excepte files',
 	'categorytree-mode-all' => 'tote le paginas',
-	'categorytree-collapse' => 'collaber',
-	'categorytree-expand' => 'expander',
+	'categorytree-collapse' => 'plicar',
+	'categorytree-expand' => 'displicar',
 	'categorytree-member-counts' => 'contine {{PLURAL:$1|1 subcategoria|$1 subcategorias}}, {{PLURAL:$2|1 pagina|$2 paginas}}, e {{PLURAL:$3|1 file|$3 files}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vacue',
 	'categorytree-load' => 'cargar',
 	'categorytree-loading' => 'cargamento in curso…',
 	'categorytree-nothing-found' => 'nihil trovate',
-	'categorytree-no-subcategories' => 'nulle subcategorias',
-	'categorytree-no-parent-categories' => 'nulle categorias superior',
-	'categorytree-no-pages' => 'nulle paginas o subcategorias',
+	'categorytree-no-subcategories' => 'nulle subcategoria',
+	'categorytree-no-parent-categories' => 'nulle categoria superior',
+	'categorytree-no-pages' => 'nulle pagina o subcategoria',
 	'categorytree-not-found' => 'Categoria <i>$1</i> non trovate',
-	'categorytree-error' => 'Problema al cargar le datos.',
-	'categorytree-retry' => 'Per favor attende un momento e reprova.',
+	'categorytree-error' => 'Problema de cargamento de datos.',
+	'categorytree-retry' => 'Per favor attende un momento e reproba.',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ * @author Farras
  * @author IvanLanin
  * @author Rex
  */
@@ -1572,7 +2161,7 @@
 	'categorytree-header' => 'Masukkan suatu nama kategori untuk melihat isinya dalam bentuk pohon.
 Harap diperhatikan bahwa fitur ini memerlukan dukungan JavaScript tingkat lanjut yang dikenal sebagai AJAX.
 Jika Anda menggunakan penjelajah web lama, atau mematikan fungsi JavaScript Anda, fitur ini tidak dapat dijalankan.',
-	'categorytree-category' => 'Kategori',
+	'categorytree-category' => 'Kategori:',
 	'categorytree-go' => 'Tampilkan',
 	'categorytree-parents' => 'Atasan',
 	'categorytree-mode-categories' => 'hanya kategori',
@@ -1581,8 +2170,12 @@
 	'categorytree-collapse' => 'tutup',
 	'categorytree-expand' => 'buka',
 	'categorytree-member-counts' => 'memiliki {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 halaman|$2 halaman}}, dan {{PLURAL:$3|1 berkas|$3 berkas}}',
-	'categorytree-load' => 'muat',
-	'categorytree-loading' => 'memuat…',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'kosong',
+	'categorytree-load' => 'muatkan',
+	'categorytree-loading' => 'memuat...',
 	'categorytree-nothing-found' => 'tidak ditemukan',
 	'categorytree-no-subcategories' => 'tidak ada subkategori',
 	'categorytree-no-parent-categories' => 'tidak ada kategori lebih tinggi',
@@ -1599,17 +2192,96 @@
 	'categorytree-category' => 'Categorie:',
 );
 
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'categorytree' => 'Egbü nke ébéanọr',
+	'categorytree-portlet' => 'Ébéanọr',
+	'categorytree-legend' => 'Zi egbü nke ébéanọr',
+	'categorytree-category' => 'Ébéonọr:',
+	'categorytree-go' => 'Zí oshíshí',
+	'categorytree-parents' => 'Ndi mụrụ',
+	'categorytree-mode-categories' => 'Náni ébéanọr',
+	'categorytree-mode-all' => 'Ihü nílé',
+	'categorytree-collapse' => 'zekpùdo',
+	'categorytree-expand' => 'Sá àsáá',
+	'categorytree-load' => 'mẹ kó byá',
+	'categorytree-loading' => 'ó byáwálá...',
+	'categorytree-no-subcategories' => 'ébéonọr-ime àdíghị',
+	'categorytree-no-pages' => 'ihü ma ébéonọr-ímé àdíghị',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'categorytree' => 'Kategoria a kayo',
+	'categorytree-portlet' => 'Dagiti kategoria',
+	'categorytree-legend' => 'Ipakita ti kategoria a kayo',
+	'categorytree-desc' => 'Agpadaliasat a dinamik ti [[Special:CategoryTree|pinakapatakder ti kategoria]]',
+	'categorytree-header' => 'Ikabil ti nagan ti kategoria tapno makita dagiti nagyan na a kasla kayo a pinakatakder .
+Kitaem a  daytoy ket masapul na ti JavaScript nga opisio a makunkuna nga AJAX.
+No adda daan a pagbasabasam, wenno nabaldado ti JavaScript mo, saan daytoy nga agbalin.',
+	'categorytree-category' => 'Kategoria:',
+	'categorytree-go' => 'Ipakita ti kayo',
+	'categorytree-parents' => 'Naggapuan na',
+	'categorytree-mode-categories' => 'dagiti kategoria laeng',
+	'categorytree-mode-pages' => 'dagiti panid mailaksid dagiti papeles',
+	'categorytree-mode-all' => 'amin a pampanid',
+	'categorytree-collapse' => 'marba',
+	'categorytree-expand' => 'palawaen',
+	'categorytree-member-counts' => 'Dagiti nagyan a/nga {{PLURAL:$1|1 apo ti kategoria|$1 dagiti apo ti kategoria}}, {{PLURAL:$2|1 panid|$2 dagiti panid}}, ken {{PLURAL:$3|1 papeles|$3 dagiti papeles}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'awan ti nagyan na',
+	'categorytree-load' => 'agkarga',
+	'categorytree-loading' => 'agkarkarga...',
+	'categorytree-nothing-found' => 'awan ti nabirukan',
+	'categorytree-no-subcategories' => 'awan dagiti apo ti kategoria',
+	'categorytree-no-parent-categories' => 'awan ti naggapuan na a kategoria',
+	'categorytree-no-pages' => 'awan dagiti panid wenno dagiti apo ti kategoria',
+	'categorytree-not-found' => 'Kategoria <i>$1</i> saan a nabirukan',
+	'categorytree-error' => 'Parikut ti pinagkarga ti linaon.',
+	'categorytree-retry' => 'Pangngaasi ti aguray ti madamdama ken ipadas mo manen.',
+);
+
+/** Ingush (ГІалгІай Ğalğaj)
+ * @author Sapral Mikail
+ */
+$messages['inh'] = array(
+	'categorytree' => 'Цатегий гаьн',
+	'categorytree-portlet' => 'Цатегаш',
+	'categorytree-legend' => 'Цатегий гаьн хьахьокха',
+	'categorytree-category' => 'Цатег:',
+	'categorytree-go' => 'Га хьокха',
+	'categorytree-parents' => 'Даь-ноаной цатегаш',
+	'categorytree-mode-categories' => 'Алха цатегаш',
+	'categorytree-mode-all' => 'eррига оагIувнаш',
+	'categorytree-num-empty' => 'яьсса',
+	'categorytree-load' => 'чуяьккха',
+	'categorytree-loading' => 'чуяьккхаш латт...',
+	'categorytree-nothing-found' => 'Укх цатего цхьаккха чурацатега чу ца лоац',
+	'categorytree-no-subcategories' => 'чурацатегаш яц',
+	'categorytree-no-parent-categories' => 'даь-ноаной чурацатегаш яц',
+	'categorytree-no-pages' => 'чурацатегашеи йоазувнашеи яц',
+);
+
 /** Ido (Ido)
  * @author Malafaya
  */
 $messages['io'] = array(
+	'categorytree' => 'Kategorio-arboro',
 	'categorytree-portlet' => 'Kategorii',
+	'categorytree-legend' => 'Montrar kategorio-arboro',
 	'categorytree-category' => 'Kategorio:',
 	'categorytree-go' => 'Montrar Arboro',
 	'categorytree-mode-categories' => 'nur kategorii',
 	'categorytree-mode-pages' => 'pagini ecepte arkivi',
 	'categorytree-mode-all' => 'omna pagini',
 	'categorytree-member-counts' => 'kontenas {{PLURAL:$1|1 subkategorio|$1 subkategorii}}, {{PLURAL:$2|1 pagino|$2 pagini}}, ed {{PLURAL:$3|1 arkivo|$3 arkivi}}',
+	'categorytree-load' => 'kargar',
 	'categorytree-nothing-found' => 'nulo trovita',
 	'categorytree-no-subcategories' => 'nula subkategorii',
 	'categorytree-no-pages' => 'nula pagini o subkategorii',
@@ -1647,6 +2319,8 @@
 
 /** Italian (Italiano)
  * @author .anaconda
+ * @author Aushulz
+ * @author Beta16
  * @author BrokenArrow
  * @author Cruccone
  * @author Darth Kule
@@ -1668,6 +2342,10 @@
 	'categorytree-collapse' => 'comprimi',
 	'categorytree-expand' => 'espandi',
 	'categorytree-member-counts' => 'contiene {{PLURAL:$1|1 sottocategoria|$1 sottocategorie}}, {{PLURAL:$2|1 pagina|$2 pagine}} e {{PLURAL:$3|1 file|$3 file}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vuota',
 	'categorytree-load' => 'carica',
 	'categorytree-loading' => 'caricamento in corso',
 	'categorytree-nothing-found' => 'nessun risultato',
@@ -1685,6 +2363,7 @@
  * @author Fryed-peach
  * @author JtFuruhata
  * @author Kahusi
+ * @author Whym
  */
 $messages['ja'] = array(
 	'categorytree' => 'カテゴリツリー',
@@ -1700,7 +2379,11 @@
 	'categorytree-mode-all' => '全ページ',
 	'categorytree-collapse' => '下位カテゴリを非表示',
 	'categorytree-expand' => '下位カテゴリを表示',
-	'categorytree-member-counts' => '$1個のサブカテゴリ、$2件のページ、$3個のファイルを含んでいます',
+	'categorytree-member-counts' => '$1{{PLURAL:$1|サブカテゴリ}}、$2{{PLURAL:$2|ページ}}、$3{{PLURAL:$3|ファイル}}を含んでいます',
+	'categorytree-num-categories' => '$1C',
+	'categorytree-num-pages' => '$1頁',
+	'categorytree-num-files' => '$1F',
+	'categorytree-num-empty' => '空',
 	'categorytree-load' => '下位カテゴリを表示',
 	'categorytree-loading' => '読み込み中…',
 	'categorytree-nothing-found' => '存在しません',
@@ -1770,18 +2453,36 @@
 );
 
 /** Georgian (ქართული)
+ * @author BRUTE
+ * @author ITshnik
  * @author Malafaya
  */
 $messages['ka'] = array(
 	'categorytree' => 'კატეგორიების სქემა',
 	'categorytree-portlet' => 'კატეგორიები',
 	'categorytree-legend' => 'კატეგორიების სქემის ჩვენება',
+	'categorytree-header' => 'შეიყვანეთ კატეგორიის სახელი, რომ დაინახოთ მისი შიგთავსი ხის სტრუქტურის მსგავსად.
+გაითვალისწინეთ, რომ ამისთვის საჭიროა რთული ჯავასკრიპტის ფუნქციონალობა, რომელიც ცნობილია AJAX სახელით.
+თუ ძალიან ძველი ბრაუზერი გაქვთ, ან ჯავასკრიპტი გაუქმებულია, მაშინ ის არ იმუშავებს.',
 	'categorytree-category' => 'კატეგორია:',
 	'categorytree-go' => 'სქემის ჩვენება',
+	'categorytree-parents' => 'მშობლები',
 	'categorytree-mode-categories' => 'მხოლოდ კატეგორიები',
 	'categorytree-mode-pages' => 'გვერდები ფაილების გარდა',
 	'categorytree-mode-all' => 'ყველა გვერდი',
-	'categorytree-not-found' => 'კატეგორია <i>$1</i> არ არსებობს',
+	'categorytree-collapse' => 'ჩაკეცვა',
+	'categorytree-expand' => 'გაშლა',
+	'categorytree-member-counts' => 'შეიცავს {{PLURAL:$1|1 ქვეკატეგორიას|$1 ქვეკატეგორიას}},  {{PLURAL:$2|1 გვერდს|$2 გვერდს}},  და {{PLURAL:$3|1 ფაილს|$3 ფაილს}}',
+	'categorytree-num-empty' => 'ცარიელი',
+	'categorytree-load' => 'ჩატვირთვა',
+	'categorytree-loading' => 'იტვირთება…',
+	'categorytree-nothing-found' => 'ვერაფერი მოიძებნა',
+	'categorytree-no-subcategories' => 'ქვეკატეგორიები არაა',
+	'categorytree-no-parent-categories' => 'მშობელი კატეგორიები არაა',
+	'categorytree-no-pages' => 'არაა გვერდები ან ქვეკატეგორიები',
+	'categorytree-not-found' => 'კატეგორია <i>$1</i> ვერ მოიძებნა',
+	'categorytree-error' => 'ხარვეზი მონაცემთა ჩატვირთვაში.',
+	'categorytree-retry' => 'გთხოვთ, დაიცადეთ ცოტა ხნით და კვლავ სცადეთ.',
 );
 
 /** Kara-Kalpak (Qaraqalpaqsha)
@@ -1791,13 +2492,20 @@
 	'categorytree' => 'Kategoriyalar teregi',
 );
 
+/** Khowar (کھوار)
+ * @author Rachitrali
+ */
+$messages['khw'] = array(
+	'categorytree-portlet' => 'زمرہ جات',
+);
+
 /** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
 $messages['kk-arab'] = array(
 	'categorytree' => 'سانات بۇتاقتارى',
 	'categorytree-header' => 'سانات مازمۇنىڭ بۇتاقتار تۇردە كورۋ ٴۇشىن اتاۋىن ەنگىزىڭىز.
 اڭعارپتا: بۇل ىسكە JavaScript قۇرالىنىڭ AJAX دەگەن كەڭەيتىلگەن قابىلەتى قاجەت بولادى.
 ەگەر شولعىشىڭىز وتە ەسكى, نەمەسە JavaScript وشىرىلگەن بولسا, بۇل ىسكە اسىرىلمايدى.',
-	'categorytree-category' => 'سانات',
+	'categorytree-category' => 'سانات:',
 	'categorytree-go' => 'بۇتاقتارىن كورسەت',
 	'categorytree-parents' => 'جوعارعىلار',
 	'categorytree-mode-categories' => 'تەك ساناتتار',
@@ -1815,13 +2523,13 @@
 	'categorytree-retry' => 'ٴبىر ٴسات كۇتە تۇرىپ قايتالاڭىز.',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'categorytree' => 'Санат бұтақтары',
 	'categorytree-header' => 'Санат мазмұның бұтақтар түрде көру үшін атауын енгізіңіз.
 Аңғарпта: Бұл іске JavaScript құралының AJAX деген кеңейтілген қабілеті қажет болады.
 Егер шолғышыңыз өте ескі, немесе JavaScript өшірілген болса, бұл іске асырылмайды.',
-	'categorytree-category' => 'Санат',
+	'categorytree-category' => 'Санат:',
 	'categorytree-go' => 'Бұтақтарын көрсет',
 	'categorytree-parents' => 'Жоғарғылар',
 	'categorytree-mode-categories' => 'тек санаттар',
@@ -1839,13 +2547,13 @@
 	'categorytree-retry' => 'Бір сәт күте тұрып қайталаңыз.',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'categorytree' => 'Sanat butaqtarı',
 	'categorytree-header' => 'Sanat mazmunıñ butaqtar türde körw üşin atawın engiziñiz.
 Añğarpta: Bul iske JavaScript quralınıñ AJAX degen keñeýtilgen qabileti qajet boladı.
 Eger şolğışıñız öte eski, nemese JavaScript öşirilgen bolsa, bul iske asırılmaýdı.',
-	'categorytree-category' => 'Sanat',
+	'categorytree-category' => 'Sanat:',
 	'categorytree-go' => 'Butaqtarın körset',
 	'categorytree-parents' => 'Joğarğılar',
 	'categorytree-mode-categories' => 'tek sanattar',
@@ -1882,6 +2590,10 @@
 	'categorytree-collapse' => 'បង្រួម',
 	'categorytree-expand' => 'ពន្លាត',
 	'categorytree-member-counts' => 'មាន{{PLURAL:$1|១ចំណាត់ថ្នាក់ក្រុមរង|$1ចំណាត់ថ្នាក់ក្រុមរង}} {{PLURAL:$2|១ទំព័រ|$2ទំព័រ}} និង{{PLURAL:$3|១ឯកសារ|$3ឯកសារ}}',
+	'categorytree-num-categories' => '$1 ចំ',
+	'categorytree-num-pages' => '$1 ទំ',
+	'categorytree-num-files' => '$1 ឯ',
+	'categorytree-num-empty' => 'ទទេ',
 	'categorytree-load' => 'ផ្ទុក',
 	'categorytree-loading' => 'កំពុងផ្ទុក',
 	'categorytree-nothing-found' => 'រកមិនឃើញអ្វីទេ',
@@ -1893,6 +2605,37 @@
 	'categorytree-retry' => 'សូម​រង់ចាំ​មួយភ្លែត​រួច​ព្យាយាម​ម្តងទៀត​។',
 );
 
+/** Kannada (ಕನ್ನಡ)
+ * @author Abhirama
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'categorytree' => 'ವರ್ಗವೃಕ್ಷ',
+	'categorytree-portlet' => 'ವರ್ಗಗಳು',
+	'categorytree-legend' => 'ವರ್ಗವೃಕ್ಷವನ್ನು ತೋರ್ಪಡಿಸಿ',
+	'categorytree-category' => 'ವರ್ಗ:',
+	'categorytree-go' => 'ವೃಕ್ಷವನ್ನು ತೋರ್ಪಡಿಸಿ',
+	'categorytree-parents' => 'ಪೋಷಕರು',
+	'categorytree-mode-categories' => 'ಕೇವಲ ವರ್ಗಗಳು',
+	'categorytree-mode-pages' => 'ಕಡತಗಳಿಲ್ಲದಿರುವ ಪುಟಗಳು',
+	'categorytree-mode-all' => 'ಎಲ್ಲಾ ಪುಟಗಳು',
+	'categorytree-collapse' => 'ಕುಸಿಯಲಿ',
+	'categorytree-expand' => 'ವಿಸ್ತರಿಸಿ',
+	'categorytree-num-categories' => '$1 ವ',
+	'categorytree-num-pages' => '$1 ಪು',
+	'categorytree-num-files' => '$1 ಕ',
+	'categorytree-num-empty' => 'ಖಾಲಿ',
+	'categorytree-load' => 'ಉತ್ಪೂರಿಸು',
+	'categorytree-loading' => 'ಉತ್ಪೂರಿತವಾಗುತ್ತಿದೆ...',
+	'categorytree-nothing-found' => 'ಏನೂ ಸಿಗಲಿಲ್ಲ',
+	'categorytree-no-subcategories' => 'ಉಪವರ್ಗಗಳಿಲ್ಲ',
+	'categorytree-no-parent-categories' => 'ಪೋಷಕ ವರ್ಗಗಳಿಲ್ಲ',
+	'categorytree-no-pages' => 'ಪುಟಗಳು ಅಥವಾ ಉಪವರ್ಗಗಳಿಲ್ಲ',
+	'categorytree-not-found' => 'ಈ <i>$1</i> ವರ್ಗವು ಕಾಣಿಸುತ್ತಿಲ್ಲ',
+	'categorytree-error' => 'ಮಾಹಿತಿ ಉತ್ಪೂರಣೆಯಲ್ಲಿ ತೊಂದರೆಯಾಗಿದೆ.',
+	'categorytree-retry' => 'ಒಂದು ಕ್ಷಣ ಕಾದು ಅನಂತರ ಪ್ರಯತ್ನಿಸಿ.',
+);
+
 /** Korean (한국어)
  * @author Ficell
  * @author Klutzy
@@ -1903,7 +2646,7 @@
 	'categorytree' => '분류 트리',
 	'categorytree-portlet' => '분류',
 	'categorytree-legend' => '분류 트리 보기',
-	'categorytree-desc' => '위키의 [[Special:CategoryTree|분류 구조]]를 볼 수 있는 AJAX 도구',
+	'categorytree-desc' => '[[Special:CategoryTree|분류 구조]]를 동적으로 볼 수 있는 AJAX 도구',
 	'categorytree-header' => '트리 구조로 볼 분류 이름을 입력해주세요.
 이 기능을 사용하려면 웹 브라우저에서 AJAX를 지원해야 합니다.
 오래 된 브라우저를 사용하거나, 브라우저에서 자바스크립트를 사용하지 않도록 설정했다면 트리 기능이 동작하지 않습니다.',
@@ -1915,18 +2658,29 @@
 	'categorytree-mode-all' => '모든 문서를 표시',
 	'categorytree-collapse' => '접기',
 	'categorytree-expand' => '펼치기',
-	'categorytree-member-counts' => '분류는 {{PLURAL:$1|1개의 하위 분류|$1개의 하위 분류}}와, {{PLURAL:$2|1개의 문서|$2개의 문서}}, 그리고 {{PLURAL:$3|1개의 파일|$3개의 파일}}을 포함하고 있습니다.',
+	'categorytree-member-counts' => '하위 분류 $1개, 문서 $2개, 파일 $3개를 포함하고 있습니다.',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => '비었음',
 	'categorytree-load' => '불러오기',
 	'categorytree-loading' => '불러오는 중',
 	'categorytree-nothing-found' => '결과 없음',
 	'categorytree-no-subcategories' => '하위 분류 없음',
 	'categorytree-no-parent-categories' => '상위 분류가 없습니다.',
 	'categorytree-no-pages' => '문서/하위 분류 없음',
-	'categorytree-not-found' => '‘$1’ 분류가 존재하지 않음',
+	'categorytree-not-found' => '‘$1’ 분류가 없습니다',
 	'categorytree-error' => '값을 불러오는 중 오류 발생',
 	'categorytree-retry' => '잠시 후에 다시 시도해주세요.',
 );
 
+/** Karachay-Balkar (Къарачай-Малкъар)
+ * @author Iltever
+ */
+$messages['krc'] = array(
+	'categorytree-legend' => 'Категорияланы терегин кёргюз',
+);
+
 /** Kinaray-a (Kinaray-a)
  * @author Jose77
  */
@@ -1934,7 +2688,7 @@
 	'categorytree-category' => 'Kategorya:',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
@@ -1951,7 +2705,11 @@
 	'categorytree-mode-all' => 'alles: nomaal Sigge, Saachjruppe, un Medije',
 	'categorytree-collapse' => 'zosammefallde',
 	'categorytree-expand' => 'opfallde',
-	'categorytree-member-counts' => 'Do dren {{PLURAL:$1|{{PLURAL:$4|sin|es|es}} ein Ungerjrupp|sin $1 Ungerjruppe|es kein Ungerjrupp}}, {{PLURAL:$2|ein Sigg|$2 Sigge|kein Sigg}}, un {{PLURAL:$3|ein Datei|$3 Dateie|kein Dateie}}, zosamme {{PLURAL:$4|ein Saach|$4 Saache|och nix}}',
+	'categorytree-member-counts' => 'do dren {{PLURAL:$1|{{PLURAL:$4|sin|es|es}} ein Ungerjrupp|sin $1 Ungerjruppe|es kein Ungerjrupp}}, {{PLURAL:$2|ein Sigg|$2 Sigge|kein Sigg}}, un {{PLURAL:$3|ein Datei|$3 Dateie|kein Dateie}}, zosamme {{PLURAL:$4|ein Saach|$4 Saache|och nix}}',
+	'categorytree-num-categories' => '$1 J',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'leddisch',
 	'categorytree-load' => 'lade',
 	'categorytree-loading' => 'am lade…',
 	'categorytree-nothing-found' => 'nix jefonge',
@@ -1963,20 +2721,35 @@
 	'categorytree-retry' => 'Bess_esu joot un donn et noh enem Moment norr_ens probeere',
 );
 
-/** Kurdish (Latin) (Kurdî / كوردی (Latin)) */
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author Erdal Ronahi
+ * @author George Animal
+ * @author Gomada
+ * @author Welathêja
+ */
 $messages['ku-latn'] = array(
+	'categorytree' => 'Dara kategoriyan',
+	'categorytree-portlet' => 'Kategorî',
+	'categorytree-legend' => 'Dara kategoriyan şanî bide',
 	'categorytree-category' => 'Kategorî',
+	'categorytree-go' => 'Darê nîşan bide',
+	'categorytree-mode-categories' => 'tenê kategoriyan',
+	'categorytree-mode-all' => 'hemû rûpel',
 	'categorytree-load' => 'bar bike',
 	'categorytree-loading' => 'tê barkirin',
+	'categorytree-nothing-found' => 'Ti tişt nehate dîtin',
 	'categorytree-no-subcategories' => 'binekategorî tune',
+	'categorytree-no-pages' => 'ti rûpel û binkategorî tinin',
+	'categorytree-not-found' => 'Kategoriya <i>$1</i> nehate dîtin',
 );
 
-/** Cornish (Kernewek)
+/** Cornish (Kernowek)
+ * @author Kernoweger
  * @author Kw-Moon
  */
 $messages['kw'] = array(
-	'categorytree-portlet' => 'Klasyansow',
-	'categorytree-category' => 'Klasyans:',
+	'categorytree-portlet' => 'Classys',
+	'categorytree-category' => 'Class:',
 	'categorytree-mode-all' => 'oll folennow',
 );
 
@@ -1997,6 +2770,7 @@
 	'categorytree-collapse' => 'collabi',
 	'categorytree-expand' => 'dilatare',
 	'categorytree-member-counts' => 'continet {{PLURAL:$1|1 subcategoriam|$1 subcategorias}}, {{PLURAL:$2|1 paginam|$2 paginas}} et {{PLURAL:$3|1 fasciculum|$3 fasciculos}}',
+	'categorytree-num-empty' => 'vacua',
 	'categorytree-load' => 'depromere',
 	'categorytree-loading' => 'depromens…',
 	'categorytree-nothing-found' => 'nullum inventum',
@@ -2008,9 +2782,19 @@
 
 /** Ladino (Ladino)
  * @author Runningfridgesrule
+ * @author Universal Life
  */
 $messages['lad'] = array(
+	'categorytree' => 'Árvole de katēggorías',
+	'categorytree-portlet' => 'Katēggorías',
+	'categorytree-legend' => 'Amostrar el árvole de katēggorías',
 	'categorytree-category' => 'Kategoría:',
+	'categorytree-go' => 'Amostrar el árvole',
+	'categorytree-parents' => 'Parientes',
+	'categorytree-mode-categories' => 'sólo katēggorías',
+	'categorytree-mode-all' => 'todas las hojas',
+	'categorytree-load' => 'cargar',
+	'categorytree-loading' => 'cargando...',
 );
 
 /** Luxembourgish (Lëtzebuergesch)
@@ -2023,7 +2807,7 @@
 	'categorytree-legend' => 'Weis Kategoriestruktur',
 	'categorytree-desc' => "Gadget deen op Ajax opgebaut ass fir d'[[Special:CategoryTree|Kategorie-Struktur]] vun enger Wiki duerzestellen",
 	'categorytree-header' => 'Gitt den Numm vun enger Kategorie an, fir hiren Inhalt als Bam-Struktur ze gesinn.
-Bedenkt, datt dës Fonctioun Java Script Funktioune benotzt, déi als AJAX bekannt sinn. 
+Bedenkt, datt dës Fonctioun Java Script Funktioune benotzt, déi als AJAX bekannt sinn.
 Wann Dir ee ganz ale Browser hutt, oder wann Dir JavaScript ausgeschalt hutt, da fonktionnéiert dëst bei Iech net.',
 	'categorytree-category' => 'Kategorie:',
 	'categorytree-go' => 'Struktur weisen',
@@ -2034,6 +2818,10 @@
 	'categorytree-collapse' => 'Verstoppen',
 	'categorytree-expand' => 'Opklappen',
 	'categorytree-member-counts' => 'besteet aus {{PLURAL:$1|1 Ënnerkategorie|$1 Ënnerkategorien}}, {{PLURAL:$2|1 Säit|$1 Säiten}}, an {{PLURAL:$3|1 Fichier|$3 Fichieren}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'eidel',
 	'categorytree-load' => 'lueden',
 	'categorytree-loading' => 'lueden …',
 	'categorytree-nothing-found' => 'Näischt fonnt',
@@ -2045,6 +2833,13 @@
 	'categorytree-retry' => 'Waart w.e.g. een Ament a probéiert dann nach eng Kéier.',
 );
 
+/** Lezghian (Лезги)
+ * @author Namik
+ */
+$messages['lez'] = array(
+	'categorytree-category' => 'Klватlалар:',
+);
+
 /** Lingua Franca Nova (Lingua Franca Nova)
  * @author Malafaya
  */
@@ -2061,7 +2856,7 @@
  */
 $messages['li'] = array(
 	'categorytree' => 'Categorieboum',
-	'categorytree-portlet' => 'Categorië',
+	'categorytree-portlet' => 'Categorieë',
 	'categorytree-legend' => 'Categorieboum laote zeen',
 	'categorytree-desc' => "AJAX-gebaseerde oetbreijing óm de [[Special:CategoryTree|categoriestructuur]] van 'ne wiki te toeane",
 	'categorytree-header' => "Gaef 'ne categorienaam in om de inhoud es 'ne boumstructuur te bekieke.
@@ -2076,6 +2871,10 @@
 	'categorytree-collapse' => 'inklappe',
 	'categorytree-expand' => 'oetklappe',
 	'categorytree-member-counts' => "bevat {{PLURAL:$1|éin ondercategorie|$1 ondercategorië}}, {{PLURAL:$2|éin pagina|$2 pagina's}} en {{PLURAL:$3|éin bestand|$3 bestande}}",
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 B',
+	'categorytree-num-empty' => 'laeg',
 	'categorytree-load' => 'laje',
 	'categorytree-loading' => "aan 't laje",
 	'categorytree-nothing-found' => 'Dees categorie haet gein subcategorië.',
@@ -2087,6 +2886,42 @@
 	'categorytree-retry' => "Wach estebleef effe en perbeer 't den opnuuj.",
 );
 
+/** Lumbaart (Lumbaart)
+ * @author Dakrismeno
+ */
+$messages['lmo'] = array(
+	'categorytree' => 'Àlbur di categurij',
+	'categorytree-portlet' => 'Categurij',
+	'categorytree-legend' => "Fàm ved l'àlbur di categurij",
+	'categorytree-category' => 'Categuria:',
+	'categorytree-go' => "Mustra l'àlbur",
+	'categorytree-parents' => 'Categurij süperiur',
+	'categorytree-mode-categories' => 'mustra dumà i categurij',
+	'categorytree-mode-pages' => 'tüt i paginn, fö che i sumejanz',
+	'categorytree-mode-all' => 'tüt i paginn',
+	'categorytree-collapse' => 'sara sü',
+	'categorytree-expand' => 'slarga',
+	'categorytree-load' => 'carega',
+	'categorytree-loading' => 'adree a caregà...',
+	'categorytree-nothing-found' => 'nissün resültaa',
+	'categorytree-no-subcategories' => 'nissüna suta-categuria',
+	'categorytree-no-parent-categories' => 'nissüna categuria süperiur',
+	'categorytree-no-pages' => 'mía de paginn o de suta-categurij',
+	'categorytree-not-found' => 'Categuria <i>$1</i> mía truada',
+	'categorytree-error' => "Prublema cun 'l caregament di dati.",
+	'categorytree-retry' => 'Per piasè, specia un mument e pö pröva ancamò.',
+);
+
+/** Lingala (Lingála)
+ * @author Eruedin
+ */
+$messages['ln'] = array(
+	'categorytree-portlet' => 'Ndéngé',
+	'categorytree-category' => 'Katégoli:',
+	'categorytree-mode-all' => 'Nkásá ínsɔ',
+	'categorytree-no-subcategories' => 'Ndéngé-bǎna té',
+);
+
 /** Lao (ລາວ)
  * @author Passawuth
  */
@@ -2113,15 +2948,19 @@
 );
 
 /** Lithuanian (Lietuvių)
+ * @author Eitvys200
+ * @author Garas
  * @author Hugo.arg
  */
 $messages['lt'] = array(
 	'categorytree' => 'Kategorijų medis',
+	'categorytree-portlet' => 'Kategorijos',
 	'categorytree-legend' => 'Rodyti kategorijų medį',
+	'categorytree-desc' => 'Dinamiškai naršykite [[Special:CategoryTree|kategorijų struktūroje]]',
 	'categorytree-header' => 'Įveskite kategorijos pavadinimą, kad pamatytumėte jos turinį kaip medžio struktūrą.
 Primename, kad tam reikia išplėstinis JavaScript fukcionalumas, kitaip žinomas kaip AJAX.
 Jei turi labai seną naršyklę, arba esate išjungę JavaScript, tai neveiks.',
-	'categorytree-category' => 'Kategorija',
+	'categorytree-category' => 'Kategorija:',
 	'categorytree-go' => 'Rodyti medį',
 	'categorytree-parents' => 'Aukštesnio lygio kategorija',
 	'categorytree-mode-categories' => 'tik kategorijos',
@@ -2129,45 +2968,134 @@
 	'categorytree-mode-all' => 'visi puslapiai',
 	'categorytree-collapse' => 'suskleisti',
 	'categorytree-expand' => 'išskleisti',
+	'categorytree-member-counts' => 'turi $1 {{PLURAL:$1|subkategoriją|subkategorijas|subkategorijų}}, $2 {{PLURAL:$2|puslapį|puslapius|puslapių}}, ir $3 {{PLURAL:$3|failą|failus|failų}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tuščia',
 	'categorytree-load' => 'įkelti',
 	'categorytree-loading' => 'įkeliama',
 	'categorytree-nothing-found' => 'nieko nerasta',
 	'categorytree-no-subcategories' => 'nėra jokių subkategorijų',
+	'categorytree-no-parent-categories' => 'jokių aukštesniojo lygio kategorijų',
 	'categorytree-no-pages' => 'jokių puslapių ar subkategorijų',
 	'categorytree-not-found' => 'Kategorija <i>$1</i> nerasta',
 	'categorytree-error' => 'Duomenų įkėlimo problema.',
 	'categorytree-retry' => 'Palaukite šiek tiek, ir bandykite iš naujo.',
 );
 
+/** Latgalian (Latgaļu)
+ * @author Dark Eagle
+ */
+$messages['ltg'] = array(
+	'categorytree' => 'Kategoreju kūks',
+	'categorytree-portlet' => 'Kategorejis',
+	'categorytree-legend' => 'Paruodeit kategoreju kūku',
+	'categorytree-desc' => 'Dinamiski vada [[Special:CategoryTree|kategoreju strukturu]]',
+	'categorytree-category' => 'Kategoreja:',
+	'categorytree-go' => 'Paruodeit kūku',
+	'categorytree-parents' => 'Augstuokuo leidzīņa kategorejis',
+	'categorytree-mode-categories' => 'kategorejis viņ',
+	'categorytree-mode-pages' => 'atskaitūt failus',
+	'categorytree-mode-all' => 'vysys puslopys',
+	'categorytree-collapse' => 'nūglobuot',
+	'categorytree-expand' => 'ruodeit',
+	'categorytree-member-counts' => 'globuo {{PLURAL:$1|1 zamkategoreju|$1 zamkategorejis}}, {{PLURAL:$2|1 puslopu|$2 puslopys}}, i {{PLURAL:$3|1 failu|$3 failus}}',
+	'categorytree-load' => 'atsasyuteit',
+	'categorytree-loading' => 'nūteik atsasyuteišona...',
+	'categorytree-nothing-found' => 'nikas natyka atrast',
+	'categorytree-no-subcategories' => 'navā zamkategoreju',
+	'categorytree-no-parent-categories' => 'navā augstuokuo leidzīņa kategoreju',
+	'categorytree-no-pages' => 'navā puslopu ci zamkategoreju',
+	'categorytree-not-found' => 'Kategoreja <i>$1</i> navā savaicuota',
+	'categorytree-error' => 'Failu atsasyuteišonys problema.',
+	'categorytree-retry' => 'Lyudzams drupeit pagaidi i raugi vēļ.',
+);
+
 /** Latvian (Latviešu)
+ * @author GreenZeb
+ * @author Marozols
+ * @author Papuass
  * @author Xil
  * @author Yyy
  */
 $messages['lv'] = array(
-	'categorytree' => 'KategorijuKoks',
+	'categorytree' => 'Kategoriju koks',
 	'categorytree-portlet' => 'Kategorijas',
 	'categorytree-legend' => 'Rādīt kategoriju koku',
 	'categorytree-desc' => "AJAX bāzēts ''gadget'', kuru lieto lai attēlotu wiki [[Special:CategoryTree|kategoriju struktūru]]",
-	'categorytree-header' => 'Ievadi kategorijas nosaukumu lai apskatītos tās saturu kā koka struktūru. 
-Tam ir nepieciešama JavaScript (AJAX) funkcionalitāte. 
-Ja tev ir veca interneta pārlūkprogramma, vai arī JavaScript ir atslēgts, šitas te nedarbosies.',
+	'categorytree-header' => 'Ievadi kategorijas nosaukumu, lai apskatītos tās saturu kā koka veida struktūru.
+Tam ir nepieciešama JavaScript (AJAX) funkcionalitāte.
+Ja tev ir veca interneta pārlūkprogramma vai arī JavaScript ir atslēgts, šī iespēja nedarbosies.',
 	'categorytree-category' => 'Kategorija:',
 	'categorytree-go' => 'Parādīt koku',
+	'categorytree-parents' => 'Augšējā līmeņa kategorijas',
 	'categorytree-mode-categories' => 'tikai kategorijas',
 	'categorytree-mode-pages' => 'lapas (bez attēlu lapām)',
 	'categorytree-mode-all' => 'visas lapas',
 	'categorytree-collapse' => 'sakļaut',
 	'categorytree-expand' => 'izplest',
+	'categorytree-member-counts' => 'satur {{PLURAL:$1|1 apakškategoriju|$1 apakškategorijas}}, {{PLURAL:$2|1 lapu|$2 lapas}}, un {{PLURAL:$3|1 failu|$3 failus}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 L',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tukšs',
+	'categorytree-load' => 'ielādēt',
 	'categorytree-loading' => 'ielādējas...',
 	'categorytree-nothing-found' => 'neko neatrada',
 	'categorytree-no-subcategories' => 'nav apakškategoriju',
+	'categorytree-no-parent-categories' => 'nav augšējā līmeņa kategoriju',
 	'categorytree-no-pages' => 'nav ne lapu, ne apakškategoriju',
 	'categorytree-not-found' => 'Kategorija <i>$1</i> netika atrasta',
 	'categorytree-error' => 'Problēma ar datu ielādi.',
 	'categorytree-retry' => 'Pagaidi mazliet un mēģini vēlreiz.',
 );
 
+/** Basa Banyumasan (Basa Banyumasan)
+ * @author StefanusRA
+ */
+$messages['map-bms'] = array(
+	'categorytree' => 'Uwit kategori',
+	'categorytree-portlet' => 'Kategori',
+	'categorytree-legend' => 'Tidhokna uwit kategori',
+	'categorytree-desc' => 'Gadget sing dasare AJAX nggo nidhokna [[Special:CategoryTree|category structure]] salah siji wiki',
+	'categorytree-header' => 'Lebokna jeneng kategori kanggo deleng isiné minangka sawijining wujud uwit.
+Mangga diwigatèkaké nek fitur kiye merlokna fungsionalitas JavaScript canggih sing diarani AJAX.
+Angger Rika panjlajah wèbé kalebu vèrsi lawas, utawa fitur JavaScript dipatèni, fungsi kiye ora teyeng dilakokna.',
+	'categorytree-category' => 'Kategori:',
+	'categorytree-go' => 'Tuduhna uwit',
+	'categorytree-parents' => 'Kategori sing luwih dhuwur',
+	'categorytree-mode-categories' => 'kategori thok',
+	'categorytree-mode-pages' => 'kaca kajaba gambar',
+	'categorytree-mode-all' => 'kabèh kaca',
+	'categorytree-collapse' => 'umpetna',
+	'categorytree-expand' => 'tidhokna',
+	'categorytree-member-counts' => 'ngandhut {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 kaca|$2 kaca}}, lan {{PLURAL:$3|1 gambar|$3 gambar}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'kosong',
+	'categorytree-load' => 'unggah',
+	'categorytree-loading' => 'lagi ngunggahna…',
+	'categorytree-nothing-found' => 'ora ketemu',
+	'categorytree-no-subcategories' => 'ora ana subkategori',
+	'categorytree-no-parent-categories' => 'ora ana kategori indhuk',
+	'categorytree-no-pages' => 'ora ana kaca utawa subkategori',
+	'categorytree-not-found' => 'Kategori <i>$1</i> ora ketemu',
+	'categorytree-error' => 'Ana masalah dong lagi ngunggahna data.',
+	'categorytree-retry' => 'Tulung dienteni sedela lan dijajal maning.',
+);
+
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'categorytree' => "Fisampanan'ny sokajy",
+	'categorytree-portlet' => 'Sokajy',
+);
+
 /** Macedonian (Македонски)
+ * @author Bjankuloski06
  * @author Brest
  * @author Brest2008
  */
@@ -2175,10 +3103,10 @@
 	'categorytree' => 'Дрво на категории',
 	'categorytree-portlet' => 'Категории',
 	'categorytree-legend' => 'Прикажи дрво на категории',
-	'categorytree-desc' => 'Динамичка навигација низ [[Special:CategoryTree|структурата на категории]]',
-	'categorytree-header' => 'Внесете назив на категорија за да ја видите нејзината содржина во форма на дрво.
+	'categorytree-desc' => 'Динамичка навигација низ [[Special:CategoryTree|структурата на категориите]]',
+	'categorytree-header' => 'Внесете назив на категорија за да ја видите нејзината содржина во облик на дрво.
 Да напоменеме дека оваа функција побарува JavaScript т.е. AJAX.
-Ако имате доста стар прелистувач, или JavaScript функционалноста вие е стопирана, ова нема да функционира.',
+Ова нема да работи ако имате многу стар прелистувач, или ако имате оневозможено JavaScript.',
 	'categorytree-category' => 'Категорија:',
 	'categorytree-go' => 'Прикажи дрво',
 	'categorytree-parents' => 'Родители',
@@ -2187,51 +3115,100 @@
 	'categorytree-mode-all' => 'сите страници',
 	'categorytree-collapse' => 'затвори',
 	'categorytree-expand' => 'отвори',
-	'categorytree-member-counts' => 'содржи {{PLURAL:$1|една подкатегорија|$1 подкатегории}}, {{PLURAL:$2|една страница|$2 страници}} и {{PLURAL:$3|една податотека|$3 податотеки}}',
-	'categorytree-load' => 'вчитување',
-	'categorytree-loading' => 'вчитување...',
+	'categorytree-member-counts' => 'содржи {{PLURAL:$1|една поткатегорија|$1 поткатегории}}, {{PLURAL:$2|една страница|$2 страници}} и {{PLURAL:$3|една податотека|$3 податотеки}}',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 С',
+	'categorytree-num-files' => '$1 П',
+	'categorytree-num-empty' => 'празна',
+	'categorytree-load' => 'вчитај',
+	'categorytree-loading' => 'вчитувам...',
 	'categorytree-nothing-found' => 'не е најдено ништо',
-	'categorytree-no-subcategories' => 'нема подкатегории',
+	'categorytree-no-subcategories' => 'нема поткатегории',
 	'categorytree-no-parent-categories' => 'нема родителски категории',
-	'categorytree-no-pages' => 'нема страници или подкатегории',
+	'categorytree-no-pages' => 'нема страници или поткатегории',
 	'categorytree-not-found' => 'Не е пронајдена категорија <i>$1</i>',
 	'categorytree-error' => 'Проблеми со вчитување на податоците.',
 	'categorytree-retry' => 'Ве молиме почекајте неколку моменти и обидетесе повторно.',
 );
 
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'categorytree' => 'വര്‍ഗ്ഗവൃക്ഷം',
-	'categorytree-legend' => 'വര്‍ഗ്ഗവൃക്ഷം പ്രദര്‍ശിപ്പിക്കുക',
-	'categorytree-desc' => 'വിക്കിയിലെ [[Special:CategoryTree|വിഭാഗങ്ങളുടെ ഘടന]] പ്രദര്‍ശിപ്പിക്കുവാനുള്ള  AJAX സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്ന ഗാഡ്ജറ്റ്.',
-	'categorytree-header' => 'വിഭാഗങ്ങളുടെ ഘടന വ്യക്ഷരൂപത്തില്‍ കാണുവാന്‍ ഒരു വിഭാഗത്തിന്റെ പേരു ചേര്‍ക്കുക.
-ഇതു പ്രവര്‍ത്തിക്കണമെങ്കില്‍ AJAX എന്ന ചുരുക്കനാമത്തിലറിയപ്പെടുന്ന അഡ്‌വാന്‍സ്‌ഡ് ജാവാസ്ക്രിപ്റ്റ് സാങ്കേതികവിദ്യ ആവശ്യമാണ്‌.
-താങ്കളുടെ ബ്രൗസറില്‍ ജാവാസ്ക്രിപ്റ്റ് പ്രവര്‍ത്തനരഹിതമാക്കിയതാണെങ്കിലോ അല്ലെങ്കില്‍ ബ്രൗസര്‍ കാലഹരണപ്പെട്ടതാണെങ്കിലോ ഇതു പ്രവര്‍ത്തിക്കില്ല.',
-	'categorytree-category' => 'വര്‍ഗ്ഗം:',
-	'categorytree-go' => 'വൃക്ഷം പ്രദര്‍ശിപ്പിക്കുക',
-	'categorytree-mode-categories' => 'വിഭാഗങ്ങള്‍ മാത്രം',
-	'categorytree-mode-pages' => 'ചിത്രങ്ങള്‍ ഒഴിച്ചുള്ള താളുകള്‍',
+	'categorytree' => 'വർഗ്ഗവൃക്ഷം',
+	'categorytree-portlet' => 'വർഗ്ഗങ്ങൾ',
+	'categorytree-legend' => 'വർഗ്ഗവൃക്ഷം പ്രദർശിപ്പിക്കുക',
+	'categorytree-desc' => 'വിക്കിയിലെ [[Special:CategoryTree|വർഗ്ഗങ്ങളുടെ ഘടന]] പ്രദർശിപ്പിക്കുവാനുള്ള അജാക്സ് സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്ന ഗാഡ്ജറ്റ്.',
+	'categorytree-header' => 'വർഗ്ഗങ്ങളുടെ ഘടന വ്യക്ഷരൂപത്തിൽ കാണുവാൻ ഒരു വർഗ്ഗത്തിന്റെ പേരു ചേർക്കുക.
+ഇതു പ്രവർത്തിക്കണമെങ്കിൽ അജാക്സ് എന്ന ചുരുക്കനാമത്തിലറിയപ്പെടുന്ന നൂതന ജാവാസ്ക്രിപ്റ്റ് സാങ്കേതികവിദ്യ ആവശ്യമാണ്‌.
+താങ്കളുടെ ബ്രൗസറിൽ ജാവാസ്ക്രിപ്റ്റ് പ്രവർത്തനരഹിതമാക്കിയതാണെങ്കിലോ അല്ലെങ്കിൽ ബ്രൗസർ കാലഹരണപ്പെട്ടതാണെങ്കിലോ ഇതു പ്രവർത്തിക്കില്ല.',
+	'categorytree-category' => 'വർഗ്ഗം:',
+	'categorytree-go' => 'വൃക്ഷം പ്രദർശിപ്പിക്കുക',
+	'categorytree-parents' => 'താവഴി',
+	'categorytree-mode-categories' => 'വർഗ്ഗങ്ങൾ മാത്രം',
+	'categorytree-mode-pages' => 'പ്രമാണങ്ങൾ അല്ലാതെയുള്ള താളുകൾ',
 	'categorytree-mode-all' => 'എല്ലാ താളുകളും',
-	'categorytree-collapse' => 'അടയ്ക്കുക',
+	'categorytree-collapse' => 'ചുരുക്കുക',
 	'categorytree-expand' => 'വികസിപ്പിക്കുക',
-	'categorytree-load' => 'ലോഡ് ചെയ്യുക',
+	'categorytree-member-counts' => '{{PLURAL:$1|ഒരു ഉപവർഗ്ഗവും|$1 ഉപവർഗ്ഗങ്ങളും}}, {{PLURAL:$2|ഒരു താളും|$2 താളുകളും}}, {{PLURAL:$3|ഒരു പ്രമാണവും|$3 പ്രമാണങ്ങളും}} ഉൾക്കൊള്ളുന്നു',
+	'categorytree-num-categories' => '$1 വ',
+	'categorytree-num-pages' => '$1 താ',
+	'categorytree-num-files' => '$1 പ്ര',
+	'categorytree-num-empty' => 'ശൂന്യം',
+	'categorytree-load' => 'ശേഖരിക്കുക',
 	'categorytree-loading' => 'ശേഖരിച്ചുകൊണ്ടിരിക്കുന്നു…',
 	'categorytree-nothing-found' => 'ഒന്നും കണ്ടെത്തിയില്ല',
-	'categorytree-no-subcategories' => 'ഉപവിഭാഗങ്ങളില്ല',
-	'categorytree-no-pages' => 'താളുകളോ ഉപവിഭാഗങ്ങളോ ഇല്ല',
-	'categorytree-not-found' => "''$1'' എന്ന വര്‍ഗ്ഗം കണ്ടില്ല",
-	'categorytree-error' => 'ഡാറ്റ ലോഡ് ചെയ്യുന്നതില്‍ പിശക്.',
+	'categorytree-no-subcategories' => 'ഉപവർഗ്ഗങ്ങളില്ല',
+	'categorytree-no-parent-categories' => 'മാതൃവർഗ്ഗങ്ങൾ ഇല്ല',
+	'categorytree-no-pages' => 'താളുകളോ ഉപവർഗ്ഗങ്ങളോ ഇല്ല',
+	'categorytree-not-found' => "''$1'' എന്ന വർഗ്ഗം കണ്ടില്ല",
+	'categorytree-error' => 'ഡാറ്റ ശേഖരിക്കുന്നതിൽ പിഴവുണ്ടായി.',
 	'categorytree-retry' => 'കുറച്ചു നേരം കഴിഞ്ഞ് വീണ്ടും പരിശ്രമിക്കുക',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'categorytree' => 'Ангиллын мод',
+	'categorytree-portlet' => 'Ангиллууд',
+	'categorytree-legend' => 'Ангиллын модыг үзүүлэх',
+	'categorytree-header' => 'Ангиллын нэрийг бичиж модны бүтэц байдлаар агуулгыг нь харна уу.
+Үүнийг ашиглахын тулд AJAX гэгдэх ЖаваСкрипт функц хэрэгтэй.
+Та маш хуучин вэб хөтөчтэй, эсвэл ЖаваСкриптыг хориглосон байвал ажиллахгүй болохыг анхаарна уу.',
+	'categorytree-category' => 'Ангилал:',
+	'categorytree-go' => 'Модыг үзүүлэх',
+	'categorytree-parents' => 'Эх ангиллууд',
+	'categorytree-mode-categories' => 'Зөвхөн ангиллууд',
+	'categorytree-mode-pages' => 'зурагнаас бусад хуудсууд',
+	'categorytree-mode-all' => 'бүх хуудас',
+	'categorytree-collapse' => 'буулгах',
+	'categorytree-expand' => 'дэлгэх',
+	'categorytree-member-counts' => '{{PLURAL:$1|1 дэд ангилал|$1 дэд ангилал}}, {{PLURAL:$2|1 хуудас|$2 хуудас}}, {{PLURAL:$3|1 файл|$3 файл}} агуулагдаж байна',
+	'categorytree-load' => 'унших',
+	'categorytree-loading' => 'уншиж байна...',
+	'categorytree-nothing-found' => 'юу ч олдсонгүй',
+	'categorytree-no-subcategories' => 'дэд ангилалгүй байна',
+	'categorytree-no-parent-categories' => 'эх ангилал байхгүй байна',
+	'categorytree-no-pages' => 'хуудас буюу дэд ангилалгүй байна',
+	'categorytree-not-found' => '<i>$1</i> ангилал олдсонгүй',
+	'categorytree-error' => 'Өгөгдлийг ачааллахад асуудал үүсэв.',
+	'categorytree-retry' => 'Түр хүлээгээд дахин оролдоно уу.',
+);
+
 /** Marathi (मराठी)
+ * @author Balaji
+ * @author Evision
+ * @author Htt
  * @author Kaustubh
  * @author Mahitgar
+ * @author Mvkulkarni23
+ * @author Rahuldeshmukh101
  */
 $messages['mr'] = array(
 	'categorytree' => 'वर्गवृक्ष',
+	'categorytree-portlet' => 'विभाग',
 	'categorytree-legend' => 'वर्गवृक्ष दाखवा',
 	'categorytree-desc' => 'एखाद्या विकिची [[Special:CategoryTree|वर्गीकरण मांडणी]] दाखवण्याकरिता AJAX वापरून बनवलेले उपकरण',
 	'categorytree-header' => 'एखाद्या वर्गीकरणातील मसुदा वृक्ष स्वरूपात पहाण्याकरिता  त्या वर्गाचे नाव भरा.
@@ -2244,17 +3221,25 @@
 	'categorytree-mode-all' => 'सर्व पाने',
 	'categorytree-collapse' => 'कोलॅप्स',
 	'categorytree-expand' => 'विस्तार',
+	'categorytree-member-counts' => '{{PLURAL:$1|1 उपवर्ग|$1 उपवर्ग}}, {{PLURAL:$2|1 पान |$2 पाने}}, आणि  {{PLURAL:$3|1 संचिका |$3 संचिका}} उपलब्ध आहेत',
+	'categorytree-num-categories' => '$1 क',
+	'categorytree-num-pages' => '$1 प',
+	'categorytree-num-files' => '$1 फ',
+	'categorytree-num-empty' => 'रिकामे',
 	'categorytree-load' => 'चढवा',
 	'categorytree-loading' => 'चढवत आहे',
-	'categorytree-nothing-found' => 'काहीच गवसले नाही',
+	'categorytree-nothing-found' => 'काहीच सापडले नाही',
 	'categorytree-no-subcategories' => 'उपवर्ग नाहीत',
+	'categorytree-no-parent-categories' => 'वर्गास मुळवर्गीकरण उपलब्ध नाही',
 	'categorytree-no-pages' => 'पाने अथवा उपवर्ग नाहीत',
 	'categorytree-not-found' => 'वर्ग <i>$1</i> आढळला नाही',
-	'categorytree-error' => 'विदा चढवताना त्रूटी.',
+	'categorytree-error' => 'विदा (डाटा) चढवताना अडचणी आहेत.',
 	'categorytree-retry' => 'कृपया,क्षणभर थांबा आणि पुन्हा प्रयत्न करा.',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
  * @author Aviator
  * @author Kurniasan
  */
@@ -2266,17 +3251,21 @@
 	'categorytree-header' => 'Masukkan suatu nama kategori untuk melihat kandungannya dalam bentuk struktur salasilah.
 Ciri ini memerlukan kefungsian JavaScript yang maju dikenali sebagai AJAX.
 Jika anda menggunakan pelayar web yang sudah ketinggalan, atau mematikan JavaScript, ciri ini tidak akan menjadi.',
-	'categorytree-category' => 'Kategori',
+	'categorytree-category' => 'Kategori:',
 	'categorytree-go' => 'Tunjukkan salasilah',
 	'categorytree-parents' => 'Induk',
 	'categorytree-mode-categories' => 'kategori sahaja',
 	'categorytree-mode-pages' => 'laman kecuali imej',
 	'categorytree-mode-all' => 'semua laman',
 	'categorytree-collapse' => 'lipat',
-	'categorytree-expand' => 'bentang',
+	'categorytree-expand' => 'kembangkan',
 	'categorytree-member-counts' => 'mengandungi $1 subkategori, $1 laman, dan $3 fail',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 L',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'kosong',
 	'categorytree-load' => 'muat',
-	'categorytree-loading' => 'memuat…',
+	'categorytree-loading' => 'memuatkan…',
 	'categorytree-nothing-found' => 'kosong',
 	'categorytree-no-subcategories' => 'tiada subkategori',
 	'categorytree-no-parent-categories' => 'tiada kategori induk',
@@ -2287,11 +3276,31 @@
 );
 
 /** Maltese (Malti)
+ * @author Chrisportelli
  * @author Roderick Mallia
  */
 $messages['mt'] = array(
 	'categorytree' => 'Siġra tal-kategoriji',
+	'categorytree-legend' => 'Uri s-siġra tal-kategoriji',
+	'categorytree-header' => "Daħħal isem ta' kategorija biex tara l-kontenuti taħt struttura ta' siġra. Kun af li din għandha bżonn funzjonalità avvanzata ta' JavaScript magħrufa bħala AJAX. Jekk tuża' browser antik ħafna, jew għandek il-JavaScript diżattivat, din ma tistax taħdem.",
+	'categorytree-category' => 'Kategorija:',
+	'categorytree-go' => 'Uri s-siġra',
+	'categorytree-parents' => 'Parenti',
+	'categorytree-mode-categories' => 'il-kategoriji biss',
+	'categorytree-mode-pages' => 'il-paġni esklużi l-fajls',
 	'categorytree-mode-all' => 'il-paġni kollha',
+	'categorytree-collapse' => 'niżżel',
+	'categorytree-expand' => 'espandi',
+	'categorytree-member-counts' => 'għandha {{PLURAL:$1|sottokategorija waħda|$1 sottokategoriji}}, {{PLURAL:$2|paġna waħda|$2 paġna}}, u {{PLURAL:$3|1 fajl|$3 fajls}}',
+	'categorytree-num-empty' => 'vojta',
+	'categorytree-load' => "tella'",
+	'categorytree-loading' => 'tiela',
+	'categorytree-nothing-found' => 'ma nstab xejn',
+	'categorytree-no-parent-categories' => 'l-ebda kategorija parenti',
+	'categorytree-no-pages' => 'l-ebda paġna jew sottokategorija',
+	'categorytree-not-found' => 'Il-kategorija <i>$1</i> ma nstabitx',
+	'categorytree-error' => 'Problema fit-tlugħ tal-informazzjoni.',
+	'categorytree-retry' => "Jekk jogħġbok stenna ftit u erġa' pprova.",
 );
 
 /** Erzya (Эрзянь)
@@ -2299,23 +3308,62 @@
  * @author Botuzhaleny-sodamo
  */
 $messages['myv'] = array(
+	'categorytree' => 'Явкс чувто',
 	'categorytree-portlet' => 'Категорият',
+	'categorytree-legend' => 'Невтемс явкс чувтонть',
 	'categorytree-category' => 'Категория:',
+	'categorytree-go' => 'Невтемс чувтонзо',
+	'categorytree-parents' => 'Тетянзо-аванзо',
 	'categorytree-mode-categories' => 'ансяк категорият',
 	'categorytree-mode-all' => 'весе лопатне',
 	'categorytree-collapse' => 'теингавтомс',
 	'categorytree-expand' => 'келемтемс',
+	'categorytree-load' => 'Йовкстамс',
+	'categorytree-loading' => 'йовкстамозо моли...',
+	'categorytree-nothing-found' => 'мезеяк а муеви',
 	'categorytree-no-subcategories' => 'алкс категорият арасть',
+	'categorytree-no-parent-categories' => 'верькс категорият арасть',
+	'categorytree-no-pages' => 'кодамояк лопат эли алкс категорият арасть',
+	'categorytree-not-found' => '«$1» категориясь а муеви.',
 );
 
+/** Mazanderani (مازِرونی)
+ * @author محک
+ */
+$messages['mzn'] = array(
+	'categorytree-portlet' => 'رج‌ئون',
+);
+
 /** Nahuatl (Nāhuatl)
  * @author Fluence
+ * @author Teòtlalili
  */
 $messages['nah'] = array(
-	'categorytree-portlet' => 'Neneuhcāyōtl',
-	'categorytree-category' => 'Neneuhcāyōtl:',
-	'categorytree-loading' => 'tēmohua...',
-	'categorytree-no-subcategories' => 'ahmo neneuhcāyōtl',
+	'categorytree' => 'Tlaìxmatkàtlàlilòmàmàyòtl',
+	'categorytree-portlet' => 'Tlaìxmatkàtlàlilòmë',
+	'categorytree-legend' => 'Mà monèxti tlaìxmatkàtlàlilòmàmàyòtl',
+	'categorytree-desc' => 'Nènemòwalòtiwétzìlistli ìpan in [[Special:CategoryTree|tlaìxmatkàtlàlilòtekpànyòtl]]',
+	'categorytree-header' => 'Xikîkuilo sè tlaìxmatkàtlàlilòtòkâtli, ìka tikỉtílìs in ìtlamàmàyòtekpànalpialòl.
+Xikmauhtie, molwi yankuik JavaScript tekitìliskàyòtl tètech moneki, ìxmatkàyö kèn AJAX.
+Intlà molwi yi wêkàuhkáyòtl in monetzànìltzòwîkàuh, nòso tiksewîtok in JavaScript, awel tlen monèxtis.',
+	'categorytree-category' => 'Tlaìxmatkàtlàlilòtl:',
+	'categorytree-go' => 'Mà monèxti màmàyòtl',
+	'categorytree-parents' => 'Achkàuhkàtlaìxmatkàtlàlilòmë',
+	'categorytree-mode-categories' => 'San tlaìxmatkàtlàlilòmë mà monèxtìkàn',
+	'categorytree-mode-pages' => 'tlaìxpaltin âmìwàn ìxiptin',
+	'categorytree-mode-all' => 'Nochtin in tlaìxpaltin',
+	'categorytree-collapse' => 'motlàtis',
+	'categorytree-expand' => 'monèxtis',
+	'categorytree-member-counts' => 'kipia {{PLURAL:$1|sè tlaìxmatkàtlàlilòpilòtl|$1 tlaìxmatkàtlàlilòpilòmë}}, {{PLURAL:$2|tlaìxtlapalli|$2 tlaìxtlapaltin}}, y {{PLURAL:$3|sè èwalli|$3 èwaltin}}',
+	'categorytree-load' => 'motémòwis',
+	'categorytree-loading' => 'wàltémòtíkä...',
+	'categorytree-nothing-found' => 'âmò tlen òmâsik',
+	'categorytree-no-subcategories' => 'âmìnwàn tlaìxmatkàtlàlilòpilòmë',
+	'categorytree-no-parent-categories' => 'ayàkë achkàuhkàtlaìxmatkàtlàlilòmë',
+	'categorytree-no-pages' => 'ayàkë tlaìxtlapaltin nòso tlaìxmatkàtlàlilòpilòmë',
+	'categorytree-not-found' => 'Tlaìxmatkàtlàlilòtl <i>$1</i> âmò tlâxìli',
+	'categorytree-error' => 'Âwel témò in tlamatilisèwalli',
+	'categorytree-retry' => 'Timitztlatlauhtiä, ximochia chîtòn kàn oksepa xikyêyeko.',
 );
 
 /** Min Nan Chinese (Bân-lâm-gú) */
@@ -2324,6 +3372,41 @@
 	'categorytree-no-subcategories' => 'bô ē-lūi-pia̍t',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Audun
+ * @author Event
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'categorytree' => 'Kategoritre',
+	'categorytree-portlet' => 'Kategorier',
+	'categorytree-legend' => 'Vis kategoritre',
+	'categorytree-desc' => 'AJAX-basert verktøy som viser [[Special:CategoryTree|kategoristrukturen]] til en wiki',
+	'categorytree-header' => 'Skriv inn et kategorinavn for å se dens innhold som en trestruktur. Merk at dette trenger en avansert type Javascript-funksjonalitet kjent som AJAX. Dersom du har en gammel nettleser eller har slått av JavaScript vil ikke dette fungere.',
+	'categorytree-category' => 'Kategori:',
+	'categorytree-go' => 'Vis',
+	'categorytree-parents' => 'Overkategorier',
+	'categorytree-mode-categories' => 'bare kategorier',
+	'categorytree-mode-pages' => 'sider utenom bilder',
+	'categorytree-mode-all' => 'alle sider',
+	'categorytree-collapse' => 'skjul',
+	'categorytree-expand' => 'vis',
+	'categorytree-member-counts' => 'inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tom',
+	'categorytree-load' => 'last',
+	'categorytree-loading' => 'laster...',
+	'categorytree-nothing-found' => 'Ingen resultater funnet.',
+	'categorytree-no-subcategories' => 'Ingen underkategorier.',
+	'categorytree-no-parent-categories' => 'ingen foreldrekategorier',
+	'categorytree-no-pages' => 'Ingen artikler eller underkategorier.',
+	'categorytree-not-found' => 'Kategorien <i>$1</i> ikke funnet',
+	'categorytree-error' => 'problem under datalasting.',
+	'categorytree-retry' => 'Vent en stund og prøv igjen.',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -2353,21 +3436,75 @@
 	'categorytree-retry' => 'Tööv en beten un denn versöök dat noch wedder.',
 );
 
-/** Nepali (नेपाली) */
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'categorytree' => 'Kategorieboom',
+	'categorytree-portlet' => 'Kategorieën',
+	'categorytree-legend' => 'Laot kategorieboom zien',
+	'categorytree-desc' => 'Dynamiese navigasie veur de [[Special:CategoryTree|kategoriestruktuur]]',
+	'categorytree-header' => "Voer n kategorienaam in um de inhoud in boomstruktuur te bekieken.
+NB: veur disse funksie he'j de JavaScript-funksionaliteit AJAX neudig. A'j n hele ouwe webkieker hebben, of je JavaScript uuteschakeld hebben, dan zal disse funksie niet warken.",
+	'categorytree-category' => 'Kategorie:',
+	'categorytree-go' => 'Laojen',
+	'categorytree-parents' => 'Ouwerkategorieën',
+	'categorytree-mode-categories' => 'allinnig kategorieën',
+	'categorytree-mode-pages' => "pagina's, gien aofbeeldingen",
+	'categorytree-mode-all' => "alle pagina's",
+	'categorytree-collapse' => 'inklappen',
+	'categorytree-expand' => 'uutklappen',
+	'categorytree-member-counts' => "bevat {{PLURAL:$1|één onderkategorie|$1 onderkategorieën}}, {{PLURAL:$2|één pagina|$2 pagina's}} en {{PLURAL:$3|één bestaand|$3 bestaanden}}",
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 B',
+	'categorytree-num-empty' => 'leeg',
+	'categorytree-load' => 'laojen',
+	'categorytree-loading' => 'bezig mit laojen...',
+	'categorytree-nothing-found' => 'niks evunnen',
+	'categorytree-no-subcategories' => 'gien subkategorieën',
+	'categorytree-no-parent-categories' => 'gien ouwerkategorieën',
+	'categorytree-no-pages' => "gien pagina's of subkategorieën",
+	'categorytree-not-found' => 'Kategorie <i>$1</i> niet evunnen',
+	'categorytree-error' => 'Probleem bie t laojen van de gegevens.',
+	'categorytree-retry' => 'Wacht even en probeer t opniej',
+);
+
+/** Nepali (नेपाली)
+ * @author Bhawani Gautam
+ * @author Bhawani Gautam Rhk
+ */
 $messages['ne'] = array(
+	'categorytree' => 'श्रेणी वृक्ष',
+	'categorytree-portlet' => 'श्रेणीहरू',
+	'categorytree-legend' => 'श्रेणी वृक्ष हेर्ने',
+	'categorytree-desc' => '[[Special:CategoryTree|श्रेणी संरचना]]को  गतिशील अन्वेषण गर्ने',
 	'categorytree-category' => 'श्रेणी:',
+	'categorytree-go' => 'वृक्ष हेर्ने',
+	'categorytree-parents' => 'जनक',
 	'categorytree-mode-categories' => 'श्रेणी मात्र',
-	'categorytree-mode-pages' => 'तस्वीरहरू बाहेकका पृष्ठहरू',
+	'categorytree-mode-pages' => 'पृष्ठहरु फ़ाइलहरुका अतिरिक्त',
 	'categorytree-mode-all' => 'सबै पृष्ठहरु',
 	'categorytree-collapse' => 'खुम्च्याउनु',
 	'categorytree-expand' => 'फैलाउनु',
+	'categorytree-member-counts' => 'मा {{PLURAL:$1|1 श्रेणी छ|$1 श्रेणीहरु छन्}}, {{PLURAL:$2|1 पृष्ठ छ|$2 पृष्ठहरु छन्}}, तथा {{PLURAL:$3|1 फाइल छ|$3 फाइलहरु छन्}}',
+	'categorytree-num-categories' => '$1 C (श्रे)',
+	'categorytree-num-pages' => '$1 P (पृ)',
+	'categorytree-num-files' => '$1 F (फा)',
+	'categorytree-num-empty' => 'रित्तो',
+	'categorytree-load' => 'चढाउने',
+	'categorytree-loading' => 'खोलिंदै…',
 	'categorytree-nothing-found' => 'केहीपनि फेला परेन',
 	'categorytree-no-subcategories' => 'उपश्रेणीहरू छैनन्',
+	'categorytree-no-parent-categories' => 'जनक श्रेणीहरु नभएको',
 	'categorytree-no-pages' => 'पृष्ठहरू वा उपश्रेणीहरू छैनन्',
 	'categorytree-not-found' => 'श्रेणी <i>$1</i> फेला परेन',
+	'categorytree-error' => 'आँकडा (data) चढाउनमा समस्या',
+	'categorytree-retry' => 'कृपया केही क्षण पर्खेर त्यसपछि पुनः प्रयास गर्नुहोस्',
 );
 
 /** Dutch (Nederlands)
+ * @author SPQRobin
  * @author Siebrand
  */
 $messages['nl'] = array(
@@ -2378,26 +3515,39 @@
 	'categorytree-header' => 'Geef een categorienaam in om de inhoud als een boomstructuur te bekijken.
 Let op: deze functie gebruikt JavaScript-functionaliteit die bekend staat als AJAX.
 Als u een verouderde browser hebt of JavaScript uitgeschakeld is, dan werkt deze functie niet.',
-	'categorytree-category' => 'Categorie',
-	'categorytree-go' => 'Laden',
+	'categorytree-category' => 'Categorie:',
+	'categorytree-go' => 'Structuur weergeven',
 	'categorytree-parents' => 'Bovenliggende categorieën',
 	'categorytree-mode-categories' => 'alleen categorieën',
 	'categorytree-mode-pages' => 'geen afbeeldingen',
 	'categorytree-mode-all' => "alle pagina's",
 	'categorytree-collapse' => 'inklappen',
-	'categorytree-expand' => 'uitklappen',
+	'categorytree-expand' => 'uitvouwen',
 	'categorytree-member-counts' => "bevat {{PLURAL:$1|één ondercategorie|$1 ondercategorieën}}, {{PLURAL:$2|één pagina|$2 pagina's}} en {{PLURAL:$3|één bestand|$3 bestanden}}",
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 B',
+	'categorytree-num-empty' => 'leeg',
 	'categorytree-load' => 'laden',
 	'categorytree-loading' => 'aan het laden…',
 	'categorytree-nothing-found' => 'niets gevonden',
 	'categorytree-no-subcategories' => 'Geen ondercategorieën.',
 	'categorytree-no-parent-categories' => 'geen bovencategorieën',
 	'categorytree-no-pages' => "Geen pagina's of ondercategorieën.",
-	'categorytree-not-found' => "Categorie ''$1'' niet gevonden",
+	'categorytree-not-found' => 'Categorie <i>$1</i> is niet gevonden',
 	'categorytree-error' => 'Probleem bij het laden van de gegevens.',
 	'categorytree-retry' => 'Wacht even en probeer het dan opnieuw.',
 );
 
+/** ‪Nederlands (informeel)‬ (‪Nederlands (informeel)‬)
+ * @author Siebrand
+ */
+$messages['nl-informal'] = array(
+	'categorytree-header' => 'Geef een categorienaam in om de inhoud als een boomstructuur te bekijken.
+Let op: deze functie gebruikt JavaScript-functionaliteit die bekend staat als AJAX.
+Als je een verouderde browser hebt of JavaScript uitgeschakeld is, dan werkt deze functie niet.',
+);
+
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
  * @author Eirik
  * @author Harald Khan
@@ -2428,37 +3578,6 @@
 	'categorytree-retry' => 'Ver venleg og vent litt før du prøver ein gong til.',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'categorytree' => 'Kategoritre',
-	'categorytree-portlet' => 'Kategorier',
-	'categorytree-legend' => 'Vis kategoritre',
-	'categorytree-desc' => 'AJAX-basert verktøy som viser [[Special:CategoryTree|kategoristrukturen]] til en wiki',
-	'categorytree-header' => 'Skriv inn et kategorinavn for å se dens innhold som en trestruktur. Merk at dette trenger en avansert type Javascript-funksjonalitet kjent som AJAX. Dersom du har en gammel nettleser eller har slått av Javascript vil dette ikke fungere.
-
-Enter a category name to see its contents as a tree structure. Note that this requires advanced JavaScript functionality known as AJAX. If you have a very old browser, or have JavaScript disabled, it will not work.',
-	'categorytree-category' => 'Kategori:',
-	'categorytree-go' => 'Vis',
-	'categorytree-parents' => 'Overkategorier',
-	'categorytree-mode-categories' => 'bare kategorier',
-	'categorytree-mode-pages' => 'sider utenom bilder',
-	'categorytree-mode-all' => 'alle sider',
-	'categorytree-collapse' => 'skjul',
-	'categorytree-expand' => 'vis',
-	'categorytree-member-counts' => 'inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}',
-	'categorytree-load' => 'last',
-	'categorytree-loading' => 'laster',
-	'categorytree-nothing-found' => 'Ingen resultater funnet.',
-	'categorytree-no-subcategories' => 'Ingen underkategorier.',
-	'categorytree-no-parent-categories' => 'ingen foreldrekategorier',
-	'categorytree-no-pages' => 'Ingen artikler eller underkategorier.',
-	'categorytree-not-found' => 'Kategorien <i>$1</i> ikke funnet',
-	'categorytree-error' => 'problem under datalasting.',
-	'categorytree-retry' => 'Vent en stund og prøv igjen.',
-);
-
 /** Northern Sotho (Sesotho sa Leboa)
  * @author Mohau
  */
@@ -2502,26 +3621,91 @@
 	'categorytree-retry' => 'Esperatz un moment puèi tornatz ensajar.',
 );
 
-/** Ossetic (Иронау)
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Odisha1
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'categorytree' => 'ଶ୍ରେଣୀବିଭାଗ',
+	'categorytree-portlet' => 'ଶ୍ରେଣୀସମୂହ',
+	'categorytree-legend' => 'ଶ୍ରେଣୀବିଭାଗ',
+	'categorytree-desc' => '[[Special:CategoryTree|ଶ୍ରେଣୀବିଭାଗ]]କୁ ଚାଲିଯିବା',
+	'categorytree-header' => 'ଶ୍ରେଣିସବୁର ଗଛ ପରି ସଜାଣି ଦେଖିବା ନିମନ୍ତେ ତାହାର ନାମ ଦିଅନ୍ତୁ ।
+ମନେରକନ୍ତୁ, ଏହା ପାଇଁ ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା ଯାହା AJAX ନାମରେ ମଧ୍ୟ ଜଣା ।
+ଯଦି ଆପଣଙ୍କ ପାଖରେ ପୁରୁଣା ବ୍ରାଉଜରଟିଏ ଅଛି ବା ଜାଭାସ୍କ୍ରିପ୍ଟ ଅଚଳ ଅଛି, ତେବେ ଏହା କାମ କରିବ ନାହିଁ ।',
+	'categorytree-category' => 'ଶ୍ରେଣୀ:',
+	'categorytree-go' => 'ଶ୍ରେଣୀବିଭାଗଗୁଡ଼ିକ ଦେଖାଇବା',
+	'categorytree-parents' => 'ମୂଳ',
+	'categorytree-mode-categories' => 'କେବଳ ଶ୍ରେଣୀସମୂହ',
+	'categorytree-mode-pages' => 'ଫାଇଲ ନଥିବା ପୃଷ୍ଠାସବୁ',
+	'categorytree-mode-all' => 'ସବୁ ପୃଷ୍ଠା',
+	'categorytree-collapse' => 'ଚାପିଦେବେ',
+	'categorytree-expand' => 'ବଢ଼ାଇବେ',
+	'categorytree-member-counts' => 'ଏହା ଭିତରେ {{PLURAL:$1|1ଟି ଶ୍ରେଣୀ|$1 ଟି ସାନଶ୍ରେଣୀ}}, {{PLURAL:$2|1 ପୃଷ୍ଠା|$2 ଟି ପୃଷ୍ଠା}} ଓ {{PLURAL:$3|1 ଟି ଫାଇଲ|$3 ଟି ଫାଇଲ}} ଅଛି ।',
+	'categorytree-num-categories' => '$1 ଶ୍ରେଣୀ',
+	'categorytree-num-pages' => '$1 ପୃଷ୍ଠା',
+	'categorytree-num-files' => '$1 ଫାଇଲ',
+	'categorytree-num-empty' => 'ଖାଲି',
+	'categorytree-load' => 'ଖୋଲିବେ',
+	'categorytree-loading' => 'ଖୋଲୁଛି...',
+	'categorytree-nothing-found' => 'କିଛି ମିଳିଲା ନାହିଁ',
+	'categorytree-no-subcategories' => 'ସାନଶ୍ରେଣୀ ନାହିଁ',
+	'categorytree-no-parent-categories' => 'କିଛି ମୂଳ ଶ୍ରେଣୀ ନାହିଁ',
+	'categorytree-no-pages' => 'କିଛି ପୃଷ୍ଠା ବା ସାନଶ୍ରେଣୀ ନାହିଁ',
+	'categorytree-not-found' => '<i>$1</i> ଶ୍ରେଣୀଟି ମିଳିଲା ନାହିଁ',
+	'categorytree-error' => 'ଡାଟା ଖୋଲିବା ପାଇଁ ଅସୁବିଧା ହେଉଛି',
+	'categorytree-retry' => 'ଦୟାକରି କିଛି ସମୟ ପରେ ଚେଷ୍ଟା କରନ୍ତୁ ।',
+);
+
+/** Ossetic (Ирон)
  * @author Amikeco
+ * @author Amire80
  */
 $messages['os'] = array(
+	'categorytree' => 'Категориты бæлас',
 	'categorytree-portlet' => 'Категоритæ',
 	'categorytree-category' => 'Категори:',
 	'categorytree-go' => 'Равдис бæлас',
+	'categorytree-mode-categories' => 'æрмæст категоритæ',
+	'categorytree-mode-pages' => 'фæрстæ, æнæ файлтæ',
 	'categorytree-mode-all' => 'æппæт фæрстæ',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 Ф',
+	'categorytree-num-files' => '$1 ф',
+	'categorytree-num-empty' => 'афтид',
 	'categorytree-nothing-found' => 'Ацы категорийы мидæг дæлкатегоритæ нæ разынд',
+	'categorytree-no-subcategories' => 'дæлкатегоритæ нæй',
 	'categorytree-no-pages' => 'фæрстæ æмæ дæлкатегоритæ нæй',
 	'categorytree-not-found' => 'Категори «$1» не ссардæуы.',
 );
 
 /** Punjabi (ਪੰਜਾਬੀ)
+ * @author Aalam
  * @author Gman124
  */
 $messages['pa'] = array(
+	'categorytree' => 'ਕੈਟਾਗਰੀ ਲੜੀ',
+	'categorytree-portlet' => 'ਕੈਟਾਗਰੀਆਂ',
+	'categorytree-legend' => 'ਕੈਟਾਗਰੀ ਲੜੀ ਵੇਖੋ',
 	'categorytree-category' => 'ਸ਼੍ਰੇਣੀ:',
-	'categorytree-mode-pages' => 'ਤਸਵੀਰਾਂ ਦੇ ਇਲਾਵਾ ਪੇਜ',
+	'categorytree-go' => 'ਲੜੀ ਵੇਖੋ',
+	'categorytree-parents' => 'ਮੁੱਢਲਾ',
+	'categorytree-mode-categories' => 'ਕੇਵਲ ਕੈਟਾਗਰੀ',
+	'categorytree-mode-pages' => 'ਫਾਇਲਾਂ ਤੋਂ ਬਿਨਾਂ ਪੇਜ',
 	'categorytree-mode-all' => 'ਸਭ ਪੇਜ',
+	'categorytree-collapse' => 'ਸਮੇਟੋ',
+	'categorytree-expand' => 'ਫੈਲਾਓ',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'ਖਾਲੀ',
+	'categorytree-load' => 'ਲੋਡ ਕਰੋ',
+	'categorytree-loading' => 'ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...',
+	'categorytree-nothing-found' => 'ਕੁਝ ਨਹੀਂ ਲੱਭਾ',
+	'categorytree-no-subcategories' => 'ਕੋਈ ਸਬ-ਕੈਟਾਗਰੀ ਨਹੀਂ',
+	'categorytree-no-parent-categories' => 'ਕੋਈ ਮੁੱਢਲੀ ਕੈਟਾਗਰੀ ਨਹੀਂ',
+	'categorytree-error' => 'ਡਾਟਾ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਸਮੱਸਿਆ।',
+	'categorytree-retry' => 'ਕੁਝ ਪਲ ਉਡੀਕੋ ਅਤੇ ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ।',
 );
 
 /** Pangasinan (Pangasinan) */
@@ -2546,6 +3730,43 @@
 	'categorytree-nothing-found' => 'alang meyakit',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'categorytree' => 'Baam vun Abdeelinge',
+	'categorytree-portlet' => 'Abdeelinge',
+	'categorytree-legend' => 'Baam vun de Abdeeling zeige',
+	'categorytree-category' => 'Abdeeling:',
+	'categorytree-go' => 'Baam zeige',
+	'categorytree-parents' => 'Eldere',
+	'categorytree-mode-categories' => 'nur Abdeelinge',
+	'categorytree-mode-pages' => 'Bledder ohne Feils',
+	'categorytree-mode-all' => 'alle Bledder',
+	'categorytree-collapse' => 'zuklappe',
+	'categorytree-expand' => 'uffklappe',
+	'categorytree-member-counts' => 'hot {{PLURAL:$1|1 Unnerabdeeling|$1 Unnerabdeelinge}}, {{PLURAL:$2|1 Blatt|$2 Bledder}} unn {{PLURAL:$3|1 Feil|$3 Feils}}',
+	'categorytree-num-categories' => '$1 A',
+	'categorytree-num-pages' => '$1 B',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'leer',
+	'categorytree-load' => 'laade',
+	'categorytree-loading' => 'laade…',
+	'categorytree-nothing-found' => 'nix gfunne',
+	'categorytree-no-subcategories' => 'Ken Unnerabdeeling',
+	'categorytree-no-parent-categories' => 'Ken Owwerabdeeling',
+	'categorytree-no-pages' => 'Ken Bledder odder Unnerabdeelinge',
+	'categorytree-not-found' => 'Abdeeling „$1“ naett gfunne',
+);
+
+/** Pälzisch (Pälzisch)
+ * @author Xqt
+ */
+$messages['pfl'] = array(
+	'categorytree-category' => 'Kadegorie:',
+	'categorytree-mode-all' => 'alle Saide',
+);
+
 /** Polish (Polski)
  * @author Airwolf
  * @author Derbeth
@@ -2557,7 +3778,9 @@
 	'categorytree-portlet' => 'Kategorie',
 	'categorytree-legend' => 'Pokaż drzewo kategorii',
 	'categorytree-desc' => 'Gadżet oparty na technologii AJAX, wyświetlający [[Special:CategoryTree|drzewo kategorii]]',
-	'categorytree-header' => 'Wpisz nazwę kategorii, by zobaczyć jej zawartość w postaci drzewa. Wymagana jest zaawansowana funkcjonalność JavaScriptu, znana jako AJAX. Jeśli masz bardzo starą przeglądarkę lub wyłączony JavaScript, ta funkcja nie zadziała.',
+	'categorytree-header' => 'Wpisz nazwę kategorii, by zobaczyć jej zawartość w postaci drzewa.
+Ta funkcja używa zaawansowanego JavaScriptu, korzystającego z technologii AJAX.
+Jeśli masz bardzo starą przeglądarkę lub wyłączony JavaScript, ta funkcja nie zadziała.',
 	'categorytree-category' => 'Kategoria',
 	'categorytree-go' => 'Ładuj kategorię',
 	'categorytree-parents' => 'Kategorie główne',
@@ -2566,7 +3789,11 @@
 	'categorytree-mode-all' => 'wszystkie strony',
 	'categorytree-collapse' => 'zwiń',
 	'categorytree-expand' => 'rozwiń',
-	'categorytree-member-counts' => 'zawiera {{PLURAL:$1|1 podkategorię|$1 podkategorie|$1 podkategorii}}, {{PLURAL:$2|1 stronę|$2 strony|$2 stron}} oraz {{PLURAL:$3|1 plik|$3 pliki|$3 plików}}',
+	'categorytree-member-counts' => 'Zawiera {{PLURAL:$1|1 podkategorię|$1 podkategorie|$1 podkategorii}}, {{PLURAL:$2|1 stronę|$2 strony|$2 stron}} i {{PLURAL:$3|1 plik|$3 pliki|$3 plików}}',
+	'categorytree-num-categories' => '$1 kat.',
+	'categorytree-num-pages' => '$1 str.',
+	'categorytree-num-files' => '$1 pl.',
+	'categorytree-num-empty' => 'pusta',
 	'categorytree-load' => 'wczytaj',
 	'categorytree-loading' => 'wczytywanie...',
 	'categorytree-nothing-found' => 'nic nie znaleziono',
@@ -2580,9 +3807,13 @@
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
 	'categorytree' => 'Erbo dle categorìe',
+	'categorytree-portlet' => 'Categorìe',
+	'categorytree-legend' => "Mosta l'erbo dle categorìe",
+	'categorytree-desc' => 'Nàviga dinamicament la [[Special:CategoryTree|strutura dle categorìe]]',
 	'categorytree-header' => "Ch'a buta ël nòm ëd na categorìa për ës-ciairene ij contnù e la strutura. Ch'a ten-a present che përchè sòn a travaja a-i va na fonsion Javascript avansà ch'as ciama AJAX. Se un a l'ha un navigator vej ò pura a l'ha nen abilità Javascript sossì a travaja nen.",
 	'categorytree-category' => 'Categorìa:',
 	'categorytree-go' => "Deurbe l'erbo",
@@ -2592,16 +3823,57 @@
 	'categorytree-mode-all' => 'tute le pàgine',
 	'categorytree-collapse' => 'sëré',
 	'categorytree-expand' => 'deurbe',
+	'categorytree-member-counts' => 'a conten {{PLURAL:$1|1 sotcategorìa|$1 sotcategorìe}}, {{PLURAL:$2|1 pàgina|$2 pàgine}}, e {{PLURAL:$3|1 file|$3 file}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'veuid',
 	'categorytree-load' => 'carié',
 	'categorytree-loading' => "antramentr ch'as carìa",
 	'categorytree-nothing-found' => 'pa trovà gnente',
 	'categorytree-no-subcategories' => 'gnun-a sot-categorìa',
+	'categorytree-no-parent-categories' => 'gnun-e categorìe superior',
 	'categorytree-no-pages' => 'pa ëd pàgine ò ëd sot-categorìe',
 	'categorytree-not-found' => "A l'é pa trovasse la categorìa <i>$1</i>.",
 	'categorytree-error' => 'Problema ën cariand ij dat',
 	'categorytree-retry' => "Për piasì, ch'a speta na minuta e peuj ch'as preuva n'àutra vira.",
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'categorytree' => 'گٹھ لین',
+	'categorytree-portlet' => 'گٹھاں',
+	'categorytree-legend' => 'گٹھ لین وکھاؤ',
+	'categorytree-desc' => 'ویکھ کے [[Special:CategoryTree|گٹھاں]] دی کھوج کرو',
+	'categorytree-header' => 'کسی گٹھ دا ناں لکھو تاکے ایدا مال رکھ ورگی مورت چ ویکھو۔
+Note that this requires advanced JavaScript functionality known as AJAX.
+If you have a very old browser, or have JavaScript disabled, it will not work.',
+	'categorytree-category' => 'گٹھ:',
+	'categorytree-go' => 'لین وکھاؤ',
+	'categorytree-parents' => 'وڈوڈیرے',
+	'categorytree-mode-categories' => 'صرف گٹھاں',
+	'categorytree-mode-pages' => 'فائلاں بنا صفے',
+	'categorytree-mode-all' => 'سارے صفے',
+	'categorytree-collapse' => 'مک گیا',
+	'categorytree-expand' => 'ودھاؤ',
+	'categorytree-member-counts' => 'ایدے چ  {{PLURAL:$1|1 نکی گٹھ|$1 گٹھاں}}, {{PLURAL:$2|1 صفحہ|$2 صفحے}}, تے {{PLURAL:$3|1 فائل|$3 فائلاں}} ہیگیاں نیں۔',
+	'categorytree-num-categories' => '$1 سی',
+	'categorytree-num-pages' => '$1 پی',
+	'categorytree-num-files' => '$1 ایف',
+	'categorytree-num-empty' => 'خالی',
+	'categorytree-load' => 'چڑھاؤ',
+	'categorytree-loading' => 'چڑ رئی اے۔',
+	'categorytree-nothing-found' => 'کج نیں لبیا',
+	'categorytree-no-subcategories' => 'مڈلیاں گٹھاں کوئی نیں',
+	'categorytree-no-parent-categories' => 'کوئی مڈلیاں گٹھاں نیں۔',
+	'categorytree-no-pages' => 'ناں صفے یا نکیاں گٹھاں',
+	'categorytree-not-found' => '<i>$1</i> گٹھ نئیں لبی',
+	'categorytree-error' => 'ڈیٹا چڑھان چ رپھڑ۔',
+	'categorytree-retry' => 'مہربانی کرکے تھوڑا صبر کرو تے فیر کوشش کرو۔',
+);
+
 /** Pontic (Ποντιακά)
  * @author Sinopeus
  */
@@ -2625,7 +3897,12 @@
 	'categorytree-mode-categories' => 'يوازې وېشنيزې',
 	'categorytree-mode-pages' => 'مخونه پرته د دوتنو نه',
 	'categorytree-mode-all' => 'ټول مخونه',
+	'categorytree-collapse' => 'پرځول',
 	'categorytree-expand' => 'غځول',
+	'categorytree-num-categories' => '$1 و',
+	'categorytree-num-pages' => '$1 م',
+	'categorytree-num-files' => '$1 د',
+	'categorytree-num-empty' => 'تش',
 	'categorytree-load' => 'برسېرول',
 	'categorytree-loading' => 'د برسېرېدلو په حال کې...',
 	'categorytree-nothing-found' => 'هېڅ هم و نه موندل شو',
@@ -2638,38 +3915,46 @@
 
 /** Portuguese (Português)
  * @author 555
+ * @author Giro720
+ * @author Hamilton Abreu
+ * @author João Sousa
  */
 $messages['pt'] = array(
 	'categorytree' => 'Árvore de categorias',
 	'categorytree-portlet' => 'Categorias',
-	'categorytree-legend' => 'Exibir a árvore de categorias',
-	'categorytree-desc' => 'Acessório (gadget) baseado em AJAX que apresenta a [[Special:CategoryTree|estrutura]] de um wiki',
-	'categorytree-header' => 'Insira o nome de uma categoria para ver seu conteúdo como uma estrutura de "árvore".
-Note que isso requer funcionalidades avançadas de JavaScript (como, por exemplo, AJAX).
-Caso o seu navegador seja razoavelmente antigo, ou, caso JavaScript esteja desabilitado em seu navegador, isto não funcionará.',
+	'categorytree-legend' => 'Mostrar a árvore de categorias',
+	'categorytree-desc' => "Acessório ''(gadget)'' baseado em AJAX que apresenta a [[Special:CategoryTree|estrutura]] de uma wiki",
+	'categorytree-header' => 'Introduza o nome de uma categoria para ver o seu conteúdo numa estrutura de árvore.
+Note que isto requer uma funcionalidade avançada do JavaScript, conhecida por AJAX.
+Caso o seu browser seja razoavelmente antigo ou o JavaScript esteja desactivado, não funcionará.',
 	'categorytree-category' => 'Categoria:',
-	'categorytree-go' => 'Exibir Árvore',
+	'categorytree-go' => 'Mostrar árvore',
 	'categorytree-parents' => 'Categorias superiores',
 	'categorytree-mode-categories' => 'mostrar apenas as categorias',
 	'categorytree-mode-pages' => 'páginas, exceto imagens',
 	'categorytree-mode-all' => 'todas as páginas',
 	'categorytree-collapse' => 'ocultar',
 	'categorytree-expand' => 'expandir',
-	'categorytree-member-counts' => 'possui {{PLURAL:$1|uma subcategoria|$1 subcategorias}}, {{PLURAL:$2|uma página|$2 páginas}} e {{PLURAL:$3|um ficheiro|$3 ficheiros}}',
+	'categorytree-member-counts' => 'possui {{PLURAL:$1|$1 subcategoria|$1 subcategorias}}, {{PLURAL:$2|$2 página|$2 páginas}} e {{PLURAL:$3|$3 ficheiro|$3 ficheiros}}',
+	'categorytree-num-categories' => '$1C',
+	'categorytree-num-pages' => '$1P',
+	'categorytree-num-files' => '$1F',
+	'categorytree-num-empty' => 'vazia',
 	'categorytree-load' => 'carregar',
 	'categorytree-loading' => 'carregando',
-	'categorytree-nothing-found' => 'Sentimos muito, não se encontrou nada',
+	'categorytree-nothing-found' => 'não foi encontrado nada',
 	'categorytree-no-subcategories' => 'sem subcategorias',
 	'categorytree-no-parent-categories' => 'não há categorias superiores',
 	'categorytree-no-pages' => 'sem páginas nem subcategorias',
 	'categorytree-not-found' => 'A categoria <i>$1</i> não foi encontrada',
 	'categorytree-error' => 'Problema ao carregar os dados.',
-	'categorytree-retry' => 'Por gentileza, aguarde um momento e tente novamente.',
+	'categorytree-retry' => 'Por favor, aguarde um momento e tente novamente.',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Carla404
  * @author Eduardo.mps
+ * @author Rafael Vargas
  */
 $messages['pt-br'] = array(
 	'categorytree' => 'Árvore de categorias',
@@ -2688,6 +3973,10 @@
 	'categorytree-collapse' => 'ocultar',
 	'categorytree-expand' => 'expandir',
 	'categorytree-member-counts' => 'contém {{PLURAL:$1|1 subcategoria|$1 subcategorias}}, {{PLURAL:$2|1 página|$2 páginas}} e {{PLURAL:$3|1 arquivo|$3 arquivos}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 A',
+	'categorytree-num-empty' => 'vazia',
 	'categorytree-load' => 'carregar',
 	'categorytree-loading' => 'carregando',
 	'categorytree-nothing-found' => 'Sentimos muito, não se encontrou nada',
@@ -2718,6 +4007,10 @@
 	'categorytree-collapse' => 'pakay',
 	'categorytree-expand' => 'rikuchiy',
 	'categorytree-member-counts' => "{{PLURAL:$1|huk urin katiguriyayuqmi|$1 urin katiguriyayuqmi}}, {{PLURAL:$2|huk p'anqayuqmi|$2 p'anqayuqmi}}, {{PLURAL:$3|huk willañiqiyuqmi|$3 willañiqiyuqmi}}",
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 W',
+	'categorytree-num-empty' => "ch'usaq",
 	'categorytree-load' => 'chaqnay',
 	'categorytree-loading' => 'chaqnaspa',
 	'categorytree-nothing-found' => 'manam imapas tarisqachu',
@@ -2730,33 +4023,39 @@
 );
 
 /** Romanian (Română)
+ * @author Cin
  * @author KlaudiuMihaila
  * @author Mihai
+ * @author Minisarm
  */
 $messages['ro'] = array(
 	'categorytree' => 'Arborele categoriilor',
 	'categorytree-portlet' => 'Categorii',
 	'categorytree-legend' => 'Arată arborele categoriilor',
 	'categorytree-desc' => 'Navighează dinamic în [[Special:CategoryTree|stuctura categoriilor]]',
-	'categorytree-header' => 'Introduceţi numele categoriei pentru vizualizarea conţinutului în structură arborescentă. Notaţi faptul că această operaţie necesită funcţionalităţi JavaScript avansate cunoscute sub numele de AJAX. Dacă aveţi un browser vechi sau nu aveţi activat JavaScript, nu va funcţiona.',
+	'categorytree-header' => 'Introduceți numele categoriei pentru vizualizarea conținutului în structură arborescentă. Notați faptul că această operație necesită funcționalități JavaScript avansate cunoscute sub numele de AJAX. Dacă aveți un browser vechi sau nu aveți activat JavaScript, nu va funcționa.',
 	'categorytree-category' => 'Categorie:',
 	'categorytree-go' => 'Arată arborele',
-	'categorytree-parents' => 'Părinţi',
+	'categorytree-parents' => 'Părinți',
 	'categorytree-mode-categories' => 'doar categorii',
 	'categorytree-mode-pages' => 'pagini fără imagini',
 	'categorytree-mode-all' => 'toate paginile',
 	'categorytree-collapse' => 'restrânge',
 	'categorytree-expand' => 'extinde',
-	'categorytree-member-counts' => 'conţine {{PLURAL:$1|1 subcategorie|$1 subcategorii}}, {{PLURAL:$2|1 pagină|$2 pagini}} şi {{PLURAL:$3|1 fişier|$3 fişiere}}',
+	'categorytree-member-counts' => 'conține {{PLURAL:$1|1 subcategorie|$1 subcategorii}}, {{PLURAL:$2|1 pagină|$2 pagini}} și {{PLURAL:$3|1 fișier|$3 fișiere}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'fără conținut',
 	'categorytree-load' => 'încarcă',
 	'categorytree-loading' => 'încărcare…',
-	'categorytree-nothing-found' => 'fără subcategorii',
+	'categorytree-nothing-found' => 'fără rezultat',
 	'categorytree-no-subcategories' => 'nici o subcategorie',
 	'categorytree-no-parent-categories' => 'nici o categorie părinte',
 	'categorytree-no-pages' => 'nici o pagină sau subcategorie',
 	'categorytree-not-found' => 'Categoria <i>$1</i> nu a fost găsită',
 	'categorytree-error' => 'Problemă la încărcarea datelor',
-	'categorytree-retry' => 'Vă rugăm să aşteptaţi câteva momente şi să încercaţi din nou.',
+	'categorytree-retry' => 'Vă rugăm să așteptați câteva momente și să încercați din nou.',
 );
 
 /** Tarandíne (Tarandíne)
@@ -2765,15 +4064,39 @@
 $messages['roa-tara'] = array(
 	'categorytree' => 'Arvule de le categorije',
 	'categorytree-portlet' => 'Categorije',
+	'categorytree-legend' => "Fa vedè l'arvule de le categorije",
+	'categorytree-desc' => "Dinamicamende naveghesce 'a [[Special:CategoryTree|struttura de le categorije]]",
+	'categorytree-header' => "'Nzerisce 'nu nome de categorije pe vedè 'u condenute sue cumme a 'na strutture a arvule.<br />
+Note ca quiste richiede funzionalità de JavaScript avanzate canusciute cumme AJAX.<br />
+Ce tu è 'nu browser assaije vecchie, o tìne 'u JavaScript disabbilitate, non ge pò fatijà.",
 	'categorytree-category' => 'Categorije:',
 	'categorytree-go' => "Fa vedè l'arvule",
+	'categorytree-parents' => 'Attane',
+	'categorytree-mode-categories' => 'sulamende categorije',
+	'categorytree-mode-pages' => 'pàggene eccette le file',
 	'categorytree-mode-all' => 'tutte le pàggene',
 	'categorytree-collapse' => 'achiude',
 	'categorytree-expand' => 'spanne',
+	'categorytree-member-counts' => 'condene {{PLURAL:$1|1 sotte categorije|$1 sotte categorije}}, {{PLURAL:$2|1 pàgene|$2 pàggene}}, e {{PLURAL:$3|1 file|$3 file}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vacande',
+	'categorytree-load' => 'careche',
+	'categorytree-loading' => 'stoche a careche…',
+	'categorytree-nothing-found' => 'acchiate ninde',
+	'categorytree-no-subcategories' => 'nisciuna sotte categorije',
+	'categorytree-no-parent-categories' => 'nisciuna categorije attane',
+	'categorytree-no-pages' => 'nisciune pàgene o sotte categorije',
+	'categorytree-not-found' => 'Categorije <i>$1</i> non acchiate',
+	'categorytree-error' => 'Probbleme carecanne le date.',
+	'categorytree-retry' => "Aspitte 'nu mumende e pruève 'n'otra vote.",
 );
 
 /** Russian (Русский)
  * @author Ahonc
+ * @author Lockal
+ * @author Putnik
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
@@ -2788,23 +4111,73 @@
 	'categorytree-go' => 'Загрузить',
 	'categorytree-parents' => 'Родительские категории',
 	'categorytree-mode-categories' => 'только категории',
-	'categorytree-mode-pages' => 'кроме изображений',
+	'categorytree-mode-pages' => 'кроме файлов',
 	'categorytree-mode-all' => 'все страницы',
 	'categorytree-collapse' => 'свернуть',
 	'categorytree-expand' => 'развернуть',
 	'categorytree-member-counts' => 'содержит $1 {{PLURAL:$1|подкатегорию|подкатегории|подкатегорий}}, $2 {{PLURAL:$2|страницу|страницы|страниц}} и $3 {{PLURAL:$3|файл|файла|файлов}}',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 С',
+	'categorytree-num-files' => '$1 Ф',
+	'categorytree-num-empty' => 'пусто',
 	'categorytree-load' => 'загрузить',
 	'categorytree-loading' => 'загрузка…',
 	'categorytree-nothing-found' => 'Данная категория не содержит подкатегорий.',
-	'categorytree-no-subcategories' => 'нет подкатегорий.',
+	'categorytree-no-subcategories' => 'нет подкатегорий',
 	'categorytree-no-parent-categories' => 'нет родительских категорий',
-	'categorytree-no-pages' => 'нет статей и подкатегорий.',
+	'categorytree-no-pages' => 'нет статей и подкатегорий',
 	'categorytree-not-found' => 'Категория «$1» не найдена.',
 	'categorytree-error' => 'Ошибка загрузки данных.',
 	'categorytree-retry' => 'Пожалуйста, подождите и попробуйте ещё раз.',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'categorytree' => 'Дерево катеґорій',
+	'categorytree-portlet' => 'Катеґорії',
+	'categorytree-legend' => 'Указати дерево катеґорій',
+	'categorytree-desc' => 'AJAX-компонент про зображіня [[Special:CategoryTree|штруктуры катеґорій]] вікі',
+	'categorytree-header' => 'Зазначте назву катеґорії ку зображіню єй обсягу як стромовой штруктуры.
+
+(Тота функція потребує покрочілы функції JavaScript знамы як Ajax. Кідь маєте дуже старый переглядач або выпнутый JavaScript, не укаже ся стром правилно або нияк.)',
+	'categorytree-category' => 'Катеґорія:',
+	'categorytree-go' => 'Указати дерево',
+	'categorytree-parents' => 'Родичовскы катеґорії',
+	'categorytree-mode-categories' => 'лем катеґорії',
+	'categorytree-mode-pages' => 'сторінкы окрім файлів',
+	'categorytree-mode-all' => 'вшыткы сторінкы',
+	'categorytree-collapse' => 'згорнути',
+	'categorytree-expand' => 'розгорнути',
+	'categorytree-member-counts' => 'обсягує {{PLURAL:$1|1 підкатеґорію|$1 підкатеґорії|$1 підкатеґорій}}, {{PLURAL:$2|1 сторінку|$2 сторінкы|$2 сторінок}} і {{PLURAL:$3|1 файл|$3 файлы|$3 файлів}}',
+	'categorytree-load' => 'начітати',
+	'categorytree-loading' => 'начітавать ся...',
+	'categorytree-nothing-found' => 'ніч не найджене',
+	'categorytree-no-subcategories' => 'жадны підкатеґорії',
+	'categorytree-no-parent-categories' => 'не має родичовскы катеґорії',
+	'categorytree-no-pages' => 'жадны статї ані підкатеґорії',
+	'categorytree-not-found' => 'Катеґорія <em>$1</em> ненайджена',
+	'categorytree-error' => 'Хыба начітаня дат.',
+	'categorytree-retry' => 'Кус почекайте і потім спробуйте знову.',
+);
+
+/** Sanskrit (संस्कृतम्)
+ * @author Ansumang
+ * @author Vibhijain
+ */
+$messages['sa'] = array(
+	'categorytree-category' => 'वर्ग:',
+	'categorytree-mode-all' => 'सर्बे पृष्ठ',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'शुन्य',
+	'categorytree-load' => 'लोड',
+	'categorytree-loading' => 'भारारोपण',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
@@ -2824,6 +4197,10 @@
 	'categorytree-collapse' => 'сап',
 	'categorytree-expand' => 'тэнит',
 	'categorytree-member-counts' => '$1 {{PLURAL:$1|субкатегориялаах|субкатегориялардаах}}, $2 {{PLURAL:$2|сирэйдээх|сирэйдэрдээх}} уонна $3 {{PLURAL:$3|билэлээх|билэлэрдээх}}',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 С',
+	'categorytree-num-files' => '$1 Ф',
+	'categorytree-num-empty' => 'кураанах',
 	'categorytree-load' => 'киллэр',
 	'categorytree-loading' => 'киллэрии',
 	'categorytree-nothing-found' => 'бу категория подкатегорията суох',
@@ -2839,10 +4216,13 @@
  * @author Marzedu
  */
 $messages['sc'] = array(
+	'categorytree-portlet' => 'Categorias',
 	'categorytree-category' => 'Categoria:',
+	'categorytree-mode-all' => 'totu is pàginas',
 );
 
 /** Sicilian (Sicilianu)
+ * @author Aushulz
  * @author Santu
  */
 $messages['scn'] = array(
@@ -2860,6 +4240,10 @@
 	'categorytree-collapse' => 'cumprimi',
 	'categorytree-expand' => 'spanni',
 	'categorytree-member-counts' => 'cunteni {{PLURAL:$1|1 suttacatigurìa|$1 suttacatigurìi}}, {{PLURAL:$2|1 pàggina|$2 pàggini}} e {{PLURAL:$3|1 file|$3 file}}',
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'vacanti',
 	'categorytree-load' => 'càrica',
 	'categorytree-loading' => 'sta caricannu...',
 	'categorytree-nothing-found' => 'nuddu risurtatu',
@@ -2895,31 +4279,75 @@
 	'categorytree-retry' => "Pa piazeri aisetta un'àttimu e poi torra a prubà.",
 );
 
+/** Samogitian (Žemaitėška)
+ * @author Hugo.arg
+ */
+$messages['sgs'] = array(
+	'categorytree' => 'Kateguorėju medis',
+	'categorytree-category' => 'Kateguorėjė:',
+	'categorytree-mode-all' => 'vėsė poslapē',
+);
+
+/** Serbo-Croatian (Srpskohrvatski)
+ * @author OC Ripper
+ */
+$messages['sh'] = array(
+	'categorytree' => 'Stablasti prikaz hijerarhije kategorija',
+	'categorytree-portlet' => 'Kategorije',
+	'categorytree-legend' => 'Prikaži stablo kategorija',
+	'categorytree-desc' => 'Dinamička navigacija [[Special:CategoryTree|strukture kategorija]].',
+	'categorytree-header' => 'Unesite ime kategorije da vidite njen sadržaj kao strukturno stablo. Ovo zahtijeva proširenu JavaScript funkcionalnost kao AJAX. Ako imate neki stariji preglednik, ili ste isključili JavaScript, ovo neće raditi.',
+	'categorytree-category' => 'Kategorija:',
+	'categorytree-go' => 'Prikaži stablo',
+	'categorytree-parents' => 'Nadkategorije',
+	'categorytree-mode-categories' => 'samo kategorije',
+	'categorytree-mode-pages' => 'stranice bez datoteka',
+	'categorytree-mode-all' => 'sve stranice',
+	'categorytree-collapse' => 'sakrij',
+	'categorytree-expand' => 'proširi',
+	'categorytree-member-counts' => 'sadrži {{PLURAL:$1|jednu podkategoriju|$1 podkategorije|$1 podkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}',
+	'categorytree-load' => 'učitaj',
+	'categorytree-loading' => 'učitavam…',
+	'categorytree-nothing-found' => 'ništa nije pronađeno',
+	'categorytree-no-subcategories' => 'nema potkategorija',
+	'categorytree-no-parent-categories' => 'nema nadkategorija',
+	'categorytree-no-pages' => 'nema ni stranica ni podkategorija',
+	'categorytree-not-found' => 'Kategorija <i>$1</i> nije nađena',
+	'categorytree-error' => 'Problem pri učitavanju podataka.',
+);
+
 /** Sinhala (සිංහල)
+ * @author Singhalawap
  * @author නන්දිමිතුරු
+ * @author පසිඳු කාවින්ද
+ * @author බිඟුවා
  */
 $messages['si'] = array(
-	'categorytree' => 'ප්‍රවර්ග රුක',
+	'categorytree' => 'ප්‍රවර්ග බෙදීම් සටහන',
 	'categorytree-portlet' => 'ප්‍රවර්ග',
-	'categorytree-legend' => 'ප්‍රවර්ග රුක පෙන්වන්න',
+	'categorytree-legend' => 'ප්‍රවර්ග ගස පෙන්වන්න',
 	'categorytree-desc' => '[[Special:CategoryTree|ප්‍රවර්ග ව්‍යුහය]] ගතික වශයෙන් සංචලනය කරන්න',
 	'categorytree-header' => 'එහි අන්තර්ගතයන්  රුක් ව්‍යුවහයක් ලෙස නැරඹීම සඳහා ප්‍රවර්ග නාමයක් ඇතුලත් කරන්න.
 AJAX නමින් හැඳින්වෙන ප්‍රගත ජාවාස්ක්‍රිප්ට් ශ්‍රීතියතායව මේ සඳහා අවශ්‍ය බව සටහන් කර ගන්න.
 ඔබ සතුව ඇත්තේ ඉතා පැරණි බ්‍රවුසරයක් නම් හෝ ජාවාස්ක්‍රිප්ට් අක්‍රීය කොට තිබේ නම් මෙය ක්‍රි‍යාත්මක නොවනු ඇත.',
 	'categorytree-category' => 'ප්‍රවර්ගය:',
-	'categorytree-go' => 'රුක පෙන්වන්න',
+	'categorytree-go' => 'බෙදීයාම් සටහන පෙන්වන්න',
 	'categorytree-parents' => 'මාපියන්',
 	'categorytree-mode-categories' => 'ප්‍රවර්ග පමණයි',
 	'categorytree-mode-pages' => 'ගොනු හැර ඉතිරි පිටු',
 	'categorytree-mode-all' => 'සියළු පිටු',
 	'categorytree-collapse' => 'හකුලන්න',
-	'categorytree-expand' => 'විදහන්න',
+	'categorytree-expand' => 'විදහාලන්න',
 	'categorytree-member-counts' => '{{PLURAL:$1|එක් උපප්‍රවර්ගයක්|උපප්‍රවර්ග $1 ක්}}, {{PLURAL:$2|එක් පිටුවක්|පිටු $2 ක්}}, සහ {{PLURAL:$3|එක් ගොනුවක්|ගොනු $3 ක්}} අඩංගුය',
+	'categorytree-num-categories' => '$1 සී',
+	'categorytree-num-pages' => '$1 පී',
+	'categorytree-num-files' => '$1 එෆ්',
+	'categorytree-num-empty' => 'හිස්',
 	'categorytree-load' => 'බාගන්න',
 	'categorytree-loading' => 'බාගනිමින්…',
 	'categorytree-nothing-found' => 'කිසිවක් හමුනොවිනි',
 	'categorytree-no-subcategories' => 'උපප්‍රවර්ග නොමැත',
-	'categorytree-no-parent-categories' => 'මාපිය උපප්‍රවර්ග නොමැත',
+	'categorytree-no-parent-categories' => 'මවු ප්‍රවර්ග නැත',
 	'categorytree-no-pages' => 'පිටු හෝ උපප්‍රවර්ග නොමැත',
 	'categorytree-not-found' => '<i>$1</i>  ප්‍රවර්ගය සොයාගත නොහැකි විය',
 	'categorytree-error' => 'දත්ත බාගැනීමේ ගැටළු පැවතිණි.',
@@ -2937,7 +4365,7 @@
 	'categorytree-header' => 'Zadajte názov kategórie, ktorej obsah sa má zobraziť ako stromová štruktúra.
 Majte na pamäti, že táto funkcia vyžaduje JavaScriptovú funkcionalitu známu ako AJAX.
 Ak máte veľmi starý prehliadač alebo máte vypnutý JavaScrpt, nebude fungovať.',
-	'categorytree-category' => 'Kategória',
+	'categorytree-category' => 'Kategória:',
 	'categorytree-go' => 'Zobraziť strom',
 	'categorytree-parents' => 'Nadradené kategórie',
 	'categorytree-mode-categories' => 'iba kategórie',
@@ -2958,32 +4386,57 @@
 );
 
 /** Slovenian (Slovenščina)
+ * @author Dbc334
+ * @author Freakolowsky
  * @author editors of sl.wikipedia
  */
 $messages['sl'] = array(
 	'categorytree' => 'Drevo kategorij',
-	'categorytree-header' => 'Vnesite ime kategorije, katere vsebino želite videti kot drevesno strukturo. Upoštevajte, da je za to potreben AJAX, poseben nacin za delovanje JavaScripta. Ce je vaš brskalnik zelo star oziroma je JavaScript v njem onemogocen, drevo kategorij ne bo prikazano.',
-	'categorytree-category' => 'Kategorija',
+	'categorytree-portlet' => 'Kategorije',
+	'categorytree-legend' => 'Prikaži drevo kategorij',
+	'categorytree-desc' => 'Dinamično navigiraj po [[Special:CategoryTree|strukturi kategorij]]',
+	'categorytree-header' => 'Vnesite ime kategorije, katere vsebino želite videti kot drevesno strukturo. Upoštevajte, da je za to potreben Ajax, poseben način za delovanje JavaScripta. Ce je vaš brskalnik zelo star oziroma je JavaScript v njem onemogocen, drevo kategorij ne bo prikazano.',
+	'categorytree-category' => 'Kategorija:',
 	'categorytree-go' => 'Pokaži drevo',
 	'categorytree-parents' => 'Starši',
 	'categorytree-mode-categories' => 'samo kategorije',
 	'categorytree-mode-pages' => 'strani z izjemo slik',
 	'categorytree-mode-all' => 'vse strani',
-	'categorytree-collapse' => 'skrci',
+	'categorytree-collapse' => 'skrči',
 	'categorytree-expand' => 'razširi',
+	'categorytree-member-counts' => 'vsebuje $1 {{PLURAL:$1|podkategorijo|podkategoriji|podkategorije|podkategorij}}, $2 {{PLURAL:$2|stran|strani|strani}} in $3 {{PLURAL:$3|datoteko|datoteki|datoteke|datotek}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'prazno',
 	'categorytree-load' => 'naloži',
 	'categorytree-loading' => 'nalagam',
 	'categorytree-nothing-found' => 'ni zadetkov',
 	'categorytree-no-subcategories' => 'ni podkategorij',
+	'categorytree-no-parent-categories' => 'ni starševskih kategorij',
 	'categorytree-no-pages' => 'ni strani ali podkategorij',
-	'categorytree-not-found' => 'Kategorije <i>$1</i> ni moc najti',
+	'categorytree-not-found' => 'Kategorije <i>$1</i> ni moč najti',
+	'categorytree-error' => 'Težava pri nalaganju podatkov.',
+	'categorytree-retry' => 'Prosimo, počakajte trenutek in poskusite znova.',
 );
 
+/** Somali (Soomaaliga)
+ * @author Maax
+ */
+$messages['so'] = array(
+	'categorytree-category' => 'Qeybta:',
+	'categorytree-not-found' => 'Qeybta  <i>$1</i> lama helin',
+);
+
 /** Albanian (Shqip)
  * @author Eagleal
+ * @author Olsi
  */
 $messages['sq'] = array(
 	'categorytree' => 'Pema e kategorive',
+	'categorytree-portlet' => 'Kategoritë',
+	'categorytree-legend' => 'Shfaqni pemën e kategorive',
+	'categorytree-desc' => 'Lundroni shpejt [[Special:CategoryTree|strukturën e kategorisë]]',
 	'categorytree-header' => 'Fusni emrin e Kategorisë për të parë Nënkategoritë si Pemë kategorish. Këtij funksioni i nevoiten JavaScript dhe AJAX për të funksionuar si duhet. Nëse keni një shfletues të vjetër, ose nëse i keni deaktivuar JavaScript kjo nuk do të funksionoj.',
 	'categorytree-category' => 'Kategoria:',
 	'categorytree-go' => 'Plotëso',
@@ -2993,47 +4446,97 @@
 	'categorytree-mode-all' => 'të gjitha faqet',
 	'categorytree-collapse' => 'mbylle',
 	'categorytree-expand' => 'hape',
+	'categorytree-member-counts' => 'përmban $1 nënkategori, $2 faqe, dhe {{PLURAL:$3|1 skedë|$3 skeda}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 F',
+	'categorytree-num-files' => '$1 S',
+	'categorytree-num-empty' => 'bosh',
 	'categorytree-load' => 'hape',
 	'categorytree-loading' => 'duke plotësuar',
 	'categorytree-nothing-found' => 'Ju kërkoj ndjesë, nuk u gjet asgjë.',
 	'categorytree-no-subcategories' => 'Asnjë nënkategori.',
+	'categorytree-no-parent-categories' => 'nuk ka kategori prindërore',
 	'categorytree-no-pages' => 'Asnjë artikull ose nënkategori.',
 	'categorytree-not-found' => 'Kategoria <i>$1</i> nuk u gjet',
+	'categorytree-error' => 'Problem gjatë ngarkimit të të dhënave.',
+	'categorytree-retry' => 'Ju lutemi prisni një moment dhe provojeni përsëri.',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
  * @author Sasa Stefanovic
  * @author Slaven Kosanovic
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
-	'categorytree' => 'Дрво категорија',
-	'categorytree-portlet' => 'категорије',
-	'categorytree-legend' => 'Прикажи дрво категорија',
-	'categorytree-desc' => 'Динамичка навигација [[Special:CategoryTree|структуре категорија]].',
-	'categorytree-header' => 'Унесите име категорији чији садржај желите да видите као дрво.
-Ово захтева напредну ЈаваСкрип функцију познату као AJAX.
-Уколико имате веома стари браузер, или се искључили ЈаваСкрипт, дрво категорија неће радити.',
+	'categorytree' => 'Стабло категорија',
+	'categorytree-portlet' => 'Категорије',
+	'categorytree-legend' => 'Приказ стабла категорија',
+	'categorytree-desc' => 'Динамичка навигација кроз [[Special:CategoryTree|структуру категорија]]',
+	'categorytree-header' => 'Унесите назив категорије чији садржај желите да видите у стабластој структури.
+Ово захтева напредну функцију јаваскрипта познату као ајакс.
+Ако имате старији прегледач или сте онемогућили јаваскрипт, стабласти приказ неће радити.',
 	'categorytree-category' => 'Категорија:',
-	'categorytree-go' => 'Прикажи дрво',
-	'categorytree-parents' => 'надређене категорије',
+	'categorytree-go' => 'Прикажи стабло',
+	'categorytree-parents' => 'Наткатегорије',
 	'categorytree-mode-categories' => 'само категорије',
-	'categorytree-mode-pages' => 'странице изузев слика',
+	'categorytree-mode-pages' => 'странице изузевши датотеке',
 	'categorytree-mode-all' => 'све странице',
 	'categorytree-collapse' => 'сакриј',
 	'categorytree-expand' => 'прикажи',
-	'categorytree-member-counts' => 'садржи {{PLURAL:$1|1 поткатегорију|$1 поткатегорија}}, {{PLURAL:$2|1 страницу|$2 страница}}, и {{PLURAL:$3|1 фајл|$3 фајлова}}',
+	'categorytree-member-counts' => 'садржи {{PLURAL:$1|једну поткатегорију|$1 поткатегорије|$1 поткатегорија}}, {{PLURAL:$2|једну страницу|$2 странице|$2 страница}} и {{PLURAL:$3|једну датотеку|$3 датотеке|$3 датотека}}',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 С',
+	'categorytree-num-files' => '$1 Д',
+	'categorytree-num-empty' => 'празна',
 	'categorytree-load' => 'учитај',
-	'categorytree-loading' => 'учитавање',
+	'categorytree-loading' => 'учитавам…',
 	'categorytree-nothing-found' => 'ништа није пронађено',
 	'categorytree-no-subcategories' => 'нема поткатегорија',
-	'categorytree-no-parent-categories' => 'без наткатегорије',
+	'categorytree-no-parent-categories' => 'нема наткатегорија',
 	'categorytree-no-pages' => 'нема страница или поткатегорија',
-	'categorytree-not-found' => 'Категорија <i>$1</i> није пронађена',
+	'categorytree-not-found' => 'Не могу да пронађем категорију <i>$1</i>',
 	'categorytree-error' => 'Проблем при учитавању података.',
-	'categorytree-retry' => 'Молимо сачекајте тренутак и покушајте поново',
+	'categorytree-retry' => 'Сачекајте неколико тренутака и покушајте поново.',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ * @author Rancher
+ */
+$messages['sr-el'] = array(
+	'categorytree' => 'Stablo kategorija',
+	'categorytree-portlet' => 'kategorije',
+	'categorytree-legend' => 'Prikaz stabla kategorija',
+	'categorytree-desc' => 'Dinamička navigacija kroz [[Special:CategoryTree|strukturu kategorija]]',
+	'categorytree-header' => 'Unesite naziv kategorije čiji sadržaj želite da vidite u stablastoj strukturi.
+Ovo zahteva naprednu funkciju javaskripta poznatu kao ajaks.
+Ako imate stariji pregledač ili ste onemogućili javaskript, stablasti prikaz neće raditi.',
+	'categorytree-category' => 'Kategorija:',
+	'categorytree-go' => 'Prikaži stablo',
+	'categorytree-parents' => 'nadređene kategorije',
+	'categorytree-mode-categories' => 'samo kategorije',
+	'categorytree-mode-pages' => 'stranice izuzevši datoteke',
+	'categorytree-mode-all' => 'sve stranice',
+	'categorytree-collapse' => 'sakrij',
+	'categorytree-expand' => 'prikaži',
+	'categorytree-member-counts' => 'sadrži {{PLURAL:$1|jednu potkategoriju|$1 potkategorije|$1 potkategorija}}, {{PLURAL:$2|jednu stranicu|$2 stranice|$2 stranica}} i {{PLURAL:$3|jednu datoteku|$3 datoteke|$3 datoteka}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'prazna',
+	'categorytree-load' => 'učitaj',
+	'categorytree-loading' => 'učitavanje',
+	'categorytree-nothing-found' => 'ništa nije pronađeno',
+	'categorytree-no-subcategories' => 'nema potkategorija',
+	'categorytree-no-parent-categories' => 'bez natkategorije',
+	'categorytree-no-pages' => 'nema stranica ili potkategorija',
+	'categorytree-not-found' => 'Kategorija <i>$1</i> nije pronađena',
+	'categorytree-error' => 'Problem pri učitavanju podataka.',
+	'categorytree-retry' => 'Sačekajte nekoliko trenutaka i pokušajte ponovo.',
+);
+
 /** Southern Sotho (Sesotho) */
 $messages['st'] = array(
 	'categorytree' => 'Lenane le Mekga',
@@ -3088,6 +4591,7 @@
  */
 $messages['su'] = array(
 	'categorytree' => 'TangkalKategori',
+	'categorytree-portlet' => 'Kategori',
 	'categorytree-legend' => 'Témbongkeun tangkal kategori',
 	'categorytree-desc' => 'Gajet AJAX pikeun némbongkeun [[Special:CategoryTree|wangun kategori]] dina hiji wiki',
 	'categorytree-header' => 'Asupkeun hiji ngaran kategori pikeun nempo eusina dina wangun tangkal.
@@ -3097,14 +4601,16 @@
 	'categorytree-go' => 'Témbongkeun Tangkal',
 	'categorytree-parents' => 'Luluhur',
 	'categorytree-mode-categories' => 'kategori wungkul',
-	'categorytree-mode-pages' => 'kaca iwal gambar',
+	'categorytree-mode-pages' => 'kaca iwal berkas',
 	'categorytree-mode-all' => 'sadaya kaca',
 	'categorytree-collapse' => 'tilep',
 	'categorytree-expand' => 'buka',
+	'categorytree-member-counts' => 'mibanda {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 kaca|$2 kaca}}, jeung {{PLURAL:$3|1 berkas|$3 berkas}}',
 	'categorytree-load' => 'muatkeun',
 	'categorytree-loading' => 'ngamuat',
 	'categorytree-nothing-found' => 'teu manggih nanaon',
 	'categorytree-no-subcategories' => 'euweuh subkategori',
+	'categorytree-no-parent-categories' => 'taya kategori luhureunana',
 	'categorytree-no-pages' => 'euweuh kaca atawa subkategori',
 	'categorytree-not-found' => 'Kategori <i>$1</i> teu kapanggih',
 	'categorytree-error' => 'Aya masalah dina ngamuat data.',
@@ -3113,6 +4619,7 @@
 
 /** Swedish (Svenska)
  * @author Boivie
+ * @author Diupwijk
  * @author Jon Harald Søby
  * @author Lejonel
  * @author M.M.S.
@@ -3135,6 +4642,10 @@
 	'categorytree-collapse' => 'göm',
 	'categorytree-expand' => 'expandera',
 	'categorytree-member-counts' => 'innehåller {{PLURAL:$1|1 underkategori|$1 underkategorier}}, {{PLURAL:$2|1 sida|$2 sidor}}, och {{PLURAL:$3|1 fil|$3 filer}}',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 S',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => 'tom',
 	'categorytree-load' => 'ladda',
 	'categorytree-loading' => 'laddar',
 	'categorytree-nothing-found' => 'hittade inget',
@@ -3156,32 +4667,74 @@
 	'categorytree-legend' => 'Onyesha mfumo wa jamii',
 	'categorytree-desc' => 'Chungulia kwenye [[Special:CategoryTree|mfumo wa jamii]]',
 	'categorytree-header' => "Ingiza jina la jamii ili kuona yaliyomo kwenye mfumo wa jamii. '''Ilani''': hii itahitaji JavaScript ya kisasa ijulilkanayo kwa jina la AJAX. Endapo utakuwa na ya zamani, au JavaScript yako imezimwa, basi hii hatofanya kazi kabisa.",
-	'categorytree-category' => 'Jamii',
+	'categorytree-category' => 'Jamii:',
 	'categorytree-go' => 'Onyesha mfumo',
 	'categorytree-parents' => 'Kuu',
 	'categorytree-mode-categories' => 'jamii tu',
 	'categorytree-mode-pages' => 'kurasa isipokuwa mafaili',
 	'categorytree-mode-all' => 'kurasa zote',
+	'categorytree-collapse' => 'kunja',
+	'categorytree-expand' => 'kutanua',
+	'categorytree-member-counts' => 'Imo {{PLURAL:$1|kijamii 1|vijamii $1}}, {{PLURAL:$2|ukurasa 1|kurasa $2}}, na {{PLURAL:$3|faili 1|mafaili $3}}',
+	'categorytree-num-empty' => 'tupu',
+	'categorytree-load' => 'kupakia',
+	'categorytree-loading' => 'inapakizwa...',
+	'categorytree-nothing-found' => 'hakupatikana kitu',
 	'categorytree-no-subcategories' => 'jamii ndogo zake hakuna',
 	'categorytree-no-parent-categories' => 'jamii kuu hakuna',
 	'categorytree-no-pages' => 'hakuna kurasa wala jamii ndogo zake',
 	'categorytree-not-found' => 'Jamii inayoitwa $1 haikupatikana',
+	'categorytree-error' => 'Ilitokea tatizo zilipopakizwa data.',
+	'categorytree-retry' => 'Subiri kidogo tafadhali, halafu jaribu tena.',
 );
 
 /** Tamil (தமிழ்)
+ * @author Shanmugamp7
+ * @author Surya Prakash.S.A.
+ * @author TRYPPN
  * @author Trengarasu
  */
 $messages['ta'] = array(
 	'categorytree' => 'பகுப்பு மரம்',
+	'categorytree-portlet' => 'பகுப்புகள்',
+	'categorytree-legend' => 'பகுப்பு மரத்தைக் காட்டு',
 	'categorytree-category' => 'பகுப்பு:',
 	'categorytree-go' => 'மரத்தைக் காட்டு',
+	'categorytree-parents' => 'மூலங்கள்',
+	'categorytree-mode-categories' => 'பகுப்புக்கள் மட்டும்',
+	'categorytree-mode-pages' => 'பக்கங்கள் மட்டும், கோப்புக்கள் தவிர',
+	'categorytree-mode-all' => 'எல்லா பக்கங்களும்',
+	'categorytree-collapse' => 'சுருக்கு',
+	'categorytree-expand' => 'விரிவாக்கு',
+	'categorytree-num-empty' => 'காலி',
+	'categorytree-load' => 'ஏற்று',
+	'categorytree-loading' => 'ஏற்றப்படுகிறது...',
+	'categorytree-nothing-found' => 'ஒன்றும் காணப்படவில்லை',
 	'categorytree-no-subcategories' => 'துணைப்பகுப்புகள் கிடையாது',
+	'categorytree-no-parent-categories' => 'மூலபகுப்புக்கள் ஏதுமில்லை',
 	'categorytree-no-pages' => 'பக்கங்களோ அல்லது துணைப்பகுப்புகளோ கிடையாது',
 	'categorytree-not-found' => '<i>$1</i> பகுப்பு காணப்படவில்லை',
+	'categorytree-error' => 'குறிப்புகளை ஏற்றுவதில் சிக்கல்',
+	'categorytree-retry' => 'கொஞ்ச நேரம் பொறுத்திருந்தபின் மீண்டும் முயற்சி செய்யுங்கள்.',
 );
 
+/** Tulu (ತುಳು)
+ * @author VASANTH S.N.
+ */
+$messages['tcy'] = array(
+	'categorytree-mode-all' => 'ಮಾತಾ ಪುಟೊಲು',
+	'categorytree-collapse' => 'ಕುಗ್ಗಿಸಾಲ',
+	'categorytree-expand' => 'ವಿಸ್ತಾರ ಮಲ್ಪುಲೆ',
+	'categorytree-num-empty' => 'ಖಾಲಿ',
+	'categorytree-load' => 'ದಿಂಜಾಲೆ',
+	'categorytree-loading' => 'ದಿಂಜಾವೊಂದು ಉಂಡು.......',
+	'categorytree-error' => 'ದತ್ತಾಂಶ ದಿಂಜಾನಗ ದೋಷ',
+	'categorytree-retry' => 'ದಯದೀದ್ ಒಂತೆ ಕಾತ್‘ದ್ ಪಿರ ಪ್ರಯತ್ನ ಮಲ್ಪುಲೆ',
+);
+
 /** Telugu (తెలుగు)
  * @author C.Chandra Kanth Rao
+ * @author Kiranmayee
  * @author Mpradeep
  * @author Veeven
  * @author వైజాసత్య
@@ -3201,8 +4754,12 @@
 	'categorytree-collapse' => 'మూసివేయి',
 	'categorytree-expand' => 'విస్తరించు',
 	'categorytree-member-counts' => '{{PLURAL:$1|1 ఉపవర్గం|$1 ఉపవర్గాలూ}}, {{PLURAL:$2|1 పేజీ|$2 పేజీలూ}}, మరియు {{PLURAL:$3|1 ఫైలూ|$3 ఫైళ్ళూ}} ఉన్నాయి',
-	'categorytree-load' => 'లోడు చెయ్యి',
-	'categorytree-loading' => 'లోడవుతూంది',
+	'categorytree-num-categories' => '$1 వ',
+	'categorytree-num-pages' => '$1 పే',
+	'categorytree-num-files' => '$1 ద',
+	'categorytree-num-empty' => 'ఖాళీ',
+	'categorytree-load' => 'లోడు',
+	'categorytree-loading' => 'లోడవుతోంది...',
 	'categorytree-nothing-found' => 'ఏమీ లేవు',
 	'categorytree-no-subcategories' => 'ఉపవర్గాలు లేవు',
 	'categorytree-no-parent-categories' => 'మాతృవర్గం లేదు',
@@ -3224,7 +4781,7 @@
 	'categorytree-mode-all' => 'pájina hotu',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -3254,7 +4811,38 @@
 	'categorytree-retry' => 'Лутфан чанд лаҳза сабр кунед ва дубора имтиҳон кунед.',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'categorytree' => 'GurūhDaraxt',
+	'categorytree-portlet' => 'Gurūhho',
+	'categorytree-legend' => 'Namoişi daraxti gurūh',
+	'categorytree-desc' => 'Abzore dar asosi AJAX baroi namoişi [[Special:CategoryTree|soxtori gurūhi]] viki.',
+	'categorytree-header' => "Nomi jak gurūhro vorid kuned, to mūhtavijoti on ba surati daraxt namoiş jobad.
+Tavaççūh kuned, ki in kor ba qobilijathoi peşraftai ÇavaSkript bo nomi Açaks nijoz dorad.
+Agar az mururgari xele kūhna istifoda mekuned jo ÇavaSkriptro ƣajrifa'ol kardaed, dar in hol on kor naxohad kard.",
+	'categorytree-category' => 'Gurūh:',
+	'categorytree-go' => 'Namoişi daraxt',
+	'categorytree-parents' => 'Volidajn',
+	'categorytree-mode-categories' => 'Faqat gurūhho',
+	'categorytree-mode-pages' => 'sahifaho ƣajr az aksho',
+	'categorytree-mode-all' => 'hamai sahifaho',
+	'categorytree-collapse' => 'furukaş',
+	'categorytree-expand' => 'gustariş',
+	'categorytree-load' => 'bor kardan',
+	'categorytree-loading' => 'dar holi bor şudan…',
+	'categorytree-nothing-found' => 'heçciz joft naşud',
+	'categorytree-no-subcategories' => 'heç zergurūhe nadorad',
+	'categorytree-no-parent-categories' => 'gurūhi bolotare nest',
+	'categorytree-no-pages' => 'heç sahifae jo zergurūhe',
+	'categorytree-not-found' => 'Gurūhi <i>$1</i> joft naşud',
+	'categorytree-error' => 'Işkol dar darjofti ittiloot',
+	'categorytree-retry' => 'Lutfan cand lahza sabr kuned va dubora imtihon kuned.',
+);
+
 /** Thai (ไทย)
+ * @author Horus
  * @author Manop
  * @author Octahedron80
  * @author Passawuth
@@ -3276,6 +4864,7 @@
 	'categorytree-collapse' => 'ย่อ',
 	'categorytree-expand' => 'ขยาย',
 	'categorytree-member-counts' => 'มี {{PLURAL:$1|1 หมวดหมู่ย่อย|$1 หมวดหมู่ย่อย}}, {{PLURAL:$2|1 หน้า|$2 หน้า}}, และ {{PLURAL:$3|1 ไฟล์|$3 ไฟล์}}',
+	'categorytree-num-empty' => 'ว่าง',
 	'categorytree-load' => 'โหลด',
 	'categorytree-loading' => 'กำลังโหลด...',
 	'categorytree-nothing-found' => 'ไม่พบที่ต้องการ',
@@ -3287,6 +4876,37 @@
 	'categorytree-retry' => 'กรุณารอสักครู่ แล้วลองโหลดใหม่อีกครั้ง',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'categorytree' => 'Kategoriýa agajy',
+	'categorytree-portlet' => 'Kategoriýalar',
+	'categorytree-legend' => 'Kategoriýa agajyny görkez',
+	'categorytree-desc' => '[[Special:CategoryTree|Kategoriýa gurluşyny]] dinamik ýagdaýda dolandyr',
+	'categorytree-header' => 'Kategoriýanyň adyny ýazyp, onuň mazmunyny agaç gurluşy hökmünde görüp bilersiňiz.
+Bu aýratynlyk AJAX ady bilen tanalýan ösen JavaScript bilen işleýändir.
+Eger brauzeriňiz köne bolsa ýa-da JavaScript ýapyk bolsa, onda ol işlemez.',
+	'categorytree-category' => 'Kategoriýa:',
+	'categorytree-go' => 'Agajy görkez',
+	'categorytree-parents' => 'Ene kategoriýalar',
+	'categorytree-mode-categories' => 'diňe kategoriýalar',
+	'categorytree-mode-pages' => 'faýldan başga sahypalar',
+	'categorytree-mode-all' => 'ähli sahypalar',
+	'categorytree-collapse' => 'ýygna',
+	'categorytree-expand' => 'giňelt',
+	'categorytree-member-counts' => '{{PLURAL:$1|1 kiçi kategoriýany|$1 kiçi kategoriýany}}, {{PLURAL:$2|1 sahypany|$2 sahypany}} we {{PLURAL:$3|1 faýly|$3 faýly}} öz içine alýar',
+	'categorytree-load' => 'ýükle',
+	'categorytree-loading' => 'ýüklenýär...',
+	'categorytree-nothing-found' => 'hiç zat tapylmady',
+	'categorytree-no-subcategories' => 'kiçi kategoriýa ýok',
+	'categorytree-no-parent-categories' => 'ene kategoriýa ýok',
+	'categorytree-no-pages' => 'sahypa ýa-da kiçi kategoriýa ýok',
+	'categorytree-not-found' => '<i>"$1"</i> kategoriýasy tapylmady',
+	'categorytree-error' => 'Maglumat ýükleme problemsy.',
+	'categorytree-retry' => 'Bir sellem garaşyň we gaýtadan synaň.',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -3318,7 +4938,7 @@
 	'categorytree-retry' => 'Maghintay lamang ng isang sandali at subuking muli.',
 );
 
-/** Tonga (faka-Tonga) */
+/** Tongan (lea faka-Tonga) */
 $messages['to'] = array(
 	'categorytree' => 'Fuʻuʻakau faʻahinga',
 	'categorytree-category' => 'Faʻahinga:',
@@ -3327,9 +4947,20 @@
 	'categorytree-expand' => 'fano',
 );
 
+/** Tok Pisin (Tok Pisin)
+ * @author Iketsi
+ * @author Wantok
+ */
+$messages['tpi'] = array(
+	'categorytree-portlet' => 'Ol grup',
+	'categorytree-category' => 'Grup:',
+	'categorytree-mode-all' => 'Olgeta pes',
+);
+
 /** Turkish (Türkçe)
  * @author Joseph
  * @author Karduelis
+ * @author Khutuck
  * @author Mach
  * @author Runningfridgesrule
  */
@@ -3348,6 +4979,10 @@
 	'categorytree-collapse' => 'aç/kapat',
 	'categorytree-expand' => 'genişlet',
 	'categorytree-member-counts' => '{{PLURAL:$1|1 altkategori|$1 altkategori}}, {{PLURAL:$2|1 sayfa|$2 sayfa}}, ve {{PLURAL:$3|1 dosya|$3 dosya}} içeriyor',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 M',
+	'categorytree-num-files' => '$1 D',
+	'categorytree-num-empty' => 'boş',
 	'categorytree-load' => 'yükle',
 	'categorytree-loading' => 'yükleniyor',
 	'categorytree-nothing-found' => 'maalesef, sonuç yok',
@@ -3368,9 +5003,48 @@
 	'categorytree-category' => 'Xiyenge:',
 );
 
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Ильнар
+ */
+$messages['tt-cyrl'] = array(
+	'categorytree' => 'Тәркемнәр "агачы".',
+	'categorytree-portlet' => 'Төркемнәр',
+	'categorytree-legend' => 'Төркемнәрнең шәҗәрәсен ачарга',
+	'categorytree-desc' => '[[Special:CategoryTree|Төркемнәрнең асылы]]н аңлату өчен төзелгән AJAX-бит',
+	'categorytree-header' => 'Төркемнең исемен кертегез һәм ул шәҗәрә рәвешендә күрсәтеләчәк.
+Бу мөмкинчелек сезнең браузерның AJAX ны тәэмин итүдән генә торырга мөмкин.
+Әгәр дә сезнең браузерыгыз иске яки JavaScript сүндерелгән булса, бу мөмкинчелек эшләмәячәк.',
+	'categorytree-category' => 'Төркем:',
+	'categorytree-go' => 'Йөкләү',
+	'categorytree-parents' => 'Төп төркемнәр',
+	'categorytree-mode-categories' => 'бары тик төркемнәр генә урнаштырылган',
+	'categorytree-mode-pages' => 'файллардан башка',
+	'categorytree-mode-all' => 'барлык битләр',
+	'categorytree-collapse' => 'яшерү',
+	'categorytree-expand' => 'ачарга',
+	'categorytree-member-counts' => '$1 {{PLURAL:$1|тәркемчәне|тәркемчәләрне|тәркемчәләрдән}}, $2 {{PLURAL:$2|битне|битләрне|битләрдән}} и $3 {{PLURAL:$3|файл|файл|файллар}} ны үз эченә ала',
+	'categorytree-load' => 'йөкләү',
+	'categorytree-loading' => 'йөкләү бара…',
+	'categorytree-nothing-found' => 'бернидә табылмады',
+	'categorytree-no-subcategories' => 'мондый төркемчәләр юк',
+	'categorytree-no-parent-categories' => 'төп бүлекләр юк',
+	'categorytree-no-pages' => 'мондый бит яки төркемчә юк',
+	'categorytree-not-found' => '<i>$1</i> бүлеге табылмады',
+	'categorytree-error' => 'Хата',
+	'categorytree-retry' => 'Зинһар бераз көтеп торыгыз һәм тагын бер кат йөкләүне башкарып карагыз.',
+);
+
+/** Tuvinian (Тыва дыл)
+ * @author Sborsody
+ */
+$messages['tyv'] = array(
+	'categorytree-mode-all' => 'шупту арыннар',
+);
+
 /** Ukrainian (Українська)
  * @author AS
  * @author Ahonc
+ * @author Sodmy
  */
 $messages['uk'] = array(
 	'categorytree' => 'Дерево категорій',
@@ -3389,6 +5063,10 @@
 	'categorytree-collapse' => 'згорнути',
 	'categorytree-expand' => 'розгорнути',
 	'categorytree-member-counts' => 'містить $1 {{PLURAL:$1|підкатегорію|підкатегорії|підкатегорій}}, $2 {{PLURAL:$2|сторінку|сторінки|сторінок}} та $3 {{PLURAL:$3|файл|файли|файлів}}',
+	'categorytree-num-categories' => '$1 К',
+	'categorytree-num-pages' => '$1 С',
+	'categorytree-num-files' => '$1 Ф',
+	'categorytree-num-empty' => 'порожній',
 	'categorytree-load' => 'завантажити',
 	'categorytree-loading' => 'завантаження…',
 	'categorytree-nothing-found' => 'нема підкатегорій',
@@ -3400,11 +5078,16 @@
 	'categorytree-retry' => 'Будь ласка, зачекайте і спробуйте ще раз.',
 );
 
-/** Urdu (اردو) */
+/** Urdu (اردو)
+ * @author Istabani
+ */
 $messages['ur'] = array(
 	'categorytree' => 'شجر ِزمرہ',
+	'categorytree-portlet' => 'زمرہ',
+	'categorytree-legend' => 'مختلف اقسام دکھائیں',
 	'categorytree-category' => 'زمرہ',
 	'categorytree-go' => 'بہ ترتیب شجر',
+	'categorytree-parents' => 'والدین',
 	'categorytree-mode-all' => 'تمام صفحات',
 	'categorytree-load' => 'اثقال',
 	'categorytree-loading' => 'دوران اثقال',
@@ -3448,6 +5131,29 @@
 	'categorytree-retry' => "Speta n'atimo e dopo próa de novo.",
 );
 
+/** Veps (Vepsän kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'categorytree' => 'Kategorijoiden pu',
+	'categorytree-portlet' => 'Kategorijad',
+	'categorytree-legend' => 'Ozutada kategorijoiden pu',
+	'categorytree-category' => 'Kategorii:',
+	'categorytree-go' => 'Ozutada pu',
+	'categorytree-parents' => 'Ülembaižed kategorijad',
+	'categorytree-mode-categories' => 'vaiše kategorijad',
+	'categorytree-mode-pages' => 'lehtpoled failoita',
+	'categorytree-mode-all' => 'kaik lehtpoled',
+	'categorytree-num-categories' => '$1 K',
+	'categorytree-num-pages' => '$1 L',
+	'categorytree-num-files' => '$1 F',
+	'categorytree-num-empty' => "pall'az",
+	'categorytree-load' => 'jügutoitta',
+	'categorytree-loading' => 'jügudoitmine...',
+	'categorytree-nothing-found' => 'ei voi löuta',
+	'categorytree-no-subcategories' => 'ei ole alakategorijoid',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
@@ -3468,9 +5174,13 @@
 	'categorytree-mode-all' => 'tất cả các trang',
 	'categorytree-collapse' => 'đóng',
 	'categorytree-expand' => 'mở',
-	'categorytree-member-counts' => 'có $1 tiểu thể loại, $2 trang, và $3 tập tin',
+	'categorytree-member-counts' => 'có {{PLURAL:$1|1 tiểu thể loại|$1 tiểu thể loại}} , {{PLURAL:$2|1 trang|$2 trang}}, và {{PLURAL:$3|1 tập tin|$3 tập tin}}',
+	'categorytree-num-categories' => '$1 tl.',
+	'categorytree-num-pages' => '$1 tr.',
+	'categorytree-num-files' => '$1 tt.',
+	'categorytree-num-empty' => 'trống',
 	'categorytree-load' => 'tải',
-	'categorytree-loading' => 'đang tải',
+	'categorytree-loading' => 'đang tải…',
 	'categorytree-nothing-found' => 'Không có gì.',
 	'categorytree-no-subcategories' => 'Không có tiểu thể loại.',
 	'categorytree-no-parent-categories' => 'không nằm trong thể loại nào',
@@ -3515,6 +5225,23 @@
 	'categorytree-retry' => 'Stebedolös, begö! timüli e steifülolös dönu.',
 );
 
+/** Walloon (Walon)
+ * @author Lucyin
+ */
+$messages['wa'] = array(
+	'categorytree-mode-all' => 'Totes les pådjes',
+	'categorytree-member-counts' => 'gn a $1 dizo-categoreye{{PLURAL:$1||s}}, $2 pådje{{PLURAL:$2||s}} et $3 fitchî{{PLURAL:$3||s}}',
+	'categorytree-num-empty' => 'vude',
+	'categorytree-loading' => "dji so k' eberwete...",
+	'categorytree-nothing-found' => 'rén trové',
+	'categorytree-no-subcategories' => 'Nole dizo-categoreye',
+	'categorytree-no-parent-categories' => 'Nole dizeu-categoreye',
+	'categorytree-no-pages' => 'Nole pådje ou categoreye',
+	'categorytree-not-found' => 'Categoreye <i>$1</i> nén trovêye',
+	'categorytree-error' => "Aroke d' eberwetaedje",
+	'categorytree-retry' => 'Tårdjîz ene miete eyet rsayî',
+);
+
 /** Wu (吴语)
  * @author Wtzdj
  */
@@ -3539,6 +5266,10 @@
 	'categorytree' => 'קאַטעגאריע בוים',
 	'categorytree-portlet' => 'קאַטעגאריעס',
 	'categorytree-legend' => 'ווײַזן קאַטעגאריע בוים',
+	'categorytree-desc' => 'נאוויגירן דינאמיש דעם [[Special:CategoryTree|קאטעגאריע סטרוקטור]]',
+	'categorytree-header' => 'לייגט אריין א קאטעגאריע נאמען צו זען איר אינהאלט אלס א בוים סטרוקטור.
+באמערקט אז דאס פארלאנגט פארגעשריטענע JavaScript מעגליכקייטן, באקאנט אלס AJAX.
+אויב איר ניצט אן אלטן בלעטערער, אדער איר ערלויבט נישט קיין JavaScript, וועט דאס נישט ווירקן.',
 	'categorytree-category' => 'קאטעגאריע:',
 	'categorytree-go' => 'ווײַזן בוים',
 	'categorytree-parents' => 'העכערע קאַטעגאריעס',
@@ -3547,13 +5278,57 @@
 	'categorytree-mode-all' => 'אַלע בלעטער',
 	'categorytree-collapse' => 'אײַנציען',
 	'categorytree-expand' => 'פֿאַרברייטערן',
+	'categorytree-member-counts' => 'אנטהאלט {{PLURAL:$1|1 אונטערקאטעגאריע|$1 אונטערקאטעגאריעס}}, {{PLURAL:$2|1 בלאט|$2 בלעטער}}, און {{PLURAL:$3|1 טעקע|$3 טעקעס}}',
+	'categorytree-num-categories' => '$1 קאַט',
+	'categorytree-num-pages' => '$1 ב',
+	'categorytree-num-files' => '$1 ט',
+	'categorytree-num-empty' => 'ליידיק',
+	'categorytree-load' => 'לאָדן',
+	'categorytree-loading' => 'לאָדנדיק…',
 	'categorytree-nothing-found' => 'גארנישט געפֿונען',
 	'categorytree-no-subcategories' => 'נישטא קיין אונטער-קאַטעגאריעס',
+	'categorytree-no-parent-categories' => 'נישטא קיין עלטערן קאַטעגאריעס',
 	'categorytree-no-pages' => 'נישטא קיין בלעטער אדער אונטער-קאַטעגאריעס',
 	'categorytree-not-found' => "קאַטעגאריע '''$1''' נישט געפֿונען",
+	'categorytree-error' => 'פּראָבלעם בײַם ארויפֿלאָדן דאַטן.',
+	'categorytree-retry' => 'ביטע וואַרט אַ רגע און פרובירט נאכאַמאָל',
 );
 
-/** Yue (粵語)
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'categorytree' => 'Igi ẹ̀ka',
+	'categorytree-portlet' => 'Àwọn ẹ̀ka',
+	'categorytree-legend' => 'Ìfihàn igi ẹ̀ka',
+	'categorytree-header' => 'Ẹ fi orúkọ ẹ̀ka kan síbẹ̀ láti wo àwọn àkóónú rẹ̀ gẹ́gẹ́ bíi ẹ̀ka igi.
+Àkíyèsí pé irú JavaScript tó únjẹ́ AJAX pọn dandan fun láti ṣiṣẹ́.
+Tó bá ṣe pé agbétàkùn yín jẹ́ tàti pípẹ́, tàbí JavaScript jẹ́ dídálẹ́kun, kò ní ṣiṣẹ́.',
+	'categorytree-category' => 'Ẹ̀ka:',
+	'categorytree-go' => 'Ìfihàn igi',
+	'categorytree-parents' => 'Àwọn òbí',
+	'categorytree-mode-categories' => 'àwọn ẹ̀ka nìkan',
+	'categorytree-mode-pages' => 'àwọn ojúewé àyàfi àwọn fáìlì',
+	'categorytree-mode-all' => 'gbogbo àwọn ojúewé',
+	'categorytree-collapse' => 'kálura',
+	'categorytree-expand' => 'fẹ̀hàn',
+	'categorytree-member-counts' => 'ní {{PLURAL:$1|ẹ̀kaabẹ́ 1|àwọn ẹ̀kaabẹ́ $1}}, {{PLURAL:$2|ojúewé 1 page|àwọn ojúewé $2}}, àti {{PLURAL:$3|fáìlì 1|àwọn fáìlì $3}} nínú',
+	'categorytree-num-categories' => 'Ẹ̀k. $1',
+	'categorytree-num-pages' => 'Oj. $1',
+	'categorytree-num-files' => 'Fá. $1',
+	'categorytree-num-empty' => 'olófo',
+	'categorytree-load' => 'ìgbéyọ',
+	'categorytree-loading' => 'úngbéyọ...',
+	'categorytree-nothing-found' => 'kò sí ùnkankan',
+	'categorytree-no-subcategories' => 'Kò sí àwọn ẹ̀kaabẹ́',
+	'categorytree-no-parent-categories' => 'kò sí àwọn ẹ̀ka òbí',
+	'categorytree-no-pages' => 'kò sí àwọn ojúewé tàbí àwọn ẹ̀kaabẹ́',
+	'categorytree-not-found' => 'Ẹ̀ka <i>$1</i> kò ṣe é wárí',
+	'categorytree-error' => 'Ìṣòro ìgbéyọ dátà.',
+	'categorytree-retry' => 'Ẹ jọ̀wọ́ ẹ dúró fún gbà díẹ̀ kí ẹ tó gbìyànjú lẹ́ẹ̀kansíi.',
+);
+
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
@@ -3584,8 +5359,42 @@
 	'categorytree-retry' => '請等多一陣再試過。',
 );
 
+/** Zeeuws (Zeêuws)
+ * @author Ooswesthoesbes
+ */
+$messages['zea'] = array(
+	'categorytree' => 'Catehorieboôm',
+	'categorytree-portlet' => 'Categorieën',
+	'categorytree-category' => 'Categorie:',
+	'categorytree-go' => 'Structuur weerheven',
+	'categorytree-parents' => 'Bovenliggende categorieën',
+	'categorytree-mode-categories' => 'alleên categorieën',
+	'categorytree-mode-pages' => 'hin aofbildiengen',
+	'categorytree-mode-all' => 'aolle bladzies',
+	'categorytree-collapse' => "inklapp'n",
+	'categorytree-expand' => "uutvaow'n",
+	'categorytree-member-counts' => "bevat {{PLURAL:$1|eên ondercategorie|$1 ondercategorieën}}, {{PLURAL:$2|eên pagina|$2 pagina's}} en {{PLURAL:$3|eên bestand|$3 bestanden}}",
+	'categorytree-num-categories' => '$1 C',
+	'categorytree-num-pages' => '$1 P',
+	'categorytree-num-files' => '$1 B',
+	'categorytree-num-empty' => 'leeh',
+	'categorytree-load' => "laed'n",
+	'categorytree-loading' => "an 't laed'n...",
+	'categorytree-nothing-found' => "niks hevaond'n",
+	'categorytree-no-subcategories' => 'Hin ondercategorieën',
+	'categorytree-no-parent-categories' => 'hin bovencategorieën',
+	'categorytree-no-pages' => 'Hin bladzies of ondercategorieën',
+	'categorytree-not-found' => "Categorie <i>$1</i> is nie hevond'n",
+	'categorytree-error' => "Probleem bie 't laed'n von de hehevens.",
+	'categorytree-retry' => "Wacht even en probeer 't dan opnuuw.",
+);
+
 /** Simplified Chinese (‪中文(简体)‬)
+ * @author Breawycker
+ * @author Liangent
+ * @author PhiLiP
  * @author Shinjiman
+ * @author Xiaomingyan
  */
 $messages['zh-hans'] = array(
 	'categorytree' => '分类树',
@@ -3595,28 +5404,33 @@
 	'categorytree-header' => '在此可以查询以分类的树形结构。
 注意: 本特殊页面使用AJAX技术。
 如果您的浏览器非常老旧,或者是关闭了JavaScript,本页面将会无法正常运作。',
-	'categorytree-category' => '分类',
-	'categorytree-go' => '显示树形结构',
-	'categorytree-parents' => '上级分类',
+	'categorytree-category' => '分类:',
+	'categorytree-go' => '显示分类树',
+	'categorytree-parents' => '父分类',
 	'categorytree-mode-categories' => '只显示分类',
-	'categorytree-mode-pages' => '除去图像页面',
+	'categorytree-mode-pages' => '排除文件页面',
 	'categorytree-mode-all' => '所有页面',
 	'categorytree-collapse' => '折叠',
 	'categorytree-expand' => '展开',
-	'categorytree-member-counts' => '含有$1个子分类、$2个页面和$3个文件',
-	'categorytree-load' => '装载',
-	'categorytree-loading' => '装载中…',
-	'categorytree-nothing-found' => '搜索结果为空',
-	'categorytree-no-subcategories' => '没有子分类',
-	'categorytree-no-parent-categories' => '没有父分类',
-	'categorytree-no-pages' => '没有文章或是子分类。',
+	'categorytree-member-counts' => '包含$1个子分类,$2个页面和$3个文件',
+	'categorytree-num-categories' => '$1字节',
+	'categorytree-num-pages' => '$1页面',
+	'categorytree-num-files' => '$1文件',
+	'categorytree-num-empty' => '空',
+	'categorytree-load' => '载入',
+	'categorytree-loading' => '正在载入...',
+	'categorytree-nothing-found' => '无结果',
+	'categorytree-no-subcategories' => '无子分类',
+	'categorytree-no-parent-categories' => '无父分类',
+	'categorytree-no-pages' => '无页面或子分类',
 	'categorytree-not-found' => '找不到分类<i>$1</i>',
-	'categorytree-error' => '载入数据时发生错误。',
-	'categorytree-retry' => '请稍候一会,然后再试。',
+	'categorytree-error' => '载入数据时出错。',
+	'categorytree-retry' => '请片刻后再次尝试。',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
  * @author Alexsh
+ * @author Mark85296341
  * @author Shinjiman
  */
 $messages['zh-hant'] = array(
@@ -3627,15 +5441,19 @@
 	'categorytree-header' => '在此可以查詢以分類的樹狀結構。
 注意: 本特殊頁面使用AJAX技術。
 如果您的瀏覽器非常老舊,或者是關閉了JavaScript,本頁面將會無法正常運作。',
-	'categorytree-category' => '分類',
+	'categorytree-category' => '分類:',
 	'categorytree-go' => '顯示樹狀結構',
 	'categorytree-parents' => '父分類',
 	'categorytree-mode-categories' => '只顯示分類',
-	'categorytree-mode-pages' => '除去圖像頁面',
+	'categorytree-mode-pages' => '除去圖片頁面',
 	'categorytree-mode-all' => '所有頁面',
 	'categorytree-collapse' => '摺疊',
 	'categorytree-expand' => '展開',
 	'categorytree-member-counts' => '含有$1個子分類、$2個頁面和$3個檔案',
+	'categorytree-num-categories' => '$1字節',
+	'categorytree-num-pages' => '$1頁面',
+	'categorytree-num-files' => '$1文件',
+	'categorytree-num-empty' => '空',
 	'categorytree-load' => '載入',
 	'categorytree-loading' => '載入中…',
 	'categorytree-nothing-found' => '找不到任何項目',
@@ -3647,6 +5465,15 @@
 	'categorytree-retry' => '請稍候一會,然後再試。',
 );
 
+/** Chinese (Taiwan) (‪中文(台灣)‬)
+ * @author Ffaarr
+ */
+$messages['zh-tw'] = array(
+	'categorytree' => '分類樹',
+	'categorytree-category' => '分類:',
+	'categorytree-mode-all' => '所有頁面',
+);
+
 /** Zulu (isiZulu) */
 $messages['zu'] = array(
 	'categorytree-collapse' => 'Nciphisa',

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTree.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,16 +1,16 @@
 <?php
-
 /**
  * Setup and Hooks for the CategoryTree extension, an AJAX based gadget
  * to display the category structure of a wiki
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2006-2008 Daniel Kinzler and others
  * @license GNU General Public Licence 2.0 or later
  */
 
-if( !defined( 'MEDIAWIKI' ) ) {
+if ( !defined( 'MEDIAWIKI' ) ) {
 	echo( "This file is an extension to the MediaWiki software and cannot be used standalone.\n" );
 	die( 1 );
 }
@@ -19,19 +19,19 @@
 * Constants for use with the mode,
 * defining what should be shown in the tree
 */
-define('CT_MODE_CATEGORIES', 0);
-define('CT_MODE_PAGES', 10);
-define('CT_MODE_ALL', 20);
-define('CT_MODE_PARENTS', 100);
+define( 'CT_MODE_CATEGORIES', 0 );
+define( 'CT_MODE_PAGES', 10 );
+define( 'CT_MODE_ALL', 20 );
+define( 'CT_MODE_PARENTS', 100 );
 
 /**
 * Constants for use with the hideprefix option,
 * defining when the namespace prefix should be hidden
 */
-define('CT_HIDEPREFIX_NEVER', 0);
-define('CT_HIDEPREFIX_ALWAYS', 10);
-define('CT_HIDEPREFIX_CATEGORIES', 20);
-define('CT_HIDEPREFIX_AUTO', 30);
+define( 'CT_HIDEPREFIX_NEVER', 0 );
+define( 'CT_HIDEPREFIX_ALWAYS', 10 );
+define( 'CT_HIDEPREFIX_CATEGORIES', 20 );
+define( 'CT_HIDEPREFIX_AUTO', 30 );
 
 /**
  * Options:
@@ -56,90 +56,80 @@
 $wgCategoryTreeDisableCache = true;
 $wgCategoryTreeDynamicTag = false;
 $wgCategoryTreeHTTPCache = false;
-#$wgCategoryTreeUnifiedView = true;
-$wgCategoryTreeMaxDepth = array(CT_MODE_PAGES => 1, CT_MODE_ALL => 1, CT_MODE_CATEGORIES => 2);
+# $wgCategoryTreeUnifiedView = true;
+$wgCategoryTreeMaxDepth = array( CT_MODE_PAGES => 1, CT_MODE_ALL => 1, CT_MODE_CATEGORIES => 2 );
 
-# Set $wgCategoryTreeForceHeaders to true to force the JS and CSS headers for CategoryTree to be included on every page. 
+# Set $wgCategoryTreeForceHeaders to true to force the JS and CSS headers for CategoryTree to be included on every page.
 # May be usefull for using CategoryTree from within system messages, in the sidebar, or a custom skin.
-$wgCategoryTreeForceHeaders = false; 
-$wgCategoryTreeSidebarRoot = NULL;
+$wgCategoryTreeForceHeaders = false;
+$wgCategoryTreeSidebarRoot = null;
 $wgCategoryTreeHijackPageCategories = false; # EXPERIMENTAL! NOT YET FOR PRODUCTION USE! Main problem is general HTML/CSS layout cruftiness.
+$wgCategoryTreeUseCategoryTable = true;
 
-$wgCategoryTreeExtPath = '/extensions/CategoryTree';
-$wgCategoryTreeVersion = '5';  #NOTE: bump this when you change the CSS or JS files!
-$wgCategoryTreeUseCategoryTable = version_compare( $wgVersion, "1.13", '>=' );
-
 $wgCategoryTreeOmitNamespace = CT_HIDEPREFIX_CATEGORIES;
 $wgCategoryTreeDefaultMode = CT_MODE_CATEGORIES;
-$wgCategoryTreeDefaultOptions = array(); #Default values for most options. ADD NEW OPTIONS HERE!
-$wgCategoryTreeDefaultOptions['mode'] = NULL; # will be set to $wgCategoryTreeDefaultMode in efCategoryTree(); compatibility quirk
-$wgCategoryTreeDefaultOptions['hideprefix'] = NULL; # will be set to $wgCategoryTreeDefaultMode in efCategoryTree(); compatibility quirk
+$wgCategoryTreeDefaultOptions = array(); # Default values for most options. ADD NEW OPTIONS HERE!
+$wgCategoryTreeDefaultOptions['mode'] = null; # will be set to $wgCategoryTreeDefaultMode in efCategoryTree(); compatibility quirk
+$wgCategoryTreeDefaultOptions['hideprefix'] = null; # will be set to $wgCategoryTreeDefaultMode in efCategoryTree(); compatibility quirk
 $wgCategoryTreeDefaultOptions['showcount'] = false;
 $wgCategoryTreeDefaultOptions['namespaces'] = false; # false means "no filter"
 
 $wgCategoryTreeCategoryPageMode = CT_MODE_CATEGORIES;
-$wgCategoryTreeCategoryPageOptions = array(); #Options to be used for category pages
+$wgCategoryTreeCategoryPageOptions = array(); # Options to be used for category pages
 $wgCategoryTreeCategoryPageOptions['mode'] = NULL; # will be set to $wgCategoryTreeDefaultMode in efCategoryTree(); compatibility quirk
 $wgCategoryTreeCategoryPageOptions['showcount'] = true;
 
-$wgCategoryTreeSpecialPageOptions = array(); #Options to be used for Special:CategoryTree
+$wgCategoryTreeSpecialPageOptions = array(); # Options to be used for Special:CategoryTree
 $wgCategoryTreeSpecialPageOptions['showcount'] = true;
 
-$wgCategoryTreeSidebarOptions = array(); #Options to be used in the sidebar (for use with $wgCategoryTreeSidebarRoot)
+$wgCategoryTreeSidebarOptions = array(); # Options to be used in the sidebar (for use with $wgCategoryTreeSidebarRoot)
 $wgCategoryTreeSidebarOptions['mode'] = CT_MODE_CATEGORIES;
 $wgCategoryTreeSidebarOptions['hideprefix'] = CT_HIDEPREFIX_CATEGORIES;
 $wgCategoryTreeSidebarOptions['showcount'] = false;
 $wgCategoryTreeSidebarOptions['hideroot'] = true;
-$wgCategoryTreeSidebarOptions['namespaces'] = false; 
+$wgCategoryTreeSidebarOptions['namespaces'] = false;
 $wgCategoryTreeSidebarOptions['depth'] = 1;
 
-$wgCategoryTreePageCategoryOptions = array(); #Options to be used in the sidebar (for use with $wgCategoryTreePageCategories)
+$wgCategoryTreePageCategoryOptions = array(); # Options to be used in the sidebar (for use with $wgCategoryTreePageCategories)
 $wgCategoryTreePageCategoryOptions['mode'] = CT_MODE_PARENTS;
 $wgCategoryTreePageCategoryOptions['hideprefix'] = CT_HIDEPREFIX_CATEGORIES;
 $wgCategoryTreePageCategoryOptions['showcount'] = false;
 $wgCategoryTreePageCategoryOptions['hideroot'] = false;
 $wgCategoryTreePageCategoryOptions['namespaces'] = false;
 $wgCategoryTreePageCategoryOptions['depth'] = 0;
-#$wgCategoryTreePageCategoryOptions['class'] = 'CategoryTreeInlineNode';
+# $wgCategoryTreePageCategoryOptions['class'] = 'CategoryTreeInlineNode';
 
-$wgExtensionAliasesFiles['CategoryTree'] = dirname(__FILE__) . '/CategoryTreePage.i18n.alias.php';
+$wgExtensionMessagesFiles['CategoryTreeAlias'] = dirname( __FILE__ ) . '/CategoryTree.alias.php';
 
 /**
  * Register extension setup hook and credits
  */
 $wgExtensionFunctions[] = 'efCategoryTree';
-$wgExtensionCredits['specialpage'][] = array(
+$wgExtensionCredits['specialpage'][] = $wgExtensionCredits['parserhook'][] = array(
+	'path' => __FILE__,
 	'name' => 'CategoryTree',
-	'svn-date' => '$LastChangedDate: 2009-03-09 12:54:39 +0100 (Mon, 09 Mar 2009) $',
-	'svn-revision' => '$LastChangedRevision: 48218 $',
 	'author' => 'Daniel Kinzler',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:CategoryTree',
-	'description' => 'Dynamically navigate the category structure',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:CategoryTree',
 	'descriptionmsg' => 'categorytree-desc',
 );
-$wgExtensionCredits['parserhook'][] = array(
-	'name' => 'CategoryTree',
-	'svn-date' => '$LastChangedDate: 2009-03-09 12:54:39 +0100 (Mon, 09 Mar 2009) $',
-	'svn-revision' => '$LastChangedRevision: 48218 $',
-	'author' => 'Daniel Kinzler',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:CategoryTree',
-	'description' => 'Dynamically navigate the category structure',
-	'descriptionmsg' => 'categorytree-desc',
-);
 
 /**
  * Register the special page
  */
-$dir = dirname(__FILE__) . '/';
+$dir = dirname( __FILE__ ) . '/';
+
+if ( $wgUseAjax && $wgCategoryTreeAllowTag ) {
+	$wgExtensionMessagesFiles['CategoryTreeMagic'] = $dir . 'CategoryTree.i18n.magic.php';
+}
+
 $wgExtensionMessagesFiles['CategoryTree'] = $dir . 'CategoryTree.i18n.php';
 $wgAutoloadClasses['CategoryTreePage'] = $dir . 'CategoryTreePage.php';
 $wgAutoloadClasses['CategoryTree'] = $dir . 'CategoryTreeFunctions.php';
 $wgAutoloadClasses['CategoryTreeCategoryPage'] = $dir . 'CategoryPageSubclass.php';
 $wgSpecialPages['CategoryTree'] = 'CategoryTreePage';
 $wgSpecialPageGroups['CategoryTree'] = 'pages';
-#$wgHooks['SkinTemplateTabs'][] = 'efCategoryTreeInstallTabs';
+# $wgHooks['SkinTemplateTabs'][] = 'efCategoryTreeInstallTabs';
 $wgHooks['ArticleFromTitle'][] = 'efCategoryTreeArticleFromTitle';
-$wgHooks['LanguageGetMagic'][] = 'efCategoryTreeGetMagic';
 
 /**
  * register Ajax function
@@ -147,12 +137,42 @@
 $wgAjaxExportList[] = 'efCategoryTreeAjaxWrapper';
 
 /**
+ * Register ResourceLoader modules
+ */
+$commonModuleInfo = array(
+	'localBasePath' => dirname( __FILE__ ) . '/modules',
+	'remoteExtPath' => 'CategoryTree/modules',
+);
+
+$wgResourceModules['ext.categoryTree'] = array(
+	'scripts' => 'ext.categoryTree.js',
+	'messages' => array(
+		'categorytree-collapse',
+		'categorytree-expand',
+		'categorytree-collapse-bullet',
+		'categorytree-expand-bullet',
+		'categorytree-load',
+		'categorytree-loading',
+		'categorytree-nothing-found',
+		'categorytree-no-subcategories',
+		'categorytree-no-parent-categories',
+		'categorytree-no-pages',
+		'categorytree-error',
+		'categorytree-retry',
+	),
+) + $commonModuleInfo;
+
+$wgResourceModules['ext.categoryTree.css'] = array(
+	'styles' => 'ext.categoryTree.css',
+) + $commonModuleInfo;
+
+/**
  * Hook it up
  */
 function efCategoryTree() {
-	global $wgUseAjax, $wgHooks, $wgOut;
+	global $wgUseAjax, $wgHooks, $wgOut, $wgRequest;
 	global $wgCategoryTreeDefaultOptions, $wgCategoryTreeDefaultMode, $wgCategoryTreeOmitNamespace;
-	global $wgCategoryTreeCategoryPageOptions, $wgCategoryTreeCategoryPageMode;
+	global $wgCategoryTreeCategoryPageOptions, $wgCategoryTreeCategoryPageMode, $wgCategoryTreeAllowTag;
 	global $wgCategoryTreeSidebarRoot, $wgCategoryTreeForceHeaders, $wgCategoryTreeHijackPageCategories;
 
 	# Abort if AJAX is not enabled
@@ -172,10 +192,8 @@
 		$wgHooks['SkinJoinCategoryLinks'][] = 'efCategoryTreeSkinJoinCategoryLinks';
 	}
 
-	if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
+	if ( $wgCategoryTreeAllowTag ) {
 		$wgHooks['ParserFirstCallInit'][] = 'efCategoryTreeSetHooks';
-	} else {
-		efCategoryTreeSetHooks();
 	}
 
 	if ( !isset( $wgCategoryTreeDefaultOptions['mode'] ) || is_null( $wgCategoryTreeDefaultOptions['mode'] ) ) {
@@ -186,38 +204,26 @@
 		$wgCategoryTreeDefaultOptions['hideprefix'] = $wgCategoryTreeOmitNamespace;
 	}
 
-	if ( !isset( $wgCategoryTreeCategoryPageOptions['mode'] ) || is_null( $wgCategoryTreeCategoryPageOptions['mode'] ) ) {
-		$wgCategoryTreeCategoryPageOptions['mode'] = $wgCategoryTreeCategoryPageMode;
+	if ( !isset( $wgCategoryTreeCategoryPageOptions['mode'] ) || is_null( $wgCategoryTreeCategoryPageOptions['mode'] ) ) {	
+		$wgCategoryTreeCategoryPageOptions['mode'] = ( $mode = $wgRequest->getVal( 'mode' ) ) ? CategoryTree::decodeMode( $mode ) : $wgCategoryTreeCategoryPageMode;
 	}
 
 	if ( $wgCategoryTreeForceHeaders ) {
 		CategoryTree::setHeaders( $wgOut );
-	}
-	else {
+	} else {
 		$wgHooks['OutputPageParserOutput'][] = 'efCategoryTreeParserOutput';
 	}
-}
 
-function efCategoryTreeSetHooks() {
-	global $wgParser, $wgCategoryTreeAllowTag;
-	if ( $wgCategoryTreeAllowTag ) {
-		$wgParser->setHook( 'categorytree' , 'efCategoryTreeParserHook' );
-		$wgParser->setFunctionHook( 'categorytree' , 'efCategoryTreeParserFunction' );
-	}
-	return true;
+	$wgHooks['MakeGlobalVariablesScript'][] = 'efCategoryTreeGetConfigVars';
 }
 
 /**
-* Hook magic word
-*/
-function efCategoryTreeGetMagic( &$magicWords, $langCode ) {
-	global $wgUseAjax, $wgCategoryTreeAllowTag;
-
-	if ( $wgUseAjax && $wgCategoryTreeAllowTag ) {
-		//XXX: should we allow a local alias?
-		$magicWords['categorytree'] = array( 0, 'categorytree' );
-	}
-
+ * @param $parser Parser
+ * @return bool
+ */
+function efCategoryTreeSetHooks( $parser ) {
+	$parser->setHook( 'categorytree' , 'efCategoryTreeParserHook' );
+	$parser->setFunctionHook( 'categorytree' , 'efCategoryTreeParserFunction' );
 	return true;
 }
 
@@ -227,8 +233,12 @@
  * If $enc is not given, '' is asumed, which simulates the old call interface,
  * namely, only providing the mode name or number.
  * This loads CategoryTreeFunctions.php and calls CategoryTree::ajax()
+ * @param $category
+ * @param $options array
+ * @param $enc string
+ * @return AjaxResponse|bool
  */
-function efCategoryTreeAjaxWrapper( $category, $options, $enc = '' ) {
+function efCategoryTreeAjaxWrapper( $category, $options = array(), $enc = '' ) {
 	global $wgCategoryTreeHTTPCache, $wgSquidMaxage, $wgUseSquid;
 
 	if ( is_string( $options ) ) {
@@ -238,13 +248,13 @@
 	$depth = isset( $options['depth'] ) ? (int)$options['depth'] : 1;
 
 	$ct = new CategoryTree( $options, true );
-	$depth = efCategoryTreeCapDepth( $ct->getOption('mode'), $depth );
+	$depth = efCategoryTreeCapDepth( $ct->getOption( 'mode' ), $depth );
 	$response = $ct->ajax( $category, $depth );
 
 	if ( $wgCategoryTreeHTTPCache && $wgSquidMaxage && $wgUseSquid ) {
 		$response->setCacheDuration( $wgSquidMaxage );
-		$response->setVary( 'Accept-Encoding, Cookie' ); #cache for anons only
-		#TODO: purge the squid cache when a category page is invalidated
+		$response->setVary( 'Accept-Encoding, Cookie' ); # cache for anons only
+		# TODO: purge the squid cache when a category page is invalidated
 	}
 
 	return $response;
@@ -252,55 +262,62 @@
 
 /**
  * Internal function to cap depth
+ * @param $mode
+ * @param $depth
+ * @return int|mixed
  */
-
 function efCategoryTreeCapDepth( $mode, $depth ) {
 	global $wgCategoryTreeMaxDepth;
 
-	if (is_numeric($depth))
-		$depth = intval($depth);
-	else return 1;
+	if ( is_numeric( $depth ) ) {
+		$depth = intval( $depth );
+	} else {
+		return 1;
+	}
 
-	if (is_array($wgCategoryTreeMaxDepth)) {
-		$max = isset($wgCategoryTreeMaxDepth[$mode]) ? $wgCategoryTreeMaxDepth[$mode] : 1;
-	} elseif (is_numeric($wgCategoryTreeMaxDepth)) {
+	if ( is_array( $wgCategoryTreeMaxDepth ) ) {
+		$max = isset( $wgCategoryTreeMaxDepth[$mode] ) ? $wgCategoryTreeMaxDepth[$mode] : 1;
+	} elseif ( is_numeric( $wgCategoryTreeMaxDepth ) ) {
 		$max = $wgCategoryTreeMaxDepth;
 	} else {
 		wfDebug( 'efCategoryTreeCapDepth: $wgCategoryTreeMaxDepth is invalid.' );
 		$max = 1;
 	}
 
-	return min($depth, $max);
+	return min( $depth, $max );
 }
 
 /**
  * Entry point for the {{#categorytree}} tag parser function.
  * This is a wrapper around efCategoryTreeParserHook
+ * @param $parser Parser
+ * @return array|string
  */
-function efCategoryTreeParserFunction( &$parser ) {
+function efCategoryTreeParserFunction( $parser ) {
 	$params = func_get_args();
-	array_shift( $params ); //first is &$parser, strip it
+	array_shift( $params ); // first is $parser, strip it
 
-	//first user-supplied parameter must be category name
-	if ( !$params ) return ''; //no category specified, return nothing
+	// first user-supplied parameter must be category name
+	if ( !$params ) {
+		return ''; // no category specified, return nothing
+	}
 	$cat = array_shift( $params );
 
-	//build associative arguments from flat parameter list
+	// build associative arguments from flat parameter list
 	$argv = array();
 	foreach ( $params as $p ) {
-		if ( preg_match('/^\s*(\S.*?)\s*=\s*(.*?)\s*$/', $p, $m) ) {
+		if ( preg_match( '/^\s*(\S.*?)\s*=\s*(.*?)\s*$/', $p, $m ) ) {
 			$k = $m[1];
-			$v = preg_replace('/^"\s*(.*?)\s*"$/', '$1', $m[2]); //strip any quotes enclusing the value
-		}
-		else {
-			$k = trim($p);
+			$v = preg_replace( '/^"\s*(.*?)\s*"$/', '$1', $m[2] ); // strip any quotes enclusing the value
+		} else {
+			$k = trim( $p );
 			$v = true;
 		}
 
 		$argv[$k] = $v;
 	}
 
-	//now handle just like a <categorytree> tag
+	// now handle just like a <categorytree> tag
 	$html = efCategoryTreeParserHook( $cat, $argv, $parser );
 	return array( $html, 'noparse' => true, 'isHTML' => true );
 }
@@ -308,28 +325,36 @@
 /**
  * Hook implementation for injecting a category tree into the sidebar.
  * Registered automatically if $wgCategoryTreeSidebarRoot is set to a category name.
+ * @param $skin
+ * @param $tpl SkinTemplate
+ * @return bool
  */
-function efCategoryTreeSkinTemplateOutputPageBeforeExec( &$skin, &$tpl ) {
+function efCategoryTreeSkinTemplateOutputPageBeforeExec( $skin, $tpl ) {
 	global $wgCategoryTreeSidebarRoot, $wgCategoryTreeSidebarOptions;
-	
+
 	$html = efCategoryTreeParserHook( $wgCategoryTreeSidebarRoot, $wgCategoryTreeSidebarOptions );
-	if ( $html ) $tpl->data['sidebar']['categorytree-portlet'] = $html; //requires MW 1.13, r36917
+	if ( $html ) {
+		$tpl->data['sidebar']['categorytree-portlet'] = $html;
+	}
 
 	return true;
 }
 
-
 /**
  * Entry point for the <categorytree> tag parser hook.
  * This loads CategoryTreeFunctions.php and calls CategoryTree::getTag()
+ * @param $cat
+ * @param $argv
+ * @param $parser Parser
+ * @param $allowMissing bool
+ * @return bool|string
  */
-function efCategoryTreeParserHook( $cat, $argv, $parser = NULL, $allowMissing = false ) {
+function efCategoryTreeParserHook( $cat, $argv, $parser = null, $allowMissing = false ) {
 	global $wgOut;
 
 	if ( $parser ) {
 		$parser->mOutput->mCategoryTreeTag = true; # flag for use by efCategoryTreeParserOutput
-	}
-	else {
+	} else {
 		CategoryTree::setHeaders( $wgOut );
 	}
 
@@ -342,16 +367,21 @@
 	$depthArg = isset( $argv[ 'depth' ] ) ? (int)$argv[ 'depth' ] : null;
 
 	$depth = efCategoryTreeCapDepth( $ct->getOption( 'mode' ), $depthArg );
-	if ( $onlyroot ) $depth = 0;
+	if ( $onlyroot ) {
+		$depth = 0;
+	}
 
 	return $ct->getTag( $parser, $cat, $hideroot, $attr, $depth, $allowMissing );
 }
 
 /**
-* Hook callback that injects messages and things into the <head> tag
-* Does nothing if $parserOutput->mCategoryTreeTag is not set
-*/
-function efCategoryTreeParserOutput( &$outputPage, $parserOutput )  {
+ * Hook callback that injects messages and things into the <head> tag
+ * Does nothing if $parserOutput->mCategoryTreeTag is not set
+ * @param $outputPage OutputPage
+ * @param $parserOutput ParserOutput
+ * @return bool
+ */
+function efCategoryTreeParserOutput( $outputPage, $parserOutput )  {
 	if ( !empty( $parserOutput->mCategoryTreeTag ) ) {
 		CategoryTree::setHeaders( $outputPage );
 	}
@@ -360,8 +390,12 @@
 
 /**
  * ArticleFromTitle hook, override category page handling
+ *
+ * @param $title Title
+ * @param $article Article
+ * @return bool
  */
-function efCategoryTreeArticleFromTitle( &$title, &$article ) {
+function efCategoryTreeArticleFromTitle( $title, &$article ) {
 	if ( $title->getNamespace() == NS_CATEGORY ) {
 		$article = new CategoryTreeCategoryPage( $title );
 	}
@@ -370,27 +404,46 @@
 
 /**
  * OutputPageMakeCategoryLinks hook, override category links
+ * @param $out
+ * @param $categories
+ * @param $links
+ * @return bool
  */
-function efCategoryTreeOutputPageMakeCategoryLinks( &$out, &$categories, &$links ) {
-	global $wgContLang, $wgCategoryTreePageCategoryOptions;
+function efCategoryTreeOutputPageMakeCategoryLinks( $out, &$categories, &$links ) {
+	global $wgCategoryTreePageCategoryOptions;
 
-	$ct = new CategoryTree( $wgCategoryTreePageCategoryOptions );
-
 	foreach ( $categories as $category => $type ) {
-		$links[$type][] = efCategoryTreeParserHook( $category, $wgCategoryTreePageCategoryOptions, NULL, true );
+		$links[$type][] = efCategoryTreeParserHook( $category, $wgCategoryTreePageCategoryOptions, null, true );
 	}
 
 	return false;
 }
 
-
-function efCategoryTreeSkinJoinCategoryLinks( &$skin, &$links, &$result ) {
-	$embed = '<div class="CategoryTreePretendInlineMSIE CategoryTreeCategoryBarItem">';
+/**
+ * @param $skin
+ * @param $links
+ * @param $result
+ * @return bool
+ */
+function efCategoryTreeSkinJoinCategoryLinks( $skin, &$links, &$result ) {
+	$embed = '<div class="CategoryTreeCategoryBarItem">';
 	$pop = '</div>';
 	$sep = ' ';
 
-#	$result = '<div class="CategoryTreeCatBarWrapper" style="border:1px solid blue">' . $embed . implode ( "{$pop} {$sep} {$embed}" , $links ) . $pop . '</div>';
 	$result = $embed . implode ( "{$pop} {$sep} {$embed}" , $links ) . $pop;
 
 	return false;
-}
\ No newline at end of file
+}
+
+/**
+ * @param $vars
+ * @return bool
+ */
+function efCategoryTreeGetConfigVars( &$vars ) {
+	global $wgCategoryTreeCategoryPageOptions;
+
+	// Look this is pretty bad but Category tree is just whacky, it needs to be rewritten
+	$ct = new CategoryTree( $wgCategoryTreeCategoryPageOptions );
+	$vars['wgCategoryTreePageCategoryOptions'] = $ct->getOptionsAsJsStructure();
+	return true;
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreeFunctions.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreeFunctions.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreeFunctions.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,16 +1,16 @@
 <?php
-
 /**
  * Core functions for the CategoryTree extension, an AJAX based gadget
  * to display the category structure of a wiki
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2006-2007 Daniel Kinzler
  * @license GNU General Public Licence 2.0 or later
  */
 
-if( !defined( 'MEDIAWIKI' ) ) {
+if ( !defined( 'MEDIAWIKI' ) ) {
 	echo( "This file is part of an extension to the MediaWiki software and cannot be used standalone.\n" );
 	die( 1 );
 }
@@ -19,21 +19,28 @@
 	var $mIsAjaxRequest = false;
 	var $mOptions = array();
 
+	/**
+	 * @param $options array
+	 * @param $ajax bool
+	 */
 	function __construct( $options, $ajax = false ) {
 		global $wgCategoryTreeDefaultOptions;
 
 		$this->mIsAjaxRequest = $ajax;
 
-		#ensure default values and order of options. Order may become important, it may influence the cache key!
+		# ensure default values and order of options. Order may become important, it may influence the cache key!
 		foreach ( $wgCategoryTreeDefaultOptions as $option => $default ) {
-			if ( isset( $options[$option] ) && !is_null( $options[$option] ) ) $this->mOptions[$option] = $options[$option];
-			else $this->mOptions[$option] = $default;
+			if ( isset( $options[$option] ) && !is_null( $options[$option] ) ) {
+				$this->mOptions[$option] = $options[$option];
+			} else {
+				$this->mOptions[$option] = $default;
+			}
 		}
 
 		$this->mOptions['mode'] = self::decodeMode( $this->mOptions['mode'] );
 
 		if ( $this->mOptions['mode'] == CT_MODE_PARENTS ) {
-			 $this->mOptions['namespaces'] = false; #namespace filter makes no sense with CT_MODE_PARENTS
+			 $this->mOptions['namespaces'] = false; # namespace filter makes no sense with CT_MODE_PARENTS
 		}
 
 		$this->mOptions['hideprefix'] = self::decodeHidePrefix( $this->mOptions['hideprefix'] );
@@ -42,10 +49,10 @@
 
 		if ( $this->mOptions['namespaces'] ) {
 			# automatically adjust mode to match namespace filter
-			if ( sizeof( $this->mOptions['namespaces'] ) === 1  
+			if ( sizeof( $this->mOptions['namespaces'] ) === 1
 				&& $this->mOptions['namespaces'][0] == NS_CATEGORY ) {
 				$this->mOptions['mode'] = CT_MODE_CATEGORIES;
-			} else if ( !in_array( NS_IMAGE, $this->mOptions['namespaces'] ) ) {
+			} elseif ( !in_array( NS_IMAGE, $this->mOptions['namespaces'] ) ) {
 				$this->mOptions['mode'] = CT_MODE_PAGES;
 			} else {
 				$this->mOptions['mode'] = CT_MODE_ALL;
@@ -53,38 +60,56 @@
 		}
 	}
 
+	/**
+	 * @param $name string
+	 * @return mixed
+	 */
 	function getOption( $name ) {
 		return $this->mOptions[$name];
 	}
 
+	/**
+	 * @return bool
+	 */
 	function isInverse( ) {
-		return $this->getOption('mode') == CT_MODE_PARENTS;
+		return $this->getOption( 'mode' ) == CT_MODE_PARENTS;
 	}
 
+	/**
+	 * @param $nn
+	 * @return array|bool
+	 */
 	static function decodeNamespaces( $nn ) {
 		global $wgContLang;
 
-		if ( !$nn )
+		if ( !$nn ) {
 			return false;
+		}
 
-		if ( !is_array($nn) ) 
+		if ( !is_array( $nn ) ) {
 			$nn = preg_split( '![\s#:|]+!', $nn );
+		}
 
 		$namespaces = array();
 
 		foreach ( $nn as $n ) {
 			if ( is_int( $n ) ) {
 				$ns = $n;
-			}
-			else {
+			} else {
 				$n = trim( $n );
-				if ( $n === '' ) continue;
-	
+				if ( $n === '' ) {
+					continue;
+				}
+
 				$lower = strtolower( $n );
-	
-				if ( is_numeric($n) )  $ns = (int)$n;
-				elseif ( $n == '-' || $n == '_' || $n == '*' || $lower == 'main' ) $ns = NS_MAIN;
-				else $ns = $wgContLang->getNsIndex( $n );
+
+				if ( is_numeric( $n ) ) {
+					$ns = (int)$n;
+				} elseif ( $n == '-' || $n == '_' || $n == '*' || $lower == 'main' ) {
+					$ns = NS_MAIN;
+				} else {
+					$ns = $wgContLang->getNsIndex( $n );
+				}
 			}
 
 			if ( is_int( $ns ) ) {
@@ -96,141 +121,134 @@
 		return $namespaces;
 	}
 
+	/**
+	 * @param $mode
+	 * @return int|string
+	 */
 	static function decodeMode( $mode ) {
 		global $wgCategoryTreeDefaultOptions;
 
-		if ( is_null( $mode ) ) return $wgCategoryTreeDefaultOptions['mode'];
-		if ( is_int( $mode ) ) return $mode;
+		if ( is_null( $mode ) ) {
+			return $wgCategoryTreeDefaultOptions['mode'];
+		}
+		if ( is_int( $mode ) ) {
+			return $mode;
+		}
 
 		$mode = trim( strtolower( $mode ) );
 
-		if ( is_numeric( $mode ) ) return (int)$mode;
+		if ( is_numeric( $mode ) ) {
+			return (int)$mode;
+		}
 
-		if ( $mode == 'all' ) $mode = CT_MODE_ALL;
-		else if ( $mode == 'pages' ) $mode = CT_MODE_PAGES;
-		else if ( $mode == 'categories' || $mode == 'sub' ) $mode = CT_MODE_CATEGORIES;
-		else if ( $mode == 'parents' || $mode == 'super' || $mode == 'inverse' ) $mode = CT_MODE_PARENTS;
-		else if ( $mode == 'default' ) $mode = $wgCategoryTreeDefaultOptions['mode'];
+		if ( $mode == 'all' ) {
+			$mode = CT_MODE_ALL;
+		} elseif ( $mode == 'pages' ) {
+			$mode = CT_MODE_PAGES;
+		} elseif ( $mode == 'categories' || $mode == 'sub' ) {
+			$mode = CT_MODE_CATEGORIES;
+		} elseif ( $mode == 'parents' || $mode == 'super' || $mode == 'inverse' ) {
+			$mode = CT_MODE_PARENTS;
+		} elseif ( $mode == 'default' ) {
+			$mode = $wgCategoryTreeDefaultOptions['mode'];
+		}
 
 		return (int)$mode;
 	}
 
 	/**
-	* Helper function to convert a string to a boolean value.
-	* Perhaps make this a global function in MediaWiki proper
-	*/
+	 * Helper function to convert a string to a boolean value.
+	 * Perhaps make this a global function in MediaWiki proper
+	 * @param $value
+	 * @return bool|null|string
+	 */
 	static function decodeBoolean( $value ) {
-		if ( is_null( $value ) ) return NULL;
-		if ( is_bool( $value ) ) return $value;
-		if ( is_int( $value ) ) return ( $value > 0 );
+		if ( is_null( $value ) ) {
+			return null;
+		}
+		if ( is_bool( $value ) ) {
+			return $value;
+		}
+		if ( is_int( $value ) ) {
+			return ( $value > 0 );
+		}
 
 		$value = trim( strtolower( $value ) );
-		if ( is_numeric( $value ) ) return ( (int)$value > 0 );
+		if ( is_numeric( $value ) ) {
+			return ( (int)$value > 0 );
+		}
 
-		if ( $value == 'yes' || $value == 'y' || $value == 'true' || $value == 't' || $value == 'on' ) return true;
-		else if ( $value == 'no' || $value == 'n' || $value == 'false' || $value == 'f' || $value == 'off' ) return false;
-		else if ( $value == 'null' || $value == 'default' || $value == 'none' || $value == 'x' ) return NULL;
-		else return false;
+		if ( $value == 'yes' || $value == 'y' || $value == 'true' || $value == 't' || $value == 'on' ) {
+			return true;
+		} elseif ( $value == 'no' || $value == 'n' || $value == 'false' || $value == 'f' || $value == 'off' ) {
+			return false;
+		} elseif ( $value == 'null' || $value == 'default' || $value == 'none' || $value == 'x' ) {
+			return null;
+		} else {
+			return false;
+		}
 	}
 
+	/**
+	 * @param $value
+	 * @return int|string
+	 */
 	static function decodeHidePrefix( $value ) {
 		global $wgCategoryTreeDefaultOptions;
 
-		if ( is_null( $value ) ) return $wgCategoryTreeDefaultOptions['hideprefix'];
-		if ( is_int( $value ) ) return $value;
-		if ( $value === true ) return CT_HIDEPREFIX_ALWAYS;
-		if ( $value === false ) return CT_HIDEPREFIX_NEVER;
+		if ( is_null( $value ) ) {
+			return $wgCategoryTreeDefaultOptions['hideprefix'];
+		}
+		if ( is_int( $value ) ) {
+			return $value;
+		}
+		if ( $value === true ) {
+			return CT_HIDEPREFIX_ALWAYS;
+		}
+		if ( $value === false ) {
+			return CT_HIDEPREFIX_NEVER;
+		}
 
 		$value = trim( strtolower( $value ) );
 
-		if ( $value == 'yes' || $value == 'y' || $value == 'true' || $value == 't' || $value == 'on' ) return CT_HIDEPREFIX_ALWAYS;
-		else if ( $value == 'no' || $value == 'n' || $value == 'false' || $value == 'f' || $value == 'off' ) return CT_HIDEPREFIX_NEVER;
-		//else if ( $value == 'null' || $value == 'default' || $value == 'none' || $value == 'x' ) return $wgCategoryTreeDefaultOptions['hideprefix'];
-		else if ( $value == 'always' ) return CT_HIDEPREFIX_ALWAYS;
-		else if ( $value == 'never' ) return CT_HIDEPREFIX_NEVER;
-		else if ( $value == 'auto' ) return CT_HIDEPREFIX_AUTO;
-		else if ( $value == 'categories' || $value == 'category' || $value == 'smart' ) return CT_HIDEPREFIX_CATEGORIES;
-		else return $wgCategoryTreeDefaultOptions['hideprefix'];
+		if ( $value == 'yes' || $value == 'y' || $value == 'true' || $value == 't' || $value == 'on' ) {
+			return CT_HIDEPREFIX_ALWAYS;
+		} elseif ( $value == 'no' || $value == 'n' || $value == 'false' || $value == 'f' || $value == 'off' ) {
+			return CT_HIDEPREFIX_NEVER;
+		} elseif ( $value == 'always' ) {
+			return CT_HIDEPREFIX_ALWAYS;
+		} elseif ( $value == 'never' ) {
+			return CT_HIDEPREFIX_NEVER;
+		} elseif ( $value == 'auto' ) {
+			return CT_HIDEPREFIX_AUTO;
+		} elseif ( $value == 'categories' || $value == 'category' || $value == 'smart' ) {
+			return CT_HIDEPREFIX_CATEGORIES;
+		} else {
+			return $wgCategoryTreeDefaultOptions['hideprefix'];
+		}
 	}
 
 	/**
 	 * Set the script tags in an OutputPage object
 	 * @param OutputPage $outputPage
 	 */
-	static function setHeaders( &$outputPage ) {
-		global $wgJsMimeType, $wgScriptPath, $wgContLang;
-		global $wgCategoryTreeHijackPageCategories, $wgCategoryTreeExtPath, $wgCategoryTreeVersion;
-		self::init();
-
-		# Register css file for CategoryTree
-		$outputPage->addLink(
-			array(
-				'rel' => 'stylesheet',
-				'type' => 'text/css',
-				'href' => "$wgScriptPath$wgCategoryTreeExtPath/CategoryTree.css?$wgCategoryTreeVersion",
-			)
-		);
-
-		if ( $wgCategoryTreeHijackPageCategories ) {
-			# Register MSIE quirks
-			$outputPage->addScript(
-				"<!--[if IE]><link rel=\"stylesheet\" type=\"text/css\" src=\"{$wgScriptPath}{$wgCategoryTreeExtPath}/CategoryTreeIE.css?{$wgCategoryTreeVersion}\"/><![endif]-->
-	\n"
-			);
-		}
-
-		# Register css RTL file for CategoryTree
-		if( $wgContLang->isRTL() ) {
-			$outputPage->addLink(
-				array(
-					'rel' => 'stylesheet',
-					'type' => 'text/css',
-					'href' => "$wgScriptPath$wgCategoryTreeExtPath/CategoryTree.rtl.css?$wgCategoryTreeVersion"
-				)
-			);
-		}
-
-		# Register main js file for CategoryTree
-		$outputPage->addScript(
-			"<script type=\"{$wgJsMimeType}\" src=\"{$wgScriptPath}{$wgCategoryTreeExtPath}/CategoryTree.js?{$wgCategoryTreeVersion}\">" .
-			"</script>\n"
-		);
-
-		# Add messages
-		$outputPage->addScript(
-		"	<script type=\"{$wgJsMimeType}\">
-			var categoryTreeCollapseMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-collapse'))."\";
-			var categoryTreeExpandMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-expand'))."\";
-			var categoryTreeCollapseBulletMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-collapse-bullet'))."\";
-			var categoryTreeExpandBulletMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-expand-bullet'))."\";
-			var categoryTreeLoadMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-load'))."\";
-			var categoryTreeLoadingMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-loading'))."\";
-			var categoryTreeNothingFoundMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-nothing-found'))."\";
-			var categoryTreeNoSubcategoriesMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-no-subcategories'))."\";
-			var categoryTreeNoParentCategoriesMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-no-parent-categories'))."\";
-			var categoryTreeNoPagesMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-no-pages'))."\";
-			var categoryTreeErrorMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-error'))."\";
-			var categoryTreeRetryMsg = \"".Xml::escapeJsString(wfMsgNoTrans('categorytree-retry'))."\";
-			</script>\n"
-		);
+	static function setHeaders( $outputPage ) {
+		# Add the modules
+		$outputPage->addModuleStyles( 'ext.categoryTree.css' );
+		$outputPage->addModules( 'ext.categoryTree' );
 	}
 
-	static function getJsonCodec() {
-		static $json = NULL;
-
-		if (!$json) {
-			$json = new Services_JSON(); #recycle API's JSON codec implementation
-		}
-
-		return $json;
-	}
-
+	/**
+	 * @param $options
+	 * @param $enc
+	 * @return mixed
+	 * @throws MWException
+	 */
 	static function encodeOptions( $options, $enc ) {
 		if ( $enc == 'mode' || $enc == '' ) {
-			$opt =$options['mode'];
+			$opt = $options['mode'];
 		} elseif ( $enc == 'json' ) {
-			$json = self::getJsonCodec(); //XXX: this may be a bit heavy...
-			$opt = $json->encode( $options );
+			$opt = FormatJson::encode( $options );
 		} else {
 			throw new MWException( 'Unknown encoding for CategoryTree options: ' . $enc );
 		}
@@ -238,32 +256,30 @@
 		return $opt;
 	}
 
+	/**
+	 * @param $options
+	 * @param $enc
+	 * @return array|mixed
+	 * @throws MWException
+	 */
 	static function decodeOptions( $options, $enc ) {
 		if ( $enc == 'mode' || $enc == '' ) {
 			$opt = array( "mode" => $options );
 		} elseif ( $enc == 'json' ) {
-			$json = self::getJsonCodec(); //XXX: this may be a bit heavy...
-			$opt = $json->decode( $options );
+			$opt = FormatJson::decode( $options );
 			$opt = get_object_vars( $opt );
-		} /* elseif () {
-			foreach ( $oo as $o ) {
-				if ($o === "") continue;
-		
-				if ( preg_match( '!^(.*?)=(.*)$!', $o, $m ) {
-					$n = $m[1];
-					$opt[$n] = $m[2];
-				} else {
-					$opt[$o] = true;
-				}
-			}
-		} */ else {
+		} else {
 			throw new MWException( 'Unknown encoding for CategoryTree options: ' . $enc );
 		}
 
 		return $opt;
 	}
 
-	function getOptionsAsCacheKey( $depth = NULL ) {
+	/**
+	 * @param $depth null
+	 * @return string
+	 */
+	function getOptionsAsCacheKey( $depth = null ) {
 		$key = "";
 
 		foreach ( $this->mOptions as $k => $v ) {
@@ -271,11 +287,17 @@
 			$key .= $k . ':' . $v . ';';
 		}
 
-		if ( !is_null( $depth ) ) $key .= ";depth=" . $depth;
+		if ( !is_null( $depth ) ) {
+			$key .= ";depth=" . $depth;
+		}
 		return $key;
 	}
 
-	function getOptionsAsJsStructure( $depth = NULL ) {
+	/**
+	 * @param $depthnull
+	 * @return mixed
+	 */
+	function getOptionsAsJsStructure( $depth = null ) {
 		if ( !is_null( $depth ) ) {
 			$opt = $this->mOptions;
 			$opt['depth'] = $depth;
@@ -287,41 +309,58 @@
 		return $s;
 	}
 
-	function getOptionsAsJsString( $depth = NULL ) {
-		return Xml::escapeJsString( $s );
+	/**
+	 * @param $depth null
+	 * @return String
+	 */
+	function getOptionsAsJsString( $depth = null ) {
+		return Xml::escapeJsString( $this->getOptionsAsJsStructure( $depth ) );
 	}
 
+	/**
+	 * @return string
+	 */
 	function getOptionsAsUrlParameters() {
 		$u = '';
 
 		foreach ( $this->mOptions as $k => $v ) {
 			if ( $u != '' ) $u .= '&';
-			$u .= $k . '=' . urlencode($v) ;
+			$u .= $k . '=' . urlencode( $v ) ;
 		}
 
 		return $u;
 	}
 
 	/**
-	* Ajax call. This is called by efCategoryTreeAjaxWrapper, which is used to
-	* load CategoryTreeFunctions.php on demand.
-	*/
+	 * Ajax call. This is called by efCategoryTreeAjaxWrapper, which is used to
+	 * load CategoryTreeFunctions.php on demand.
+	 * @param $category
+	 * @param $depth int
+	 * @return AjaxResponse|bool
+	 */
 	function ajax( $category, $depth = 1 ) {
-		global $wgDBname;
+		global $wgLang, $wgContLang, $wgRenderHashAppend;
 		$title = self::makeTitle( $category );
 
-		if ( ! $title ) return false; #TODO: error message?
+		if ( ! $title ) {
+			return false; # TODO: error message?
+		}
 
 		# Retrieve page_touched for the category
 		$dbkey = $title->getDBkey();
-		$dbr =& wfGetDB( DB_SLAVE );
+		$dbr = wfGetDB( DB_SLAVE );
 		$touched = $dbr->selectField( 'page', 'page_touched',
 			array(
 				'page_namespace' => NS_CATEGORY,
 				'page_title' => $dbkey,
 			), __METHOD__ );
 
-		$mckey = "$wgDBname:categorytree(" . $this->getOptionsAsCacheKey( $depth ) . "):$dbkey"; 
+		$mckey = wfMemcKey(
+			"categorytree(" . $this->getOptionsAsCacheKey( $depth ) . ")",
+			$dbkey, $wgLang->getCode(),
+			$wgContLang->getExtraHashOptions(),
+			$wgRenderHashAppend
+		);
 
 		$response = new AjaxResponse();
 
@@ -333,10 +372,13 @@
 			return $response;
 		}
 
-		$html = $this->renderChildren( $title, $depth ); 
+		$html = $this->renderChildren( $title, $depth );
 
-		if ( $html == '' ) $html = ' ';   #HACK: Safari doesn't like empty responses.
-						  #see Bug 7219 and http://bugzilla.opendarwin.org/show_bug.cgi?id=10716
+		if ( $html == '' ) {
+			# HACK: Safari doesn't like empty responses.
+			# see Bug 7219 and http://bugzilla.opendarwin.org/show_bug.cgi?id=10716
+			$html = ' ';
+		}
 
 		$response->addText( $html );
 
@@ -346,10 +388,17 @@
 	}
 
 	/**
-	* Custom tag implementation. This is called by efCategoryTreeParserHook, which is used to
-	* load CategoryTreeFunctions.php on demand.
-	*/
-	function getTag( $parser, $category, $hideroot = false, $attr, $depth=1, $allowMissing = false ) {
+	 * Custom tag implementation. This is called by efCategoryTreeParserHook, which is used to
+	 * load CategoryTreeFunctions.php on demand.
+	 * @param $parser Parser
+	 * @param $category
+	 * @param $hideroot bool
+	 * @param $attr
+	 * @param $depth int
+	 * @param $allowMissing bool
+	 * @return bool|string
+	 */
+	function getTag( $parser, $category, $hideroot = false, $attr, $depth = 1, $allowMissing = false ) {
 		global $wgCategoryTreeDisableCache, $wgCategoryTreeDynamicTag;
 		static $uniq = 0;
 
@@ -357,35 +406,51 @@
 		if ( $category === '' ) {
 			return false;
 		}
+
 		if ( $parser && $wgCategoryTreeDisableCache && !$wgCategoryTreeDynamicTag ) {
 			$parser->disableCache();
 		}
+
 		$title = self::makeTitle( $category );
 
-		if ( $title === false || $title === NULL ) return false;
+		if ( $title === false || $title === null ) {
+			return false;
+		}
 
-		if ( isset( $attr['class'] ) ) $attr['class'] .= ' CategoryTreeTag';
-		else $attr['class'] = ' CategoryTreeTag';
+		if ( isset( $attr['class'] ) ) {
+			$attr['class'] .= ' CategoryTreeTag';
+		} else {
+			$attr['class'] = ' CategoryTreeTag';
+		}
 
-		$this->init();
+		$attr['data-ct-mode'] = $this->mOptions['mode'];
+		$attr['data-ct-options'] = $this->getOptionsAsJsStructure();
 
 		$html = '';
-		$html .= Xml::openElement( 'div', $attr );
+		$html .= Html::openElement( 'div', $attr );
 
 		if ( !$allowMissing && !$title->getArticleID() ) {
-			$html .= Xml::openElement( 'span', array( 'class' => 'CategoryTreeNotice' ) );
-			$html .= wfMsgExt( 'categorytree-not-found', 'parseinline', htmlspecialchars( $category ) );
-			$html .= Xml::closeElement( 'span' );
+			$html .= Html::openElement( 'span', array( 'class' => 'CategoryTreeNotice' ) );
+			if ( $parser ) {
+				$html .= $parser->recursiveTagParse( wfMsgNoTrans( 'categorytree-not-found', $category ) );
+			} else {
+				$html .= wfMsgExt( 'categorytree-not-found', 'parseinline', htmlspecialchars( $category ) );
 			}
+			$html .= Html::closeElement( 'span' );
+			}
 		else {
-			if ( !$hideroot ) $html .= CategoryTree::renderNode( $title, $depth, $wgCategoryTreeDynamicTag );
-			else if ( !$wgCategoryTreeDynamicTag ) $html .= $this->renderChildren( $title, $depth );
-			else { 
+			if ( !$hideroot ) {
+				$html .= $this->renderNode( $title, $depth, $wgCategoryTreeDynamicTag );
+			} elseif ( !$wgCategoryTreeDynamicTag ) {
+				$html .= $this->renderChildren( $title, $depth );
+			} else {
 				$uniq += 1;
 				$load = 'ct-' . $uniq . '-' . mt_rand( 1, 100000 );
 
 				$html .= Xml::openElement( 'script', array( 'type' => 'text/javascript', 'id' => $load ) );
-				$html .= 'categoryTreeLoadChildren("' . Xml::escapeJsString( $title->getDBkey() ) . '", ' . $this->getOptionsAsJsStructure( $depth ) . ', document.getElementById("' . $load . '").parentNode);';
+				$html .= 'categoryTreeLoadChildren("' . Xml::escapeJsString( $title->getDBkey() ) . '", '
+						. $this->getOptionsAsJsStructure( $depth )
+						. ', document.getElementById("' . $load . '").parentNode);';
 				$html .= Xml::closeElement( 'script' );
 			}
 		}
@@ -397,127 +462,109 @@
 	}
 
 	/**
-	* Returns a string with an HTML representation of the children of the given category.
-	* $title must be a Title object
-	*/
-	function renderChildren( &$title, $depth=1 ) {
+	 * Returns a string with an HTML representation of the children of the given category.
+	 * @param $title Title
+	 * @param $depth int
+	 * @return string
+	 */
+	function renderChildren( $title, $depth = 1 ) {
 		global $wgCategoryTreeMaxChildren, $wgCategoryTreeUseCategoryTable;
 
-		if( $title->getNamespace() != NS_CATEGORY ) {
+		if ( $title->getNamespace() != NS_CATEGORY ) {
 			// Non-categories can't have children. :)
 			return '';
 		}
 
-		$dbr =& wfGetDB( DB_SLAVE );
+		$dbr = wfGetDB( DB_SLAVE );
 
 		$inverse = $this->isInverse();
-		$mode = $this->getOption('mode');
-		$namespaces = $this->getOption('namespaces');
+		$mode = $this->getOption( 'mode' );
+		$namespaces = $this->getOption( 'namespaces' );
 
+		$tables = array( 'page', 'categorylinks' );
+		$fields = array( 'page_id', 'page_namespace', 'page_title',
+			'page_is_redirect', 'page_len', 'page_latest', 'cl_to',
+			'cl_from' );
+		$where = array();
+		$joins = array();
+		$options = array( 'ORDER BY' => 'cl_type, cl_sortkey', 'LIMIT' => $wgCategoryTreeMaxChildren );
+
 		if ( $inverse ) {
-			$ctJoinCond = ' cl_to = cat.page_title AND cat.page_namespace = ' . NS_CATEGORY;
-			$ctWhere = ' cl_from = ' . $title->getArticleId();
-			$ctJoin = ' RIGHT JOIN ';
-			$nsmatch = '';
-		}
-		else {
-			$ctJoinCond = ' cl_from = cat.page_id ';
-			$ctWhere = ' cl_to = ' . $dbr->addQuotes( $title->getDBkey() );
-			$ctJoin = ' JOIN ';
+			$joins['categorylinks'] = array( 'RIGHT JOIN', array( 'cl_to = page_title', 'page_namespace' => NS_CATEGORY ) );
+			$where['cl_from'] = $title->getArticleId();
+		} else {
+			$joins['categorylinks'] = array( 'JOIN', 'cl_from = page_id' );
+			$where['cl_to'] = $title->getDBkey();
+			$options['USE INDEX']['categorylinks'] = 'cl_sortkey';
 
-			#namespace filter. 
+			# namespace filter.
 			if ( $namespaces ) {
-				#NOTE: we assume that the $namespaces array contains only integers! decodeNamepsaces makes it so.
-				if ( sizeof( $namespaces ) === 1 ) $nsmatch = ' AND cat.page_namespace = ' . $namespaces[0] . ' ';
-				else $nsmatch = ' AND cat.page_namespace IN ( ' . implode( ', ', $namespaces ) . ') ';
+				# NOTE: we assume that the $namespaces array contains only integers! decodeNamepsaces makes it so.
+				$where['page_namespace'] = $namespaces;
+			} elseif ( $mode != CT_MODE_ALL ) {
+				if ( $mode == CT_MODE_PAGES ) {
+					$where['cl_type'] = array( 'page', 'subcat' );
+				} else {
+					$where['cl_type'] = 'subcat';
+				}
 			}
-			else {
-				if ( $mode == CT_MODE_ALL ) $nsmatch = '';
-				else if ( $mode == CT_MODE_PAGES ) $nsmatch = ' AND cat.page_namespace != ' . NS_IMAGE;
-				else $nsmatch = ' AND cat.page_namespace = ' . NS_CATEGORY;
-			}
 		}
 
-		#additional stuff to be used if "transaltion" by interwiki-links is desired
-		$transFields = '';
-		$transJoin = '';
-		$transWhere = '';
-
 		# fetch member count if possible
 		$doCount = !$inverse && $wgCategoryTreeUseCategoryTable;
 
-		$countFields = '';
-		$countJoin = '';
-
 		if ( $doCount ) {
-			$cat = $dbr->tableName( 'category' );
-			$countJoin = " LEFT JOIN $cat ON cat_title = page_title AND page_namespace = " . NS_CATEGORY;
-			$countFields = ', cat_id, cat_title, cat_subcats, cat_pages, cat_files';
+			$tables = array_merge( $tables, array( 'category' ) );
+			$fields = array_merge( $fields, array( 'cat_id', 'cat_title', 'cat_subcats', 'cat_pages', 'cat_files' ) );
+			$joins['category'] = array( 'LEFT JOIN', array( 'cat_title = page_title', 'page_namespace' => NS_CATEGORY ) );
 		}
 
-		$page = $dbr->tableName( 'page' );
-		$categorylinks = $dbr->tableName( 'categorylinks' );
+		$res = $dbr->select( $tables, $fields, $where, __METHOD__, $options, $joins );
 
-		$sql = "SELECT cat.page_namespace, cat.page_title,
-				cl_to, cl_from
-					  $transFields
-					  $countFields
-				FROM $page as cat
-				$ctJoin $categorylinks ON $ctJoinCond
-				$transJoin
-				$countJoin
-				WHERE $ctWhere
-				$nsmatch
-				"./*AND cat.page_is_redirect = 0*/"
-				$transWhere
-				ORDER BY cl_sortkey
-				LIMIT " . (int)$wgCategoryTreeMaxChildren;
+		# collect categories separately from other pages
+		$categories = '';
+		$other = '';
 
-		$res = $dbr->query( $sql, __METHOD__ );
-
-		#collect categories separately from other pages
-		$categories= '';
-		$other= '';
-
-		while ( $row = $dbr->fetchObject( $res ) ) {
-			#NOTE: in inverse mode, the page record may be null, because we use a right join.
+		foreach ( $res as $row ) {
+			# NOTE: in inverse mode, the page record may be null, because we use a right join.
 			#      happens for categories with no category page (red cat links)
-			if ( $inverse && $row->page_title === NULL ) {
+			if ( $inverse && $row->page_title === null ) {
 				$t = Title::makeTitle( NS_CATEGORY, $row->cl_to );
-			}
-			else {
-				#TODO: translation support; ideally added to Title object
+			} else {
+				# TODO: translation support; ideally added to Title object
 				$t = Title::newFromRow( $row );
 			}
 
-			$cat = NULL;
+			$cat = null;
 
 			if ( $doCount && $row->page_namespace == NS_CATEGORY ) {
 				$cat = Category::newFromRow( $row, $t );
 			}
 
-			$s = $this->renderNodeInfo( $t, $cat, $depth-1, false );
+			$s = $this->renderNodeInfo( $t, $cat, $depth - 1, false );
 			$s .= "\n\t\t";
 
-			if ($row->page_namespace == NS_CATEGORY) $categories .= $s;
-			else $other .= $s;
+			if ( $row->page_namespace == NS_CATEGORY ) {
+				$categories .= $s;
+			} else {
+				$other .= $s;
+			}
 		}
 
-		$dbr->freeResult( $res );
-
 		return $categories . $other;
 	}
 
 	/**
-	* Returns a string with an HTML representation of the parents of the given category.
-	* $title must be a Title object
-	*/
-	function renderParents( &$title ) {
+	 * Returns a string with an HTML representation of the parents of the given category.
+	 * @param $title Title
+	 * @return string
+	 */
+	function renderParents( $title ) {
 		global $wgCategoryTreeMaxChildren;
 
-		$dbr =& wfGetDB( DB_SLAVE );
+		$dbr = wfGetDB( DB_SLAVE );
 
-		#additional stuff to be used if "transaltion" by interwiki-links is desired
+		# additional stuff to be used if "transaltion" by interwiki-links is desired
 		$transFields = '';
 		$transJoin = '';
 		$transWhere = '';
@@ -529,24 +576,24 @@
 				$transJoin
 				WHERE cl_from = " . $title->getArticleID() . "
 				$transWhere
-				ORDER BY cl_to
-				LIMIT " . (int)$wgCategoryTreeMaxChildren;
+				ORDER BY cl_to";
+		$sql = $dbr->limitResult( $sql, (int)$wgCategoryTreeMaxChildren );
 
 		$res = $dbr->query( $sql, __METHOD__ );
 
-		$special = Title::makeTitle( NS_SPECIAL, 'CategoryTree' );
+		$special = SpecialPage::getTitleFor( 'CategoryTree' );
 
-		$s= '';
+		$s = '';
 
-		while ( $row = $dbr->fetchObject( $res ) ) {
-			#TODO: translation support; ideally added to Title object
+		foreach ( $res as $row ) {
+			# TODO: translation support; ideally added to Title object
 			$t = Title::newFromRow( $row );
 
-			#$trans = $title->getLocalizedText();
-			$trans = ''; #place holder for when translated titles are available
+			# $trans = $title->getLocalizedText();
+			$trans = ''; # place holder for when translated titles are available
 
 			$label = htmlspecialchars( $t->getText() );
-			if ( $trans && $trans!=$label ) $label.= ' ' . Xml::element( 'i', array( 'class' => 'translation'), $trans );
+			if ( $trans && $trans != $label ) $label .= ' ' . Xml::element( 'i', array( 'class' => 'translation' ), $trans );
 
 			$wikiLink = $special->getLocalURL( 'target=' . $t->getPartialURL() . '&' . $this->getOptionsAsUrlParameters() );
 
@@ -559,36 +606,41 @@
 			$s .= "\n\t\t";
 		}
 
-		$dbr->freeResult( $res );
-
 		return $s;
 	}
 
 	/**
-	* Returns a string with a HTML represenation of the given page.
-	* $title must be a Title object
-	*/
+	 * Returns a string with a HTML represenation of the given page.
+	 * @param $title Title
+	 * @param int $children
+	 * @param bool $loadchildren
+	 * @return string
+	 */
 	function renderNode( $title, $children = 0, $loadchildren = false ) {
 		global $wgCategoryTreeUseCategoryTable;
 
 		if ( $wgCategoryTreeUseCategoryTable && $title->getNamespace() == NS_CATEGORY && !$this->isInverse() ) {
 			$cat = Category::newFromTitle( $title );
+		} else {
+			$cat = null;
 		}
-		else $cat = NULL;
 
 		return $this->renderNodeInfo( $title, $cat, $children, $loadchildren );
 	}
 
 	/**
-	* Returns a string with a HTML represenation of the given page.
-	* $info must be an associative array, containing at least a Title object under the 'title' key.
-	*/
+	 * Returns a string with a HTML represenation of the given page.
+	 * $info must be an associative array, containing at least a Title object under the 'title' key.
+	 * @param $title Title
+	 * @param $cat Category
+	 * @param $children int
+	 * @param $loadchildren bool
+	 * @return string
+	 */
 	function renderNodeInfo( $title, $cat, $children = 0, $loadchildren = false ) {
 		static $uniq = 0;
 
-		$this->init(); # initialize messages
-
-		$mode = $this->getOption('mode');
+		$mode = $this->getOption( 'mode' );
 		$load = false;
 
 		if ( $children > 0 && $loadchildren ) {
@@ -600,22 +652,32 @@
 		$ns = $title->getNamespace();
 		$key = $title->getDBkey();
 
-		#$trans = $title->getLocalizedText();
-		$trans = ''; #place holder for when translated titles are available
+		# $trans = $title->getLocalizedText();
+		$trans = ''; # place holder for when translated titles are available
 
-		$hideprefix = $this->getOption('hideprefix');
+		$hideprefix = $this->getOption( 'hideprefix' );
 
-		if ( $hideprefix == CT_HIDEPREFIX_ALWAYS ) $hideprefix = true;
-		else if ( $hideprefix == CT_HIDEPREFIX_AUTO ) $hideprefix = ($mode == CT_MODE_CATEGORIES);
-		else if ( $hideprefix == CT_HIDEPREFIX_CATEGORIES ) $hideprefix = ($ns == NS_CATEGORY);
-		else $hideprefix = true;
+		if ( $hideprefix == CT_HIDEPREFIX_ALWAYS ) {
+			$hideprefix = true;
+		} elseif ( $hideprefix == CT_HIDEPREFIX_AUTO ) {
+			$hideprefix = ( $mode == CT_MODE_CATEGORIES );
+		} elseif ( $hideprefix == CT_HIDEPREFIX_CATEGORIES ) {
+			$hideprefix = ( $ns == NS_CATEGORY );
+		} else {
+			$hideprefix = true;
+		}
 
-		#when showing only categories, omit namespace in label unless we explicitely defined the configuration setting
-		#patch contributed by Manuel Schneider <manuel.schneider at wikimedia.ch>, Bug 8011
-		if ( $hideprefix ) $label = htmlspecialchars( $title->getText() );
-		else $label = htmlspecialchars( $title->getPrefixedText() );
+		# when showing only categories, omit namespace in label unless we explicitely defined the configuration setting
+		# patch contributed by Manuel Schneider <manuel.schneider at wikimedia.ch>, Bug 8011
+		if ( $hideprefix ) {
+			$label = htmlspecialchars( $title->getText() );
+		} else {
+			$label = htmlspecialchars( $title->getPrefixedText() );
+		}
 
-		if ( $trans && $trans!=$label ) $label.= ' ' . Xml::element( 'i', array( 'class' => 'translation'), $trans );
+		if ( $trans && $trans != $label ) {
+			$label .= ' ' . Xml::element( 'i', array( 'class' => 'translation' ), $trans );
+		}
 
 		$labelClass = 'CategoryTreeLabel ' . ' CategoryTreeLabelNs' . $ns;
 
@@ -632,12 +694,14 @@
 			$labelClass .= ' CategoryTreeLabelPage';
 		}
 
-		if ( ( $ns % 2 ) > 0 ) $labelClass .= ' CategoryTreeLabelTalk';
+		if ( ( $ns % 2 ) > 0 ) {
+			$labelClass .= ' CategoryTreeLabelTalk';
+		}
 
 		$count = false;
 		$s = '';
 
-		#NOTE: things in CategoryTree.js rely on the exact order of tags!
+		# NOTE: things in CategoryTree.js rely on the exact order of tags!
 		#      Specifically, the CategoryTreeChildren div must be the first
 		#      sibling with nodeName = DIV of the grandparent of the expland link.
 
@@ -645,83 +709,119 @@
 		$s .= Xml::openElement( 'div', array( 'class' => 'CategoryTreeItem' ) );
 
 		$attr = array( 'class' => 'CategoryTreeBullet' );
-		$s .= Xml::openElement( 'span', $attr );
 
+		# Get counts, with conversion to integer so === works
+		# Note: $allCount is the total number of cat members,
+		# not the count of how many members are normal pages.
+		$allCount = $cat ? intval( $cat->getPageCount() ) : 0;
+		$subcatCount = $cat ? intval( $cat->getSubcatCount() ) : 0;
+		$fileCount = $cat ? intval( $cat->getFileCount() ) : 0;
+
 		if ( $ns == NS_CATEGORY ) {
+
 			if ( $cat ) {
-				if ( $mode == CT_MODE_CATEGORIES ) $count = $cat->getSubcatCount();
-				else if ( $mode == CT_MODE_PAGES ) $count = $cat->getPageCount() - $cat->getFileCount();
-				else $count = $cat->getPageCount();
+				if ( $mode == CT_MODE_CATEGORIES ) {
+					$count = $subcatCount;
+				} elseif ( $mode == CT_MODE_PAGES ) {
+					$count = $allCount - $fileCount;
+				} else {
+					$count = $allCount;
+				}
 			}
-	
-			$linkattr= array( );
-			if ( $load ) $linkattr[ 'id' ] = $load;
+			if ( $count === 0 ) {
+				$bullet = wfMsgNoTrans( 'categorytree-empty-bullet' ) . ' ';
+				$attr['class'] = 'CategoryTreeEmptyBullet';
+			} else {
+				$linkattr = array( );
+				if ( $load ) {
+					$linkattr[ 'id' ] = $load;
+				}
 
-			$linkattr[ 'class' ] = "CategoryTreeToggle";
-			$linkattr['style'] = 'display: none;'; // Unhidden by JS
+				$linkattr[ 'class' ] = "CategoryTreeToggle";
+				$linkattr['style'] = 'display: none;'; // Unhidden by JS
+				$linkattr['data-ct-title'] = $key;
 
-			/*if ( $count === 0 ) {
-				$tag = 'span';
-				$txt = wfMsgNoTrans( 'categorytree-empty-bullet' );
+				if ( $children == 0 || $loadchildren ) {
+					$tag = 'span';
+					$txt = wfMsgNoTrans( 'categorytree-expand-bullet' );
+					# Don't load this message for ajax requests, so that we don't have to initialise $wgLang
+					$linkattr[ 'title' ] = $this->mIsAjaxRequest ? '##LOAD##' : wfMsgNoTrans( 'categorytree-expand' );
+					$linkattr[ 'data-ct-state' ] = 'collapsed';
+				} else {
+					$tag = 'span';
+					$txt = wfMsgNoTrans( 'categorytree-collapse-bullet' );
+					$linkattr[ 'title' ] = wfMsgNoTrans( 'categorytree-collapse' );
+					$linkattr[ 'data-ct-loaded' ] = true;
+					$linkattr[ 'data-ct-state' ] = 'expanded';
+				}
+
+				if ( $tag == 'a' ) {
+					$linkattr[ 'href' ] = $wikiLink;
+				}
+				$bullet = Xml::openElement( $tag, $linkattr ) . $txt . Xml::closeElement( $tag ) . ' ';
 			}
-			else*/ 
-			if ( $children == 0 || $loadchildren ) {
-				$tag = 'span';
-				if ( $count === 0 ) $txt = wfMsgNoTrans( 'categorytree-empty-bullet' );
-				else $txt = wfMsgNoTrans( 'categorytree-expand-bullet' );
-				$linkattr[ 'onclick' ] = "if (this.href) this.href='javascript:void(0)'; categoryTreeExpandNode('".Xml::escapeJsString($key)."',".$this->getOptionsAsJsStructure().",this);";
-				# Don't load this message for ajax requests, so that we don't have to initialise $wgLang
-				$linkattr[ 'title' ] = $this->mIsAjaxRequest ? '##LOAD##' : wfMsgNoTrans('categorytree-expand');
-			}
-			else {
-				$tag = 'span';
-				$txt = wfMsgNoTrans( 'categorytree-collapse-bullet' );
-				$linkattr[ 'onclick' ] = "if (this.href) this.href='javascript:void(0)'; categoryTreeCollapseNode('".Xml::escapeJsString($key)."',".$this->getOptionsAsJsStructure().",this);";
-				$linkattr[ 'title' ] = wfMsgNoTrans('categorytree-collapse');
-				$linkattr[ 'class' ] .= ' CategoryTreeLoaded';
-			}
-
-			if ( $tag == 'a' ) $linkattr[ 'href' ] = $wikiLink;
-			$s .= Xml::openElement( $tag, $linkattr ) . $txt . Xml::closeElement( $tag ) . ' ';
 		} else {
-			$s .= wfMsgNoTrans( 'categorytree-page-bullet' );
+			$bullet = wfMsgNoTrans( 'categorytree-page-bullet' );
 		}
+		$s .= Xml::tags( 'span', $attr, $bullet ) . ' ';
 
-		$s .= Xml::closeElement( 'span' );
-
 		$s .= Xml::openElement( 'a', array( 'class' => $labelClass, 'href' => $wikiLink ) ) . $label . Xml::closeElement( 'a' );
 
 		if ( $count !== false && $this->getOption( 'showcount' ) ) {
-			$pages = $cat->getPageCount() - $cat->getSubcatCount() - $cat->getFileCount();
+			$pages = $allCount - $subcatCount - $fileCount;
 
+			global $wgContLang, $wgLang;
 			$attr = array(
-				'title' => wfMsgExt( 'categorytree-member-counts', 'parsemag', $cat->getSubcatCount(), $pages , $cat->getFileCount(), $cat->getPageCount(), $count )
+				'title' => wfMsgExt( 'categorytree-member-counts', 'parsemag', $subcatCount, $pages , $fileCount, $allCount, $count ),
+				'dir' => $wgLang->getDir() # numbers and commas get messed up in a mixed dir env
 			);
 
-			$s .= ' ';
-			global $wgLang;
+			$s .= $wgContLang->getDirMark() . ' ';
+
+			# Create a list of category members with only non-zero member counts
+			$memberNums = array();
+			if ( $subcatCount ) {
+				$memberNums[] = wfMessage( 'categorytree-num-categories', $wgLang->formatNum( $subcatCount ) )->text();
+			}
+			if ( $pages ) {
+				$memberNums[] = wfMessage( 'categorytree-num-pages', $wgLang->formatNum( $pages ) )->text();
+			}
+			if ( $fileCount ) {
+				$memberNums[] = wfMessage( 'categorytree-num-files', $wgLang->formatNum( $fileCount ) )->text();
+			}
+			$memberNumsShort = $memberNums
+				? $wgLang->commaList( $memberNums )
+				: wfMessage( 'categorytree-num-empty' )->text();
+
+			# Only $5 is actually used in the default message.
+			# Other arguments can be used in a customized message.
 			$s .= Xml::tags( 'span', $attr,
 				wfMsgExt( 'categorytree-member-num',
 					array( 'parsemag', 'escapenoentities' ),
-					$cat->getSubcatCount(),
+					$subcatCount,
 					$pages,
-					$cat->getFileCount(),
-					$cat->getPageCount(),
-					$wgLang->formatNum( $count ) ) );
+					$fileCount,
+					$allCount,
+					$memberNumsShort ) );
 		}
 
 		$s .= Xml::closeElement( 'div' );
 		$s .= "\n\t\t";
 		$s .= Xml::openElement( 'div', array( 'class' => 'CategoryTreeChildren', 'style' => $children > 0 ? "display:block" : "display:none" ) );
-		
-		if ( $ns == NS_CATEGORY && $children > 0 && !$loadchildren) {
+
+		if ( $ns == NS_CATEGORY && $children > 0 && !$loadchildren ) {
 			$children = $this->renderChildren( $title, $children );
 			if ( $children == '' ) {
 				$s .= Xml::openElement( 'i', array( 'class' => 'CategoryTreeNotice' ) );
-				if ( $mode == CT_MODE_CATEGORIES ) $s .= wfMsgExt( 'categorytree-no-subcategories', 'parsemag');
-				else if ( $mode == CT_MODE_PAGES ) $s .= wfMsgExt( 'categorytree-no-pages', 'parsemag');
-				else if ( $mode == CT_MODE_PARENTS ) $s .= wfMsgExt( 'categorytree-no-parent-categories', 'parsemag');
-				else $s .= wfMsgExt( 'categorytree-nothing-found', 'parsemag');
+				if ( $mode == CT_MODE_CATEGORIES ) {
+					$s .= wfMsgExt( 'categorytree-no-subcategories', 'parsemag' );
+				} elseif ( $mode == CT_MODE_PAGES ) {
+					$s .= wfMsgExt( 'categorytree-no-pages', 'parsemag' );
+				} elseif ( $mode == CT_MODE_PARENTS ) {
+					$s .= wfMsgExt( 'categorytree-no-parent-categories', 'parsemag' );
+				} else {
+					$s .= wfMsgExt( 'categorytree-nothing-found', 'parsemag' );
+				}
 				$s .= Xml::closeElement( 'i' );
 			} else {
 				$s .= $children;
@@ -734,7 +834,7 @@
 		if ( $load ) {
 			$s .= "\n\t\t";
 			$s .= Xml::openElement( 'script', array( 'type' => 'text/javascript' ) );
-			$s .= 'categoryTreeExpandNode("'.Xml::escapeJsString($key).'", '.$this->getOptionsAsJsStructure($children).', document.getElementById("'.$load.'"));';
+			$s .= 'categoryTreeExpandNode("' . Xml::escapeJsString( $key ) . '", ' . $this->getOptionsAsJsStructure( $children ) . ', document.getElementById("' . $load . '"));';
 			$s .= Xml::closeElement( 'script' );
 		}
 
@@ -744,38 +844,26 @@
 	}
 
 	/**
-	* Creates a Title object from a user provided (and thus unsafe) string
-	*/
+	 * Creates a Title object from a user provided (and thus unsafe) string
+	 * @param $title string
+	 * @return null|Title
+	 */
 	static function makeTitle( $title ) {
-		global $wgContLang, $wgCanonicalNamespaceNames;
+		$title = trim( $title );
 
-		$title = trim($title);
-
-		if ( $title === NULL || $title === '' || $title === false ) {
-			return NULL;
+		if ( $title === null || $title === '' || $title === false ) {
+			return null;
 		}
 
 		# The title must be in the category namespace
 		# Ignore a leading Category: if there is one
 		$t = Title::newFromText( $title, NS_CATEGORY );
-		if ( $t && ( $t->getNamespace() != NS_CATEGORY || $t->getInterWiki() != '' ) ) {
+		if ( !$t || $t->getNamespace() != NS_CATEGORY || $t->getInterWiki() != '' ) {
+			// If we were given something like "Wikipedia:Foo" or "Template:",
+			// try it again but forced.
 			$title = "Category:$title";
 			$t = Title::newFromText( $title );
 		}
 		return $t;
 	}
-
-	/**
-	 * Initialize. Load messages, if not ajax request.
-	 */
-	static function init( ) {
-		static $initialized = false;
-		if ( $initialized ) return;
-		$initialized = true;
-
-		#NOTE: don't load messages for ajax requests. Ajax requests are cachable and language-neutral.
-		#      Messages used in JS are defined by setHeaders
-		if ( !isset( $this ) || !$this->mIsAjaxRequest ) 
-			wfLoadExtensionMessages( 'CategoryTree' );
-	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreePage.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreePage.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/CategoryTreePage.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -3,124 +3,134 @@
  * Special page for the  CategoryTree extension, an AJAX based gadget
  * to display the category structure of a wiki
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2006 Daniel Kinzler
  * @license GNU General Public Licence 2.0 or later
  */
 
-if( !defined( 'MEDIAWIKI' ) ) {
+if ( !defined( 'MEDIAWIKI' ) ) {
 	echo( "This file is part of an extension to the MediaWiki software and cannot be used standalone.\n" );
 	die( 1 );
 }
 
 class CategoryTreePage extends SpecialPage {
-
 	var $target = '';
-	var $tree = NULL;
+	var $tree = null;
 
-	/**
-	 * Constructor
-	 */
 	function __construct() {
-		global $wgOut;
-		SpecialPage::SpecialPage( 'CategoryTree', '', true );
-		wfLoadExtensionMessages( 'CategoryTree' );
+		parent::__construct( 'CategoryTree', '', true );
 	}
 
+	/**
+	 * @param $name
+	 * @return mixed
+	 */
 	function getOption( $name ) {
 		global $wgCategoryTreeDefaultOptions;
 
-		if ( $this->tree ) return $this->tree->getOption( $name );
-		else return $wgCategoryTreeDefaultOptions[$name];
+		if ( $this->tree ) {
+			return $this->tree->getOption( $name );
+		} else {
+			return $wgCategoryTreeDefaultOptions[$name];
+		}
 	}
 
 	/**
 	 * Main execution function
-	 * @param $par Parameters passed to the page
+	 * @param $par array Parameters passed to the page
 	 */
 	function execute( $par ) {
-		global $wgRequest, $wgOut, $wgCategoryTreeDefaultOptions, $wgCategoryTreeSpecialPageOptions, $wgCategoryTreeForceHeaders;
+		global $wgCategoryTreeDefaultOptions, $wgCategoryTreeSpecialPageOptions, $wgCategoryTreeForceHeaders;
 
 		$this->setHeaders();
+		$request = $this->getRequest();
+		if ( $par ) {
+			$this->target = $par;
+		} else {
+			$this->target = $request->getVal( 'target', wfMsg( 'rootcategory' ) );
+		}
 
-		if ( $par ) $this->target = $par;
-		else $this->target = $wgRequest->getVal( 'target', wfMsg( 'rootcategory') );
-
 		$this->target = trim( $this->target );
 
-		#HACK for undefined root category
-		if ( $this->target == '<rootcategory>' || $this->target == '<rootcategory>' ) $this->target = NULL;
+		# HACK for undefined root category
+		if ( $this->target == '<rootcategory>' || $this->target == '<rootcategory>' ) {
+			$this->target = null;
+		}
 
 		$options = array();
 
 		# grab all known options from the request. Normalization is done by the CategoryTree class
 		foreach ( $wgCategoryTreeDefaultOptions as $option => $default ) {
-			if ( isset( $wgCategoryTreeSpecialPageOptions[$option] ) )
+			if ( isset( $wgCategoryTreeSpecialPageOptions[$option] ) ) {
 				$default = $wgCategoryTreeSpecialPageOptions[$option];
+			}
 
-			$options[$option] = $wgRequest->getVal( $option, $default );
+			$options[$option] = $request->getVal( $option, $default );
 		}
 
 		$this->tree = new CategoryTree( $options );
 
-		$wgOut->addWikiMsg( 'categorytree-header' );
+		$output = $this->getOutput();
+		$output->addWikiMsg( 'categorytree-header' );
 
 		$this->executeInputForm();
 
-		if( $this->target !== '' && $this->target !== NULL ) {
-			if ( !$wgCategoryTreeForceHeaders ) CategoryTree::setHeaders( $wgOut );
+		if ( $this->target !== '' && $this->target !== null ) {
+			if ( !$wgCategoryTreeForceHeaders ) {
+				CategoryTree::setHeaders( $output );
+			}
 
 			$title = CategoryTree::makeTitle( $this->target );
 
 			if ( $title && $title->getArticleID() ) {
-				$wgOut->addHTML( Xml::openElement( 'div', array( 'class' => 'CategoryTreeParents' ) ) );
-				$wgOut->addHTML( wfMsgExt( 'categorytree-parents', 'parseinline' ) );
-				$wgOut->addHTML( wfMsg( 'colon-separator' ) );
+				$output->addHTML( Xml::openElement( 'div', array( 'class' => 'CategoryTreeParents' ) ) );
+				$output->addHTML( wfMsgExt( 'categorytree-parents', 'parseinline' ) );
+				$output->addHTML( wfMsg( 'colon-separator' ) );
 
 				$parents = $this->tree->renderParents( $title );
 
 				if ( $parents == '' ) {
-					$wgOut->addHTML( wfMsgExt( 'categorytree-no-parent-categories', 'parseinline' ) );
+					$output->addHTML( wfMsgExt( 'categorytree-no-parent-categories', 'parseinline' ) );
 				} else {
-					$wgOut->addHTML( $parents );
+					$output->addHTML( $parents );
 				}
 
-				$wgOut->addHTML( Xml::closeElement( 'div' ) );
+				$output->addHTML( Xml::closeElement( 'div' ) );
 
-				$wgOut->addHTML( Xml::openElement( 'div', array( 'class' => 'CategoryTreeResult' ) ) );
-				$wgOut->addHTML( $this->tree->renderNode( $title, 1 ) );
-				$wgOut->addHTML( Xml::closeElement( 'div' ) );
+				$output->addHTML( Xml::openElement( 'div', array( 'class' => 'CategoryTreeResult' ) ) );
+				$output->addHTML( $this->tree->renderNode( $title, 1 ) );
+				$output->addHTML( Xml::closeElement( 'div' ) );
+			} else {
+				$output->addHTML( Xml::openElement( 'div', array( 'class' => 'CategoryTreeNotice' ) ) );
+				$output->addHTML( wfMsgExt( 'categorytree-not-found', 'parseinline' , $this->target ) );
+				$output->addHTML( Xml::closeElement( 'div' ) );
 			}
-			else {
-				$wgOut->addHTML( Xml::openElement( 'div', array( 'class' => 'CategoryTreeNotice' ) ) );
-				$wgOut->addHTML( wfMsgExt( 'categorytree-not-found', 'parseinline' , $this->target ) );
-				$wgOut->addHTML( Xml::closeElement( 'div' ) );
-			}
 		}
-
 	}
 
 	/**
 	 * Input form for entering a category
 	 */
 	function executeInputForm() {
-		global $wgScript, $wgOut;
-		$thisTitle = Title::makeTitle( NS_SPECIAL, $this->getName() );
-		$mode = $this->getOption('mode');
+		global $wgScript;
+		$thisTitle = SpecialPage::getTitleFor( $this->getName() );
+		$mode = $this->getOption( 'mode' );
 
-		$wgOut->addHTML( Xml::openElement( 'form', array( 'name' => 'categorytree', 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-categorytree-form' ) ) );
-		$wgOut->addHTML( Xml::openElement( 'fieldset' ) );
-		$wgOut->addHTML( Xml::element( 'legend', null, wfMsgNoTrans( 'categorytree-legend' ) ) );
-		$wgOut->addHTML( Xml::hidden( 'title', $thisTitle->getPrefixedDbKey() ) );
-		$wgOut->addHTML( Xml::inputLabel( wfMsgNoTrans( 'categorytree-category' ), 'target', 'target', 20, $this->target ) . ' ' );
-		$wgOut->addHTML( Xml::openElement( 'select', array( 'name' => 'mode' ) ) );
-		$wgOut->addHTML( Xml::option( wfMsgNoTrans( 'categorytree-mode-categories' ), 'categories', $mode == CT_MODE_CATEGORIES ? true : false ) );
-		$wgOut->addHTML( Xml::option( wfMsgNoTrans( 'categorytree-mode-pages' ), 'pages', $mode == CT_MODE_PAGES ? true : false ) );
-		$wgOut->addHTML( Xml::option( wfMsgNoTrans( 'categorytree-mode-all' ), 'all', $mode == CT_MODE_ALL ? true : false ) );
-		$wgOut->addHTML( Xml::closeElement( 'select' ) . ' ' );
-		$wgOut->addHTML( Xml::submitButton( wfMsgNoTrans( 'categorytree-go' ), array( 'name' => 'dotree' ) ) );
-		$wgOut->addHTML( Xml::closeElement( 'fieldset' ) );
-		$wgOut->addHTML( Xml::closeElement( 'form' ) );
+		$output = $this->getOutput();
+		$output->addHTML( Xml::openElement( 'form', array( 'name' => 'categorytree', 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-categorytree-form' ) ) );
+		$output->addHTML( Xml::openElement( 'fieldset' ) );
+		$output->addHTML( Xml::element( 'legend', null, wfMsgNoTrans( 'categorytree-legend' ) ) );
+		$output->addHTML( Html::Hidden( 'title', $thisTitle->getPrefixedDbKey() ) );
+		$output->addHTML( Xml::inputLabel( wfMsgNoTrans( 'categorytree-category' ), 'target', 'target', 20, $this->target ) . ' ' );
+		$output->addHTML( Xml::openElement( 'select', array( 'name' => 'mode' ) ) );
+		$output->addHTML( Xml::option( wfMsgNoTrans( 'categorytree-mode-categories' ), 'categories', $mode == CT_MODE_CATEGORIES ) );
+		$output->addHTML( Xml::option( wfMsgNoTrans( 'categorytree-mode-pages' ), 'pages', $mode == CT_MODE_PAGES ) );
+		$output->addHTML( Xml::option( wfMsgNoTrans( 'categorytree-mode-all' ), 'all', $mode == CT_MODE_ALL ) );
+		$output->addHTML( Xml::closeElement( 'select' ) . ' ' );
+		$output->addHTML( Xml::submitButton( wfMsgNoTrans( 'categorytree-go' ), array( 'name' => 'dotree' ) ) );
+		$output->addHTML( Xml::closeElement( 'fieldset' ) );
+		$output->addHTML( Xml::closeElement( 'form' ) );
 	}
 }

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.css
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.css	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.css	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,78 @@
+/*
+ * Stylesheet for the CategoryTree extension, an AJAX based gadget
+ * to display the category structure of a wiki
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006 Daniel Kinzler
+ * @licence GNU General Public Licence 2.0 or later
+ *
+ * NOTE: if you change this, increment $wgCategoryTreeVersion
+ *       in CategoryTree.php to avoid users getting stale copies from cache.
+*/
+
+.CategoryTreeChildren {
+	margin-left: 1.5ex;
+}
+
+
+.CategoryTreeBullet {
+	cursor: pointer;
+	cursor: hand; /* hack for MSIE 5.0 and 5.5 */
+}
+.CategoryTreeEmptyBullet {
+	cursor: default;
+}
+
+.CategoryTreeBullet a,
+.CategoryTreeBullet a:link,
+.CategoryTreeBullet a:active,
+.CategoryTreeBullet a:visited {
+	text-decoration: none;
+	color: inherit;
+	speak: none;
+}
+
+.CategoryTreeLabelPage {
+	font-style: italic;
+}
+
+.CategoryTreeParents {
+	margin-top: 1.5ex;
+	font-style: italic;
+}
+
+.CategoryTreeResult {
+	margin-top: 1.5ex;
+}
+
+.CategoryTreeTag {
+	margin-top: 0.5ex;
+	margin-bottom: 0.5ex;
+}
+
+.CategoryTreeNotice {
+	font-style: italic;
+}
+
+/*
+div.CategoryTreeInlineNode,
+div.CategoryTreeInlineNode div {
+	display: table-cell;
+}
+*/
+
+.CategoryTreeCategoryBarItem {
+	display:-moz-inline-box; display:inline-block; /* yes, specify display twice! quirk for FF2 */
+	margin:-0.5ex 0 0 1ex; /* why is the -0.5ex needed? */
+	padding:0;
+	vertical-align: top;
+	/* IE6-7 Hack for display: inline-block */
+	zoom: 1;
+	*display: inline;
+}
+
+.CategoryTreeSection {
+	direction: ltr;
+}
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CategoryTree/modules/ext.categoryTree.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,175 @@
+/*
+ * JavaScript functions for the CategoryTree extension, an AJAX based gadget
+ * to display the category structure of a wiki
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Daniel Kinzler, brightbyte.de
+ * @copyright © 2006 Daniel Kinzler
+ * @licence GNU General Public Licence 2.0 or later
+ */
+
+(function( $, mw ) {
+
+var categoryTree = {
+	/**
+	 * Sets display inline to tree toggle
+	 */
+	showToggles: function() {
+		$( 'span.CategoryTreeToggle' ).css( 'display', 'inline' );
+	},
+	
+	/**
+	 * Handles clicks on the expand buttons, and calls the appropriate function
+	 *
+	 * @context {Element} CategoryTreeToggle
+	 * @param e {jQuery.Event}
+	 */
+	handleNode: function( e ) {
+		var $link = $( this );
+		if ( $link.data( 'ct-state' ) === 'collapsed' ) {
+			categoryTree.expandNode( $link );
+		} else {
+			categoryTree.collapseNode( $link );
+		}
+	},
+
+	/**
+	 * Expands a given node (loading it's children if not loaded)
+	 *
+	 * @param {jQuery} $link
+	 */
+	expandNode: function( $link ) {
+		// Show the children node
+		var $children = $link.parents( '.CategoryTreeItem' )
+				.siblings( '.CategoryTreeChildren' );
+		$children.show();
+
+		$link
+			.html( mw.msg( 'categorytree-collapse-bullet' ) )
+			.attr( 'title', mw.msg( 'categorytree-collapse' ) )
+			.data( 'ct-state', 'expanded' );
+
+		if ( !$link.data( 'ct-loaded' ) ) {
+			categoryTree.loadChildren( $link, $children );
+		}
+	},
+
+	/**
+	 * Collapses a node
+	 *
+	 * @param {jQuery} $link
+	 */
+	collapseNode: function( $link ) {
+		// Hide the children node
+		$link.parents( '.CategoryTreeItem' )
+			.siblings( '.CategoryTreeChildren' ).hide();
+
+		$link
+			.html( mw.msg( 'categorytree-expand-bullet' ) )
+			.attr( 'title', mw.msg( 'categorytree-expand' ) )
+			.data( 'ct-state', 'collapsed' );
+	},
+
+	/**
+	 * Loads children for a node via an HTTP call
+	 *
+	 * @param {jQuery} $link
+	 * @param {jQuery} $children
+	 */
+	loadChildren: function( $link, $children ) {
+		var $linkParentCTTag, ctTitle, ctMode, ctOptions;
+
+		/**
+		 * Error callback
+		 */
+		function error() {
+			var $retryLink;
+
+			$retryLink = $( '<a>' )
+				.text( mw.msg( 'categorytree-retry' ) )
+				.attr( 'href', '#' )
+				.click( function ( e ) {
+					e.preventDefault();
+					categoryTree.loadChildren( $link, $children );
+				} );
+
+			$children
+				.text( mw.msg( 'categorytree-error' ) + ' ' )
+				.append( $retryLink );
+		}
+
+		$link.data( 'ct-loaded', true );
+
+		$children.html(
+			$( '<i class="CategoryTreeNotice"></i>' )
+				.text( mw.msg( 'categorytree-loading' ) )
+		);
+
+		$linkParentCTTag = $link.parents( '.CategoryTreeTag' );
+
+		// Element may not have a .CategoryTreeTag parent, fallback to defauls
+		// Probably a CategoryPage (@todo: based on what?)
+		ctTitle = $link.data( 'ct-title' );
+		ctMode = $linkParentCTTag.data( 'ct-mode' );
+		ctMode = typeof ctMode === 'number' ? ctMode : undefined;
+		ctOptions = $linkParentCTTag.data( 'ct-options' ) || mw.config.get( 'wgCategoryTreePageCategoryOptions' );
+
+		// Mode and options have defaults or fallbacks, title does not.
+		// Don't make a request if there is no title.
+		if ( typeof ctTitle !== 'string' ) {
+			error();
+			return;
+		}
+
+		$.get(
+			mw.util.wikiScript(), {
+				action: 'ajax',
+				rs: 'efCategoryTreeAjaxWrapper',
+				rsargs: [ctTitle, ctOptions, 'json'] // becomes &rsargs[]=arg1&rsargs[]=arg2...
+			}
+		)
+			.success( function ( data ) {
+				data = data.replace(/^\s+|\s+$/, '');
+				data = data.replace(/##LOAD##/g, mw.msg( 'categorytree-expand' ) );
+
+				if ( data === '' ) {
+					switch ( ctMode ) {
+						// CT_MODE_CATEGORIES = 0
+						case 0:
+							data = mw.msg( 'categorytree-no-subcategories' );
+							break;
+						// CT_MODE_PAGES = 10
+						case 10:
+							data = mw.msg( 'categorytree-no-pages' );
+							break;
+						// CT_MODE_PARENTS = 100
+						case 100:
+							data = mw.msg( 'categorytree-no-parent-categories' );
+							break;
+						// CT_MODE_ALL = 20
+						default:
+							data = mw.msg( 'categorytree-nothing-found' );
+					}
+
+					data = $( '<i class="CategoryTreeNotice"></i>' ).text( data );
+				}
+
+				$children
+					.html( data )
+					.find( '.CategoryTreeToggle' )
+						.click( categoryTree.handleNode );
+
+				categoryTree.showToggles();
+			} )
+			.error( error );
+	}
+};
+
+// Register click events and show toggle buttons
+$( function( $ ) {
+	$( '.CategoryTreeToggle' ).click( categoryTree.handleNode );
+	categoryTree.showToggles();
+} );
+
+} )( jQuery, mediaWiki );

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,13 +2,14 @@
 /**
  * Internationalisation file for Cite extension.
  *
- * @addtogroup Extensions
-*/
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
 $messages['en'] = array(
-	'cite_desc'                      => 'Adds <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> tags, for citations',
+	'cite-desc'                      => 'Adds <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> tags, for citations',
 	/*
 		Debug and errors
 	*/
@@ -31,8 +32,6 @@
 invalid names, e.g. too many',
 	'cite_error_ref_no_input'                        => 'Invalid <code><ref></code> tag;
 refs with no name must have content',
-	'cite_error_references_invalid_input'            => 'Invalid <code><references></code> tag;
-no input is allowed. Use <code><references /></code>',
 	'cite_error_references_invalid_parameters'       => 'Invalid <code><references></code> tag;
 no parameters are allowed.
 Use <code><references /></code>',
@@ -40,12 +39,19 @@
 parameter "group" is allowed only.
 Use <code><references /></code>, or <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label'        => 'Ran out of custom backlink labels.
-Define more in the <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> message',
+Define more in the <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> message.',
+	'cite_error_no_link_label_group'        => 'Ran out of custom link labels for group "$1".
+Define more in the <nowiki>[[MediaWiki:$2]]</nowiki> message.',
 	'cite_error_references_no_text'                  => 'Invalid <code><ref></code> tag;
 no text was provided for refs named <code>$1</code>',
 	'cite_error_included_ref'                        => 'Closing </ref> missing for <ref> tag',
 	'cite_error_refs_without_references'             => '<code><ref></code> tags exist, but no <code><references/></code> tag was found',
 	'cite_error_group_refs_without_references'       => '<code><ref></code> tags exist for a group named "$1", but no corresponding <code><references group="$1"/></code> tag was found',
+	'cite_error_references_group_mismatch'           => '<code><ref></code> tag in <code><references></code> has conflicting group attribute "$1".',
+	'cite_error_references_missing_group'            => '<code><ref></code> tag defined in <code><references></code> has group attribute "$1" which does not appear in prior text.',
+	'cite_error_references_missing_key'              => '<code><ref></code> tag with name "$1" defined in <code><references></code> is not used in prior text.',
+	'cite_error_references_no_key'                   => '<code><ref></code> tag defined in <code><references></code> has no name attribute.',
+	'cite_error_empty_references_define'             => '<code><ref></code> tag defined in <code><references></code> with name "$1" has no content.',
 
 	/*
 	   Output formatting
@@ -59,13 +65,14 @@
 	'cite_references_link_suffix'      => '',
 
 	'cite_reference_link'                              => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
+	'cite_references_no_link'                          => '<p id="$1">$2</p>',
 	'cite_references_link_one'                         => '<li id="$1">[[#$2|↑]] $3</li>',
 	'cite_references_link_many'                        => '<li id="$1">↑ $2 $3</li>',
 	'cite_references_link_many_format'                 => '<sup>[[#$1|$2]]</sup>',
 	# An item from this set is passed as $3 in the message above
 	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
-	'cite_references_link_many_sep'                    => " ",
-	'cite_references_link_many_and'                    => " ",
+	'cite_references_link_many_sep'                    => " ",
+	'cite_references_link_many_and'                    => " ",
 
 	# Although I could just use # instead of <li> above and nothing here that
 	# will break on input that contains linebreaks
@@ -74,68 +81,149 @@
 );
 
 /** Message documentation (Message documentation)
+ * @author Dani
+ * @author LPfi
  * @author Lejonel
+ * @author Mormegil
  * @author Nike
  * @author Purodha
  * @author Raimond Spekking
  * @author Raymond
  * @author Siebrand
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
-	'cite_desc' => 'Extension description for cite. Shown in [[Special:Version]]. Do not translate or change tag names.',
+	'cite-desc' => '{{desc}}',
 	'cite_error_key_str_invalid' => '<tt>$str</tt> and <tt>$key</tt> are literals, and refers to who knows which variables the code uses.',
 	'cite_error' => 'Cite extension. This is used when there are errors in ref or references tags. The parameter $1 is an error message.',
 	'cite_error_ref_numeric_key' => 'Cite extension. Error message shown if the name of a ref tag only contains digits. Examples that cause this error are <code><ref name="123" /></code> or <code><ref name="456">input</ref></code>',
 	'cite_error_ref_no_key' => 'Cite extension. Error message shown when ref tags without any content (that is <code><ref/></code>) are used without a name.',
-	'cite_error_ref_too_many_keys' => 'Cite extension. Error message shown when ref tags has parameters other than name. Examples that cause this error are <code><ref name="name" notname="value" /></code> or <code><ref notname="value" >input<ref></code>',
+	'cite_error_ref_too_many_keys' => 'Cite extension. Error message shown when ref tags has parameters other than name and group. Examples that cause this error are <code><ref name="name" notname="value" /></code> or <code><ref notname="value" >input<ref></code>',
 	'cite_error_ref_no_input' => 'Cite extension. Error message shown when ref tags without names have no content. An example that cause this error is <code><ref></ref></code>',
-	'cite_error_references_invalid_input' => 'Cite extension. Error message shown if input is used in the references tag. An example that will cause this error is <code><references>Some input</references></code>',
 	'cite_error_references_invalid_parameters' => 'Cite extension. Error message shown when parmeters are used in the references tag. An example that cause this error is <code><references someparameter="value" /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Cite extension. Error message shown when unknown parameters are used in the references tag. An example that cause this error is <tt><nowiki><references someparameter="value" /></nowiki></tt>',
 	'cite_error_references_no_backlink_label' => 'Cite extension. Error message shown in the references tag when the same name is used for too many ref tags. Too many in this case is more than there are backlink labels defined in [[MediaWiki:Cite references link many format backlink labels]].
 
 It is not possible to make a clickable link to this message. "nowiki" is mandatory around [[MediaWiki:Cite references link many format backlink labels]].',
+	'cite_error_no_link_label_group' => "*'''$1''' is the name of a reference group.
+*'''$2''' is <tt>cite_link_label_group-<i>groupname</i></tt>.",
 	'cite_error_references_no_text' => 'Cite extension. This error occurs when the tag <code><ref name="something" /></code> is used with the name-option specified and no other tag specifies a cite-text for this name.',
 	'cite_error_included_ref' => 'Error message shown if the <tt><ref></tt> tag is unbalanced, that means a <tt><ref></tt> is not followed by a <tt></ref></tt>',
+	'cite_error_references_group_mismatch' => 'Error message shown when doing something like
+
+<pre>
+<references group="foo">
+<ref group="bar">...</ref>
+</references>
+</pre>
+
+The <code>$1</code> is the value of the <code>group</code> attribute on the inner <code><ref></code> (in the example above, “bar”).',
+	'cite_error_references_missing_group' => 'Error message shown when doing something like
+
+<pre>
+<references group="foo">
+<ref>...</ref>
+</references>
+</pre>
+
+and there are no <code><ref></code> tags in the page text which would use <code>group="foo"</code>.
+
+The <code>$1</code> is the name of the unused <code>group</code> (in the example above, “foo”).',
+	'cite_error_references_missing_key' => 'Error message shown when using something like
+
+<pre>
+<references>
+<ref name="refname">...</ref>
+</references>
+</pre>
+
+and the reference <code><ref name="refname" /></code> is not used anywhere in the page text.
+
+The <code>$1</code> parameter contains the name of the unused reference (in the example above, “refname”).',
+	'cite_error_references_no_key' => 'Error message shown when a <code><ref></code> inside <code><references></code> does not have a <code>name</code> attribute.',
+	'cite_error_empty_references_define' => 'Error message shown when there is a <code><ref></code> inside <code><references></code>, but it does not have any content, e.g.
+
+<pre>
+<references>
+<ref name="foo" />
+</references>
+</pre>
+
+<code>$1</code> contains the <code>name</code> of the erroneous <code><ref></code> (in the above example, “foo”).',
+	'cite_reference_link_key_with_num' => '{{optional}}',
+	'cite_reference_link_prefix' => '{{optional}}',
+	'cite_reference_link_suffix' => '{{optional}}',
+	'cite_references_link_prefix' => '{{optional}}',
+	'cite_references_link_suffix' => '{{optional}}',
+	'cite_reference_link' => '{{optional}}',
+	'cite_references_link_one' => '{{optional}}',
+	'cite_references_link_many' => '{{optional}}',
+	'cite_references_link_many_format' => '{{optional}}',
+	'cite_references_link_many_format_backlink_labels' => '{{Optional}}',
+	'cite_references_link_many_sep' => '{{optional}}',
+	'cite_references_link_many_and' => '{{optional}}',
 );
 
 /** Afrikaans (Afrikaans)
  * @author Naudefj
  */
 $messages['af'] = array(
-	'cite_desc' => 'Maak <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> etikette beskikbaar vir sitasie.',
+	'cite-desc' => 'Maak <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> etikette beskikbaar vir sitasie.',
 	'cite_croak' => 'Probleem met Cite; $1: $2',
+	'cite_error_key_str_invalid' => 'Interne fout;
+ongeldige $str en/of $key.
+Dit behoort nie te gebeur nie.',
+	'cite_error_stack_invalid_input' => 'Interne fout;
+ongeldige "stack key".
+Dit behoort nie te gebeur nie.',
 	'cite_error' => 'Citefout: $1',
+	'cite_error_ref_numeric_key' => "Ongeldige etiket <code><ref></code>;
+die naam kan nie 'n eenvoudige heelgetal wees nie.
+Gebruik 'n beskrywende titel",
+	'cite_error_ref_no_key' => 'Ongeldige etiket <code><ref></code>;
+"refs" sonder inhoud moet \'n naam hê',
+	'cite_error_ref_too_many_keys' => 'Ongeldig <code><ref></code>-etiket;
+ongeldige name, byvoorbeeld te veel',
 );
 
 /** Aragonese (Aragonés)
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'cite_desc' => 'Adibe as etiquetas <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> ta fer zitas',
-	'cite_croak' => 'Zita corrompita; $1: $2',
-	'cite_error_key_str_invalid' => 'Error interna; $str y/u $key no conforme(s). Isto no abría d\'escaizer nunca.',
-	'cite_error_stack_invalid_input' => "Error interna; clau de pila no conforme. Isto no abría d'escaizer nunca.",
-	'cite_error' => 'Error en a zita: $1',
-	'cite_error_ref_numeric_key' => "Etiqueta <code><ref></code> incorreuta; o nombre d'a etiqueta no puede estar un numero entero, faiga serbir un títol descriptibo",
-	'cite_error_ref_no_key' => 'Etiqueta <code><ref></code> incorreuta; as referenzias sin de conteniu han de tener un nombre',
+	'cite-desc' => 'Adibe as etiquetas <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> ta fer citas',
+	'cite_croak' => 'Cita corrompita; $1: $2',
+	'cite_error_key_str_invalid' => 'Error interna; $str y/u $key no conforme(s). Isto no habría d\'escaicer nunca.',
+	'cite_error_stack_invalid_input' => "Error interna; clau de pila no conforme. Isto no habría d'escaicer nunca.",
+	'cite_error' => 'Error en a cita: $1',
+	'cite_error_ref_numeric_key' => "Etiqueta <code><ref></code> incorreuta; o nombre d'a etiqueta no puede estar un numero entero, faiga servir un títol descriptivo",
+	'cite_error_ref_no_key' => 'Etiqueta <code><ref></code> incorreuta; as referencias sin de conteniu han de tener un nombre',
 	'cite_error_ref_too_many_keys' => 'Etiqueta <code><ref></code> incorreuta; nombres de parametros incorreutos.',
-	'cite_error_ref_no_input' => 'Etiqueta <code><ref></code> incorreuta; as referenzias sin nombre no han de tener conteniu',
-	'cite_error_references_invalid_input' => 'Etiqueta <code><references></code> incorreuta; no se premite emplegar input en a etiqueta, faiga serbir <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'Etiqueta <code><references></code> incorreuta; no se premiten parametros, faiga serbir <code><references /></code>',
+	'cite_error_ref_no_input' => 'Etiqueta <code><ref></code> incorreuta; as referencias sin nombre no han de tener conteniu',
+	'cite_error_references_invalid_parameters' => 'Etiqueta <code><references></code> incorreuta; no se premiten parametros, faiga servir <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Etiqueta <code><references></code> no conforme;
 nomás se premite o parametro "group".
-Faiga serbir <code><references /></code>, u <code><references group="..." /></code>',
+Faiga servir <code><references /></code>, u <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Ya no quedan etiquetas backlink presonalizatas, defina más en o mensache <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
-	'cite_error_references_no_text' => "Etiqueta <code><ref></code> incorreuta; no ha escrito garra testo t'as referenzias nombratas <code>$1</code>",
+	'cite_error_no_link_label_group' => 'S\'han acorau as etiquetas de vinclos personalizaus ta o grupo "$1".
+Defina-ne mas en o mensache <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => "Etiqueta <code><ref></code> incorreuta; no ha escrito garra testo t'as referencias nombratas <code>$1</code>",
 	'cite_error_included_ref' => 'Zarrando </ref> falta una etiqueta <ref>',
+	'cite_error_refs_without_references' => 'Existen etiquetas <code><ref></code>, pero no se trobó garra etiqueta <code><references /></code>',
+	'cite_error_group_refs_without_references' => 'Existen etiquetas <code><ref></code> ta un grupo clamau "$1", pero no se trobó garra etiqueta <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'O tag <code><ref></code> en <code><references></code> presienta l\'atributo de grupo en conflicto "$1".',
+	'cite_error_references_missing_group' => 'O tag <code><ref></code> definiu en <code><references></code> incluye l\'atributo "$1" no declarau en o texto precedente.',
+	'cite_error_references_missing_key' => 'O tag <code><ref></code> con nombre "$1" definiu en <code><references></code> no s\'emplega en o texto precedente.',
+	'cite_error_references_no_key' => 'O tag <code><ref></code> definiu en <code><references></code> no tiene garra atributo de nombre.',
+	'cite_error_empty_references_define' => 'O tag <code><ref></code> definiu en <code><references></code> con nombre "$1" no tiene garra conteniu.',
 );
 
 /** Arabic (العربية)
+ * @author Aiman titi
  * @author Meno25
+ * @author OsamaK
  */
 $messages['ar'] = array(
-	'cite_desc' => 'يضيف وسوم <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهادات',
+	'cite-desc' => 'يضيف وسوم <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهادات',
 	'cite_croak' => 'الاستشهاد مات؛ $1: $2',
 	'cite_error_key_str_invalid' => 'خطأ داخلي؛
 $str و/أو $key غير صحيح.
@@ -152,8 +240,6 @@
 أسماء غير صحيحة، على سبيل المثال كثيرة جدا',
 	'cite_error_ref_no_input' => 'وسم <code><ref></code> غير صحيح؛
 المراجع غير ذات الاسم يجب أن تمتلك محتوى',
-	'cite_error_references_invalid_input' => 'وسم <code><references></code> غير صحيح؛
-لا مدخل مسموح به. استخدم <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'وسم <code><references></code> غير صحيح؛
 لا محددات مسموح بها.
 استخدم <code><references /></code>',
@@ -162,26 +248,41 @@
 استخدم <code><references /></code>، أو <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'نفدت علامات الوصلات الراجعة المخصصة.
 عرف المزيد في رسالة <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'تم الإنتهاء من تسمية الارتباطات المخصصة لمجموعة "$1".
+
+للحصول على تعريف أكثر أنظر هذه <nowiki>[[MediaWiki:$2]]</nowiki> الرسالة.',
 	'cite_error_references_no_text' => 'وسم <code><ref></code> غير صحيح؛
 لا نص تم توفيره للمراجع المسماة <code>$1</code>',
 	'cite_error_included_ref' => 'إغلاق </ref> مفقود لوسم <ref>',
 	'cite_error_refs_without_references' => 'وسم <code><ref></code> موجود، لكن لا وسم <code><references/></code> تم العثور عليه',
 	'cite_error_group_refs_without_references' => 'وسوم <code><ref></code> موجودة لمجموعة اسمها "$1"، لكن لا وسم <code><references group="$1"/></code> مماثل تم العثور عليه',
+	'cite_error_references_group_mismatch' => 'الوسم <code><ref></code> في <code><references></code> فيه خاصية group متضاربة "$1".',
+	'cite_error_references_missing_group' => 'الوسم <code><ref></code> المُعرّف في <code><references></code> فيه خاصية group "$1" التي لا تظهر في النص السابق.',
+	'cite_error_references_missing_key' => 'الوسم <code><ref></code> ذو الاسم "$1" المُعرّف في <code><references></code> غير مستخدم في النص السابق.',
+	'cite_error_references_no_key' => 'الوسم <code><ref></code> المعرف في <code><references></code> ليس له خاصة اسم.',
+	'cite_error_empty_references_define' => 'الوسم <code><ref></code> المُعرّف في <code><references></code> بالاسم "$1" ليس له محتوى.',
 	'cite_references_link_many_format_backlink_labels' => 'أ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي أأ أب أت أث أج أح أخ أد أذ أر أز أس أش أص أض أط أظ أع أغ أف أق أك أل أم أن أه أو أي بأ بب بت بث بج بح بخ بد بذ بر بز بس بش بص بض بط بظ بع بغ بف بق بك بل بم بن به بو بي تأ تب تت تث تج تح تخ تد تذ تر تز تس تش تص تض تط تظ تع تغ تف تق تك تل تم تن ته تو تي ثأ ثب ثت ثث ثج ثح ثخ ثد ثذ ثر ثز ثس ثش ثص ثض ثط ثظ ثع ثغ ثف ثق ثك ثل ثم ثن ثه ثو ثي جأ جب جت جث جج جح جخ جد جذ جر جز جس جش جص جض جط جظ جع جغ جف جق جك جل جم جن جه جو جي حأ حب حت حث حج حح حخ حد حذ حر حز حس حش حص حض حط حظ حع حغ حف حق حك حل حم حن حه حو حي خأ خب خت خث خج خح خخ خد خذ خر خز خس خش خص خض خط خظ خع خغ خف خق خك خل خم خن خه خو خي دأ دب دت دث دج دح دخ دد دذ در دز دس دش دص دض دط دظ دع دغ دف دق دك دل دم دن ده دو دي ذأ ذب ذت ذث ذج ذح ذخ ذد ذذ ذر ذز ذس ذش ذص ذض ذط ذظ ذع ذغ ذف ذق ذك ذل ذم ذن ذه ذو ذي رأ رب رت رث رج رح رخ رد رذ رر رز رس رش رص رض رط رظ رع رغ رف رق رك رل رم رن ره رو ري زأ زب زت زث زج زح زخ زد زذ زر زز زس زش زص زض زط زظ زع زغ زف زق زك زل زم زن زه زو زي سأ سب ست سث سج سح سخ سد سذ سر سز سس سش سص سض سط سظ سع سغ سف سق سك سل سم سن سه سو سي شأ شب شت شث شج شح شخ شد شذ شر شز شس شش شص شض شط شظ شع شغ شف شق شك شل شم شن شه شو شي صأ صب صت صث صج صح صخ صد صذ صر صز صس صش صص صض صط صظ صع صغ صف صق صك صل صم صن صه صو صي ضأ ضب ضت ضث ضج ضح ضخ ضد ضذ ضر ضز ضس ضش ضص ضض ضط ضظ ضع ضغ ضف ضق ضك ضل ضم ضن ضه ضو ضي طأ طب طت طث طج طح طخ طد طذ طر طز طس طش طص طض طط طظ طع طغ طف طق طك طل طم طن طه طو طي ظأ ظب ظت ظث ظج ظح ظخ ظد ظذ ظر ظز ظس ظش ظص ظض ظط ظظ ظع ظغ ظف ظق ظك ظل ظم ظن ظه ظو ظي عأ عب عت عث عج عح عخ عد عذ عر عز عس عش عص عض عط عظ عع عغ عف عق عك عل عم عن عه عو عي غأ غب غت غث غج غح غخ غد غذ غر غز غس غش غص غض غط غظ غع غغ غف غق غك غل غم غن غه غو غي فأ فب فت فث فج فح فخ فد فذ فر فز فس فش فص فض فط فظ فع فغ فف فق فك فل فم فن فه فو في قأ قب قت قث قج قح قخ قد قذ قر قز قس قش قص قض قط قظ قع قغ قف قق قك قل قم قن قه قو قي كأ كب كت كث كج كح كخ كد كذ كر كز كس كش كص كض كط كظ كع كغ كف كق كك كل كم كن كه كو كي لأ لب لت لث لج لح لخ لد لذ لر لز لس لش لص لض لط لظ لع لغ لف لق لك لل لم لن له لو لي مأ مب مت مث مج مح مخ مد مذ مر مز مس مش مص مض مط مظ مع مغ مف مق مك مل مم من مه مو مي نأ نب نت نث نج نح نخ ند نذ نر نز نس نش نص نض نط نظ نع نغ نف نق نك نل نم نن نه نو ني هأ هب هت هث هج هح هخ هد هذ هر هز هس هش هص هض هط هظ هع هغ هف هق هك هل هم هن هه هو هي وأ وب وت وث وج وح وخ ود وذ ور وز وس وش وص وض وط وظ وع وغ وف وق وك ول وم ون وه وو وي يأ يب يت يث يج يح يخ يد يذ ير يز يس يش يص يض يط يظ يع يغ يف يق يك يل يم ين يه يو يي',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'cite_error' => 'ܦܘܕܐ ܒܡܣܗܕܢܘܬܐ: $1',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ghaly
  * @author Meno25
  * @author Ramsis II
  */
 $messages['arz'] = array(
-	'cite_desc' => 'بيضيف التاجز <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهاد',
+	'cite-desc' => 'بيضيف التاجز <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> ، للاستشهاد',
 	'cite_croak' => 'المرجع مات; $1: $2',
 	'cite_error_key_str_invalid' => 'غلط داخلى؛
 $str و/أو $key غلط.
 ده لازم مايحصلش ابدا.',
-	'cite_error_stack_invalid_input' => 'غلط داخلي؛
+	'cite_error_stack_invalid_input' => 'غلط داخلى؛
 مفتاح ستاك مش صحيح.
 ده لازم مايحصلش ابدا',
 	'cite_error' => 'المرجع غلط: $1',
@@ -193,8 +294,6 @@
 أسامى مش صحيحة، يعنى مثلا: كتير قوي',
 	'cite_error_ref_no_input' => 'تاج <code><ref></code> مش صحيح؛
 المراجع اللى من غير اسم لازم يكون ليها محتوى',
-	'cite_error_references_invalid_input' => 'مش صحيح <code><references></code> تاج;
-مافيش مدخل مسموح بيه. استخدم <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'مش صحيح <code><references></code> تاج;
 مافيش محددات مسموح بيها.
 استخدم <code><references /></code>',
@@ -213,35 +312,104 @@
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
-	'cite_desc' => 'Añade les etiquetes <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> pa les cites',
+	'cite-desc' => 'Añade les etiquetes <nowiki><ref[ name=id]></nowiki> y <nowiki><references/></nowiki> pa les cites',
 	'cite_croak' => 'Cita corrompida; $1: $2',
-	'cite_error_key_str_invalid' => 'Error internu; $str y/o $key non válidos.  Esto nun habría asoceder nunca.',
-	'cite_error_stack_invalid_input' => 'Error internu; clave de pila non válida. Esto nun habría asoceder nunca.',
+	'cite_error_key_str_invalid' => 'Error internu;
+$str y/o $key inválidos.
+Esto nun tendría d\'asoceder nunca.',
+	'cite_error_stack_invalid_input' => "Error internu;
+clave de pila inválida.
+Esto nun tendría d'asoceder nunca.",
 	'cite_error' => 'Error de cita: $1',
 	'cite_error_ref_numeric_key' => 'Etiqueta <code><ref></code> non válida; el nome nun pue ser un enteru simple, usa un títulu descriptivu',
 	'cite_error_ref_no_key' => 'Etiqueta <code><ref></code> non válida; les referencies ensin conteníu han tener un nome',
 	'cite_error_ref_too_many_keys' => 'Etiqueta <code><ref></code> non válida; nomes non válidos (p.ex. demasiaos)',
 	'cite_error_ref_no_input' => 'Etiqueta <code><ref></code> non válida; les referencies ensin nome han tener conteníu',
-	'cite_error_references_invalid_input' => 'Etiqueta <code><references></code> non válida; nun se permiten entraes, usa
-<code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Etiqueta <code><references></code> non válida; nun se permiten parámetros, usa <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Etiqueta <code><references></code> non válida;
 namái se permite\'l parámetru "group".
 Usa <code><references /></code>, o bien <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Etiquetes personalizaes agotaes.
 Defini más nel mensaxe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Nun queden más etiquetes d\'enllaz personalizáu pal grupu "$1".
+Define más nel mensaxe <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Etiqueta <code><ref></code> non válida; nun se conseñó testu pa les referencies nomaes <code>$1</code>',
 	'cite_error_included_ref' => 'Falta </ref> pa la etiqueta <ref>',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n ñ o p q r s t u v w x y z',
+	'cite_error_refs_without_references' => "Les etiquetes <code><ref></code> esisten, pero nun s'alcontró denguna etiqueta <code><references/></code>",
+	'cite_error_group_refs_without_references' => 'Les etiquetes <code><ref></code> esisten pa un grupu llamáu "$1", pero nun s\'alcontró la etiqueta <code><references group="$1"/></code> correspondiente',
+	'cite_error_references_group_mismatch' => 'La etiqueta <code><ref></code> en <code><references></code> tien un conflictu col atributu de grupu "$1".',
+	'cite_error_references_missing_group' => 'La etiqueta <code><ref></code> definida en <code><references></code> tien l\'atributu de grupu "$1" que nun apaez nel testu anterior.',
+	'cite_error_references_missing_key' => 'La etiqueta <code><ref></code> col nome "$1" definida en <code><references></code> nun s\'utiliza nel testu anterior.',
+	'cite_error_references_no_key' => 'La etiqueta <code><ref></code> definida en <code><references></code> nun tien dengún atributu de nome.',
+	'cite_error_empty_references_define' => 'La etiqueta <code><ref></code> definida en <code><references></code> col nome "$1" nun tien conteníu.',
 );
 
+/** Azerbaijani (Azərbaycanca)
+ * @author Vago
+ */
+$messages['az'] = array(
+	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_reference_link_prefix' => 'sitat_istinad-',
+	'cite_references_link_prefix' => 'sitat_qeyd-',
+	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
+	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
+	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
+	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
+	'cite_references_link_many_sep' => ' ',
+	'cite_references_link_many_and' => ' ',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'cite-desc' => 'Төшөрмәләр өсөн <nowiki><ref[ name=id]></nowiki> һәм <nowiki><references/></nowiki> билдәләрен өҫтәй',
+	'cite_croak' => 'Өҙөмтә юғалған; $1: $2',
+	'cite_error_key_str_invalid' => 'Эске хата;
+$str һәм/йәки $key дөрөҫ түгел.
+Был бер ҡасан да булырға тейеш түгел.',
+	'cite_error_stack_invalid_input' => 'Эске хата;
+Стек асҡысы дөрөҫ түгел.
+Был бер ҡасан да булырға тейеш түгел.',
+	'cite_error' => 'Өҙөмтә хатаһы: $1',
+	'cite_error_ref_numeric_key' => '<code><ref></code> билдәһе дөрөҫ түгел;
+исем бөтөн һан була алмай. Тасуирларлыҡ исем ҡулланығыҙ.',
+	'cite_error_ref_no_key' => '<code><ref></code> билдәһе дөрөҫ түгел;
+эстәлекһеҙ төшөрмәнең исеме булырға тейеш.',
+	'cite_error_ref_too_many_keys' => '<code><ref></code> билдәһе дөрөҫ түгел;
+исемдәр дөрөҫ түгел, бәлки, бигерәк күп',
+	'cite_error_ref_no_input' => '<code><ref></code> билдәһе дөрөҫ түгел;
+исемһеҙ төшөрмәнең эстәлеге булырға тейеш.',
+	'cite_error_references_invalid_parameters' => '<code><references></code> билдәһе дөрөҫ түгел;
+параметрҙар рөхсәт ителмәй.
+<code><references /></code> ҡулланығыҙ.',
+	'cite_error_references_invalid_parameters_group' => '<code><references></code> билдәһе дөрөҫ түгел;
+"group" параметры ғына рөхсәт ителә.
+<code><references /></code> йәки <code><references group="..." /></code> ҡулланығыҙ.',
+	'cite_error_references_no_backlink_label' => 'Кире ҡайтарыу һылтанмалары өсөн хәрефтәр етмәй.
+<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> система хәбәрен киңәйтергә кәрәк.',
+	'cite_error_no_link_label_group' => '"$1" төркөмө өсөн ҡулланыусы һылтанмалары етмәй.
+[[MediaWiki:$2]] система хәбәрендә күберәк билдәләгеҙ.',
+	'cite_error_references_no_text' => '<code><ref></code> билдәһе дөрөҫ түгел;
+<code>$1</code> төшөрмәләре өсөн текст юҡ',
+	'cite_error_included_ref' => '<ref> билдәһе өсөн </ref> ябыу билдәһе юҡ',
+	'cite_error_refs_without_references' => '<code><ref></code> билдәһе бар, әммә <code><references/></code> билдәһе юҡ',
+	'cite_error_group_refs_without_references' => '"$1" төркөмө өсөн <code><ref></code> билдәһе бар, әммә <code><references group="$1"/></code> билдәһе юҡ',
+	'cite_error_references_group_mismatch' => '<code><references></code> билдәһенең <code><ref></code> билдәһендә "$1" төркөмө атрибуты ҡаршылыҡтар тыуҙыра.',
+	'cite_error_references_missing_group' => '<code><references></code> билдәһенең <code><ref></code> билдәһендә "$1" төркөмө атрибуты үрҙәге текста осрамай.',
+	'cite_error_references_missing_key' => '<code><references></code> билдәһенең "$1" исемле <code><ref></code> билдәһе үрҙәге текста ҡулланылмай.',
+	'cite_error_references_no_key' => '<code><references></code> билдәһенең <code><ref></code> билдәһендә исем атрибуты юҡ.',
+	'cite_error_empty_references_define' => '<code><references></code> билдәһенең "$1" исемле <code><ref></code> билдәһенең эстәлеге юҡ.',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
 $messages['bcc'] = array(
-	'cite_desc' => 'اضفافه کنت<nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> تگ, په ارجاع دهگ',
+	'cite-desc' => 'اضفافه کنت<nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> تگ, په ارجاع دهگ',
 	'cite_croak' => 'ذکر منبع چه بن رپت; $1: $2',
 	'cite_error_key_str_invalid' => 'حطا درونی ;
 نامعتبرین $str و/یا  $key.
@@ -258,8 +426,6 @@
 نامعتبر نامان, په داب بازین',
 	'cite_error_ref_no_input' => 'نامعتبر <code><ref></code> تگ;
 مراجع بی نام بایدن محتوا داشته بنت',
-	'cite_error_references_invalid_input' => 'نامعتبر <code><references></code>تگ;
-هچ ورودی اجازت نهنت. استفاده کن  <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'نامعتبر <code><references></code>تگ;
 هچ پارامتری مجاز نهنت.
 استفاده کن چه <code><references /></code>',
@@ -277,13 +443,13 @@
 	'cite_references_link_many_and' => 'و',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
  */
 $messages['be-tarask'] = array(
-	'cite_desc' => 'Дадае тэгі <nowiki><ref[ name=id]></nowiki> і <nowiki><references/></nowiki> для зносак',
+	'cite-desc' => 'Дадае тэгі <nowiki><ref[ name=id]></nowiki> і <nowiki><references/></nowiki> для зносак',
 	'cite_croak' => 'Няўдалае цытаваньне; $1: $2',
 	'cite_error_key_str_invalid' => 'Унутраная памылка;
 няслушны $str і/ці $key.
@@ -300,8 +466,6 @@
 няслушныя назвы, ці іх было зашмат',
 	'cite_error_ref_no_input' => 'Няслушны тэг <code><ref></code>;
 крыніцы бяз назваў мусяць мець зьмест',
-	'cite_error_references_invalid_input' => 'Няслушны тэг <code><references></code>;
-вывад не дазволены. Карыстайцеся <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Няслушны тэг <code><references></code>;
 недазволеныя парамэтры.
 Карыстайцеся <code><references /></code>',
@@ -310,11 +474,18 @@
 Карыстайцеся <code><references /></code>, ці <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Не хапае сымбаляў для адваротных спасылак.
 Неабходна пашырыць сыстэмнае паведамленьне <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Скончыліся нестандартныя меткі спасылак для групы «$1».
+Вызначыце болей у паведамленьні <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Няслушны тэг <code><ref></code>;
 няма тэксту ў назьве зносак <code>$1</code>',
 	'cite_error_included_ref' => 'Няма закрываючага тэга  </ref> пасьля адкрытага тэга <ref>',
 	'cite_error_refs_without_references' => 'Тэг <code><ref></code> існуе, але ня знойдзена тэга <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Тэг <code><ref></code> існуе для групы «$1», але адпаведнага тэга <code><references group="$1"/></code> ня знойдзена',
+	'cite_error_references_group_mismatch' => 'Тэг <code><ref></code> у <code><references></code> утрымлівае канфліктуючы атрыбут групы «$1».',
+	'cite_error_references_missing_group' => 'Тэг <code><ref></code> вызначаны ў <code><references></code> утрымлівае атрыбут групы «$1», які раней не выкарыстоўваўся ў тэксьце.',
+	'cite_error_references_missing_key' => 'Тэг <code><ref></code> з назвай «$1» вызначаны ў <code><references></code> не выкарыстоўваўся ў папярэднім тэксьце.',
+	'cite_error_references_no_key' => 'Тэг <code><ref></code> вызначаны ў <code><references></code> ня мае атрыбуту назвы.',
+	'cite_error_empty_references_define' => 'Тэг <code><ref></code> вызначаны ў <code><references></code> з назвай «$1» ня мае зьместу.',
 );
 
 /** Bulgarian (Български)
@@ -323,7 +494,7 @@
  * @author Spiritia
  */
 $messages['bg'] = array(
-	'cite_desc' => 'Добавя етикетите <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki>, подходящи за цитиране',
+	'cite-desc' => 'Добавя етикетите <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki>, подходящи за цитиране',
 	'cite_croak' => 'Цитиращата система се срути; $1: $2',
 	'cite_error_key_str_invalid' => 'Вътрешна грешка: невалиден параметър $str и/или $key.  Това не би трябвало да се случва никога.',
 	'cite_error_stack_invalid_input' => "'''Вътрешна грешка:''' невалиден ключ на стека. Това не би трябвало да се случва никога.",
@@ -332,8 +503,6 @@
 	'cite_error_ref_no_key' => "'''Грешка в етикет <code><ref></code>:''' етикетите без съдържание трябва да имат име",
 	'cite_error_ref_too_many_keys' => "'''Грешка в етикет <code><ref></code>:''' грешка в името, например повече от едно име на етикета",
 	'cite_error_ref_no_input' => "'''Грешка в етикет <code><ref></code>:''' етикетите без име трябва да имат съдържание",
-	'cite_error_references_invalid_input' => "'''Грешка в етикет <code><references></code>:''' не е разрешен вход, използва се така: 
-<code><references /></code>",
 	'cite_error_references_invalid_parameters' => "'''Грешка в етикет <code><references></code>:''' използва се без параметри, така: <code><references /></code>",
 	'cite_error_references_invalid_parameters_group' => 'Невалиден етикет <code><references></code>;
 позволен е само параметър "group".
@@ -351,7 +520,7 @@
  * @author Zaheen
  */
 $messages['bn'] = array(
-	'cite_desc' => 'উদ্ধৃতির জন্য <nowiki><ref[ name=id]></nowiki> এবং <nowiki><references/></nowiki> ট্যাগসমূহ যোগ করুন',
+	'cite-desc' => 'উদ্ধৃতির জন্য <nowiki><ref[ name=id]></nowiki> এবং <nowiki><references/></nowiki> ট্যাগসমূহ যোগ করুন',
 	'cite_croak' => 'উদ্ধৃতি ক্রোক করা হয়েছে; $1: $2',
 	'cite_error_key_str_invalid' => 'আভ্যন্তরীন ত্রুটি; অবৈধ $str এবং/অথবা $key। এটা কখনই ঘটা উচিত নয়।',
 	'cite_error_stack_invalid_input' => 'আভ্যন্তরীন ত্রুটি; অবৈধ স্ট্যাক কি। এটা কখনই ঘটা উচিত নয়।',
@@ -360,7 +529,6 @@
 	'cite_error_ref_no_key' => 'অবৈধ <code><ref></code> ট্যাগ; বিষয়বস্তুহীন refসমূহের অবশ্যই নাম থাকতে হবে',
 	'cite_error_ref_too_many_keys' => 'অবৈধ <code><ref></code> ট্যাগ; অবৈধ নাম (যেমন- সংখ্যাতিরিক্ত)',
 	'cite_error_ref_no_input' => 'অবৈধ <code><ref></code> ট্যাগ; নামবিহীন refসমূহের অবশ্যই বিষয়বস্তু থাকতে হবে',
-	'cite_error_references_invalid_input' => 'অবৈধ <code><ref></code> ট্যাগ; কোন ইনপুট অনুমোদিত নয়, <code><references /></code> ব্যবহার করুন',
 	'cite_error_references_invalid_parameters' => 'অবৈধ <code><ref></code> ট্যাগ; কোন প্যারামিটার অনুমোদিত নয়, <code><references /></code> ব্যবহার করুন',
 	'cite_error_references_no_backlink_label' => 'পছন্দমাফিক ব্যাকলিংক লেবেলের সংখ্যা ফুরিয়ে গেছে, <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> বার্তায় আরও সংজ্ঞায়িত করুন',
 	'cite_error_references_no_text' => 'অবৈধ <code><ref></code> ট্যাগ; <code>$1</code> নামের refগুলির জন্য কোন টেক্সট প্রদান করা হয়নি',
@@ -370,10 +538,10 @@
  * @author Fulup
  */
 $messages['br'] = array(
-	'cite_desc' => 'Ouzhpennañ a ra ar balizennoù <nowiki><ref[ name=id]></nowiki> ha <nowiki><references/></nowiki>, evit an arroudoù.',
+	'cite-desc' => 'Ouzhpennañ a ra ar balizennoù <nowiki><ref[ name=id]></nowiki> ha <nowiki><references/></nowiki>, evit an arroudoù.',
 	'cite_croak' => 'Arroud breinet ; $1 : $2',
 	'cite_error_key_str_invalid' => 'Fazi diabarzh ;
-$str ha/pe alc\'hwez$ direizh.
+$str ha/pe key$ direizh.
 Ne zlefe ket c\'hoarvezout gwezh ebet.',
 	'cite_error_stack_invalid_input' => "Fazi diabarzh ;
 alc'hwez pil direizh.
@@ -387,8 +555,6 @@
 anv direizh, niver re uhel da skouer',
 	'cite_error_ref_no_input' => "Fazi implijout ar valizenn <code><ref></code> ;
 ret eo d'an daveennoù hep anv bezañ danvez enno",
-	'cite_error_references_invalid_input' => "Fazi implijout ar valizenn <code><ref></code> ;
-n'eo aotreet moned ebet. Grit gant ar valizenn <code><references /></code>",
 	'cite_error_references_invalid_parameters' => "Fazi implijout ar valizenn <code><ref></code> ;
 n'eo aotreet arventenn ebet.
 Grit gant ar valizenn <code><references /></code>",
@@ -397,15 +563,26 @@
 Grit gant ar valizenn <code><references /></code>, pe <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => "N'eus ket a dikedennoù personelaet mui.
 Spisait un niver brasoc'h anezho er gemennadenn <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+	'cite_error_no_link_label_group' => 'Tikedenn liamm bersonelaet ebet ken evit ar strollad "$1".
+Termenit re all e kemennadenn <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Balizenn <code><ref></code> direizh ;
 ne oa bet lakaet tamm testenn ebet evit ar valizenn <code>$1</code>',
+	'cite_error_included_ref' => 'Kod digeriñ </ref> hep kod serriñ <ref>',
+	'cite_error_refs_without_references' => "<code><ref></code> balizennoù zo, met n'eus bet kavet balizenn <code><references/></code> ebet",
+	'cite_error_group_refs_without_references' => '<code><ref></code> balizennoù zo evit ur strollad anvet "$1", met n\'eus bet kavet balizenn <code><references group="$1"/></code> ebet o klotañ',
+	'cite_error_references_group_mismatch' => 'Gant ar valizenn <code><ref></code> e <code><references></code> emañ an dezverk strollad trubuilhus "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code> ar valizenn termenet e <code><references></code> eo dezhi un dezverk strollad "$1" na gaver ket en destenn a-raok.',
+	'cite_error_references_missing_key' => 'N\'eo ket bet implijet en destenn gent ar <code><ref></code> valizenn hec\'h anv "$1" termenet e <code><references></code>.',
+	'cite_error_references_no_key' => "<code><ref></code> ar valizenn termenet e <code><references></code> n'he deus dezverk anv ebet.",
+	'cite_error_empty_references_define' => '<code><ref></code> ar valiezenn termenet e <code><references></code> dezhi an anv a "$1" zo goullo.',
 );
 
 /** Bosnian (Bosanski)
  * @author CERminator
+ * @author Reedy
  */
 $messages['bs'] = array(
-	'cite_desc' => 'Dodaje oznake <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> za citiranje',
+	'cite-desc' => 'Dodaje oznake <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> za citiranje',
 	'cite_croak' => 'Citiranje neuspješno; $1: $2',
 	'cite_error_key_str_invalid' => 'Unutrašnja greška;
 nevaljan $str i/ili $key.
@@ -422,30 +599,36 @@
 nevaljani nazivi, npr. možda ih je previše',
 	'cite_error_ref_no_input' => 'Nevaljana oznaka <code><ref></code>;
 reference bez naziva moraju imati sadržaj',
-	'cite_error_references_invalid_input' => 'Nevaljana oznaka <code><references></code>;
-nije dozvoljen unos. Koristite <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Nevaljana oznaka <code><references></code>;
 nisu dozvoljeni parametri.
 Koristite <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'Nevaljana oznaka <code><references></code;
+	'cite_error_references_invalid_parameters_group' => 'Nevaljana oznaka <code><references></code>
 dozvoljen je samo parametar "group".
 Koristite <code><references /></code> ili <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Ponestalo je prilagođenih naslova backlinkova.
 Definirajte ih još u <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> poruci',
+	'cite_error_no_link_label_group' => 'Nedovoljan broj proizvoljnih naslova linkova za grupu "$1".
+Definišite više putem poruke <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Nevaljana oznaka <code><ref></code>;
 nije naveden tekst za reference sa imenom <code>$1</code>',
 	'cite_error_included_ref' => 'Nedostaje oznaka za zatvaranje </ref> nakon <ref>',
 	'cite_error_refs_without_references' => '<code><ref></code> oznake postoje, ali oznaka <code><references/></code> nije pronađena',
 	'cite_error_group_refs_without_references' => '<code><ref></code> oznake postoje za grupu pod imenom "$1", ali nije pronađena pripadajuća oznaka <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => '<code><ref></code> oznaka u <code><references></code> ima atribut grupe konflikta "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code> oznaka definisana u <code><references></code> ima atribut grupe "$1" koji se ne pojavljuje u ranijem tekstu.',
+	'cite_error_references_missing_key' => '<code><ref></code> oznaka sa imenom "$1" definisana u <code><references></code> nije korištena u ranijem tekstu.',
+	'cite_error_references_no_key' => '<code><ref></code> oznaka definisana u <code><references></code> nema imenski atribut.',
+	'cite_error_empty_references_define' => '<code><ref></code> oznaka definisana u <code><references></code> sa imenom "$1" nema nikakvog sadržaja.',
 );
 
 /** Catalan (Català)
+ * @author Davidpar
  * @author Jordi Roqué
  * @author SMP
  * @author Vriullop
  */
 $messages['ca'] = array(
-	'cite_desc' => 'Afegeix les etiquetes <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki>, per a cites',
+	'cite-desc' => 'Afegeix les etiquetes <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki>, per a cites',
 	'cite_croak' => 'Cita corrompuda; $1: $2',
 	'cite_error_key_str_invalid' => 'Error intern;
 els valors $str i/o $key no valen.
@@ -462,8 +645,6 @@
 empreu l\'estructura <code><ref name="Nom"></code>',
 	'cite_error_ref_no_input' => 'Etiqueta <code><ref></code> no vàlida; 
 les referències sense nom han de tenir contingut',
-	'cite_error_references_invalid_input' => 'Etiqueta <code><references></code> no vàlida;
-no es permet afegir text. Useu <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Etiqueta <code><references></code> no vàlida; 
 no es permeten paràmetres. 
 Useu <code><references /></code>',
@@ -472,11 +653,18 @@
 Useu <code><references /></code>, o <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => "Hi ha massa etiquetes personalitzades.
 Se'n poden definir més a <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+	'cite_error_no_link_label_group' => 'No hi ha etiquetes vincle personalitzat per al grup "$1".
+Defineix més al missatge <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => "Etiqueta <code><ref></code> no vàlida;
 no s'ha proporcionat text per les refs amb l'etiqueta <code>$1</code>",
 	'cite_error_included_ref' => 'Es tanca el </ref> que manca per una etiqueta <ref>',
 	'cite_error_refs_without_references' => 'Hi ha etiquetes <code><ref></code> però no cap etiqueta <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Existeixen etiquetes <code><ref></code> pel grup «$1» però no l\'etiqueta <code><references group="$1"/></code> corresponent',
+	'cite_error_references_group_mismatch' => 'L\'etiqueta <code><ref></code> a <code><references></code> té un conflicte amb l\'atribut de grup "$1".',
+	'cite_error_references_missing_group' => 'L\'etiqueta <code><ref></code> definida a <code><references></code> té l\'atribut de grup "$1" que no apareix en el text anterior.',
+	'cite_error_references_missing_key' => 'L\'etiqueta <code><ref></code> amb el nom "$1" definida a <code><references></code> no s\'utilitza en el text anterior.',
+	'cite_error_references_no_key' => "L'etiqueta <code><ref></code> definida a <code><references></code> no té cap atribut de nom.",
+	'cite_error_empty_references_define' => 'L\'etiqueta <code><ref></code> definida a <code><references></code> amb el nom "$1" no té contingut.',
 );
 
 /** Czech (Česky)
@@ -484,9 +672,10 @@
  * @author Li-sung
  * @author Matěj Grabovský
  * @author Mormegil
+ * @author Sp5uhe
  */
 $messages['cs'] = array(
-	'cite_desc' => 'Přidává značky <nowiki><ref[ name="id"]></nowiki> a <nowiki><references /></nowiki> na označení citací',
+	'cite-desc' => 'Přidává značky <nowiki><ref[ name="id"]></nowiki> a <nowiki><references /></nowiki> na označení citací',
 	'cite_croak' => 'Nefunkční citace; $1: $2',
 	'cite_error_key_str_invalid' => 'Vnitřní chyba; neplatný $str nebo $key. Toto by nikdy nemělo nastat.',
 	'cite_error_stack_invalid_input' => 'Vnitřní chyba; neplatný klíč zásobníku',
@@ -495,30 +684,37 @@
 	'cite_error_ref_no_key' => 'Chyba v tagu <code><ref></code>; prázdné citace musí obsahovat název',
 	'cite_error_ref_too_many_keys' => 'Chyba v tagu <code><ref></code>; chybné názvy, např. je jich příliš mnoho',
 	'cite_error_ref_no_input' => 'Chyba v tagu <code><ref></code>; citace bez názvu musí mít vlastní obsah',
-	'cite_error_references_invalid_input' => 'Chyba v tagu <code><references></code>; zde není dovolen vstup, použijte <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Chyba v tagu <code><references></code>;  zde není dovolen parametr, použijte <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Neplatná značka <tt><references></tt>;
 je povolen pouze parametr „group“.
 Použijte <tt><references /></tt> nebo <tt><references group="..." /></tt>.',
 	'cite_error_references_no_backlink_label' => 'Došla označení zpětných odkazů, přidejte jich několik do zprávy <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Došly definované značky pro skupinu „$1“.
+Zvyšte jejich počet ve zprávě <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Chyba v tagu <code><ref></code>; citaci označené <code>$1</code> není určen žádný text',
 	'cite_error_included_ref' => 'Chybí ukončovací </ref> k tagu <ref>',
 	'cite_error_refs_without_references' => 'Nalezena značka <code><ref></code> bez příslušné značky <code><references/></code>.',
 	'cite_error_group_refs_without_references' => 'Nalezena značka <code><ref></code> pro skupinu „$1“ bez příslušné značky <code><references group="$1"/></code>.',
+	'cite_error_references_group_mismatch' => 'Značka <code><ref></code> uvnitř <code><references></code> má definovánu jinou skupinu „$1“.',
+	'cite_error_references_missing_group' => 'Značka <code><ref></code> uvnitř <code><references></code> používá skupinu „$1“, která se v předchozím textu neobjevuje.',
+	'cite_error_references_missing_key' => 'Na <code><ref></code> se jménem „$1“ definovaný uvnitř <code><references></code> nejsou v předchozím textu žádné odkazy.',
+	'cite_error_references_no_key' => 'U značky <code><ref></code> definované uvnitř <code><references></code> chybí atribut <code>name</code>.',
+	'cite_error_empty_references_define' => 'U značky <code><ref></code> s názvem „$1“ definované uvnitř <code><references></code> chybí obsah.',
 );
 
 /** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
  * @author ОйЛ
  */
 $messages['cu'] = array(
-	'cite_references_link_many_format_backlink_labels' => 'а б в г д є ж ꙃ ꙁ и і к л м н о п р с т ф х ѡ ц ч ш щ ъ ꙑ ь ѣ ю ꙗ ѥ ѧ ѫ ѩ ѭ ѯ ѱ ѳ ѵ ѷ',
+	'cite_references_link_many_format_backlink_labels' => 'а б в г д є ж ꙃ ꙁ и і к л м н о п р с т ф х ѡ ц ч ш щ ъ ꙑ ь ѣ ю ꙗ ѥ ѧ ѫ ѩ ѭ ѯ ѱ ѳ ѵ ѷ аа аб ав аг ад ає аж аꙁ аꙃ аи аі ак ал ам ан ао ап ар ас ат аф ах аѡ ац ач аш ащ аъ аꙑ аь аѣ аю аꙗ аѥ аѧ аѫ аѩ аѭ аѯ аѱ аѳ аѵ аѷ',
 );
 
 /** Welsh (Cymraeg)
  * @author Lloffiwr
+ * @author Xxglennxx
  */
 $messages['cy'] = array(
-	'cite_desc' => 'Yn ychwanegu tagiau <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki>, ar gyfer cyfeiriadau',
+	'cite-desc' => 'Yn ychwanegu tagiau <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki>, ar gyfer cyfeiriadau',
 	'cite_croak' => 'Cyfeirio at farwolaeth; $1: $2',
 	'cite_error_key_str_invalid' => 'Gwall mewnol;
 $str a/neu $key annilys.
@@ -535,8 +731,6 @@
 enwau annilys; e.e. gormod ohonynt',
 	'cite_error_ref_no_input' => 'Tag <code><ref></code> annilys;
 rhaid i dagiau ref heb enw iddynt gynnwys rhywbeth',
-	'cite_error_references_invalid_input' => 'Tag <code><references></code> annilys;
-ni chaniateir mewnbwn. Defnyddiwch <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Tag <code><references></code> annilys;
 ni chaniateir paramedrau.
 Defnyddiwch <code><references /></code>',
@@ -545,19 +739,28 @@
 Defnyddiwch <code><references /></code>, neu <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Dim rhagor o labeli ôl-gyswllt ar gael.
 Diffiniwch ragor ohonynt yn y neges <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Wedi rhedeg allan o labeli dolenni unigryw ar gyfer y grŵp "$1".
+Gallwch ddiffinio rhagor ohonynt yn y neges <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => "Tag <code><ref></code> annilys;
 ni osodwyd unrhyw destun ar gyfer y 'ref' <code>$1</code>",
 	'cite_error_included_ref' => '</ref> clo yn eisiau ar gyfer y tag <ref>',
 	'cite_error_refs_without_references' => 'Mae tagiau <code><ref></code> yn bresennol, ond dim tag <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Mae tagiau <code><ref></code> yn bresennol ar gyfer y grwp "$1", ond ni chafwyd tag <code><references/></code>',
+	'cite_error_references_group_mismatch' => 'Mae gan y tag <code><ref></code> oddi mewn i <code><references></code> briodoledd grŵp anghyson "$1".',
+	'cite_error_references_missing_group' => 'Mae gan y tag <code><ref></code> a ddiffinir yn <code><references></code> briodoledd grŵp "$1" nag ydyw\'n cael ei ddefnyddio yn y testun cynt.',
+	'cite_error_references_missing_key' => 'Ni ddefnyddir y tag <code><ref></code> o\'r enw "$1", a ddiffinir yn <code><references></code>, yn y testun blaenorol.',
+	'cite_error_references_no_key' => 'Nid oes dim priodoledd o enw gan y tag <code><ref></code> a ddiffinir yn <code><references></code>',
+	'cite_error_empty_references_define' => 'Does dim byd yn y tag <code><ref></code> a\'r enw "$1" arno, sydd wedi ei ddiffinio oddi mewn i dagiau <code><references></code>.',
 );
 
 /** Danish (Dansk)
  * @author Byrial
+ * @author Emilkris33
  * @author Morten LJ
+ * @author Peter Alberti
  */
 $messages['da'] = array(
-	'cite_desc' => 'Tilføjer <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-elementer til referencer.',
+	'cite-desc' => 'Tilføjer <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-elementer til referencer.',
 	'cite_croak' => 'Fejl i fodnotesystemet; $1: $2',
 	'cite_error_key_str_invalid' => 'Intern fejl: Ugyldig $str og/eller $key. Dette burde aldrig forekomme.',
 	'cite_error_stack_invalid_input' => 'Intern fejl: Ugyldig staknøgle. Dette burde aldrig forekomme.',
@@ -566,51 +769,119 @@
 	'cite_error_ref_no_key' => 'Ugyldigt <code><ref></code>-tag: Et <code><ref></code>-tag uden indhold skal have et navn',
 	'cite_error_ref_too_many_keys' => 'Ugyldigt <code><ref></code>-tag: Ugyldige navne, fx for mange',
 	'cite_error_ref_no_input' => 'Ugyldigt <code><ref></code>-tag: Et <code><ref></code>-tag uden navn skal have indhold',
-	'cite_error_references_invalid_input' => 'Ugyldigt <code><references></code>-tag: Indhold ikke tilladt, brug i stedet <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'Ugyldig <code><references></code>-tag: Parametre er ikke tilladt, brug i stedet <code><references /></code>',
-	'cite_error_references_no_backlink_label' => 'For mange <code><ref></code>-tags har det samme "name", tillad flere i beskeden <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>',
+	'cite_error_references_invalid_parameters' => 'Ugyldigt <code><references></code>-tag: Parametre er ikke tilladt, brug i stedet <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Ugyldigt <code><references></code>-tag; den eneste tilladte parameter er "group".
+Brug <code><references /></code> eller <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Løb tør for backlink-etiketter.
+Definer flere i beskeden <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => 'Løb tør for tilpassede linketiketter til gruppen "$1".
+Definer flere i beskeden <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Ugyldigt <code><ref></code>-tag: Der er ikke specificeret nogen fodnotetekst til navnet <code>$1</code>',
+	'cite_error_included_ref' => 'Afsluttende </ref> mangler for <ref>-tag',
+	'cite_error_refs_without_references' => '<code><ref></code>-tags findes, men ingen <code><references/></code>-tag blev fundet',
+	'cite_error_group_refs_without_references' => '<code><ref></code>-tags eksisterer for en gruppe betegnet "$1", men der blev ikke fundet et tilsvarende <code><references group="$1"/></code>-tag',
+	'cite_error_references_group_mismatch' => '<code><ref></code>-tag inden i <code><references></code> har modstridende gruppe-attribut "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code>-tag defineret inden i <code><references></code> har gruppe-attributten "$1", som ikke anvendes i den ovenstående tekst.',
+	'cite_error_references_missing_key' => '<code><ref></code>-tag med navn "$1" defineret inden i <code><references></code> anvendes ikke i den ovenstående tekst.',
+	'cite_error_references_no_key' => '<code><ref></code>-tag defineret inden i <code><references></code> har ikke en navne-attribut.',
+	'cite_error_empty_references_define' => '<code><ref></code>-tag defineret inden i <code><references></code> med navnet "$1" har ikke noget indhold.',
 );
 
 /** German (Deutsch)
+ * @author Kghbln
  * @author Metalhead64
  * @author Raimond Spekking
+ * @author The Evil IP address
  * @author Umherirrender
  */
 $messages['de'] = array(
-	'cite_desc' => 'Ergänzt für Quellennachweise die <tt><nowiki><ref[ name=id]></nowiki></tt> und <tt><nowiki><references /></nowiki></tt>-Tags',
-	'cite_croak' => 'Fehler im Referenz-System. $1: $2',
-	'cite_error_key_str_invalid' => 'Interner Fehler: ungültiger $str und/oder $key. Dies sollte eigentlich gar nicht passieren können.',
-	'cite_error_stack_invalid_input' => 'Interner Fehler: ungültiger „name“-stack. Dies sollte eigentlich gar nicht passieren können.',
-	'cite_error' => 'Referenz-Fehler: $1',
+	'cite-desc' => 'Ergänzt die Tags <code><nowiki><ref[ name=id]></nowiki></code> und <code><nowiki><references /></nowiki></code> für die Referenzierung von Wikiseiten',
+	'cite_croak' => 'Fehler im Referenzsystem. $1: $2',
+	'cite_error_key_str_invalid' => 'Interner Fehler: ungültiger $str und/oder $key. Dies sollte nicht passieren.',
+	'cite_error_stack_invalid_input' => 'Interner Fehler: ungültiger Schlüssel für den Stack. Dies sollte nicht passieren.',
+	'cite_error' => 'Referenzfehler: $1',
 	'cite_error_ref_numeric_key' => 'Ungültige <tt><ref></tt>-Verwendung: „name“ darf kein reiner Zahlenwert sein, benutze einen beschreibenden Namen.',
 	'cite_error_ref_no_key' => 'Ungültige <tt><ref></tt>-Verwendung: „ref“ ohne Inhalt muss einen Namen haben.',
 	'cite_error_ref_too_many_keys' => 'Ungültige <tt><ref></tt>-Verwendung: „name“ ist ungültig oder zu lang.',
 	'cite_error_ref_no_input' => 'Ungültige <tt><ref></tt>-Verwendung: „ref“ ohne Namen muss einen Inhalt haben.',
-	'cite_error_references_invalid_input' => 'Ungültige <tt><references></tt>-Verwendung: Es ist kein zusätzlicher Text erlaubt, verwende ausschließlich <tt><nowiki><references /></nowiki></tt>.',
 	'cite_error_references_invalid_parameters' => 'Ungültige <tt><references></tt>-Verwendung: Es sind keine zusätzlichen Parameter erlaubt, verwende ausschließlich <tt><nowiki><references /></nowiki></tt>.',
 	'cite_error_references_invalid_parameters_group' => 'Ungültige <code><references></code>-Verwendung: Nur der Parameter „group“ ist erlaubt, verwende <tt><references /></tt> oder <tt><references group="…" /></tt>',
-	'cite_error_references_no_backlink_label' => 'Eine Referenz der Form <tt><ref name="…"/></tt> wird öfter benutzt als Buchstaben vorhanden sind. Ein Administrator muss <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> um weitere Buchstaben/Zeichen ergänzen.',
+	'cite_error_references_no_backlink_label' => 'Eine Referenz der Form <tt><ref name="…" /></tt> wird öfter benutzt als Buchstaben vorhanden sind. Ein Administrator muss <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> um weitere Buchstaben/Zeichen ergänzen.',
+	'cite_error_no_link_label_group' => 'Es sind für Gruppe „$1“ keine benutzerdefinierte Linkbezeichnungen mehr verfügbar.
+Definiere weitere unter Systemtext <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Ungültiger <tt><ref></tt>-Tag; es wurde kein Text für das Ref mit dem Namen <tt>$1</tt> angegeben.',
 	'cite_error_included_ref' => 'Es fehlt ein schließendes </ref>',
-	'cite_error_refs_without_references' => '<code><ref></code>-Tags existieren, jedoch wurde kein <code><references/></code>-Tag gefunden.',
-	'cite_error_group_refs_without_references' => '<code><ref></code>-Tags existieren für die Gruppe „$1“, jedoch wurde kein dazugehöriges <code><references group=„$1“/></code>-Tag gefunden',
+	'cite_error_refs_without_references' => '<code><ref></code>-Tags existieren, jedoch wurde kein <code><references /></code>-Tag gefunden.',
+	'cite_error_group_refs_without_references' => '<code><ref></code>-Tags existieren für die Gruppe „$1“, jedoch wurde kein dazugehöriges <code><references group="$1" /></code>-Tag gefunden',
+	'cite_error_references_group_mismatch' => 'Das <code><ref></code>-Tag in <code><references></code> hat das Konfliktgruppenattribut „$1“.',
+	'cite_error_references_missing_group' => 'Das in <code><references></code> definierte <code><ref></code>-Tag hat das Gruppenattribut „$1“, das nicht im vorausgehenden Text vorkommt.',
+	'cite_error_references_missing_key' => 'Das in <code><references></code> definierte <code><ref></code>-Tag mit dem Namen „$1“ wird im vorausgehenden Text nicht verwendet.',
+	'cite_error_references_no_key' => 'Das in <code><references></code> definierte <code><ref></code>-Tag hat kein Namensattribut.',
+	'cite_error_empty_references_define' => 'Das in <code><references></code> definierte <code><ref></code>-Tag mit dem Namen „$1“ weist keinen Inhalt auf.',
 );
 
-/** German (formal address) (Deutsch (Sie-Form))
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Imre
+ * @author Kghbln
  * @author Raimond Spekking
  */
 $messages['de-formal'] = array(
 	'cite_error_ref_numeric_key' => 'Ungültige <tt><ref></tt>-Verwendung: „name“ darf kein reiner Zahlenwert sein, benutzen Sie einen beschreibenden Namen.',
-	'cite_error_references_invalid_input' => 'Ungültige <tt><references></tt>-Verwendung: Es ist kein zusätzlicher Text erlaubt, verwenden Sie ausschließlich <tt><nowiki><references /></nowiki></tt>.',
 	'cite_error_references_invalid_parameters' => 'Ungültige <tt><references></tt>-Verwendung: Es sind keine zusätzlichen Parameter erlaubt, verwenden Sie ausschließlich <tt><nowiki><references /></nowiki></tt>.',
+	'cite_error_references_invalid_parameters_group' => 'Ungültige <code><references></code>-Verwendung: Nur der Parameter „group“ ist erlaubt, verwenden Sie <tt><references /></tt> oder <tt><references group="…" /></tt>',
+	'cite_error_no_link_label_group' => 'Es sind für Gruppe „$1“ keine benutzerdefinierte Linkbezeichnungen mehr verfügbar.
+Definieren Sie weitere unter Systemtext <nowiki>[[MediaWiki:$2]]</nowiki>.',
 );
 
+/** Zazaki (Zazaki)
+ * @author Aspar
+ * @author Xoser
+ */
+$messages['diq'] = array(
+	'cite-desc' => 'Qe çime mucnayîşî, etiketanê <nowiki><ref[ name=id]></nowiki> u <nowiki><references/></nowiki> de keno',
+	'cite_croak' => 'Çime nihebitiyeno; $1: $2',
+	'cite_error_key_str_invalid' => 'Ğeletê dehilî
+$str raşt niyo u/ya zi $key.
+Ena gani nibi.',
+	'cite_error_stack_invalid_input' => 'Ğeletê dehilî
+Stack key raşt niyo.
+Ena gani nibi.',
+	'cite_error' => 'Ğeletê çime mucnayîşî: $1',
+	'cite_error_ref_numeric_key' => 'Etiket <code><ref></code> ke raşt niyo;
+Name nieşkeno biyo yew rekam. Çekuyan binuse',
+	'cite_error_ref_no_key' => 'Etiket <code><ref></code> ke raşt niyo;
+Eka kontent çini yo, gani yew name biyo',
+	'cite_error_ref_too_many_keys' => 'Etiket <code><ref></code> ke raşt niyo;
+name raşt niyo, e.g. zaf esto',
+	'cite_error_ref_no_input' => 'Etiket <code><ref></code> ke raşt niyo;
+Eka name çini yo, gani kontent biyo',
+	'cite_error_references_invalid_parameters' => 'Etiket <code><ref></code> ke raşt niyo;
+parametrayan ra destur çini yo.
+<code><references /></code> sero kar bike',
+	'cite_error_references_invalid_parameters_group' => 'Etiket <code><ref></code> ke raşt niyo;
+parametrayan ra destur çini yo.
+<code><references /></code> sero kar bike, ya zi  <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Linkanê Custom backlinkî hin çini yo.
+Zerreyê mesajê <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>î de hewna tasvir bike',
+	'cite_error_no_link_label_group' => 'Eka etiketinê linkê şexsi ser ena grubi "$1" ciniyo.
+Zerre mesajê <nowiki>[[MediaWiki:$2]]</nowiki> de zafyer qise bike.',
+	'cite_error_references_no_text' => 'Etiket <code><ref></code> ke raşt niyo;
+qe refs yew nuşte nidayiyo <code>$1</code>',
+	'cite_error_included_ref' => '</ref&gt kefilneno;  <ref&gt vin kerdo; etiket',
+	'cite_error_refs_without_references' => 'etiketê <code><ref></code>î niesto, feqat  etiketê <code><references/></code>î nidiyo',
+	'cite_error_group_refs_without_references' => 'etiketê <code><ref></code>î niesto ser grupê $1î, feqat  etiketê <code><references/></code>î nidiyo',
+	'cite_error_references_group_mismatch' => 'etiketê <code><ref></code>î, zerre <code><references/></code> de ser grupê "$1"î konflikt keno.',
+	'cite_error_references_missing_group' => 'etiketê <code><ref></code>î, zerre <code><references/></code> de tevsir biyo ke ser grupê "$1"î ke verni de nieseno.',
+	'cite_error_references_missing_key' => 'etiketê <code><ref></code>î, zerre <code><references/></code> de tevisr biyo ser name "$1"î verni de niesto.',
+	'cite_error_references_no_key' => 'etiketê <code><ref></code>î, zerre <code><references/></code> de tevsir biyo name xo çini yo.',
+	'cite_error_empty_references_define' => 'etiketê <code><ref></code>î, zerre <code><references/></code> de tevsir biyo "$1" kontent xo çini yo.',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
-	'cite_desc' => 'Pśidawa toflicce <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki> za pódaśa zrědłow',
+	'cite-desc' => 'Pśidawa toflicce <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki> za pódaśa zrědłow',
 	'cite_croak' => 'Zmólka w referencnem systemje. $1: $2',
 	'cite_error_key_str_invalid' => 'Interna zmólka: njpłaśiwy $str a/abo $key. To njaměło se staś.',
 	'cite_error_stack_invalid_input' => 'Interna zmólka: njepłaśiwy stackowy kluc. To njaměło se staś.',
@@ -623,8 +894,6 @@
 njepłaśiwe mjenja, na pś. pśewjele',
 	'cite_error_ref_no_input' => 'Njepłaśiwa toflicka <code><ref></code>;
 "ref" bźez mjenja musy wopśimjeśe měś',
-	'cite_error_references_invalid_input' => 'Njepłaśiwa toflicka <code><references></code>;
-žedne zapódaśe dowólone. Wužyj <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Njepłaśiwa toflicka <code><references></code>;
 žedne parametry dowólone.
 Wužyj <code><references /></code>',
@@ -633,72 +902,128 @@
 Wužyj <code><references /></code> abo <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Swójske etikety slědkwótkazow wupócerane.
 Definěruj dalšne w powěsći <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Žedne swójske wótkazowe etikety za "$1" wěcej k dispoziciji.
+Definěruj dalšne w powěsći <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Njepłaśiwa toflicka <code><ref></code>;
 za ref z mjenim <code>$1</code> njejo se tekst pódał',
 	'cite_error_included_ref' => 'Kóńceca toflicka </ref> felujo za toflicku <ref>',
 	'cite_error_refs_without_references' => 'Toflicki <code><ref></code> eksistěruju, ale toflicka <code><references/></code> njejo se namakała',
 	'cite_error_group_refs_without_references' => 'Toflicki <code><ref></code> eksistěruju za kupku z mjenim "$1", ale wótpowědujuca toflicka <code><references group="$1"/></code> njejo se namakała',
+	'cite_error_references_group_mismatch' => 'Toflicka <code><ref></code> w <code><references></code> jo ze kupkowym atributom "$1" w konflikśe.',
+	'cite_error_references_missing_group' => 'Toflicka <code><ref></code>, kótaraž jo w <code><references></code> definěrowana, ma kupkowy atribut "$1", kótaryž njepokazujo se w pjerwjejšnem teksće.',
+	'cite_error_references_missing_key' => 'Toflicka <code><ref></code> z mjenim "$1", kótaraž jo w <code><references></code> definěrowana, njewužywa se w pjerwjejšnem teksće.',
+	'cite_error_references_no_key' => 'Toflicka <code><ref></code>, kótaraž jo w <code><references></code> definěrowana, njama mjenjowy atribut.',
+	'cite_error_empty_references_define' => 'Toflicka <code><ref></code>, kótaraž jo w <code><references></code> z mjenim "$1" definěrowana, njama wopśimjeśe.',
 );
 
 /** Greek (Ελληνικά)
  * @author Consta
  * @author Omnipaedista
+ * @author ZaDiak
+ * @author Απεργός
  */
 $messages['el'] = array(
+	'cite-desc' => 'Προσθέτει τα <ref[ name="id"]> και <references/> για τις παραπομπές.',
+	'cite_croak' => 'Η παραπομπή οδηγεί σε αδιέξοδο; $1: $2',
+	'cite_error_key_str_invalid' => 'Εσωτερικό σφάλμα·
+μη έγκυρο $str και/ή $key.
+Αυτό δεν θα έπρεπε να συμβαίνει.',
+	'cite_error_stack_invalid_input' => 'Εσωτερικό σφάλμα·
+μη έγκυρο κλειδί στοίβας.
+Αυτό δεν θα έπρεπε να συμβαίνει.',
 	'cite_error' => 'Σφάλμα αναφοράς: $1',
+	'cite_error_ref_numeric_key' => 'Μη έγκυρη <code><ref></code> ετικέτα·
+το όνομα δεν μπορεί να είναι ένας απλός ακέραιος. Χρησιμοποιήστε έναν περιγραφικό τίτλο',
+	'cite_error_ref_no_key' => 'Άκυρη <code><ref></code> ετικέτα·
+παραπομπές χωρίς περιεχομένο πρέπει να έχουν ένα όνομα',
+	'cite_error_ref_too_many_keys' => 'Μη έγκυρη <code><ref></code> ετικέτα;
+μη έγκυρα ονόματα, π.χ. πάρα πολλά',
+	'cite_error_ref_no_input' => 'Μη έγκυρη <code><ref></code> ετικέτα;
+οι παραπομπές χωρίς όνομα πρέπει να έχουν περιεχόμενο',
+	'cite_error_references_invalid_parameters' => 'Μη έγκυρη <code><references></code> ετικέτα;
+δεν επιτρέπονται παράμετροι.
+Χρησιμοποιήστε το <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Μη έγκυρη <code><references></code> ετικέτα;
+μόνο η παράμετρος "group" επιτρέπεται.
+Χρησιμοποιείστε το <code><references /></code>, ή το <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Εξαντλήθηκαν οι ειδικές ετικέτες συνδέσμων προς το κείμενο.
+Καθορισμός περισσότερων στο μήνυμα <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Εξαντλήθηκαν οι ειδικές ετικέτες συνδέσμων για την ομάδα «$1».
+Καθορισμός περισσότερων στο μήνυμα <nowiki>[[MediaWiki:$2]]</nowiki>',
 	'cite_error_references_no_text' => 'Άκυρο <code><ref></code> tag.
 Δεν δίνεται κείμενο για αναφορές με το όνομα <code>$1</code>',
+	'cite_error_included_ref' => 'Υπολείπεται η κατάληξη </ref> για την ετικέτα <ref>',
+	'cite_error_refs_without_references' => 'Υπάρχουν ετικέτες <code><ref></code>, αλλά καμία ετικέτα <code><references/></code> δεν βρέθηκε.',
+	'cite_error_group_refs_without_references' => 'Υπάρχουν ετικέτες <code><ref></code> για μία ομάδα με το όνομα «$1», αλλά καμία αντίστοιχη ετικέτα <code><references group="$1"/></code> δεν βρέθηκε.',
+	'cite_error_references_group_mismatch' => 'Η ετικέτα <code><ref></code> στο <code><references></code> έρχεται σε σύγκρουση με το κατηγορούμενο "$1".',
+	'cite_error_references_missing_group' => 'Η <code><ref></code> ετικέτα που ορίζεται στο <code><references></code> έχει κατηγορούμενο ομάδας "$1" που δεν εμφανίζεται σε προηγούμενο κείμενο.',
+	'cite_error_references_missing_key' => 'Η <code><ref></code> ετικέτα με το όνομα "$1" που ορίζεται στο <code><references></code> δεν χρησιμοποιείται στο προηγούμενο κείμενο.',
+	'cite_error_references_no_key' => 'Η <code><ref></code> ετικέτα που ορίζεται στο <code><references></code> δεν έχει κατηγορούμενο ονόματος.',
+	'cite_error_empty_references_define' => 'Η <code><ref></code> ετικέτα που ορίζεται στο <code><references></code> με το όνομα "$1" δεν έχει καθόλου περιεχόμενο.',
 );
 
 /** Esperanto (Esperanto)
+ * @author AVRS
  * @author Malafaya
  * @author Yekrats
  */
 $messages['eo'] = array(
-	'cite_desc' => 'Aldonas etikedojn <nowiki><ref[ name=id]></nowiki> kaj <nowiki><references/></nowiki> por citaĵoj',
+	'cite-desc' => 'Aldonas etikedojn <nowiki><ref[ name=id]></nowiki> kaj <nowiki><references/></nowiki> por citaĵoj',
 	'cite_croak' => 'Cito mortis; $1: $2',
 	'cite_error_key_str_invalid' => 'Interna eraro;
-nevalida $str kaj/aŭ $key.
+malvalida $str kaj/aŭ $key.
 Ĉi tio neniam okazos.',
 	'cite_error_stack_invalid_input' => 'Interna eraro;
-nevalida staka ŝlosilo.
+malvalida staka ŝlosilo.
 Ĉi tio verŝajne neniam okazus.',
 	'cite_error' => 'Citaĵa eraro: $1',
-	'cite_error_ref_numeric_key' => 'Nevalida etikedo <code><ref></code>;
+	'cite_error_ref_numeric_key' => 'Malvalida etikedo <code><ref></code>;
 nomo ne povas esti simpla entjero. Uzu priskriban titolon.',
-	'cite_error_ref_no_key' => "Nevalida etikedo <code><ref></code>;
+	'cite_error_ref_no_key' => "Malvalida etikedo <code><ref></code>;
 ''ref'' kun nenia enhava nomo devas havi nomon",
-	'cite_error_ref_too_many_keys' => 'Nevalida etikedo <code><ref></code>;
-nevalidaj nomoj (ekz-e: tro multaj)',
-	'cite_error_ref_no_input' => 'Nevalida etikedo <code><ref></code>;
+	'cite_error_ref_too_many_keys' => 'Malvalida etikedo <code><ref></code>;
+malvalidaj nomoj (ekz-e: tro multaj)',
+	'cite_error_ref_no_input' => 'Malvalida etikedo <code><ref></code>;
 ref-etikedoj sen nomo devas havi enhavojn.',
-	'cite_error_references_invalid_input' => 'Nevalida etikedo <code><references></code>;
-neniu enigo estas permesita. Uzu etikedon <code><references /></code>.',
 	'cite_error_references_invalid_parameters' => 'Nevalida etikedo <code><references></code>; neniuj parametroj estas permesitaj, uzu <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'Nevalida etikedon <code><references></code>;
+	'cite_error_references_invalid_parameters_group' => 'Malvalida etikedon <code><references></code>;
 parametro "group" nur estas permesita.
 Uzu etikedon <code><references /></code>, aŭ <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Neniom plu memfaritaj retroligaj etikedoj.
 Difinu pliajn en la mesaĝo <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => 'Mankas proprajn ligilajn etikedojn por grupo "$1".
+Difinu pliajn en la <nowiki>[[MediaWiki:$2]]</nowiki> mesaĝo.',
 	'cite_error_references_no_text' => 'Nevalida <code><ref></code> etikedo;
 neniu teksto estis donita por ref-oj nomataj <code>$1</code>',
-	'cite_error_included_ref' => 'Ferma </ref> mankas por <ref> etikedon',
+	'cite_error_included_ref' => 'Ferma </ref> mankas por <ref>-etikedo',
 	'cite_error_refs_without_references' => 'Etikedoj <code><ref></code> ekzistas, sed neniu etikedo <code><references/></code> estis trovita',
+	'cite_error_group_refs_without_references' => '<code><ref></code> etikedoj ekzistas por grupo nomita "$1", sed ne koresponda <code><references group="$1"/></code> etikedo estis trovita',
+	'cite_error_references_group_mismatch' => '<code><ref></code> etikedo en <code><references></code> havas konflikan grupatributon "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code> etikedo difinita en <code><references></code> havas grupatributon "$1" kiu ne aperas en antaŭa teksto.',
+	'cite_error_references_missing_key' => '<code><ref></code> etikedo kun la nomo "$1" difinita en <code><references></code> ne estas uzata en antaŭa teksto.',
+	'cite_error_references_no_key' => '<code><ref></code> etikedo difinita en <code><references></code> ne havas noman atributon.',
+	'cite_error_empty_references_define' => '<code><ref></code> etikedo difinita en <code><references></code> kun nomo "$1" ne havas enhavon.',
 );
 
 /** Spanish (Español)
+ * @author Antur
  * @author Baiji
+ * @author Crazymadlover
  * @author Drini
+ * @author Locos epraix
+ * @author Manuelt15
+ * @author McDutchie
  * @author Muro de Aguas
  * @author Remember the dot
  * @author Sanbec
+ * @author Translationista
  */
 $messages['es'] = array(
-	'cite_desc' => 'Añade las etiquietas <nowiki><ref[ name=id]> y <references /></nowiki> para utilizar notas al pie.',
+	'cite-desc' => 'Añade las etiquietas <nowiki><ref[ name=id]> y <references /></nowiki> para utilizar notas al pie.',
 	'cite_croak' => "La extensión ''Cite'' se murió; $1: $2",
 	'cite_error_key_str_invalid' => 'Error interno;
 $str y/o $key no válido.
-Esto nunca debe occurir.',
+Esto no debería ocurrir.',
 	'cite_error_stack_invalid_input' => 'Error interno;
 la clave de la pila no es válida.
 Esto nunca debe ocurrir.',
@@ -711,30 +1036,76 @@
 nombres de parámetros no válidos',
 	'cite_error_ref_no_input' => 'Elemento <code><ref></code> no válido;
 referencias sin nombre deben tener contenido',
-	'cite_error_references_invalid_input' => 'Elemento <code><references></code> no válido. Usa sólo <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'El elemento <code><references></code> no es válido;
 no admite parámetros.
 Use <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'El elemento <code><references></code> no es válido;
 sólo se permite el parámetro «group».
 Use <code><references /></code>, o <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Se quedó sin etiquetas de vínculos de retroceso personalizadas.
+Definir más en el mensaje <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Se han acabado las etiquetas de vínculos personalizados para el grupo "$1".
+Define más en el mensaje <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'El elemento <code><ref></code> no es válido;
 pues no hay una referencia con texto llamada <code>$1</code>',
-	'cite_error_included_ref' => 'Código wiki para cierre </ref> sin un código de apertura <ref> existente',
-	'cite_error_refs_without_references' => 'Existen etiquetas <code><ref></code>, pero no se encontró una etiqueta <code><references/></code>',
+	'cite_error_included_ref' => 'Código de apertura <ref> sin su código de cierre </ref>',
+	'cite_error_refs_without_references' => 'Existen etiquetas <code><ref></code>, pero no se encontró una etiqueta <code><references /></code>',
 	'cite_error_group_refs_without_references' => 'Existen etiquetas <code><ref></code> para un grupo llamado "$1", pero no se encontró una etiqueta <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'el tag <code><ref></code> en <code><references></code> presenta el atributo de grupo en conflicto "$1".',
+	'cite_error_references_missing_group' => 'El tag <code><ref></code> definido en <code><references></code> incluye el atributo "$1" no declarado en el texto precedente.',
+	'cite_error_references_missing_key' => 'El tag <code><ref></code> con nombre "$1" definido en <code><references></code> no se utiliza en el texto precedente.',
+	'cite_error_references_no_key' => 'El tag <code><ref></code> definido en <code><references></code> no tiene atributo de nombre.',
+	'cite_error_empty_references_define' => 'El tag <code><ref></code> definido en <code><references></code> con nombre "$1" no tiene contenido.',
 );
 
-/** Basque (Euskara) */
+/** Estonian (Eesti)
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'cite-desc' => 'Lisab viitamiseks märgendid <nowiki><ref[ name=id]></nowiki> ja <nowiki><references/></nowiki>.',
+	'cite_error' => 'Viitamistõrge: $1',
+	'cite_error_ref_numeric_key' => 'Vigane <code><ref></code>-märgend.
+Nimi ei või numbriline olla. Kasuta kirjeldavat nime.',
+	'cite_error_ref_no_key' => 'Vigane <code><ref></code>-märgend.
+Sisuta viitamismärgenditel peab nimi olema.',
+	'cite_error_ref_too_many_keys' => 'Vigane <code><ref></code>-märgend;
+"name" on vigane või liiga pikk.',
+	'cite_error_ref_no_input' => 'Vigane <code><ref></code>-märgend.
+Nimeta viitamismärgenditel peab sisu olema.',
+	'cite_error_references_invalid_parameters' => 'Vigane <code><references></code>-märgend.
+Parameetrid pole lubatud.
+Kasuta märgendit <code><references /></code>.',
+	'cite_error_references_invalid_parameters_group' => 'Vigane <code><references></code>-märgend.
+Lubatud on ainult parameeter "group".
+Kasuta märgendit <code><references /></code> või <code><references group="..." /></code>.',
+	'cite_error_references_no_text' => 'Vigane <code><ref></code>-märgend.
+Viite nimega <code>$1</code> tekst puudub.',
+	'cite_error_included_ref' => 'Sulgemismärgend </ref> puudub.',
+	'cite_error_refs_without_references' => '<code><ref></code>-märgendid on olemas, aga <code><references/></code>-märgend puudub.',
+	'cite_error_group_refs_without_references' => 'Olemas on <code><ref></code>-märgend rühma "$1" jaoks, aga vastav <code><references group="$1"/></code>-märgend puudub.',
+	'cite_error_references_group_mismatch' => '<code><references></code>-märgendite vahel oleval <code><ref></code>-märgendil on vastukäiv parameetri "group" väärtus "$1".',
+	'cite_error_references_missing_group' => '<code><references></code>-märgendis kirjeldatud <code><ref></code>-märgendil on rühmatunnus "$1", mis puudub eelnevas tekstis.',
+	'cite_error_references_missing_key' => '<code><references></code>-märgendite vahel olevat <code><ref></code>-märgendit nimega "$1" ei kasutata eelnevas tekstis.',
+	'cite_error_empty_references_define' => '<code><references></code>-märgendite vahel oleval <code><ref></code>-märgendil nimega "$1" puudub sisu.',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ */
 $messages['eu'] = array(
+	'cite-desc' => '<nowiki><ref[ name=id]></nowiki> eta <nowiki><references/></nowiki> etiketak gehitzen ditu, aipuentzako',
+	'cite_croak' => 'Hildako aipua; $1: $2',
 	'cite_error' => 'Aipamen errorea: $1',
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
+ * @author Wayiran
+ * @author ZxxZxxZ
  */
 $messages['fa'] = array(
-	'cite_desc' => 'برچسب‌های <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> را برای یادکرد اضافه می‌کند',
+	'cite-desc' => 'برچسب‌های <nowiki><ref[ name=id]></nowiki> و <nowiki><references/></nowiki> را برای یادکرد اضافه می‌کند',
 	'cite_croak' => 'یادکرد خراب شد؛ $1: $2',
 	'cite_error_key_str_invalid' => 'خطای داخلی؛ $str و/یا $key غیر مجاز. این خطا نباید هرگز رخ دهد.',
 	'cite_error_stack_invalid_input' => 'خطای داخلی؛ کلید پشته غیرمجاز.  این خطا نباید هرگز رخ دهد.',
@@ -743,27 +1114,37 @@
 	'cite_error_ref_no_key' => 'برچسب <code><ref></code> غیرمجاز؛ یادکردهای بدون محتوا باید نام داشته باشند',
 	'cite_error_ref_too_many_keys' => 'برچسب <code><ref></code> غیرمجاز؛ نام‌های غیرمجاز یا بیش از اندازه',
 	'cite_error_ref_no_input' => 'برچسب <code><ref></code> غیرمجاز؛ یادکردهای بدون نام باید محتوا داشته باشند',
-	'cite_error_references_invalid_input' => 'برچسب <code><references></code> غیرمجاز؛ ورود متن مجاز نیست، از <code><references /></code> استفاده کنید',
 	'cite_error_references_invalid_parameters' => 'برچسب <code><references></code> غیرمجاز؛ استفاده از پارامتر مجاز است. از <code><references /></code> استفاده کنید',
 	'cite_error_references_invalid_parameters_group' => 'برچسب <code><references></code> غیر مجاز؛ تنها پارامتر «group» قابل استفاده است.
 از <code><references /></code> یا <code><references group="..." /></code> استفاده کنید',
 	'cite_error_references_no_backlink_label' => 'برچسب‌های پیوند به انتها رسید.
 موارد جدیدی را در پیام <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> تعریف کنید',
+	'cite_error_no_link_label_group' => 'از برچسب‌های پیوند سفارشی برای گروه «$1» خارج شد.
+در پیغام <nowiki>[[MediaWiki:$2]]</nowiki> بیشتر تعریف کنید.',
 	'cite_error_references_no_text' => 'برچسب <code><ref></code> غیرمجاز؛ متنی برای یادکردهای با نام <code>$1</code> وارد نشده‌است',
 	'cite_error_included_ref' => 'برچسب تمام کنندهٔ </ref> بدون برچسب <ref>',
 	'cite_error_refs_without_references' => 'برچسب <code><ref></code> وجود دارد اما برچسب <code><references/></code> پیدا نشد',
 	'cite_error_group_refs_without_references' => 'برچسب <code><ref></code> برای گروهی به نام «$1» وجود دارد، اما برچسب <code><references group="$1"/></code> متناظر پیدا نشد',
+	'cite_error_references_group_mismatch' => 'برچسپ <code><ref></code> درون <code><references></code> در تضاد با ویژگی‌های گروه «$1» است.',
+	'cite_error_references_missing_group' => 'برچسپ <code><ref></code> در <code><references></code> تعریف شده، ویژگی‌های گروهی «$1» را دارد که درون متن قبل از آن ظاهر نمی‌شود.',
+	'cite_error_references_missing_key' => 'پرچسپ <code><ref></code> که با نام «$1» درون <code><references></code> تعریف شده، در متن قبل از آن استفاده نشده‌است.',
+	'cite_error_references_no_key' => 'برچسپ <code><ref></code> درون <code><references></code> صفت نام را ندارد.',
+	'cite_error_empty_references_define' => 'برچسپ <code><ref></code> تعریف شده درون <code><references></code> با نام «$1» محتوایی ندارد.',
+	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_reference_link_prefix' => 'cite_ref-',
 );
 
 /** Finnish (Suomi)
  * @author Agony
  * @author Crt
  * @author Nike
+ * @author Olli
+ * @author Silvonen
  * @author Str4nd
  * @author Tarmo
  */
 $messages['fi'] = array(
-	'cite_desc' => 'Tarjoaa <nowiki><ref[ name=id]></nowiki>- ja <nowiki><references/></nowiki>-elementit viittauksien tekemiseen.',
+	'cite-desc' => 'Tarjoaa <nowiki><ref[ name=id]></nowiki>- ja <nowiki><references/></nowiki>-elementit viittauksien tekemiseen.',
 	'cite_croak' => 'Virhe viittausjärjestelmässä: $1: $2',
 	'cite_error_key_str_invalid' => 'Sisäinen virhe: kelpaamaton $str ja/tai $key.',
 	'cite_error_stack_invalid_input' => 'Sisäinen virhe: kelpaamaton pinoavain.',
@@ -772,35 +1153,54 @@
 	'cite_error_ref_no_key' => 'Kelpaamaton <code><ref></code>-elementti: sisällöttömille refeille pitää määrittää nimi.',
 	'cite_error_ref_too_many_keys' => 'Kelpaamaton <code><ref></code>-elementti: virheelliset nimet, esim. liian monta',
 	'cite_error_ref_no_input' => 'Kelpaamaton <code><ref></code>-elementti: viitteillä ilman nimiä täytyy olla sisältöä',
-	'cite_error_references_invalid_input' => 'Kelpaamaton <code><references></code>-elementti: sisällön lisääminen ei ole sallittu. Käytä elementtiä <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Kelpaamaton <code><references></code>-elementti: parametrit eivät ole sallittuja. Käytä muotoa <code><references /></code>.',
-	'cite_error_references_invalid_parameters_group' => 'Kelpaamaton <code><references></code>-elementti: vain parametri ”group” on sallittu. Käytä tagia <code><references /></code> tai <code><references group="…" /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Kelpaamaton <code><references></code>-elementti: vain parametri ”group” on sallittu. Käytä muotoa <code><references /></code> tai <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Määritetyt takaisinviittausnimikkeet loppuivat kesken.
 Niitä voi määritellä lisää sivulla <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
-	'cite_error_references_no_text' => 'Virheellinen <code><ref></code>-tagi;
+	'cite_error_no_link_label_group' => 'Mukautettujen linkkikirjainten määrä ryhmälle ”$1” loppui.
+Määritä niitä lisää viestissä <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Virheellinen <code><ref></code>-elementti;
 viitettä <code>$1</code> ei löytynyt',
-	'cite_error_included_ref' => '<ref>-tägin sulkeva </ref> puuttuu',
+	'cite_error_included_ref' => '<ref>-elementin sulkeva </ref>-elementti puuttuu',
 	'cite_error_refs_without_references' => '<code><ref></code>-elementti löytyy, mutta <code><references/></code>-elementtiä ei löydy',
+	'cite_error_group_refs_without_references' => '<code><ref></code>-elementit löytyivät ryhmälle nimeltä ”$1”, mutta vastaavaa <code><references group="$1"/></code>-elementtiä ei löytynyt',
+	'cite_error_references_group_mismatch' => '<code><ref></code>-elementti <code><references></code>-elementin sisällä sisältää ristiriitaisen ryhmämääritteen ”$1”.',
+	'cite_error_references_missing_group' => '<code><references></code>-elementissä määritetty <code><ref></code>-elementti sisältää ryhmämääritteen ”$1”, jota ei mainita aiemmassa tekstissä.',
+	'cite_error_references_missing_key' => '<code><ref></code>-elementin nimeä ”$1”, johon viitataan elementissä <code><references></code> ei käytetä edeltävässä tekstissä.',
+	'cite_error_references_no_key' => '<code><references></code>-elementissä määritetyllä <code><ref></code>-elementillä ei ole nimimääritettä.',
+	'cite_error_empty_references_define' => '<code><references></code>-elementissä määritetyllä <code><ref></code>-elementillä nimellä ”$1” ei ole sisältöä.',
 );
 
+/** Faroese (Føroyskt)
+ * @author EileenSanda
+ */
+$messages['fo'] = array(
+	'cite-desc' => 'Leggur afturat <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki> lyklaorð, fyri ávísingar',
+	'cite_error_refs_without_references' => '<code><ref></code> lyklaorð eru til, men onki <code><references/></code> lyklaorð (tag) varð funnið',
+	'cite_error_group_refs_without_references' => '<code><ref></code> lyklaorð (tags) eru til fyri ein bólk sum eitur "$1", men onki tilsvarandi <code><references group="$1"/></code> lyklaorð varð funnið',
+);
+
 /** French (Français)
  * @author Cedric31
  * @author Crochet.david
  * @author Grondin
  * @author IAlex
+ * @author McDutchie
  * @author Sherbrooke
+ * @author The Evil IP address
+ * @author Trizek
  * @author Verdy p
  */
 $messages['fr'] = array(
-	'cite_desc' => 'Ajoute les balises <tt><nowiki><ref[ name="id"]></nowiki></tt> et <tt><nowiki><references/></nowiki></tt> pour les citations.',
-	'cite_croak' => 'Citation en impasse ; $1 : $2',
+	'cite-desc' => 'Ajoute les balises <nowiki><ref[ name="id"]></nowiki> et <nowiki><references/></nowiki> pour les références et notes de bas de page.',
+	'cite_croak' => 'Référence en impasse ; $1 : $2',
 	'cite_error_key_str_invalid' => 'Erreur interne ;
 $str ou $key invalides.
 Ceci ne devrait jamais se produire.',
 	'cite_error_stack_invalid_input' => 'Erreur interne ;
 clé de pile invalide.
 Ceci ne devrait jamais se produire.',
-	'cite_error' => 'Erreur de citation : $1',
+	'cite_error' => 'Erreur de référence : $1',
 	'cite_error_ref_numeric_key' => 'Balise <code><ref></code> incorrecte ;
 le nom ne peut être un entier simple. Utilisez un titre descriptif.',
 	'cite_error_ref_no_key' => 'Balise <code><ref></code> incorrecte ;
@@ -809,8 +1209,6 @@
 noms incorrects, par exemple trop nombreux.',
 	'cite_error_ref_no_input' => 'Balise <code><ref></code> incorrecte ;
 les références sans nom doivent avoir un contenu.',
-	'cite_error_references_invalid_input' => 'Balise <code><references></code> incorrecte ;
-aucune donnée n’est permise. Utilisez simplement <code><references /></code>.',
 	'cite_error_references_invalid_parameters' => "Balise <code><references></code> incorrecte ;
 aucun paramètre n'est permis.
 Utilisez simplement <code><references /></code>.",
@@ -819,31 +1217,57 @@
 Utilisez <code><references /></code>, ou bien <code><references group="..." /></code>.',
 	'cite_error_references_no_backlink_label' => 'Épuisement des étiquettes de liens personnalisées.
 Définissez-en un plus grand nombre dans le message <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => "Plus d'étiquettes de liens personnalisées pour le groupe « $1 ».
+Définissez-en plus dans le message <nowiki>[[MediaWiki:$2]]</nowiki>.",
 	'cite_error_references_no_text' => 'Balise <code><ref></code> incorrecte ;
 aucun texte n’a été fourni pour les références nommées <code>$1</code>.',
 	'cite_error_included_ref' => 'Clôture <code></ref></code> manquante pour la balise <code><ref></code>.',
 	'cite_error_refs_without_references' => 'Des balises <code><ref></code> existent, mais aucune balise <code><references/></code> n’a été trouvée.',
 	'cite_error_group_refs_without_references' => 'Des balises <code><ref></code> existent pour un groupe nommé « $1 », mais aucune balise <code><references group="$1"/></code> correspondante n’a été trouvée.',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
+	'cite_error_references_group_mismatch' => "La balise <code><ref></code> dans <code><references></code> a l'attribut de groupe « $1 » qui entre en conflit avec celui de <code><references></code>.",
+	'cite_error_references_missing_group' => 'La balise <code><ref></code> définie dans <code><references></code> a un groupé attribué « $1 » qui ne figure pas dans le texte précédent.',
+	'cite_error_references_missing_key' => 'La balise <code><ref></code> avec le nom « $1 » définie dans <code><references></code> n’est pas utilisé dans le texte précédent.',
+	'cite_error_references_no_key' => "La balise <code><ref></code> définie dans <code><references></code> n’a pas d'attribut de nom.",
+	'cite_error_empty_references_define' => 'La balise <code><ref></code> défini dans <code><references></code> avec le nom « $1 » n’a pas de contenu.',
+	'cite_references_link_many_sep' => ', ',
+	'cite_references_link_many_and' => ' et ',
 );
 
 /** Franco-Provençal (Arpetan)
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'cite_desc' => 'Apond les balises <nowiki><ref[ name=id]></nowiki> et <nowiki><references/></nowiki>, por les citacions.',
+	'cite-desc' => 'Apond les balises <nowiki><ref[ name=id]></nowiki> et <nowiki><references/></nowiki>, por les citacions.',
 	'cite_croak' => 'Citacion corrompua ; $1 : $2',
 	'cite_error_key_str_invalid' => 'Èrror de dedens ; $str atendua.',
 	'cite_error_stack_invalid_input' => 'Èrror de dedens ; cllâf de pila envalida.',
 	'cite_error' => 'Èrror de citacion $1',
 	'cite_error_ref_numeric_key' => 'Apèl envalido ; cllâf pas entègrâla atendua.',
-	'cite_error_ref_no_key' => 'Apèl envalido ; niona cllâf spècefiâ.',
+	'cite_error_ref_no_key' => 'Balisa <code><ref></code> fôssa ;
+les refèrences sen contegnu dêvont avêr un nom.',
 	'cite_error_ref_too_many_keys' => 'Apèl envalido ; cllâfs envalides, per ègzemplo, trop de cllâfs spècefiâs ou ben cllâf fôssa.',
-	'cite_error_ref_no_input' => 'Apèl envalido ; niona entrâ spècefiâ.',
-	'cite_error_references_invalid_input' => 'Entrâ envalida ; entrâ atendua.',
+	'cite_error_ref_no_input' => 'Balisa <code><ref></code> fôssa ;
+les refèrences sen nom dêvont avêr un contegnu.',
 	'cite_error_references_invalid_parameters' => 'Arguments envalidos ; argument atendu.',
-	'cite_error_references_no_backlink_label' => 'Ègzécucion en defôr de les ètiquètes pèrsonalisâs, dèfenésséd de ples dens lo mèssâjo <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>',
-	'cite_error_references_no_text' => 'Nion tèxte endicâ por les refèrences siuventes : <code>$1</code>',
+	'cite_error_references_invalid_parameters_group' => 'Balisa <code><references></code> fôssa ;
+solament lo paramètre « tropa » est ôtorisâ.
+Utilisâd <code><references /></code>, ou ben <code><references group="..." /></code>.',
+	'cite_error_references_no_backlink_label' => 'Èpouesement de les ètiquètes de lims pèrsonalisâs.
+Dèfenésséd-nen un ples grant nombro dens lo mèssâjo <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => 'Més d’ètiquètes de lims pèrsonalisâs por la tropa « $1 ».
+Dèfenésséd-nen més dens lo mèssâjo <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Balisa <code><ref></code> fôssa ;
+nion tèxto at étâ balyê por les refèrences apelâs <code>$1</code>.',
+	'cite_error_included_ref' => 'Cllotura </ref> manquenta por la balisa <ref>.',
+	'cite_error_refs_without_references' => 'Des balises <code><ref></code> ègzistont, mas niona balisa <code><references/></code> at étâ trovâ.',
+	'cite_error_group_refs_without_references' => 'Des balises <code><ref></code> ègzistont por una tropa apelâ « $1 », mas niona balisa <code><references group="$1"/></code> que corrèspond at étâ trovâ.',
+	'cite_error_references_group_mismatch' => 'La balisa <code><ref></code> dens <code><references></code> at l’atribut de tropa « $1 » qu’entre en conflit avouéc celi de <code><references></code>.',
+	'cite_error_references_missing_group' => 'La balisa <code><ref></code> dèfenia dens <code><references></code> at l’atribut de tropa « $1 » que figure pas dens cél tèxto.',
+	'cite_error_references_missing_key' => 'La balisa <code><ref></code> avouéc lo nom « $1 » dèfenia dens <code><references></code> est pas utilisâ dens cél tèxto.',
+	'cite_error_references_no_key' => 'La balisa <code><ref></code> dèfenia dens <code><references></code> at gins d’atribut de nom.',
+	'cite_error_empty_references_define' => 'La balisa <code><ref></code> dèfenia dens <code><references></code> avouéc lo nom « $1 » at gins de contegnu.',
+	'cite_references_link_many_sep' => ', ',
+	'cite_references_link_many_and' => ' et ',
 );
 
 /** Friulian (Furlan)
@@ -859,38 +1283,39 @@
  * @author Xosé
  */
 $messages['gl'] = array(
-	'cite_desc' => 'Engade <nowiki><ref[ nome=id]></nowiki> e etiquetas <nowiki><references/></nowiki>, para notas',
+	'cite-desc' => 'Engade <nowiki><ref[ nome=id]></nowiki> e etiquetas <nowiki><references/></nowiki>, para notas',
 	'cite_croak' => 'Cita morta; $1: $2',
 	'cite_error_key_str_invalid' => 'Erro interno; $str e/ou $key inválidos. Isto non debera ocorrer.',
 	'cite_error_stack_invalid_input' => 'Erro interno; stack key inválido. Isto non debera ocorrer.',
 	'cite_error' => 'Erro no código da cita: $1',
-	'cite_error_ref_numeric_key' => 'etiqueta <code><ref></code> non válida;
+	'cite_error_ref_numeric_key' => 'Etiqueta <code><ref></code> non válida;
 o nome non pode ser un simple entero: use un título descritivo',
-	'cite_error_ref_no_key' => 'etiqueta <code><ref></code> non válida;
+	'cite_error_ref_no_key' => 'Etiqueta <code><ref></code> non válida;
 as referencias que non teñan contido deben ter un nome',
-	'cite_error_ref_too_many_keys' => 'etiqueta <code><ref></code> non válida;
+	'cite_error_ref_too_many_keys' => 'Etiqueta <code><ref></code> non válida;
 nomes non válidos, por exemplo, demasiados',
-	'cite_error_ref_no_input' => 'etiqueta <code><ref></code> non válida;
+	'cite_error_ref_no_input' => 'Etiqueta <code><ref></code> non válida;
 as referencias que non teñan nome, deben ter contido',
-	'cite_error_references_invalid_input' => 'etiqueta <code><references></code> non válida;
-non se permite esa entrada. Use <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'etiqueta <code><references></code> non válida;
+	'cite_error_references_invalid_parameters' => 'Etiqueta <code><references></code> non válida;
 non están permitidos eses parámetros.
 Use <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'etiqueta <code><references></code> non válida;
+	'cite_error_references_invalid_parameters_group' => 'Etiqueta <code><references></code> non válida;
 só está permitido o parámetro "group" ("grupo").
 Use <code><references /></code> ou <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'As etiquetas personalizadas esgotáronse.
 Defina máis na mensaxe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
-	'cite_error_references_no_text' => 'etiqueta <code><ref></code> non válida;
+	'cite_error_no_link_label_group' => 'As etiquetas personalizadas esgotáronse para o grupo "$1".
+Defina máis na mensaxe <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Etiqueta <code><ref></code> non válida;
 non se forneceu texto para as referencias de nome <code>$1</code>',
-	'cite_error_included_ref' => 'peche a etiqueta </ref> que lle falta á outra etiqueta <ref>',
-	'cite_error_refs_without_references' => 'as etiquetas <code><ref></code> existen, pero non se atopou ningunha etiqueta <code><references/></code>',
-	'cite_error_group_refs_without_references' => 'as etiquetas <code><ref></code> existen para un grupo chamado "$1", pero non se atopou a etiqueta <code><references group="$1"/></code> correspondente',
-	'cite_reference_link_key_with_num' => '$1_$2',
-	'cite_reference_link_prefix' => 'cite_ref-',
-	'cite_references_link_prefix' => 'cite_note-',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
+	'cite_error_included_ref' => 'Peche a etiqueta </ref> que lle falta á outra etiqueta <ref>',
+	'cite_error_refs_without_references' => 'As etiquetas <code><ref></code> existen, pero non se atopou ningunha etiqueta <code><references/></code>',
+	'cite_error_group_refs_without_references' => 'As etiquetas <code><ref></code> existen para un grupo chamado "$1", pero non se atopou a etiqueta <code><references group="$1"/></code> correspondente',
+	'cite_error_references_group_mismatch' => 'A etiqueta <code><ref></code> en <code><references></code> ten un atributo de grupo conflitivo "$1".',
+	'cite_error_references_missing_group' => 'A etiqueta <code><ref></code> definida en <code><references></code> ten un atributo de grupo "$1" que non aparece no texto anterior.',
+	'cite_error_references_missing_key' => 'A etiqueta <code><ref></code> co nome "$1" definida en <code><references></code> non se utiliza no texto anterior.',
+	'cite_error_references_no_key' => 'A etiqueta <code><ref></code> definida en <code><references></code> non ten nome de atributo.',
+	'cite_error_empty_references_define' => 'A etiqueta <code><ref></code> definida en <code><references></code> co nome "$1" non ten contido.',
 );
 
 /** Ancient Greek (Ἀρχαία ἑλληνικὴ)
@@ -902,9 +1327,10 @@
 
 /** Swiss German (Alemannisch)
  * @author Als-Holder
+ * @author The Evil IP address
  */
 $messages['gsw'] = array(
-	'cite_desc' => 'Ergänzt fir Quällenochwyys d <tt><nowiki><ref[ name=id]></nowiki></tt> un d <tt><nowiki><references /></nowiki></tt>-Tag',
+	'cite-desc' => 'Ergänzt d <nowiki><ref[ name=id]></nowiki> un d <nowiki><references /></nowiki>-Tag fir Quällenochwyys',
 	'cite_croak' => 'Fähler im Referenz-Syschtem. $1: $2',
 	'cite_error_key_str_invalid' => 'Intärne Fähler: uugiltige $str un/oder $key. Des sott eigetli gar nit chenne gschäh.',
 	'cite_error_stack_invalid_input' => 'Intärne Fähler: uugiltige „name“-stack. Des sott eigetli gar nit chenne gschäh.',
@@ -913,46 +1339,95 @@
 	'cite_error_ref_no_key' => 'Uugiltigi <tt><ref></tt>-Verwändig: „ref“ ohni Inhalt muess e Name haa.',
 	'cite_error_ref_too_many_keys' => 'Uugiltigi <tt><ref></tt>-Verwändig: „name“ isch uugiltig oder z lang.',
 	'cite_error_ref_no_input' => 'Uugiltigi <tt><ref></tt>-Verwändig: „ref“ ohni Name muess e Inhalt haa.',
-	'cite_error_references_invalid_input' => 'Uugiltigi <tt><references></tt>-Verwändig: S isch kei zuesätzlige Täxt erlaubt, verwänd usschließli <tt><nowiki><references /></nowiki></tt>.',
 	'cite_error_references_invalid_parameters' => 'Uugiltigi <tt><references></tt>-Verwändig: S sin kei zuesätzligi Parameter erlaubt, verwänd usschließli <tt><nowiki><references /></nowiki></tt>.',
-	'cite_error_references_invalid_parameters_group' => 'Uugiltigi <tt><references></tt>-Verwändig: Nume dr Parameter „group“ isch erlaubt, verwänd <tt><references /></tt> oder <tt><references group="…" /></tt>',
-	'cite_error_references_no_backlink_label' => 'E Referenz mit dr Form <tt><ref name="…"/></tt> wird meh brucht as es Buechstabe git. E Ammann muess  <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> go wyteri Buechstabe/Zeiche ergänze.',
+	'cite_error_references_invalid_parameters_group' => 'Uugiltigi <tt><references></tt>-Verwändig: Nume dr Parameter „group“ isch erlaubt, verwänd <tt><references /></tt> oder <tt><references group="..." /></tt>',
+	'cite_error_references_no_backlink_label' => 'E Referenz mit dr Form <tt><ref name="..."/></tt> wird meh brucht as es Buechstabe git. E Ammann muess  <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> go wyteri Buechstabe/Zeiche ergänze.',
+	'cite_error_no_link_label_group' => 'Fir d Gruppe „$1“ sin kei benutzerdefinierti Linkbezeichnige me verfiegbar.
+Definier meh unter Systemnochricht <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Uugiltige <tt><ref></tt>-Tag; s isch kei Täxt fir s Ref mit em Name <tt>$1</tt> aagee wore.',
 	'cite_error_included_ref' => 'S fählt s schließend </ref>',
 	'cite_error_refs_without_references' => '<code><ref></code>-Tag git s, aber s isch kei <code><references/></code>-Tag gfunde wore.',
 	'cite_error_group_refs_without_references' => '<code><ref></code>-Tag git s fir d Grupp „$1“, aber s isch kei dezue gherig <code><references group=„$1“/></code>-Tag gfunde wore',
+	'cite_error_references_group_mismatch' => 'Im <code><ref></code>-Tag in <code><references></code> het s e problematischi Gruppe-Eigeschaft  „$1“.',
+	'cite_error_references_missing_group' => 'Im <code><ref></code>-Tag, wu definiert isch in <code><references></code>, het s e Gruppe-Eigeschaft „$1“, wu im obere Text nit vorchunnt.',
+	'cite_error_references_missing_key' => 'S <code><ref></code>-Tag mit em Name „$1“, wu definiert isch in <code><references></code> wird nit verwändet im obere Text.',
+	'cite_error_references_no_key' => 'S <code><ref></code>-Tag, wu definiert isch in <code><references></code>, het kei Name-Eigeschaft.',
+	'cite_error_empty_references_define' => 'Im <code><ref></code>-Tag, wu definiert isch in <code><references></code>, mit em Name „$1“ het s kei Inhalt.',
 );
 
+/** Gujarati (ગુજરાતી)
+ * @author Dsvyas
+ * @author KartikMistry
+ * @author Sushant savla
+ */
+$messages['gu'] = array(
+	'cite_croak' => 'અવતરણ ભાંગી ગયું; $1: $2',
+	'cite_error_key_str_invalid' => 'આંતરિક ક્ષતિ;
+અયોગ્ય $str અને/અથવા $key.
+આ ક્યારેય થવું ન જોઈએ.',
+	'cite_error_stack_invalid_input' => 'આંતરિક ક્ષતિ;
+અયોગ્ય સ્ટેક કળ.
+આ ક્યારેય થવું ન જોઈએ.',
+	'cite_error' => 'તૃટી ટાંકો: $1',
+	'cite_error_ref_too_many_keys' => 'અમાન્ય <code><ref></code> ચકતી;
+અમાન્ય નામો , દા.ત. ઘણાં બધાં',
+	'cite_error_ref_no_input' => 'અમાન્ય <code><ref></code> ટેગ;
+નામ વગરના refs માં કાંઈક સામગ્રી હોવી જોઈએ',
+	'cite_references_link_many_format_backlink_labels' => '',
+);
+
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
+ * @author Rotemliss
+ * @author YaronSh
  */
 $messages['he'] = array(
-	'cite_desc' => 'הוספת תגיות <nowiki><ref[ name=id]></nowiki> ו־<nowiki><references/></nowiki> עבור הערות שוליים',
-	'cite_croak' => 'בהערה יש שגיאה; $1: $2',
-	'cite_error_key_str_invalid' => 'שגיאה פנימית; $str ו/או $key שגויים. זהו באג בתוכנה.',
-	'cite_error_stack_invalid_input' => 'שגיאה פנימית; מפתח שגוי במחסנית. זהו באג בתוכנה.',
+	'cite-desc' => 'הוספת תגי <span dir="ltr"><nowiki><ref[ name=id]></nowiki></span> ו־<span dir="ltr"><nowiki><references/></nowiki></span> עבור הערות שוליים',
+	'cite_croak' => 'ההרחבה Cite קרסה; $1: $2',
+	'cite_error_key_str_invalid' => 'שגיאה פנימית;
+ערך לא תקין של <span dir="ltr">$str</span> ו/או <span dir="ltr">$key</span>.
+זה לא אמור לקרות לעולם.',
+	'cite_error_stack_invalid_input' => 'שגיאה פנימית;
+מפתח מחסנית לא תקין.
+זה לא אמור לקרות לעולם.',
 	'cite_error' => 'שגיאת ציטוט: $1',
-	'cite_error_ref_numeric_key' => 'תגית <code><ref></code> שגויה; שם לא יכול להיות מספר פשוט, יש להשתמש בכותרת תיאורית',
-	'cite_error_ref_no_key' => 'תגית <code><ref></code> שגויה; להערות שוליים ללא תוכן חייב להיות שם',
-	'cite_error_ref_too_many_keys' => 'תגית <code><ref></code> שגויה; שמות שגויים, למשל, רבים מדי',
-	'cite_error_ref_no_input' => 'תגית <code><ref></code> שגויה; להערות שוליים ללא שם חייב להיות תוכן',
-	'cite_error_references_invalid_input' => 'תגית <code><references></code> שגויה; לא ניתן לכתוב תוכן, יש להשתמש בקוד <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'תגית <code><references></code> שגויה; לא ניתן להשתמש בפרמטרים, יש להשתמש בקוד <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'תגית <code><references></code> שגויה;
+	'cite_error_ref_numeric_key' => 'תג <code><ref></code> לא תקין;
+שם (name) לא יכול להיות מספר שלם פשוט. יש להשתמש בכותרת תיאורית',
+	'cite_error_ref_no_key' => 'תג <code><ref></code> לא תקין;
+להערות שוליים ללא תוכן חייב להיות שם (name)',
+	'cite_error_ref_too_many_keys' => 'תג <code><ref></code> לא תקין;
+שמות שגויים, למשל, רבים מדי',
+	'cite_error_ref_no_input' => 'תג <code><ref></code> לא תקין;
+להערות שוליים ללא שם חייב להיות תוכן',
+	'cite_error_references_invalid_parameters' => 'תג <code><references></code> לא תקין;
+לא ניתן להשתמש בפרמטרים.
+יש להשתמש בקוד <code dir="ltr"><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'תג <code><references></code> לא תקין;
 רק הפרמטר "group" מותר לשימוש.
-אנא השתמשו בקוד <code><references /></code>, או בקוד <code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => 'נגמרו תוויות הקישורים המותאמים אישית, אנא הגדירו נוספים בהודעת המערכת <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
-	'cite_error_references_no_text' => 'תגית <code><ref></code> שגויה; לא נכתב טקסט עבור הערת השוליים בשם <code>$1</code>',
-	'cite_error_included_ref' => 'חסרה תגית </ref> המתאימה לתגית <ref>',
-	'cite_error_refs_without_references' => 'קיימות תגיות <code><ref></code>, אך לא נמצאה תגית <code><references/></code>',
-	'cite_error_group_refs_without_references' => 'קיימות תגיות <code><ref></code> עבור קבוצה הנקראת "$1", אך לא נמצאה תגית <code><references group="$1"/></code> מתאימה',
+אנא השתמשו בקוד <code dir="ltr"><references /></code>, או בקוד <code dir="ltr"><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'אזלו תוויות הקישורים המותאמות אישית.
+אנא הגדירו עוד תוויות בהודעת המערכת <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => 'אזלו תוויות קישורים מותאמות אישית לקבוצה "$1".
+הגדירו עוד תוויות בהודעת המערכת <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'תג <code><ref></code> לא תקין;
+לא נכתב טקסט עבור הערות השוליים בשם <code>$1</code>',
+	'cite_error_included_ref' => 'חסר תג </ref> סוגר שמתאים לתג <ref>',
+	'cite_error_refs_without_references' => 'קיימים תגי <code><ref></code>, אך לא נמצא תג <code dir="ltr"><references/></code>',
+	'cite_error_group_refs_without_references' => 'קיימים תגי <code><ref></code> עבור קבוצה בשם "$1", אך לא נמצא תג <code dir="ltr"><references group="$1"/></code> מתאים',
+	'cite_error_references_group_mismatch' => 'לתג <code><ref></code> המוגדר בתוך <code><references></code> יש מאפיין קבוצה (group) סותר, "$1".',
+	'cite_error_references_missing_group' => 'לתג <code><ref></code> המוגדר בתוך <code><references></code> יש מאפיין קבוצה (group) בעל הערך "$1", שאינו מופיע בטקסט שלפניו.',
+	'cite_error_references_missing_key' => 'התג <code><ref></code> בשם "$1" המוגדר בתוך <code><references></code> אינו נמצא בשימוש בטקסט שלפניו.',
+	'cite_error_references_no_key' => 'לתג <code><ref></code> המוגדר בתוך <code><references></code> אין מאפיין שם (name).',
+	'cite_error_empty_references_define' => 'התג <code><ref></code> בעל השם "$1" המוגדר בתוך <code><references></code> אינו מכיל תוכן.',
 );
 
 /** Hindi (हिन्दी)
+ * @author Ansumang
  * @author Kaustubh
  */
 $messages['hi'] = array(
-	'cite_desc' => '<nowiki><ref[ name=id]></nowiki> और <nowiki><references/></nowiki> यह दो संदर्भ देनेके लिये इस्तेमालमें आने वाले शब्द बढाये जायेंगे।',
+	'cite-desc' => '<nowiki><ref[ name=id]></nowiki> और <nowiki><references/></nowiki> यह दो संदर्भ देनेके लिये इस्तेमालमें आने वाले शब्द बढाये जायेंगे।',
 	'cite_croak' => 'संदर्भ दे नहीं पाये; $1: $2',
 	'cite_error_key_str_invalid' => 'आंतर्गत गलती;
 गलत $str या/और $key।
@@ -963,11 +1438,18 @@
 	'cite_error_ref_no_key' => '<code><ref></code> गलत कोड; खाली संदर्भोंको नाम होना आवश्यक हैं',
 	'cite_error_ref_too_many_keys' => '<code><ref></code> गलत कोड; गलत नाम, उदा. ढेर सारी',
 	'cite_error_ref_no_input' => '<code><ref></code> गलत कोड; नाम ना होने वाले संदर्भोंमें ज़ानकारी देना आवश्यक हैं',
-	'cite_error_references_invalid_input' => '<code><ref></code> गलत कोड; इनपुट नहीं कर सकतें। <code><references /></code> का इस्तेमाल करें',
 	'cite_error_references_invalid_parameters' => '<code><references></code> चुकीचा कोड; पॅरॅमीटर्स नहीं दे सकते, <code><references /></code> का इस्तेमाल करें',
 	'cite_error_references_invalid_parameters_group' => '<code><references></code> गलत कोड; सिर्फ पॅरॅमीटर का "ग्रुप" इस्तेमाल में लाया जा सकता हैं, <code><references /></code> या फिर <code><references group="..." /></code> का इस्तेमाल करें',
 	'cite_error_references_no_backlink_label' => 'तैयार किये हुए पीछे की कड़ियां देनेवाले नाम खतम हुए हैं, अधिक नाम <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> इस संदेश में बढायें',
 	'cite_error_references_no_text' => '<code><ref></code> गलत कोड; <code>$1</code> नामके संदर्भमें ज़ानकारी नहीं हैं',
+	'cite_error_included_ref' => 'समाप्ती </ref> <ref> टैग लापता',
+	'cite_error_refs_without_references' => '<code><ref></code>टैग मौजूद हैं, किन्तु कोई <code><references/></code>टैग नहीं मिला',
+	'cite_error_group_refs_without_references' => '<code><ref></code> टैग मौजूद है एक दल के लिए इस नाम "$1" से, कीनतु कोई अनुरूप <code><references group="$1"/></code> टैग नहीं मिला',
+	'cite_error_references_group_mismatch' => '<code><ref></code> टैग इन <code><references></code> दल की विशेषता में संघर्ष "$1"।',
+	'cite_error_references_missing_group' => '<code><ref></code> टैग परिभाषित <code><references></code> में दलकी विशेषता है "$1" जो पूर्व लेख में दिखाई नहीं दिया ।',
+	'cite_error_references_missing_key' => '<code><ref></code> टैग इस नाम "$1" सहित परिभाषित <code><references></code> पूर्व लेख में उपयोग नहीं हुई ।',
+	'cite_error_references_no_key' => '<code><ref></code> टैग में परिभाषित <code><references></code> कोई नाम विशेषता नहीं ।',
+	'cite_error_empty_references_define' => '<code><ref></code> टैग में परिभाषित <code><references></code> नाम सहित "$1" कोई सामग्री नहीं ।',
 );
 
 /** Croatian (Hrvatski)
@@ -976,7 +1458,7 @@
  * @author SpeedyGonsales
  */
 $messages['hr'] = array(
-	'cite_desc' => 'Dodaje <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> oznake, za citiranje',
+	'cite-desc' => 'Dodaje <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> oznake, za citiranje',
 	'cite_croak' => 'Nevaljan citat; $1: $2',
 	'cite_error_key_str_invalid' => 'Unutrašnja greška: loš $str i/ili $key. Ovo se nikada ne bi smjelo dogoditi.',
 	'cite_error_stack_invalid_input' => 'Unutrašnja greška; loš ključ stacka.  Ovo se nikada ne bi smjelo dogoditi.',
@@ -985,24 +1467,29 @@
 	'cite_error_ref_no_key' => 'Loša <code><ref></code> oznaka; ref-ovi bez sadržaja moraju imati naziv',
 	'cite_error_ref_too_many_keys' => 'Loša <code><ref></code> oznaka; loš naziv, npr. previše naziva',
 	'cite_error_ref_no_input' => 'Loša <code><ref></code> oznaka; ref-ovi bez imena moraju imati sadržaj',
-	'cite_error_references_invalid_input' => 'Loša <code><references></code> oznaka; nije dozvoljen unos, koristite
-<code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Loša <code><references></code> oznaka; parametri nisu dozvoljeni, koristite <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Neispravna <code><references></code> oznaka;
 Dopuštena je samo opcija "group".
 Koristite <code><references /></code>, ili <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Potrošene sve posebne oznake za poveznice unatrag, definirajte više u poruci <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Nedovoljan broj proizvoljnih naslova poveznica za grupu "$1".
+Definirajte više putem poruke <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Nije zadan tekst za izvor <code>$1</code>',
 	'cite_error_included_ref' => 'Nedostaje zatvarajući </ref> za <ref> oznaku',
 	'cite_error_refs_without_references' => 'oznake <code><ref></code> postoje, ali oznaka <code><references/></code> nije pronađena',
 	'cite_error_group_refs_without_references' => 'oznake <code><ref></code> postoje za skupinu imenovanom "$1", ali nema pripadajuće oznake <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => '<code><ref></code> oznaka u <code><references></code> ima konfliktni grupni atribut  "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code> oznaka definirana u <code><references></code> ima grupni atribut "$1" koji se ne pojavljuje u ranijem tekstu.',
+	'cite_error_references_missing_key' => '<code><ref></code> oznaka s imenom "$1" definirana u <code><references></code> nije prethodno rabljena u tekstu.',
+	'cite_error_references_no_key' => '<code><ref></code> oznaka definirana u <code><references></code> nema parametar "name" (ime).',
+	'cite_error_empty_references_define' => '<code><ref></code> oznaka definirana u <code><references></code> s imenom "$1" nema sadržaja.',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
  * @author Michawiki
  */
 $messages['hsb'] = array(
-	'cite_desc' => 'Přidawa taflički <nowiki><ref[ name=id]></nowiki> a <nowiki><references /></nowiki> za žórłowe podaća',
+	'cite-desc' => 'Přidawa taflički <nowiki><ref[ name=id]></nowiki> a <nowiki><references /></nowiki> za žórłowe podaća',
 	'cite_croak' => 'Zmylk w referencnym systemje; $1: $2',
 	'cite_error_key_str_invalid' => 'Interny zmylk: njepłaćiwy $str a/abo $key. To njeměło ženje wustupić.',
 	'cite_error_stack_invalid_input' => 'Interny zmylk; njepłaćiwy kluč staploweho składa. To njeměło ženje wustupić.',
@@ -1011,78 +1498,96 @@
 	'cite_error_ref_no_key' => 'Njepłaćiwe wužiwanje taflički <code><ref></code>; "ref" bjez wobsaha dyrbi mjeno měć.',
 	'cite_error_ref_too_many_keys' => 'Njepłaćiwe wužiwanje taflički <code><ref></code>; njepłaćiwe mjena, na př. předołho',
 	'cite_error_ref_no_input' => 'Njepłaćiwe wužiwanje taflički <code><ref></code>; "ref" bjez mjena dyrbi wobsah měć',
-	'cite_error_references_invalid_input' => 'Njepłaćiwe wužiwanje taflički <code><references></code>; žadyn zapodaty tekst dowoleny, wužij jenož
-<code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Njepłaćiwe wužiwanje taflički <code><references></code>; žane parametry dowolene, wužij jenož <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Njepłaćiwa taflička <code><references></code>;
 jenož parameter "group" je dowoleny.
 Wužij <code><references /></code> abo <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Zwučene etikety wróćowotkazow wućerpjene.
 Definuj wjace w powěsći <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Swójske wotkazowe etikety za skupinu "$1" hižo njejsu.
+Definuj dalše w zdźělence <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Njepłaćiwa referenca formy <code><ref></code>; žadyn tekst za referency z mjenom  <code>$1</code> podaty.',
 	'cite_error_included_ref' => 'Kónčny </ref> za tafličku <ref> faluje',
 	'cite_error_refs_without_references' => 'Taflički <code><ref></code> ekistuja, ale žana taflička code><references/></code> je so namakała',
 	'cite_error_group_refs_without_references' => 'Taflički <code><ref></code> eksistuja za skupinu z mjenom "$1", ale njeje so wotpowědowaca taflička <code><references group="$1"/></code> namakała',
+	'cite_error_references_group_mismatch' => 'Taflička <code><ref></code> w <code><references></code> je ze skupinskim atributom "$1" w konflikće.',
+	'cite_error_references_missing_group' => 'Taflička <code><ref></code>, kotraž je w <code><references></code> definowana, ma skupinski atribut "$1", kotryž so w prjedawšim teksće njejewi.',
+	'cite_error_references_missing_key' => 'Taflička <code><ref></code> z mjenom "$1", kotraž je w <code><references></code> definowana, so w prjedawšim teksće njewužiwa.',
+	'cite_error_references_no_key' => 'Taflička <code><ref></code>, kotraž je w <code><references></code> definowana, mjenowy atribut nima.',
+	'cite_error_empty_references_define' => 'Taflička <code><ref></code>, kotraž je w <code><references></code> z mjenom "$1" definowana, wobsah nima.',
 );
 
 /** Haitian (Kreyòl ayisyen)
+ * @author Boukman
  * @author Masterches
  */
 $messages['ht'] = array(
-	'cite_desc' => 'Ajoute baliz sa yo <nowiki><ref[ name=id]></nowiki> epi <nowiki><referans/></nowiki>, pou sitasyon yo.',
+	'cite-desc' => 'Ajoute baliz sa yo <nowiki><ref[ name=id]></nowiki> epi <nowiki><referans/></nowiki>, pou sitasyon yo.',
 	'cite_croak' => 'Sitasyon sa pa bon ; $1 : $2',
-	'cite_error_key_str_invalid' => 'Erè nan sistèm an : $str te dwèt parèt.
-Erè sa pat janm dwèt rive.',
+	'cite_error_key_str_invalid' => 'Erè nan sistèm an;
+$str epi/oubyen $key pa valab.
+Erè sa pa ta janm dwe rive.',
 	'cite_error_stack_invalid_input' => 'Erè nan sistèm an ; 
-kle pil an pa bon ditou.
-Sa pa te dwe janm rive',
+kle pil an pa valab.
+Sa pa ta janm dwe rive.',
 	'cite_error' => 'Erè nan sitasyon : $1',
-	'cite_error_ref_numeric_key' => 'Apèl ou fè an pa bon ; se kle ki pa entegral, ki pat long nou tap tann',
-	'cite_error_ref_no_key' => 'Apèl sa pa bon : nou pa bay pyès kle',
-	'cite_error_ref_too_many_keys' => 'Apèl ou fè an pa bon ; kle yo pa bon, pa egzanp, nou bay twòp kle oubyen kle yo pa bon oubyen nou pa byen rantre yo nan sistèm an.',
-	'cite_error_ref_no_input' => 'Apèl ou fè an pa bon ; ou pa presize pyès antre',
-	'cite_error_references_invalid_input' => 'Sa ou antre a pa bon <code><references></code>; antre ki te dwe vini <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'Agiman, paramèt sa yo pa bon ; agiman nou tap tann',
-	'cite_error_references_invalid_parameters_group' => 'Kòd sa pa bon <code><referans></code> ;
-
-sèl paramèt ki otorize se « group » (gwoup).
-
-Itilize <code><references /></code>, oubyen <code><references group="..." /></code> pito.',
-	'cite_error_references_no_backlink_label' => 'Pa genyen etikèt, labèl pèsonalize ankò, presize yon nonm, yon kantite ki ta pli gran pase sa ou te bay pli bonè nan mesaj ou an <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>',
-	'cite_error_references_no_text' => 'Baliz <code><ref></code> sa pa bon;
-Nou pa bay pyès tèks pou referans nou nonmen yo <code>$1</code>',
+	'cite_error_ref_numeric_key' => 'Etikèt <code><ref></code> pa valab;
+non pa kapab yon nimewo.  Itilize yon tit ki dekri bagay la.',
+	'cite_error_ref_no_key' => 'Etikèt <code><ref></code> pa valab;
+referans ki pa genyen anyen ladan l dwe gen yon non',
+	'cite_error_ref_too_many_keys' => 'Etikèt <code><ref></code> pa valab;
+non yo pa bon (pa ekzanp, genyen trop)',
+	'cite_error_ref_no_input' => 'Etikèt <code><ref></code> pa valab;
+referans ki pa gen non dwe gen kontni nan yo',
+	'cite_error_references_invalid_parameters' => 'Etikèt <code><references></code> pa valab;
+pa gendwa mete paramèt.
+Itilize <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Etikèt <code><referans></code> pa valab;
+se paramèt "group" sèlman ki otorize.
+Itilize <code><references /></code>, oubyen <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Pa genyen etikèt pèsonalize ankò.
+Presize yon kantite ki pi gwo nan mesaj <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_references_no_text' => 'Etikèt <code><ref></code> pa valab;
+Nou pa bay pyès tèks pou referans ki rele <code>$1</code>',
 );
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Glanthor Reviol
  * @author KossuthRad
  */
 $messages['hu'] = array(
-	'cite_desc' => 'Lehetővé teszi idézések létrehozását <nowiki><ref[ name=id]></nowiki> és <nowiki><references/></nowiki> tagek segítségével',
+	'cite-desc' => 'Lehetővé teszi idézések létrehozását <nowiki><ref[ name=id]></nowiki> és <nowiki><references/></nowiki> tagek segítségével',
 	'cite_croak' => 'Sikertelen forráshivatkozás; $1: $2',
 	'cite_error_key_str_invalid' => 'Belső hiba; érvénytelen $str és/vagy $key. Ennek soha nem kellene előfordulnia.',
 	'cite_error_stack_invalid_input' => 'Belső hiba; érvénytelen kulcs. Ennek soha nem kellene előfordulnia.',
-	'cite_error' => 'Hiba a forráshivatkozásban: $1',
+	'cite_error' => 'Forráshivatkozás-hiba: $1',
 	'cite_error_ref_numeric_key' => 'Érvénytelen <code><ref></code> tag; a name értéke nem lehet csupán egy szám, használj leíró címeket',
 	'cite_error_ref_no_key' => 'Érvénytelen <code><ref></code> tag; a tartalom nélküli ref-eknek kötelező nevet (name) adni',
 	'cite_error_ref_too_many_keys' => 'Érvénytelen <code><ref></code> tag; hibás nevek, pl. túl sok',
 	'cite_error_ref_no_input' => 'Érvénytelen <code><ref></code> tag; a név (name) nélküli ref-eknek adni kell valamilyen tartalmat',
-	'cite_error_references_invalid_input' => 'Érvénytelen <code><references></code> tag; nem lehet neki tartalmat adni, használd a
-<code><references /></code> formát',
 	'cite_error_references_invalid_parameters' => 'Érvénytelen <code><references></code> tag; nincsenek paraméterei, használd a <code><references /></code> formát',
 	'cite_error_references_invalid_parameters_group' => 'Érvénytelen <code><references></code> tag; csak a „group” attribútum használható. Használd a <code><references /></code>, vagy a <code><references group="..." /></code> formát.',
 	'cite_error_references_no_backlink_label' => 'Elfogytak a visszahivatkozásra használt címkék, adj meg többet a <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> üzenetben',
+	'cite_error_no_link_label_group' => 'Nincs több egyedi címke a következő csoport számára: „$1”.
+Adj meg többet a <nowiki>[[MediaWiki:$2]]</nowiki> lapon.',
 	'cite_error_references_no_text' => 'Érvénytelen <code><ref></code> tag; nincs megadva szöveg a(z) <code>$1</code> nevű ref-eknek',
 	'cite_error_included_ref' => 'Egy <ref> tag lezáró </ref> része hiányzik',
 	'cite_error_refs_without_references' => '<code><ref></code>-ek vannak a lapon, de nincsen <code><references/></code>',
 	'cite_error_group_refs_without_references' => '<code><ref></code>-ek léteznek a(z) „$1” csoporthoz, de nincs hozzá <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'A <code><references></code> és a benne található <code><ref></code> tag csoport-attribútuma („$1”) nem egyezik meg.',
+	'cite_error_references_missing_group' => '<code><ref></code> tag lett lett definiálva egy olyan <code><references></code> tagben, amely csoport-attribútuma („$1”) nem szerepel a szöveg korábbi részében.',
+	'cite_error_references_missing_key' => 'a <code><references></code> tagben definiált „$1” nevű <code><ref></code> tag nem szerepel a szöveg korábbi részében.',
+	'cite_error_references_no_key' => 'a <code><references></code> tagben definiált <code><ref></code> tagnek nincs név attribútuma.',
+	'cite_error_empty_references_define' => 'a <code><references></code> szakaszban definiált „$1” <code><ref></code> tagnek nincs tartalma.',
+	'cite_references_link_many' => '<li id="$1">^ $2 $3</li>',
 );
 
 /** Interlingua (Interlingua)
  * @author McDutchie
  */
 $messages['ia'] = array(
-	'cite_desc' => 'Adde etiquettas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, pro citationes',
+	'cite-desc' => 'Adde etiquettas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, pro citationes',
 	'cite_croak' => 'Citation corrumpite; $1: $2',
 	'cite_error_key_str_invalid' => 'Error interne;
 clave $str e/o $key invalide.
@@ -1099,8 +1604,6 @@
 nomines invalide, p.ex. troppo de nomines',
 	'cite_error_ref_no_input' => 'Etiquetta <code><ref></code> invalide;
 le refs sin nomine debe haber contento',
-	'cite_error_references_invalid_input' => 'Etiquetta <code><references></code> invalide;
-nulle entrata es permittite. Usa <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Etiquetta <code><references></code> invalide;
 nulle parametros es permittite.
 Usa <code><references /></code>',
@@ -1109,52 +1612,134 @@
 Usa <code><references /></code>, o <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Le etiquettas de retroligamine personalisate es exhaurite.
 Defini plus in le message <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Exhauriva le etiquettas de ligamine personalisabile pro le gruppo "$1".
+Defini plus de istes in le message <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Etiquetta <code><ref></code> invalide;
 nulle texto esseva fornite pro le refs nominate <code>$1</code>',
 	'cite_error_included_ref' => 'Le clausura </ref> manca pro le etiquetta <ref>',
 	'cite_error_refs_without_references' => 'Il existe etiquettas <code><ref></code>, ma nulle etiquetta <code><references/></code> ha essite trovate',
 	'cite_error_group_refs_without_references' => 'Il existe etiquettas <code><ref></code> pro un gruppo nominate "$1", ma nulle etiquetta <code><references group="$1"/></code> correspondente ha essite trovate',
+	'cite_error_references_group_mismatch' => 'Le etiquetta <code><ref></code> in <code><references></code> ha un attributo de gruppo "$1" confligente.',
+	'cite_error_references_missing_group' => 'Le etiquetta <code><ref></code> definite in <code><references></code> ha un attributo de gruppo "$1" que non appare in le texto precedente.',
+	'cite_error_references_missing_key' => 'Le etiquetta <code><ref></code> con nomine "$1" definite in <code><references></code> non es usate in le texto precedente.',
+	'cite_error_references_no_key' => 'Le etiquetta <code><ref></code> definite in <code><references></code> non ha un attributo de nomine.',
+	'cite_error_empty_references_define' => 'Le etiquetta <code><ref></code> definite in <code><references></code> con nomine "$1" ha nulle contento.',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ * @author Irwangatot
  * @author IvanLanin
  * @author Rex
  */
 $messages['id'] = array(
-	'cite_desc' => 'Menambahkan tag <nowiki><ref[ name=id]></nowiki> dan <nowiki><references/></nowiki> untuk kutipan',
+	'cite-desc' => 'Menambahkan tag <nowiki><ref[ name=id]></nowiki> dan <nowiki><references/></nowiki> untuk kutipan',
 	'cite_croak' => 'Kegagalan pengutipan; $1: $2',
-	'cite_error_key_str_invalid' => 'Kesalahan internal; $str tak sah',
-	'cite_error_stack_invalid_input' => 'Kesalahan internal; kunci stack tak sah',
-	'cite_error' => 'Kesalahan pengutipan $1',
-	'cite_error_ref_numeric_key' => 'Kesalahan pemanggilan; diharapkan suatu kunci non-integer',
-	'cite_error_ref_no_key' => 'Kesalahan pemanggilan; tidak ada kunci yang dispesifikasikan',
-	'cite_error_ref_too_many_keys' => 'Kesalahan pemanggilan; kunci tak sah, contohnya karena terlalu banyak atau tidak ada kunci yang dispesifikasikan',
-	'cite_error_ref_no_input' => 'Kesalahan pemanggilan; tidak ada masukan yang dispesifikasikan',
-	'cite_error_references_invalid_input' => 'Kesalahan masukan; seharusnya tidak ada',
-	'cite_error_references_invalid_parameters' => 'Paramater tak sah; seharusnya tidak ada',
-	'cite_error_references_invalid_parameters_group' => 'Tag <code><references></code> tidak valid;
+	'cite_error_key_str_invalid' => 'Kesalahan internal;
+$str dan/atau $key tidak sah.
+Kesalahan ini seharusnya tidak terjadi.',
+	'cite_error_stack_invalid_input' => "Kesalahan internal; 
+kunci ''stack'' tak sah.
+Kesalahan ini seharusnya tidak terjadi.",
+	'cite_error' => 'Kesalahan pengutipan: $1',
+	'cite_error_ref_numeric_key' => 'Tag <code><ref></code> tidak sah; 
+nama tidak boleh intejer sederhana.
+Gunakan nama deskriptif',
+	'cite_error_ref_no_key' => 'Tag <code><ref></code> tidak sah;
+referensi tanpa isi harus memiliki nama',
+	'cite_error_ref_too_many_keys' => 'Tag <code><ref></code> tidak sah;
+nama tidak sah; misalnya, terlalu banyak',
+	'cite_error_ref_no_input' => 'Tag <code><ref></code> tidak sah;
+referensi tanpa nama harus memiliki isi',
+	'cite_error_references_invalid_parameters' => 'Tag <code><references></code> tidak sah;
+parameter tidak diperbolehkan.
+Gunakan <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Tag <code><references></code> tidak sah;
 hanya parameter "group" yang diizinkan.
-Gunakan tag <code><references /></code>, atau <code><references group="..." /></code>',
+Gunakan <code><references /></code>, atau <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Kehabisan label pralana balik tersuai.
 Tambahkan lagi di pesan sistem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
-	'cite_error_references_no_text' => 'Tag <code><ref></code> tak valid; tak ditemukan teks dengan ref dengan nama <code>$1</code>',
+	'cite_error_no_link_label_group' => 'Pranala  kustom label untuk kelompok "$1" habis.
+Tambahkan ketentuan dalam pesan <nowiki> [[MediaWiki:$2]] </nowiki> .',
+	'cite_error_references_no_text' => 'Tag <code><ref></code> tidak sah; 
+tidak ditemukan teks untuk ref bernama <code>$1</code>',
 	'cite_error_included_ref' => 'Tag <ref> harus ditutup oleh </ref>',
+	'cite_error_refs_without_references' => 'Tag <code><ref></code> ditemukan, tapi tag <code><references/></code> tidak ditemukan',
+	'cite_error_group_refs_without_references' => 'Ditemukan tag <code><ref></code> untuk kelompok bernama "$1", tapi tidak ditemukan tag <code><references group="$1"/></code> yang berkaitan',
+	'cite_error_references_group_mismatch' => 'Tag <code><ref></code> di <code><references></code> memiliki atribut kelompok yang bertentangan "$1".',
+	'cite_error_references_missing_group' => 'Tag <code><ref></code> yang didefinisikan di <code><references></code> memiliki atribut kelompok "$1" yang tidak ditampilkan di teks sebelumnya.',
+	'cite_error_references_missing_key' => 'Tag <code><ref></code> dengan nama "$1" yang didefinisikan di <code><references></code> tidak digunakan pada teks sebelumnya.',
+	'cite_error_references_no_key' => 'Tag <code><ref></code> yang didefinisikan di di <code><references></code> tidak memiliki nama atribut.',
+	'cite_error_empty_references_define' => 'Tag <code><ref></code> yang didefinisikan di di <code><references></code> dengan nama "$1" tidak memiliki isi.',
 );
 
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'cite-desc' => 'Tikwá <nowiki><ref[ áhà=id]></nowiki> and <nowiki><references/></nowiki> ndö, maka ntabi okwu',
+	'cite_croak' => 'Nchápụ nwụrụ; $1: $2',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'cite-desc' => 'Agnayon ti <nowiki><ref[ name=id]></nowiki> ken <nowiki><references/></nowiki> nga etiketa, para kadagiti pagdakamat',
+	'cite_croak' => 'Natay ti dakamat; $1: $2',
+	'cite_error_key_str_invalid' => 'Akin-uneg a biddut;
+imbalido $str ken/ wenno $tulbek.
+Daytoy ket saan kuman a napasamak.',
+	'cite_error_stack_invalid_input' => 'Akin-uneg a biddut;
+imbalido a tuon a tulbek.
+Daytoy ket saan kuman a napasamak.',
+	'cite_error' => 'Biddut ti dakamat: $1',
+	'cite_error_ref_numeric_key' => 'Imbalido a <code><ref></code> nga etiketa;
+ti nagan ket saan a mabalin a nalaka a sibubukel. Agusar ti agipalpalawag a titulo',
+	'cite_error_ref_no_key' => 'Imbalido a  <code><ref></code> nga etiketa;
+dagita ref nga awan nagyan na ket masapul a managanan',
+	'cite_error_ref_too_many_keys' => 'Imbalido a  <code><ref></code> nga etiketa;
+imbalido a nag-nagan, a kas adu unay',
+	'cite_error_ref_no_input' => 'Imbalido a <code><ref></code> nga etiketa;
+dagiti ref nga awan ti nagan na ket masapul nga addaan ti nagyan',
+	'cite_error_references_invalid_parameters' => 'Imbalido a <code><references></code> nga etiketa
+awan dagiti parametro a maipalubos.
+Usaren ti <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Imbalido a <code><references></code> nga etiketa;
+parametro a "bunggoy" ket ti maipalubos laeng.
+Usaren ti <code><references /></code> , wenno<code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Naibusan kadagiti nagrunaan a likud ti panilpo nga etiketa.
+Ipalawag pay ti adu idiay <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> a mensahe',
+	'cite_error_no_link_label_group' => 'Naibusan ti nangruna a panilpo nga etiketa para iti bunggoy ti "$1".
+Ipalawag pay ti adu idiay <nowiki>[[MediaWiki:$2]]</nowiki> a mensahe.',
+	'cite_error_references_no_text' => 'Imbalido a <code><ref></code> nga etiketa;
+awan ti teksto a naited para dagiti ref a nanaganan <code>$1</code>',
+	'cite_error_included_ref' => 'Irikrikep ti </ref> napukaw para iti <ref> nga etiketa',
+	'cite_error_refs_without_references' => 'Ti <code><ref></code> nga etiketa ket addaan, ngem awan ti <code><references/></code> nga etiketa a nabirukan',
+	'cite_error_group_refs_without_references' => 'Ti <code><ref></code> nga etiketa para iti bunggoy a nainaganan "$1", ngem awan ti kapadpada a <code><references group="$1"/></code> nga etiketa a nabirukan',
+	'cite_error_references_group_mismatch' => 'Ti <code><ref></code> nga etiketa iday <code><references></code> ket addan ti nagsungat a gupit ti bunggoy "$1".',
+	'cite_error_references_missing_group' => 'Ti <code><ref></code> nga etiketa a naipalawag idiay <code><references></code> ket addaan ti gupit ti bunggoy "$1" a saan nga agparang iti napalabas a teksto.',
+	'cite_error_references_missing_key' => 'Ti <code><ref></code> nga etiketa nga addaan ti nagan "$1" a naipalawag idiay <code><references></code> ket saan a nausar iti napalabas a teksto.',
+	'cite_error_references_no_key' => 'Ti <code><ref></code> nga etiketa a naipalawag idiay <code><references></code> ket awan ti nainagan a gupit.',
+	'cite_error_empty_references_define' => 'Ti <code><ref></code> nga etiketa a naipalawag idiay <code><references></code> nga addaan ti nagan a "$1" ket awan ti nagyan na.',
+);
+
 /** Ido (Ido)
  * @author Malafaya
  */
 $messages['io'] = array(
+	'cite_croak' => 'Cite mortis; $1: $2',
 	'cite_error' => 'Citala eroro: $1',
 );
 
 /** Italian (Italiano)
+ * @author Beta16
  * @author BrokenArrow
  * @author Darth Kule
  * @author Pietrodn
  */
 $messages['it'] = array(
-	'cite_desc' => 'Aggiunge i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> per gestire le citazioni',
+	'cite-desc' => 'Aggiunge i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> per gestire le citazioni',
 	'cite_croak' => 'Errore nella citazione: $1: $2',
 	'cite_error_key_str_invalid' => 'Errore interno;
 $str e/o $key errati.
@@ -1167,17 +1752,21 @@
 	'cite_error_ref_no_key' => "Errore nell'uso del marcatore <code><ref></code>: i ref vuoti non possono essere privi di nome",
 	'cite_error_ref_too_many_keys' => "Errore nell'uso del marcatore <code><ref></code>: nomi non validi (ad es. numero troppo elevato)",
 	'cite_error_ref_no_input' => "Errore nell'uso del marcatore <code><ref></code>: i ref privi di nome non possono essere vuoti",
-	'cite_error_references_invalid_input' => "Errore nell'uso del marcatore <code><references></code>: input non ammesso, usare il marcatore
-<code><references /></code>",
 	'cite_error_references_invalid_parameters' => "Errore nell'uso del marcatore <code><references></code>: parametri non ammessi, usare il marcatore <code><references /></code>",
 	'cite_error_references_invalid_parameters_group' => 'Errore nell\'uso del marcatore <code><references></code>;
 solo il parametro "group" è permesso.
 Usare <code><references /></code> oppure <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Etichette di rimando personalizzate esaurite, aumentarne il numero nel messaggio <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Etichette esaurite per collegamenti personalizzati del gruppo "$1", aumentarne il numero nel messaggio <nowiki>[[MediaWiki:$2]]</nowiki>',
 	'cite_error_references_no_text' => 'Marcatore <code><ref></code> non valido; non è stato indicato alcun testo per il marcatore <code>$1</code>',
 	'cite_error_included_ref' => '</ref> di chiusura mancante per il marcatore <ref>',
 	'cite_error_refs_without_references' => 'Sono presenti dei marcatori <code><ref></code> ma non è stato trovato alcun marcatore <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Sono presenti dei marcatori <code><ref></code> per un gruppo chiamato "$1" ma non è stato trovato alcun marcatore <code><references group="$1"/></code> corrispondente',
+	'cite_error_references_group_mismatch' => 'Il tag <code><ref></code> in <code><references></code> ha attributo gruppo "$1" in conflitto.',
+	'cite_error_references_missing_group' => 'Il tag <code><ref></code> definito in <code><references></code> ha un attributo gruppo "$1" che non compare nel testo precedente.',
+	'cite_error_references_missing_key' => 'Il tag <code><ref></code> con nome "$1" definito in <code><references></code> non è usato nel testo precedente.',
+	'cite_error_references_no_key' => 'Il tag <code><ref></code> definito in <code><references></code> non ha un attributo nome.',
+	'cite_error_empty_references_define' => 'Il tag <code><ref></code> definito in <code><references></code> con nome "$1" non ha alcun contenuto.',
 );
 
 /** Japanese (日本語)
@@ -1187,23 +1776,28 @@
  * @author JtFuruhata
  */
 $messages['ja'] = array(
-	'cite_desc' => '引用のためのタグ<nowiki><ref[ name=id]></nowiki> および <nowiki><references/></nowiki> を追加する',
+	'cite-desc' => '引用のためのタグ<nowiki><ref[ name=id]></nowiki> および <nowiki><references/></nowiki> を追加する',
 	'cite_croak' => '引用タグ機能の重大なエラー。$1: $2',
 	'cite_error_key_str_invalid' => '内部エラー。$str と $key の両方または一方が無効。これはソフトウェアのバグです。',
 	'cite_error_stack_invalid_input' => '内部エラー。スタックキーが無効。これはソフトウェアのバグです。',
 	'cite_error' => '引用エラー: $1',
-	'cite_error_ref_numeric_key' => '無効な <code><ref></code> タグ。名前(<code>name</code> 属性)に単なる数値は使用できません。説明的なものにしてください',
-	'cite_error_ref_no_key' => '無効な <code><ref></code> タグ。引用句の内容がない場合には名前(<code>name</code> 属性)が必要です',
-	'cite_error_ref_too_many_keys' => '無効な <code><ref></code> タグ。引数が不正(数が多すぎる、など)',
-	'cite_error_ref_no_input' => '無効な <code><ref></code> タグ。名前(<code>name</code> 属性)がない場合には引用句の内容が必要です',
-	'cite_error_references_invalid_input' => '無効な <code><references></code> タグ。内容をもつことはできません。<code><references /></code> を用いてください',
+	'cite_error_ref_numeric_key' => '無効な <code><ref></code> タグ。名前(<code>name</code> 属性)に単なる数値は使用できません。説明的なものにしてください',
+	'cite_error_ref_no_key' => '無効な <code><ref></code> タグ。引用句の内容がない場合には名前(<code>name</code> 属性)が必要です',
+	'cite_error_ref_too_many_keys' => '無効な <code><ref></code> タグ。引数が不正(数が多すぎる、など)',
+	'cite_error_ref_no_input' => '無効な <code><ref></code> タグ。名前(<code>name</code> 属性)がない場合には引用句の内容が必要です',
 	'cite_error_references_invalid_parameters' => '無効な <code><references></code> タグ。引数は指定できません。<code><references /></code> を用いてください',
 	'cite_error_references_invalid_parameters_group' => '無効な <code><references></code> タグです。使用できるパラメータは "group" のみです。<code><references /></code> または <code><references group="..." /></code> を用いてください',
 	'cite_error_references_no_backlink_label' => 'バックリンクラベルが使用できる個数を超えました。<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> メッセージでの定義を増やしてください',
+	'cite_error_no_link_label_group' => 'グループ「$1」用のカスタム・リンクラベルを使い果たしました。<nowiki>[[MediaWiki:$2]]</nowiki> メッセージを編集してラベルの定義を増やしてください。',
 	'cite_error_references_no_text' => '無効な <code><ref></code> タグ。「<code>$1</code>」という名前の引用句に対するテキストがありません',
 	'cite_error_included_ref' => '<ref> タグに対応する </ref> が不足しています',
 	'cite_error_refs_without_references' => '<code><ref></code> タグがありますが、<code><references/></code> タグが見つかりません',
 	'cite_error_group_refs_without_references' => '「$1」というグループの <code><ref></code> タグがありますが、対応する <code><references group="$1"/></code> タグが見つかりません',
+	'cite_error_references_group_mismatch' => '<code><references></code> の<code><ref></code> タグに重複するグループ用引数 "$1" が使用されています。',
+	'cite_error_references_missing_group' => '<code><references></code> で定義されている <code><ref></code> タグに使用されているグループ用引数 "$1" は先行するテキスト内に使用されていません。',
+	'cite_error_references_missing_key' => '<code><references></code> で定義されている "name=$1" を持つ <code><ref></code> タグは先行するテキスト内で使用されていません。',
+	'cite_error_references_no_key' => '<code><references></code> で定義されている <code><ref></code> タグには name 属性がありません。',
+	'cite_error_empty_references_define' => '<code><references></code> で定義されている "name=$1" を持つ <code><ref></code> タグには中身がありません。',
 );
 
 /** Jutish (Jysk)
@@ -1218,7 +1812,6 @@
 	'cite_error_ref_no_key' => 'Ugyldigt <code><ref></code>-tag: Et <code><ref></code>-tag uden indhold skal have et navn',
 	'cite_error_ref_too_many_keys' => 'Ugyldigt <code><ref></code>-tag: Ugyldege navne, fx før mange',
 	'cite_error_ref_no_input' => 'Ugyldigt <code><ref></code>-tag: Et <code><ref></code>-tag uden navn skal have indhold',
-	'cite_error_references_invalid_input' => 'Ugyldigt <code><references></code>-tag: Indhold ikke tilladt, brug i stedet <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Ugyldig <code><references></code>-tag: Parametre er ikke tilladt, brug i stedet <code><references /></code>',
 	'cite_error_references_no_backlink_label' => 'For mange <code><ref></code>-tags har det samme "name", tillad flere i beskeden <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>',
 	'cite_error_references_no_text' => 'Ugyldigt <code><ref></code>-tag: Der er ikke specificeret nogen fodnotetekst til navnet <code>$1</code>',
@@ -1229,7 +1822,7 @@
  * @author Pras
  */
 $messages['jv'] = array(
-	'cite_desc' => 'Nambahaké tag <nowiki><ref[ name=id]></nowiki> lan <nowiki><references/></nowiki> kanggo kutipan (sitat)',
+	'cite-desc' => 'Nambahaké tag <nowiki><ref[ name=id]></nowiki> lan <nowiki><references/></nowiki> kanggo kutipan (sitat)',
 	'cite_croak' => 'Sitaté (pangutipané) gagal; $1: $2',
 	'cite_error_key_str_invalid' => 'Kaluputan jero;
 $str lan/utawa $key ora absah.
@@ -1246,8 +1839,6 @@
 jeneng-jenengé ora absah, contoné kakèhan',
 	'cite_error_ref_no_input' => 'Tag <code><ref></code> ora absah;
 refs tanpa jeneng kudu ana isiné',
-	'cite_error_references_invalid_input' => 'Tag <code><references></code> ora absah;
-input (panglebokan) ora diparengaké. Enggonen <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Tag <code><references></code> ora absah;
 ora ana paramèter sing diidinaké.
 Gunakna <code><references /></code>',
@@ -1261,6 +1852,32 @@
 	'cite_error_included_ref' => 'Tag <ref> kudu ditutup déning </ref>',
 );
 
+/** Georgian (ქართული)
+ * @author Dawid Deutschland
+ * @author გიორგიმელა
+ */
+$messages['ka'] = array(
+	'cite-desc' => 'ამატებს <nowiki><ref[ name=id]></nowiki> და <nowiki><references/></nowiki> ტეგებს სქოლიოსთვის',
+	'cite_croak' => 'ციტატა მოკვადა; $1: $2',
+	'cite_error_key_str_invalid' => 'შიდა შეცდომა
+არასწორი $str და/ან $key
+ასეთი არასდროს არ უნდა განმეორდეს',
+	'cite_error_stack_invalid_input' => 'შიდა შეცდომა.
+სტეკის არასწორი გასაღები.
+ეს არ უნდა განმეორდეს.',
+	'cite_error' => 'ციტირების შეცდომა $1',
+	'cite_error_ref_numeric_key' => 'არასწორი ტეგი <code><ref></code> tag;
+სახელმიარ უნდა შეიცავდეს ციფრებს.',
+	'cite_error_ref_no_key' => 'არასწორი ტეგი <code><ref></code>;
+ელემენტი უნდა შეიცავდეს სახელს.',
+	'cite_error_ref_too_many_keys' => 'არასწორი ტეგი <code><ref></code>;
+არასწორი სახელები, ძალიან ბევრი.',
+	'cite_error_ref_no_input' => 'არასწორი ტეგი <ref>; ელემენტი უნდა შეიცავდეს შინაარს.',
+	'cite_error_references_invalid_parameters_group' => 'არასწორი<code><references></code> გამოყენება: 
+დაშვებულია მხოლო პარამეტრი „group“-ის გამოყენება.
+გამოიყენე <tt><references /></tt> ან <tt><references group="…" /></tt>',
+);
+
 /** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
 $messages['kk-arab'] = array(
 	'cite_croak' => 'دٵيەكسٶز الۋ سٵتسٸز بٸتتٸ; $1: $2',
@@ -1271,12 +1888,11 @@
 	'cite_error_ref_no_key' => 'جارامسىز <code><ref></code> بەلگٸشەسٸ; ماعلۇماتسىز تٷسٸنٸكتەمەلەردە اتاۋ بولۋى قاجەت',
 	'cite_error_ref_too_many_keys' => 'جارامسىز <code><ref></code> بەلگٸشە; جارامسىز اتاۋلار, مىسالى, تىم كٶپ',
 	'cite_error_ref_no_input' => 'جارامسىز <code><ref></code> بەلگٸشە; اتاۋسىز تٷسٸنٸكتەمەلەردە ماعلۇماتى بولۋى قاجەت',
-	'cite_error_references_invalid_input' => 'جارامسىز <code><references></code> بەلگٸشە; ەش كٸرٸس رۇقسات ەتٸلمەيدٸ, بىلاي <code><references /></code> قولدانىڭىز',
 	'cite_error_references_invalid_parameters' => 'جارامسىز <code><references></code> بەلگٸشە; ەش باپتار رۇقسات ەتٸلمەيدٸ, بىلاي <code><references /></code> قولدانىڭىز',
 	'cite_error_references_no_backlink_label' => 'قوسىمشا بەلگٸلەردٸڭ سانى بٸتتٸ, ودان ٵرٸ كٶبٸرەك <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> جٷيە حابارىندا بەلگٸلەڭٸز',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'cite_croak' => 'Дәйексөз алу сәтсіз бітті; $1: $2',
 	'cite_error_key_str_invalid' => 'Ішкі қате; жарамсыз $str',
@@ -1286,12 +1902,11 @@
 	'cite_error_ref_no_key' => 'Жарамсыз <code><ref></code> белгішесі; мағлұматсыз түсініктемелерде атау болуы қажет',
 	'cite_error_ref_too_many_keys' => 'Жарамсыз <code><ref></code> белгіше; жарамсыз атаулар, мысалы, тым көп',
 	'cite_error_ref_no_input' => 'Жарамсыз <code><ref></code> белгіше; атаусыз түсініктемелерде мағлұматы болуы қажет',
-	'cite_error_references_invalid_input' => 'Жарамсыз <code><references></code> белгіше; еш кіріс рұқсат етілмейді, былай <code><references /></code> қолданыңыз',
 	'cite_error_references_invalid_parameters' => 'Жарамсыз <code><references></code> белгіше; еш баптар рұқсат етілмейді, былай <code><references /></code> қолданыңыз',
 	'cite_error_references_no_backlink_label' => 'Қосымша белгілердің саны бітті, одан әрі көбірек <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> жүйе хабарында белгілеңіз',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'cite_croak' => 'Däýeksöz alw sätsiz bitti; $1: $2',
 	'cite_error_key_str_invalid' => 'İşki qate; jaramsız $str',
@@ -1301,21 +1916,29 @@
 	'cite_error_ref_no_key' => 'Jaramsız <code><ref></code> belgişesi; mağlumatsız tüsiniktemelerde ataw bolwı qajet',
 	'cite_error_ref_too_many_keys' => 'Jaramsız <code><ref></code> belgişe; jaramsız atawlar, mısalı, tım köp',
 	'cite_error_ref_no_input' => 'Jaramsız <code><ref></code> belgişe; atawsız tüsiniktemelerde mağlumatı bolwı qajet',
-	'cite_error_references_invalid_input' => 'Jaramsız <code><references></code> belgişe; eş kiris ruqsat etilmeýdi, bılaý <code><references /></code> qoldanıñız',
 	'cite_error_references_invalid_parameters' => 'Jaramsız <code><references></code> belgişe; eş baptar ruqsat etilmeýdi, bılaý <code><references /></code> qoldanıñız',
 	'cite_error_references_no_backlink_label' => 'Qosımşa belgilerdiñ sanı bitti, odan äri köbirek <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> jüýe xabarında belgileñiz',
 );
 
+/** Khmer (ភាសាខ្មែរ)
+ * @author គីមស៊្រុន
+ * @author វ័ណថារិទ្ធ
+ */
+$messages['km'] = array(
+	'cite-desc' => 'បន្ថែមស្លាក <nowiki><ref[ name=id]></nowiki> និង <nowiki><references/></nowiki>​ សម្រាប់ការយោង​ឯកសារ​',
+);
+
 /** Korean (한국어)
  * @author Ficell
+ * @author Ilovesabbath
  * @author Kwj2772
  * @author ToePeu
  */
 $messages['ko'] = array(
-	'cite_desc' => '인용에 쓰이는 <nowiki><ref[ name=id]></nowiki>와 <nowiki><references/></nowiki>태그를 더합니다.',
+	'cite-desc' => '인용에 쓰이는 <nowiki><ref[ name=id]></nowiki>와 <nowiki><references/></nowiki>태그를 더합니다.',
 	'cite_croak' => '인용 오류; $1: $2',
 	'cite_error_key_str_invalid' => '내부 오류;
-$str 혹은 $key가 잘봇되었습니다.
+$str 혹은 $key가 잘못되었습니다.
 이 오류는 발생하지 않아야 합니다.',
 	'cite_error_stack_invalid_input' => '내부 오류; 스택 키가 잘못되었습니다.
 이 오류는 발생하지 말아야 합니다.',
@@ -1324,6 +1947,8 @@
 이름은 숫자가 될 수 없습니다. 설명적인 이름을 사용하십시오.',
 	'cite_error_ref_no_key' => '<code><ref></code> 태그가 잘못되었습니다;
 내용이 없는 주석은 이름이 있어야 합니다.',
+	'cite_error_ref_too_many_keys' => '잘못된 <code><ref></code> 태그 사용;
+예컨대 잘못된 주석 이름이 너무 많습니다.',
 	'cite_error_ref_no_input' => '<code><ref></code> 태그가 잘못되었습니다;
 이름이 없는 ref 태그는 반드시 내용이 있어야 합니다.',
 	'cite_error_references_invalid_parameters' => '<code><references></code> 태그가 잘못되었습니다;
@@ -1332,15 +1957,29 @@
 	'cite_error_references_invalid_parameters_group' => '<code><references></code> 태그가 잘못되었습니다;
 "group" 변수만 사용할 수 있습니다.
 <code><references /></code>나 <code><references group="..." /></code>만 이용하십시오.',
+	'cite_error_references_no_backlink_label' => '역링크 라벨이 부족합니다.
+<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>에 더 많은 라벨을 추가하십시오.',
+	'cite_error_no_link_label_group' => '그룹 "$1"에 대해 링크 레이블이 모두 떨어졌습니다.
+<nowiki>[[MediaWiki:$2]]</nowiki> 메시지에 더 많은 레이블을 정의해주십시오.',
+	'cite_error_references_no_text' => '<code><ref></code> 태그가 잘못되었습니다.
+<code>$1</code>라는 이름을 가진 주석에 대한 내용이 없습니다.',
+	'cite_error_included_ref' => '<ref> 태그를 닫는 </ref> 태그가 없습니다.',
 	'cite_error_refs_without_references' => '<code><ref></code> 태그가 존재하지만, <code><references/></code> 태그가 없습니다.',
+	'cite_error_group_refs_without_references' => '"$1"이라는 이름을 가진 그룹에 대한 <code><ref></code> 태그가 존재하지만, 이에 대응하는 <code><references group="$1" /></code> 태그가 없습니다.',
+	'cite_error_references_group_mismatch' => '<code><references></code> 안에 있는 <code><ref></code> 태그의 그룹 속성 "$1"이 충돌됩니다.',
+	'cite_error_references_missing_group' => '<code><references></code> 안의 <code><ref></code> 태그가 이전에 존재하지 않는 그룹 속성 "$1"을 갖고 있습니다.',
+	'cite_error_references_missing_key' => '<code><references></code> 안에 정의된 "$1"이라는 이름을 가진 <code><ref></code> 태그가 위에서 사용되고 있지 않습니다.',
+	'cite_error_references_no_key' => '<code><references></code> 안의 <code><ref></code> 태그에 이름이 없습니다.',
+	'cite_error_empty_references_define' => '<code><references></code> 태그 안에 정의된 "$1"이라는 이름을 가진 <code><ref></code> 태그에 내용이 없습니다.',
 	'cite_references_link_many_format_backlink_labels' => '가 나 다 라 마 바 사 아 자 차 카 타 파 하 거 너 더 러 머 버 서 어 저 처 커 터 퍼 허 고 노 도 로 모 보 소 오 조 초 코 토 포 호 구 누 두 루 무 부 수 우 주 추 쿠 투 푸 후 그 느 드 르 므 브 스 으 즈 츠 크 트 프 흐 기 니 디 리 미 비 시 이 지 치 키 티 피 히',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
+ * @author The Evil IP address
  */
 $messages['ksh'] = array(
-	'cite_desc' => 'Erlaub Quelle un Referenze met <tt><nowiki><ref[ name="id"]></nowiki></tt> un <tt><nowiki><references /></nowiki></tt> aanzejevve.',
+	'cite-desc' => 'Erlaub Quelle un Referenze met <nowiki><ref[ name="id"]></nowiki> un <nowiki><references /></nowiki> aanzejevve.',
 	'cite_croak' => 'Fääler met Refenenze. $1: $2',
 	'cite_error_key_str_invalid' => 'Interne Fähler in <i lang="en">cite</i>:
 <code>$str</code> udder <code>$key</code> stemme nit.
@@ -1348,7 +1987,7 @@
 	'cite_error_stack_invalid_input' => 'Interne Fähler in <i lang="en">cite</i>:
 Der <i lang="en">stack</i>-Schlößel stemmp nit.
 Dat sull nie optredde.',
-	'cite_error' => 'Fähler in <i lang="en">cite</i> met Refenenze: $1',
+	'cite_error' => 'Fähler in <i lang="en">cite</i> met Referenze: $1',
 	'cite_error_ref_numeric_key' => 'Fähler en <i lang="en">cite</i>:
 Ene <code><ref></code>-Name kann kei Zahl sin.
 Nemm enne Tittel, dä jät säht.',
@@ -1360,9 +1999,6 @@
 udder kapodde ene Name.',
 	'cite_error_ref_no_input' => 'Fähler en <i lang="en">cite</i>:
 E <code><ref></code> oohne Name moß ene Enhallt han.',
-	'cite_error_references_invalid_input' => 'Fähler en <i lang="en">cite</i>:
-E <code><references></code> moß oohne Enhalt sin.
-Nemm eifach <code><references /></code> un söns nix.',
 	'cite_error_references_invalid_parameters' => 'Fähler en <i lang="en">cite</i>:
 E <code><references></code> moß oohne Parrametere sin.
 Nemm eifach <code><references /></code> un söns nix.',
@@ -1372,27 +2008,31 @@
 	'cite_error_references_no_backlink_label' => 'Fähler en <i lang="en">cite</i>:
 Nit jenoch Name för retuur-Lengks.
 Donn mieh en dä Sigg <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> enndrare.',
+	'cite_error_no_link_label_group' => 'För de Jruppe „$1“ senn er kein Bezeichnunge för Links mieh doh.
+Donn op <nowiki>[[MediaWiki:$2]]</nowiki> noch e paa dobei.',
 	'cite_error_references_no_text' => 'Fähler en <i lang="en">cite</i>:
 Et wohr keine Tex aanjejovve för de
 <code><ref></code>s met dämm Name „<code>$1</code>“.',
 	'cite_error_included_ref' => 'Hee för dat <ref> ham_mer kei zopaß </ref>',
 	'cite_error_refs_without_references' => 'Et sinn_er <code><ref></code>-Befähle en dä Sigg, ävver mer han keine <code><references/></code>-Befähl jefunge.',
 	'cite_error_group_refs_without_references' => 'Et sinn_er <code><ref></code>-Befähle för de jrop „$1“ en hee dä Sigg, ävver mer han keine <code><references group="$1"/></code>-Befähl jefunge.',
+	'cite_error_references_group_mismatch' => 'Dä <code><ref></code> Befähl en <code><references></code> hät en widerschpröschlesche Jroppe-Eijeschaff „$1“.',
+	'cite_error_references_missing_group' => 'Dä <code><ref></code> Befähl, aanjejoove em Befähl <code><references></code>, hät en Jroppe-Eijeschaff „$1“, di ävver em Täx doför nit vörjekumme es.',
+	'cite_error_references_missing_key' => 'Dä <code><ref></code> Befähl mem Naame „$1“, aanjejoove em Befähl <code><references></code>, es em Täx doför nit vörjekumme.',
+	'cite_error_references_no_key' => 'Dä <code><ref></code> Befähl, aanjejoove em Befähl <code><references></code>, hät kei Eijeschaff <code>name=</code> aanjejovve.',
+	'cite_error_empty_references_define' => 'Dä <code><ref></code> Befähl mem Naame „$1“, aanjejoove em Befähl <code><references></code> mem Name „$1“, hät keine Enhallt.',
 	'cite_reference_link_key_with_num' => '$1_$2',
-	'cite_reference_link_prefix' => 'cite_ref-',
-	'cite_references_link_prefix' => 'cite_note-',
-	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
-	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
-	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
-	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
+	'cite_reference_link_prefix' => 'fohss_noht_betreck_',
+	'cite_references_link_prefix' => 'fohss_noht_nommer_',
+	'cite_references_link_many_and' => ' ',
 );
 
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
-	'cite_desc' => 'Setzt <nowiki><ref[ name=id]></nowiki> an <nowiki><references/></nowiki> Taggen derbäi, fir Zitatiounen.',
+	'cite-desc' => 'Setzt <nowiki><ref[ name=id]></nowiki> an <nowiki><references/></nowiki> Taggen derbäi, fir Zitatiounen.',
 	'cite_croak' => 'Feeler am Referenz-System. $1 : $2',
 	'cite_error_key_str_invalid' => 'Interne Feeler;
 net valabele $str an/oder $key.
@@ -1402,33 +2042,37 @@
 Dës sollt eigentlech guer net geschéien.",
 	'cite_error' => 'Zitéierfeeler: $1',
 	'cite_error_ref_numeric_key' => 'Ongëltegen <code><ref></code> Tag;
-De Numm ka keng einfach ganz Zuel sinn. Benotzt w.e.g. een Titel den eng Beschreiwung gëtt',
+Den Numm ka keng einfach ganz Zuel sinn. Benotzt w.e.g. een Titel den eng Beschreiwung gëtt',
 	'cite_error_ref_no_key' => 'Ongëltegen <code><ref></code> Tag;
 Referenzen ouni Inhalt mussen e Numm hunn',
 	'cite_error_ref_too_many_keys' => 'Ongëltege <code><ref></code> Tag;
 ongëlteg Nimm, z. Bsp. zevill',
 	'cite_error_ref_no_input' => "Ongëltege <code><ref></code> Tag;
 ''refs'' ouni Numm muss een Inhalt hun",
-	'cite_error_references_invalid_input' => 'Ongëltegen <code><references></code> Tag;
-Keen Input ass erlaabt. Benotzt <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Ongëltegen <code><references></code> Tag;
 et si keng Parameter erlaabt.
 Benotzt <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Ongëltege  <code><references></code> Tag;
 nëmmen de Parameter "group" ass erlaabt.
 Benotzt <code><references /></code>, oder <code><references group="..." /></code>',
-	'cite_error_references_no_text' => "Ongëltegen <code><ref></code> Tag;
-et gouf keen Text uginn fir d'Referenzen mam Numm <code>$1</code>",
+	'cite_error_references_no_text' => "Ongëlteg <code><ref></code> Markéierung;
+et gouf keen Text ugi fir d'Referenze mam Numm <code>$1</code>",
 	'cite_error_included_ref' => 'Den Tag </ref> feelt fir den Tag <ref> zouzemaachen',
-	'cite_error_refs_without_references' => 'Den Tag <code><ref></code> gëtt et, awer den Tag <code><references/></code> gouf net fonnt',
-	'cite_error_group_refs_without_references' => 'Den Tag <code><ref></code> gëtt et fir de Grupp "$1", awer den entspriechenden Tag <code><references group="$1"/></code> gouf net fonnt',
+	'cite_error_refs_without_references' => "D'Markéierung <code><ref></code> gëtt et, awer d'Markéierung <code><references/></code> gouf net fonnt",
+	'cite_error_group_refs_without_references' => 'D\'Markéierung <code><ref></code> gëtt et fir d\'Grupp "$1", awer d\'entspriechend Markéierung <code><references group="$1"/></code> gouf net fonnt',
+	'cite_error_references_group_mismatch' => 'Den <code><ref></code>-Tag an <code><references></code> huet den Attribut "$1" deen am Konflikt mat deem am <code><references></code> steet.',
+	'cite_error_references_missing_group' => 'Deen am <code><references></code> definéierten <code><ref></code>-Tag huet en Attribut "$1" deen am Text virdrun net dran ass.',
+	'cite_error_references_missing_key' => 'Deen am <code><references></code> definéierten <code><ref></code>-Tag mam Numm "$1" gëtt am Text virdrun net benotzt.',
+	'cite_error_references_no_key' => "D'Markéierung <code><ref></code> déi an <code><references></code> definéiert ass huet keng Nummeegeschaft.",
+	'cite_error_empty_references_define' => "D'Markéierung <code><ref></code> déi am <code><references></code> mat dem Numm  « $1 » definéiert ass, ass eidel.",
 );
 
 /** Limburgish (Limburgs)
  * @author Ooswesthoesbes
+ * @author Pahles
  */
 $messages['li'] = array(
-	'cite_desc' => 'Voeg <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> tags toe veur citate',
+	'cite-desc' => 'Voeg <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> tags toe veur citate',
 	'cite_croak' => 'Perbleem mit Citere; $1: $2',
 	'cite_error_key_str_invalid' => 'Interne fout; ónzjuuste $str en/of $key.  Dit zów noeaits mótte veurkómme.',
 	'cite_error_stack_invalid_input' => 'Interne fout; ónzjuuste stacksleutel.  Dit zów noeaits mótte veurkómme.',
@@ -1437,22 +2081,31 @@
 	'cite_error_ref_no_key' => "Ónzjuuste tag <code><ref></code>; refs zónger inhoud mótte 'ne naam höbbe",
 	'cite_error_ref_too_many_keys' => 'Ónzjuuste tag <code><ref></code>; ónzjuuste name, beveurbeildj te väöl',
 	'cite_error_ref_no_input' => 'Ónzjuuste tag <code><ref></code>; refs zónger naam mótte inhoud höbbe',
-	'cite_error_references_invalid_input' => 'Ónzjuuste tag <code><references></code>; inveur is neet toegestaon, gebroek <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Ónzjuuste tag <code><references></code>; paramaeters zeen neet toegestaon, gebroek <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Onjuuste tag <code><references></code>;
 allein de paramaeter "group" is toegestaon.
 Gebruik <code><references /></code>, of <code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => "'t Aantal besjikbare backlinklabels is opgebroek. Gaef meer labels op in 't berich <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>",
+	'cite_error_references_no_backlink_label' => "'t Aantal besjikbare backlinklabels is opgebroek. Gaef meer labels op in 't berich <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>",
+	'cite_error_no_link_label_group' => '\'t Aantal aangepasde verwiezingslabels veure groep "$1" is oetgepöt.
+Doe kans d\'r mier insjtelle in \'t sysyeemberich <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => "Ónzjuuste tag <code><ref></code>; d'r is gein teks opgegaeve veur refs mit de naam <code>$1</code>",
-	'cite_error_included_ref' => "'t Sloetteike </ref> mis veure tag <ref>",
+	'cite_error_included_ref' => 'Gein sjloetteike </ref> veur de tag <ref>',
 	'cite_error_refs_without_references' => 'De tag <code><ref></code> besteit al, meh de tag <code><references/></code> is neet aangetróffe',
 	'cite_error_group_refs_without_references' => 'd\'r Besteit \'ne tag <code><ref></code> veure groep "$1", meh d\'r is geine bebehuuerendje tag <code><references group="$1"/></code> gevónje',
+	'cite_error_references_group_mismatch' => 'De tag <code><ref></code> in <code><references></code> conflicteert mit groepseigesjap "$1".',
+	'cite_error_references_missing_group' => 'De tag <code><ref></code> dae is gedefinieerd in <code><references></code> haet de groepseigesjap "$1" neet ierder in de tekst veurkump.',
+	'cite_error_references_missing_key' => 'De tag <code><ref></code> mit de naam "$1" gedefiniteerd in <code><references></code> weurt neet ierder in de teks gebroek.',
+	'cite_error_references_no_key' => 'De tag <code><ref></code> dae is gedefinieerd in <code><references></code> haet geine eigesjapsnaam.',
+	'cite_error_empty_references_define' => 'De tag <code><ref></code> dae is gedefinieerd in <code><references></code> mit de naam "$1" haet geinen inhawd.',
 );
 
 /** Lithuanian (Lietuvių)
+ * @author Garas
  * @author Homo
+ * @author Matasg
  */
 $messages['lt'] = array(
+	'cite-desc' => 'Prideda <nowiki><ref[ name=id]></nowiki> ir <nowiki><references/></nowiki> žymes citavimui',
 	'cite_croak' => 'Cituoti nepavyko; $1: $2',
 	'cite_error_key_str_invalid' => 'Vidinė klaida; neleistinas $str',
 	'cite_error_stack_invalid_input' => 'Vidinė klaida; neleistinas steko raktas',
@@ -1461,114 +2114,162 @@
 	'cite_error_ref_no_key' => 'Neleistina <code><ref></code> gairė; nuorodos be turinio turi turėti vardą',
 	'cite_error_ref_too_many_keys' => 'Neleistina <code><ref></code> gairė; neleistini vardai, pvz., per daug',
 	'cite_error_ref_no_input' => 'Neleistina <code><ref></code> gairė; nuorodos be vardo turi turėti turinį',
-	'cite_error_references_invalid_input' => 'Neleistina <code><references></code> gairė; neleistina jokia įvestis, naudokite <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Neleistina <code><references></code> gairė; neleidžiami jokie parametrai, naudokite <code><references /></code>',
-	'cite_error_references_no_backlink_label' => 'Baigėsi antraštės, nurodykite daugiau <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki> sisteminiame tekste',
+	'cite_error_references_no_backlink_label' => 'Baigėsi antraštės.
+Nurodykite daugiau <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> sisteminiame tekste',
+	'cite_error_included_ref' => 'Trūksta uždaromojo </ref> žymei <ref>',
+	'cite_error_refs_without_references' => 'puslapyje egzistuoja žyma <code><ref></code>, tačiau žymos <code><references/></code> nėra rasta',
 );
 
 /** Latvian (Latviešu)
+ * @author GreenZeb
+ * @author Marozols
  * @author Xil
  */
 $messages['lv'] = array(
-	'cite_desc' => 'Pievieno <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> tagus, atsaucēm',
+	'cite-desc' => 'Pievieno <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> tagus, atsaucēm',
 	'cite_error' => 'Kļūda atsaucē: $1',
+	'cite_error_refs_without_references' => 'atrasta <code><ref></code> iezīme, bet nav nevienas <code><references/></code> iezīmes',
 );
 
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'cite-desc' => 'Mamnpy ny balizy <tt><nowiki><ref[ name="id"]></nowiki></tt> et <tt><nowiki><references/></nowiki></tt> ho an\'ny tsiahy.',
+	'cite_croak' => 'Tsiahy tsy miafana ; $1 : $2',
+	'cite_error_key_str_invalid' => 'Tsy fetezana ety anaty;
+Tsy mety $str na $key.
+Tokony tsy hitranga mihintsy ity tsy fetezana ity.',
+	'cite_error_stack_invalid_input' => 'Tsy fetezana ety anaty ;
+tsy mety ny stack key.
+Tokony tsy hitranga mihitsy ity tsy fetezana ity.',
+);
+
 /** Macedonian (Македонски)
+ * @author Bjankuloski06
  * @author Brest
  */
 $messages['mk'] = array(
-	'cite_desc' => 'Додава <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> приврзоци, за наводи',
-	'cite_croak' => 'Непостоечки цитат; $1: $2',
-	'cite_error_key_str_invalid' => 'Интерна грешка;
-погрешен $str и/или $key.
-Ова не треба никогаш да се појави.',
-	'cite_error_stack_invalid_input' => 'Интерна грешка;
+	'cite-desc' => 'Додава ознаки <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki>, за цитирања',
+	'cite_croak' => 'Цитатот се урна; $1: $2',
+	'cite_error_key_str_invalid' => 'Внатрешна грешка;
+погрешна вредност на $str и/или $key.
+Ова никогаш не треба да се случува.',
+	'cite_error_stack_invalid_input' => 'Внатрешна грешка;
 погрешен клуч за купот.
-Ова не треба никогаш да се појави.',
-	'cite_error' => 'Грешка во цитирање: $1.',
-	'cite_error_ref_numeric_key' => 'Погрешен <code><ref></code> приврзок;
-името не може да биде број. Употребувајте описен наслов',
-	'cite_error_ref_no_key' => 'Погрешен <code><ref></code> приврзок;
-навод без содржина мора да има име',
-	'cite_error_ref_too_many_keys' => 'Погрешен <code><ref></code> приврзок;
-грешни имиња, т.е. ги има многу',
-	'cite_error_ref_no_input' => 'Погрешен <code><ref></code> приврзок;
-навод без име мора да има содржина',
-	'cite_error_references_invalid_input' => 'Погрешен <code><references></code> приврзок;
-не е допуштено внесување. Употребувајте <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'Погрешен <code><references></code> приврзок;
-не се допуштени параметри.
-Употребувајте <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'Погрешен <code><references></code> приврзок;
-само параметарот "group" е допуштен.
-Употребувајте <code><references /></code>, или <code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => 'Недостаток на беклинк ознаки.
-Дефинирај повеќе во пораката <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
-	'cite_error_references_no_text' => 'Погрешен <code><ref></code> приврзок;
-нема текст за наводот означен како <code>$1</code>',
-	'cite_error_included_ref' => 'Затворање на </ref> недостасува за <ref> приврзок',
-	'cite_error_refs_without_references' => 'Постојат <code><ref></code> приврзоци, но нема <code><references/></code> приврзок',
-	'cite_error_group_refs_without_references' => 'Постојат <code><ref></code> приврзоци за група именувана како "$1", но нема соодветен <code><references group="$1"/></code> приврзок',
-	'cite_reference_link_key_with_num' => '$1_$2',
-	'cite_reference_link_prefix' => 'cite_ref-',
+Ова никогаш не треба да се случува.',
+	'cite_error' => 'Грешка при цитирањето: $1.',
+	'cite_error_ref_numeric_key' => 'Погрешна ознака <code><ref></code>;
+името не може да биде број. Употребете описен наслов',
+	'cite_error_ref_no_key' => 'Погрешна ознака <code><ref></code>;
+наводите без содржина мора да имаат име',
+	'cite_error_ref_too_many_keys' => 'Погрешна ознака<code><ref></code>;
+погрешни имиња, т.е. ги има премногу',
+	'cite_error_ref_no_input' => 'Погрешна ознака <code><ref></code>;
+наводите без име мораат да имаат содржина',
+	'cite_error_references_invalid_parameters' => 'Погрешна ознака<code><references></code>;
+употребата на параметри не е дозволена.
+Употребете <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Погрешна ознака <code><references></code>;
+допуштен само параметарот „group“.
+Употребете <code><references /></code> или <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Нема доволно натписи за повратни врски.
+Определете уште натписи во <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Се потрошија натписите на прилагодените врски за групата „$1“.
+Определете уште во пораката <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Погрешна ознака <code><ref></code>;
+нема зададено текст за наводите по име <code>$1</code>',
+	'cite_error_included_ref' => 'На ознаката <ref> ѝ недостасува ознака за затворање </ref&gt',
+	'cite_error_refs_without_references' => 'Статијата има ознаки <code><ref></code>, но не ја најдов потребната ознака <code>{{наводи}}</code> (или <code><references/></code>)',
+	'cite_error_group_refs_without_references' => 'Има ознаки <code><ref></code> за група именувана како „$1“, но нема соодветна ознака <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'Ознаката <code><ref></code> во <code><references></code> има спротиставен групен атрибут „$1“.',
+	'cite_error_references_missing_group' => 'Ознаката <code><ref></code> определена во <code><references></code> има групен атрибут „$1“ кој не се јавува во претходен текст.',
+	'cite_error_references_missing_key' => 'Ознаката <code><ref></code> со име „$1“ определена во <code><references></code> не се користи во претходен текст.',
+	'cite_error_references_no_key' => 'Ознаката <code><ref></code> определена во <code><referencesgt;</code> нема именски атрибут.',
+	'cite_error_empty_references_define' => 'Ознаката <code><ref></code> определена во <code><references></code> со име „$1“ нема содржина.',
 );
 
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'cite_desc' => 'അവലംബം ചേര്‍ക്കുവാന്‍ ഉപയോഗിക്കാനുള്ള <nowiki><ref[ name=id]></nowiki>, <nowiki><references/></nowiki> എന്നീ ടാഗുകള്‍ ചേര്‍ക്കുന്നു',
+	'cite-desc' => 'അവലംബം ചേർക്കുവാൻ ഉപയോഗിക്കാനുള്ള <nowiki><ref[ name=id]></nowiki>, <nowiki><references/></nowiki> എന്നീ ടാഗുകൾ ചേർക്കുന്നു',
 	'cite_croak' => 'സൈറ്റ് ചത്തിരിക്കുന്നു; $1: $2',
 	'cite_error_key_str_invalid' => 'ആന്തരിക പിഴവ്; 
-അസാധുവായ $str അല്ലെങ്കില്‍ $key.
-ഇതു ഒരിക്കലും സംഭവിക്കാന്‍ പാടില്ലായിരുന്നു.',
-	'cite_error_stack_invalid_input' => 'ആന്തരിക പിഴവ്; അസാധുവായ സ്റ്റാക് കീ. ഇതു ഒരിക്കലും സംഭവിക്കാന്‍ പാടില്ലായിരുന്നു.',
-	'cite_error' => 'ഉദ്ധരിച്ചതില്‍ പിഴവ്: $1',
+അസാധുവായ $str അല്ലെങ്കിൽ $key.
+ഇതു ഒരിക്കലും സംഭവിക്കാൻ പാടില്ലായിരുന്നു.',
+	'cite_error_stack_invalid_input' => 'ആന്തരിക പിഴവ്; അസാധുവായ സ്റ്റാക് കീ. ഇതു ഒരിക്കലും സംഭവിക്കാൻ പാടില്ലായിരുന്നു.',
+	'cite_error' => 'ഉദ്ധരിച്ചതിൽ പിഴവ്: $1',
 	'cite_error_ref_numeric_key' => 'അസാധുവായ <code><ref></code> ടാഗ്;
-നാമത്തില്‍ സംഖ്യ മാത്രമായി അനുവദനീയമല്ല. എന്തെങ്കിലും ലഘുവിവരണം ഉപയോഗിക്കുക.',
+നാമത്തിൽ സംഖ്യ മാത്രമായി അനുവദനീയമല്ല. എന്തെങ്കിലും ലഘുവിവരണം ഉപയോഗിക്കുക.',
 	'cite_error_ref_no_key' => 'അസാധുവായ <code><ref></code> ടാഗ്;
 ഉള്ളടക്കമൊന്നുമില്ലാത്ത അവലംബത്തിനും ഒരു പേരു വേണം.',
 	'cite_error_ref_too_many_keys' => 'അസാധുവായ <code><ref></code> ടാഗ്;
-അസാധുവായ പേരുകള്‍, ഉദാ: too many',
+അസാധുവായ പേരുകൾ, ഉദാ: too many',
 	'cite_error_ref_no_input' => 'അസാധുവായ <code><ref></code> ടാഗ്;
 പേരില്ലാത്ത അവലംബത്തിനു ഉള്ളടക്കമുണ്ടായിരിക്കണം.',
-	'cite_error_references_invalid_input' => 'അസാധുവായ <code><references></code> ടാഗ്;
-റെഫറന്‍സ് ടാഗിനകത്ത് ടെക്സ്റ്റ് അനുവദനീയമല്ല. പകരം ഇങ്ങനെ <code><references /></code> ചെയ്യാവുന്നതാണു.',
 	'cite_error_references_invalid_parameters' => 'അസാധുവായ <code><references></code> ടാഗ്;
-റെഫറന്‍സ് ടാഗിനകത്ത് പരാമീററ്ററുകള്‍ അനുവദനീയമല്ല. പകരം ഇങ്ങനെ <code><references /></code> ചെയ്യാവുന്നതാണു.',
+റെഫറൻസ് ടാഗിനകത്ത് പരാമീററ്ററുകൾ അനുവദനീയമല്ല. പകരം ഇങ്ങനെ <code><references /></code> ചെയ്യാവുന്നതാണു.',
 	'cite_error_references_invalid_parameters_group' => 'അസാധുവായ <code><references></code> ടാഗ്;
-റെഫറന്‍സ് ടാഗിനകത്ത് "group" പരാമീറ്റര്‍ മാത്രമേ അനുവദനീമായുള്ളൂ. പകരം ഇങ്ങനെ <code><references /></code>, അല്ലെങ്കില്‍ <code><references group="..." /></code> ചെയ്യാവുന്നതാണു.',
+റെഫറൻസ് ടാഗിനകത്ത് "group" പരാമീറ്റർ മാത്രമേ അനുവദനീമായുള്ളൂ. പകരം ഇങ്ങനെ <code><references /></code>, അല്ലെങ്കിൽ <code><references group="..." /></code> ചെയ്യാവുന്നതാണു.',
+	'cite_error_references_no_backlink_label' => 'പിൻകണ്ണികൾക്കായി നൽകുന്ന ഇച്ഛാനുസരണ കുറികൾ തീർന്നുപോയിരിക്കുന്നു.
+കൂടുതൽ [[MediaWiki:Cite references link many format backlink labels]] സന്ദേശത്തിൽ നിർവചിക്കുക.',
+	'cite_error_no_link_label_group' => '"$1" സംഘത്തിലെ കണ്ണികൾക്കായി നൽകുന്ന ഇച്ഛാനുസരണ കുറികൾ തീർന്നുപോയിരിക്കുന്നു.
+കൂടുതൽ <nowiki>[[MediaWiki:$2]]</nowiki> സന്ദേശത്തിൽ നിർവചിക്കുക.',
 	'cite_error_references_no_text' => 'അസാധുവായ <code><ref></code> ടാഗ്;
-<code>$1</code> എന്ന അവലംബങ്ങള്‍ക്ക് ടെക്സ്റ്റ് ഒന്നും കൊടുത്തിട്ടില്ല.',
+<code>$1</code> എന്ന അവലംബങ്ങൾക്ക് ടെക്സ്റ്റ് ഒന്നും കൊടുത്തിട്ടില്ല.',
+	'cite_error_included_ref' => '<ref> റ്റാഗിനു </ref> എന്ന അന്ത്യറ്റാഗ് നൽകിയിട്ടില്ല',
+	'cite_error_refs_without_references' => '<code><ref></code> റ്റാഗുകൾ നൽകിയിട്ടുണ്ട്, പക്ഷേ <code><references/></code> റ്റാഗ് കണ്ടെത്താനായില്ല.',
+	'cite_error_group_refs_without_references' => '<code><ref></code> റ്റാഗുകൾ "$1" സംഘത്തിൽ ഉണ്ട്, പക്ഷേ ബന്ധപ്പെട്ട <code><references group="$1"/></code> റ്റാഗ് കണ്ടെത്താനായില്ല',
+	'cite_error_references_group_mismatch' => '<code><ref></code> റ്റാഗിലേയും <code><references></code> എന്നതിലേയും സംഘ ഘടകമായ "$1" ഒത്തുപോകുന്നില്ല.',
+	'cite_error_references_missing_group' => '<code><ref></code> റ്റാഗ് നിർവചിച്ചിട്ടുണ്ടെങ്കിലും <code><references></code> എന്നതിലുള്ള സംഘ ഘടകം "$1" ആദ്യ എഴുത്തിൽ കാണുന്നില്ല.',
+	'cite_error_references_missing_key' => '<code><ref></code> റ്റാഗ് "$1" എന്ന പേരോടെ <code><references></code> എന്നതിൽ നിർവചിച്ചിട്ടുണ്ടെങ്കിലും ആദ്യ എഴുത്തിൽ ഉപയോഗിക്കുന്നില്ല.',
+	'cite_error_references_no_key' => '<code><ref></code> റ്റാഗ്  <code><references></code> എന്നതിൽ നിർവചിച്ചിട്ടുണ്ടെങ്കിലും നാമ ഘടകം നൽകിയിട്ടില്ല.',
+	'cite_error_empty_references_define' => ' <code><references></code> ആവശ്യത്തിനായി "$1" എന്ന പേരിൽ നിർ‌വചിക്കപ്പെട്ട <code><ref></code> റ്റാഗിന് ഉള്ളടക്കമൊന്നുമില്ല.',
 );
 
 /** Marathi (मराठी)
+ * @author Kaajawa
  * @author Kaustubh
+ * @author Mahitgar
+ * @author Rahuldeshmukh101
  */
 $messages['mr'] = array(
-	'cite_desc' => '<nowiki><ref[ name=id]></nowiki> व <nowiki><references/></nowiki> हे दोन संदर्भ देण्यासाठी वापरण्यात येणारे शब्द वाढविले जातील.',
+	'cite-desc' => '<nowiki><ref[ name=id]></nowiki> व <nowiki><references/></nowiki> हे दोन संदर्भ देण्यासाठी वापरण्यात येणारे शब्द वाढविले जातील.',
 	'cite_croak' => 'संदर्भ देता आला नाही; $1: $2',
-	'cite_error_key_str_invalid' => 'अंतर्गत त्रुटी; चुकीचे $str आणि/किंवा $key. असे कधीही घडले नाही पाहिजे.',
+	'cite_error_key_str_invalid' => 'अंतर्गत त्रुटी; चुकीचे $str आणि/किंवा $key. असे कधीही घडायला नको.',
 	'cite_error_stack_invalid_input' => 'अंतर्गत त्रुटी; चुकीची स्टॅक चावी. असे कधीही घडले नाही पाहिजे.',
 	'cite_error' => 'त्रूटी उधृत करा: $1',
 	'cite_error_ref_numeric_key' => '<code><ref></code> चुकीचा कोड; नाव हे पूर्णांकी संख्या असू शकत नाही, कृपया माहितीपूर्ण शीर्षक द्या',
 	'cite_error_ref_no_key' => '<code><ref></code> चुकीचा कोड; रिकाम्या संदर्भांना नाव असणे गरजेचे आहे',
 	'cite_error_ref_too_many_keys' => '<code><ref></code> चुकीचा कोड; चुकीची नावे, उदा. खूप सारी',
 	'cite_error_ref_no_input' => '<code><ref></code> चुकीचा कोड; निनावी संदर्भांमध्ये माहिती असणे गरजेचे आहे',
-	'cite_error_references_invalid_input' => '<code><references></code> चुकीचा कोड; माहिती देता येत नाही, <code><references /></code> हा कोड वापरा',
-	'cite_error_references_invalid_parameters' => '<code><references></code> चुकीचा कोड; पॅरॅमीटर्स देता येत नाही, <code><references /></code> हा कोड वापरा',
+	'cite_error_references_invalid_parameters' => '<code><references></code> हा चुकीचा वापर आहे; यामधे पॅरामीटर्स देणे निषिद्ध आहे.,
+<code><references /></code> असा कोड वापरा',
 	'cite_error_references_invalid_parameters_group' => 'चुकीची <code><references></code> खूण; फक्त पॅरॅमीटर चा गट वापरता येईल, <code><references /></code> किंवा <code><references group="..." /></code> चा वापर करा',
 	'cite_error_references_no_backlink_label' => 'तयार केलेली मागीलदुवे देणारी नावे संपलेली आहेत, अधिक नावे <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> या प्रणाली संदेशात लिहा',
+	'cite_error_no_link_label_group' => '"$1" करिता नमूदकेलेल्या कस्टम लिंक खूणा संपल्या .
+<nowiki>[[MediaWiki:$2]]</nowiki> संदेशात अधिक खूणा नमूद करा',
 	'cite_error_references_no_text' => '<code><ref></code> चुकीचा कोड; <code>$1</code> नावाने दिलेल्या संदर्भांमध्ये काहीही माहिती नाही',
+	'cite_error_included_ref' => '<ref> ला बंद करणारी </ref> ही खूण गायब आहे.',
+	'cite_error_refs_without_references' => 'पानामधे <code><ref></code> (संदर्भ) आहे, परंतु <code><references/></code> (<nowiki>{{संदर्भयादी}}<nowiki />) सापडले नाही. <nowiki>{{संदर्भयादी}}<nowiki /> असल्याशिवाय पानाच्या तळाशी संदर्भांचे तपशील दिसणार नाहीत.',
+	'cite_error_group_refs_without_references' => '"$1" नावाच्या गटाकरिता <code><ref></code>  चिन्हे उपलब्ध आहेत, पण संबंधीत <code><references group="$1"/></code>  खूण मिळाली नाही.',
+	'cite_error_references_group_mismatch' => 'tag in <code><references></code>मधील <code><ref></code>  खूणांना खटका उडणारे  group attribute "$1" आहे.',
+	'cite_error_references_missing_group' => 'गट "$1" मधील <code><ref></code> ट्याग   <code><references></code> ह्या पूर्वी वापल्या गेलेले नाही',
+	'cite_error_references_missing_key' => '<code><references></code> ह्या मध्ये सांगितलेला  <code><ref></code>  "$1" ह्या नावाचा  ट्याग ह्या पूर्वी वापरण्यात आलेला नाही.',
+	'cite_error_references_no_key' => '<code><ref></code> ट्याग मध्ये विशारद गोष्टींना <code><references></code> ला नाम गुणधर्म नाहीत',
+	'cite_error_empty_references_define' => '<code><ref></code> ट्याग मध्ये विशारद गोष्टीं <code><references></code> ज्या  "$1" ह्या नावाने संबोधल्या आहेत त्यात माहिती नाही',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
  * @author Aviator
  * @author Izzudin
  */
 $messages['ms'] = array(
-	'cite_desc' => 'Menambah tag <nowiki><ref[ name=id]></nowiki> dan <nowiki><references/></nowiki> untuk pemetikan',
+	'cite-desc' => 'Menambah tag <nowiki><ref[ name=id]></nowiki> dan <nowiki><references/></nowiki> untuk pemetikan',
 	'cite_croak' => 'Ralat maut petik; $1: $2',
 	'cite_error_key_str_invalid' => 'Ralat dalaman; str dan/atau $key tidak sah.',
 	'cite_error_stack_invalid_input' => 'Ralat dalaman; kunci tindanan tidak sah.',
@@ -1577,22 +2278,61 @@
 	'cite_error_ref_no_key' => 'Tag <code><ref></code> tidak sah; rujukan tanpa kandungan mestilah mempunyai nama',
 	'cite_error_ref_too_many_keys' => 'Tag <code><ref></code> tidak sah; nama-nama tidak sah, misalnya terlalu banyak',
 	'cite_error_ref_no_input' => "'Tag <code><ref></code> tidak sah; rujukan tanpa nama mestilah mempunyai kandungan",
-	'cite_error_references_invalid_input' => 'Tag <code><references></code> tidak sah; input tidak dibenarkan, gunakan <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Tag <code><references></code> tidak sah; parameter tidak dibenarkan, gunakan <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Tag <code><references></code> tidak sah; hanya parameter "group" dibenarkan.
 Gunakan <code><references /></code> atau <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Kehabisan label pautan balik tempahan. Sila tambah label dalam pesanan <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Kehabisan label pautan tempahan untuk kumpulan "$1".
+Tentukan lagi dalam mesej <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Tag <code><ref></code> tidak sah; teks bagi rujukan <code>$1</code> tidak disediakan',
 	'cite_error_included_ref' => 'Tag <ref> tidak ditutup dengan </ref>',
-	'cite_error_refs_without_references' => '<code><ref></code> teg wujud, tetapi tiada teg <code><rujukan/></code> dijumpai',
-	'cite_error_group_refs_without_references' => '<code><ref></code> teg wujud untuk kumpulan "$1", tetapi tiada teg sepadan <code><references group="$1"/></code> dijumpai',
+	'cite_error_refs_without_references' => 'Tag <code><ref></code> ada tetapi tag <code><references/></code> tidak disertakan',
+	'cite_error_group_refs_without_references' => 'Tag <code><ref></code> untuk kumpulan "$1" ada tetapi tag <code><references group="$1"/></code> yang sepadan tidak disertakan',
+	'cite_error_references_group_mismatch' => 'Tag <code><ref></code> dalam <code><references></code> mempunyai atribut kumpulan yang bercanggah, "$1".',
+	'cite_error_references_missing_group' => 'Tag <code><ref></code> yang ditentukan dalam <code><references></code> mempunyai atribut kumpulan "$1" yang tiada dalam teks sebelumnya.',
+	'cite_error_references_missing_key' => 'Tag <code><ref></code> dengan nama "$1" yang ditentukan dalam <code><references></code> tidak digunakan dalam teks sebelumnya.',
+	'cite_error_references_no_key' => 'Tag <code><ref></code> yang ditentukan dalam <code><references></code> tiada atribut nama.',
+	'cite_error_empty_references_define' => 'Tag <code><ref></code> yang ditentukan dalam <code><references></code> dengan nama "$1" tiada kandungan.',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Audun
+ * @author Jon Harald Søby
+ * @author Laaknor
+ */
+$messages['nb'] = array(
+	'cite-desc' => 'Legger til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-tagger for referanser',
+	'cite_croak' => 'Sitering døde; $1: $2',
+	'cite_error_key_str_invalid' => 'Intern feil: Ugyldig $str og/eller $key. Dette burde aldri forekomme.',
+	'cite_error_stack_invalid_input' => 'Intern feil; ugyldig stakknøkkel. Dette burde aldri forekomme.',
+	'cite_error' => 'Siteringsfeil: $1',
+	'cite_error_ref_numeric_key' => 'Ugyldig <code><ref></code>-kode; navnet kan ikke være et enkelt heltall, bruk en beskrivende tittel',
+	'cite_error_ref_no_key' => 'Ugyldig <code><ref></code>-kode; referanser uten innhold må inneholde navn',
+	'cite_error_ref_too_many_keys' => 'Ugyldig <code><ref></code>-kode; ugyldige navn, f.eks. for mange',
+	'cite_error_ref_no_input' => 'Ugyldig <code><ref></code>-kode; referanser uten navn må ha innhold',
+	'cite_error_references_invalid_parameters' => 'Ugyldig <code><references></code>-kode; ingen parametere tillates, bruk <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Ugyldig <code><references></code>-tagg; kun parameteret «group» tillates. Bruk <code><references /></code> eller <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Gikk tom for egendefinerte tilbakelenketekster.
+Definer flere i beskjeden <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => 'Gikk tom for egendefinerte lenkemerker for gruppen «$1».
+Definér fler i <nowiki>[[MediaWiki:$2]]</nowiki>-beskjeden.',
+	'cite_error_references_no_text' => 'Ugyldig <code><ref></code>-tagg; ingen tekst ble oppgitt for referansen ved navn <code>$1</code>',
+	'cite_error_included_ref' => 'Avsluttende </ref>-tagg mangler for <ref>',
+	'cite_error_refs_without_references' => '<code><ref></code>-merker finnes, men ingen <code><references/></code>-merke funnet',
+	'cite_error_group_refs_without_references' => '<code><ref></code>-merke finnes for gruppenavnet «$1», men ingen <code><references group="$1"/></code>-merking ble funnet',
+	'cite_error_references_group_mismatch' => '<code><ref></code>-tagg i <code><references></code> har motstridig attributt «$1».',
+	'cite_error_references_missing_group' => '<code><ref></code>-tagg definert i <code><references></code> har gruppeattributtet «$1» som ikke forekommer i teksten.',
+	'cite_error_references_missing_key' => '<code><ref></code>-taggen med navnet «$1» definert i <code><references></code> brukes ikke i teksten.',
+	'cite_error_references_no_key' => '<code><ref></code>-tagg definert i <code><references></code> har ikke noe navneattributt.',
+	'cite_error_empty_references_define' => '<code><ref></code>-taggen i <code><references></code> med navnet «$1» har ikke noe innhold.',
+	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az aæ aø aå ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz bæ bø bå ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz cæ cø cå da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz dæ dø då ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez eæ eø eå fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz fæ fø få ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz gæ gø gå ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz hæ hø hå ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz iæ iø iå ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz jæ jø jå ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz kæ kø kå la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz læ lø lå ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz mæ mø må na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz næ nø nå oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz oæ oø oå pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz pæ pø på qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz qæ qø qå ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz ræ rø rå sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz sæ sø så ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz tæ tø tå ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz uæ uø uå va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz væ vø vå wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz wæ wø wå xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz xæ xø xå ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz yæ yø yå za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz zæ zø zå æa æb æc æd æe æf æg æh æi æj æk æl æm æn æo æp æq ær æs æt æu æv æw æx æy æz ææ æø æå øa øb øc ød øe øf øg øh øi øj øk øl øm øn øo øp øq ør øs øt øu øv øw øx øy øz øæ øø øå åa åb åc åd åe åf åg åh åi åj åk ål åm ån åo åp åq år ås åt åu åv åw åx åy åz åæ åø åå',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
 $messages['nds'] = array(
-	'cite_desc' => 'Föögt <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> Tags för Zitaten to',
+	'cite-desc' => 'Föögt <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> Tags för Zitaten to',
 	'cite_croak' => 'Fehler bi de Referenzen. $1: $2',
 	'cite_error_key_str_invalid' => 'Internen Fehler: ungülligen $str un/oder $key. Dat schull egentlich nie vörkamen.',
 	'cite_error_stack_invalid_input' => 'Internen Fehler: ungülligen Stack-Slötel. Dat schull egentlich nie vörkamen.',
@@ -1601,9 +2341,8 @@
 	'cite_error_ref_no_key' => 'Ungülligen Tag <tt><ref></tt>: „ref“ ahn Inholt mutt en Naam hebben.',
 	'cite_error_ref_too_many_keys' => 'Ungülligen Tag <tt><ref></tt>: ungüllige Naams, to’n Bispeel to veel.',
 	'cite_error_ref_no_input' => 'Ungülligen Tag <tt><ref></tt>: „ref“ ahn Naam mutt en Inholt hebben.',
-	'cite_error_references_invalid_input' => 'Ungülligen Tag <code><references></code>: Tosätzlichen Text is nich verlöövt, bruuk <tt><references /></tt>',
 	'cite_error_references_invalid_parameters' => 'Ungülligen Tag <code><references></code>: Parameters sünd nich verlöövt, bruuk <tt><references /></tt>',
-	'cite_error_references_invalid_parameters_group' => 'Ungülligen Tag <code><references></code>: Blot de Parameter „group“ is verlöövt, bruuk <tt><references /></tt> oder <tt><references group="…" /></tt>',
+	'cite_error_references_invalid_parameters_group' => 'Ungülligen Tag <code><references></code>: Blot de Parameter „group“ is verlöövt, bruuk <tt><references /></tt> oder <tt><references group="..." /></tt>',
 	'cite_error_references_no_backlink_label' => 'De verföögboren Tekens för de Lenken op Referenzen sünd all. Dat lett sik repareren, wenn in de Systemnaricht <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mehr Tekens angeven warrt.',
 	'cite_error_references_no_text' => 'Ungülligen Tag <tt><ref></tt>; is keen Text för Refs mit den Naam <tt>$1</tt> angeven.',
 	'cite_error_included_ref' => 'Dor fehlt en tosluten </ref>',
@@ -1611,11 +2350,20 @@
 	'cite_error_group_refs_without_references' => '<code><ref></code>-Tags för de Grupp „$1“ gifft dat, is aver keen <code><references group=„$1“/></code>-Tag funnen worrn',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'cite_croak' => 'Fout in t referentiesysteem; $1: $2',
+	'cite_error' => 'Siteerfout: $1',
+);
+
 /** Dutch (Nederlands)
+ * @author Niels
  * @author Siebrand
  */
 $messages['nl'] = array(
-	'cite_desc' => 'Voegt <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> tags toe voor citaten',
+	'cite-desc' => 'Voegt <nowiki><ref[ name=id]></nowiki> en <nowiki><references/></nowiki> tags toe voor citaten',
 	'cite_croak' => 'Probleem met Cite; $1: $2',
 	'cite_error_key_str_invalid' => 'Interne fout;
 onjuiste $str and/of $key.
@@ -1633,21 +2381,26 @@
 onjuiste namen, bijvoorbeeld te veel',
 	'cite_error_ref_no_input' => 'Onjuiste tag <code><ref></code>;
 refs zonder naam moeten inhoud hebben',
-	'cite_error_references_invalid_input' => 'Onjuiste tag <code><references></code>;
-invoer is niet toegestaan, gebruik <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Onjuiste tag <code><references></code>;
 parameters zijn niet toegestaan.
 Gebruik <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Onjuiste tag <code><references></code>;
 alleen de parameter "group" is toegestaan.
-Gebruik <code><references /></code>, of <code><references group="…" /></code>',
+Gebruik <code><references /></code>, of <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Het aantal beschikbare backlinklabels is opgebruikt.
 Geef meer labels op in het bericht <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Het aantal aangepaste verwijzinglabels voor de group "$1" is uitgeput.
+U kunt er meer instellen in het systeembericht <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Onjuiste tag <code><ref></code>;
 er is geen tekst opgegeven voor refs met de naam <code>$1</code>',
-	'cite_error_included_ref' => 'Het sluitteken </ref> mist voor de tag <ref>',
+	'cite_error_included_ref' => 'Na het label <ref> ontbreekt het afsluitende label </ref>',
 	'cite_error_refs_without_references' => 'De tag <code><ref></code> bestaat, maar de tag <code><references/></code> is niet aangetroffen',
 	'cite_error_group_refs_without_references' => 'Er bestaat een tag <code><ref></code> voor de groep "$1", maar er is geen bijbehorende tag <code><references group="$1"/></code> aangetroffen',
+	'cite_error_references_group_mismatch' => 'De tag <code><ref></code> in <code><references></code> conflicteert met groepseigenschap "$1".',
+	'cite_error_references_missing_group' => 'De tag <code><ref></code> die is gedefinieerd in <code><references></code> heeft de groepseigenschap "$1" niet niet eerder in te tekst voorkomt.',
+	'cite_error_references_missing_key' => 'De tag <code><ref></code> met de naam "$1" gedefiniteerd in <code><references></code> wordt niet eerder in de tekst gebruikt.',
+	'cite_error_references_no_key' => 'De tag <code><ref></code> die is gedefinieerd in <code><references></code> heeft geen eigenschapsnaam.',
+	'cite_error_empty_references_define' => 'De tag <code><ref></code> die is gedefinieerd in <code><references></code> met de naam "$1" heeft geen inhoud.',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
@@ -1655,7 +2408,7 @@
  * @author Harald Khan
  */
 $messages['nn'] = array(
-	'cite_desc' => 'Legg til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-merke for referansar',
+	'cite-desc' => 'Legg til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-merke for referansar',
 	'cite_croak' => 'Feil i fotnotesystemet; $1: $2',
 	'cite_error_key_str_invalid' => 'Intern feil: Ugyldig $str og/eller $key. Dette burde aldri skjedd.',
 	'cite_error_stack_invalid_input' => 'Intern feil; ugyldig stakknøkkel. Dette burde aldri skjedd.',
@@ -1664,7 +2417,6 @@
 	'cite_error_ref_no_key' => 'Ugyldig <code><ref></code>-kode; referansar utan innhald må innehalde namn',
 	'cite_error_ref_too_many_keys' => 'Ugyldig <code><ref></code>-kode; ugyldige namn, t.d. for mange',
 	'cite_error_ref_no_input' => 'Ugyldig <code><ref></code>-kode; referansar uten namn må ha innhald',
-	'cite_error_references_invalid_input' => 'Ugyldig <code><references></code>-tagg: Innhald er ikkje tillete, bruk i staden <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Ugyldig <code><references></code>-kode; ingen parametrar er tillat, bruk <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Ugyldig <code><references></code>-tagg; berre parameteren «group» er tillatt. Bruk <code><references /></code> eller <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Gjekk tom for eigendefinerte tilbakelenketekstar.
@@ -1673,39 +2425,13 @@
 	'cite_error_included_ref' => 'Avsluttande </ref>-tagg manglar for <ref>',
 	'cite_error_refs_without_references' => '<code><ref></code>-merke finst, men eit <code><references/></code>-merke finst ikkje',
 	'cite_error_group_refs_without_references' => '<code><ref></code>-merke finst for gruppenamnet «$1», men inkje samsvarande <code><references group="$1"/></code>-merke vart funne',
-	'cite_reference_link_key_with_num' => '$1_$2',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- * @author Laaknor
- */
-$messages['no'] = array(
-	'cite_desc' => 'Legger til <nowiki><ref[ name=id]></nowiki> og <nowiki><references/></nowiki>-tagger for referanser',
-	'cite_croak' => 'Sitering døde; $1: $2',
-	'cite_error_key_str_invalid' => 'Intern feil: Ugyldig $str og/eller $key. Dette burde aldri forekomme.',
-	'cite_error_stack_invalid_input' => 'Intern feil; ugyldig stakknøkkel. Dette burde aldri forekomme.',
-	'cite_error' => 'Siteringsfeil: $1',
-	'cite_error_ref_numeric_key' => 'Ugyldig <code><ref></code>-kode; navnet kan ikke være et enkelt heltall, bruk en beskrivende tittel',
-	'cite_error_ref_no_key' => 'Ugyldig <code><ref></code>-kode; referanser uten innhold må inneholde navn',
-	'cite_error_ref_too_many_keys' => 'Ugyldig <code><ref></code>-kode; ugyldige navn, f.eks. for mange',
-	'cite_error_ref_no_input' => 'Ugyldig <code><ref></code>-kode; referanser uten navn må ha innhold',
-	'cite_error_references_invalid_input' => 'Ugyldig <code><references></code>-tagg: Innhold er ikke tillatt, bruk i stedet <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'Ugyldig <code><references></code>-kode; ingen parametere tillates, bruk <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'Ugyldig <code><references></code>-tagg; kun parameteret «group» tillates. Bruk <code><references /></code> eller <code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => "Gikk tom for egendefinerte tilbakelenketekster; definer flere i beskjeden «''cite_references_link_many_format_backlink_labels''»",
-	'cite_error_references_no_text' => 'Ugyldig <code><ref></code>-tagg; ingen tekst ble oppgitt for referansen ved navn <code>$1</code>',
-	'cite_error_included_ref' => 'Avsluttende </ref>-tagg mangler for <ref>',
-	'cite_error_refs_without_references' => '<code><ref></code>-merker finnes, men ingen <code><references/></code>-merke funnet',
-	'cite_error_group_refs_without_references' => '<code><ref></code>-merke finnes for gruppenavnet «$1», men ingen <code><references group="$1"/></code>-merking ble funnet',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z æ ø å aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az aæ aø aå ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz bæ bø bå ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz cæ cø cå da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz dæ dø då ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez eæ eø eå fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz fæ fø få ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz gæ gø gå ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz hæ hø hå ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz iæ iø iå ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz jæ jø jå ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz kæ kø kå la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz læ lø lå ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz mæ mø må na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz næ nø nå oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz oæ oø oå pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz pæ pø på qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz qæ qø qå ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz ræ rø rå sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz sæ sø så ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz tæ tø tå ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz uæ uø uå va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz væ vø vå wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz wæ wø wå xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz xæ xø xå ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz yæ yø yå za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz zæ zø zå æa æb æc æd æe æf æg æh æi æj æk æl æm æn æo æp æq ær æs æt æu æv æw æx æy æz ææ æø æå øa øb øc ød øe øf øg øh øi øj øk øl øm øn øo øp øq ør øs øt øu øv øw øx øy øz øæ øø øå åa åb åc åd åe åf åg åh åi åj åk ål åm ån åo åp åq år ås åt åu åv åw åx åy åz åæ åø åå',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
-	'cite_desc' => 'Apond las balisas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, per las citacions.',
+	'cite-desc' => 'Apond las balisas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, per las citacions.',
 	'cite_croak' => 'Citacion corrompuda ; $1 : $2',
 	'cite_error_key_str_invalid' => 'Error intèrna ; 
 $str o $key incorrèctes.
@@ -1716,7 +2442,6 @@
 	'cite_error_ref_no_key' => 'Ampèl invalid ; cap de clau pas especificada',
 	'cite_error_ref_too_many_keys' => 'Ampèl invalid ; claus invalidas, per exemple, tròp de claus especificadas o clau erronèa',
 	'cite_error_ref_no_input' => 'Ampèl invalid ; cap de dintrada pas especificada',
-	'cite_error_references_invalid_input' => 'Entrada invalida ; entrada esperada',
 	'cite_error_references_invalid_parameters' => 'Arguments invalids ; argument esperat',
 	'cite_error_references_invalid_parameters_group' => 'Balisa <code><references></code> incorrècta ;
 
@@ -1726,13 +2451,60 @@
 	'cite_error_references_no_backlink_label' => 'Execucion en defòra de las etiquetas personalizadas, definissetz mai dins lo messatge <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
 	'cite_error_references_no_text' => 'Balisa  <code><ref></code> incorrècta ;
 
-pas de tèxt per las referéncias nomenadas <code>$1</code>.',
+pas de tèxte per las referéncias nomenadas <code>$1</code>.',
 	'cite_error_included_ref' => 'Clausura </ref> omesa per la balisa <ref>',
 	'cite_error_refs_without_references' => 'La balisa <code><ref></code> existís, mas cap de balisa <code><references/></code> pas trobada.',
 	'cite_error_group_refs_without_references' => 'La balisa <code><ref></code> existís per un grop nomenat « $1 », mas cap de balisa <code><references group="$1"/></code> correspondenta pas trobada',
-	'cite_references_link_many_format_backlink_labels' => 'a á à b c ç d e é è f g h i í ì ï j k l m n o ó ò p q r s t u ú ù ü v w x y z',
+	'cite_error_references_group_mismatch' => "La balisa <code><ref></code> dins <code><references></code> a l'atribut de grop « $1 » que dintra en conflicte amb lo de <code><references></code>.",
+	'cite_error_references_missing_group' => 'La balisa <code><ref></code> definida dins <code><references></code> a un gropat atribuit « $1 » que figura pas dins lo tèxte precedent.',
+	'cite_error_references_missing_key' => 'La balisa <code><ref></code> amb lo nom « $1 » definida dins <code><references></code> es pas utilizada dins lo tèxte precedent.',
+	'cite_error_references_no_key' => 'La balisa <code><ref></code> definida dins <code><references></code> a pas de nom d’atribut.',
+	'cite_error_empty_references_define' => 'La balisa <code><ref></code> definida dins <code><references></code> amb lo nom « $1 » a pas de contengut.',
 );
 
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'cite-desc' => '<nowiki><ref[ name=id]></nowiki> ଓ <nowiki><references/></nowiki> ଟାଗସବୁ ଆଧାର ନିମନ୍ତେ ଏଠାରେ ଯୋଡ଼ିଥାଏ ।',
+	'cite_croak' => 'ଆଧାରଟି ଏବେ ଅଚଳ; $1: $2',
+	'cite_error_key_str_invalid' => 'ଭିତରର ଅସୁବିଧା;
+ଅବୈଧ $str ତଥା/କିମ୍ବା $key ।
+ଏହା ଆଉ କେବେ ଘଟିବ ଅନୁଚିତ ।',
+	'cite_error_stack_invalid_input' => 'ଭିତରର ଅସୁବିଧା;
+ଅବୈଧ କି (key) ଗଦା ।
+ଏହା ଆଉ କେବେ ଘଟିବ ଅନୁଚିତ ।',
+	'cite_error' => 'ଆଧାର ଭୁଲ: $1',
+	'cite_error_ref_numeric_key' => 'ଅବୈଧ <code><ref></code> tag;
+ନାମାଟି କେବେ ହେଲେଁ ଏକ ସଂଖ୍ୟା ହୋଇପାରିବ ନାହିଁ । ଏକ ବର୍ଣ୍ଣନାମୂଳକ ନାମ ଦିଅନ୍ତୁ ।',
+	'cite_error_ref_no_key' => 'ଅବୈଧ <code><ref></code> ଚିହ୍ନ;
+କୌଣସି ବି ବିଷୟବସ୍ତୁ ନଥିବା ଆଧାରର ଏକ ନାମ ଥିବା ଲୋଡ଼ା',
+	'cite_error_ref_too_many_keys' => 'ଅବୈଧ <code><ref></code> ଚିହ୍ନ;
+ଭୁଲ ନାମ, ଯଥା: ଖୁବ ଅଧିକ',
+	'cite_error_ref_no_input' => 'ଅବୈଧ <code><ref></code> ଚିହ୍ନ;
+କୌଣସି ବି ନାମ ନଥିବା ଆଧାରର କିଛି ବିଷୟବସ୍ତୁ  ଥିବା ଲୋଡ଼ା',
+	'cite_error_references_invalid_parameters' => 'ଅଚଳ <code><references></code> ଚିହ୍ନ;
+କୌଣସିଟି ପାରାମିଟର ଅନୁମୋଦିତ ନୁହେଁ ।
+<code><references /></code> ବ୍ୟବହାର କରନ୍ତୁ ।',
+	'cite_error_references_invalid_parameters_group' => 'ଅଚଳ <code><references></code> ଚିହ୍ନ;
+"group" ପାରାମିଟରଟି କେବଳ ଅନୁମୋଦିତ ।
+<code><references /></code>, କିମ୍ବା <code><references group="..." /></code> ବ୍ୟବହାର କରନ୍ତୁ',
+	'cite_error_references_no_backlink_label' => 'ନିଜ ପସନ୍ଦର ବ୍ୟାକଲିଙ୍କ ଚିହ୍ନ ସବୁ ସରିଗଲା ।
+<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>ସୂଚନାରେ ଅଧିକ ଦେଖନ୍ତୁ ।',
+	'cite_error_no_link_label_group' => '"$1" ଗୋଠ ଲାଗି ନିଜ ପସନ୍ଦର ବ୍ୟାକଲିଙ୍କ ଚିହ୍ନ ସବୁ ସରିଗଲା ।
+<nowiki>[[MediaWiki:$2]]</nowiki>ସୂଚନାରେ ଅଧିକ ଚିହ୍ନିତ କରନ୍ତୁ ।',
+	'cite_error_references_no_text' => 'ଅଚଳ <code><ref></code> ଚିହ୍ନ;
+<code>$1</code> ନାମରେ ଥିବା ଆଧାର ଭିତରେ କିଛି ଲେଖା ନାହିଁ ।',
+	'cite_error_included_ref' => '</ref&gt କୁ ବନ୍ଦ କରୁଅଛୁ; <ref&gt ନାହିଁ; ଚିହ୍ନ',
+	'cite_error_refs_without_references' => '<code><ref></code> ଚିହ୍ନ ରହିଅଛି, କିନ୍ତୁ <code><references/></code> ଚିହ୍ନଟି ମିଳିଲା ନାହିଁ',
+	'cite_error_group_refs_without_references' => '"$1" ଗୋଠ ପାଇଁ <code><ref></code> ଚିହ୍ନ ସବୁ ରହିଅଛି, କିନ୍ତୁ କୌଣସି ବି <code><references group="$1"/></code> ଚିହ୍ନ ମିଳିଲା ନାହିଁ',
+	'cite_error_references_group_mismatch' => '<code><references&gt ରେ <code><ref></code> ଚିହ୍ନ;</code> ର ଅସୁବିଧାଜନକ ଗୋଠ ବିଶେଷତା "$1" ।',
+	'cite_error_references_missing_group' => '<code><references></code>ରେ ଦିଆଯାଇଥିବା <code><ref></code> ଚିହ୍ନରେ "$1" ଗୋଠ ପାଇଁ ଚିହ୍ନ ଅଛି ଯାହାକି ଦରକାରୀ ଲେଖାରେ ଆସୁନାହିଁ ।',
+	'cite_error_references_missing_key' => '<code><references></code>ରେ ଦିଆଯାଇଥିବା "$1" ନାମ ସହ ଥିବା <code><ref></code> ଚିହ୍ନ ଦରକାରୀ ଲେଖାରେ ବ୍ୟବହାର ହୋଇନାହିଁ ।',
+	'cite_error_references_no_key' => '<code><references></code>ରେ ଦିଆଯାଇଥିବା <code><ref></code> ଚିହ୍ନରେ କିଛି ଆଟ୍ରିବୁଟ ନାହିଁ ।',
+	'cite_error_empty_references_define' => '<code><references></code>ରେ ଦିଆଯାଇଥିବା "$1" ନାମ ସହ ଥିବା <code><ref></code> ଚିହ୍ନରେ କିଛି ଲେଖା ନାହିଁ ।',
+);
+
 /** Pangasinan (Pangasinan) */
 $messages['pag'] = array(
 	'cite_error' => 'Bitlaen so error $1; $2',
@@ -1745,7 +2517,7 @@
  * @author Sp5uhe
  */
 $messages['pl'] = array(
-	'cite_desc' => 'Dodaje znaczniki <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> ułatwiające podawanie źródeł cytatów',
+	'cite-desc' => 'Dodaje znaczniki <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> ułatwiające podawanie źródeł cytatów',
 	'cite_croak' => 'Cytowanie nieudane; $1: $2',
 	'cite_error_key_str_invalid' => 'Błąd wewnętrzny;
 nieprawidłowy $str i/lub $key.
@@ -1755,28 +2527,130 @@
 	'cite_error_ref_numeric_key' => 'Nieprawidłowy znacznik <code><ref></code>. Nazwa nie może być liczbą, użyj nazwy opisowej.',
 	'cite_error_ref_no_key' => 'Nieprawidłowy znacznik <code><ref></code>. Odnośnik ref z zawartością musi mieć nazwę.',
 	'cite_error_ref_too_many_keys' => 'Nieprawidłowe nazwy parametrów elementu <code><ref></code>.',
-	'cite_error_ref_no_input' => 'Bład w składni elementu <code><ref></code>. Przypisy bez podanej nazwy muszą posiadać treść',
-	'cite_error_references_invalid_input' => 'Bład w składni elementu <code><references></code>. Nie można wprowadzać treści w tym elemencie, użyj <code><references /></code>',
-	'cite_error_references_invalid_parameters' => 'Bład w składni elementu <code><references></code>. Nie można wprowadzać parametrów do tego elementu, użyj <code><references /></code>',
+	'cite_error_ref_no_input' => 'Błąd w składni elementu <code><ref></code>. Przypisy bez podanej nazwy muszą posiadać treść',
+	'cite_error_references_invalid_parameters' => 'Błąd w składni elementu <code><references></code>. Nie można wprowadzać parametrów do tego elementu, użyj <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Nieprawidłowy znacznik <code><references></code>;
 dostępny jest wyłącznie parametr „group”.
 Użyj znacznika <code><references /></code>, lub <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Zabrakło etykiet do przypisów.
 Zadeklaruj więcej w komunikacie <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
-	'cite_error_references_no_text' => 'Bład w składni elementu <code><ref></code>. Brak tekstu w przypisie o nazwie <code>$1</code>',
+	'cite_error_no_link_label_group' => 'Zabrakło niestandardowych etykiet linków dla grupy „$1“.
+Zdefiniuj ich większą liczbę w komunikacie <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Błąd w składni elementu <code><ref></code>. Brak tekstu w przypisie o nazwie <code>$1</code>',
 	'cite_error_included_ref' => 'Brak znacznika zamykającego </ref> po otwartym znaczniku <ref>',
 	'cite_error_refs_without_references' => 'Istnieje znacznik <code><ref></code>, ale nie odnaleziono znacznika <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Istnieje znacznik <code><ref></code> dla grupy o nazwie „$1”, ale nie odnaleziono odpowiedniego znacznika <code><references group="$1"/></code>',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
+	'cite_error_references_group_mismatch' => 'Znacznik <code><ref></code> w <code><references></code> nie może mieć atrybutu grupy „$1”.',
+	'cite_error_references_missing_group' => 'Znacznik <code><ref></code> zdefiniowany w <code><references></code> ma atrybut grupowania „$1”, który nie występuje wcześniej w treści.',
+	'cite_error_references_missing_key' => 'Znacznik <code><ref></code> o nazwie „$1”, zdefiniowany w <code><references></code>, nie był użyty wcześniej w treści.',
+	'cite_error_references_no_key' => 'Znacznik <code><ref></code> zdefiniowany w <code><references></code> nie ma atrybutu <code>name</code>.',
+	'cite_error_empty_references_define' => 'Znacznik <code><ref></code> zdefiniowany w <code><references></code> o nazwie „$1” nie ma treści.',
 );
 
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'cite-desc' => 'A gionta le tichëtte <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki>, për sitassion',
+	'cite_croak' => 'Sitassion mòrta; $1: $2',
+	'cite_error_key_str_invalid' => 'Eror antern;
+$str e/o $key sbalià.
+Sòn a dovrìa mai capité.',
+	'cite_error_stack_invalid_input' => "Eror antern;
+ciav d'ambaronament pa bon-a.
+Sòn a dovrìa mai capité.",
+	'cite_error' => 'Eror ëd sitassion: $1',
+	'cite_error_ref_numeric_key' => "Tichëtta <code><ref></code> pa bon-a;
+ël nòm a peul pa esse n'antregh sempi. Deuvra un tìtol descritiv.",
+	'cite_error_ref_no_key' => "Tichëtta <code><ref></code> pa bon-a;
+j'arferiment sensa contnù a devo avèj un nòm",
+	'cite_error_ref_too_many_keys' => 'Tichëtta <code><ref></code> pa bon-a;
+nòm pa bon, për esempi tròpi',
+	'cite_error_ref_no_input' => "Tichëtta <code><ref></code> pa bon-a;
+j'arferiment sensa nòm a devo avèj un contnù",
+	'cite_error_references_invalid_parameters' => "Tichëtta <code><references></code> pa bon-a;
+pa gnun paràmetr përmëttù.
+Ch'a deuvra <code><references /></code>",
+	'cite_error_references_invalid_parameters_group' => 'Tichëtta <code><references></code> pa bon-a;
+as peul mach dovresse ël paràmetr "group".
+Ch\'a deuvra <code><references /></code>, o <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Etichëtte ëd backlink përsonalisà esaurìe.
+Definiss-ne ëd pì ant ël messagi <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Surtì fòra dle tichëtte dij colegament utent për la partìa "$1".
+Definissne ëd pi ant ël mëssagi <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => "Tichëtta <code><ref></code> pa bon-a;
+pa gnun test a l'é stàit dàit për l'arferiment ciamà <code>$1</code>",
+	'cite_error_included_ref' => '</ref> sarà mancant për la tichëtta <ref>',
+	'cite_error_refs_without_references' => "la tichëtta <code><ref></code> a esist, ma gnun-a tichëtta <code><references/></code> a l'é stàita trovà",
+	'cite_error_group_refs_without_references' => 'Dle tichëtte <code><ref></code> a esisto për na partìa ciamà "$1", ma gnun-a tichëtta corëspondenta <code><references group="$1"/></code> a l\'é stàita trovà',
+	'cite_error_references_group_mismatch' => 'La tichëtta <code><ref></code> an <code><references></code> a l\'ha n\'atribut ëd partìa "$1" an conflit.',
+	'cite_error_references_missing_group' => 'La tichëtta <code><ref></code> definìa an <code><references></code> a l\'ha n\'atribut ëd partìa "$1" che a l\'era pa ant ël test prima.',
+	'cite_error_references_missing_key' => 'La tichëtta <code><ref></code> con nòm "$1" definìa an <code><references></code> a l\'é pa dovrà ant ël test prima.',
+	'cite_error_references_no_key' => "La tichëtta <code><ref></code> definìa an <code><references></code> a l'ha pa gnun atribut ëd nòm.",
+	'cite_error_empty_references_define' => 'La tichëtta <code><ref></code> definìa an <code><references></code> con nòm "$1" a l\'ha pa gnun contnù.',
+);
+
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'cite-desc' => 'جوڑو <nowiki><ref[ name=id]></nowiki> تے <nowiki><references/></nowiki> ٹیگ اتے پتے لئی۔',
+	'cite_croak' => 'سائیٹ ڈائیڈ؛ $1: $2',
+	'cite_error_key_str_invalid' => 'اندرونی غلطی:
+ناں منی جان والی $وٹد تے/یا $چابی۔
+اے کدے نئیں ہونا چآغیدا۔',
+	'cite_error_stack_invalid_input' => 'اندرلی غلطی؛
+ناں منی جان والی سٹیک چابی۔
+اے کدے نئیں ہونا چائیدا',
+	'cite_error' => 'سائیٹ غلطی:$1',
+	'cite_error_ref_numeric_key' => 'ناں منیا جان والا <code><ref></code> ٹیگ؛
+ناں اک سادہ انٹیجر نئیں ہوسکدا۔ کوئی ہور دسن والا سرناواں دسو۔',
+	'cite_error_ref_no_key' => 'ناں منیا جان والا <code><ref></code> ٹیگ؛
+اتے پتے جیدے چ کوئی شے ناں ہووے لازمی ناں ہووے۔',
+	'cite_error_ref_too_many_keys' => 'ناں منیا جان والا <code><ref></code> ٹیگ؛
+ناں منے جان والے ناں',
+	'cite_error_ref_no_input' => 'ناں منیا جان والا <code><ref></code> ٹیگ؛
+اتے پتے جیدے چ کوئی شے ناں ہووے لازمی ناں ہووے۔',
+	'cite_error_references_invalid_parameters' => 'ناں منیا جان والا <code><references></code> ٹیگ؛
+کسے پیرامیٹر دی اجازت نئیں۔
+<code><references /></code> ورتو',
+	'cite_error_references_invalid_parameters_group' => 'ناں منیا جان والا <code><references></code> ٹیگ؛
+پیرامیٹر گروپ دی اجازت صرف۔
+ورتو <code><references /></code>، یا <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'کسٹم پچھلے جزڑ نئیں رۓ۔
+ہور دسو <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> سنیعے چ۔',
+	'cite_error_no_link_label_group' => '"$1" ٹولی لئی کسٹم لیبل جوڑ مک گۓ۔
+ہور دسو <nowiki>[[MediaWiki:$2]]</nowiki> سنیعے چ۔',
+	'cite_error_references_no_text' => 'ناں منیا جان والا <code><ref></code> ٹیگ
+کوئی لکھت نئیں دتی گئی اتے پتے <code>$1</code> لئی۔',
+	'cite_error_included_ref' => 'بند کردا </ref&gt ؛ <ref&gt دا کعاٹا ٹیک',
+	'cite_error_refs_without_references' => '<code><ref></code> ٹیگ ہیگے نیں، پر کوئی <code><references/></code> ٹیگ ناں لبیا۔',
+	'cite_error_group_refs_without_references' => '<code><ref></code> ٹیگ اک ٹولی جیدا ناں "$1" اے ہیگے نیں، پر کوئی <code><references group="$1"/></code> ٹیگ ناں لبیا۔',
+	'cite_error_references_group_mismatch' => '<code><ref></code> ٹیگ ان  <code><references></code> دے رپھڑی اٹریبیوٹ "$1"۔',
+	'cite_error_references_missing_group' => '<code><ref></code> ٹیگ دسیا گیا <code><references></code> دے ٹولی اٹریبیوٹ "$1" جیہڑے  پہلی لکھت چ ناں دسے۔',
+	'cite_error_references_missing_key' => '<code><ref></code> ٹیگ ناں نال "$1" <code><references></code> چ دسیا گیا پہلی کسے لکھت چ نئیں ورتیا گیا۔',
+	'cite_error_references_no_key' => '<code><ref></code> ٹیگ دسیا گیا <code><references></code> چ دا کوئی ناں اٹریبیوٹ نئیں۔',
+	'cite_error_empty_references_define' => '<code><ref></code> ٹیگ دسیا گیا <code><references></code> چ "$1" ناں نال، ایدے چ کج نئیں۔',
+);
+
+/** Pashto (پښتو)
+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
+ */
+$messages['ps'] = array(
+	'cite_error' => 'د درک ستونزه: $1',
+);
+
 /** Portuguese (Português)
  * @author 555
+ * @author Crazymadlover
+ * @author Giro720
+ * @author Hamilton Abreu
  * @author Malafaya
  * @author Waldir
  */
 $messages['pt'] = array(
-	'cite_desc' => 'Adiciona marcas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para citações',
+	'cite-desc' => 'Adiciona elementos <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para uso em citações',
 	'cite_croak' => 'Citação com problemas; $1: $2',
 	'cite_error_key_str_invalid' => 'Erro interno;
 $str e/ou $key inválido.
@@ -1787,24 +2661,31 @@
 	'cite_error_ref_no_key' => 'Código <code><ref></code> inválido; refs sem conteúdo devem ter um parâmetro de nome',
 	'cite_error_ref_too_many_keys' => 'Código <code><ref></code> inválido; nomes inválidos (por exemplo, nome muito extenso)',
 	'cite_error_ref_no_input' => 'Código <code><ref></code> inválido; refs sem parâmetro de nome devem possuir conteúdo a elas associado',
-	'cite_error_references_invalid_input' => 'Código <code><references></code> inválido; no input is allowed, use
-<code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Código <code><references></code> inválido; não são permitidos parâmetros. Utilize como <code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => 'Marca <code><references></code> inválida;
-só o parâmetro "group" é permitido.
+	'cite_error_references_invalid_parameters_group' => 'O elemento <code><references></code> é inválido;
+só é permitido o parâmetro "group".
 Use <code><references /></code>, ou <code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => "Etiquetas de backlink esgotadas. Defina mais na mensagem \"''cite_references_link_many_format_backlink_labels''\"",
+	'cite_error_references_no_backlink_label' => 'Esgotamento das legendas personalizadas para backlinks.
+Defina mais na mensagem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Esgotamento das legendas personalizadas para links, no grupo "$1".
+Defina mais na mensagem <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Tag <code><ref></code> inválida; não foi fornecido texto para as refs chamadas <code>$1</code>',
-	'cite_error_included_ref' => '</ref> de fecho em falta para a marca <ref>',
+	'cite_error_included_ref' => '</ref> de fecho em falta, para o elemento <ref>',
 	'cite_error_refs_without_references' => 'existem tags <code><ref></code>, mas nenhuma tag <code><references/></code> foi encontrada',
 	'cite_error_group_refs_without_references' => 'existem tags <code><ref></code> para um grupo chamado "$1", mas nenhuma tag <code><references group="$1"/></code> correspondente foi encontrada',
+	'cite_error_references_group_mismatch' => 'O elemento <code><ref></code> em <code><references></code> tem o atributo de grupo "$1", que está em conflito com o de <code><references></code>.',
+	'cite_error_references_missing_group' => 'O elemento <code><ref></code> definido em <code><references></code> tem o atributo de grupo "$1", que não aparece no texto anterior.',
+	'cite_error_references_missing_key' => 'A etiqueta <code><ref></code> com nome "$1" definida em <code><references></code> não é utilizada no texto acima.',
+	'cite_error_references_no_key' => 'O elemento <code><ref></code> definido em <code><references></code> não tem um atributo de nome.',
+	'cite_error_empty_references_define' => 'O elemento <code><ref></code> definido em <code><references></code> com o nome "$1" não tem conteúdo.',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Giro720
  */
 $messages['pt-br'] = array(
-	'cite_desc' => 'Adiciona marcas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para citações',
+	'cite-desc' => 'Adiciona marcas <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> para citações',
 	'cite_croak' => 'Citação com problemas; $1: $2',
 	'cite_error_key_str_invalid' => 'Erro interno;
 $str e/ou $key inválido.
@@ -1821,8 +2702,6 @@
 nomes inválidos (por exemplo, nome muito extenso)',
 	'cite_error_ref_no_input' => 'Marca <code><ref></code> inválida; 
 refs sem nome devem possuir conteúdo',
-	'cite_error_references_invalid_input' => 'Marca <code><references></code> inválida; 
-não é permitido dado de entrada. Use <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Marca <code><references></code> inválida; 
 não são permitidos parâmetros.
 Utilize <code><references /></code>',
@@ -1831,96 +2710,233 @@
 Utilize <code><references /></code>, ou <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Etiquetas de backlink esgotadas. 
 Defina mais na mensagem <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Esgotamento das legendas personalizadas para links, no grupo "$1".
+Defina mais na mensagem <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Marca <code><ref></code> inválida; 
 não foi fornecido texto para as refs chamadas <code>$1</code>',
 	'cite_error_included_ref' => '</ref> de fechamento ausente para para a marca <ref>',
 	'cite_error_refs_without_references' => 'existem marcas <code><ref></code>, mas nenhuma marca <code><references/></code> foi encontrada',
 	'cite_error_group_refs_without_references' => 'existem marcas <code><ref></code> para um grupo chamado "$1", mas nenhuma marca <code><references group="$1"/></code> correspondente foi encontrada',
+	'cite_error_references_group_mismatch' => 'marca <code><ref></code> em <code><references></code> tem o atributo grupo "$1" conflitante.',
+	'cite_error_references_missing_group' => 'marca <code><ref></code> definida em <code><references></code> tem atributo grupo "$1" que não aparece no texto anterior.',
+	'cite_error_references_missing_key' => 'marca <code><ref></code> com nome "$1" definida em <code><references></code> não foi utilizada no texto anterior.',
+	'cite_error_references_no_key' => 'marca <code><ref></code> definida em <code><references></code> não tem atributo nome.',
+	'cite_error_empty_references_define' => 'marca <code><ref></code> definida em <code><references></code> com nome "$1" não tem nenhum conteúdo.',
 );
 
+/** Quechua (Runa Simi)
+ * @author AlimanRuna
+ */
+$messages['qu'] = array(
+	'cite-desc' => 'Pukyumanta willanapaq <nowiki><ref[ name=id]></nowiki> , <nowiki><references/></nowiki> unanchachakunatam yapan',
+	'cite_croak' => "''Cite'' nisqa mast'arinaqa manañam kanchu; $1: $2",
+	'cite_error_key_str_invalid' => 'Ukhu pantasqa;
+mana allin $str wan/icha $key.
+Kayqa ama hayk\'appas tukukunchu.',
+	'cite_error_stack_invalid_input' => "Ukhu pantasqa;
+tawqa llawiqa manam allinchu.
+Kayqa ama hayk'appas tukukunchu.",
+	'cite_error' => 'Pukyumanta willaypi pantasqa: $1',
+	'cite_error_ref_numeric_key' => "<code><ref></code> unanchachaqa manam allinchu;
+sutinqa ama yupaylla kachunchu. Ch'uyanchaq sutinta llamk'achiy",
+	'cite_error_ref_no_key' => "<code><ref></code> unanchachaqa manam allinchu;
+ch'usaq pukyu willana unanchachaqa sutiyuqmi kachun",
+	'cite_error_ref_too_many_keys' => '<code><ref></code> unanchachaqa manam allinchu;
+sutinkunaqa manam allinchu, nisyu sutinchá',
+	'cite_error_ref_no_input' => "<code><ref></code> unanchachaqa manam allinchu;
+sutinnaq pukyu willana unanchachaqa ama ch'usaqchu kachun",
+	'cite_error_references_invalid_parameters' => "<code><ref></code> unanchachaqa manam allinchu;
+ama kuskanachina tupuchu kachun. <code><references /></code> unanchachata llamk'achiy",
+	'cite_error_references_invalid_parameters_group' => '<code><ref></code> unanchachaqa manam allinchu;
+"group" nisqa kuskanachina tupulla kachun. <code><references /></code> icha <code><references group="..." /></code> unanchachata llamk\'achiy',
+	'cite_error_references_no_backlink_label' => "Manañam kanchu allichana kutimuy t'inki unanchakuna.
+Astawan sut'ichay <nowiki>[[MediaWiki:Cite references link many format backlink labels|Pukyumanta willaykuna achka allichana kutimuy t'inki unanchakunata t'inkin]]</nowiki> nisqa willaypi",
+	'cite_error_references_no_text' => '<code><ref></code> unanchachaqa manam allinchu;
+<code>$1</code> nisqapaq pukyu qillqa manam kanchu',
+	'cite_error_included_ref' => "Kichaq <ref> unanchachapaq wichq'aq </ref> unanchachaqa manam kanchu",
+	'cite_error_refs_without_references' => '<code><ref></code> unanchacham kachkan, ichataq manam <code><references/></code> unanchachachu',
+	'cite_error_group_refs_without_references' => '"$1" sutiyuq huñupaq <code><ref></code> unanchacham kachkan, ichataq manam chay huñupaq qillqasqa <code><references/></code> unanchachachu',
+);
+
 /** Romanian (Română)
+ * @author Firilacroco
  * @author KlaudiuMihaila
  * @author Mihai
+ * @author Minisarm
  */
 $messages['ro'] = array(
-	'cite_desc' => 'Adaugă etichete <nowiki><ref[ name=id]></nowiki> şi <nowiki><references/></nowiki>, pentru citări',
+	'cite-desc' => 'Adaugă etichete <nowiki><ref[ name=id]></nowiki> și <nowiki><references/></nowiki>, pentru citări',
 	'cite_croak' => 'Citare coruptă; $1 : $2',
 	'cite_error_key_str_invalid' => 'Eroare internă;
-$str invalid sau/şi $key.
+$str invalid sau/și $key.
 Acestea nu ar trebui să se întâmple.',
 	'cite_error_stack_invalid_input' => 'Eroare internă;
 stivă cheie invalidă.
 Acestea nu ar trebui să se întâmple.',
 	'cite_error' => 'Eroare la citare: $1',
 	'cite_error_ref_numeric_key' => 'Etichetă <code><ref></code> invalidă;
-numele nu poate fi un număr. Foloseşte un titlu descriptiv',
+numele nu poate fi un număr. Folosește un titlu descriptiv',
 	'cite_error_ref_no_key' => 'Etichetă <code><ref></code> invalidă;
-ref-urile fără conţinut trebuie să aibă un nume',
+ref-urile fără conținut trebuie să aibă un nume',
 	'cite_error_ref_too_many_keys' => 'Etichetă <code><ref></code> invalidă;
 nume invalid, ex. prea multe nume',
 	'cite_error_ref_no_input' => 'Etichetă <code><ref></code> invalidă;
-ref-urile fără nume trebuie să aibă conţinut',
-	'cite_error_references_invalid_input' => 'Etichetă <code><references></code> invalidă;
-nu sunt permise intrări. Foloseşte eticheta <code><references /></code>',
+ref-urile fără nume trebuie să aibă conținut',
 	'cite_error_references_invalid_parameters' => 'Etichetă <code><references></code> invalidă;
-parametrii nu sunt permişi.
-Foloseşte eticheta <code><references /></code>',
+parametrii nu sunt permiși.
+Folosește eticheta <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Etichetă <code><references></code> invalidă;
 doar parametrul „grup” este permis.
-Foloseşte eticheta <code><references /></code>, sau <code><references group="..." /></code>',
+Folosește eticheta <code><references /></code>, sau <code><references group="..." /></code>',
 	'cite_error_references_no_text' => 'Etichetă <code><ref></code> invalidă;
 niciun text nu a fost furnizat pentru ref-urile numite <code>$1</code>',
 	'cite_error_included_ref' => 'Adaugă </ref> eticheta a fost deschisă prin <ref>',
+	'cite_error_refs_without_references' => 'Etichete <code><ref></code> există, dar nu s-a găsit nicio etichetă <code><references/></code>',
+	'cite_error_group_refs_without_references' => 'Etichete <code><ref></code> există pentru un grup numit „$1”, dar nu și o etichetă <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'Eticheta <code><ref></code> din <code><references></code> are atributul de grup „$1” care a intrat în conflict.',
+	'cite_error_references_missing_group' => 'Eticheta <code><ref></code> definită în <code><references></code> are atributul de grup „$1” care nu apare în textul anterior.',
+	'cite_error_references_missing_key' => 'Eticheta <code><ref></code> cu numele „$1” definită în <code><references></code> nu este utilizată în textul anterior.',
+	'cite_error_references_no_key' => 'Eticheta <code><ref></code> definită în <code><references></code> nu are atributul nume.',
+	'cite_error_empty_references_define' => 'Eticheta <code><ref></code> definită în <code><references></code> cu numele „$1” nu are conținut.',
 );
 
 /** Tarandíne (Tarandíne)
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
-	'cite_desc' => 'Aggiunge le tag <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> pe le citaziune',
+	'cite-desc' => 'Aggiunge le tag <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> pe le citaziune',
+	'cite_croak' => 'Cite muerte; $1: $2',
+	'cite_error_key_str_invalid' => 'Errore inderne;
+invalide $str e/o $key.
+Quiste non g\'avessa succedere.',
+	'cite_error_stack_invalid_input' => "Errore inderne;
+stack key invalide.
+Quiste non g'avessa succedere.",
 	'cite_error' => 'Cite errore: $1',
+	'cite_error_ref_numeric_key' => "Tag <code><ref></code> invalide;
+'u nome non ge pò essere sole 'n'indere. Ause 'nu titele descrittive",
+	'cite_error_ref_no_key' => "Tag <code><ref></code> invalide;
+le referimende senza condenute onne tenè 'nu nome",
+	'cite_error_ref_too_many_keys' => 'Tag <code><ref></code> invalide;
+nome invalide, pe esembie troppe luènghe',
+	'cite_error_ref_no_input' => "Tag <code><ref></code> invalide;
+referimende senza nome onne tenè 'nu condenute",
+	'cite_error_references_invalid_parameters' => 'Tag <code><references></code> invalide;
+non ge se pò mettere nisciune parametre.
+Ause <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Tag <code><references></code> invalide;
+sulamende \'u parametre "group" pò essere ausate.
+Ause <code><references /></code> o <code><references group="..." /></code>',
+	'cite_error_references_no_text' => 'Tag <code><ref></code> invalide;
+nisciune teste ere previste pe le referimende nnomenate <code>$1</code>',
+	'cite_error_included_ref' => "Stè 'u tag </ref> ma manghe <ref>",
 	'cite_error_refs_without_references' => "'u tag <code><ref></code> esiste, ma non g'esiste 'u tag <code><references/></code>",
+	'cite_error_group_refs_without_references' => '\'U tag <code><ref></code> esiste pu gruppe nomenate "$1", ma non ge corresponne a \'u tag acchiate <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => "'U tag <code><ref></code> tag jndr'à <code><references></code> tène conflitte cu l'attribbute d'u gruppe \"\$1\".",
+	'cite_error_references_missing_group' => "'U tag <code><ref></code> definite jndr'à <code><references></code> ave attribbute de gruppe \"\$1\" 'u quale non ge jesse jndr'à 'u teste prengepàle.",
+	'cite_error_references_missing_key' => "'U tag <code><ref></code> cu 'u nome \"\$1\" definite jndr'à <code><references></code> non g'avene ausate jndr'à 'u teste prengepàle.",
+	'cite_error_references_no_key' => "'U tag <code><ref></code> definite jndr'à <code><references></code> non ge tène 'nu nome d'attrebbute.",
+	'cite_error_empty_references_define' => '\'U tag <code><ref></code> definite jndr\'à <code><references></code> cu \'u nome "$1" non ge tène condenute.',
 );
 
 /** Russian (Русский)
  * @author Ahonc
+ * @author Dim Grits
+ * @author Ferrer
+ * @author KPu3uC B Poccuu
  * @author Kaganer
  * @author Kalan
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
-	'cite_desc' => 'Добавляет теги <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> для сносок',
-	'cite_croak' => 'Цитата сдохла; $1: $2',
-	'cite_error_key_str_invalid' => 'Внутренняя ошибка;
-ошибочное значение $str или $key.
-Подобного никогда не должно произойти.',
+	'cite-desc' => 'Добавляет теги <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> для сносок',
+	'cite_croak' => 'Цитата умерла; $1: $2',
+	'cite_error_key_str_invalid' => "Внутренняя ошибка;
+ошибочное значение '''\$str''' или '''\$key'''.
+Подобное не должно происходить.",
 	'cite_error_stack_invalid_input' => 'Внутренняя ошибка.
 Неверный ключ стека.
-Это никогда не должно происходить.',
+Подобное не должно происходить.',
 	'cite_error' => 'Ошибка цитирования $1',
-	'cite_error_ref_numeric_key' => 'Неправильный вызов: ожидался нечисловой ключ',
-	'cite_error_ref_no_key' => 'Неправильный вызов: ключ не был указан',
-	'cite_error_ref_too_many_keys' => 'Неправильный вызов: неверные ключи, например было указано слишком много ключей или ключ был неправильным',
-	'cite_error_ref_no_input' => 'Неверный вызов: нет входных данных',
-	'cite_error_references_invalid_input' => 'Входные данные недействительны, так как не предполагаются',
-	'cite_error_references_invalid_parameters' => 'Переданы недействительные параметры; их вообще не предусмотрено.',
-	'cite_error_references_invalid_parameters_group' => 'Ошибочный тег <code><references></code>;
-можно использовать только параметр «group».
-Используйте <code><references /></code>, или <code><references group="..." /></code>',
+	'cite_error_ref_numeric_key' => 'Неправильный тег <code><ref></code>;
+имя не может быть целым числом. Используйте описательное название',
+	'cite_error_ref_no_key' => 'Неправильный тег <code><ref></code>;
+элемент без содержания должен иметь имя.',
+	'cite_error_ref_too_many_keys' => 'Неправильный тег <code><ref></code>;
+ошибочные имена, возможно, слишком много',
+	'cite_error_ref_no_input' => 'Неправильный тег <code><ref></code>;
+элемент без имени должен иметь содержание',
+	'cite_error_references_invalid_parameters' => 'Неправильный тег <code><references></code>;
+параметры не разрешены.
+Используйте <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => "Ошибочный тег <code><references></code>;
+можно использовать только параметр <code>'''group'''</code>.
+Используйте <code><references /></code> или <code><references group=\"…\" /></code>",
 	'cite_error_references_no_backlink_label' => 'Не хватает символов для возвратных гиперссылок.
 Следует расширить системное сообщение <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Закончились отметки пользовательских ссылок для группы «$1».
+Определите дополнительные в сообщении <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Неверный тег <code><ref></code>; для сносок <code>$1</code> не указан текст',
 	'cite_error_included_ref' => 'Отсутствует закрывающий тег </ref>',
 	'cite_error_refs_without_references' => 'Для существующего тега <code><ref></code> не найдено соответствующего тега <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Для существующих тегов <code><ref></code> группы «$1» не найдено соответствующего тега <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'Тег <code><ref></code> в <code><references></code> имеет конфликтующие группы атрибутов «$1».',
+	'cite_error_references_missing_group' => 'Тег <code><ref></code>, определённый в <code><references></code>, имеет атрибут группы «$1», который не упоминается в тексте ранее.',
+	'cite_error_references_missing_key' => 'Тег <code><ref></code> с именем «$1», определённый в <code><references></code>, не используется в предшествующем тексте.',
+	'cite_error_references_no_key' => 'Тег <code><ref></code>, определённый в <code><references></code>, не имеет атрибута имени.',
+	'cite_error_empty_references_define' => 'Тег <code><ref></code>, определённый в <code><references></code>, с именем «$1» не имеет содержания.',
+	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_reference_link_prefix' => 'cite_ref-',
+	'cite_references_link_prefix' => 'cite_note-',
+	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
+	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
+	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
+	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
 	'cite_references_link_many_format_backlink_labels' => 'а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я аа аб ав аг ад ае ё аж аз аи ай ак ал ам ан ао ап ар ас ат ау аф ах ац ач аш ащ аъ аы аь аэ аю ая ба бб бв бг бд бе бж бз би бй бк бл бм бн бо бп бр бс бт бу бф бх бц бч бш бщ бъ бы бь бэ бю бя ва вб вв вг вд ве вж вз ви вй вк вл вм вн во вп вр вс вт ву вф вх вц вч вш вщ въ вы вь вэ вю вя га гб гв гг гд ге гж гз ги гй гк гл гм гн го гп гр гс гт гу гф гх гц гч гш гщ гъ гы гь гэ гю гя да дб дв дг дд де дж дз ди дй дк дл дм дн до дп др дс дт ду дф дх дц дч дш дщ дъ ды дь дэ дю дя еа еб ев ег ед ее еж ез еи ей ек ел ем ен ео еп ер ес ет еу еф ех ец еч еш ещ еъ еы еь еэ ею ея жа жб жв жг жд же жж жз жи жй жк жл жм жн жо жп жр жс жт жу жф жх жц жч жш жщ жъ жы жь жэ жю жя за зб зв зг зд зе зж зз зи зй зк зл зм зн зо зп зр зс зт зу зф зх зц зч зш зщ зъ зы зь зэ зю зя иа иб ив иг ид ие иж из ии ий ик ил им ин ио ип ир ис ит иу иф их иц ич иш ищ иъ иы иь иэ ию ия йа йб йв йг йд йе йж йз йи йй йк йл йм йн йо йп йр йс йт йу йф йх йц йч йш йщ йъ йы йь йэ йю йя ка кб кв кг кд ке кж кз ки кй кк кл км кн ко кп кр кс кт ку кф кх кц кч кш кщ къ кы кь кэ кю кя ла лб лв лг лд ле лж лз ли лй лк лл лм лн ло лп лр лс лт лу лф лх лц лч лш лщ лъ лы ль лэ лю ля ма мб мв мг мд ме мж мз ми мй мк мл мм мн мо мп мр мс мт му мф мх мц мч мш мщ мъ мы мь мэ мю мя на нб нв нг нд не нж нз ни нй нк нл нм нн но нп нр нс нт ну нф нх нц нч нш нщ нъ ны нь нэ ню ня оа об ов ог од ое ож оз ои ой ок ол ом он оо оп ор ос от оу оф ох оц оч ош ощ оъ оы оь оэ ою оя па пб пв пг пд пе пж пз пи пй пк пл пм пн по пп пр пс пт пу пф пх пц пч пш пщ пъ пы пь пэ пю пя ра рб рв рг рд ре рж рз ри рй рк рл рм рн ро рп рр рс рт ру рф рх рц рч рш рщ ръ ры рь рэ рю ря са сб св сг сд се сж сз си сй ск сл см сн со сп ср сс ст су сф сх сц сч сш сщ съ сы сь сэ сю ся та тб тв тг тд те тж тз ти тй тк тл тм тн то тп тр тс тт ту тф тх тц тч тш тщ тъ ты ть тэ тю тя уа уб ув уг уд уе уж уз уи уй ук ул ум ун уо уп ур ус ут уу уф ух уц уч уш ущ уъ уы уь уэ ую уя фа фб фв фг фд фе фж фз фи фй фк фл фм фн фо фп фр фс фт фу фф фх фц фч фш фщ фъ фы фь фэ фю фя ха хб хв хг хд хе хж хз хи хй хк хл хм хн хо хп хр хс хт ху хф хх хц хч хш хщ хъ хы хь хэ хю хя ца цб цв цг цд це цж цз ци цй цк цл цм цн цо цп цр цс цт цу цф цх цц цч цш цщ цъ цы ць цэ цю ця ча чб чв чг чд че чж чз чи чй чк чл чм чн чо чп чр чс чт чу чф чх чц чч чш чщ чъ чы чь чэ чю чя ша шб шв шг шд ше шж шз ши шй шк шл шм шн шо шп шр шс шт шу шф шх шц шч шш шщ шъ шы шь шэ шю шя ща щб щв щг щд ще щж щз щи щй щк щл щм щн що щп щр щс щт щу щф щх щц щч щш щщ щъ щы щь щэ щю щя ъа ъб ъв ъг ъд ъе ъж ъз ъи ъй ък ъл ъм ън ъо ъп ър ъс ът ъу ъф ъх ъц ъч ъш ъщ ъъ ъы ъь ъэ ъю ъя ыа ыб ыв ыг ыд ые ыж ыз ыи ый ык ыл ым ын ыо ып ыр ыс ыт ыу ыф ых ыц ыч ыш ыщ ыъ ыы ыь ыэ ыю ыя ьа ьб ьв ьг ьд ье ьж ьз ьи ьй ьк ьл ьм ьн ьо ьп ьр ьс ьт ьу ьф ьх ьц ьч ьш ьщ ьъ ьы ьь ьэ ью ья эа эб эв эг эд эе эж эз эи эй эк эл эм эн эо эп эр эс эт эу эф эх эц эч эш эщ эъ эы эь ээ эю эя юа юб юв юг юд юе юж юз юи юй юк юл юм юн юо юп юр юс ют юу юф юх юц юч юш ющ юъ юы юь юэ юю юя яа яб яв яг яд яе яж яз яи яй як ял ям ян яо яп яр яс ят яу яф ях яц яч яш ящ яъ яы яь яэ яю яя',
+	'cite_references_link_many_sep' => ' ',
+	'cite_references_link_many_and' => ' ',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'cite-desc' => 'Придасть таґы <nowiki><ref[ name="id"]></nowiki> і <nowiki><references /></nowiki> на означіня цітацій',
+	'cite_croak' => 'Нефункчна цітація; $1: $2',
+	'cite_error_key_str_invalid' => 'Внутрїшня хыба; 
+неплатный $str або $key. 
+Тото бы не мало ниґда настати.',
+	'cite_error_stack_invalid_input' => 'Внутрїшня хыба; 
+неплатный ключ стека. 
+Тото бы не мало ниґда настати.',
+	'cite_error' => 'Хыбна цітація: $1',
+	'cite_error_ref_numeric_key' => 'Хыба в таґу <code><ref></code>; назвов не сміє быти просте чісло, хоснуйте пописове означіня',
+	'cite_error_ref_no_key' => 'Хыба в таґу <code><ref></code>; порожнї едітації мусять обсяговати назву',
+	'cite_error_ref_too_many_keys' => 'Хыба в таґу <code><ref></code>; хыбны назвы, напр. є їх дуже много',
+	'cite_error_ref_no_input' => 'Хыба в таґу <code><ref></code>; цітації без назвы мусять мати властный обсяг',
+	'cite_error_references_invalid_parameters' => 'Хыба в таґу <code><references></code>;  ту не є доволеный параметер, хоснуйте <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Не платный таґ <tt><references></tt>;
+є поволеный лем параметер „group“.
+Хоснуйте <tt><references /></tt> або <tt><references group="..." /></tt>.',
+	'cite_error_references_no_backlink_label' => 'Дішли означіня зворотных одказів, придайте їх пару до повідомлїня <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Дішли дефінованы значкы про ґрупу „$1“.
+Звыште їх чісло у повідомлїню <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Хыба в таґу <code><ref></code>; цітації означеной <code>$1</code> не є доданый жаден текст',
+	'cite_error_included_ref' => 'Хыбить закінчіня </ref> k таґу <ref>',
+	'cite_error_refs_without_references' => 'Найджена значка <code><ref></code> без одповідной значкы <code><references/></code>.',
+	'cite_error_group_refs_without_references' => 'Найджена значка <code><ref></code> про ґрупу „$1“ без одповідной значкы <code><references group="$1"/></code>.',
+	'cite_error_references_group_mismatch' => 'Значка <code><ref></code> внутрї <code><references></code> має дефіновану іншу ґрупу „$1“.',
+	'cite_error_references_missing_group' => 'Значка <code><ref></code> внутрї <code><references></code> хоснує ґрупу „$1“, котра ся в попереднїм текстї не обявує.',
+	'cite_error_references_missing_key' => 'На <code><ref></code> з іменом „$1“ дефінованый внутрї <code><references></code> не суть в попереднїм текстї жадны одказы.',
+	'cite_error_references_no_key' => 'У значкы <code><ref></code> дефінованой внутрї <code><references></code> хыбить атрібут <code>name</code>.',
+	'cite_error_empty_references_define' => 'У значкы <code><ref></code> з назвов „$1“ дефінованой внутрї <code><references></code> хыбить обсяг.',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
-	'cite_desc' => 'Хос быһаарыы <nowiki><ref[ name=id]></nowiki> уонна <nowiki><references/></nowiki> тиэктэрин эбэр',
+	'cite-desc' => 'Хос быһаарыы <nowiki><ref[ name=id]></nowiki> уонна <nowiki><references/></nowiki> тиэктэрин эбэр',
 	'cite_croak' => 'Быһа тардыы суох буолбут (Цитата сдохла); $1: $2',
 	'cite_error_key_str_invalid' => 'Иһинээҕи сыыһа: $str уонна/эбэтэр $key сыыһалар.',
 	'cite_error_stack_invalid_input' => 'Иһинээҕи сыыһа: stack key сыыһалаах',
@@ -1929,23 +2945,32 @@
 	'cite_error_ref_no_key' => '<code><ref></code> тиэк алҕаһа (Неправильный вызов): аата (күлүүһэ) ыйыллыбатах',
 	'cite_error_ref_too_many_keys' => '<code><ref></code> тиэк алҕаһа (Неправильный вызов): аата сыыһа ыйыллыбыт, эбэтэр наһаа элбэх аат суруллубут',
 	'cite_error_ref_no_input' => '<code><ref></code> тиэк алҕастаах (Неверный вызов): иһинээҕитэ сыыһа',
-	'cite_error_references_invalid_input' => '<code><references></code> тиэк алҕаһа, иһигэр туох да суох буолуохтаах',
 	'cite_error_references_invalid_parameters' => 'Сыыһа параметрдар бэриллибиттэр; <code><references /></code> тиэккэ отой суох буолуохтаахтар',
 	'cite_error_references_invalid_parameters_group' => 'Сыыһалаах <code><references></code> тиэк;
 "group" эрэ парааматыры туһаныахха сөп.
 Маны <code><references /></code>, эбэтэр <code><references group="..." /></code> туһан.',
-	'cite_error_references_no_backlink_label' => 'Не хватает символов для возвратных гиперссылок; следует расширить системную переменную <nowiki>[[MediaWiki:Cite_references_link_many_format_backlink_labels]]</nowiki>',
-	'cite_error_references_no_text' => 'Сыыһа тиэк (тег) <code><ref></code>; хос быһаарыыларга <code>$1</code> тиэкис ыйыллыбатах',
-	'cite_error_included_ref' => 'Сабар бэлиэ суох эбит </ref>',
-	'cite_error_refs_without_references' => 'Баар <code><ref></code> бэлиэҕэ сөп түбэһэр <code><references/></code> бэлиэ көстүбэтэ',
-	'cite_error_group_refs_without_references' => '"$1" бөлөх <code><ref></code> бэлиэтигэр сөп түбэһэр <code><references group="$1"/></code> бэлиэ көстүбэтэ',
+	'cite_error_references_no_backlink_label' => 'Төннөрөр сигэлэргэ бэлиэлэрэ тиийбэттэр.
+<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> диэн систиэмэ этиитин кэҥэтэн биэрэххэ наада',
+	'cite_error_no_link_label_group' => '«$1» бөлөх кыттааччыларын сигэлэрин бэлиэлэрэ бүппүттэр.
+Эбии манна <nowiki>[[MediaWiki:$2]]</nowiki> оҥор.',
+	'cite_error_references_no_text' => 'Сыыһа <code><ref></code> тиэк (тег);
+<code>$1</code> диэн хос быһаарыыларга аналлаах тиэкис суох',
+	'cite_error_included_ref' => '</ref> диэн сабар тиэк суох эбит',
+	'cite_error_refs_without_references' => 'Баар <code><ref></code> тиэккэ сөп түбэһэр <code><references/></code> тиэк көстүбэтэ',
+	'cite_error_group_refs_without_references' => '"$1" бөлөх <code><ref></code> тиэгигэр сөп түбэһэр <code><references group="$1"/></code> тиэк көстүбэтэ',
+	'cite_error_references_group_mismatch' => '<code><references></code> туттуллар <code><ref></code> тиэк бэйэ бэйэлэрин кытта сөпсөспөт "$1" атрибуттаах бөлөхтөрдөөх',
+	'cite_error_references_missing_group' => 'Бу <code><references></code> туттар маннык <code><ref></code> тиэгэ бөлөх тиэкиһигэр урут көрсүллүбэтэх "$1" атрибуттаах.',
+	'cite_error_references_missing_key' => 'Бу <code><references></code> туттар маннык <code><ref></code> "$1" диэн тиэгэ бу иннинээҕи тиэкискэ туттуллубат эбит.',
+	'cite_error_references_no_key' => 'Бу <code><references></code> туттар <code><ref></code> тиэгэ аатын атрибута суох эбит.',
+	'cite_error_empty_references_define' => '<code><references></code> туттар <code><ref></code> "$1" диэн ааттаах тиэгэ иһинээҕитэ суох эбит.',
 );
 
 /** Sicilian (Sicilianu)
+ * @author Melos
  * @author Santu
  */
 $messages['scn'] = array(
-	'cite_desc' => 'Junci li tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> pi gistiri li citazzioni',
+	'cite-desc' => 'Junci li tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> pi gistiri li citazzioni',
 	'cite_croak' => 'Sbàgghiu nnâ citazzioni: $1: $2',
 	'cite_error_key_str_invalid' => 'Sbàgghiu nternu: $str sbagghiatu',
 	'cite_error_stack_invalid_input' => 'Sbàgghiu nternu: chiavi di stack sbagghiata',
@@ -1954,8 +2979,6 @@
 	'cite_error_ref_no_key' => "Sbàgghiu ni l'usu dû marcaturi <code><ref></code>: li ref vacanti non ponnu èssiri senza nomu.",
 	'cite_error_ref_too_many_keys' => "Sbàgghiu ni l'usu dû marcaturi <code><ref></code>: nomi non vàlidi (pi es. nùmmiru troppu àutu)",
 	'cite_error_ref_no_input' => "Sbàgghiu ni l'usu dû marcaturi <code><ref></code>: li ref senza nomu non ponnu èssiri vacanti",
-	'cite_error_references_invalid_input' => "Sbàgghiu ni l'usu dû marcaturi <code><references></code>: input non ammittutu, usari lu marcaturi
-<code><references /></code>",
 	'cite_error_references_invalid_parameters' => "Sbàgghiu ni l'usu dû marcaturi <code><references></code>: paràmitri non ammittuti, usari li marcaturi <code><references /></code>",
 	'cite_error_references_invalid_parameters_group' => 'Sbàgghiu ni l\'usu dû marcaturi <code><references></code>; 
 sulu lu paràmitru "group" è pirmittutu.
@@ -1963,21 +2986,24 @@
 	'cite_error_references_no_backlink_label' => 'Etichetti di rimannata pirsunalizzati finuti, aumintari lu nùmmiru ntô missàggiu <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
 	'cite_error_references_no_text' => 'Marcaturi <code><ref></code> non vàlidu; non vinni nnicatu nuddu testu pô marcaturi <code>$1</code>',
 	'cite_error_included_ref' => '</ref> di chiusura mancanti pô marcaturi <ref>',
-	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_error_refs_without_references' => 'Sù prisenti dê marcatura <code><ref></code> ma nun fu attruvatu nissunu marcaturi <code><references/></code>',
+	'cite_error_group_refs_without_references' => 'Sù prisenti dê marcatura <code><ref></code> pi nu gruppu chiamatu "$1" ma nun fu truvatu nissunu marcaturi <code><references group="$1"/></code> currispunnenti',
+	'cite_error_references_group_mismatch' => 'Lu tag <code><ref></code> n <code><references></code> havi attribuiutu lu gruppu "$1" n conflittu.',
+	'cite_error_references_missing_group' => 'Lu tag <code><ref></code> difinutu n <code><references></code> havi n\'attributu gruppu "$1" ca nun cumpari ni lu testu pricidenti.',
+	'cite_error_references_missing_key' => 'Lu tag <code><ref></code> cu nomu "$1" difinutu n <code><references></code> nun è usatu nô testu pricidenti.',
+	'cite_error_references_no_key' => "Lu tag <code><ref></code> difinutu n <code><references></code> nun havi n'attributu nomu.",
+	'cite_error_empty_references_define' => 'Lu tag <code><ref></code> difinutu n <code><references></code> cu lu nomu "$1" nun havi alcun cuntinutu.',
 	'cite_reference_link_prefix' => 'muntuari ref',
 	'cite_references_link_prefix' => 'muntuari annutazzioni',
-	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
-	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
-	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
-	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
-	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
 );
 
 /** Sinhala (සිංහල)
+ * @author Budhajeewa
+ * @author Thameera123
  * @author නන්දිමිතුරු
  */
 $messages['si'] = array(
-	'cite_desc' => 'උපහරණයන් සඳහා, <nowiki><ref[ name=id]></nowiki> සහ <nowiki><references/></nowiki> ටැගයන්, එකතු කරයි',
+	'cite-desc' => 'උපහරණයන් සඳහා, <nowiki><ref[ name=id]></nowiki> සහ <nowiki><references/></nowiki> ටැගයන්, එකතු කරයි',
 	'cite_croak' => 'උපන්‍යාසය නිරුද්ධවිය; $1: $2',
 	'cite_error_key_str_invalid' => 'අභ්‍යන්තර දෝෂය;
 අනීතික  $str සහ/හෝ $key.
@@ -1994,8 +3020,6 @@
 අනීතික නාමයන්, නිද. පමණට වැඩි',
 	'cite_error_ref_no_input' => 'අනීතික <code><ref></code> ටැගය;
 නාමයක් නොමැති ආශ්‍රේය සඳහා පෙළක් තිබිය යුතුය',
-	'cite_error_references_invalid_input' => 'අනීතික <code><references></code> ටැගය;
-කිසිම ප්‍රදානයකට ඉඩ නොදෙයි. <code><references /></code> භාවිත කරන්න',
 	'cite_error_references_invalid_parameters' => 'අනීතික <code><references></code> ටැගය;
 කිසිම පරාමිතිකයකට ඉඩ නොදෙයි.
 <code><references /></code> භාවිත කරන්න',
@@ -2004,23 +3028,27 @@
 <code><references /></code>, හෝ <code><references group="..." /></code> භාවිත කරන්න',
 	'cite_error_references_no_backlink_label' => 'උපයෝග්‍ය පසුසබැඳුම් ලේබල අවසාන විය.
 <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> පණිවුඩයෙහි තවත් ඒවා අර්ථදක්වන්න',
+	'cite_error_no_link_label_group' => '"$1" කණ්ඩායම සඳහා අභිමත සබැඳි ලේබල අවසන් විය. 
+<nowiki>[[MediaWiki:$2]]</nowiki> පණිවුඩයේ තවත් වැඩිපුර සඳහන් කරන්න.',
 	'cite_error_references_no_text' => 'අනීතික <code><ref></code> ටැගය;
 <code>$1</code> නමැති ආශ්‍රේයන් සඳහා කිසිදු පෙළක් සපයා නොතිබුණි',
 	'cite_error_included_ref' => '<ref> ටැගය සොයාගත නොහැකි බැවින් </ref> වසා දමමින්',
-	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_error_refs_without_references' => '<code><ref></code> ටැග පැවතුණත්, <code><references/></code> ටැග සොයාගත නොහැකි විය.',
+	'cite_error_group_refs_without_references' => '"$1" නම් කණ්ඩායම සඳහා <code><ref></code> ටැග පැවතුණත්, ඊට අදාළ <code><references group="$1"/></code> ටැග සොයාගත නොහැකි විය.',
+	'cite_error_references_group_mismatch' => '<code><references></code> හි <code><ref></code> නම් ටැගය "$1" යන පරස්පර සමූහ ගුණාංග දරයි.',
+	'cite_error_references_missing_group' => '<code><references></code> හි <code><ref></code> ටැගය පෙර පෙළෙහි නොතිබූ "$1" නම් සමූහ ගුණාංගයක් දරයි.',
+	'cite_error_references_missing_key' => '<code><references></code> හි "$1" නමැති <code><ref></code> ටැගය පෙර පෙළෙහි භාවිතා වූයේ නැත.',
+	'cite_error_references_no_key' => '<code><references></code> හි <code><ref></code> ටැගයට නමක් ආදේශකොට නැත.',
+	'cite_error_empty_references_define' => '<code><references></code> හි "$1" නමැති <code><ref></code> ටැගයට අන්තර්ගතයක් නැත.',
 	'cite_reference_link_prefix' => 'උපන්‍යාස_යොමුව-',
 	'cite_references_link_prefix' => 'උපන්‍යාස_සටහන-',
-	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
-	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
-	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
-	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
 );
 
 /** Slovak (Slovenčina)
  * @author Helix84
  */
 $messages['sk'] = array(
-	'cite_desc' => 'Pridáva značky <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki> pre citácie',
+	'cite-desc' => 'Pridáva značky <nowiki><ref[ name=id]></nowiki> a <nowiki><references/></nowiki> pre citácie',
 	'cite_croak' => 'Citát je už neaktuálny; $1: $2',
 	'cite_error_key_str_invalid' => 'Vnútorná chyba;
 neplatný $str a/alebo $key.
@@ -2031,24 +3059,122 @@
 	'cite_error_ref_no_key' => 'Neplatné volanie; nebol špecifikovaný kľúč',
 	'cite_error_ref_too_many_keys' => 'Neplatné volanie; neplatné kľúče, napr. príliš veľa alebo nesprávne špecifikovaný kľúč',
 	'cite_error_ref_no_input' => 'Neplatné volanie; nebol špecifikovaný vstup',
-	'cite_error_references_invalid_input' => 'Neplatné volanie; neočakával sa vstup',
 	'cite_error_references_invalid_parameters' => 'Neplatné parametre; neočakávli sa žiadne',
 	'cite_error_references_invalid_parameters_group' => 'Neplatná značka <code><references></code>;
 je povolený iba parameter „group“.
 Použite <code><references /></code> alebo <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Minuli sa generované návestia spätných odkazov, definujte viac v správe <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Vyčerpané prispôsobené označenia odkazov pre skupinu „$1“.
+Definujte ďalšie v správe <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Neplatná značka <code><ref></code>; nebol zadaný text pre referencie s názvom <code>$1</code>',
 	'cite_error_included_ref' => 'Chýba zakončenie značky <ref> (</ref>)',
 	'cite_error_refs_without_references' => 'Značky <code><ref></code> sú prítomné, ale nebola nájdená žiadna značka <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Značky <code><ref></code> pre skupinu „$1“ sú prítomné, ale nebola nájdená zodpovedajúca značka  <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'Značka <code><ref></code> v <code><references></code> má konfliktný atribút skupiny „$1“.',
+	'cite_error_references_missing_group' => 'Značka <code><ref></code> v <code><references></code> má atribút skupiny „$1“, ktorý sa v predošlom texte nevyskytuje.',
+	'cite_error_references_missing_key' => 'Značka <code><ref></code> s názvom „$1“ definovaná v <code><references></code> sa v predošlom texte nevyskytuje.',
+	'cite_error_references_no_key' => 'Značka <code><ref></code> s definovaná v <code><references></code> nemá žiaden atribút názov.',
+	'cite_error_empty_references_define' => 'Značka <code><ref></code> s definovaná v <code><references></code> s názvom „$1“ nemá žiaden obsah.',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'cite-desc' => 'Doda etiketi <nowiki><ref[ name=id]></nowiki> in <nowiki><references/></nowiki> za navajanje',
+	'cite_croak' => 'Hreščeča navedba; $1: $2',
+	'cite_error_key_str_invalid' => 'Notranja napaka;
+neveljaven $str in/ali $key.
+To se ne bi nikoli smelo zgoditi.',
+	'cite_error_stack_invalid_input' => 'Notranja napaka;
+neveljavni skladovni ključ.
+To se ne bi nikoli smelo zgoditi.',
+	'cite_error' => 'Napaka pri navajanju: $1',
+	'cite_error_ref_numeric_key' => 'Neveljavna oznaka <code><ref></code>;
+ime ne more biti samo število. Uporabite opisni naslov',
+	'cite_error_ref_no_key' => 'Neveljavna oznaka <code><ref></code>;
+sklici brez vsebine morajo imeti ime',
+	'cite_error_ref_too_many_keys' => 'Neveljavna etiketa <code><ref></code>;
+neveljavna imena, npr. preveč',
+	'cite_error_ref_no_input' => 'Neveljavna oznaka <code><ref></code>;
+sklici brez imena morajo imeti vsebino',
+	'cite_error_references_invalid_parameters' => 'Neveljavna etiketa <code><references></code>;
+parametri niso dovoljeni.
+Uporabite <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Neveljavna etiketa <code><references></code>;
+dovoljen je samo parameter »group«.
+Uporabite <code><references /></code> ali <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Zmanjkalo je oznak za povratne povezave.
+Določite jih več v sporočilu <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_no_link_label_group' => 'Zmanjkalo je oznak povezav po meri za skupino »$1«.
+Določite jih več v sporočilu <nowiki>[[MediaWiki:$2]]</nowiki>.',
+	'cite_error_references_no_text' => 'Neveljavna oznaka <code><ref></code>;
+sklici imenovani <code>$1</code> nimajo določenega besedila',
+	'cite_error_included_ref' => 'Zaključek </ref> manjka za etiketo <ref>',
+	'cite_error_refs_without_references' => 'Etiketa <code><ref></code> obstaja, vendar etiketa <code><references/></code> ni bila najdena',
+	'cite_error_group_refs_without_references' => 'Etiketa <code><ref></code> obstaja za skupino imenovano »$1«, vendar ustrezna etiketa <code><references group="$1"/></code> ni bila najdena',
+	'cite_error_references_group_mismatch' => 'Oznaka <code><ref></code> v <code><references></code> ima atribut nasprotujoče si skupine »$1«.',
+	'cite_error_references_missing_group' => 'Oznaka <code><ref></code>, opredeljena v <code><references></code>, ima atribut skupine »$1«, ki se ne pojavi v predhodnem besedilu.',
+	'cite_error_references_missing_key' => 'Oznaka <code><ref></code> z imenom »$1«, opredeljena v <code><references></code>, ni uporabljena v predhodnem besedilu.',
+	'cite_error_references_no_key' => 'Etiketa <code><ref></code>, določena v <code><references></code>, nima lastnosti »name«.',
+	'cite_error_empty_references_define' => 'Etiketa <code><ref></code>, določena v <code><references></code> z imenom »$1«, nima vsebine.',
+	'cite_references_link_one' => "<li id=\"\$1\">'''[[#\$2|^]]''' \$3</li>",
+	'cite_references_link_many' => '<li id="$1">^ $2 $3</li>',
+	'cite_references_link_many_format_backlink_labels' => 'a b c č d e f g h i j k l m n o p r s š t u v z ž a aa ab ac ač ad ae af ag ah ai aj ak al am an ao ap ar as aš at au av az až b ba bb bc bč bd be bf bg bh bi bj bk bl bm bn bo bp br bs bš bt bu bv bz bž c ca cb cc cč cd ce cf cg ch ci cj ck cl cm cn co cp cr cs cš ct cu cv cz cž č ča čb čc čč čd če čf čg čh či čj čk čl čm čn čo čp čr čs čš čt ču čv čz čž d da db dc dč dd de df dg dh di dj dk dl dm dn do dp dr ds dš dt du dv dz dž e ea eb ec eč ed ee ef eg eh ei ej ek el em en eo ep er es eš et eu ev ez ež f fa fb fc fč fd fe ff fg fh fi fj fk fl fm fn fo fp fr fs fš ft fu fv fz fž g ga gb gc gč gd ge gf gg gh gi gj gk gl gm gn go gp gr gs gš gt gu gv gz gž h ha hb hc hč hd he hf hg hh hi hj hk hl hm hn ho hp hr hs hš ht hu hv hz hž i ia ib ic ič id ie if ig ih ii ij ik il im in io ip ir is iš it iu iv iz iž j ja jb jc jč jd je jf jg jh ji jj jk jl jm jn jo jp jr js jš jt ju jv jz jž k ka kb kc kč kd ke kf kg kh ki kj kk kl km kn ko kp kr ks kš kt ku kv kz kž l la lb lc lč ld le lf lg lh li lj lk ll lm ln lo lp lr ls lš lt lu lv lz lž m ma mb mc mč md me mf mg mh mi mj mk ml mm mn mo mp mr ms mš mt mu mv mz mž n na nb nc nč nd ne nf ng nh ni nj nk nl nm nn no np nr ns nš nt nu nv nz nž o oa ob oc oč od oe of og oh oi oj ok ol om on oo op or os oš ot ou ov oz ož p pa pb pc pč pd pe pf pg ph pi pj pk pl pm pn po pp pr ps pš pt pu pv pz pž r ra rb rc rč rd re rf rg rh ri rj rk rl rm rn ro rp rr rs rš rt ru rv rz rž s sa sb sc sč sd se sf sg sh si sj sk sl sm sn so sp sr ss sš st su sv sz sž š ša šb šc šč šd še šf šg šh ši šj šk šl šm šn šo šp šr šs šš št šu šv šz šž t ta tb tc tč td te tf tg th ti tj tk tl tm tn to tp tr ts tš tt tu tv tz tž u ua ub uc uč ud ue uf ug uh ui uj uk ul um un uo up ur us uš ut uu uv uz už v va vb vc vč vd ve vf vg vh vi vj vk vl vm vn vo vp vr vs vš vt vu vv vz vž z za zb zc zč zd ze zf zg zh zi zj zk zl zm zn zo zp zr zs zš zt zu zv zz zž ž ža žb žc žč žd že žf žg žh ži žj žk žl žm žn žo žp žr žs žš žt žu žv žz žž',
+);
+
+/** Albanian (Shqip)
+ * @author Mikullovci11
+ * @author Olsi
+ */
+$messages['sq'] = array(
+	'cite-desc' => 'Shton etiketa <nowiki><ref[ name=id]></nowiki> dhe <nowiki><references/></nowiki> për citime',
+	'cite_croak' => 'Gabim në sistem; $1: $2',
+	'cite_error_key_str_invalid' => 'Gabim i brendshëm;
+$str dhe/ose $key i pavlefshëm
+Kjo nuk duhet të ndodhë kurrë.',
+	'cite_error_stack_invalid_input' => 'Gabim i brendshëm;
+stack key i pavlefshëm
+Kjo nuk duhet të ndodhë kurrë.',
+	'cite_error' => 'Gabim referencash: $1',
+	'cite_error_ref_numeric_key' => 'Etiketë <code><ref></code> e pavlefshme;
+emri nuk mund të jetë një numër i plotë i thjeshtë. Përdorni një titull përshkrues',
+	'cite_error_ref_no_key' => 'Etiketë <code><ref></code> e pavlefshme;
+refs pa përmbajtje duhet të kenë një emër',
+	'cite_error_ref_too_many_keys' => 'Etiketë <code><ref></code> e pavlefshme;
+emra të pavlefshëm, p.sh. shumë',
+	'cite_error_ref_no_input' => 'Etiketë <code><ref></code> e pavlefshme;
+refs pa emër duhet të kenë përmbajtje',
+	'cite_error_references_invalid_parameters' => 'Etiketë <code><references></code> e pavlefshme;
+asnjë parametër nuk lejohet.
+Përdorni <code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => 'Etiketë <code><references></code> e pavlefshme;
+vetëm parametri "group" lejohet.
+Përdorni <code><references /></code>, ose <code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => 'Nga ran të etiketave backlink me porosi. 
+Percaktoni më shumë në <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mesazh.',
+	'cite_error_no_link_label_group' => 'Nga ran e etiketave lidhje me porosi për grupin "$1". 
+Percaktoni më shumë në <nowiki> [[MediaWiki:$2]] </nowiki> mesazh.',
+	'cite_error_references_no_text' => 'Etiketë <code><ref></code> e pavlefshme;
+asnjë tekst nuk u dha për refs e quajtura <code>$1</code>',
+	'cite_error_included_ref' => 'Duke mbyllur </ref> mungon për etiketën <ref>',
+	'cite_error_refs_without_references' => 'Etiketat <code><ref></code> ekzistojnë, por nuk u gjet etiketa <code><references/></code>',
+	'cite_error_group_refs_without_references' => 'Etiketat <code><ref></code> ekzistojnë për një grup të quajtur "$1", por nuk u gjet etiketa korresponduese <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => '<code><ref></code> tag in <code><references></code> has conflicting group attribute "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code> etiketa e përcaktuar në <code><referenca></code> ka atribut grup "$1" që nuk duket në tekstin paraprak.',
+	'cite_error_references_missing_key' => '<code><ref></code> etiketa me emrin "$1" e percaktuar ne <code><referenca></code> nuk është përdorur në tekst paraprak.',
+	'cite_error_references_no_key' => '<code><ref></code> etiketa e përcaktuar në <code><referenca></code> nuk ka ndonjë atribut emër.',
+	'cite_error_empty_references_define' => '<code><ref></code> etiketa e përcaktuar në <code><referenca></code> me emrin "$1" nuk ka përmbajtje.',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
-	'cite_desc' => 'Додаје <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> ознаке за цитирање.',
-	'cite_croak' => 'Додатак за цитирање је умро; $1: $2.',
+	'cite-desc' => 'Додаје <nowiki><ref[ name=id]></nowiki> и <nowiki><references/></nowiki> ознаке за цитирање.',
+	'cite_croak' => 'Додатак за цитирање је неисправан; $1: $2.',
 	'cite_error_key_str_invalid' => 'Унутрашња грешка; лош $str и/или $key. Ово не би требало никад да се деси.',
 	'cite_error_stack_invalid_input' => 'Унутрашња грешка; лош кључ стека. Ово не би требало никад да се деси.',
 	'cite_error' => 'Грешка цитата: $1',
@@ -2056,80 +3182,147 @@
 	'cite_error_ref_no_key' => 'Лоша ознака <code><ref></code>; ref-ови без садржаја морају имати име.',
 	'cite_error_ref_too_many_keys' => 'Лоша ознака <code><ref></code>; лоша имена, односно много њих.',
 	'cite_error_ref_no_input' => 'Лоша ознака <code><ref></code>; ref-ови без имена морају имати садржај.',
-	'cite_error_references_invalid_input' => 'Лоша ознака <code><references></code>; улаз није дозвољен. Користи <code><references /></code>.',
 	'cite_error_references_invalid_parameters' => 'Лоша ознака <code><references></code>; параметри нису дозвољени. Користи <code><references /></code>.',
 	'cite_error_references_invalid_parameters_group' => 'Лоша ознака <code><references></code>; само је парамтера "group" дозвољен. Користи <code><references /></code> или <code><references group="..."></code>.',
 	'cite_error_references_no_backlink_label' => 'Нестале су посебне ознаке за задње везе. Одреди их више у поруци <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
 	'cite_error_references_no_text' => 'Лоша ознака <code><ref></code>; нема текста за ref-ове под именом <code>$1</code>.',
+	'cite_error_included_ref' => 'Затвара </ref> који недостаје <ref> тагу',
+	'cite_error_refs_without_references' => 'Чланак има ознаке <code><ref></code>, али није пронађена потребна ознака <code>{{наводи}}</code> (или <code><references/></code>)',
+	'cite_error_group_refs_without_references' => 'Постоје ознаке <code><ref></code> за групу с именом „$1“, али нема одговарајуће ознаке <code><references group="$1"/></code>',
+	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_reference_link_prefix' => 'cite_ref-',
+	'cite_references_link_prefix' => 'cite_note-',
+	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
+	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
+	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
+	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
+	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
+	'cite_references_link_many_sep' => ' ',
+	'cite_references_link_many_and' => ' ',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'cite-desc' => 'Dodaje <nowiki><ref[ name=id]></nowiki> i <nowiki><references/></nowiki> oznake za citiranje.',
+	'cite_croak' => 'Dodatak za citiranje je umro; $1: $2.',
+	'cite_error_key_str_invalid' => 'Unutrašnja greška; loš $str i/ili $key. Ovo ne bi trebalo nikad da se desi.',
+	'cite_error_stack_invalid_input' => 'Unutrašnja greška; loš ključ steka. Ovo ne bi trebalo nikad da se desi.',
+	'cite_error' => 'Greška citata: $1',
+	'cite_error_ref_numeric_key' => 'Loša oznaka <code>&lt;ref&gt;</code>; ime ne može biti jednostavni intedžer. Koristi opisni naslov.',
+	'cite_error_ref_no_key' => 'Loša oznaka <code>&lt;ref&gt;</code>; ref-ovi bez sadržaja moraju imati ime.',
+	'cite_error_ref_too_many_keys' => 'Loša oznaka <code>&lt;ref&gt;</code>; loša imena, odnosno mnogo njih.',
+	'cite_error_ref_no_input' => 'Loša oznaka <code>&lt;ref&gt;</code>; ref-ovi bez imena moraju imati sadržaj.',
+	'cite_error_references_invalid_parameters' => 'Loša oznaka <code>&lt;references&gt;</code>; parametri nisu dozvoljeni. Koristi <code>&lt;references /&gt;</code>.',
+	'cite_error_references_invalid_parameters_group' => 'Loša oznaka <code>&lt;references&gt;</code>; samo je paramtera "group" dozvoljen. Koristi <code>&lt;references /&gt;</code> ili <code>&lt;references group="..."&gt;</code>.',
+	'cite_error_references_no_backlink_label' => 'Nestale su posebne oznake za zadnje veze. Odredi ih više u poruci <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>.',
+	'cite_error_references_no_text' => 'Loša oznaka <code>&lt;ref&gt;</code>; nema teksta za ref-ove pod imenom <code>$1</code>.',
+	'cite_error_included_ref' => 'Zatvara &lt;/ref&gt; koji nedostaje &lt;ref&gt; tagu',
+	'cite_error_refs_without_references' => '<code>&lt;ref&gt;</code> tag postoji, ali odgovarajući <code>&lt;references/&gt;</code> tag nije nađen',
+	'cite_error_group_refs_without_references' => '<code><ref></code> tagovi postoje za grupu pod imenom "$1", ali nije nađen odgovarajući <code><references group="$1"/></code> tag',
+	'cite_reference_link_key_with_num' => '$1_$2',
+	'cite_reference_link_prefix' => 'cite_ref-',
+	'cite_references_link_prefix' => 'cite_note-',
+	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
+	'cite_references_link_one' => '<li id="$1">[[#$2|↑]] $3</li>',
+	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
+	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
+	'cite_references_link_many_format_backlink_labels' => 'a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex ey ez fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo fp fq fr fs ft fu fv fw fx fy fz ga gb gc gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz ja jb jc jd je jf jg jh ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li lj lk ll lm ln lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu nv nw nx ny nz oa ob oc od oe of og oh oi oj ok ol om on oo op oq or os ot ou ov ow ox oy oz pa pb pc pd pe pf pg ph pi pj pk pl pm pn po pp pq pr ps pt pu pv pw px py pz qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo qp qq qr qs qt qu qv qw qx qy qz ra rb rc rd re rf rg rh ri rj rk rl rm rn ro rp rq rr rs rt ru rv rw rx ry rz sa sb sc sd se sf sg sh si sj sk sl sm sn so sp sq sr ss st su sv sw sx sy sz ta tb tc td te tf tg th ti tj tk tl tm tn to tp tq tr ts tt tu tv tw tx ty tz ua ub uc ud ue uf ug uh ui uj uk ul um un uo up uq ur us ut uu uv uw ux uy uz va vb vc vd ve vf vg vh vi vj vk vl vm vn vo vp vq vr vs vt vu vv vw vx vy vz wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp wq wr ws wt wu wv ww wx wy wz xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo xp xq xr xs xt xu xv xw xx xy xz ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo yp yq yr ys yt yu yv yw yx yy yz za zb zc zd ze zf zg zh zi zj zk zl zm zn zo zp zq zr zs zt zu zv zw zx zy zz',
+	'cite_references_link_many_sep' => ' ',
+	'cite_references_link_many_and' => ' ',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'cite_desc' => 'Föiget foar Wällenätterwiese do <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> Tags tou',
+	'cite-desc' => 'Föiget foar Wällenätterwiese do <nowiki><ref[ name=id]></nowiki> un <nowiki><references/></nowiki> Tags tou',
 	'cite_croak' => 'Failer in dät Referenz-System. $1: $2',
-	'cite_error_key_str_invalid' => 'Internen Failer: uungultigen $str un/of $key. Dit schuul eegentelk goar nit passierje konne.',
-	'cite_error_stack_invalid_input' => 'Internen Failer: uungultigen „name“-stack. Dit schuul eegentelk goarnit passierje konne.',
+	'cite_error_key_str_invalid' => 'Internen Failer: uungultigen $str un/of $key. Dit skuul eegentelk goar nit passierje konne.',
+	'cite_error_stack_invalid_input' => 'Internen Failer: uungultigen „name“-stack. Dit skuul eegentelk goarnit passierje konne.',
 	'cite_error' => 'Referenz-Failer $1',
-	'cite_error_ref_numeric_key' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ duur naan scheenen Taalenwäid weese, benutsje n beschrieuwenden Noome.',
+	'cite_error_ref_numeric_key' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ duur naan skeenen Taalenwäid weese, benutsje n beskrieuwenden Noome.',
 	'cite_error_ref_no_key' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „ref“ sunner Inhoold mout n Noome hääbe.',
 	'cite_error_ref_too_many_keys' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „name“ is uungultich of tou loang.',
 	'cite_error_ref_no_input' => 'Uungultige <code><nowiki><ref></nowiki></code>-Ferweendenge: „ref“ sunner Noome mout n Inhoold hääbe.',
-	'cite_error_references_invalid_input' => 'Uungultige <code><nowiki><references></nowiki></code>-Ferweendenge: Der is naan bietoukuumenden Text ferlööwed, ferweend bloot <code><nowiki><references /></nowiki></code>.',
 	'cite_error_references_invalid_parameters' => 'Uungultige <code><nowiki><reference></nowiki></code>-Ferweendenge: Der sunt neen bietoukuumende Parametere ferlööwed, ferweend bloot <code><nowiki><reference /></nowiki></code>.',
-	'cite_error_references_invalid_parameters_group' => 'Ungultige <code><references></code>-Ferweendenge: Bloot die Parameter „group“ is ferlööwed, ferweend <tt><references /></tt> of <tt><references group="…" /></tt>',
-	'cite_error_references_no_backlink_label' => 'Ne Referenz fon ju Foarm <code><nowiki><ref name="…"/></nowiki></code> wäd oafter benutsed as Bouksteeuwen deer sunt. N Administrator mout <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> uum wiedere Bouksteeuwen/Teekene ferfulständigje.',
+	'cite_error_references_invalid_parameters_group' => 'Ungultige <code><references></code>-Ferweendenge: Bloot die Parameter „group“ is ferlööwed, ferweend <tt><references /></tt> of <tt><references group="..." /></tt>',
+	'cite_error_references_no_backlink_label' => 'Ne Referenz fon ju Foarm <code><nowiki><ref name="..."/></nowiki></code> wäd oafter benutsed as Bouksteeuwen deer sunt. N Administrator mout <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> uum wiedere Bouksteeuwen/Teekene ferfulständigje.',
 	'cite_error_references_no_text' => 'Uungultigen <code><ref></code>-Tag; der wuude naan Text foar dät Ref mäd dän Noome <code>$1</code> anroat.',
 	'cite_error_included_ref' => 'Der failt n sluutend </ref>',
 	'cite_error_refs_without_references' => '<code><ref></code>-Tags existierje, daach neen <code><references/></code>-Tag wuud fuunen.',
 	'cite_error_group_refs_without_references' => '<code><ref></code>-Tags existierje foar ju Gruppe „$1“, man neen deertou heerend <code><references group=„$1“/></code>-Tag wuud fuunen',
-	'cite_reference_link_key_with_num' => '$1_$2',
-	'cite_reference_link_prefix' => 'cite_ref-',
+	'cite_error_references_group_mismatch' => 'Dät <code><ref></code>-Tag in <code><references></code> häd dät Konfliktgruppenattribut „$1“.',
+	'cite_error_references_missing_group' => 'Dät <code><ref></code> Tag, as definierd in <code><references></code> häd dät Gruppenattribut "$1", dät nit in dän foaruutgungende Text foarkumt.',
+	'cite_error_references_missing_key' => 'Dät in <code><references></code> definierde <code><ref></code>-Tag mäd dän Noome „$1“ wäd in dän foaruutgungende Text nit ferwoand.',
+	'cite_error_references_no_key' => 'Dät in <code><references></code> definierde <code><ref></code>-Tag häd neen Noomensattribut.',
+	'cite_error_empty_references_define' => 'Dät in <code><references></code> definierde <code><ref></code>-Tag mäd dän Noome „$1“ wiest naan Inhoold ap.',
 );
 
 /** Sundanese (Basa Sunda)
  * @author Kandar
  */
 $messages['su'] = array(
-	'cite_desc' => 'Nambahkeun tag <nowiki><ref[ name=id]></nowiki> jeung <nowiki><references/></nowiki>, pikeun cutatan',
+	'cite-desc' => 'Nambahkeun tag <nowiki><ref[ name=id]></nowiki> jeung <nowiki><references/></nowiki>, pikeun cutatan',
 	'cite_error_key_str_invalid' => 'Kasalahan internal; salah $str jeung/atawa $key. Kuduna mah teu kieu.',
 );
 
 /** Swedish (Svenska)
  * @author Boivie
+ * @author Fluff
  * @author Lejonel
  * @author M.M.S.
  * @author Najami
  */
 $messages['sv'] = array(
-	'cite_desc' => 'Lägger till taggarna <nowiki><ref[ name=id]></nowiki> och <nowiki><references/></nowiki> för referenser till källor',
+	'cite-desc' => 'Lägger till taggarna <nowiki><ref[ name=id]></nowiki> och <nowiki><references/></nowiki> för referenser till källor',
 	'cite_croak' => 'Fel i fotnotssystemet; $1: $2',
 	'cite_error_key_str_invalid' => 'Internt fel; $str eller $key är ogiltiga.  Det här borde aldrig hända.',
 	'cite_error_stack_invalid_input' => 'Internt fel; ogiltig nyckel i stacken.  Det här borde aldrig hända.',
 	'cite_error' => 'Referensfel: $1',
 	'cite_error_ref_numeric_key' => "Ogiltig <code><ref></code>-tag; parametern 'name' kan inte vara ett tal, använd ett beskrivande namn",
 	'cite_error_ref_no_key' => 'Ogiltig <code><ref></code>-tag; referenser utan innehåll måste ha ett namn',
-	'cite_error_ref_too_many_keys' => "Ogiltig <code><ref></code>-tag; ogiltiga parametrar, den enda tillåtna parametern är 'name'",
+	'cite_error_ref_too_many_keys' => 'Ogiltig <code><ref></code>-tagg;
+ogiltiga namn, t.ex. för många',
 	'cite_error_ref_no_input' => 'Ogiltig <code><ref></code>-tag; referenser utan namn måste ha innehåll',
-	'cite_error_references_invalid_input' => 'Ogiltig <code><references></code>-tag; inget innehåll är tillåtet, använd <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Ogiltig <code><references></code>-tag; inga parametrar tillåts, använd <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Ogiltig <code><references></code>-tagg;
 "group"-parametern är endast tillåten.
 Använd <code><references /></code>, eller <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'De definierade etiketterna för tillbaka-länkar har tagit slut, definiera fler etiketter i systemmedelandet <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Anpassade länketiketter för gruppen "$1" tog slut.
+Definera fler i <nowiki>[[MediaWiki:$2]]</nowiki>-meddelandet.',
 	'cite_error_references_no_text' => 'Ogiltig <code><ref></code>-tag; ingen text har angivits för referensen med namnet <code>$1</code>',
 	'cite_error_included_ref' => 'Avslutande </ref> saknas för <ref>-tagg',
 	'cite_error_refs_without_references' => '<code><ref></code>-taggar finns, men ingen <code><references/></code>-tagg hittades',
 	'cite_error_group_refs_without_references' => '<code><ref></code>-taggar finns för gruppnamnet "$1", men ingen motsvarande <code><references group="$1"/></code>-tagg hittades',
+	'cite_error_references_group_mismatch' => '<code><ref></code>-tagg i <code><references></code> har ett motstridigt group-attribut "$1".',
+	'cite_error_references_missing_group' => '<code><ref></code>-tagg definierad i  <code><references></code> har ett group-attribut "$1" som inte används innan i texten.',
+	'cite_error_references_missing_key' => '<code><ref></code>-tagg med namnet "$1", definierad i <code><references></code> används inte innan i texten.',
+	'cite_error_references_no_key' => '<code><ref></code>-tagg definierad i <code><references></code> saknar name-attribut.',
+	'cite_error_empty_references_define' => '<code><ref></code>-tagg definierad i <code><ref></code> med namnet "$1" har inget innehåll.',
 );
 
+/** Tamil (தமிழ்)
+ * @author Shanmugamp7
+ */
+$messages['ta'] = array(
+	'cite-desc' => 'சேர்க்கிறது <nowiki><ref[ name=id]></nowiki>மற்றும் <nowiki><references/></nowiki> குறிச்சொற்கள், மேற்கோள்களுக்காக',
+	'cite_error_key_str_invalid' => 'உள் பிழை;
+ செல்லாத $ எழுத்துச்சரம் மற்றும்/அல்லது $  விசை.
+இது  ஒருபோதும் ஏற்பட கூடாது..',
+	'cite_error_stack_invalid_input' => 'உள் பிழை;
+செல்லாத அடுக்கு விசை.
+இது  ஒருபோதும் ஏற்பட கூடாது..',
+);
+
 /** Telugu (తెలుగు)
  * @author Chaduvari
  * @author Veeven
  */
 $messages['te'] = array(
-	'cite_desc' => 'ఉదహరింపులకు <nowiki><ref[ name=id]></nowiki> మరియు <nowiki><references/></nowiki> టాగులను చేర్చుతుంది',
+	'cite-desc' => 'ఉదహరింపులకు <nowiki><ref[ name=id]></nowiki> మరియు <nowiki><references/></nowiki> టాగులను చేర్చుతుంది',
 	'cite_croak' => 'ఉదహరింపు చచ్చింది; $1: $2',
 	'cite_error_key_str_invalid' => 'అంతర్గత పొరపాటు: తప్పుడు $str మరియు/లేదా $key. ఇది ఎప్పుడూ జరగకూడదు.',
 	'cite_error_stack_invalid_input' => 'అంతర్గత పొరపాటు: తప్పుడు స్టాక్ కీ. ఇది ఎప్పుడూ జరగకూడదు.',
@@ -2138,17 +3331,16 @@
 	'cite_error_ref_no_key' => 'సరైన <code><ref></code> ట్యాగు కాదు; విషయం లేని ref లకు తప్పనిసరిగా పేరొకటుండాలి',
 	'cite_error_ref_too_many_keys' => 'సరైన <code><ref></code> ట్యాగు కాదు; తప్పు పేర్లు, ఉదాహరణకు మరీ ఎక్కువ',
 	'cite_error_ref_no_input' => 'సరైన <code><ref></code> ట్యాగు కాదు; పేరు లేని ref లలో తప్పనిసరిగా విషయం ఉండాలి',
-	'cite_error_references_invalid_input' => 'సరైన <code><references></code> ట్యాగు కాదు; ఇన్‌పుట్ కు అనుమతి లేదు, <code><references /></code> వాడండి.',
 	'cite_error_references_invalid_parameters' => 'సరైన <code><references></code> ట్యాగు కాదు; పారామీటర్లకు కు అనుమతి లేదు, ఈ లోపాన్ని కలుగజేసే ఒక ఉదాహరణ: <references someparameter="value" />',
 	'cite_error_references_no_backlink_label' => 'మీ స్వంత బ్యాక్‌లింకు లేబుళ్ళు అయిపోయాయి. <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> సందేశంలో మరిన్ని లేబుళ్ళను నిర్వచించుకోండి.',
 	'cite_error_references_no_text' => 'సరైన <code><ref></code> కాదు; <code>$1</code> అనే పేరుగల ref లకు పాఠ్యమేమీ ఇవ్వలేదు',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
-	'cite_desc' => 'Барчасбҳои <nowiki><ref[ name=id]></nowiki> ва <nowiki><references/></nowiki>  барои ёд кардан, изофа мекунад',
+	'cite-desc' => 'Барчасбҳои <nowiki><ref[ name=id]></nowiki> ва <nowiki><references/></nowiki>  барои ёд кардан, изофа мекунад',
 	'cite_croak' => 'Ёд кардан хароб шуд; $1: $2',
 	'cite_error_key_str_invalid' => 'Хатои дохилӣ; $str ва/ё $key ғайримиҷоз.  Ин хато набояд ҳаргиз рух диҳад.',
 	'cite_error_stack_invalid_input' => 'Хатои дохилӣ; клиди пушта ғайримиҷоз.  Ин хато набояд ҳаргиз рух диҳад.',
@@ -2157,8 +3349,6 @@
 	'cite_error_ref_no_key' => 'Барчасби <code><ref></code> ғайримиҷоз; ёдкардҳо бидуни мӯҳтаво бояд ном дошта бошанд',
 	'cite_error_ref_too_many_keys' => 'Барчасби  <code><ref></code> ғайримиҷоз; номҳои ғайримиҷоз ё беш аз андоза',
 	'cite_error_ref_no_input' => 'Барчасби  <code><ref></code> ғайримиҷоз; ёдкардҳои бидуни ном бояд мӯҳтаво дошта бошанд',
-	'cite_error_references_invalid_input' => 'Барчасби <code><references></code> ғайримиҷоз; вуруди матн миҷоз нест, аз
-<code><references /></code> истифода кунед',
 	'cite_error_references_invalid_parameters' => 'Барчасби <code><references></code> ғайримиҷоз; истифода аз параметр миҷоз аст, аз  <code><references /></code> истифода кунед',
 	'cite_error_references_invalid_parameters_group' => 'Барчасби <code><references></code> номӯътабар;
 параметри "гурӯҳ" танҳо иҷозашуда аст.
@@ -2167,20 +3357,76 @@
 	'cite_error_references_no_text' => 'Барчасби  <code><ref></code> ғайримиҷоз; матне барои ёдкардҳо бо номи <code>$1</code> ворид нашудааст',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'cite-desc' => 'Barcasbhoi <nowiki><ref[ name=id]></nowiki> va <nowiki><references/></nowiki>  baroi jod kardan, izofa mekunad',
+	'cite_croak' => 'Jod kardan xarob şud; $1: $2',
+	'cite_error_key_str_invalid' => 'Xatoi doxilī; $str va/jo $key ƣajrimiçoz.  In xato nabojad hargiz rux dihad.',
+	'cite_error_stack_invalid_input' => 'Xatoi doxilī; klidi puşta ƣajrimiçoz.  In xato nabojad hargiz rux dihad.',
+	'cite_error' => 'Xatoi jodkard: $1',
+	'cite_error_ref_numeric_key' => 'Barcasbi <code><ref></code> ƣajrimiçoz; nom nametavonad jak adad boşad, unvoni vozehtarero istifoda kuned',
+	'cite_error_ref_no_key' => 'Barcasbi <code><ref></code> ƣajrimiçoz; jodkardho biduni mūhtavo bojad nom doşta boşand',
+	'cite_error_ref_too_many_keys' => 'Barcasbi  <code><ref></code> ƣajrimiçoz; nomhoi ƣajrimiçoz jo beş az andoza',
+	'cite_error_ref_no_input' => 'Barcasbi  <code><ref></code> ƣajrimiçoz; jodkardhoi biduni nom bojad mūhtavo doşta boşand',
+	'cite_error_references_invalid_parameters' => 'Barcasbi <code><references></code> ƣajrimiçoz; istifoda az parametr miçoz ast, az  <code><references /></code> istifoda kuned',
+	'cite_error_references_invalid_parameters_group' => 'Barcasbi <code><references></code> nomū\'tabar;
+parametri "gurūh" tanho içozaşuda ast.
+Barcasbi <code><references /></code> jo <code><references group="..." /></code> -ro istifoda bared',
+	'cite_error_references_no_backlink_label' => 'Barcasbhoi pajvand ba intiho rasid, mavoridi çadidro dar pajjom  <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> istifoda kuned',
+	'cite_error_references_no_text' => 'Barcasbi  <code><ref></code> ƣajrimiçoz; matne baroi jodkardho bo nomi <code>$1</code> vorid naşudaast',
+);
+
 /** Thai (ไทย)
  * @author Passawuth
  */
 $messages['th'] = array(
-	'cite_desc' => 'ใส่ <nowiki><ref[ name=id]></nowiki> และ <nowiki><references /></nowiki> สำหรับการอ้างอิง',
+	'cite-desc' => 'ใส่ <nowiki><ref[ name=id]></nowiki> และ <nowiki><references /></nowiki> สำหรับการอ้างอิง',
 	'cite_croak' => 'แหล่งอ้างอิงเสีย; $1: $2',
 	'cite_error' => 'อ้างอิงผิดพลาด: $1',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'cite_croak' => 'Sita ýitirildi; $1: $2',
+	'cite_error_key_str_invalid' => 'Içerki säwlik;
+nädogry $str we/ýa-da $key.
+Bu asla bolmaly däl.',
+	'cite_error_stack_invalid_input' => 'Içerki säwlik;
+nädogry stek açary.
+Bu asla bolmaly däl.',
+	'cite_error' => 'Sitirleme säwligi: $1',
+	'cite_error_ref_numeric_key' => 'Nädogry <code><ref></code> tegi;
+at ýönekeý bir bitin san bolup bilmeýär. Düşündirişli at ulanyň',
+	'cite_error_ref_no_key' => 'Nädogry <code><ref></code> tegi;
+mazmunsyz refleriň ady bolmaly',
+	'cite_error_ref_too_many_keys' => 'Nädogry <code><ref></code> tegi;
+nädogry atlar, mes. aşa köp',
+	'cite_error_ref_no_input' => 'Nädogry <code><ref></code> tegi;
+atsyz refleriň mazmuny bolmalydyr',
+	'cite_error_references_invalid_parameters' => 'Nädogry <code><ref></code> tegi;
+hiç hili parametre rugsat berilmeýär.
+<code><references /></code> ulanyň',
+	'cite_error_references_no_text' => 'Nädogry <code><ref></code> tegi;
+<code>$1</code> atly refler üçin tekst görkezilmändir',
+	'cite_error_included_ref' => '<ref> tegi üçin </ref> ýapylyşy kem',
+	'cite_error_refs_without_references' => '<code><ref></code> tegleri bar, emma <code><references/></code> tegi tapylmady',
+	'cite_error_group_refs_without_references' => '"$1" atly topar üçin <code><ref></code> tegleri bar, emma degişli code><references group="$1"/></code> tegi tapylmady',
+	'cite_error_references_group_mismatch' => '<code><references></code>-daky <code><ref></code> teginiň çaknyşýan "$1" topar aýratynlygy bar.',
+	'cite_error_references_missing_group' => '<code><references></code>-da kesgitlenen <code><ref></code> teginiň öňki tekstde ýok "$1" topar aýratynlygy bar.',
+	'cite_error_references_missing_key' => '<code><references></code>-da kesgitlenen "$1" atly <code><ref></code> tegi öňki tekstde ulanylmaýar.',
+	'cite_error_references_no_key' => '<code><references></code>-da kesgitlenen <code><ref></code> teginiň hiç hili at aýratynlygy ýok.',
+	'cite_error_empty_references_define' => '<code><references></code>-da kesgitlenen "$1" atly <code><ref></code> tegiň mazmuny ýok.',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
-	'cite_desc' => 'Nagdaragdag ng mga tatak na <nowiki><ref[ name=id]></nowiki> at <nowiki><references/></nowiki>, para sa mga pagtukoy',
+	'cite-desc' => 'Nagdaragdag ng mga tatak na <nowiki><ref[ name=id]></nowiki> at <nowiki><references/></nowiki>, para sa mga pagtukoy',
 	'cite_croak' => 'Nawalan ng buhay ang pagtukoy; $1: $2',
 	'cite_error_key_str_invalid' => 'Panloob na kamalian;
 hindi tanggap na $str at/o $key.
@@ -2197,8 +3443,6 @@
 hindi tanggap na mga pangalan, ang ibig sabihin ay napakarami',
 	'cite_error_ref_no_input' => "Hindi tanggap ang tatak na <code><ref></code>;
 kinakailangang may nilalaman ang mga sangguniang (''ref'') walang pangalan",
-	'cite_error_references_invalid_input' => 'Hindi tanggap ang tatak na <code><references></code>;
-walang pinapahintulutang pagpapasok/paglalagay. Gamitin ang <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Hindi tanggap na <code><references></code>;
 walang pinapahintulutang mga parametro.
 Gamitin ang <code><references /></code>',
@@ -2207,13 +3451,18 @@
 Gamitin ang <code><references /></code>, o <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Naubusan ng pasadyang mga tatak na pantukoy ng panlikod na kawing.
 Dagdagan pa ng pakahulugan sa loob ng mensaheng <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Naubusan ng mga tatak ng pasadyang kawing para sa pangkat na "$1".
+Magbigay ng marami pang kahulugan sa loob ng mensaheng <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => "Hindi tanggap ang tatak na <code><ref></code>;
 walang tekstong ibinigay para sa mga sangguniang (''ref'') pinangalanang <code>$1</code>",
 	'cite_error_included_ref' => 'Naawawala ang pansarang </ref> na para sa tatak na <ref>',
 	'cite_error_refs_without_references' => 'Umiiral na ang mga tatak na <code><ref></code>, subalit walang natagpuang tatak na <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Umiiral na ang tatak na <code><ref></code> para sa pangkat na pinangalanang "$1", subalit walang natagpuang katumbas na tatak na <code><references group="$1"/></code>',
-	'cite_reference_link_key_with_num' => '$1_$2',
-	'cite_reference_link_prefix' => 'cite_ref-',
+	'cite_error_references_group_mismatch' => 'May hindi nagbabanggaang katangiang pampangkat na "$1" ang <code><ref></code> tatak na nasa <code><references></code>.',
+	'cite_error_references_missing_group' => 'Ang tatak na <code><ref></code> na binigyang kahulugan sa <code><references></code> ay may katangiang pampangkat na "$1" na hindi lumilitawa sa naunang teksto.',
+	'cite_error_references_missing_key' => 'Ang tatak na <code><ref></code> na may pangalang "$1" na binigyang kahulugan sa <code><references></code> ay hindi ginamit sa naunang teksto.',
+	'cite_error_references_no_key' => 'Ang tatak na <code><ref></code> na binigyang kahulugan sa <code><references></code> ay walang katangiang pampangalan.',
+	'cite_error_empty_references_define' => 'Ang tatak na <code><ref></code> na binigyang kahulugan sa <code><references></code> na may pangalang "$1" ay walang nilalaman.',
 );
 
 /** Turkish (Türkçe)
@@ -2221,7 +3470,7 @@
  * @author Runningfridgesrule
  */
 $messages['tr'] = array(
-	'cite_desc' => 'Alıntılar için, <nowiki><ref[ name=id]></nowiki> ve <nowiki><references/></nowiki> etiketlerini ekler',
+	'cite-desc' => 'Alıntılar için, <nowiki><ref[ name=id]></nowiki> ve <nowiki><references/></nowiki> etiketlerini ekler',
 	'cite_croak' => 'Alıntı kaybedildi; $1: $2',
 	'cite_error_key_str_invalid' => 'Dahili hata;
 geçersiz $str ve/ya da $key.
@@ -2238,8 +3487,6 @@
 geçersiz isimler, ör. çok fazla',
 	'cite_error_ref_no_input' => 'Geçersiz <code><ref></code> etiketi;
 isimsiz reflerin içeriği olmalı',
-	'cite_error_references_invalid_input' => 'Geçersiz <code><references></code> etiketi;
-girdiye izin verilmiyor. <code><references /></code> kullanın',
 	'cite_error_references_invalid_parameters' => 'Geçersiz <code><references></code> etiketi;
 parametrelere izin verilmiyor.
 <code><references /></code> kullanın',
@@ -2248,19 +3495,37 @@
 <code><references /></code>, ya da <code><references group="..." /></code> kullanın',
 	'cite_error_references_no_backlink_label' => 'Özel geribağlantı etiketleri kalmadı.
 <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki> mesajında daha fazla tanımlayın',
+	'cite_error_no_link_label_group' => '"$1" grubu için özel bağlantı etiketleri bitti.
+<nowiki>[[MediaWiki:$2]]</nowiki> mesajında daha fazla tanımlayın.',
 	'cite_error_references_no_text' => 'Geçersiz <code><ref></code> etiketi;
 <code>$1</code> isimli refler için metin temin edilmemiş',
 	'cite_error_included_ref' => '<ref> etiketi için </ref> kapanışı eksik',
 	'cite_error_refs_without_references' => '<code><ref></code> etiketleri var, ama <code><references/></code> etiketi bulunamadı',
 	'cite_error_group_refs_without_references' => '"$1" isimli grup için <code><ref></code> etiketleri mevcut, ancak karşılık gelen <code><references group="$1"/></code> etiketi bulunamadı',
+	'cite_error_references_group_mismatch' => '<code><references></code>\'daki <code><ref></code> etiketinin çelişen "$1" grup özniteliği var.',
+	'cite_error_references_missing_group' => '<code><references></code>\'da tanımlanan <code><ref></code> etiketinin önceki metinde olmayan "$1" grup özniteliği var.',
+	'cite_error_references_missing_key' => '<code><references></code>\'da tanımlanan "$1" adındaki <code><ref></code> etiketi önceki metinde kullanılmıyor.',
+	'cite_error_references_no_key' => "<code><references></code>'da tanımlanan <code><ref></code> etiketinin hiçbir ad özniteliği yok.",
+	'cite_error_empty_references_define' => '<code><references></code>\'da tanımlanan "$1" adlı <code><ref></code> etiketinin içeriği yok.',
 );
 
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Timming
+ */
+$messages['tt-cyrl'] = array(
+	'cite_error' => 'Өземтә китерү хатасы: $1',
+);
+
 /** Ukrainian (Українська)
  * @author AS
  * @author Ahonc
+ * @author Dim Grits
+ * @author NickK
+ * @author Prima klasy4na
+ * @author Ytsukeng Fyvaprol
  */
 $messages['uk'] = array(
-	'cite_desc' => 'Додає теги <nowiki><ref[ name=id]></nowiki> і <nowiki><references/></nowiki> для виносок',
+	'cite-desc' => 'Додає теги <nowiki><ref[ name=id]></nowiki> і <nowiki><references/></nowiki> для виносок',
 	'cite_croak' => 'Цитата померла; $1: $2',
 	'cite_error_key_str_invalid' => 'Внутрішня помилка:
 неправильний $str і/або $key.',
@@ -2271,11 +3536,9 @@
 	'cite_error_ref_no_key' => 'Неправильний виклик <code><ref></code>:
 порожній тег <code>ref</code> повинен мати параметр name.',
 	'cite_error_ref_too_many_keys' => 'Неправильний виклик <code><ref></code>:
-вказані неправильні значення <code>name</code> або вказано багато прамаетрів',
+вказані неправильні значення <code>name</code> або вказано забагато параметрів',
 	'cite_error_ref_no_input' => 'Неправильний виклик <code><ref></code>:
 тег <code>ref</code> без назви повинен мати вхідні дані',
-	'cite_error_references_invalid_input' => 'Неправильний тег <code><references></code>:
-вхідні дані недопустимі. Використовуйте <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Неправильний тег <code><references></code>:
 параметри не передбачені. Використовуйте <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Помилковий тег <code><references></code>;
@@ -2283,21 +3546,35 @@
 Використовуйте <code><references /></code> або <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Недостатньо символів для зворотних гіперпосилань.
 Потрібно розширити системну змінну <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Закінчилися позначки користувальницьких посилань для групи "$1".
+Визначте додаткові в повідомленні <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Неправильний виклик <code><ref></code>:
 для виносок <code>$1</code> не вказаний текст',
 	'cite_error_included_ref' => 'Відсутній тег </ref> за наявності тега <ref>',
+	'cite_error_refs_without_references' => "<span style='color: red'>Для існуючого тегу <code><ref></code> не знайдено відповідного тегу <code><references/></code></span>",
+	'cite_error_group_refs_without_references' => 'Для існуючих тегів <code><ref></code> групи під назвою "$1" не знайдено відповідного тегу <code><references group="$1"/></code>',
+	'cite_error_references_group_mismatch' => 'Тег <code><ref></code> в <code><references></code> має конфліктуючий атрибут групи "$1".',
+	'cite_error_references_missing_group' => 'Тег <code><ref></code>, заданий в <code><references></code>, має атрибут групи "$1", який не фігурує в попередньому тексті.',
+	'cite_error_references_missing_key' => 'Тег <code><ref></code> з назвою "$1", визначений у <code><references></code>, не використовується в попередньому тексті.',
+	'cite_error_references_no_key' => 'Тег <code><ref></code>, визначений у <code><references></code>, не має атрибута назви.',
+	'cite_error_empty_references_define' => 'Тег <code><ref></code>, визначений у <code><references></code>, з назвою "$1" не має змісту.',
 	'cite_reference_link_key_with_num' => '$1_$2',
 	'cite_reference_link_prefix' => 'cite_ref-',
 	'cite_references_link_prefix' => 'cite_note-',
 	'cite_reference_link' => '<sup id="$1" class="reference">[[#$2|<nowiki>[</nowiki>$3<nowiki>]</nowiki>]]</sup>',
+	'cite_references_link_one' => "<li id=\"\$1\">'''[[#\$2|↑]]''' \$3</li>",
+	'cite_references_link_many' => '<li id="$1">↑ $2 $3</li>',
+	'cite_references_link_many_format' => '<sup>[[#$1|$2]]</sup>',
 	'cite_references_link_many_format_backlink_labels' => 'а б в г д е ж и к л м н п р с т у ф х ц ш щ ю я аа аб ав аг ад ае аж аи ак ал ам ан ап ар ас ат ау аф ах ац аш ащ аю ая ба бб бв бг бд бе бж би бк бл бм бн бп бр бс бт бу бф бх бц бш бщ бю бя ва вб вв вг вд ве вж ви вк вл вм вн вп вр вс вт ву вф вх вц вш вщ вю вя га гб гв гг гд ге гж ги гк гл гм гн гп гр гс гт гу гф гх гц гш гщ гю гя да дб дв дг дд де дж ди дк дл дм дн дп др дс дт ду дф дх дц дш дщ дю дя еа еб ев ег ед ее еж еи ек ел ем ен еп ер ес ет еу еф ех ец еш ещ ею ея жа жб жв жг жд же жж жи жк жл жм жн жп жр жс жт жу жф жх жц жш жщ жю жя иа иб ив иг ид ие иж ии ик ил им ин ип ир ис ит иу иф их иц иш ищ ию ия ка кб кв кг кд ке кж ки кк кл км кн кп кр кс кт ку кф кх кц кш кщ кю кя ла лб лв лг лд ле лж ли лк лл лм лн лп лр лс лт лу лф лх лц лш лщ лю ля ма мб мв мг мд ме мж ми мк мл мм мн мп мр мс мт му мф мх мц мш мщ мю мя на нб нв нг нд не нж ни нк нл нм нн нп нр нс нт ну нф нх нц нш нщ ню ня па пб пв пг пд пе пж пи пк пл пм пн пп пр пс пт пу пф пх пц пш пщ пю пя ра рб рв рг рд ре рж ри рк рл рм рн рп рр рс рт ру рф рх рц рш рщ рю ря са сб св сг сд се сж си ск сл см сн сп ср сс ст су сф сх сц сш сщ сю ся та тб тв тг тд те тж ти тк тл тм тн тп тр тс тт ту тф тх тц тш тщ тю тя уа уб ув уг уд уе уж уи ук ул ум ун уп ур ус ут уу уф ух уц уш ущ ую уя фа фб фв фг фд фе фж фи фк фл фм фн фп фр фс фт фу фф фх фц фш фщ фю фя ха хб хв хг хд хе хж хи хк хл хм хн хп хр хс хт ху хф хх хц хш хщ хю хя ца цб цв цг цд це цж ци цк цл цм цн цп цр цс цт цу цф цх цц цш цщ цю ця ша шб шв шг шд ше шж ши шк шл шм шн шп шр шс шт шу шф шх шц шш шщ шю шя ща щб щв щг щд ще щж щи щк щл щм щн щп щр щс щт щу щф щх щц щш щщ щю щя юа юб юв юг юд юе юж юи юк юл юм юн юп юр юс ют юу юф юх юц юш ющ юю юя яа яб яв яг яд яе яж яи як ял ям ян яп яр яс ят яу яф ях яц яш ящ яю яя',
+	'cite_references_link_many_sep' => ' ',
+	'cite_references_link_many_and' => ' ',
 );
 
 /** Vèneto (Vèneto)
  * @author Candalua
  */
 $messages['vec'] = array(
-	'cite_desc' => 'Zonta i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> par gestir le citazion',
+	'cite-desc' => 'Zonta i tag <nowiki><ref[ name=id]></nowiki> e <nowiki><references/></nowiki> par gestir le citazion',
 	'cite_croak' => 'Eror ne la citazion: $1: $2',
 	'cite_error_key_str_invalid' => 'Eror interno: $str e/o $key sbaglià. Sta roba qua no la dovarìa mai capitar.',
 	'cite_error_stack_invalid_input' => 'Eror interno;
@@ -2308,25 +3585,36 @@
 	'cite_error_ref_no_key' => "Eror ne l'uso del marcator <code><ref></code>: i ref vodi no i pol no verghe un nome",
 	'cite_error_ref_too_many_keys' => "Eror ne l'uso del marcator <code><ref></code>: nomi mìa validi (ad es. nùmaro massa elevà)",
 	'cite_error_ref_no_input' => "Eror ne l'uso del marcator <code><ref></code>: i ref che no gà un nome no i pol mìa èssar vodi",
-	'cite_error_references_invalid_input' => "Eror ne l'uso del marcator <code><references></code>: input mìa consentìo, dòpara el marcator
-<code><references /></code>",
 	'cite_error_references_invalid_parameters' => "Eror ne l'uso del marcator <code><references></code>: parametri mìa consentìi, dòpara el marcator <code><references /></code>",
 	'cite_error_references_invalid_parameters_group' => 'Tag <code><references></code> mìa valido;
 solo el parametro "group" el xe permesso.
 Dòpara <code><references /></code>, o <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Etichete de rimando personalizàe esaurìe, auménteghen el nùmaro nel messagio <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Etichete esaurìe par colegamenti personalizà del grupo "$1", aumentarne el numaro nel messajo <nowiki>[[MediaWiki:$2]]</nowiki>',
 	'cite_error_references_no_text' => 'Marcator <code><ref></code> mìa valido; no xe stà indicà nissun testo par el marcator <code>$1</code>',
 	'cite_error_included_ref' => '</ref> de chiusura mancante par el marcador <ref>',
 	'cite_error_refs_without_references' => 'Ghe xe un tag <code><ref></code>, ma no xe stà catà nissun tag <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Ghe xe un tag <code><ref></code> par un grupo che se ciama "$1", ma no xe stà catà nissun tag <code><references group="$1"/></code> che corisponda.',
+	'cite_error_references_group_mismatch' => 'El tag <code><ref></code> in <code><references></code> el gà l\'atributo de grupo "$1" in conflito.',
+	'cite_error_references_missing_group' => 'El tag <code><ref></code> definìo in <code><references></code> el gà un atributo de grupo "$1" che no conpare mia nel testo precedente.',
+	'cite_error_references_missing_key' => 'El tag <code><ref></code> con nome "$1" definìo in <code><references></code> no\'l xe doparà nel testo precedente.',
+	'cite_error_references_no_key' => "El tag <code><ref></code> definìo in <code><references></code> no'l gà un atributo nome.",
+	'cite_error_empty_references_define' => 'El tag <code><ref></code> definìo in <code><references></code> con nome "$1" no\'l gà nissun contenuto.',
 );
 
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'cite_error' => 'Citiruindan petuz: $1',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
-	'cite_desc' => 'Thêm các thẻ <nowiki><ref[ name=id]></nowiki> và <nowiki><references/></nowiki> để ghi chú thích hoặc nguồn tham khảo',
+	'cite-desc' => 'Thêm các thẻ <nowiki><ref[ name=id]></nowiki> và <nowiki><references/></nowiki> để ghi chú thích hoặc nguồn tham khảo',
 	'cite_croak' => 'Chú thích bị hỏng; $1: $2',
 	'cite_error_key_str_invalid' => 'Lỗi nội bộ; $str và/hoặc $key không hợp lệ. Điều này không bao giờ nên xảy ra.',
 	'cite_error_stack_invalid_input' => 'Lỗi nội bộ; khóa xác định chồng bị sai.  Đáng ra không bao giờ xảy ra điều này.',
@@ -2335,17 +3623,22 @@
 	'cite_error_ref_no_key' => 'Thẻ <code><ref></code> sai; thẻ ref không có nội dung thì phải có tên',
 	'cite_error_ref_too_many_keys' => 'Thẻ <code><ref></code> sai; thông số tên sai, như, nhiều thông số tên quá',
 	'cite_error_ref_no_input' => 'Mã <code><ref></code> sai; thẻ ref không có tên thì phải có nội dung',
-	'cite_error_references_invalid_input' => 'Thẻ <code><references></code> sai; không được phép nhập nội dung cho thẻ, hãy dùng <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'Thẻ <code><references></code> sai; không được có thông số, hãy dùng <code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => 'Thẻ <code><references></code> không hợp lệ;
-chỉ cho phép tham số "group".
+chỉ cho phép tham số “group”.
 Hãy dùng <code><references /></code>, hoặc <code><references group="..." /></code>',
 	'cite_error_references_no_backlink_label' => 'Đã dùng hết nhãn tham khảo chung.
 Hãy định nghĩa thêm ở thông báo <nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>',
+	'cite_error_no_link_label_group' => 'Thiếu nhãn liên kết tùy biến cho nhóm “$1”. Hãy định rõ thêm nhãn trong thông báo <nowiki>[[MediaWiki:$2]]</nowiki>.',
 	'cite_error_references_no_text' => 'Thẻ <code><ref></code> sai; không có nội dung trong thẻ ref có tên <code>$1</code>',
 	'cite_error_included_ref' => 'Không có </ref> để đóng thẻ <ref>',
 	'cite_error_refs_without_references' => 'Tồn tại thẻ <code><ref></code>, nhưng không tìm thấy thẻ <code><references/></code>',
 	'cite_error_group_refs_without_references' => 'Tồn tại thẻ <code><ref></code> với tên nhóm “$1”, nhưng không tìm thấy thẻ <code><references group="$1"/></code> tương ứng',
+	'cite_error_references_group_mismatch' => 'Thẻ <code><ref></code> trong <code><references></code> có thuộc tính nhóm mâu thuẫn “$1”.',
+	'cite_error_references_missing_group' => 'Thẻ <code><ref></code> được định nghĩa trong <code><references></code> có thuộc tính nhóm  “$1” không thấy xuất hiện trong văn bản phía trên.',
+	'cite_error_references_missing_key' => 'Thẻ <code><ref></code> có tên  “$1” được định nghĩa trong <code><references></code> không được đoạn văn bản trên sử dụng.',
+	'cite_error_references_no_key' => ' Thẻ <code><ref></code> được định nghĩa trong <code><references></code> không có thuộc tính name.',
+	'cite_error_empty_references_define' => 'Thẻ <code><ref></code> được định nghĩa trong <code><references></code> có tên “$1” không có nội dung.',
 );
 
 /** Volapük (Volapük)
@@ -2360,7 +3653,6 @@
 	'cite_error_ref_no_key' => 'Geb no lonöföl ela <code><ref></code>: els ref nen ninäd mutons labön nemi',
 	'cite_error_ref_too_many_keys' => 'El <code><ref></code> no lonöfon: labon nemis no lonöfikis, a. s. tumödikis',
 	'cite_error_ref_no_input' => 'El <code><ref></code> no lonöfon: els ref nen nem mutons labön ninädi',
-	'cite_error_references_invalid_input' => 'El <code><references></code> no lonöfon; gebolös eli <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'El <code><references></code> no lonöfon: paramets no padälons. Gebolös eli <code><references /></code>',
 	'cite_error_references_no_text' => 'El <code><ref></code> no lonöfon: vödem nonik pegivon eles refs labü nem: <code>$1</code>',
 );
@@ -2369,28 +3661,34 @@
  * @author פוילישער
  */
 $messages['yi'] = array(
-	'cite_desc' => 'לייגט צו <nowiki><ref[ name=id]></nowiki> און <nowiki><references/></nowiki> טאַגן, פֿאר ציטירונגען (אין הערות)',
+	'cite-desc' => 'לייגט צו <nowiki><ref[ name=id]></nowiki> און <nowiki><references/></nowiki> טאַגן, פֿאר ציטירונגען (אין הערות)',
 	'cite_croak' => 'טעות אין ציטירונג; $1: $2',
 	'cite_error' => 'ציטירן גרײַז: $1',
 	'cite_error_ref_numeric_key' => 'גרײַזיגער <code><ref></code> טאַג;
 נאמען טאר נישט זײַן קיין פשוטער נומער. ניצט א באשרײַבדיק קעפל',
-	'cite_error_ref_no_key' => 'אומגילדיגער <code><ref></code> טאַג;
+	'cite_error_ref_no_key' => 'אומגילטיגער <code><ref></code> טאַג;
 א רעפֿערענץ אָן תוכן מוז האבן א נאמען',
 	'cite_error_ref_too_many_keys' => 'אומגילטיגער <code><ref></code> טאַג;
 אומגילטיגע נעמען, צ.ב. צו פֿיל',
 	'cite_error_ref_no_input' => 'אומגילטיגער <code><ref></code> טאַג;
 א רעפֿערענץ אָן א נאמען דארף האבן תוכן',
-	'cite_error_references_invalid_input' => 'אומגילטיגער <code><references></code> טאַג;
-נעמט נישט קיין תוכן. ניצט <code><references /></code>',
 	'cite_error_references_invalid_parameters' => 'אומגילטיגער <code><references></code> טאַג;
 קיין פאראמעטערס נישט ערלויבט. ניצט <code><references /></code>',
+	'cite_error_references_no_text' => 'אומגילטיגער <code><ref></code> טאַג;
+קיין טעקסט נישט געשריבן פֿאַר רעפֿערענצן מיטן נאָמען <code>$1</code>',
+	'cite_error_included_ref' => 'פֿעלט א שליסנדיגער </ref> פֿאַר <ref> טאַג',
 	'cite_error_refs_without_references' => "ס'זענען דא <code><ref></code> טאַגן, אבער מ'האט נישט געטראפֿן קיין <code><references/></code> טאַג.",
 	'cite_error_group_refs_without_references' => 'ס\'זענען דא <code><ref></code> טאַגן פֿאַר א גרופע וואס הייסט "$1", אבער מ\'האט נישט געטראפֿן קיין אַנטקעגענעם  <code><references group="$1"/></code> טאַג.',
+	'cite_error_references_group_mismatch' => 'דער <code><ref></code> טאג אין <code><references></code> האט א גרופע אייגנקייט וואס איז סותר "$1".',
+	'cite_error_references_missing_group' => 'דער <code><ref></code> טאג דעפינעירט אין <code><references></code> האט גרופע אייגנקייט "$1" וואס באווייזט זיך נישט אין פריערדיקן טעקסט.',
+	'cite_error_references_missing_key' => '<code><ref></code> טאַג מיטן נאָמען "$1" דעפֿינירט אין<code><references></code> נישט געניצט אין פֿריערדיקן טעקסט.',
+	'cite_error_references_no_key' => '<code><ref></code> טאַג דעפֿינירט אין <code><references></code> האט נישט קיין name אַטריבוט.',
+	'cite_error_empty_references_define' => '<code><ref></code> טאַג דעפֿינירט אין <code><references></code> מיט נאָמען "$1" האט נישט קיין אינהאַלט.',
 );
 
-/** Yue (粵語) */
+/** Cantonese (粵語) */
 $messages['yue'] = array(
-	'cite_desc' => '加 <nowiki><ref[ name=id]></nowiki> 同 <nowiki><references/></nowiki> 標籤用響引用度',
+	'cite-desc' => '加 <nowiki><ref[ name=id]></nowiki> 同 <nowiki><references/></nowiki> 標籤用響引用度',
 	'cite_croak' => '引用阻塞咗; $1: $2',
 	'cite_error_key_str_invalid' => '內部錯誤; 無效嘅 $str',
 	'cite_error_stack_invalid_input' => '內部錯誤; 無效嘅堆疊匙',
@@ -2399,7 +3697,6 @@
 	'cite_error_ref_no_key' => '無效嘅呼叫; 未指定匙',
 	'cite_error_ref_too_many_keys' => '無效嘅呼叫; 無效嘅匙, 例如: 太多或者指定咗一個錯咗嘅匙',
 	'cite_error_ref_no_input' => '無效嘅呼叫; 未指定輸入',
-	'cite_error_references_invalid_input' => '無效嘅輸入; 唔需要有嘢',
 	'cite_error_references_invalid_parameters' => '無效嘅參數; 唔需要有嘢',
 	'cite_error_references_invalid_parameters_group' => '無效嘅<code><references></code>標籤;
 只容許 "group" 參數。
@@ -2411,10 +3708,12 @@
 
 /** Simplified Chinese (‪中文(简体)‬)
  * @author Gaoxuewei
+ * @author Liangent
+ * @author PhiLiP
  * @author Philip
  */
 $messages['zh-hans'] = array(
-	'cite_desc' => '增加用于引用的<nowiki><ref[ name=id]></nowiki>和<nowiki><references/></nowiki>标签',
+	'cite-desc' => '增加用于引用的<nowiki><ref[ name=id]></nowiki>和<nowiki><references/></nowiki>标签',
 	'cite_croak' => '引用失效;$1:$2',
 	'cite_error_key_str_invalid' => '内部错误;不应出现的非法$str和/或$key。',
 	'cite_error_stack_invalid_input' => '内部错误;不应出现的非法堆栈键值。',
@@ -2423,36 +3722,48 @@
 	'cite_error_ref_no_key' => '无效<code><ref></code>标签;未填内容的引用必须填写name属性',
 	'cite_error_ref_too_many_keys' => '无效<code><ref></code>标签;name属性非法,可能是内容过长',
 	'cite_error_ref_no_input' => '无效<code><ref></code>标签;未填name属性的引用必须填写内容',
-	'cite_error_references_invalid_input' => '无效<code><references></code>标签;不允许填写内容,请使用<code><references /></code>',
 	'cite_error_references_invalid_parameters' => '无效<code><references></code>标签;不允许填写参数,请使用<code><references /></code>',
 	'cite_error_references_invalid_parameters_group' => '无效<code><references></code>标签;只允许填写“group”参数,请使用<code><references /></code>或<code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => '自定义回链标签耗尽。请在<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>中定义更多的标签',
+	'cite_error_references_no_backlink_label' => '自定义回链标签耗尽,请在<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>中定义更多的标签。',
+	'cite_error_no_link_label_group' => '组“$1”的自定义链接标签耗尽,请在<nowiki>[[MediaWiki:$2]]</nowiki>中定义更多的标签。',
 	'cite_error_references_no_text' => '无效<code><ref></code>标签;未为name属性为<code>$1</code>的引用提供文字',
 	'cite_error_included_ref' => '没有找到与</ref>对应的<ref>标签',
 	'cite_error_refs_without_references' => '<code><ref></code>标签存在,但没有找到<code><references/></code>标签',
 	'cite_error_group_refs_without_references' => '组名为“$1”的<code><ref></code>标签存在,但没有找到相应的<code><references group="$1"/></code>标签',
+	'cite_error_references_group_mismatch' => '<code><references></code>的<code><ref></code>标记带有冲突的组(group)属性“$1”。',
+	'cite_error_references_missing_group' => '<code><references></code>中定义的<code><ref></code>标记带有未在前文中出现的组(group)属性“$1”。',
+	'cite_error_references_missing_key' => '在<code><references></code>中以“$1”名字定义的<code><ref></code>标签没有在先前的文字中使用。',
+	'cite_error_references_no_key' => '<code><references></code>中定义的<code><ref></code>没有给出名称(name)属性。',
+	'cite_error_empty_references_define' => '<code><references></code>中定义的<code><ref></code>的名称(name)“$1”为空。',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Liangent
+ * @author Mark85296341
  * @author Philip
  */
 $messages['zh-hant'] = array(
-	'cite_desc' => '增加用於引用的<nowiki><ref[ name=id]></nowiki>和<nowiki><references/></nowiki>標簽',
+	'cite-desc' => '增加用於引用的<nowiki><ref[ name=id]></nowiki>和<nowiki><references/></nowiki>標籤',
 	'cite_croak' => '引用失效;$1:$2',
 	'cite_error_key_str_invalid' => '內部錯誤;不應出現的非法$str和/或$key。',
 	'cite_error_stack_invalid_input' => '內部錯誤;不應出現的非法堆疊鍵值。',
 	'cite_error' => '引用錯誤:$1',
-	'cite_error_ref_numeric_key' => '無效<code><ref></code>標簽;name屬性不能是單一的數字,請使用可辨識的標題',
-	'cite_error_ref_no_key' => '無效<code><ref></code>標簽;未填內容的引用必須填寫name屬性',
-	'cite_error_ref_too_many_keys' => '無效<code><ref></code>標簽;name屬性非法,可能是內容過長',
-	'cite_error_ref_no_input' => '無效<code><ref></code>標簽;未填name屬性的引用必須填寫內容',
-	'cite_error_references_invalid_input' => '無效<code><references></code>標簽;不允许填寫內容,請使用<code><references /></code>',
-	'cite_error_references_invalid_parameters' => '無效<code><references></code>標簽;不允许填寫參量,請使用<code><references /></code>',
-	'cite_error_references_invalid_parameters_group' => '無效<code><references></code>標簽;只允许填寫「group」參量,請使用<code><references /></code>或<code><references group="..." /></code>',
-	'cite_error_references_no_backlink_label' => '自定義回連標簽耗盡。請在<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>中定義更多的標簽',
-	'cite_error_references_no_text' => '無效<code><ref></code>標簽;未為name屬性為<code>$1</code>的引用提供文字',
-	'cite_error_included_ref' => '沒有找到與</ref>對應的<ref>標簽',
-	'cite_error_refs_without_references' => '<code><ref></code>標簽存在,但沒有找到<code><references/></code>標簽',
-	'cite_error_group_refs_without_references' => '組名為「$1」的<code><ref></code>標簽存在,但沒有找到相應的<code><references group="$1"/></code>標簽',
+	'cite_error_ref_numeric_key' => '無效<code><ref></code>標籤;name屬性不能是單一的數字,請使用可辨識的標題',
+	'cite_error_ref_no_key' => '無效<code><ref></code>標籤;未填內容的引用必須填寫name屬性',
+	'cite_error_ref_too_many_keys' => '無效<code><ref></code>標籤;name屬性非法,可能是內容過長',
+	'cite_error_ref_no_input' => '無效<code><ref></code>標籤;未填name屬性的引用必須填寫內容',
+	'cite_error_references_invalid_parameters' => '無效<code><references></code>標籤;不允許填寫參數,請使用<code><references /></code>',
+	'cite_error_references_invalid_parameters_group' => '無效<code><references></code>標籤;只允許填寫「group」參數,請使用<code><references /></code>或<code><references group="..." /></code>',
+	'cite_error_references_no_backlink_label' => '自訂回連標籤耗盡。請在<nowiki>[[MediaWiki:Cite references link many format backlink labels]]</nowiki>中定義更多的標籤',
+	'cite_error_no_link_label_group' => '群組「$1」的自訂標籤標籤耗盡,請在<nowiki>[[MediaWiki:$2]]</nowiki>中定義更多的標籤。',
+	'cite_error_references_no_text' => '無效<code><ref></code>標籤;未為name屬性為<code>$1</code>的引用提供文字',
+	'cite_error_included_ref' => '沒有找到與</ref>對應的<ref>標籤',
+	'cite_error_refs_without_references' => '<code><ref></code>標籤存在,但沒有找到<code><references/></code>標籤',
+	'cite_error_group_refs_without_references' => '組名為「$1」的<code><ref></code>標籤存在,但沒有找到相應的<code><references group="$1"/></code>標籤',
+	'cite_error_references_group_mismatch' => '<code><references></code>的<code><ref></code>標記帶有衝突的群組(group)屬性「$1」。',
+	'cite_error_references_missing_group' => '<code><references></code>中定義的<code><ref></code>標記帶有未在前文中出現的群組(group)屬性「$1」。',
+	'cite_error_references_missing_key' => '在<code><references></code>中以“$1”名字定義的<code><ref></code>標籤沒有在先前的文字中使用。',
+	'cite_error_references_no_key' => '<code><references></code>中定義的<code><ref></code>沒有給出名稱(name)屬性。',
+	'cite_error_empty_references_define' => '<code><references></code>中定義的<code><ref></code>的名稱(name)「$1」為空。',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -5,11 +5,10 @@
  * A parser extension that adds two tags, <ref> and <references> for adding
  * citations to pages
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  *
- * @link http://meta.wikimedia.org/wiki/Cite/Cite.php Documentation
- * @link http://www.w3.org/TR/html4/struct/text.html#edef-CITE <cite> definition in HTML
- * @link http://www.w3.org/TR/2005/WD-xhtml2-20050527/mod-text.html#edef_text_cite <cite> definition in XHTML 2.0
+ * @link http://www.mediawiki.org/wiki/Extension:Cite/Cite.php Documentation
  *
  * @bug 4579
  *
@@ -18,42 +17,87 @@
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
  */
 
-if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-	$wgHooks['ParserFirstCallInit'][] = 'wfCite';
-} else {
-	$wgExtensionFunctions[] = 'wfCite';
-}
+$wgHooks['ParserFirstCallInit'][] = 'wfCite';
+$wgHooks['BeforePageDisplay'][] = 'wfCiteBeforePageDisplay';
 
+
 $wgExtensionCredits['parserhook'][] = array(
+	'path' => __FILE__,
 	'name' => 'Cite',
-	'svn-date' => '$LastChangedDate: 2009-02-12 19:02:27 +0100 (Thu, 12 Feb 2009) $',
-	'svn-revision' => '$LastChangedRevision: 47190 $',
 	'author' => 'Ævar Arnfjörð Bjarmason',
-	'description' => 'Adds <nowiki><ref[ name=id]></nowiki> and <nowiki><references/></nowiki> tags, for citations', // kept for b/c
-	'descriptionmsg' => 'cite_desc',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:Cite/Cite.php'
+	'descriptionmsg' => 'cite-desc',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:Cite/Cite.php'
 );
 $wgParserTestFiles[] = dirname( __FILE__ ) . "/citeParserTests.txt";
+$wgParserTestFiles[] = dirname( __FILE__ ) . "/citeCatTreeParserTests.txt";
 $wgExtensionMessagesFiles['Cite'] = dirname( __FILE__ ) . "/Cite.i18n.php";
 $wgAutoloadClasses['Cite'] = dirname( __FILE__ ) . "/Cite_body.php";
 $wgSpecialPageGroups['Cite'] = 'pagetools';
 
-define( 'CITE_DEFAULT_GROUP', '');
+define( 'CITE_DEFAULT_GROUP', '' );
 /**
  * The emergency shut-off switch.  Override in local settings to disable
  * groups; or remove all references from this file to enable unconditionally
  */
-$wgAllowCiteGroups = true; 
+$wgAllowCiteGroups = true;
 
 /**
  * An emergency optimisation measure for caching cite <references /> output.
  */
 $wgCiteCacheReferences = false;
 
-function wfCite() {
-	new Cite;
+/**
+ * Enables experimental popups
+ */
+$wgCiteEnablePopups = false;
+
+/**
+ * Performs the hook registration.
+ * Note that several extensions (and even core!) try to detect if Cite is
+ * installed by looking for wfCite().
+ *
+ * @param $parser Parser
+ *
+ * @return bool
+ */
+function wfCite( $parser ) {
+	return Cite::setHooks( $parser );
+}
+
+// Resources
+$citeResourceTemplate = array(
+	'localBasePath' => dirname(__FILE__) . '/modules',
+	'remoteExtPath' => 'Cite/modules'
+);
+
+$wgResourceModules['ext.cite'] = $citeResourceTemplate + array(
+	'styles' => array(),
+	'scripts' => 'ext.cite/ext.cite.js',
+	'position' => 'bottom',
+	'dependencies' => array(
+		'jquery.tooltip',
+	),
+);
+
+$wgResourceModules['jquery.tooltip'] = $citeResourceTemplate + array(
+	'styles' => 'jquery.tooltip/jquery.tooltip.css',
+	'scripts' => 'jquery.tooltip/jquery.tooltip.js',
+	'position' => 'bottom',
+);
+
+/**
+ * @param $out OutputPage
+ * @param $sk Skin
+ * @return bool
+ */
+function wfCiteBeforePageDisplay( $out, &$sk ) {
+	global $wgCiteEnablePopups;
+
+	if ( $wgCiteEnablePopups ) {
+		$out->addModules( 'ext.cite' );
+	}
+
 	return true;
 }
 
 /**#@-*/
-

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite_body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite_body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/Cite_body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -4,9 +4,9 @@
  * A parser extension that adds two tags, <ref> and <references> for adding
  * citations to pages
  *
- * @addtogroup Extensions
+ * @ingroup Extensions
  *
- * @link http://meta.wikimedia.org/wiki/Cite/Cite.php Documentation
+ * @link http://www.mediawiki.org/wiki/Extension:Cite/Cite.php Documentation
  * @link http://www.w3.org/TR/html4/struct/text.html#edef-CITE <cite> definition in HTML
  * @link http://www.w3.org/TR/2005/WD-xhtml2-20050527/mod-text.html#edef_text_cite <cite> definition in XHTML 2.0
  *
@@ -21,7 +21,7 @@
 	/**#@+
 	 * @access private
 	 */
-	
+
 	/**
 	 * Datastructure representing <ref> input, in the format of:
 	 * <code>
@@ -45,7 +45,7 @@
 	 * </code>
 	 *
 	 * This works because:
-	 * * PHP's datastructures are guarenteed to be returned in the
+	 * * PHP's datastructures are guaranteed to be returned in the
 	 *   order that things are inserted into them (unless you mess
 	 *   with that)
 	 * * User supplied keys can't be integers, therefore avoiding
@@ -54,7 +54,7 @@
 	 * @var array
 	 **/
 	var $mRefs = array();
-	
+
 	/**
 	 * Count for user displayed output (ref[1], ref[2], ...)
 	 *
@@ -73,6 +73,12 @@
 	var $mInCnt = 0;
 
 	/**
+	 * Counter to track the total number of (useful) calls to either the
+	 * ref or references tag hook
+	 */
+	var $mCallCnt = 0;
+
+	/**
 	 * The backlinks, in order, to pass as $3 to
 	 * 'cite_references_link_many_format', defined in
 	 * 'cite_references_link_many_format_backlink_labels
@@ -80,43 +86,80 @@
 	 * @var array
 	 */
 	var $mBacklinkLabels;
-	
+
 	/**
-	 * @var object
+	 * The links to use per group, in order.
+	 *
+	 * @var array
 	 */
+	var $mLinkLabels = array();
+
+	/**
+	 * @var Parser
+	 */
 	var $mParser;
-	
+
 	/**
-	 * True when a <ref> or <references> tag is being processed.
+	 * True when a <ref> tag is being processed.
 	 * Used to avoid infinite recursion
-	 * 
+	 *
 	 * @var boolean
 	 */
 	var $mInCite = false;
-	
-	/**#@-*/
 
 	/**
-	 * Constructor
+	 * True when a <references> tag is being processed.
+	 * Used to detect the use of <references> to define refs
+	 *
+	 * @var boolean
 	 */
-	function Cite() {
-		$this->setHooks();
-	}
+	var $mInReferences = false;
 
+	/**
+	 * Error stack used when defining refs in <references>
+	 *
+	 * @var array
+	 */
+	var $mReferencesErrors = array();
+
+	/**
+	 * Group used when in <references> block
+	 *
+	 * @var string
+	 */
+	var $mReferencesGroup = '';
+
+	/**
+	 * <ref> call stack
+	 * Used to cleanup out of sequence ref calls created by #tag
+	 * See description of function rollbackRef.
+	 *
+	 * @var array
+	 */
+	var $mRefCallStack = array();
+
+	/**
+	 * Did we install us into $wgHooks yet?
+	 * @var Boolean
+	 */
+	static protected $hooksInstalled = false;
+
 	/**#@+ @access private */
 
 	/**
 	 * Callback function for <ref>
 	 *
-	 * @param string $str Input
-	 * @param array $argv Arguments
+	 * @param $str string Input
+	 * @param $argv array Arguments
+	 * @param $parser Parser
+	 *
 	 * @return string
 	 */
 	function ref( $str, $argv, $parser ) {
-		wfLoadExtensionMessages( 'Cite' );
 		if ( $this->mInCite ) {
 			return htmlspecialchars( "<ref>$str</ref>" );
 		} else {
+			$this->mCallCnt++;
 			$this->mInCite = true;
 			$ret = $this->guardedRef( $str, $argv, $parser );
 			$this->mInCite = false;
@@ -124,41 +167,99 @@
 		}
 	}
 
-	function guardedRef( $str, $argv, $parser, $default_group=CITE_DEFAULT_GROUP ) {
+	/**
+	 * @param $str string Input
+	 * @param $argv array Arguments
+	 * @param $parser Parser
+	 * @param $default_group string
+	 * @return string
+	 */
+	function guardedRef( $str, $argv, $parser, $default_group = CITE_DEFAULT_GROUP ) {
 		$this->mParser = $parser;
-		
+
 		# The key here is the "name" attribute.
-		list($key,$group) = $this->refArg( $argv );
-		
-		if( $str === '' ) {
+		list( $key, $group, $follow ) = $this->refArg( $argv );
+
+		# Split these into groups.
+		if ( $group === null ) {
+			if ( $this->mInReferences ) {
+				$group = $this->mReferencesGroup;
+			} else {
+				$group = $default_group;
+			}
+		}
+
+		# This section deals with constructions of the form
+		#
+		# <references>
+		# <ref name="foo"> BAR </ref>
+		# </references>
+		#
+		if ( $this->mInReferences ) {
+			if ( $group != $this->mReferencesGroup ) {
+				# <ref> and <references> have conflicting group attributes.
+				$this->mReferencesErrors[] =
+					$this->error( 'cite_error_references_group_mismatch', htmlspecialchars( $group ) );
+			} elseif ( $str !== '' ) {
+				if ( !isset( $this->mRefs[$group] ) ) {
+					# Called with group attribute not defined in text.
+					$this->mReferencesErrors[] =
+						$this->error( 'cite_error_references_missing_group', htmlspecialchars( $group ) );
+				} elseif ( $key === null || $key === '' ) {
+					# <ref> calls inside <references> must be named
+					$this->mReferencesErrors[] =
+						$this->error( 'cite_error_references_no_key' );
+				} elseif ( !isset( $this->mRefs[$group][$key] ) ) {
+					# Called with name attribute not defined in text.
+					$this->mReferencesErrors[] =
+						$this->error( 'cite_error_references_missing_key', $key );
+				} else {
+					# Assign the text to corresponding ref
+					$this->mRefs[$group][$key]['text'] = $str;
+				}
+			} else {
+				# <ref> called in <references> has no content.
+				$this->mReferencesErrors[] =
+					$this->error( 'cite_error_empty_references_define', $key );
+			}
+			return '';
+		}
+
+		if ( $str === '' ) {
 			# <ref ...></ref>.  This construct is  invalid if
 			# it's a contentful ref, but OK if it's a named duplicate and should
 			# be equivalent <ref ... />, for compatability with #tag.
-			if ( $key == false )
+			if ( $key == false ) {
+				$this->mRefCallStack[] = false;
 				return $this->error( 'cite_error_ref_no_input' );
-			else
+			} else {
 				$str = null;
+			}
 		}
-				
-		if( $key === false ) {
+
+		if ( $key === false ) {
 			# TODO: Comment this case; what does this condition mean?
+			$this->mRefCallStack[] = false;
 			return $this->error( 'cite_error_ref_too_many_keys' );
 		}
 
-		if( $str === null and $key === null ) {
+		if ( $str === null && $key === null ) {
 			# Something like <ref />; this makes no sense.
+			$this->mRefCallStack[] = false;
 			return $this->error( 'cite_error_ref_no_key' );
 		}
-		
-		if( preg_match( '/^[0-9]+$/', $key ) ) {
+
+		if ( preg_match( '/^[0-9]+$/', $key ) || preg_match( '/^[0-9]+$/', $follow ) ) {
 			# Numeric names mess up the resulting id's, potentially produ-
 			# cing duplicate id's in the XHTML.  The Right Thing To Do
 			# would be to mangle them, but it's not really high-priority
 			# (and would produce weird id's anyway).
+
+			$this->mRefCallStack[] = false;
 			return $this->error( 'cite_error_ref_numeric_key' );
 		}
 
-		if( preg_match(
+		if ( preg_match(
 			'/<ref\b[^<]*?>/',
 			preg_replace( '#<([^ ]+?).*?>.*?</\\1 *>|<!--.*?-->#', '', $str )
 		) ) {
@@ -172,21 +273,19 @@
 			# Possible improvement: print the warning, followed by the contents
 			# of the <ref> tag.  This way no part of the article will be eaten
 			# even temporarily.
+
+			$this->mRefCallStack[] = false;
 			return $this->error( 'cite_error_included_ref' );
 		}
 
-		# Split these into groups.
-		if( $group === null ) {
-			$group = $default_group;
-		}
-		
-		if( is_string( $key ) or is_string( $str ) ) {
+		if ( is_string( $key ) || is_string( $str ) ) {
 			# We don't care about the content: if the key exists, the ref
 			# is presumptively valid.  Either it stores a new ref, or re-
 			# fers to an existing one.  If it refers to a nonexistent ref,
 			# we'll figure that out later.  Likewise it's definitely valid
 			# if there's any content, regardless of key.
-			return $this->stack( $str, $key, $group );
+
+			return $this->stack( $str, $key, $group, $follow, $argv );
 		}
 
 		# Not clear how we could get here, but something is probably
@@ -197,9 +296,12 @@
 	/**
 	 * Parse the arguments to the <ref> tag
 	 *
-	 * @static
+	 *  "name" : Key of the reference.
+	 *  "group" : Group to which it belongs. Needs to be passed to <references /> too.
+	 *  "follow" : If the current reference is the continuation of another, key of that reference.
 	 *
-	 * @param array $argv The argument vector
+	 *
+	 * @param $argv array The argument vector
 	 * @return mixed false on invalid input, a string on valid
 	 *               input and null on no input
 	 */
@@ -208,155 +310,330 @@
 		$cnt = count( $argv );
 		$group = null;
 		$key = null;
+		$follow = null;
 
-		if ( $cnt > 2 )
-			// There should only be one key and one group
+		if ( $cnt > 2 ) {
+			// There should only be one key or follow parameter, and one group parameter
+			// FIXME : this looks inconsistent, it should probably return a tuple
 			return false;
-		else if ( $cnt >= 1 ) {
+		} elseif ( $cnt >= 1 ) {
+			if ( isset( $argv['name'] ) && isset( $argv['follow'] ) ) {
+				return array( false, false, false );
+			}
 			if ( isset( $argv['name'] ) ) {
 				// Key given.
 				$key = Sanitizer::escapeId( $argv['name'], 'noninitial' );
-				unset( $argv['name']);
+				unset( $argv['name'] );
 				--$cnt;
 			}
-			if ( isset( $argv['group'] ) ){
-				if (! $wgAllowCiteGroups ) return array(false); //remove when groups are fully tested.
+			if ( isset( $argv['follow'] ) ) {
+				// Follow given.
+				$follow = Sanitizer::escapeId( $argv['follow'], 'noninitial' );
+				unset( $argv['follow'] );
+				--$cnt;
+			}
+			if ( isset( $argv['group'] ) ) {
+				if ( !$wgAllowCiteGroups ) {
+					// remove when groups are fully tested.
+					return array( false );
+				}
 				// Group given.
 				$group = $argv['group'];
-				unset( $argv['group']);
+				unset( $argv['group'] );
 				--$cnt;
 			}
 
-			if ( $cnt == 0)
-				return array ($key,$group);
-			else
+			if ( $cnt == 0 ) {
+				return array ( $key, $group, $follow );
+			} else {
 				// Invalid key
-				return array(false,false);
+				return array( false, false, false );
+			}
+		} else {
+			// No key
+			return array( null, $group, false );
 		}
-		else
-			// No key
-			return array(null,$group);
 	}
 
 	/**
 	 * Populate $this->mRefs based on input and arguments to <ref>
 	 *
-	 * @param string $str Input from the <ref> tag
-	 * @param mixed $key Argument to the <ref> tag as returned by $this->refArg()
-	 * @return string 
+	 * @param $str string Input from the <ref> tag
+	 * @param $key mixed Argument to the <ref> tag as returned by $this->refArg()
+	 * @param $group
+	 * @param $follow
+	 * @param $call
+	 *
+	 * @return string
 	 */
-	function stack( $str, $key = null, $group ) {
-		if (! isset($this->mRefs[$group])) 
-			$this->mRefs[$group]=array();
-		if (! isset($this->mGroupCnt[$group]))
-			$this->mGroupCnt[$group]=0;
+	function stack( $str, $key = null, $group, $follow, $call ) {
+		if ( !isset( $this->mRefs[$group] ) ) {
+			$this->mRefs[$group] = array();
+		}
+		if ( !isset( $this->mGroupCnt[$group] ) ) {
+			$this->mGroupCnt[$group] = 0;
+		}
 
+		if ( $follow != null ) {
+			if ( isset( $this->mRefs[$group][$follow] ) && is_array( $this->mRefs[$group][$follow] ) ) {
+				// add text to the note that is being followed
+				$this->mRefs[$group][$follow]['text'] = $this->mRefs[$group][$follow]['text'] . ' ' . $str;
+			} else {
+				// insert part of note at the beginning of the group
+				for ( $k = 0 ; $k < count( $this->mRefs[$group] ) ; $k++ ) {
+					if ( $this->mRefs[$group][$k]['follow'] == null ) {
+						break;
+					}
+				}
+				array_splice( $this->mRefs[$group], $k, 0,
+						   array( array( 'count' => - 1,
+							  'text' => $str,
+							  'key' => ++$this->mOutCnt ,
+							  'follow' => $follow ) ) );
+				array_splice( $this->mRefCallStack, $k, 0,
+						   array( array( 'new', $call, $str, $key, $group, $this->mOutCnt ) ) );
+				$this->mInCnt++;
+			}
+			// return an empty string : this is not a reference
+			return '';
+		}
 		if ( $key === null ) {
 			// No key
-			//$this->mRefs[$group][] = $str;
-			$this->mRefs[$group][] = array('count'=>-1, 'text'=>$str, 'key'=>++$this->mOutCnt);
+			// $this->mRefs[$group][] = $str;
+			$this->mRefs[$group][] = array( 'count' => - 1, 'text' => $str, 'key' => ++$this->mOutCnt );
+			$this->mRefCallStack[] = array( 'new', $call, $str, $key, $group, $this->mOutCnt );
 
 			return $this->linkRef( $group, $this->mInCnt++ );
-		} else if ( is_string( $key ) ) {
+		} elseif ( is_string( $key ) ) {
 			// Valid key
-			if ( ! isset( $this->mRefs[$group][$key] ) || ! is_array( $this->mRefs[$group][$key] ) ) {
-				// First occurance
+			if ( !isset( $this->mRefs[$group][$key] ) || !is_array( $this->mRefs[$group][$key] ) ) {
+				// First occurrence
 				$this->mRefs[$group][$key] = array(
 					'text' => $str,
 					'count' => 0,
 					'key' => ++$this->mOutCnt,
 					'number' => ++$this->mGroupCnt[$group]
 				);
+				$this->mRefCallStack[] = array( 'new', $call, $str, $key, $group, $this->mOutCnt );
+
 				$this->mInCnt++;
 				return
 					$this->linkRef(
 						$group,
 						$key,
-						$this->mRefs[$group][$key]['key']."-".$this->mRefs[$group][$key]['count'],
+						$this->mRefs[$group][$key]['key'] . "-" . $this->mRefs[$group][$key]['count'],
 						$this->mRefs[$group][$key]['number'],
-						"-".$this->mRefs[$group][$key]['key']
+						"-" . $this->mRefs[$group][$key]['key']
 					);
 			} else {
 				// We've been here before
 				if ( $this->mRefs[$group][$key]['text'] === null && $str !== '' ) {
 					// If no text found before, use this text
 					$this->mRefs[$group][$key]['text'] = $str;
-				};
-				return 
+					$this->mRefCallStack[] = array( 'assign', $call, $str, $key, $group,
+						$this->mRefs[$group][$key]['key'] );
+				} else {
+					$this->mRefCallStack[] = array( 'increment', $call, $str, $key, $group,
+						$this->mRefs[$group][$key]['key'] );
+				}
+				return
 					$this->linkRef(
 						$group,
 						$key,
-						$this->mRefs[$group][$key]['key']."-".++$this->mRefs[$group][$key]['count'],
+						$this->mRefs[$group][$key]['key'] . "-" . ++$this->mRefs[$group][$key]['count'],
 						$this->mRefs[$group][$key]['number'],
-						"-".$this->mRefs[$group][$key]['key']
-					); }
+						"-" . $this->mRefs[$group][$key]['key']
+					);
+			}
+		} else {
+			$this->croak( 'cite_error_stack_invalid_input', serialize( array( $key, $str ) ) );
 		}
+	}
 
-		else
-			$this->croak( 'cite_error_stack_invalid_input', serialize( array( $key, $str ) ) );
+	/**
+	 * Partially undoes the effect of calls to stack()
+	 *
+	 * Called by guardedReferences()
+	 *
+	 * The option to define <ref> within <references> makes the
+	 * behavior of <ref> context dependent.  This is normally fine
+	 * but certain operations (especially #tag) lead to out-of-order
+	 * parser evaluation with the <ref> tags being processed before
+	 * their containing <reference> element is read.  This leads to
+	 * stack corruption that this function works to fix.
+	 *
+	 * This function is not a total rollback since some internal
+	 * counters remain incremented.  Doing so prevents accidentally
+	 * corrupting certain links.
+	 *
+	 * @param $type
+	 * @param $key
+	 * @param $group
+	 * @param $index
+	 */
+	function rollbackRef( $type, $key, $group, $index ) {
+		if ( !isset( $this->mRefs[$group] ) ) {
+			return;
+		}
+
+		if ( $key === null ) {
+			foreach ( $this->mRefs[$group] as $k => $v ) {
+				if ( $this->mRefs[$group][$k]['key'] === $index ) {
+					$key = $k;
+					break;
+				}
+			}
+		}
+
+		# Sanity checks that specified element exists.
+		if ( $key === null ) {
+			return;
+		}
+		if ( !isset( $this->mRefs[$group][$key] ) ) {
+			return;
+		}
+		if ( $this->mRefs[$group][$key]['key'] != $index ) {
+			return;
+		}
+
+		switch ( $type ) {
+		case 'new':
+			# Rollback the addition of new elements to the stack.
+			unset( $this->mRefs[$group][$key] );
+			if ( count( $this->mRefs[$group] ) == 0 ) {
+				unset( $this->mRefs[$group] );
+				unset( $this->mGroupCnt[$group] );
+			}
+			break;
+		case 'assign':
+			# Rollback assignment of text to pre-existing elements.
+			$this->mRefs[$group][$key]['text'] = null;
+			# continue without break
+		case 'increment':
+			# Rollback increase in named ref occurences.
+			$this->mRefs[$group][$key]['count']--;
+			break;
+		}
 	}
-	
+
 	/**
 	 * Callback function for <references>
 	 *
-	 * @param string $str Input
-	 * @param array $argv Arguments
+	 * @param $str string Input
+	 * @param $argv array Arguments
+	 * @param $parser Parser
+	 *
 	 * @return string
 	 */
 	function references( $str, $argv, $parser ) {
-		wfLoadExtensionMessages( 'Cite' );
-		if ( $this->mInCite ) {
+		if ( $this->mInCite || $this->mInReferences ) {
 			if ( is_null( $str ) ) {
 				return htmlspecialchars( "<references/>" );
 			} else {
 				return htmlspecialchars( "<references>$str</references>" );
 			}
 		} else {
-			$this->mInCite = true;
+			$this->mCallCnt++;
+			$this->mInReferences = true;
 			$ret = $this->guardedReferences( $str, $argv, $parser );
-			$this->mInCite = false;
+			$this->mInReferences = false;
 			return $ret;
 		}
 	}
 
+	/**
+	 * @param $str string
+	 * @param $argv array
+	 * @param $parser Parser
+	 * @param $group string
+	 * @return string
+	 */
 	function guardedReferences( $str, $argv, $parser, $group = CITE_DEFAULT_GROUP ) {
 		global $wgAllowCiteGroups;
 
 		$this->mParser = $parser;
-		
-		if ( strval( $str ) !== '' )
-			return $this->error( 'cite_error_references_invalid_input' );
 
-		
-		if ( isset( $argv['group'] ) and $wgAllowCiteGroups) {
+		if ( isset( $argv['group'] ) && $wgAllowCiteGroups ) {
 			$group = $argv['group'];
-			unset ($argv['group']);
-			
+			unset ( $argv['group'] );
 		}
-		
-		if ( count( $argv ) && $wgAllowCiteGroups )
+
+		if ( strval( $str ) !== '' ) {
+			$this->mReferencesGroup = $group;
+
+			# Detect whether we were sent already rendered <ref>s
+			# Mostly a side effect of using #tag to call references
+			$count = substr_count( $str, $parser->uniqPrefix() . "-ref-" );
+			for ( $i = 1; $i <= $count; $i++ ) {
+				if ( count( $this->mRefCallStack ) < 1 ) {
+					break;
+				}
+
+				# The following assumes that the parsed <ref>s sent within
+				# the <references> block were the most recent calls to
+				# <ref>.  This assumption is true for all known use cases,
+				# but not strictly enforced by the parser.  It is possible
+				# that some unusual combination of #tag, <references> and
+				# conditional parser functions could be created that would
+				# lead to malformed references here.
+				$call = array_pop( $this->mRefCallStack );
+				if ( $call !== false ) {
+					list( $type, $ref_argv, $ref_str,
+						$ref_key, $ref_group, $ref_index ) = $call;
+
+					# Undo effects of calling <ref> while unaware of containing <references>
+					$this->rollbackRef( $type, $ref_key, $ref_group, $ref_index );
+
+					# Rerun <ref> call now that mInReferences is set.
+					$this->guardedRef( $ref_str, $ref_argv, $parser );
+				}
+			}
+
+			# Parse $str to process any unparsed <ref> tags.
+			$parser->recursiveTagParse( $str );
+
+			# Reset call stack
+			$this->mRefCallStack = array();
+		}
+
+		if ( count( $argv ) && $wgAllowCiteGroups ) {
 			return $this->error( 'cite_error_references_invalid_parameters_group' );
-		elseif ( count( $argv ) )
+		} elseif ( count( $argv ) ) {
 			return $this->error( 'cite_error_references_invalid_parameters' );
-		else
-			return $this->referencesFormat($group);
+		} else {
+			$s = $this->referencesFormat( $group );
+			if ( $parser->getOptions()->getIsSectionPreview() ) {
+				return $s;
+			}
+
+			# Append errors generated while processing <references>
+			if ( count( $this->mReferencesErrors ) > 0 ) {
+				$s .= "\n" . implode( "<br />\n", $this->mReferencesErrors );
+				$this->mReferencesErrors = array();
+			}
+			return $s;
+		}
 	}
 
 	/**
 	 * Make output to be returned from the references() function
 	 *
+	 * @param $group
+	 *
 	 * @return string XHTML ready for output
 	 */
-	function referencesFormat($group) {
-		if (( count( $this->mRefs ) == 0 ) or (empty( $this->mRefs[$group] ) ))
+	function referencesFormat( $group ) {
+		if ( ( count( $this->mRefs ) == 0 ) || ( empty( $this->mRefs[$group] ) ) ) {
 			return '';
-		
+		}
+
 		wfProfileIn( __METHOD__ );
-		wfProfileIn( __METHOD__ .'-entries' );
+		wfProfileIn( __METHOD__ . '-entries' );
 		$ent = array();
-		foreach ( $this->mRefs[$group] as $k => $v )
+		foreach ( $this->mRefs[$group] as $k => $v ) {
 			$ent[] = $this->referencesFormatEntry( $k, $v );
-		
+		}
+
 		$prefix = wfMsgForContentNoTrans( 'cite_references_prefix' );
 		$suffix = wfMsgForContentNoTrans( 'cite_references_suffix' );
 		$content = implode( "\n", $ent );
@@ -364,39 +641,40 @@
 		// Let's try to cache it.
 		$parserInput = $prefix . $content . $suffix;
 		global $wgMemc;
-		$cacheKey = wfMemcKey( 'citeref', md5($parserInput), $this->mParser->Title()->getArticleID() );
+		$cacheKey = wfMemcKey( 'citeref', md5( $parserInput ), $this->mParser->Title()->getArticleID() );
 
-		wfProfileOut( __METHOD__ .'-entries' );
-		
+		wfProfileOut( __METHOD__ . '-entries' );
+
 		global $wgCiteCacheReferences;
+		$data = false;
 		if ( $wgCiteCacheReferences ) {
-			wfProfileIn( __METHOD__.'-cache-get' );
+			wfProfileIn( __METHOD__ . '-cache-get' );
 			$data = $wgMemc->get( $cacheKey );
-			wfProfileOut( __METHOD__.'-cache-get' );
+			wfProfileOut( __METHOD__ . '-cache-get' );
 		}
-		
-		if ( empty($data) ) {
-			wfProfileIn( __METHOD__ .'-parse' );
-			
+
+		if ( !$data || !$this->mParser->isValidHalfParsedText( $data ) ) {
+			wfProfileIn( __METHOD__ . '-parse' );
+
 			// Live hack: parse() adds two newlines on WM, can't reproduce it locally -ævar
 			$ret = rtrim( $this->parse( $parserInput ), "\n" );
-			
+
 			if ( $wgCiteCacheReferences ) {
-				$serData = $this->mParser->serialiseHalfParsedText( $ret );
+				$serData = $this->mParser->serializeHalfParsedText( $ret );
 				$wgMemc->set( $cacheKey, $serData, 86400 );
 			}
-			
-			wfProfileOut( __METHOD__ .'-parse' );
+
+			wfProfileOut( __METHOD__ . '-parse' );
 		} else {
-			$ret = $this->mParser->unserialiseHalfParsedText( $data );
+			$ret = $this->mParser->unserializeHalfParsedText( $data );
 		}
 
 		wfProfileOut( __METHOD__ );
-		
-		//done, clean up so we can reuse the group
-		unset ($this->mRefs[$group]);
-		unset($this->mGroupCnt[$group]);
-			
+
+		// done, clean up so we can reuse the group
+		unset( $this->mRefs[$group] );
+		unset( $this->mGroupCnt[$group] );
+
 		return $ret;
 	}
 
@@ -410,52 +688,58 @@
 	 */
 	function referencesFormatEntry( $key, $val ) {
 		// Anonymous reference
-		if ( ! is_array( $val ) )
-			return
-				wfMsgForContentNoTrans(
+		if ( !is_array( $val ) ) {
+			return wfMsgForContentNoTrans(
 					'cite_references_link_one',
 					$this->referencesKey( $key ),
 					$this->refKey( $key ),
-					$val
+					$this->referenceText( $key, $val )
 				);
-		else if ($val['text']=='') return
-				wfMsgForContentNoTrans(
-					'cite_references_link_one',
-					$this->referencesKey( $key ),
-					$this->refKey( $key, $val['count'] ),
-					$this->error( 'cite_error_references_no_text', $key )
+		}
+		$text = $this->referenceText( $key, $val['text'] );
+		if ( isset( $val['follow'] ) ) {
+			return wfMsgForContentNoTrans(
+					'cite_references_no_link',
+					$this->referencesKey( $val['follow'] ),
+					$text
 				);
-		if ( $val['count'] < 0 )
-			return
-				wfMsgForContentNoTrans(
+		} elseif ( $val['text'] == '' ) {
+			return wfMsgForContentNoTrans(
+						'cite_references_link_one',
+						$this->referencesKey( $key ),
+						$this->refKey( $key, $val['count'] ),
+						$text
+					);
+		}
+
+		if ( $val['count'] < 0 ) {
+			return wfMsgForContentNoTrans(
 					'cite_references_link_one',
 					$this->referencesKey( $val['key'] ),
-					#$this->refKey( $val['key'], $val['count'] ),
+					# $this->refKey( $val['key'], $val['count'] ),
 					$this->refKey( $val['key'] ),
-
-					( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $key ) )						
+					$text
 				);
-		// Standalone named reference, I want to format this like an
-		// anonymous reference because displaying "1. 1.1 Ref text" is
-		// overkill and users frequently use named references when they
-		// don't need them for convenience
-		else if ( $val['count'] === 0 )
-			return
-				wfMsgForContentNoTrans(
+			// Standalone named reference, I want to format this like an
+			// anonymous reference because displaying "1. 1.1 Ref text" is
+			// overkill and users frequently use named references when they
+			// don't need them for convenience
+		} elseif ( $val['count'] === 0 ) {
+			return wfMsgForContentNoTrans(
 					'cite_references_link_one',
-					$this->referencesKey( $key ."-" . $val['key'] ),
-					#$this->refKey( $key, $val['count'] ),
-					$this->refKey( $key, $val['key']."-".$val['count'] ),
-					( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $key ) )
+					$this->referencesKey( $key . "-" . $val['key'] ),
+					# $this->refKey( $key, $val['count'] ),
+					$this->refKey( $key, $val['key'] . "-" . $val['count'] ),
+					$text
 				);
 		// Named references with >1 occurrences
-		else {
+		} else {
 			$links = array();
-//for group handling, we have an extra key here.
+			// for group handling, we have an extra key here.
 			for ( $i = 0; $i <= $val['count']; ++$i ) {
 				$links[] = wfMsgForContentNoTrans(
 						'cite_references_link_many_format',
-						$this->refKey( $key, $val['key']."-$i" ),
+						$this->refKey( $key, $val['key'] . "-$i" ),
 						$this->referencesFormatEntryNumericBacklinkLabel( $val['number'], $i, $val['count'] ),
 						$this->referencesFormatEntryAlternateBacklinkLabel( $i )
 				);
@@ -463,16 +747,28 @@
 
 			$list = $this->listToText( $links );
 
-			return
-				wfMsgForContentNoTrans( 'cite_references_link_many',
-					$this->referencesKey( $key ."-" . $val['key'] ),
+			return wfMsgForContentNoTrans( 'cite_references_link_many',
+					$this->referencesKey( $key . "-" . $val['key'] ),
 					$list,
-					( $val['text'] != '' ? $val['text'] : $this->error( 'cite_error_references_no_text', $key ) )
+					$text
 				);
 		}
 	}
 
 	/**
+	 * Returns formatted reference text
+	 * @param String $key
+	 * @param String $text
+	 * @return String
+	 */
+	function referenceText( $key, $text ) {
+		if ( $text == '' ) {
+			return $this->error( 'cite_error_references_no_text', $key, 'noparse' );
+		}
+		return '<span class="reference-text">' . rtrim( $text, "\n" ) . "</span>\n";
+	}
+
+	/**
 	 * Generate a numeric backlink given a base number and an
 	 * offset, e.g. $base = 1, $offset = 2; = 1.2
 	 * Since bug #5525, it correctly does 1.9 -> 1.10 as well as 1.099 -> 1.100
@@ -488,7 +784,7 @@
 		global $wgContLang;
 		$scope = strlen( $max );
 		$ret = $wgContLang->formatNum(
-			sprintf("%s.%0{$scope}s", $base, $offset)
+			sprintf( "%s.%0{$scope}s", $base, $offset )
 		);
 		return $ret;
 	}
@@ -511,11 +807,41 @@
 			return $this->mBacklinkLabels[$offset];
 		} else {
 			// Feed me!
-			return $this->error( 'cite_error_references_no_backlink_label' );
+			return $this->error( 'cite_error_references_no_backlink_label', null, 'noparse' );
 		}
 	}
 
 	/**
+	 * Generate a custom format link for a group given an offset, e.g.
+	 * the second <ref group="foo"> is b if $this->mLinkLabels["foo"] =
+	 * array( 'a', 'b', 'c', ...).
+	 * Return an error if the offset > the # of array items
+	 *
+	 * @param int $offset The offset
+	 * @param string $group The group name
+	 * @param string $label The text to use if there's no message for them.
+	 *
+	 * @return string
+	 */
+	function getLinkLabel( $offset, $group, $label ) {
+		$message = "cite_link_label_group-$group";
+		if ( !isset( $this->mLinkLabels[$group] ) ) {
+			$this->genLinkLabels( $group, $message );
+		}
+		if ( $this->mLinkLabels[$group] === false ) {
+			// Use normal representation, ie. "$group 1", "$group 2"...
+			return $label;
+		}
+
+		if ( isset( $this->mLinkLabels[$group][$offset - 1] ) ) {
+			return $this->mLinkLabels[$group][$offset - 1];
+		} else {
+			// Feed me!
+			return $this->error( 'cite_error_no_link_label_group', array( $group, $message ), 'noparse' );
+		}
+	}
+
+	/**
 	 * Return an id for use in wikitext output based on a key and
 	 * optionally the number of it, used in <references>, not <ref>
 	 * (since otherwise it would link to itself)
@@ -529,10 +855,11 @@
 	function refKey( $key, $num = null ) {
 		$prefix = wfMsgForContent( 'cite_reference_link_prefix' );
 		$suffix = wfMsgForContent( 'cite_reference_link_suffix' );
-		if ( isset( $num ) )
+		if ( isset( $num ) ) {
 			$key = wfMsgForContentNoTrans( 'cite_reference_link_key_with_num', $key, $num );
-		
-		return $prefix . $key . $suffix;
+		}
+
+		return "$prefix$key$suffix";
 	}
 
 	/**
@@ -549,33 +876,40 @@
 	function referencesKey( $key, $num = null ) {
 		$prefix = wfMsgForContent( 'cite_references_link_prefix' );
 		$suffix = wfMsgForContent( 'cite_references_link_suffix' );
-		if ( isset( $num ) )
+		if ( isset( $num ) ) {
 			$key = wfMsgForContentNoTrans( 'cite_reference_link_key_with_num', $key, $num );
-		
-		return $prefix . $key . $suffix;
+		}
+
+		return "$prefix$key$suffix";
 	}
 
 	/**
 	 * Generate a link (<sup ...) for the <ref> element from a key
 	 * and return XHTML ready for output
 	 *
-	 * @param string $key The key for the link
-	 * @param int $count The index of the key, used for distinguishing
+	 * @param $group
+	 * @param $key string The key for the link
+	 * @param $count int The index of the key, used for distinguishing
 	 *                   multiple occurances of the same key
-	 * @param int $label The label to use for the link, I want to
+	 * @param $label int The label to use for the link, I want to
 	 *                   use the same label for all occourances of
 	 *                   the same named reference.
+	 * @param $subkey string
+	 *
 	 * @return string
 	 */
 	function linkRef( $group, $key, $count = null, $label = null, $subkey = '' ) {
 		global $wgContLang;
+		$label = is_null( $label ) ? ++$this->mGroupCnt[$group] : $label;
+
 		return
 			$this->parse(
 				wfMsgForContentNoTrans(
 					'cite_reference_link',
 					$this->refKey( $key, $count ),
 					$this->referencesKey( $key . $subkey ),
-					(($group == CITE_DEFAULT_GROUP)?'':"$group ").$wgContLang->formatNum( is_null( $label ) ? ++$this->mGroupCnt[$group] : $label )
+					$this->getLinkLabel( $label, $group,
+						( ( $group == CITE_DEFAULT_GROUP ) ? '' : "$group " ) . $wgContLang->formatNum( $label ) )
 				)
 			);
 	}
@@ -598,10 +932,10 @@
 		$sep = wfMsgForContentNoTrans( 'cite_references_link_many_sep' );
 		$and = wfMsgForContentNoTrans( 'cite_references_link_many_and' );
 
-		if ( $cnt == 1 )
+		if ( $cnt == 1 ) {
 			// Enforce always returning a string
 			return (string)$arr[0];
-		else {
+		} else {
 			$t = array_slice( $arr, 0, $cnt - 1 );
 			return implode( $sep, $t ) . $and . $arr[$cnt - 1];
 		}
@@ -633,7 +967,7 @@
 				false
 			);
 			$text = $ret->getText();
-			
+
 			return $this->fixTidy( $text );
 		}
 	}
@@ -650,13 +984,13 @@
 	function fixTidy( $text ) {
 		global $wgUseTidy;
 
-		if ( ! $wgUseTidy )
+		if ( !$wgUseTidy ) {
 			return $text;
-		else {
+		} else {
 			$text = preg_replace( '~^<p>\s*~', '', $text );
 			$text = preg_replace( '~\s*</p>\s*~', '', $text );
 			$text = preg_replace( '~\n$~', '', $text );
-			
+
 			return $text;
 		}
 	}
@@ -664,7 +998,7 @@
 	/**
 	 * Generate the labels to pass to the
 	 * 'cite_references_link_many_format' message, the format is an
-	 * arbitary number of tokens separated by [\t\n ]
+	 * arbitrary number of tokens separated by [\t\n ]
 	 */
 	function genBacklinkLabels() {
 		wfProfileIn( __METHOD__ );
@@ -674,32 +1008,76 @@
 	}
 
 	/**
+	 * Generate the labels to pass to the
+	 * 'cite_reference_link' message instead of numbers, the format is an
+	 * arbitrary number of tokens separated by [\t\n ]
+	 *
+	 * @param $group
+	 * @param $message
+	 */
+	function genLinkLabels( $group, $message ) {
+		wfProfileIn( __METHOD__ );
+		$text = false;
+		$msg = wfMessage( $message )->inContentLanguage();
+		if ( $msg->exists() ) {
+			$text = $msg->plain();
+		}
+		$this->mLinkLabels[$group] = ( $text == '' ) ? false : preg_split( '#[\n\t ]#', $text );
+		wfProfileOut( __METHOD__ );
+	}
+
+	/**
 	 * Gets run when Parser::clearState() gets run, since we don't
 	 * want the counts to transcend pages and other instances
+	 *
+	 * @param $parser Parser
+	 *
+	 * @return bool
 	 */
-	function clearState() {
+	function clearState( &$parser ) {
+		if ( $parser->extCite !== $this ) {
+			return $parser->extCite->clearState( $parser );
+		}
+
 		# Don't clear state when we're in the middle of parsing
 		# a <ref> tag
-		if($this->mInCite)
+		if ( $this->mInCite || $this->mInReferences ) {
 			return true;
- 
+		}
+
 		$this->mGroupCnt = array();
-		$this->mOutCnt = -1;
+		$this->mOutCnt = - 1;
 		$this->mInCnt = 0;
+		$this->mCallCnt = 0;
 		$this->mRefs = array();
+		$this->mReferencesErrors = array();
+		$this->mRefCallStack = array();
 
 		return true;
 	}
 
 	/**
-	 * Called at the end of page processing to append an error if refs were 
+	 * Called at the end of page processing to append an error if refs were
 	 * used without a references tag.
+	 *
+	 * @param $parser Parser
+	 * @param $text string
+	 *
+	 * @return bool
 	 */
-	function checkRefsNoReferences(&$parser, &$text){
-		if ( $parser->getOptions()->getIsSectionPreview() ) return true;
+	function checkRefsNoReferences( &$parser, &$text ) {
+		if ( $parser->extCite !== $this ) {
+			return $parser->extCite->checkRefsNoReferences( $parser, $text );
+		}
 
+		if ( $parser->getOptions()->getIsSectionPreview() ) {
+			return true;
+		}
+
 		foreach ( $this->mRefs as $group => $refs ) {
-			if ( count( $refs ) == 0 ) continue;
+			if ( count( $refs ) == 0 ) {
+				continue;
+			}
 			$text .= "\n<br />";
 			if ( $group == CITE_DEFAULT_GROUP ) {
 				$text .= $this->error( 'cite_error_refs_without_references' );
@@ -711,16 +1089,41 @@
 	}
 
 	/**
+	 * Hook for the InlineEditor extension. If any ref or reference reference tag is in the text, the entire
+	 * page should be reparsed, so we return false in that case.
+	 *
+	 * @param $output
+	 *
+	 * @return bool
+	 */
+	function checkAnyCalls( &$output ) {
+		global $wgParser;
+		/* InlineEditor always uses $wgParser */
+		return ( $wgParser->extCite->mCallCnt <= 0 );
+	}
+
+	/**
 	 * Initialize the parser hooks
+	 *
+	 * @param $parser Parser
+	 *
+	 * @return bool
 	 */
-	function setHooks() {
-		global $wgParser, $wgHooks;
+	static function setHooks( $parser ) {
+		global $wgHooks;
 
-		$wgParser->setHook( 'ref' , array( &$this, 'ref' ) );
-		$wgParser->setHook( 'references' , array( &$this, 'references' ) );
+		$parser->extCite = new self();
 
-		$wgHooks['ParserClearState'][] = array( &$this, 'clearState' );
-		$wgHooks['ParserBeforeTidy'][] = array( &$this, 'checkRefsNoReferences' );
+		if ( !Cite::$hooksInstalled ) {
+			$wgHooks['ParserClearState'][] = array( $parser->extCite, 'clearState' );
+			$wgHooks['ParserBeforeTidy'][] = array( $parser->extCite, 'checkRefsNoReferences' );
+			$wgHooks['InlineEditorPartialAfterParse'][] = array( $parser->extCite, 'checkAnyCalls' );
+			Cite::$hooksInstalled = true;
+		}
+		$parser->setHook( 'ref' , array( $parser->extCite, 'ref' ) );
+		$parser->setHook( 'references' , array( $parser->extCite, 'references' ) );
+
+		return true;
 	}
 
 	/**
@@ -728,18 +1131,20 @@
 	 *
 	 * @param string $key   Message name for the error
 	 * @param string $param Parameter to pass to the message
-	 * @return string XHTML ready for output
+	 * @param string $parse Whether to parse the message ('parse') or not ('noparse')
+	 * @return string XHTML or wikitext ready for output
 	 */
-	function error( $key, $param=null ) {
+	function error( $key, $param = null, $parse = 'parse' ) {
 		# We rely on the fact that PHP is okay with passing unused argu-
 		# ments to functions.  If $1 is not used in the message, wfMsg will
 		# just ignore the extra parameter.
-		return 
-			$this->parse(
-				'<strong class="error">' .
-				wfMsgNoTrans( 'cite_error', wfMsgNoTrans( $key, $param ) ) .
-				'</strong>'
-			);
+		$ret = '<strong class="error">' .
+			wfMsgNoTrans( 'cite_error', wfMsgNoTrans( $key, $param ) ) .
+			'</strong>';
+		if ( $parse == 'parse' ) {
+			$ret = $this->parse( $ret );
+		}
+		return $ret;
 	}
 
 	/**
@@ -755,5 +1160,3 @@
 
 	/**#@-*/
 }
-
-?>

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.alias.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,364 @@
+<?php
+/**
+ * Aliases for Special:Cite
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$specialPageAliases = array();
+
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'Cite' => array( 'Cite' ),
+);
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
+	'Cite' => array( 'استشهاد' ),
+);
+
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'Cite' => array( 'استشهاد' ),
+);
+
+/** Bikol Central (Bikol Central) */
+$specialPageAliases['bcl'] = array(
+	'Cite' => array( 'Sambitón' ),
+);
+
+/** Bulgarian (Български) */
+$specialPageAliases['bg'] = array(
+	'Cite' => array( 'Цитиране' ),
+);
+
+/** Breton (Brezhoneg) */
+$specialPageAliases['br'] = array(
+	'Cite' => array( 'Menegiñ' ),
+);
+
+/** Bosnian (Bosanski) */
+$specialPageAliases['bs'] = array(
+	'Cite' => array( 'Citiraj' ),
+);
+
+/** Catalan (Català) */
+$specialPageAliases['ca'] = array(
+	'Cite' => array( 'Citau', 'Citeu' ),
+);
+
+/** Czech (Česky) */
+$specialPageAliases['cs'] = array(
+	'Cite' => array( 'Citovat' ),
+);
+
+/** Danish (Dansk) */
+$specialPageAliases['da'] = array(
+	'Cite' => array( 'Citer' ),
+);
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = array(
+	'Cite' => array( 'Zitierhilfe' ),
+);
+
+/** Lower Sorbian (Dolnoserbski) */
+$specialPageAliases['dsb'] = array(
+	'Cite' => array( 'Citěrowańska_pomoc' ),
+);
+
+/** Greek (Ελληνικά) */
+$specialPageAliases['el'] = array(
+	'Cite' => array( 'Παραπομπή' ),
+);
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = array(
+	'Cite' => array( 'Citi' ),
+);
+
+/** Spanish (Español) */
+$specialPageAliases['es'] = array(
+	'Cite' => array( 'Citar' ),
+);
+
+/** Estonian (Eesti) */
+$specialPageAliases['et'] = array(
+	'Cite' => array( 'Tsiteeri' ),
+);
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = array(
+	'Cite' => array( 'یادکرد' ),
+);
+
+/** Finnish (Suomi) */
+$specialPageAliases['fi'] = array(
+	'Cite' => array( 'Viittaus' ),
+);
+
+/** French (Français) */
+$specialPageAliases['fr'] = array(
+	'Cite' => array( 'Citer' ),
+);
+
+/** Franco-Provençal (Arpetan) */
+$specialPageAliases['frp'] = array(
+	'Cite' => array( 'Citar' ),
+);
+
+/** Galician (Galego) */
+$specialPageAliases['gl'] = array(
+	'Cite' => array( 'Cita', 'Citar' ),
+);
+
+/** Swiss German (Alemannisch) */
+$specialPageAliases['gsw'] = array(
+	'Cite' => array( 'Zitierhilf' ),
+);
+
+/** Hebrew (עברית) */
+$specialPageAliases['he'] = array(
+	'Cite' => array( 'ציטוט' ),
+);
+
+/** Croatian (Hrvatski) */
+$specialPageAliases['hr'] = array(
+	'Cite' => array( 'Citiraj' ),
+);
+
+/** Upper Sorbian (Hornjoserbsce) */
+$specialPageAliases['hsb'] = array(
+	'Cite' => array( 'Citowanska_pomoc' ),
+);
+
+/** 湘语 (湘语) */
+$specialPageAliases['hsn'] = array(
+	'Cite' => array( '建脚注' ),
+);
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'Cite' => array( 'Site' ),
+);
+
+/** Hungarian (Magyar) */
+$specialPageAliases['hu'] = array(
+	'Cite' => array( 'Hivatkozás', 'Irodalomjegyzék' ),
+);
+
+/** Interlingua (Interlingua) */
+$specialPageAliases['ia'] = array(
+	'Cite' => array( 'Citation' ),
+);
+
+/** Indonesian (Bahasa Indonesia) */
+$specialPageAliases['id'] = array(
+	'Cite' => array( 'Kutip' ),
+);
+
+/** Igbo (Igbo) */
+$specialPageAliases['ig'] = array(
+	'Cite' => array( 'Dépùtà' ),
+);
+
+/** Ido (Ido) */
+$specialPageAliases['io'] = array(
+	'Cite' => array( 'Citar' ),
+);
+
+/** Italian (Italiano) */
+$specialPageAliases['it'] = array(
+	'Cite' => array( 'Cita' ),
+);
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = array(
+	'Cite' => array( '引用' ),
+);
+
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'Cite' => array( '인용' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'Cite' => array( 'Zitteere' ),
+);
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = array(
+	'Cite' => array( 'MostrarManaderos' ),
+);
+
+/** Luxembourgish (Lëtzebuergesch) */
+$specialPageAliases['lb'] = array(
+	'Cite' => array( 'Zitéierhellëf' ),
+);
+
+/** Macedonian (Македонски) */
+$specialPageAliases['mk'] = array(
+	'Cite' => array( 'Цитат' ),
+);
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'Cite' => array( 'അവലംബം' ),
+);
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = array(
+	'Cite' => array( 'संदर्भद्या' ),
+);
+
+/** Malay (Bahasa Melayu) */
+$specialPageAliases['ms'] = array(
+	'Cite' => array( 'Petik' ),
+);
+
+/** Maltese (Malti) */
+$specialPageAliases['mt'] = array(
+	'Cite' => array( 'Iċċita' ),
+);
+
+/** Nahuatl (Nāhuatl) */
+$specialPageAliases['nah'] = array(
+	'Cite' => array( 'Tlahtoa', 'Citar' ),
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$specialPageAliases['nb'] = array(
+	'Cite' => array( 'Siteringshjelp' ),
+);
+
+/** Low German (Plattdüütsch) */
+$specialPageAliases['nds'] = array(
+	'Cite' => array( 'Ziteerhelp' ),
+);
+
+/** Nedersaksisch (Nedersaksisch) */
+$specialPageAliases['nds-nl'] = array(
+	'Cite' => array( 'Siteerhulpe' ),
+);
+
+/** Dutch (Nederlands) */
+$specialPageAliases['nl'] = array(
+	'Cite' => array( 'Citeren' ),
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬) */
+$specialPageAliases['nn'] = array(
+	'Cite' => array( 'Siter' ),
+);
+
+/** Occitan (Occitan) */
+$specialPageAliases['oc'] = array(
+	'Cite' => array( 'Citar' ),
+);
+
+/** Polish (Polski) */
+$specialPageAliases['pl'] = array(
+	'Cite' => array( 'Cytuj' ),
+);
+
+/** Pashto (پښتو) */
+$specialPageAliases['ps'] = array(
+	'Cite' => array( 'درک' ),
+);
+
+/** Portuguese (Português) */
+$specialPageAliases['pt'] = array(
+	'Cite' => array( 'Citar' ),
+);
+
+/** Brazilian Portuguese (Português do Brasil) */
+$specialPageAliases['pt-br'] = array(
+	'Cite' => array( 'Citar' ),
+);
+
+/** Romanian (Română) */
+$specialPageAliases['ro'] = array(
+	'Cite' => array( 'Citează' ),
+);
+
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = array(
+	'Cite' => array( 'उद्धृत' ),
+);
+
+/** Slovak (Slovenčina) */
+$specialPageAliases['sk'] = array(
+	'Cite' => array( 'Citovať' ),
+);
+
+/** Slovenian (Slovenščina) */
+$specialPageAliases['sl'] = array(
+	'Cite' => array( 'Navedi' ),
+);
+
+/** Albanian (Shqip) */
+$specialPageAliases['sq'] = array(
+	'Cite' => array( 'Citim' ),
+);
+
+/** Swedish (Svenska) */
+$specialPageAliases['sv'] = array(
+	'Cite' => array( 'Citera' ),
+);
+
+/** Swahili (Kiswahili) */
+$specialPageAliases['sw'] = array(
+	'Cite' => array( 'Taja', 'Hakikisha' ),
+);
+
+/** Tetum (Tetun) */
+$specialPageAliases['tet'] = array(
+	'Cite' => array( 'Sita' ),
+);
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = array(
+	'Cite' => array( 'อ้างอิง' ),
+);
+
+/** Tagalog (Tagalog) */
+$specialPageAliases['tl'] = array(
+	'Cite' => array( 'Sipiin' ),
+);
+
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = array(
+	'Cite' => array( 'KaynakGöster' ),
+);
+
+/** Vèneto (Vèneto) */
+$specialPageAliases['vec'] = array(
+	'Cite' => array( 'Cita' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = array(
+	'Cite' => array( 'Ghi_chú' ),
+);
+
+/** Yiddish (ייִדיש) */
+$specialPageAliases['yi'] = array(
+	'Cite' => array( 'ציטירן' ),
+);
+
+/** Cantonese (粵語) */
+$specialPageAliases['yue'] = array(
+	'Cite' => array( '引用' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'Cite' => array( '引用' ),
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$specialPageAliases['zh-hant'] = array(
+	'Cite' => array( '引用' ),
+);
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,26 +2,34 @@
 /**
  * Internationalisation file for Cite special page extension.
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
 */
 
 $messages = array();
 
 $messages['en'] = array(
-	'cite_article_desc' => 'Adds a [[Special:Cite|citation]] special page and toolbox link',
-	'cite_article_link' => 'Cite this page',
-	'cite'              => 'Cite',
-	'cite_page'         => 'Page:',
-	'cite_submit'       => 'Cite',
-	'cite_text'         => '', # Do not translate this
+	'cite_article_desc'       => 'Adds a [[Special:Cite|citation]] special page and toolbox link',
+	'cite_article_link'       => 'Cite this page',
+	'tooltip-cite-article'    => 'Information on how to cite this page',
+	'accesskey-cite-article'  => '', # Do not translate this
+	'cite'                    => 'Cite',
+	'cite_page'               => 'Page:',
+	'cite_submit'             => 'Cite',
+	'cite_text'               => '', # Do not translate this
 );
 
 /** Message documentation (Message documentation)
  * @author Jon Harald Søby
+ * @author Lloffiwr
  * @author Siebrand
+ * @author Tgr
+ * @author Umherirrender
  */
 $messages['qqq'] = array(
-	'cite_article_desc' => 'Extension description for cite. Do not translate or change links, and tag names.',
+	'cite_article_desc' => '{{desc}}',
+	'cite_article_link' => 'Text of link in toolbox',
+	'tooltip-cite-article' => 'Tooltip',
 	'cite' => '{{Identical|Cite}}',
 	'cite_page' => '{{Identical|Page}}',
 	'cite_submit' => '{{Identical|Cite}}',
@@ -43,14 +51,11 @@
 	'cite_article_link' => 'Fakakite e tala nei',
 );
 
-/** Veps (Vepsan kel')
- * @author Triple-ADHD-AS
- * @author Игорь Бродский
+/** Achinese (Acèh)
+ * @author Si Gam Acèh
  */
-$messages['vep'] = array(
-	'cite' => 'Citiruind',
-	'cite_page' => 'Lehtpol’:',
-	'cite_submit' => 'Citiruida',
+$messages['ace'] = array(
+	'cite_article_link' => 'Cok ôn nyoë',
 );
 
 /** Afrikaans (Afrikaans)
@@ -60,6 +65,7 @@
 $messages['af'] = array(
 	'cite_article_desc' => "Maak 'n [[Special:Cite|spesiale bladsy vir sitasie]], en 'n skakel daarna in hulpmiddels beskikbaar",
 	'cite_article_link' => 'Haal dié blad aan',
+	'tooltip-cite-article' => 'Inligting oor hoe u hierdie bladsy kan citeer',
 	'cite' => 'Aanhaling',
 	'cite_page' => 'Bladsy:',
 	'cite_submit' => 'Aanhaling',
@@ -80,29 +86,49 @@
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'cite_article_desc' => 'Adibe un binclo y una pachina espezial de [[Special:Cite|zita]]',
-	'cite_article_link' => 'Zitar ista pachina',
-	'cite' => 'Zitar',
+	'cite_article_desc' => 'Adibe un vinclo y una pachina especial de [[Special:Cite|cita]]',
+	'cite_article_link' => 'Citar ista pachina',
+	'tooltip-cite-article' => 'Información de como citar ista pachina',
+	'cite' => 'Citar',
 	'cite_page' => 'Pachina:',
-	'cite_submit' => 'Zitar',
+	'cite_submit' => 'Citar',
 );
 
 /** Arabic (العربية)
  * @author Meno25
+ * @author OsamaK
  */
 $messages['ar'] = array(
 	'cite_article_desc' => 'يضيف صفحة [[Special:Cite|استشهاد]] خاصة ووصلة صندوق أدوات',
 	'cite_article_link' => 'استشهد بهذه الصفحة',
+	'tooltip-cite-article' => 'معلومات عن كيفية الاستشهاد بالصفحة',
 	'cite' => 'استشهاد',
 	'cite_page' => 'الصفحة:',
 	'cite_submit' => 'استشهاد',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'cite_article_link' => 'ܡܣܗܕ ܥܠ ܗܕܐ ܦܐܬܐ',
+	'tooltip-cite-article' => 'ܝܕ̈ܥܬܐ ܥܠ ܐܝܟܢܐ ܕܡܣܗܕ ܥܠ ܦܐܬܐ',
+	'cite' => 'ܡܣܗܕ',
+	'cite_page' => 'ܦܐܬܐ:',
+	'cite_submit' => 'ܡܣܗܕ',
+);
+
 /** Araucanian (Mapudungun)
+ * @author Kaniw
  * @author Remember the dot
  */
 $messages['arn'] = array(
-	'cite_page' => 'Pakina:',
+	'cite_article_desc' => 'Yomvmi kiñe wicu aztapvl ñi [[Special:Cite|konvmpan]] mew ka jasun kvzawpeyvm mew',
+	'cite_article_link' => 'Konvmpape faci xoy',
+	'tooltip-cite-article' => 'Cumley konvmpageay faci xoy',
+	'cite' => 'Konvmpan',
+	'cite_page' => 'Aztapvl:',
+	'cite_submit' => 'Konvmpan',
 );
 
 /** Egyptian Spoken Arabic (مصرى)
@@ -110,7 +136,7 @@
  * @author Ramsis II
  */
 $messages['arz'] = array(
-	'cite_article_desc' => 'بيضيف [[Special:Cite|استشهاد]] صفحة مخصوصة ولينك لصندوء أدوات',
+	'cite_article_desc' => 'بيضيف [[Special:Cite|مرجع]] صفحة مخصوصة ولينك لصندوء أدوات',
 	'cite_article_link' => 'استشهد بالصفحة دى',
 	'cite' => 'مرجع',
 	'cite_page' => 'الصفحه:',
@@ -119,23 +145,59 @@
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
 	'cite_article_desc' => 'Añade una páxina especial de [[Special:Cite|cites]] y un enllaz a la caxa de ferramientes',
 	'cite_article_link' => 'Citar esta páxina',
+	'tooltip-cite-article' => 'Información tocante a cómo citar esta páxina',
 	'cite' => 'Citar',
 	'cite_page' => 'Páxina:',
 	'cite_submit' => 'Citar',
 );
 
-/** Samogitian (Žemaitėška)
- * @author Hugo.arg
+/** Avaric (Авар)
+ * @author Amikeco
  */
-$messages['bat-smg'] = array(
-	'cite' => 'Citoutė',
-	'cite_page' => 'Poslapis:',
+$messages['av'] = array(
+	'cite_article_link' => 'Гьумер рехсезе',
 );
 
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ */
+$messages['az'] = array(
+	'cite' => 'Sayt',
+	'cite_page' => 'Səhifə:',
+	'cite_submit' => 'Sayt',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ * @author Haqmar
+ */
+$messages['ba'] = array(
+	'cite_article_desc' => '[[Special:Cite|Өҙөмтә яһау]] махсус битен һәм ҡоралдарҙа һылтанма өҫтәй',
+	'cite_article_link' => 'Биттән өҙөмтә яһарға',
+	'tooltip-cite-article' => 'Был битте нисек өҙөмтәләргә кәрәклеге тураһында мәғлүмәт',
+	'cite' => 'Өҙөмтәләү',
+	'cite_page' => 'Бит:',
+	'cite_submit' => 'Өҙөмтәләргә',
+);
+
+/** Bavarian (Boarisch)
+ * @author Man77
+ * @author Mucalexx
+ */
+$messages['bar'] = array(
+	'cite_article_desc' => "Ergänzd d' [[Special:Cite|Zitirhüf]]-Speziaalseiten und an Link im Werkzeigkosten",
+	'cite_article_link' => "d' Seiten zitirn",
+	'tooltip-cite-article' => 'Hihweis, wia dé Seiten zitird wern kå',
+	'cite' => 'Zitirhüf',
+	'cite_page' => 'Seiten:',
+	'cite_submit' => 'åzoang',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
@@ -157,17 +219,25 @@
 	'cite_submit' => 'Sambiton',
 );
 
-/** Belarusian (Беларуская) */
+/** Belarusian (Беларуская)
+ * @author Хомелка
+ */
 $messages['be'] = array(
-	'cite_article_link' => 'Цытаваць гэты артыкул',
+	'cite_article_desc' => 'Дадае [[Special:Cite|цытату]] адмысловых старонак і спасылку панэлі інструментаў',
+	'cite_article_link' => 'Цытаваць гэту старонку',
+	'tooltip-cite-article' => 'Інфармацыя пра тое, як цытаваць гэтую старонку',
+	'cite' => 'Спаслацца',
+	'cite_page' => 'Старонка:',
+	'cite_submit' => 'Спаслацца',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  */
 $messages['be-tarask'] = array(
 	'cite_article_desc' => 'Дадае спэцыяльную старонку [[Special:Cite|цытаваньня]] і спасылку ў інструмэнтах',
 	'cite_article_link' => 'Цытаваць гэтую старонку',
+	'tooltip-cite-article' => 'Інфармацыя пра тое, як цытатаваць гэтую старонку',
 	'cite' => 'Цытаваньне',
 	'cite_page' => 'Старонка:',
 	'cite_submit' => 'Цытаваць',
@@ -175,10 +245,12 @@
 
 /** Bulgarian (Български)
  * @author DCLXVI
+ * @author Turin
  */
 $messages['bg'] = array(
 	'cite_article_desc' => 'Добавя специална страница и препратка за [[Special:Cite|цитиране]]',
 	'cite_article_link' => 'Цитиране на страницата',
+	'tooltip-cite-article' => 'Данни за начин на цитиране на тази страница',
 	'cite' => 'Цитиране',
 	'cite_page' => 'Страница:',
 	'cite_submit' => 'Цитиране',
@@ -196,6 +268,14 @@
 	'cite_submit' => 'উদ্ধৃত করো',
 );
 
+/** Tibetan (བོད་ཡིག)
+ * @author Freeyak
+ */
+$messages['bo'] = array(
+	'cite' => '',
+	'cite_page' => 'ཤོག་ངོས།',
+);
+
 /** Bishnupria Manipuri (ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী) */
 $messages['bpy'] = array(
 	'cite_article_link' => 'নিবন্ধ এহানরে উদ্ধৃত করেদে',
@@ -206,8 +286,9 @@
  * @author Fulup
  */
 $messages['br'] = array(
-	'cite_article_desc' => 'Ouzhpennañ a ra ur bajenn zibar [[Special:Cite|arroud]] hag ul liamm er voest ostilhoù',
+	'cite_article_desc' => 'Ouzhpennañ a ra ur bajenn dibar [[Special:Cite|arroud]] hag ul liamm er voest ostilhoù',
 	'cite_article_link' => 'Menegiñ ar pennad-mañ',
+	'tooltip-cite-article' => 'Titouroù war an doare da venegiñ ar bajenn-mañ',
 	'cite' => 'Menegiñ',
 	'cite_page' => 'Pajenn :',
 	'cite_submit' => 'Menegiñ',
@@ -219,18 +300,21 @@
 $messages['bs'] = array(
 	'cite_article_desc' => 'Dodaje posebnu stranicu za [[Special:Cite|citiranje]] i link u alatnoj kutiji',
 	'cite_article_link' => 'Citiraj ovu stranicu',
+	'tooltip-cite-article' => 'Informacije kako citirati ovu stranicu',
 	'cite' => 'Citiranje',
-	'cite_page' => 'Članak:',
+	'cite_page' => 'Stranica:',
 	'cite_submit' => 'Citiraj',
 );
 
 /** Catalan (Català)
+ * @author Davidpar
  * @author SMP
  * @author Toniher
  */
 $messages['ca'] = array(
 	'cite_article_desc' => 'Afegeix un enllaç i una pàgina especial de [[Special:Cite|citació]]',
 	'cite_article_link' => 'Cita aquesta pàgina',
+	'tooltip-cite-article' => 'Informació sobre com citar aquesta pàgina.',
 	'cite' => 'Citeu',
 	'cite_page' => 'Pàgina:',
 	'cite_submit' => 'Cita',
@@ -244,6 +328,13 @@
 	'cite_submit' => 'Īng-ê̤ṳng',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'cite' => 'Далийнадош',
+);
+
 /** Cebuano (Cebuano)
  * @author Abastillas
  */
@@ -251,6 +342,17 @@
 	'cite' => 'Kutloa',
 );
 
+/** Sorani (کوردی)
+ * @author Asoxor
+ */
+$messages['ckb'] = array(
+	'cite_article_link' => 'ئەم پەڕە بکە بە ژێدەر',
+	'tooltip-cite-article' => 'زانیاری سەبارەت بە چۆنیەتیی بە ژێدەر کردنی ئەم پەڕە',
+	'cite' => 'بیکە بە ژێدەر',
+	'cite_page' => 'پەڕە:',
+	'cite_submit' => 'بیکە بە ژێدەر',
+);
+
 /** Corsican (Corsu) */
 $messages['co'] = array(
 	'cite_article_link' => 'Cità issu articulu',
@@ -262,10 +364,12 @@
  * @author Beren
  * @author Li-sung
  * @author Martin Kozák
+ * @author Mormegil
  */
 $messages['cs'] = array(
 	'cite_article_desc' => 'Přidává speciální stránku [[Special:Cite|Citace]] a odkaz v nabídce nástrojů',
 	'cite_article_link' => 'Citovat stránku',
+	'tooltip-cite-article' => 'Informace o tom, jak citovat tuto stránku',
 	'cite' => 'Citace',
 	'cite_page' => 'Článek:',
 	'cite_submit' => 'Citovat',
@@ -275,8 +379,8 @@
  * @author ОйЛ
  */
 $messages['cu'] = array(
-	'cite_article_link' => 'привєдє́ниѥ члѣ́на словє́съ',
-	'cite_page' => 'страни́ца :',
+	'cite_article_link' => 'привєдєниѥ члѣна словєсъ',
+	'cite_page' => 'страница :',
 );
 
 /** Welsh (Cymraeg)
@@ -285,6 +389,7 @@
 $messages['cy'] = array(
 	'cite_article_desc' => 'Yn ychwanegu tudalen arbennig ar gyfer [[Special:Cite|cyfeirio at erthygl]] a chyswllt bocs offer',
 	'cite_article_link' => 'Cyfeiriwch at yr erthygl hon',
+	'tooltip-cite-article' => 'Gwybodaeth ar sut i gyfeirio at y dudalen hon',
 	'cite' => 'Cyfeirio at erthygl',
 	'cite_page' => 'Tudalen:',
 	'cite_submit' => 'Cyfeirio',
@@ -293,28 +398,40 @@
 /** Danish (Dansk)
  * @author Byrial
  * @author Morten LJ
+ * @author Peter Alberti
  */
 $messages['da'] = array(
 	'cite_article_desc' => 'Tilføjer en [[Special:Cite|specialside til citering]] og en henvisning i værktøjsmenuen',
 	'cite_article_link' => 'Citér denne artikel',
+	'tooltip-cite-article' => 'Information om, hvordan man kan citere denne side',
 	'cite' => 'Citér',
 	'cite_page' => 'Side:',
 	'cite_submit' => 'Citér',
 );
 
-/** German (Deutsch) */
+/** German (Deutsch)
+ * @author Kghbln
+ */
 $messages['de'] = array(
-	'cite_article_desc' => 'Ergänzt die [[Special:Cite|Zitierhilfe]]-Spezialseite und einen Link im Kasten Werkzeuge',
+	'cite_article_desc' => 'Ergänzt eine [[Special:Cite|Spezialseite]] als Zitierhilfe sowie einen zugehörigen Link im Bereich Werkzeuge',
 	'cite_article_link' => 'Seite zitieren',
+	'tooltip-cite-article' => 'Hinweis, wie diese Seite zitiert werden kann',
 	'cite' => 'Zitierhilfe',
 	'cite_page' => 'Seite:',
-	'cite_submit' => 'anzeigen',
+	'cite_submit' => 'zitieren',
 );
 
-/** Zazaki (Zazaki) */
+/** Zazaki (Zazaki)
+ * @author Mirzali
+ * @author Xoser
+ */
 $messages['diq'] = array(
-	'cite_article_link' => 'Na pele çıme bımocne',
+	'cite_article_desc' => 'Yew pelê [[Special:Cite|citation]] u lînkê toolboxî de keno',
+	'cite_article_link' => 'Na pele çime bimocne',
+	'tooltip-cite-article' => 'Melumato ke ena pele çıtewr iqtıbas keno',
 	'cite' => 'Çıme bımocne',
+	'cite_page' => 'Pel:',
+	'cite_submit' => 'Çime',
 );
 
 /** Lower Sorbian (Dolnoserbski)
@@ -323,6 +440,7 @@
 $messages['dsb'] = array(
 	'cite_article_desc' => 'Pśidawa specialny bok [[Special:Cite|Citěrowańska pomoc]] a link w kašćiku źěłowe rědy',
 	'cite_article_link' => 'Toś ten bok citěrowaś',
+	'tooltip-cite-article' => 'Informacije wó tom, kak toś ten bok dajo se citěrowaś',
 	'cite' => 'Citěrowańska pomoc',
 	'cite_page' => 'Bok:',
 	'cite_submit' => 'pokazaś',
@@ -340,24 +458,28 @@
 $messages['el'] = array(
 	'cite_article_desc' => 'Προσθέτει μία ειδική σελίδα [[Special:Cite|παραθέσεων]] καί έναν σύνδεσμο προς την εργαλειοθήκη',
 	'cite_article_link' => 'Αναφέρεται αυτή τη σελίδα',
+	'tooltip-cite-article' => 'Πληροφορίες για το πως να παραπέμψετε σε αυτήν την σελίδα',
 	'cite' => 'Αναφορά',
 	'cite_page' => 'Σελίδα:',
 	'cite_submit' => 'Προσθήκη παραθέσεων',
 );
 
 /** Esperanto (Esperanto)
+ * @author Michawiki
  * @author Tlustulimu
  * @author Yekrats
  */
 $messages['eo'] = array(
 	'cite_article_desc' => 'Aldonas specialan paĝon por [[Special:Cite|citado]] kaj ligilo al ilaro',
 	'cite_article_link' => 'Citi ĉi tiun paĝon',
+	'tooltip-cite-article' => 'Informoj pri tio, kiel oni citu ĉi tiun paĝon',
 	'cite' => 'Citado',
 	'cite_page' => 'Paĝo:',
 	'cite_submit' => 'Citi',
 );
 
 /** Spanish (Español)
+ * @author Crazymadlover
  * @author Icvav
  * @author Jatrobat
  * @author Muro de Aguas
@@ -366,27 +488,34 @@
 $messages['es'] = array(
 	'cite_article_desc' => 'Añade una página especial para [[Special:Cite|citar la página]] y un enlace en la caja de herramientas.',
 	'cite_article_link' => 'Citar este artículo',
+	'tooltip-cite-article' => 'Información de como citar esta página',
 	'cite' => 'Citar',
 	'cite_page' => 'Página:',
 	'cite_submit' => 'Citar',
 );
 
 /** Estonian (Eesti)
+ * @author Pikne
  * @author WikedKentaur
  */
 $messages['et'] = array(
+	'cite_article_desc' => 'Lisab [[Special:Cite|tsiteerimise]] erilehekülje ja lingi külgmenüü tööriistakasti.',
 	'cite_article_link' => 'Tsiteeri seda artiklit',
-	'cite' => 'Tsiteeri',
+	'tooltip-cite-article' => 'Teave tsiteerimisviiside kohta',
+	'cite' => 'Tsiteerimine',
 	'cite_page' => 'Leht:',
 	'cite_submit' => 'Tsiteeri',
 );
 
 /** Basque (Euskara)
+ * @author An13sa
  * @author Theklan
+ * @author Xabier Armendaritz
  */
 $messages['eu'] = array(
 	'cite_article_desc' => '[[Special:Cite|Aipatu]] orrialde berezia gehitzen du tresna-kutxaren loturetan',
 	'cite_article_link' => 'Orrialde hau aipatu',
+	'tooltip-cite-article' => 'Orri honen aipua egiteko moduari buruzko informazioa',
 	'cite' => 'Aipamenak',
 	'cite_page' => 'Orrialdea:',
 	'cite_submit' => 'Aipatu',
@@ -404,10 +533,12 @@
 
 /** Persian (فارسی)
  * @author Huji
+ * @author Wayiran
  */
 $messages['fa'] = array(
 	'cite_article_desc' => 'صفحهٔ ویژه‌ای برای [[Special:Cite|یادکرد]] اضافه می‌کند و پیوندی به جعبه ابزار می‌افزاید',
 	'cite_article_link' => 'یادکرد پیوند این مقاله',
+	'tooltip-cite-article' => 'اطلاعات در خصوص چگونگی یادکرد این صفحه',
 	'cite' => 'یادکرد این مقاله',
 	'cite_page' => 'صفحه:',
 	'cite_submit' => 'یادکرد',
@@ -415,10 +546,12 @@
 
 /** Finnish (Suomi)
  * @author Nike
+ * @author ZeiP
  */
 $messages['fi'] = array(
 	'cite_article_desc' => 'Lisää työkaluihin toimintosivun, joka neuvoo [[Special:Cite|viittaamaan]] oikeaoppisesti.',
 	'cite_article_link' => 'Viitetiedot',
+	'tooltip-cite-article' => 'Tietoa tämän sivun lainaamisesta',
 	'cite' => 'Viitetiedot',
 	'cite_page' => 'Sivu:',
 	'cite_submit' => 'Viittaa',
@@ -430,10 +563,11 @@
 );
 
 /** Faroese (Føroyskt)
+ * @author Diupwijk
  * @author Spacebirdy
  */
 $messages['fo'] = array(
-	'cite_article_link' => 'Sitera hesa greinina',
+	'cite_article_link' => 'Sitera hesa síðuna',
 	'cite' => 'Sitera',
 	'cite_page' => 'Síða:',
 	'cite_submit' => 'Sitera',
@@ -442,11 +576,13 @@
 /** French (Français)
  * @author Grondin
  * @author Hégésippe Cormier
+ * @author PieRRoMaN
  * @author Urhixidur
  */
 $messages['fr'] = array(
 	'cite_article_desc' => 'Ajoute une page spéciale [[Special:Cite|citation]] et un lien dans la boîte à outils',
 	'cite_article_link' => 'Citer cette page',
+	'tooltip-cite-article' => 'Informations sur comment citer cette page',
 	'cite' => 'Citation',
 	'cite_page' => 'Page :',
 	'cite_submit' => 'Citer',
@@ -458,6 +594,7 @@
 $messages['frp'] = array(
 	'cite_article_desc' => 'Apond una pâge spèciâla [[Special:Cite|citacion]] et un lim dens la bouèta d’outils.',
 	'cite_article_link' => 'Citar ceta pâge',
+	'tooltip-cite-article' => 'Enformacions sur coment citar ceta pâge',
 	'cite' => 'Citacion',
 	'cite_page' => 'Pâge :',
 	'cite_submit' => 'Citar',
@@ -475,9 +612,11 @@
 );
 
 /** Western Frisian (Frysk)
+ * @author SK-luuut
  * @author Snakesteuben
  */
 $messages['fy'] = array(
+	'cite_article_desc' => 'Foeget in [[Special:Cite|spesjale side]] om te sitearjen, lykas in ferwizing nei de helpmiddels, ta.',
 	'cite_article_link' => 'Sitearje dizze side',
 	'cite' => 'Sitearje',
 	'cite_page' => 'Side:',
@@ -502,6 +641,7 @@
 $messages['gl'] = array(
 	'cite_article_desc' => 'Engade unha páxina especial de [[Special:Cite|citas]] e unha ligazón na caixa de ferramentas',
 	'cite_article_link' => 'Citar esta páxina',
+	'tooltip-cite-article' => 'Información sobre como citar esta páxina',
 	'cite' => 'Citar un artigo',
 	'cite_page' => 'Páxina:',
 	'cite_submit' => 'Citar',
@@ -527,26 +667,40 @@
 $messages['gsw'] = array(
 	'cite_article_desc' => 'Ergänzt d [[Special:Cite|Zitierhilf]]-Spezialsyte un e Gleich im Chaschte Wärchzyyg',
 	'cite_article_link' => 'Die Site zitiere',
+	'tooltip-cite-article' => 'Informatione driber, wie mer die Syte cha zitiere',
 	'cite' => 'Zitierhilf',
 	'cite_page' => 'Syte:',
 	'cite_submit' => 'aazeige',
 );
 
-/** Gujarati (ગુજરાતી) */
+/** Gujarati (ગુજરાતી)
+ * @author KartikMistry
+ * @author Sushant savla
+ */
 $messages['gu'] = array(
+	'cite_article_link' => 'આ પાનું ટાંકો',
+	'tooltip-cite-article' => 'આ પાનાંને સમર્થન કઈ રીતે આપવું તેની માહિતી',
+	'cite' => 'ટાંકો',
 	'cite_page' => 'પાનું:',
+	'cite_submit' => 'ટાંકો',
 );
 
 /** Manx (Gaelg)
  * @author MacTire02
  */
 $messages['gv'] = array(
+	'cite_article_desc' => 'Cur duillag [[Special:Cite|symney]] er lheh as kiangley kishtey greie',
 	'cite_article_link' => 'Symney yn duillag shoh',
 	'cite' => 'Symney',
 	'cite_page' => 'Duillag:',
 	'cite_submit' => 'Symney',
 );
 
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'cite_page' => 'Shafi:',
+);
+
 /** Hawaiian (Hawai`i)
  * @author Singularity
  */
@@ -561,17 +715,20 @@
 $messages['he'] = array(
 	'cite_article_desc' => 'הוספת דף מיוחד וקישור בתיבת הכלים ל[[Special:Cite|ציטוט]]',
 	'cite_article_link' => 'ציטוט דף זה',
+	'tooltip-cite-article' => 'מידע כיצד לצטט דף זה',
 	'cite' => 'ציטוט',
 	'cite_page' => 'דף:',
 	'cite_submit' => 'ציטוט',
 );
 
 /** Hindi (हिन्दी)
+ * @author Ansumang
  * @author Kaustubh
  */
 $messages['hi'] = array(
 	'cite_article_desc' => 'एक विशेष [[Special:Cite|बाह्यकड़ियां]] देनेवाला पन्ना और टूलबॉक्सका लिंक बनाईयें',
 	'cite_article_link' => 'इस पन्ने को उद्घृत करें',
+	'tooltip-cite-article' => 'तथ्य कैसे इस पृष्ठ में संदर्भ जोड़ें',
 	'cite' => 'उद्घॄत करें',
 	'cite_page' => 'पन्ना:',
 	'cite_submit' => 'उद्घृत करें',
@@ -586,11 +743,13 @@
 
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
+ * @author Excaliboor
  * @author SpeedyGonsales
  */
 $messages['hr'] = array(
 	'cite_article_desc' => 'Dodaje posebnu stranicu za [[Special:Cite|citiranje]] i link u okvir za alate',
 	'cite_article_link' => 'Citiraj ovaj članak',
+	'tooltip-cite-article' => 'Informacije o tome kako citirati ovu stranicu',
 	'cite' => 'Citiranje',
 	'cite_page' => 'Stranica:',
 	'cite_submit' => 'Citiraj',
@@ -602,6 +761,7 @@
 $messages['hsb'] = array(
 	'cite_article_desc' => 'Přidawa specialnu stronu [[Special:Cite|Citowanska pomoc]] a wotkaz w gratowym kašćiku',
 	'cite_article_link' => 'Nastawk citować',
+	'tooltip-cite-article' => 'Informacije wo tym, kak tuta strona hodźi so citować',
 	'cite' => 'Citowanska pomoc',
 	'cite_page' => 'Strona:',
 	'cite_submit' => 'pokazać',
@@ -620,13 +780,16 @@
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Glanthor Reviol
+ * @author Tgr
  */
 $messages['hu'] = array(
-	'cite_article_desc' => '[[Special:Cite|Irodalomjegyzék-bejegyzés készítése]] speciális lap és hivatkozás az eszközdobozba',
-	'cite_article_link' => 'A lap idézése',
-	'cite' => 'Irodalomjegyzék-bejegyzés készítése',
-	'cite_page' => 'Idézendő lap:',
-	'cite_submit' => 'Bejegyzés elkészítése',
+	'cite_article_desc' => '[[Special:Cite|Hivatkozás-készítő]] speciális lap és link az eszközdobozba',
+	'cite_article_link' => 'Hogyan hivatkozz erre a lapra',
+	'tooltip-cite-article' => 'Információk a lap idézésével kapcsolatban',
+	'cite' => 'Hivatkozás',
+	'cite_page' => 'Lap neve:',
+	'cite_submit' => 'Mehet',
 );
 
 /** Armenian (Հայերեն)
@@ -646,17 +809,20 @@
 $messages['ia'] = array(
 	'cite_article_desc' => 'Adde un pagina special de [[Special:Cite|citation]] e un ligamine verso le instrumentario',
 	'cite_article_link' => 'Citar iste pagina',
+	'tooltip-cite-article' => 'Informationes super como citar iste pagina',
 	'cite' => 'Citation',
 	'cite_page' => 'Pagina:',
 	'cite_submit' => 'Citar',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
  * @author IvanLanin
  */
 $messages['id'] = array(
 	'cite_article_desc' => 'Menambahkan halaman istimewa [[Special:Cite|kutipan]] dan pranala pada kotak peralatan',
-	'cite_article_link' => 'Kutip artikel ini',
+	'cite_article_link' => 'Kutip halaman ini',
+	'tooltip-cite-article' => 'Informasi tentang bagaimana mengutip halaman ini',
 	'cite' => 'Kutip',
 	'cite_page' => 'Halaman:',
 	'cite_submit' => 'Kutip',
@@ -669,12 +835,28 @@
 	'cite_page' => 'Págine:',
 );
 
-/** Iloko (Ilokano) */
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'cite_article_desc' => 'Nè tí [[Special:Cite|ndéputà]] ihü kárírí na jikodo ngwa ọru',
+	'cite_article_link' => 'Députà ihüa',
+	'tooltip-cite-article' => 'Ùmà màkà otụ ha shi députà ihe na ihüa',
+	'cite' => 'Ndéputà',
+	'cite_page' => 'Ihü:',
+	'cite_submit' => 'Ndéputà',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
 $messages['ilo'] = array(
-	'cite_article_link' => 'Dakamaten ti articulo',
+	'cite_article_desc' => 'Nayunan na ti [[Special:Cite|dakamat]] ti naipangpangruna a panid ken panilpo iti ramramit',
+	'cite_article_link' => 'Dakamaten daytoy a panid',
+	'tooltip-cite-article' => 'Pakaammo no kasanu ti pinagdakamat daytoy a panid',
 	'cite' => 'Dakamaten',
 	'cite_page' => 'Panid:',
-	'cite_submit' => 'Idakamat',
+	'cite_submit' => 'Dakamaten',
 );
 
 /** Ido (Ido)
@@ -700,11 +882,13 @@
 );
 
 /** Italian (Italiano)
+ * @author Beta16
  * @author BrokenArrow
  */
 $messages['it'] = array(
 	'cite_article_desc' => 'Aggiunge una pagina speciale per le [[Special:Cite|citazioni]] e un collegamento negli strumenti',
 	'cite_article_link' => 'Cita questa pagina',
+	'tooltip-cite-article' => 'Informazioni su come citare questa pagina',
 	'cite' => 'Citazione',
 	'cite_page' => 'Pagina da citare:',
 	'cite_submit' => 'Crea la citazione',
@@ -719,9 +903,10 @@
 $messages['ja'] = array(
 	'cite_article_desc' => '[[Special:Cite|引用情報のための特別ページ]]とツールボックスからのリンクを追加する',
 	'cite_article_link' => 'この項目を引用する',
-	'cite' => '{{SITENAME}}の項目を引用する',
+	'tooltip-cite-article' => 'このページの引用の仕方',
+	'cite' => '引用',
 	'cite_page' => 'ページ:',
-	'cite_submit' => '引用する',
+	'cite_submit' => '引用',
 );
 
 /** Jutish (Jysk)
@@ -746,11 +931,17 @@
 );
 
 /** Georgian (ქართული)
+ * @author BRUTE
  * @author Malafaya
+ * @author გიორგიმელა
  */
 $messages['ka'] = array(
+	'cite_article_desc' => 'ამატებს [[Special:Cite|ციტირების]] სპეციალურ გვერდს ხელსაწყოებში',
 	'cite_article_link' => 'ამ გვერდის ციტირება',
+	'tooltip-cite-article' => 'ინფორმაცია ამ გვერდის ციტირების შესახებ',
+	'cite' => 'ციტირება',
 	'cite_page' => 'გვერდი:',
+	'cite_submit' => 'ციტირება',
 );
 
 /** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
@@ -761,7 +952,7 @@
 	'cite_submit' => 'دايەكسوز ال!',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'cite_article_link' => 'Беттен дәйексоз алу',
 	'cite' => 'Дәйексөз алу',
@@ -769,7 +960,7 @@
 	'cite_submit' => 'Дәйексөз ал!',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'cite_article_link' => 'Betten däýeksoz alw',
 	'cite' => 'Däýeksöz alw',
@@ -777,6 +968,13 @@
 	'cite_submit' => 'Däýeksöz al!',
 );
 
+/** Kalaallisut (Kalaallisut)
+ * @author Qaqqalik
+ */
+$messages['kl'] = array(
+	'cite_article_link' => 'Una qupperneq issuaruk',
+);
+
 /** Khmer (ភាសាខ្មែរ)
  * @author Chhorran
  * @author Lovekhmer
@@ -787,24 +985,36 @@
 );
 
 /** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
  * @author Shushruth
  */
 $messages['kn'] = array(
 	'cite_article_link' => 'ಈ ಪುಟವನ್ನು ಉಲ್ಲೇಖಿಸಿ',
 	'cite' => 'ಉಲ್ಲೇಖಿಸಿ',
+	'cite_page' => 'ಪುಟ:',
 );
 
 /** Korean (한국어)
+ * @author Kwj2772
  * @author ToePeu
  */
 $messages['ko'] = array(
 	'cite_article_desc' => '[[Special:Cite|인용]] 특수문서와 도구상자 고리를 더함',
 	'cite_article_link' => '이 문서 인용하기',
+	'tooltip-cite-article' => '이 문서를 인용하는 방법에 대한 정보',
 	'cite' => '인용',
 	'cite_page' => '문서:',
 	'cite_submit' => '인용',
 );
 
+/** Karachay-Balkar (Къарачай-Малкъар)
+ * @author Iltever
+ */
+$messages['krc'] = array(
+	'cite_article_link' => 'Бетни цитата эт',
+	'cite' => 'Цитата этиу',
+);
+
 /** Kinaray-a (Kinaray-a)
  * @author Jose77
  */
@@ -812,29 +1022,41 @@
 	'cite_page' => 'Pahina:',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
 	'cite_article_desc' => 'Brenk de Sondersigg „[[Special:Cite|Ziteere]]“ un ene Link onger „{{int:toolbox}}“.',
 	'cite_article_link' => 'Di Sigk Zitteere',
+	'tooltip-cite-article' => 'Enfommazjuhne doh drövver, wi mer heh di Sigg zitteere sullt.',
 	'cite' => 'Zittiere',
 	'cite_page' => 'Sigk:',
 	'cite_submit' => 'Zittėere',
 );
 
-/** Cornish (Kernewek)
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'cite_page' => 'Rûpel:',
+);
+
+/** Cornish (Kernowek)
+ * @author Kernoweger
  * @author Kw-Moon
  */
 $messages['kw'] = array(
-	'cite_article_link' => 'Devynna an erthygel ma',
+	'cite_article_link' => 'Devydna an erthygel-ma',
+	'cite' => 'Devydna',
 );
 
 /** Latin (Latina)
+ * @author MissPetticoats
  * @author SPQRobin
  * @author UV
  */
 $messages['la'] = array(
+	'cite_article_desc' => ' Addet [[Special:Cite|citation]] specialem paginam et arcam instrumenti',
 	'cite_article_link' => 'Hanc paginam citare',
 	'cite' => 'Paginam citare',
 	'cite_page' => 'Pagina:',
@@ -848,6 +1070,7 @@
 $messages['lb'] = array(
 	'cite_article_desc' => "Setzt eng [[Special:Cite|Zitatioun op dëser Spezialsäit]] bäi an e Link an d'Geschiirkëscht",
 	'cite_article_link' => 'Dës Säit zitéieren',
+	'tooltip-cite-article' => 'Informatioune wéi een dës Säit zitéiere kann',
 	'cite' => 'Zitéierhëllef',
 	'cite_page' => 'Säit:',
 	'cite_submit' => 'weisen',
@@ -860,6 +1083,17 @@
 	'cite_page' => 'Paje:',
 );
 
+/** Ganda (Luganda)
+ * @author Kizito
+ */
+$messages['lg'] = array(
+	'cite_article_link' => 'Juliza olupapula luno',
+	'tooltip-cite-article' => "Amagezi agakwata ku ngeri ey'okujuliz'olupapula luno",
+	'cite' => 'Juliza',
+	'cite_page' => 'Lupapula:',
+	'cite_submit' => 'Kakasa okujuliza',
+);
+
 /** Limburgish (Limburgs)
  * @author Ooswesthoesbes
  * @author Pahles
@@ -867,14 +1101,17 @@
 $messages['li'] = array(
 	'cite_article_desc' => "Voog 'n [[Special:Cite|speciaal pagina óm te citere]] toe en 'ne link derhaer in de gereidsjapskis",
 	'cite_article_link' => 'Citeer dees pagina',
+	'tooltip-cite-article' => 'Informatie euver wie se dees pazjena kins citere',
 	'cite' => 'Citere',
 	'cite_page' => 'Pagina:',
 	'cite_submit' => 'Citere',
 );
 
-/** Lumbaart (Lumbaart) */
+/** Lumbaart (Lumbaart)
+ * @author Dakrismeno
+ */
 $messages['lmo'] = array(
-	'cite_article_link' => 'Cita questa vus',
+	'cite_article_link' => 'Cita quela vus chì',
 	'cite' => 'Cita una vus',
 );
 
@@ -889,7 +1126,9 @@
  * @author Garas
  */
 $messages['lt'] = array(
+	'cite_article_desc' => 'Prideda [[Special:Cite|citavimo]] specialųjį puslapį ir įrankių juostos nuorodą',
 	'cite_article_link' => 'Cituoti šį puslapį',
+	'tooltip-cite-article' => 'Informacija kaip cituoti šį puslapį',
 	'cite' => 'Cituoti',
 	'cite_page' => 'Puslapis:',
 	'cite_submit' => 'Cituoti',
@@ -905,7 +1144,7 @@
 	'cite_submit' => 'Parādīt atsauci',
 );
 
-/** Classical Chinese (文言) */
+/** Literary Chinese (文言) */
 $messages['lzh'] = array(
 	'cite_article_link' => '引文',
 	'cite' => '引文',
@@ -919,61 +1158,85 @@
 );
 
 /** Macedonian (Македонски)
+ * @author Bjankuloski06
  * @author Brest
  * @author Misos
  */
 $messages['mk'] = array(
-	'cite_article_desc' => 'Додава специјална страница за [[Special:Cite|цитирање]] и врска кон алатникот.',
-	'cite_article_link' => 'Цитирање на оваа страница',
+	'cite_article_desc' => 'Додава специјална страница за [[Special:Cite|цитирање]] и врска кон алатникот',
+	'cite_article_link' => 'Цитирање на страницава',
+	'tooltip-cite-article' => 'Информации како да ја цитирате оваа страница',
 	'cite' => 'Цитат',
 	'cite_page' => 'Страница:',
 	'cite_submit' => 'Цитат',
 );
 
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'cite_article_desc' => '[[Special:Cite|സൈറ്റേഷന്‍]] എന്ന പ്രത്യേക താളും, പണി സഞ്ചി  കണ്ണിയും ചേര്‍ക്കുന്നു',
-	'cite_article_link' => 'ഈ താള്‍ ഉദ്ധരിക്കുക',
+	'cite_article_desc' => '[[Special:Cite|സൈറ്റേഷൻ]] എന്ന പ്രത്യേക താളും, പണി സഞ്ചി  കണ്ണിയും ചേർക്കുന്നു',
+	'cite_article_link' => 'ഈ താൾ ഉദ്ധരിക്കുക',
+	'tooltip-cite-article' => 'ഈ താളിനെ എങ്ങനെ അവലംബിതമാക്കാം എന്ന വിവരങ്ങൾ',
 	'cite' => 'ഉദ്ധരിക്കുക',
-	'cite_page' => 'താള്‍:',
+	'cite_page' => 'താൾ:',
 	'cite_submit' => 'ഉദ്ധരിക്കുക',
 );
 
-/** Mongolian (Монгол) */
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
 $messages['mn'] = array(
 	'cite_article_link' => 'Энэ бичлэгийг эш татах',
+	'cite_page' => 'Хуудас:',
 );
 
 /** Marathi (मराठी)
  * @author Kaustubh
  * @author Mahitgar
+ * @author V.narsikar
  */
 $messages['mr'] = array(
 	'cite_article_desc' => 'एक विशेष [[Special:Cite|बाह्यदुवे]] देणारे पान व टूलबॉक्सची लिंक तयार करा',
 	'cite_article_link' => 'हे पान उधृत करा',
+	'tooltip-cite-article' => 'हे पृष्ठ बघण्यासाठीची माहिती',
 	'cite' => 'उधृत करा',
 	'cite_page' => 'पान',
 	'cite_submit' => 'उधृत करा',
 );
 
+/** Hill Mari (Кырык мары)
+ * @author Amdf
+ */
+$messages['mrj'] = array(
+	'cite_article_link' => 'Ӹлӹшташӹм цитируяш',
+);
+
 /** Malay (Bahasa Melayu)
+ * @author Aurora
  * @author Aviator
  */
 $messages['ms'] = array(
 	'cite_article_desc' => 'Menambah laman khas dan pautan kotak alatan untuk [[Special:Cite|pemetikan]]',
 	'cite_article_link' => 'Petik laman ini',
+	'tooltip-cite-article' => 'Maklumat tentang cara memetik laman ini',
 	'cite' => 'Petik',
 	'cite_page' => 'Laman:',
 	'cite_submit' => 'Petik',
 );
 
 /** Maltese (Malti)
+ * @author Chrisportelli
  * @author Giangian15
  */
 $messages['mt'] = array(
+	'cite_article_desc' => 'Iżżid paġna speċjali għaċ-[[Special:Cite|ċitazzjonijiet]] u ħolqa mal-istrumenti',
+	'cite_article_link' => 'Iċċita din il-paġna',
+	'tooltip-cite-article' => 'Informazzjoni fuq kif tiċċita din il-paġna',
+	'cite' => 'Ċitazzjoni',
 	'cite_page' => 'Paġna:',
+	'cite_submit' => 'Oħloq ċitazzjoni',
 );
 
 /** Mirandese (Mirandés)
@@ -993,11 +1256,13 @@
 
 /** Nahuatl (Nāhuatl)
  * @author Fluence
+ * @author Ricardo gs
  */
 $messages['nah'] = array(
 	'cite_article_link' => 'Tlahtoa inīn tlahcuilōltechcopa',
-	'cite' => 'Tlahtoa',
+	'cite' => 'Titēnōtzaz',
 	'cite_page' => 'Zāzanilli:',
+	'cite_submit' => 'Titēnōtzaz',
 );
 
 /** Min Nan Chinese (Bân-lâm-gú) */
@@ -1008,6 +1273,19 @@
 	'cite_submit' => 'Ín-iōng',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ * @author Nghtwlkr
+ */
+$messages['nb'] = array(
+	'cite_article_desc' => 'Legger til en [[Special:Cite|siteringsside]] og lenke i verktøy-menyen',
+	'cite_article_link' => 'Siter denne siden',
+	'tooltip-cite-article' => 'Informasjon om hvordan denne siden kan siteres',
+	'cite' => 'Siter',
+	'cite_page' => 'Side:',
+	'cite_submit' => 'Siter',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -1019,6 +1297,18 @@
 	'cite_submit' => 'Ziteren',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'cite_article_desc' => 'Zet n [[Special:Cite|spesiale pagina]] derbie um te siteren, en n verwiezing dernaor in de hulpmiddels',
+	'cite_article_link' => 'Disse pagina siteren',
+	'tooltip-cite-article' => "Informasie over ho of da'j disse pagina kunnen siteren",
+	'cite' => 'Siteerhulpe',
+	'cite_page' => 'Pagina:',
+	'cite_submit' => 'Siteren',
+);
+
 /** Nepali (नेपाली) */
 $messages['ne'] = array(
 	'cite_article_link' => 'लेख उद्दरण गर्नुहोस्',
@@ -1032,36 +1322,28 @@
  * @author Siebrand
  */
 $messages['nl'] = array(
-	'cite_article_desc' => 'Voegt een [[Special:Cite|speciale pagina om te citeren]] toe, en een link ernaar in de hulpmiddelen',
+	'cite_article_desc' => 'Voegt een [[Special:Cite|speciale pagina]] toe om te citeren, en een verwijzing ernaar in de hulpmiddelen',
 	'cite_article_link' => 'Deze pagina citeren',
+	'tooltip-cite-article' => 'Informatie over hoe u deze pagina kunt citeren',
 	'cite' => 'Citeren',
 	'cite_page' => 'Pagina:',
 	'cite_submit' => 'Citeren',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
+ * @author Gunnernett
  * @author Harald Khan
  * @author Jon Harald Søby
  */
 $messages['nn'] = array(
 	'cite_article_desc' => 'Legg til ei [[Special:Cite|siteringssida]] og lenkja i verktøy-menyen',
 	'cite_article_link' => 'Siter denne sida',
+	'tooltip-cite-article' => 'Informasjon om korleis ein siterer denne sida',
 	'cite' => 'Siter',
 	'cite_page' => 'Side:',
 	'cite_submit' => 'Siter',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'cite_article_desc' => 'Legger til en [[Special:Cite|siteringsside]] og lenke i verktøy-menyen',
-	'cite_article_link' => 'Siter denne siden',
-	'cite' => 'Siter',
-	'cite_page' => 'Side:',
-	'cite_submit' => 'Siter',
-);
-
 /** Novial (Novial)
  * @author MF-Warburg
  */
@@ -1083,12 +1365,25 @@
 $messages['oc'] = array(
 	'cite_article_desc' => "Apond una pagina especiala [[Special:Cite|citacion]] e un ligam dins la bóstia d'espleches",
 	'cite_article_link' => 'Citar aqueste article',
+	'tooltip-cite-article' => 'Informacions sus cossí citar aquesta pagina',
 	'cite' => 'Citacion',
 	'cite_page' => 'Pagina :',
 	'cite_submit' => 'Citar',
 );
 
-/** Ossetic (Иронау)
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'cite_article_desc' => 'ଏକ [[Special:Cite|ଆଧାର]] ବିଶେଷ ପୃଷ୍ଠା ଓ ଉପକରଣ ପେଡ଼ିର ଲିଙ୍କ ଯୋଡ଼ିଥାଏ',
+	'cite_article_link' => 'ଏହି ପୃଷ୍ଠାଟିରେ ପ୍ରମାଣ ଯୋଡ଼ିବେ',
+	'tooltip-cite-article' => 'ଏକ ଆଧାର ଦେବା ଉପରେ ଅଧିକ ବିବରଣୀ',
+	'cite' => 'ଆଧାର ଦେବେ',
+	'cite_page' => 'ପୃଷ୍ଠା:',
+	'cite_submit' => 'ଆଧାର ଦେବେ',
+);
+
+/** Ossetic (Ирон)
  * @author Amikeco
  */
 $messages['os'] = array(
@@ -1111,7 +1406,14 @@
 	'cite_submit' => 'Banggitan me',
 );
 
-/** Pfälzisch (Pfälzisch)
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'cite_page' => 'Blatt:',
+);
+
+/** Pälzisch (Pälzisch)
  * @author SPS
  */
 $messages['pfl'] = array(
@@ -1124,22 +1426,38 @@
  */
 $messages['pl'] = array(
 	'cite_article_desc' => 'Dodaje stronę specjalną i guzik w toolbarze edycyjnym do obsługi [[Special:Cite|cytowania]]',
-	'cite_article_link' => 'Odwołanie bibliograficzne',
-	'cite' => 'Cytowanie',
+	'cite_article_link' => 'Cytowanie tego artykułu',
+	'tooltip-cite-article' => 'Informacja o tym jak należy cytować tę stronę',
+	'cite' => 'Bibliografia',
 	'cite_page' => 'Strona:',
 	'cite_submit' => 'stwórz wpis bibliograficzny',
 );
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
-	'cite_article_link' => 'Cita sta vos-sì',
+	'cite_article_desc' => "A gionta na pàgina special [[Special:Cite|citassion]] e n'anliura dj'utiss",
+	'cite_article_link' => 'Sita sta pàgina-sì',
+	'tooltip-cite-article' => 'Anformassion ëd com sité sta pàgina-sì.',
 	'cite' => 'Citassion',
 	'cite_page' => 'Pàgina da cité:',
 	'cite_submit' => 'Pronta la citassion',
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'cite_article_desc' => 'جوڑدا اے اک [[Special:Cite|اتہ پتہ]] خاص صفہ تے اوزار ڈبہ جوڑ۔',
+	'cite_article_link' => 'ایس صفے دا اتہ پتہ دیو',
+	'tooltip-cite-article' => 'ایس صفے دا کنج اتہ پتہ دیوو دی دس۔',
+	'cite' => 'اتہ پتہ',
+	'cite_page' => 'صفہ:',
+	'cite_submit' => 'اتہ پتہ',
+);
+
 /** Pontic (Ποντιακά)
  * @author Sinopeus
  */
@@ -1151,7 +1469,8 @@
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
-	'cite_article_link' => 'د همدې ليکنې درک',
+	'cite_article_link' => 'د دې مخ درک',
+	'tooltip-cite-article' => 'د دې مخ د درک لګولو مالومات',
 	'cite' => 'درک',
 	'cite_page' => 'مخ:',
 	'cite_submit' => 'درک لګول',
@@ -1159,11 +1478,14 @@
 
 /** Portuguese (Português)
  * @author 555
+ * @author Hamilton Abreu
+ * @author Lijealso
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'cite_article_desc' => 'Adiciona uma página especial de [[Special:Cite|citação]] & ligação da caixa de ferramentas',
+	'cite_article_desc' => '[[Special:Cite|Página especial]] que produz uma citação de qualquer outra página na wiki (em vários formatos) e adiciona um link na barra de ferramentas',
 	'cite_article_link' => 'Citar esta página',
+	'tooltip-cite-article' => 'Informação sobre como citar esta página',
 	'cite' => 'Citar',
 	'cite_page' => 'Página:',
 	'cite_submit' => 'Citar',
@@ -1171,10 +1493,12 @@
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Carla404
+ * @author Giro720
  */
 $messages['pt-br'] = array(
 	'cite_article_desc' => 'Adiciona uma página especial de [[Special:Cite|citação]] e link para a caixa de ferramentas',
 	'cite_article_link' => 'Citar esta página',
+	'tooltip-cite-article' => 'Informação sobre como citar esta página',
 	'cite' => 'Citar',
 	'cite_page' => 'Página:',
 	'cite_submit' => 'Citar',
@@ -1184,13 +1508,15 @@
  * @author AlimanRuna
  */
 $messages['qu'] = array(
+	'cite_article_desc' => "[[Special:Cite|Pukyumanta willanapaq]] sapaq p'anqatam llamk'ana t'asrapi t'inkitapas yapan",
 	'cite_article_link' => 'Kay qillqamanta willay',
+	'tooltip-cite-article' => "Ima hinam kay p'anqamanta willay",
 	'cite' => 'Qillqamanta willay',
 	'cite_page' => "P'anqa:",
 	'cite_submit' => 'Qillqamanta willay',
 );
 
-/** Rhaeto-Romance (Rumantsch) */
+/** Romansh (Rumantsch) */
 $messages['rm'] = array(
 	'cite_page' => 'Pagina:',
 );
@@ -1205,52 +1531,82 @@
 );
 
 /** Romanian (Română)
+ * @author Danutz
  * @author Emily
  * @author Firilacroco
  * @author KlaudiuMihaila
  * @author Mihai
+ * @author Minisarm
+ * @author Stelistcristi
  */
 $messages['ro'] = array(
-	'cite_article_desc' => 'Adaugă o pagină specială [[Special:Cite|citare]] şi o legătură cutie unelte',
-	'cite_article_link' => 'Citează acest articol',
-	'cite' => 'Citează',
+	'cite_article_desc' => 'Adaugă o pagină specială [[Special:Cite|citare]] și o legătură cutie unelte',
+	'cite_article_link' => 'Citați acest articol',
+	'tooltip-cite-article' => 'Informații cu privire la modul de citare a acestei pagini',
+	'cite' => 'Citare',
 	'cite_page' => 'Pagină:',
-	'cite_submit' => 'Deschide informaţii',
+	'cite_submit' => 'Deschide informații',
 );
 
-/** Aromanian (Armãneashce) */
-$messages['roa-rup'] = array(
-	'cite_article_link' => 'Bagã articlu aistu ca tsitat',
-);
-
 /** Tarandíne (Tarandíne)
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
 	'cite_article_desc' => "Aggiunge 'na pàgena speciele de [[Special:Cite|citaziune]] e collegamende a scatele de le struminde",
 	'cite_article_link' => 'Cite sta pàgene',
+	'tooltip-cite-article' => "'Mbormaziune sus a cumme se cite sta pàgene",
 	'cite' => 'Cite',
 	'cite_page' => 'Pàgene:',
 	'cite_submit' => 'Cite',
 );
 
 /** Russian (Русский)
+ * @author Huuchin
  * @author Александр Сигачёв
+ * @author Ильнар
  */
 $messages['ru'] = array(
 	'cite_article_desc' => 'Добавляет служебную страницу [[Special:Cite|цитирования]] и ссылку в инструментах',
 	'cite_article_link' => 'Цитировать страницу',
+	'tooltip-cite-article' => 'Информация о том, как цитировать эту страницу',
 	'cite' => 'Цитирование',
 	'cite_page' => 'Страница:',
 	'cite_submit' => 'Процитировать',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'cite_article_desc' => 'Придасть шпеціалну сторінку [[Special:Cite|Цітації]] і одказ в понуцї інштрументів',
+	'cite_article_link' => 'Цітовати сторінку',
+	'tooltip-cite-article' => 'Інформації о тім, як цітовати тоту сторінку',
+	'cite' => 'Цітованя',
+	'cite_page' => 'Сторінка:',
+	'cite_submit' => 'Цітовати',
+);
+
+/** Aromanian (Armãneashce) */
+$messages['rup'] = array(
+	'cite_article_link' => 'Bagã articlu aistu ca tsitat',
+);
+
+/** Sanskrit (संस्कृतम्)
+ * @author Ansumang
+ */
+$messages['sa'] = array(
+	'cite' => 'उदाहरति',
+	'cite_page' => 'पृष्ठ:',
+	'cite_submit' => 'उदाहरति',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
 	'cite_article_desc' => 'Аналлаах [[Special:Cite|быһа тардыы]] сирэйин уонна үнүстүрүмүөннэргэ ыйынньык эбэн биэрэр',
 	'cite_article_link' => 'Сирэйи цитируйдааһын',
+	'tooltip-cite-article' => 'Бу сирэйи хайдах цитируйдуур туһунан',
 	'cite' => 'Цитата',
 	'cite_page' => 'Сирэй:',
 	'cite_submit' => 'Цитаата',
@@ -1272,12 +1628,22 @@
 	'cite' => 'حواليو',
 );
 
+/** Samogitian (Žemaitėška)
+ * @author Hugo.arg
+ */
+$messages['sgs'] = array(
+	'cite' => 'Citoutė',
+	'cite_page' => 'Poslapis:',
+);
+
 /** Sinhala (සිංහල)
+ * @author Budhajeewa
  * @author නන්දිමිතුරු
  */
 $messages['si'] = array(
 	'cite_article_desc' => '[[Special:Cite|උපහරණ]] විශේෂ පිටුවක් හා මෙවලම්ගොන්න සබැඳියක් එක්කරයි',
 	'cite_article_link' => 'මෙම පිටුව උපන්‍යාස කරන්න',
+	'tooltip-cite-article' => 'මෙම පිටුව උපුටා දක්වන්නේ කෙසේද යන්න පිළිබඳ තොරතුරු.',
 	'cite' => 'උපන්‍යාසය',
 	'cite_page' => 'පිටුව:',
 	'cite_submit' => 'උපන්‍යාසය',
@@ -1290,17 +1656,20 @@
 $messages['sk'] = array(
 	'cite_article_desc' => 'Pridáva špeciálnu stránku [[Special:Cite|Citovať]] a odkaz v nástrojoch',
 	'cite_article_link' => 'Citovať túto stránku',
+	'tooltip-cite-article' => 'Ako citovať túto stránku',
 	'cite' => 'Citovať',
 	'cite_page' => 'Stránka:',
 	'cite_submit' => 'Citovať',
 );
 
 /** Slovenian (Slovenščina)
+ * @author Dbc334
  * @author Smihael
  */
 $messages['sl'] = array(
 	'cite_article_desc' => 'Doda [[Special:Cite|posebno stran za navedbo vira]] in povezavo v orodno vrstico',
-	'cite_article_link' => 'Navedi to stran',
+	'cite_article_link' => 'Navedba strani',
+	'tooltip-cite-article' => 'Informacije o tem, kako navajati to stran',
 	'cite' => 'Navedi',
 	'cite_page' => 'Stran:',
 	'cite_submit' => 'Navedi',
@@ -1318,26 +1687,48 @@
 	'cite_article_link' => 'Ita cite nyaya iyi',
 );
 
-/** Albanian (Shqip) */
+/** Albanian (Shqip)
+ * @author Olsi
+ */
 $messages['sq'] = array(
+	'cite_article_desc' => 'Shton një faqe speciale [[Special:Cite|citimi]] dhe një lidhje veglash.',
 	'cite_article_link' => 'Cito artikullin',
+	'tooltip-cite-article' => 'Informacion mbi mënyrën e citimit të kësaj faqeje',
 	'cite' => 'Citate',
 	'cite_page' => 'Faqja:',
 	'cite_submit' => 'Citoje',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
  * @author Sasa Stefanovic
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
-	'cite_article_desc' => 'Додаје специјалну страну за [[Special:Cite|цитирање]] и везу ка оруђима.',
-	'cite_article_link' => 'цитирање ове стране',
+	'cite_article_desc' => 'Додаје посебну страницу за [[Special:Cite|цитирање]] и везу с алаткама',
+	'cite_article_link' => 'Цитирање странице',
+	'tooltip-cite-article' => 'Информације о томе како цитирати ову страну',
 	'cite' => 'цитат',
-	'cite_page' => 'Страна:',
+	'cite_page' => 'Страница:',
 	'cite_submit' => 'цитат',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Liangent
+ * @author Michaello
+ * @author Жељко Тодоровић
+ */
+$messages['sr-el'] = array(
+	'cite_article_desc' => 'Dodaje specijalnu stranu za [[Special:Cite|citiranje]] i vezu ka oruđima.',
+	'cite_article_link' => 'citiranje ove strane',
+	'tooltip-cite-article' => 'Informacije o tome kako citirati ovu stranu',
+	'cite' => 'citat',
+	'cite_page' => 'Stranica:',
+	'cite_submit' => 'citat',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
@@ -1355,6 +1746,7 @@
 $messages['su'] = array(
 	'cite_article_desc' => 'Nambahkeun kaca husus [[Special:Cite|cutatan]] & tumbu toolbox',
 	'cite_article_link' => 'Cutat kaca ieu',
+	'tooltip-cite-article' => 'Émbaran ngeunaan cara ngarujuk ieu kaca',
 	'cite' => 'Cutat',
 	'cite_page' => 'Kaca:',
 	'cite_submit' => 'Cutat',
@@ -1362,16 +1754,29 @@
 
 /** Swedish (Svenska)
  * @author Lejonel
+ * @author Per
  * @author Sannab
  */
 $messages['sv'] = array(
 	'cite_article_desc' => 'Lägger till en specialsida för [[Special:Cite|källhänvisning]] och en länk i verktygslådan',
 	'cite_article_link' => 'Citera denna artikel',
+	'tooltip-cite-article' => 'Information om hur denna sida kan citeras',
 	'cite' => 'Citera',
 	'cite_page' => 'Sida:',
 	'cite_submit' => 'Citera',
 );
 
+/** Swahili (Kiswahili)
+ * @author Lloffiwr
+ */
+$messages['sw'] = array(
+	'cite_article_link' => 'Taja ukurasa huu',
+	'tooltip-cite-article' => 'Taarifa juu ya njia ya kutaja ukurasa huu',
+	'cite' => 'Taja',
+	'cite_page' => 'Ukurasa:',
+	'cite_submit' => 'Taja',
+);
+
 /** Silesian (Ślůnski)
  * @author Herr Kriss
  * @author Timpul
@@ -1382,13 +1787,15 @@
 );
 
 /** Tamil (தமிழ்)
+ * @author TRYPPN
  * @author Trengarasu
  */
 $messages['ta'] = array(
 	'cite_article_desc' => 'கருவிப் பெட்டியில் [[Special:Cite|மேற்கோள்]] காடுவதற்கான இணைப்பை ஏற்படுத்துகிறது',
 	'cite_article_link' => 'இப்பக்க்த்தை மேற்கோள் காட்டு',
+	'tooltip-cite-article' => 'இப்பக்கத்தை எப்படி மேற்கோளாகக் காட்டுவது என்பது பற்றிய விவரம்',
 	'cite' => 'மேற்கோள் காட்டு',
-	'cite_page' => 'பக்கம்',
+	'cite_page' => 'பக்கம்:',
 	'cite_submit' => 'மேற்கோள் காட்டு',
 );
 
@@ -1399,6 +1806,7 @@
 $messages['te'] = array(
 	'cite_article_desc' => '[[Special:Cite|ఉదహరింపు]] అనే ప్రత్యేక పేజీని & పరికర పెట్టె లింకునీ చేరుస్తుంది',
 	'cite_article_link' => 'ఈ వ్యాసాన్ని ఉదహరించండి',
+	'tooltip-cite-article' => 'ఈ పేజీని ఎలా ఉదహరించాలి అన్నదానిపై సమాచారం',
 	'cite' => 'ఉదహరించు',
 	'cite_page' => 'పేజీ:',
 	'cite_submit' => 'ఉదహరించు',
@@ -1410,12 +1818,13 @@
 $messages['tet'] = array(
 	'cite_article_desc' => 'Kria pájina espesíal ba [[Special:Cite|sitasaun]] ho ligasaun iha kaixa besi nian',
 	'cite_article_link' => "Sita pájina ne'e",
+	'tooltip-cite-article' => "Informasaun kona-ba sita pájina ne'e",
 	'cite' => 'Sita',
 	'cite_page' => 'Pájina:',
 	'cite_submit' => 'Sita',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -1426,22 +1835,49 @@
 	'cite_submit' => 'Ёд кардан',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'cite_article_desc' => "Sahifai viƶae baroi [[Special:Cite|jodkard]] izofa mekunad va pajvande ba ça'bai abzor meafzojad",
+	'cite_article_link' => 'Jod kardani pajvandi in maqola',
+	'cite' => 'Jod kardani in maqola',
+	'cite_page' => 'Sahifa:',
+	'cite_submit' => 'Jod kardan',
+);
+
 /** Thai (ไทย)
+ * @author Octahedron80
  * @author Passawuth
  */
 $messages['th'] = array(
+	'cite_article_desc' => 'เพิ่มหน้า[[Special:Cite|อ้างอิง]]พิเศษและลิงก์บนกล่องเครื่องมือ',
 	'cite_article_link' => 'อ้างอิงหน้านี้',
+	'tooltip-cite-article' => 'ข้อมูลเกี่ยวกับวิธีการอ้างอิงหน้านี้',
 	'cite' => 'อ้างอิง',
 	'cite_page' => 'หน้า:',
 	'cite_submit' => 'อ้างอิง',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'cite_article_desc' => '[[Special:Cite|Sitirle]] ýörite sahypasyny we gural sandygy çykgydyny goşýar',
+	'cite_article_link' => 'Sahypany sitirle',
+	'tooltip-cite-article' => 'Bu sahypany nähili sitirlemelidigi hakda maglumat',
+	'cite' => 'Sitirle',
+	'cite_page' => 'Sahypa:',
+	'cite_submit' => 'Sitirle',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
 	'cite_article_desc' => 'Nagdaragdag ng isang natatanging pahinang [[Special:Cite|pampagtutukoy]] at kawing sa kahon (lalagyan) ng kagamitan',
 	'cite_article_link' => 'Tukuyin ang pahinang ito',
+	'tooltip-cite-article' => 'Kabatiran kung paano tutukuyin ang pahinang ito',
 	'cite' => 'Tukuyin',
 	'cite_page' => 'Pahina:',
 	'cite_submit' => 'Tukuyin',
@@ -1452,7 +1888,7 @@
 	'cite_article_link' => 'Nopola mokwalo o',
 );
 
-/** Tonga (faka-Tonga) */
+/** Tongan (lea faka-Tonga) */
 $messages['to'] = array(
 	'cite_article_link' => 'Lau ki he kupú ni',
 	'cite' => 'Lau ki he',
@@ -1467,6 +1903,7 @@
 $messages['tr'] = array(
 	'cite_article_desc' => '[[Special:Cite|Alıntı]] özel sayfa ve araç kutusu linkini ekler',
 	'cite_article_link' => 'Sayfayı kaynak göster',
+	'tooltip-cite-article' => 'Bu sayfanın nasıl alıntı yapılacağı hakkında bilgi',
 	'cite' => 'Kaynak göster',
 	'cite_page' => 'Sayfa:',
 	'cite_submit' => 'Belirt',
@@ -1479,6 +1916,18 @@
 	'cite_page' => 'Tluka:',
 );
 
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Ильнар
+ */
+$messages['tt-cyrl'] = array(
+	'cite_article_desc' => 'Махсус [[Special:Cite|күчермәләү]] битен һәм җиһазларга сылтамалар өсти',
+	'cite_article_link' => 'Бу битне күчермәләү',
+	'tooltip-cite-article' => 'Бу битне ничек күчермәләү турындагы мәгълүмат',
+	'cite' => 'Күчермәләү',
+	'cite_page' => 'Бит:',
+	'cite_submit' => 'Күчермәләү',
+);
+
 /** Udmurt (Удмурт)
  * @author ОйЛ
  */
@@ -1486,19 +1935,22 @@
 	'cite_article_link' => 'Кызьы со статьяез цитировать кароно',
 );
 
-/** Uighur (Latin) (Uyghurche‎ / ئۇيغۇرچە (Latin))
+/** Uyghur (Latin script) (Uyghurche‎)
  * @author Jose77
  */
 $messages['ug-latn'] = array(
+	'cite_article_link' => 'Bu maqalini ishliting',
 	'cite_page' => 'Bet:',
 );
 
 /** Ukrainian (Українська)
  * @author Ahonc
+ * @author Prima klasy4na
  */
 $messages['uk'] = array(
 	'cite_article_desc' => 'Додає спеціальну сторінку [[Special:Cite|цитування]] і посилання в інструментах',
 	'cite_article_link' => 'Цитувати сторінку',
+	'tooltip-cite-article' => 'Інформація про те, як цитувати цю сторінку',
 	'cite' => 'Цитування',
 	'cite_page' => 'Сторінка:',
 	'cite_submit' => 'Процитувати',
@@ -1517,21 +1969,36 @@
 $messages['vec'] = array(
 	'cite_article_desc' => 'Zonta na pagina speciale par le [[Special:Cite|citazion]] e un colegamento nei strumenti',
 	'cite_article_link' => 'Cita sta pagina',
+	'tooltip-cite-article' => 'Informassion su come citar sta pagina',
 	'cite' => 'Citazion',
 	'cite_page' => 'Pagina da citar:',
 	'cite_submit' => 'Crea la citazion',
 );
 
+/** Veps (Vepsän kel')
+ * @author Triple-ADHD-AS
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'cite_article_desc' => 'Ližadab [[Special:Cite|citiruindan]] specialižen lehtpolen da kosketusen azegištos',
+	'cite_article_link' => "Citiruida necidä lehtpol't",
+	'tooltip-cite-article' => "Informacii siš, kut pidab citiruida necidä lehtpol't.",
+	'cite' => 'Citiruind',
+	'cite_page' => 'Lehtpol’:',
+	'cite_submit' => 'Citiruida',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
-	'cite_article_desc' => 'Thêm trang đặc biệt để [[Special:Cite|ghi chú bài]] và đặt liên kết đến nó trong thanh công cụ',
-	'cite_article_link' => 'Chú thích trang này',
-	'cite' => 'Chú thích',
+	'cite_article_desc' => 'Thêm trang đặc biệt để [[Special:Cite|trích dẫn bài viết]] và đặt liên kết trong thanh công cụ',
+	'cite_article_link' => 'Trích dẫn trang này',
+	'tooltip-cite-article' => 'Hướng dẫn cách trích dẫn trang này',
+	'cite' => 'Trích dẫn',
 	'cite_page' => 'Trang:',
-	'cite_submit' => 'Chú thích',
+	'cite_submit' => 'Trích dẫn',
 );
 
 /** Volapük (Volapük)
@@ -1561,15 +2028,33 @@
 	'cite_submit' => '引用',
 );
 
+/** Kalmyk (Хальмг)
+ * @author Huuchin
+ */
+$messages['xal'] = array(
+	'cite_article_link' => 'Тер халхиг эшллх',
+);
+
 /** Yiddish (ייִדיש)
  * @author פוילישער
  */
 $messages['yi'] = array(
+	'cite_article_desc' => 'לייגט צו א [[Special:Cite|ציטיר]] באַזונדערן בלאַט און געצייגקאַסן לינק',
 	'cite_article_link' => 'ציטירן דעם דאזיגן בלאט',
-	'cite' => 'ציטיר',
+	'tooltip-cite-article' => 'אינפֿאָרמאַציע ווי אַזוי צו ציטירן דעם בלאַט',
+	'cite' => 'ציטירן',
+	'cite_page' => 'בלאט:',
+	'cite_submit' => 'ציטירן',
 );
 
-/** Yue (粵語) */
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'cite_page' => 'Ojúewé:',
+);
+
+/** Cantonese (粵語) */
 $messages['yue'] = array(
 	'cite_article_desc' => '加一個[[Special:Cite|引用]]特別頁同埋一個工具箱連結',
 	'cite_article_link' => '引用呢篇文',
@@ -1578,19 +2063,25 @@
 	'cite_submit' => '引用',
 );
 
-/** Simplified Chinese (‪中文(简体)‬) */
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Xiaomingyan
+ */
 $messages['zh-hans'] = array(
 	'cite_article_desc' => '增加[[Special:Cite|引用]]特殊页面以及工具箱链接',
 	'cite_article_link' => '引用此文',
-	'cite' => '引用文章',
+	'tooltip-cite-article' => '关于如何引用此页的资讯',
+	'cite' => '引用页面',
 	'cite_page' => '页面:',
 	'cite_submit' => '引用',
 );
 
-/** Traditional Chinese (‪中文(繁體)‬) */
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Frankou
+ */
 $messages['zh-hant'] = array(
 	'cite_article_desc' => '增加[[Special:Cite|引用]]特殊頁面以及工具箱連結',
 	'cite_article_link' => '引用此文',
+	'tooltip-cite-article' => '關於如何引用此頁的資訊',
 	'cite' => '引用文章',
 	'cite_page' => '頁面:',
 	'cite_submit' => '引用',

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,10 +1,11 @@
 <?php
-if (!defined('MEDIAWIKI')) die();
+if ( !defined( 'MEDIAWIKI' ) ) die();
 /**
  * A special page extension that adds a special page that generates citations
  * for pages.
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  *
  * @link http://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php Documentation
  *
@@ -14,19 +15,17 @@
  */
 
 $wgExtensionCredits['specialpage'][] = array(
+	'path' => __FILE__,
 	'name' => 'Cite',
-	'svn-date' => '$LastChangedDate: 2008-10-30 17:12:17 +0100 (Thu, 30 Oct 2008) $',
-	'svn-revision' => '$LastChangedRevision: 42818 $',
 	'author' => 'Ævar Arnfjörð Bjarmason',
-	'description' => 'adds a [[Special:Cite|citation]] special page & toolbox link', // kept for b/c
 	'descriptionmsg' => 'cite_article_desc',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php'
+	'url' => 'https://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php'
 );
 
-$dir = dirname(__FILE__) . '/';
+$dir = dirname( __FILE__ ) . '/';
 # Internationalisation file
 $wgExtensionMessagesFiles['SpecialCite'] = $dir . 'SpecialCite.i18n.php';
-$wgExtensionAliasesFiles['SpecialCite'] = $dir . 'SpecialCite.i18n.alias.php';
+$wgExtensionMessagesFiles['SpecialCiteAliases'] = $dir . 'SpecialCite.alias.php';
 
 $wgHooks['SkinTemplateBuildNavUrlsNav_urlsAfterPermalink'][] = 'wfSpecialCiteNav';
 $wgHooks['SkinTemplateToolboxEnd'][] = 'wfSpecialCiteToolbox';
@@ -34,29 +33,45 @@
 $wgSpecialPages['Cite'] = 'SpecialCite';
 $wgAutoloadClasses['SpecialCite'] = $dir . 'SpecialCite_body.php';
 
+/**
+ * @param $skintemplate SkinTemplate
+ * @param $nav_urls
+ * @param $oldid
+ * @param $revid
+ * @return bool
+ */
 function wfSpecialCiteNav( &$skintemplate, &$nav_urls, &$oldid, &$revid ) {
-	wfLoadExtensionMessages( 'SpecialCite' );
-	if ( $skintemplate->mTitle->isContentPage() && $revid !== 0 )
+	// check whether we’re in the right namespace, the $revid has the correct type and is not empty 
+	// (what would mean that the current page doesn’t exist)
+	if ( $skintemplate->getTitle()->isContentPage() && $revid !== 0 && !empty( $revid ) )
 		$nav_urls['cite'] = array(
-			'text' => wfMsg( 'cite_article_link' ),
-			'href' => $skintemplate->makeSpecialUrl( 'Cite', "page=" . wfUrlencode( "{$skintemplate->thispage}" ) . "&id=$revid" )
+			'args'   => "page=" . wfUrlencode( "{$skintemplate->thispage}" ) . "&id=$revid"
 		);
 
 	return true;
 }
 
+/**
+ * add the cite link to the toolbar
+ *
+ * @param $skin Skin
+ *
+ * @return bool
+ */
 function wfSpecialCiteToolbox( &$skin ) {
-	wfLoadExtensionMessages( 'SpecialCite' );
-	if ( isset( $skin->data['nav_urls']['cite'] ) )
-		if ( $skin->data['nav_urls']['cite']['href'] == '' ) {
-			?><li id="t-iscite"><?php echo $skin->msg( 'cite_article_link' ); ?></li><?php
-		} else {
-			?><li id="t-cite"><?php
-				?><a href="<?php echo htmlspecialchars( $skin->data['nav_urls']['cite']['href'] ) ?>"><?php
-					echo $skin->msg( 'cite_article_link' );
-				?></a><?php
-			?></li><?php
-		}
+	if ( isset( $skin->data['nav_urls']['cite'] ) ) {
+		echo Html::rawElement(
+			'li',
+			array( 'id' => 't-cite' ),
+			Linker::link(
+				SpecialPage::getTitleFor( 'Cite' ),
+				wfMsg( 'cite_article_link' ),
+				# Used message keys: 'tooltip-cite-article', 'accesskey-cite-article'
+				Linker::tooltipAndAccessKeyAttribs( 'cite-article' ),
+				$skin->data['nav_urls']['cite']['args']
+			)
+		);
+	}
 
 	return true;
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite_body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite_body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/SpecialCite_body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,21 +1,19 @@
 <?php
-if (!defined('MEDIAWIKI')) die();
+if ( !defined( 'MEDIAWIKI' ) ) die();
 
 global $wgContLang, $wgContLanguageCode, $wgCiteDefaultText;
-
 $dir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR;
 $code = $wgContLang->lc( $wgContLanguageCode );
 $file = file_exists( "${dir}cite_text-$code" ) ? "${dir}cite_text-$code" : "${dir}cite_text";
 $wgCiteDefaultText = file_get_contents( $file );
 
 class SpecialCite extends SpecialPage {
-	function SpecialCite() {
-		SpecialPage::SpecialPage( 'Cite' );
+	function __construct() {
+		parent::__construct( 'Cite' );
 	}
 
 	function execute( $par ) {
-		global $wgOut, $wgRequest, $wgUseTidy;
-		wfLoadExtensionMessages( 'SpecialCite' );
+		global $wgRequest, $wgUseTidy;
 
 		// Having tidy on causes whitespace and <pre> tags to
 		// be generated around the output of the CiteOutput
@@ -25,45 +23,42 @@
 		$this->setHeaders();
 		$this->outputHeader();
 
-		$page = isset( $par ) ? $par : $wgRequest->getText( 'page' );
-		$id = $wgRequest->getInt( 'id' );
+		$page = $par !== null ? $par : $wgRequest->getText( 'page' );
+		$title = Title::newFromText( $page );
 
-		$title = Title::newFromText( $page );
-		if ( $title ) {
-			$article = new Article( $title );
-		}
 		$cform = new CiteForm( $title );
+		$cform->execute();
 
-		if ( !$title || ! $article->exists() )
-			$cform->execute();
-		else {
-			$cform->execute();
-
-			$cout = new CiteOutput( $title, $article, $id );
+		if ( $title && $title->exists() ) {
+			$id = $wgRequest->getInt( 'id' );
+			$cout = new CiteOutput( $title, $id );
 			$cout->execute();
 		}
 	}
 }
 
 class CiteForm {
+
+	/**
+	 * @var Title
+	 */
 	var $mTitle;
 
-	function CiteForm( &$title ) {
+	function __construct( &$title ) {
 		$this->mTitle =& $title;
 	}
 
 	function execute() {
-		global $wgOut, $wgTitle;
+		global $wgOut, $wgScript;
 
 		$wgOut->addHTML(
-			Xml::element( 'form',
+			Xml::openElement( 'form',
 				array(
 					'id' => 'specialcite',
 					'method' => 'get',
-					'action' => $wgTitle->escapeLocalUrl()
-				),
-				null
-			) .
+					'action' => $wgScript
+				) ) .
+				Html::hidden( 'title', SpecialPage::getTitleFor( 'Cite' )->getPrefixedDBkey() ) .
 				Xml::openElement( 'label' ) .
 					wfMsgHtml( 'cite_page' ) . ' ' .
 					Xml::element( 'input',
@@ -91,14 +86,36 @@
 }
 
 class CiteOutput {
-	var $mTitle, $mArticle, $mId;
-	var $mParser, $mParserOptions;
 
-	function CiteOutput( &$title, &$article, $id ) {
+	/**
+	 * @var Title
+	 */
+	var $mTitle;
+
+	/**
+	 * @var Article
+	 */
+	var $mArticle;
+
+	var $mId;
+
+	/**
+	 * @var Parser
+	 */
+	var $mParser;
+
+	/**
+	 * @var ParserOptions
+	 */
+	var $mParserOptions;
+
+	var $mSpTitle;
+
+	function __construct( $title, $id ) {
 		global $wgHooks, $wgParser;
 
-		$this->mTitle =& $title;
-		$this->mArticle =& $article;
+		$this->mTitle = $title;
+		$this->mArticle = new Article( $title );
 		$this->mId = $id;
 
 		$wgHooks['ParserGetVariableValueVarCache'][] = array( $this, 'varCache' );
@@ -110,16 +127,15 @@
 	}
 
 	function execute() {
-		global $wgOut, $wgUser, $wgParser, $wgHooks, $wgCiteDefaultText;
+		global $wgOut, $wgParser, $wgHooks, $wgCiteDefaultText;
 
 		$wgHooks['ParserGetVariableValueTs'][] = array( $this, 'timestamp' );
 
 		$msg = wfMsgForContentNoTrans( 'cite_text' );
-		if( $msg == '' ) {
+		if ( $msg == '' ) {
 			$msg = $wgCiteDefaultText;
 		}
-		$this->mArticle->fetchContent( $this->mId, false );
-		$ret = $wgParser->parse( $msg, $this->mTitle, $this->mParserOptions, false, true, $this->mArticle->getRevIdFetched() );
+		$ret = $wgParser->parse( $msg, $this->mTitle, $this->mParserOptions, false, true, $this->getRevId() );
 		$wgOut->addHTML( $ret->getText() );
 	}
 
@@ -132,22 +148,32 @@
 
 	function genParser() {
 		$this->mParser = new Parser;
+		$this->mSpTitle = SpecialPage::getTitleFor( 'Cite' );
 	}
 
 	function CiteParse( $in, $argv ) {
-		global $wgTitle;
+		$ret = $this->mParser->parse( $in, $this->mSpTitle, $this->mParserOptions, false );
 
-		$ret = $this->mParser->parse( $in, $wgTitle, $this->mParserOptions, false );
-
 		return $ret->getText();
 	}
 
-	function varCache() { return false; }
+	function varCache() {
+		return false;
+	}
 
 	function timestamp( &$parser, &$ts ) {
-		if ( isset( $parser->mTagHooks['citation'] ) )
+		if ( isset( $parser->mTagHooks['citation'] ) ) {
 			$ts = wfTimestamp( TS_UNIX, $this->mArticle->getTimestamp() );
+		}
 
 		return true;
 	}
+
+	function getRevId() {
+		if ( $this->mId ) {
+			return $this->mId;
+		} else {
+			return $this->mTitle->getLatestRevID();
+		}
+	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Publisher: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Date of last revision: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Date retrieved: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Permanent URL: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Permanent URL: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Page Version ID: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == Citation styles for {{FULLPAGENAME}} ==
 
 === [[APA style]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[The MLA style manual|MLA style]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA Style Guide|MHRA style]] ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[The Chicago Manual of Style|Chicago style]] ===
-{{SITENAME}} contributors, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}} contributors, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Council of Science Editors|CBE/CSE style]] ===
 {{SITENAME}} contributors. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Available from:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Bluebook|Bluebook style]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[BibTeX]] entry ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ar
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ar	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ar	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * الناشر: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * تاريخ آخر مراجعة: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * تاريخ الاسترجاع: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* وصلة دائمة: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* وصلة دائمة: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * رقم نسخة الصفحة: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == أنماط الاستشهاد ل{{FULLPAGENAME}} ==
 
 === [[APA style|نمط APA]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[The MLA style manual|نمط MLA]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA Style Guide|نمط MHRA]] ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[The Chicago Manual of Style|نمط شيكاغو]] ===
-{{SITENAME}} contributors, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}} contributors, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Council of Science Editors|نمط CBE/CSE]] ===
 {{SITENAME}} contributors. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Available from:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Bluebook|نمط Bluebook]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === مدخلة [[BibTeX]] ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-arz
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-arz	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-arz	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * الناشر: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * تاريخ آخر مراجعة: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * تاريخ الاسترجاع: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* وصلة دائمة: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* وصلة دائمة: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * رقم نسخة الصفحة: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == أنماط الاستشهاد ل{{FULLPAGENAME}} ==
 
 === [[APA style|نمط APA]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[The MLA style manual|نمط MLA]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA Style Guide|نمط MHRA]] ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[The Chicago Manual of Style|نمط شيكاغو]] ===
-{{SITENAME}} contributors, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}} contributors, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Council of Science Editors|نمط CBE/CSE]] ===
 {{SITENAME}} contributors. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Available from:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Bluebook|نمط Bluebook]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === مدخلة [[BibTeX]] ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-de
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-de	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-de	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,23 +2,23 @@
 <div style="width:100%; padding:0px 10px 2px 10px; margin:5px auto;">
 Diese Seite dient ausschließlich als Hilfe zum '''korrekten Zitieren von Daten, einzelnen Sätzen oder kürzeren Abschnitten''' aus {{SITENAME}} im Rahmen des Zitatrechts.
 
-'''Wichtig:''' Zur Übernahme umfangreicher Absätze oder kompletter Seiten müssen die [[{{MediaWiki:copyrightpage}}|Lizenzbestimmungen]] eingehalten werden.
+'''Wichtig:''' Zur Übernahme umfangreicher Absätze oder kompletter Seiten müssen die [[{{MediaWiki:Copyrightpage}}|Lizenzbestimmungen]] eingehalten werden.
 </div>
 
 <div class="plainlinks" style="border-style: solid;  border-width: 1px; width:95%; padding:6px 10px 6px 10px; margin:5px auto;">
 == Bibliografische Angaben für „[[{{FULLPAGENAME}}]]“ ==
 * Seitentitel: {{FULLPAGENAME}}
 * Herausgeber: {{SITENAME}}, {{MediaWiki:Sitesubtitle}}. 
-* Autor(en): siehe [{{fullurl:{{FULLPAGENAME}}|action=history}} Versionsgeschichte]
+* Autor(en): siehe [{{canonicalurl:{{FULLPAGENAME}}|action=history}} Versionsgeschichte]
 * Datum der letzten Bearbeitung: {{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}, {{LOCALTIME}}
 * Versions-ID der Seite: {{REVISIONID}}
-* Permanentlink: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Permanentlink: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Datum des Abrufs: <citation>{{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}, {{LOCALTIME}}</citation>
 </div>
 
 <div class="plainlinks" style="border-style: solid;  border-width: 1px; width:95%; padding:6px 10px 6px 10px; margin:5px auto;">
 ==Zitatangabe zum Kopieren==
-Seite ''{{FULLPAGENAME}}.'' In: {{SITENAME}}, {{MediaWiki:Sitesubtitle}}. Bearbeitungsstand: {{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}, {{LOCALTIME}}. URL: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Abgerufen: <citation>{{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}, {{LOCALTIME}}</citation>)
+Seite ''{{FULLPAGENAME}}.'' In: {{SITENAME}}, {{MediaWiki:Sitesubtitle}}. Bearbeitungsstand: {{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}, {{LOCALTIME}}. URL: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Abgerufen: <citation>{{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}, {{LOCALTIME}}</citation>)
 </div>
 
 <div class="plainlinks" style="border-style: solid;  border-width: 1px; width:95%; padding:6px 10px 6px 10px; margin:5px auto;">
@@ -28,7 +28,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{MediaWiki:Sitesubtitle}}",
     year = "{{LOCALYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; Stand <citation>{{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}</citation>]"
   }
 
@@ -38,7 +38,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{MediaWiki:Sitesubtitle}}",
     year = "{{LOCALYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; Stand <citation>{{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}</citation>]"
   }
 </div><!--closing div for "plainlinks"-->

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fi
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fi	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fi	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Julkaisija: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Viimeisimmän version päivämäärä: {{CURRENTDAY}}. {{CURRENTMONTHNAME}}ta {{CURRENTYEAR}}, kello {{CURRENTTIME}} (UTC)
 * Sivu haettu: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}}ta {{CURRENTYEAR}}, kello {{CURRENTTIME}} (UTC)</citation>
-* Pysyvä osoite: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Pysyvä osoite: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Sivun version tunniste: {{REVISIONID}}
 
 </div>
@@ -17,22 +17,22 @@
 == Viittaustyylit artikkelille {{FULLPAGENAME}} ==
 
 === APA-tyyli ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}}n {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Haettu <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}}n {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> osoitteesta {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}}n {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Haettu <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}}n {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> osoitteesta {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === MLA-tyyli ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === MHRA-tyyli ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}}ta {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [haettu <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}}ta {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}}ta {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [haettu <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}}ta {{CURRENTYEAR}}</citation>]
 
 === Chicago-tyyli ===
-{{SITENAME}}-projektin osanottajat, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (haettu <citation>{{CURRENTMONTHNAME}}n {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}}-projektin osanottajat, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (haettu <citation>{{CURRENTMONTHNAME}}n {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === CBE/CSE-tyyli ===
-{{SITENAME}}-projektin osanottajat. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Saatavilla osoitteesta: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{SITENAME}}-projektin osanottajat. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Saatavilla osoitteesta: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === Bluebook-tyyli ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (vierailtu viimeksi <citation>{{CURRENTMONTHNAME}}n {{CURRENTDAY}}., {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (vierailtu viimeksi <citation>{{CURRENTMONTHNAME}}n {{CURRENTDAY}}., {{CURRENTYEAR}}</citation>).
 
 === BibTeX-muoto ===
 
@@ -40,7 +40,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; haettu <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -50,7 +50,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; haettu <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fr
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fr	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-fr	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Éditeur : ''{{SITENAME}}, {{int:sitesubtitle}}''. 
 * Dernière modification : {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Récupéré : <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* URL permanente : {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* URL permanente : {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Identifiant de cette version : {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == Styles de citations pour {{FULLPAGENAME}} ==
 
 === [[Style APA]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Style MLA]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[Style MHRA]] ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[Style Chicago]] ===
-{{SITENAME}} contributors, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}} contributors, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Style CBE/CSE]] ===
 {{SITENAME}} contributors. {{FULLPAGENAME}} [Internet].  {{SITENAME}}, {{int:sitesubtitle}};  {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}},   {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>].  Available from: 
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Style Bluebook]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited   <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited   <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === Entrée [[BibTeX]] ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-he
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-he	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-he	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * מוציא לאור: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * תאריך השינוי האחרון: {{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * תאריך האחזור: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* קישור קבוע: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* קישור קבוע: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * קוד זיהוי גרסה: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == סגנונות ציטוט עבור {{FULLPAGENAME}} ==
 
 === [[APA style]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. אוחזר <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> מתוך {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. אוחזר <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> מתוך {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[The MLA style manual|MLA style]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA Style Guide|MHRA style]] ===
-תורמי {{SITENAME}}, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [אוחזר <citation>{{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTYEAR}}</citation>]
+תורמי {{SITENAME}}, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [אוחזר <citation>{{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTYEAR}}</citation>]
 
 === [[The Chicago Manual of Style|Chicago style]] ===
-תורמי {{SITENAME}}, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (אוחזר <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+תורמי {{SITENAME}}, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (אוחזר <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Council of Science Editors|CBE/CSE style]] ===
 תורמי {{SITENAME}}. {{FULLPAGENAME}} [אינטרנט]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [צוטט <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. זמין ב:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Bluebook|Bluebook style]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (ביקור אחרון <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (ביקור אחרון <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === ערך [[BibTeX]] ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[מקוון; אוחזר <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[מקוון; אוחזר <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-hu
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-hu	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-hu	2012-06-29 14:46:19 UTC (rev 343)
@@ -14,7 +14,7 @@
 * Kiadó: ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}}''. 
 * A legutóbbi változat dátuma: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Letöltés dátuma: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Állandó hivatkozás: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Állandó hivatkozás: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Lapváltozat-azonosító: {{REVISIONID}}
 
 Légy szíves, ellenőrizd, hogy ezek az adatok megfelelnek-e a kívánalmaidnak.  További információhoz lásd az '''[[{{ns:project}}:Idézés a Wikipédiából|Idézés a Wikipédiából]]''' lapot.
@@ -25,23 +25,23 @@
 == Idézési stílusok a(z) {{FULLPAGENAME}} laphoz ==
 
 === APA stílus ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}}''. Retrieved <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}. {{CURRENTTIME}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}}''. Retrieved <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}. {{CURRENTTIME}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === MLA stílus ===
-\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}}''. {{CURRENTYEAR}}. {{CURRENTMONTHABBREV}}. {{CURRENTDAY}}. {{CURRENTTIME}} UTC. <citation>{{CURRENTYEAR}}. {{CURRENTMONTHABBREV}}. {{CURRENTDAY}}. {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}}''. {{CURRENTYEAR}}. {{CURRENTMONTHABBREV}}. {{CURRENTDAY}}. {{CURRENTTIME}} UTC. <citation>{{CURRENTYEAR}}. {{CURRENTMONTHABBREV}}. {{CURRENTDAY}}. {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === MHRA stílus ===
-Wiki szerkesztők, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}},'' {{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}. {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}.</citation>]
+Wiki szerkesztők, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}},'' {{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}. {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}.</citation>]
 
 === Chicago stílus ===
-Wiki szerkesztők, \"{{FULLPAGENAME}},\"  ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}.</citation>).
+Wiki szerkesztők, \"{{FULLPAGENAME}},\"  ''{{SITENAME}}, {{MediaWiki:Sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}.</citation>).
 
 === CBE/CSE stílus ===
 wiki szerkesztők. {{FULLPAGENAME}} [Internet].  {{SITENAME}}, {{MediaWiki:Sitesubtitle}};  {{CURRENTYEAR}}. {{CURRENTMONTHABBREV}}. {{CURRENTDAY}}.  {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}}. {{CURRENTMONTHABBREV}}. {{CURRENTDAY}}.</citation>].  Elérhető: 
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === Bluebook stílus ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}.</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTYEAR}}. {{CURRENTMONTHNAME}} {{CURRENTDAY}}.</citation>).
 
 === [[BibTeX]] bejegyzés ===
 
@@ -49,7 +49,7 @@
     author = \"{{SITENAME}}\",
     title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{MediaWiki:Sitesubtitle}}\",
     year = \"{{CURRENTYEAR}}\",
-    url = \"{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",
+    url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",
     note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"
   }
 
@@ -59,7 +59,7 @@
     author = \"{{SITENAME}}\",
     title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{MediaWiki:Sitesubtitle}}\",
     year = \"{{CURRENTYEAR}}\",
-    url = \"'''\\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",
+    url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",
     note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-id
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-id	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-id	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Penerbit: ''{{SITENAME}}, {{int:sitesubtitle}}''. 
 * Tanggal revisi terakhir: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Tanggal akses: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Pranala permanen: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Pranala permanen: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * ID versi halaman: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == Format pengutipan untuk {{FULLPAGENAME}} ==
 
 === [[Format APA]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Diakses pada <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> dari {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Diakses pada <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> dari {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Format MLA]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[Format MHRA]] ===
-Para kontributor {{SITENAME}}, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [diakses pada <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+Para kontributor {{SITENAME}}, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [diakses pada <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[Format Chicago]] ===
-Para kontributor {{SITENAME}}, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (diakses pada <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+Para kontributor {{SITENAME}}, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (diakses pada <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Format CBE/CSE]] ===
 Para kontributor {{SITENAME}}. {{FULLPAGENAME}} [Internet].  {{SITENAME}}, {{int:sitesubtitle}};  {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}},   {{CURRENTTIME}} UTC [dikutip pada <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>].  Tersedia dari: 
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Format Bluebook]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (terakhir dikunjungi pada <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (terakhir dikunjungi pada <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === Entri [[BibTeX]] ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ja
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ja	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ja	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,62 @@
+__NOTOC__
+<div style="border: 1px solid grey; background: #E6E8FA; width: 90%; padding: 15px 30px 15px 30px; margin: 10px auto;">
+
+== 「{{FULLPAGENAME}}」の書誌情報 ==
+
+* ページ名: {{FULLPAGENAME}}
+* 著者: {{SITENAME}}への寄稿者ら
+* 発行者: {{int:sitesubtitle}}『{{SITENAME}}』
+* 更新日時: {{CURRENTYEAR}}年{{CURRENTMONTHNAME}}{{CURRENTDAY}}日 {{CURRENTTIME}} (UTC)
+* 取得日時: <citation>{{CURRENTYEAR}}年{{CURRENTMONTHNAME}}{{CURRENTDAY}}日 {{CURRENTTIME}} (UTC)</citation>
+* 恒久的なURI: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* ページの版番号: {{REVISIONID}}
+
+</div>
+<div class="plainlinks" style="border: 1px solid grey; width: 90%; padding: 15px 30px 15px 30px; margin: 10px auto;">
+
+== 各種方式による「{{FULLPAGENAME}}」の引用の仕方 ==
+
+=== [[科学技術情報流通技術基準|SIST02方式]] ===
+{{SITENAME}}への寄稿者ら. “{{FULLPAGENAME}}”. {{SITENAME}}, {{int:sitesubtitle}}. {{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY}}. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}, (参照 <citation>{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY}}</citation>).
+
+=== [[APA方式]] ===
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}年{{CURRENTMONTHNAME}}{{CURRENTDAY}}日{{CURRENTTIME}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. <citation>{{CURRENTYEAR}}年{{CURRENTMONTHNAME}}{{CURRENTDAY}}日{{CURRENTTIME}}</citation> {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} にて閲覧.
+
+=== [[The MLA style manual|MLA方式]] ===
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日{{CURRENTTIME}} (UTC). <citation>{{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日{{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+
+=== [[MHRA Style Guide|MHRA方式]] ===
+{{SITENAME}}への寄稿者ら, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},''{{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日 (UTC), <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日</citation>閲覧]
+
+=== [[The Chicago Manual of Style|Chicago方式]] ===
+{{SITENAME}}への寄稿者ら, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日</citation>閲覧).
+
+=== [[Council of Science Editors|CBE/CSE方式]] ===
+{{SITENAME}}への寄稿者ら. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日{{CURRENTTIME}} (UTC) [<citation>{{CURRENTYEAR}}年{{CURRENTMONTHABBREV}}{{CURRENTDAY}}日</citation>現在で引用]. 入手元:
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+
+=== [[Bluebook|Bluebook方式]] ===
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTYEAR}}年{{CURRENTMONTHNAME}}{{CURRENTDAY}}日</citation>最終訪問).
+
+=== [[BibTeX]]エントリ ===
+
+  @misc{ wiki:xxx,
+    author = "{{SITENAME}}",
+    title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
+    year = "{{CURRENTYEAR}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    note = "[オンライン; 閲覧日時 <citation>{{CURRENTYEAR}}-{{CURRENTDAY}}-{{CURRENTMONTH}}</citation>]"
+  }
+
+ウェブアドレスを見た目良く整形するために[[LaTeX]]パッケージ url を用いる場合(プリアンブルのどこかに<code>\usepackage{url}</code>がある場合)は、下記の方が良いかもしれません:
+
+  @misc{ wiki:xxx,
+    author = "{{SITENAME}}",
+    title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
+    year = "{{CURRENTYEAR}}",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    note = "[オンライン; 閲覧日時 <citation>{{CURRENTYEAR}}-{{CURRENTDAY}}-{{CURRENTMONTH}}</citation>]"
+  }
+
+
+</div> <!--closing div for "plainlinks"-->

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Баспагері: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Соңғы нұсқасының кезі: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Алынған кезі: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Тұрақты сілтемесі: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Тұрақты сілтемесі: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Бет нұсқасының теңдестіру номірі: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[ГОСТ мәнері]] ===
 <!-- ([[ГОСТ 7.1|ГОСТ 7.1—2003]] және [[ГОСТ 7.82|ГОСТ 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [Электронды қайнар] : {{FULLPAGENAME}}, нұсқасының нөмірі {{REVISIONID}}, соңғы түзетуі {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Уикипедия ауторлары. — Электронды дерек. — Флорида штаты. : Уикимедия Қоры, {{CURRENTYEAR}}. — Қатынау реті: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [Электронды қайнар] : {{FULLPAGENAME}}, нұсқасының нөмірі {{REVISIONID}}, соңғы түзетуі {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Уикипедия ауторлары. — Электронды дерек. — Флорида штаты. : Уикимедия Қоры, {{CURRENTYEAR}}. — Қатынау реті: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA мәнері]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' мағлұматы. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} бетінен <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде алынған.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' мағлұматы. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} бетінен <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде алынған.
 
 === [[MLA мәнері]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA мәнері]] ===
-{{SITENAME}} үлескерлері, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> кезінде қатыналды]
+{{SITENAME}} үлескерлері, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> кезінде қатыналды]
 
 === [[Шикаго мәнері]] ===
-{{SITENAME}} үлескері, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде қатыналды).
+{{SITENAME}} үлескері, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде қатыналды).
 
 === [[CBE/CSE мәнері]] ===
 {{SITENAME}} үлескерлері. {{FULLPAGENAME}} [Интернет]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> кезінде дәйексөз алынды]. Қатынауы:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Көк кітап|Көк кітап мәнері]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (соңғы қаралғаны <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (соңғы қаралғаны <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде).
 
 === [[BibTeX]] жазбасы ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Желіден; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> кезінде қатыналды]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Желіден; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> кезінде қатыналды]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-arab
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-arab	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-arab	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * باسپاگەرى: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * سوڭعى نۇسقاسىنىڭ كەزى: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * الىنعان كەزى: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* تۇراقتى سىلتەمەسى: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* تۇراقتى سىلتەمەسى: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * بەت نۇسقاسىنىڭ تەڭدەستىرۋ ٴنومىرى: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[گوست مانەرى]] ===
 <!-- ([[گوست 7.1|گوست 7.1—2003]] جانە [[گوست 7.82|گوست 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [ەلەكتروندى قاينار] : {{FULLPAGENAME}}, نۇسقاسىنىڭ ٴنومىرى {{REVISIONID}}, سوڭعى تۇزەتۋى {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / ۋىيكىيپەدىييا اۋتورلارى. — ەلەكتروندى دەرەك. — فلورىيدا شتاتى. : ۋىيكىيمەدىييا قورى, {{CURRENTYEAR}}. — قاتىناۋ رەتى: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [ەلەكتروندى قاينار] : {{FULLPAGENAME}}, نۇسقاسىنىڭ ٴنومىرى {{REVISIONID}}, سوڭعى تۇزەتۋى {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / ۋىيكىيپەدىييا اۋتورلارى. — ەلەكتروندى دەرەك. — فلورىيدا شتاتى. : ۋىيكىيمەدىييا قورى, {{CURRENTYEAR}}. — قاتىناۋ رەتى: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA مانەرى]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' ماعلۇماتى. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} بەتىنەن <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزىندە الىنعان.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' ماعلۇماتى. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} بەتىنەن <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزىندە الىنعان.
 
 === [[MLA مانەرى]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA مانەرى]] ===
-{{SITENAME}} ۇلەسكەرلەرى, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> كەزىندە قاتىنالدى]
+{{SITENAME}} ۇلەسكەرلەرى, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> كەزىندە قاتىنالدى]
 
 === [[شىيكاگو مانەرى]] ===
-{{SITENAME}} ۇلەسكەرى, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزىندە قاتىنالدى).
+{{SITENAME}} ۇلەسكەرى, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزىندە قاتىنالدى).
 
 === [[CBE/CSE مانەرى]] ===
 {{SITENAME}} ۇلەسكەرلەرى. {{FULLPAGENAME}} [ىينتەرنەت]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> كەزىندە دايەكسوز الىندى]. قاتىناۋى:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[كوك كىتاپ|كوك كىتاپ مانەرى]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (سوڭعى قارالعانى <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزىندە).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (سوڭعى قارالعانى <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزىندە).
 
 === [[BibTeX]] جازباسى ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[جەلىدەن; <citation>{{CURRENTDAY}}-{CURRENTMONTHNAME}}-{CURRENTYEAR}}</citation> كەزىندە قاتىنالدى]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[جەلىدەن; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> كەزىندە قاتىنالدى]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cn
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cn	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cn	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * باسپاگەرٸ: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * سوڭعى نۇسقاسىنىڭ كەزٸ: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * الىنعان كەزٸ: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* تۇراقتى سٸلتەمەسٸ: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* تۇراقتى سٸلتەمەسٸ: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * بەت نۇسقاسىنىڭ تەڭدەستٸرۋ نومٸرٸ: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[گوست مٵنەرٸ]] ===
 <!-- ([[گوست 7.1|گوست 7.1—2003]] جٵنە [[گوست 7.82|گوست 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [ەلەكتروندى قاينار] : {{FULLPAGENAME}}, نۇسقاسىنىڭ نٶمٸرٸ {{REVISIONID}}, سوڭعى تٷزەتۋٸ {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / ۋيكيپەدييا اۋتورلارى. — ەلەكتروندى دەرەك. — فلوريدا شتاتى. : ۋيكيمەدييا قورى, {{CURRENTYEAR}}. — قاتىناۋ رەتٸ: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [ەلەكتروندى قاينار] : {{FULLPAGENAME}}, نۇسقاسىنىڭ نٶمٸرٸ {{REVISIONID}}, سوڭعى تٷزەتۋٸ {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / ۋيكيپەدييا اۋتورلارى. — ەلەكتروندى دەرەك. — فلوريدا شتاتى. : ۋيكيمەدييا قورى, {{CURRENTYEAR}}. — قاتىناۋ رەتٸ: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA مٵنەرٸ]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' ماعلۇماتى. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} بەتٸنەن <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزٸندە الىنعان.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' ماعلۇماتى. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} بەتٸنەن <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزٸندە الىنعان.
 
 === [[MLA مٵنەرٸ]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA مٵنەرٸ]] ===
-{{SITENAME}} ٷلەسكەرلەرٸ, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> كەزٸندە قاتىنالدى]
+{{SITENAME}} ٷلەسكەرلەرٸ, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> كەزٸندە قاتىنالدى]
 
 === [[شيكاگو مٵنەرٸ]] ===
-{{SITENAME}} ٷلەسكەرٸ, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزٸندە قاتىنالدى).
+{{SITENAME}} ٷلەسكەرٸ, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزٸندە قاتىنالدى).
 
 === [[CBE/CSE مٵنەرٸ]] ===
 {{SITENAME}} ٷلەسكەرلەرٸ. {{FULLPAGENAME}} [ينتەرنەت]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> كەزٸندە دٵيەكسٶز الىندى]. قاتىناۋى:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[كٶك كٸتاپ|كٶك كٸتاپ مٵنەرٸ]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (سوڭعى قارالعانى <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزٸندە).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (سوڭعى قارالعانى <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> كەزٸندە).
 
 === [[BibTeX]] جازباسى ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[جەلٸدەن; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> كەزٸندە قاتىنالدى]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[جەلٸدەن; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> كەزٸندە قاتىنالدى]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cyrl
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cyrl	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-cyrl	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Баспагері: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Соңғы нұсқасының кезі: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Алынған кезі: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Тұрақты сілтемесі: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Тұрақты сілтемесі: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Бет нұсқасының теңдестіру номірі: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[ГОСТ мәнері]] ===
 <!-- ([[ГОСТ 7.1|ГОСТ 7.1—2003]] және [[ГОСТ 7.82|ГОСТ 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [Электронды қайнар] : {{FULLPAGENAME}}, нұсқасының нөмірі {{REVISIONID}}, соңғы түзетуі {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Уикипедия ауторлары. — Электронды дерек. — Флорида штаты. : Уикимедия Қоры, {{CURRENTYEAR}}. — Қатынау реті: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [Электронды қайнар] : {{FULLPAGENAME}}, нұсқасының нөмірі {{REVISIONID}}, соңғы түзетуі {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Уикипедия ауторлары. — Электронды дерек. — Флорида штаты. : Уикимедия Қоры, {{CURRENTYEAR}}. — Қатынау реті: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA мәнері]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' мағлұматы. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} бетінен <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде алынған.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' мағлұматы. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} бетінен <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде алынған.
 
 === [[MLA мәнері]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA мәнері]] ===
-{{SITENAME}} үлескерлері, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> кезінде қатыналды]
+{{SITENAME}} үлескерлері, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> кезінде қатыналды]
 
 === [[Шикаго мәнері]] ===
-{{SITENAME}} үлескері, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде қатыналды).
+{{SITENAME}} үлескері, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде қатыналды).
 
 === [[CBE/CSE мәнері]] ===
 {{SITENAME}} үлескерлері. {{FULLPAGENAME}} [Интернет]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> кезінде дәйексөз алынды]. Қатынауы:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Көк кітап|Көк кітап мәнері]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (соңғы қаралғаны <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (соңғы қаралғаны <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде).
 
 === [[BibTeX]] жазбасы ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Желіден; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> кезінде қатыналды]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Желіден; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> кезінде қатыналды]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-kz
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-kz	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-kz	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Баспагері: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Соңғы нұсқасының кезі: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Алынған кезі: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Тұрақты сілтемесі: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Тұрақты сілтемесі: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Бет нұсқасының теңдестіру номірі: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[ГОСТ мәнері]] ===
 <!-- ([[ГОСТ 7.1|ГОСТ 7.1—2003]] және [[ГОСТ 7.82|ГОСТ 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [Электронды қайнар] : {{FULLPAGENAME}}, нұсқасының нөмірі {{REVISIONID}}, соңғы түзетуі {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Уикипедия ауторлары. — Электронды дерек. — Флорида штаты. : Уикимедия Қоры, {{CURRENTYEAR}}. — Қатынау реті: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [Электронды қайнар] : {{FULLPAGENAME}}, нұсқасының нөмірі {{REVISIONID}}, соңғы түзетуі {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Уикипедия ауторлары. — Электронды дерек. — Флорида штаты. : Уикимедия Қоры, {{CURRENTYEAR}}. — Қатынау реті: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA мәнері]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' мағлұматы. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} бетінен <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде алынған.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' мағлұматы. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} бетінен <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде алынған.
 
 === [[MLA мәнері]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA мәнері]] ===
-{{SITENAME}} үлескерлері, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> кезінде қатыналды]
+{{SITENAME}} үлескерлері, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> кезінде қатыналды]
 
 === [[Шикаго мәнері]] ===
-{{SITENAME}} үлескері, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде қатыналды).
+{{SITENAME}} үлескері, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде қатыналды).
 
 === [[CBE/CSE мәнері]] ===
 {{SITENAME}} үлескерлері. {{FULLPAGENAME}} [Интернет]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> кезінде дәйексөз алынды]. Қатынауы:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Көк кітап|Көк кітап мәнері]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (соңғы қаралғаны <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (соңғы қаралғаны <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> кезінде).
 
 === [[BibTeX]] жазбасы ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Желіден; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> кезінде қатыналды]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Желіден; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> кезінде қатыналды]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-latn
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-latn	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-latn	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Baspageri: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Soñğı nusqasınıñ kezi: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Alınğan kezi: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Turaqtı siltemesi: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Turaqtı siltemesi: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Bet nusqasınıñ teñdestirw nomiri: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[GOST mäneri]] ===
 <!-- ([[GOST 7.1|GOST 7.1—2003]] jäne [[GOST 7.82|GOST 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [Élektrondı qaýnar] : {{FULLPAGENAME}}, nusqasınıñ nömiri {{REVISIONID}}, soñğı tüzetwi {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Wïkïpedïya awtorları. — Élektrondı derek. — Florïda ştatı. : Wïkïmedïya Qorı, {{CURRENTYEAR}}. — Qatınaw reti: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [Élektrondı qaýnar] : {{FULLPAGENAME}}, nusqasınıñ nömiri {{REVISIONID}}, soñğı tüzetwi {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Wïkïpedïya awtorları. — Élektrondı derek. — Florïda ştatı. : Wïkïmedïya Qorı, {{CURRENTYEAR}}. — Qatınaw reti: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA mäneri]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' mağlumatı. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} betinen <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde alınğan.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' mağlumatı. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} betinen <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde alınğan.
 
 === [[MLA mäneri]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA mäneri]] ===
-{{SITENAME}} üleskerleri, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> kezinde qatınaldı]
+{{SITENAME}} üleskerleri, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> kezinde qatınaldı]
 
 === [[Şïkago mäneri]] ===
-{{SITENAME}} üleskeri, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde qatınaldı).
+{{SITENAME}} üleskeri, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde qatınaldı).
 
 === [[CBE/CSE mäneri]] ===
 {{SITENAME}} üleskerleri. {{FULLPAGENAME}} [Ïnternet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> kezinde däýeksöz alındı]. Qatınawı:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Kök kitap|Kök kitap mäneri]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (soñğı qaralğanı <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (soñğı qaralğanı <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde).
 
 === [[BibTeX]] jazbası ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Jeliden; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> kezinde qatınaldı]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Jeliden; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> kezinde qatınaldı]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-tr
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-tr	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-kk-tr	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Baspageri: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Soñğı nusqasınıñ kezi: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Alınğan kezi: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Turaqtı siltemesi: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Turaqtı siltemesi: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Bet nusqasınıñ teñdestirw nomiri: {{REVISIONID}}
 
 </div>
@@ -18,26 +18,26 @@
 
 === [[GOST mäneri]] ===
 <!-- ([[GOST 7.1|GOST 7.1—2003]] jäne [[GOST 7.82|GOST 7.82—2001]]) -->
-{{SITENAME}}, {{int:sitesubtitle}} [Élektrondı qaýnar] : {{FULLPAGENAME}}, nusqasınıñ nömiri {{REVISIONID}}, soñğı tüzetwi {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Wïkïpedïya awtorları. — Élektrondı derek. — Florïda ştatı. : Wïkïmedïya Qorı, {{CURRENTYEAR}}. — Qatınaw reti: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [Élektrondı qaýnar] : {{FULLPAGENAME}}, nusqasınıñ nömiri {{REVISIONID}}, soñğı tüzetwi {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Wïkïpedïya awtorları. — Élektrondı derek. — Florïda ştatı. : Wïkïmedïya Qorı, {{CURRENTYEAR}}. — Qatınaw reti: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA mäneri]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' mağlumatı. {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} betinen <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde alınğan.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}'' mağlumatı. {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} betinen <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde alınğan.
 
 === [[MLA mäneri]] ===
-«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+«{{FULLPAGENAME}}». ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA mäneri]] ===
-{{SITENAME}} üleskerleri, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> kezinde qatınaldı]
+{{SITENAME}} üleskerleri, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [<citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation> kezinde qatınaldı]
 
 === [[Şïkago mäneri]] ===
-{{SITENAME}} üleskeri, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde qatınaldı).
+{{SITENAME}} üleskeri, «{{FULLPAGENAME}}», ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (<citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde qatınaldı).
 
 === [[CBE/CSE mäneri]] ===
 {{SITENAME}} üleskerleri. {{FULLPAGENAME}} [Ïnternet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [<citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation> kezinde däýeksöz alındı]. Qatınawı:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Kök kitap|Kök kitap mäneri]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (soñğı qaralğanı <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (soñğı qaralğanı <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> kezinde).
 
 === [[BibTeX]] jazbası ===
 
@@ -45,7 +45,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Jeliden; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> kezinde qatınaldı]"
   }
 
@@ -55,7 +55,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Jeliden; <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation> kezinde qatınaldı]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-lt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-lt	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-lt	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Leidėjas: ''{{SITENAME}}''. 
 * Paskutinės versijos data: {{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC
 * Puslapis gautas: <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC</citation>
-* Nuolatinė nuoroda: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Nuolatinė nuoroda: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Puslapio versijos Nr.: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == Citatų stiliai puslapiui "{{FULLPAGENAME}}" ==
 
 === APA stilius ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}''. Gautas <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}}</citation> iš {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}''. Gautas <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}}</citation> iš {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === MLA stilius ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}''. {{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC. <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}''. {{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC. <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === MHRA stilius ===
-{{SITENAME}} naudotojai, '{{FULLPAGENAME}}', ''{{SITENAME}},'' {{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>]
+{{SITENAME}} naudotojai, '{{FULLPAGENAME}}', ''{{SITENAME}},'' {{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>]
 
 === Čikagos stilius ===
-{{SITENAME}} naudotojai, "{{FULLPAGENAME}}",  ''{{SITENAME}}'', {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>).
+{{SITENAME}} naudotojai, "{{FULLPAGENAME}}",  ''{{SITENAME}}'', {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>).
 
 === CBE/CSE stilius ===
 {{SITENAME}} naudotojai. {{FULLPAGENAME}} [internete].  {{SITENAME}},  {{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}} {{CURRENTTIME}} UTC [cituota <citation>{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}</citation>]. Galima rasti: 
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === Bluebook stilius ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (paskutinį kartą žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (paskutinį kartą žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>).
 
 === BibTeX įrašas ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Žiniatinklyje; žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Žiniatinklyje; žiūrėta <citation>{{CURRENTYEAR}} {{CURRENTMONTHNAME}} {{CURRENTDAY}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-nl
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-nl	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-nl	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Uitgever: ''{{SITENAME}}, {{int:sitesubtitle}}''. 
 * Tijdstip laatste bewerking: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} (UTC)
 * Tijdstip opgehaald: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} (UTC)</citation>
-* Permalink: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Permalink: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Paginaversienummer: {{REVISIONID}}
 
 </div>
@@ -17,23 +17,23 @@
 == Citatiestijlen voor {{FULLPAGENAME}} ==
 
 === APA-stijl ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Opgehaald <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> van {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Opgehaald <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> van {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === MLA-stijl ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC). <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC). <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === MHRA-stijl ===
-{{SITENAME}}-medewerkers, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC), <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}}-medewerkers, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} (UTC), <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === Chicago-stijl ===
-{{SITENAME}}-medewerkers, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}}-medewerkers, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === CBE/CSE-stijl ===
 {{SITENAME}}-medewerkers. {{FULLPAGENAME}} [Internet].  {{SITENAME}}, {{int:sitesubtitle}};  {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}},   {{CURRENTTIME}} (UTC) [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>].  Available from: 
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === Bluebook-stijl ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (het laatst bezocht <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (het laatst bezocht <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[BibTeX]]-entry ===
 
@@ -41,7 +41,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -51,7 +51,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-oc
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-oc	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-oc	2012-06-29 14:46:19 UTC (rev 343)
@@ -3,35 +3,35 @@
 
 == Informacions bibliograficas sus {{FULLPAGENAME}} == 
 * Nom de la pagina : {{FULLPAGENAME}} 
-* Autors : {{fullurl:{{FULLPAGENAME}}|action=history}} 
+* Autors : {{canonicalurl:{{FULLPAGENAME}}|action=history}} 
 * Editor : {{SITENAME}} 
 * Darrièra revision : {{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}} a {{CURRENTTIME}} UTC 
 * Pagina consultada lo : <citation>{{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}} a {{CURRENTTIME}} UTC</citation> 
-* Ligam vèrs la version citada : {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} 
+* Ligam vèrs la version citada : {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} 
 * Numerò de version : {{REVISIONID}} </div> <div class="plainlinks" style="border: 1px solid grey; width: 90%; padding: 15px 30px 15px 30px; margin: 10px auto;"> 
 
 == Cossí citar la pagina {{FULLPAGENAME}} ==
 === [[APA style]] === 
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Pagina consultada lo <citation>{{CURRENTTIME}}, de {{CURRENTMONTHNAME}}  {{CURRENTDAY}}, de {{CURRENTYEAR}}</citation> a partir de {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}. 
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Pagina consultada lo <citation>{{CURRENTTIME}}, de {{CURRENTMONTHNAME}}  {{CURRENTDAY}}, de {{CURRENTYEAR}}</citation> a partir de {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}. 
 
 === [[The MLA style manual|MLA style]] === 
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>. 
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>. 
 
 === [[MHRA Style Guide|MHRA style]] === 
-Contributors a {{SITENAME}}, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [Pagina consultada lo <citation>{{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}}</citation>]
+Contributors a {{SITENAME}}, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [Pagina consultada lo <citation>{{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}}</citation>]
 
-=== [[The Chicago Manual of Style|Chicago style]] === Contributors a {{SITENAME}}, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Pagina consultada lo <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, de {{CURRENTYEAR}}</citation>).
+=== [[The Chicago Manual of Style|Chicago style]] === Contributors a {{SITENAME}}, "{{FULLPAGENAME}}," ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Pagina consultada lo <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, de {{CURRENTYEAR}}</citation>).
 
-=== [[Council of Science Editors|CBE/CSE style]] === Contributors a {{SITENAME}}. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, a {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Disponible a l'adreça: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+=== [[Council of Science Editors|CBE/CSE style]] === Contributors a {{SITENAME}}. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, a {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Disponible a l'adreça: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
-=== [[Bluebook|Bluebook style]] === {{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Pagina consultada lo <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, de {{CURRENTYEAR}}</citation>). 
+=== [[Bluebook|Bluebook style]] === {{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Pagina consultada lo <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, de {{CURRENTYEAR}}</citation>). 
 
 === [[BibTeX]] === 
 @misc{ wiki:xxx, 
  author = "{{SITENAME}}",
  title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
  year = "{{CURRENTYEAR}}",
- url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+ url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
  note = "[En linha; Pagina disponibla lo <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]" }
 
 Quand utilisatz lo modul url jos [[LaTeX]] (<code>\usepackage{url}</code> endacòm dins lo preambul) qu'amelhora l'afichatge de las adreças internet, utilisatz de preferéncia aqueste format: 
@@ -39,7 +39,7 @@
 @misc{ wiki:xxx, author = "{{SITENAME}}",
  title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
  year = "{{CURRENTYEAR}}",
- url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+ url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
  note = "[En linha; Pagina disponibla lo <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]" }
 
 </div> <!--closing div for "plainlinks"-->

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ru
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ru	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-ru	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * Опубликовано: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Дата последнего изменения: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * Дата загрузки: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Постоянная ссылка: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Постоянная ссылка: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Идентификатор версии страницы: {{REVISIONID}}
 
 </div>
@@ -17,33 +17,33 @@
 == Варианты оформления ссылок на статью «{{FULLPAGENAME}}» ==
 
 === Описание по [[ГОСТ 7.1|ГОСТ 7.1—2003]] и [[ГОСТ 7.82|ГОСТ 7.82—2001]] ===
-{{SITENAME}}, {{int:sitesubtitle}} [Электронный ресурс] : {{FULLPAGENAME}}, вариант {{REVISIONID}}, последняя правка {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Авторы Википедии. — Электрон. дан. — Штат Флорида. : Фонд Викимедиа, {{CURRENTYEAR}}. — Режим доступа: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+{{SITENAME}}, {{int:sitesubtitle}} [Электронный ресурс] : {{FULLPAGENAME}}, вариант {{REVISIONID}}, последняя правка {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC / Авторы Википедии. — Электрон. дан. — Штат Флорида. : Фонд Викимедиа, {{CURRENTYEAR}}. — Режим доступа: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 
 === [[APA style|Стиль APA]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[The MLA style manual|Стиль MLA]] ===
-"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+"{{FULLPAGENAME}}." ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[MHRA Style Guide|Стиль MHRA]] ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}',  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[The Chicago Manual of Style|Чикагский стиль]] ===
-{{SITENAME}} contributors, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}} contributors, "{{FULLPAGENAME}},"  ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Council of Science Editors|Стиль CBE/CSE]] ===
 {{SITENAME}} contributors. {{FULLPAGENAME}} [Internet].  {{SITENAME}}, {{int:sitesubtitle}};  {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}},   {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>].  Available from: 
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Bluebook|Bluebook style]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited   <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited   <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === Запись в [[BibTeX]] ===
   @misc{ wiki:xxx,
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 
@@ -53,7 +53,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-sq
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-sq	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-sq	2012-06-29 14:46:19 UTC (rev 343)
@@ -7,7 +7,7 @@
 * Publikuesi: ''{{SITENAME}}, {{int:sitesubtitle}}''.
 * Data e versionit të fundit: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC
 * E marrë më: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>
-* Lidhja e përhershme: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* Lidhja e përhershme: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * Nr i versionit të faqes: {{REVISIONID}}
 </div>
 
@@ -16,29 +16,29 @@
 == Stile të ndryshme citimi për «{{FULLPAGENAME}}» ==
 
 === [[Stili citimit APA|APA]] ===
-{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Stili citimit MLA|MLA]] ===
-\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === [[Stili citimit MHRA|MHRA]] ===
-{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
+{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}> [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]
 
 === [[Stili i citimit Chicago|Chicago]] ===
-{{SITENAME}} contributors, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{SITENAME}} contributors, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Stili i citimit CBE/CSE|CBE/CSE]] ===
-{{SITENAME}} contributors. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Available from: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{SITENAME}} contributors. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Available from: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === [[Stili i citimit Bluebook|Bluebook]] ===
-{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
+{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).
 
 === [[Stili i citimit BibTeX|BibTeX]] ===
 @misc{ wiki:xxx,
 	author = "{{SITENAME}}",
 	title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
 	year = "{{CURRENTYEAR}}",
-	url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+	url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
 	note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
 } 
 
@@ -48,7 +48,7 @@
 	author = "{{SITENAME}}",
 	title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
 	year = "{{CURRENTYEAR}}",
-	url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+	url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
 	note = "[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]"
 }
 </div><!--closing div for "plainlinks"-->

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hans
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hans	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hans	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * 出版者:{{SITENAME}},{{int:sitesubtitle}}.
 * 最新版本日期:{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时)
 * 查阅日期:<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时)</citation>
-* 永久链接:{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* 永久链接:{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * 页面版本号:{{REVISIONID}}
 
 </div>
@@ -17,26 +17,26 @@
 == {{FULLPAGENAME}}的参考文献格式 ==
 
 === GB7714格式 ===
-{{SITENAME}}编者.{{FULLPAGENAME}}[G/OL].{{SITENAME}},{{int:sitesubtitle}},{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}[<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>].{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{SITENAME}}编者.{{FULLPAGENAME}}[G/OL].{{SITENAME}},{{int:sitesubtitle}},{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}[<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>].{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === APA格式 ===
-{{FULLPAGENAME}}.({{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日).''{{SITENAME}},{{int:sitesubtitle}}''.于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>查阅自{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}.({{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日).''{{SITENAME}},{{int:sitesubtitle}}''.于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>查阅自{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === MLA格式 ===
-“{{FULLPAGENAME}}.”''{{SITENAME}},{{int:sitesubtitle}}''.{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时).<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+“{{FULLPAGENAME}}.”''{{SITENAME}},{{int:sitesubtitle}}''.{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时).<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === MHRA格式 ===
-{{SITENAME}}编者,‘{{FULLPAGENAME}}’,''{{SITENAME}},{{int:sitesubtitle}}'',{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时),<{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>[于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查阅]
+{{SITENAME}}编者,‘{{FULLPAGENAME}}’,''{{SITENAME}},{{int:sitesubtitle}}'',{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时),<{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>[于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查阅]
 
 === 芝加哥格式 ===
-{{SITENAME}}编者,“{{FULLPAGENAME}},”''{{SITENAME}},{{int:sitesubtitle}}'',{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查阅).
+{{SITENAME}}编者,“{{FULLPAGENAME}},”''{{SITENAME}},{{int:sitesubtitle}}'',{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查阅).
 
 === CBE/CSE格式 ===
 {{SITENAME}}编者.{{FULLPAGENAME}}[互联网].{{SITENAME}},{{int:sitesubtitle}};{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(协调世界时)[引用于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>].可访问自:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === Bluebook格式 ===
-{{FULLPAGENAME}},{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(最新访问于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>).
+{{FULLPAGENAME}},{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(最新访问于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>).
 
 === BibTeX记录 ===
 
@@ -44,7 +44,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[在线资源;访问于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>]"
   }
 
@@ -53,7 +53,7 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[在线资源;访问于<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>]"
   }
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hant
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hant	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/cite_text-zh-hant	2012-06-29 14:46:19 UTC (rev 343)
@@ -8,7 +8,7 @@
 * 出版者:{{SITENAME}},{{int:sitesubtitle}}.
 * 最新版本日期:{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時)
 * 查閲日期:<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時)</citation>
-* 永久連結:{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
+* 永久連結:{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}
 * 頁面版本號:{{REVISIONID}}
 
 </div>
@@ -17,26 +17,26 @@
 == {{FULLPAGENAME}}的參考文獻格式 ==
 
 === GB7714格式 ===
-{{SITENAME}}编者.{{FULLPAGENAME}}[G/OL].{{SITENAME}},{{int:sitesubtitle}},{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}[<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>].{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{SITENAME}}編者.{{FULLPAGENAME}}[G/OL].{{SITENAME}},{{int:sitesubtitle}},{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}[<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>].{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === APA格式 ===
-{{FULLPAGENAME}}.({{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日).''{{SITENAME}},{{int:sitesubtitle}}''.於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>查閲自{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{FULLPAGENAME}}.({{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日).''{{SITENAME}},{{int:sitesubtitle}}''.於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation>查閲自{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === MLA格式 ===
-「{{FULLPAGENAME}}」.''{{SITENAME}},{{int:sitesubtitle}}''.{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時).<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation> <{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
+「{{FULLPAGENAME}}」.''{{SITENAME}},{{int:sitesubtitle}}''.{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時).<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}</citation> <{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>.
 
 === MHRA格式 ===
-{{SITENAME}}编者,『{{FULLPAGENAME}}』,''{{SITENAME}},{{int:sitesubtitle}}'',{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時),<{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>[於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查閲]
+{{SITENAME}}編者,『{{FULLPAGENAME}}』,''{{SITENAME}},{{int:sitesubtitle}}'',{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時),<{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}>[於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查閲]
 
 === 芝加哥格式 ===
-{{SITENAME}}编者,「{{FULLPAGENAME}}」,''{{SITENAME}},{{int:sitesubtitle}}'',{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查閲).
+{{SITENAME}}編者,「{{FULLPAGENAME}}」,''{{SITENAME}},{{int:sitesubtitle}}'',{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>查閲).
 
 === CBE/CSE格式 ===
-{{SITENAME}}编者.{{FULLPAGENAME}}[網際網絡].{{SITENAME}},{{int:sitesubtitle}};{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時)[引用於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>].可訪問自:
-{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
+{{SITENAME}}編者.{{FULLPAGENAME}}[網際網絡].{{SITENAME}},{{int:sitesubtitle}};{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日{{CURRENTTIME}}(協調世界時)[引用於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>].可訪問自:
+{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.
 
 === Bluebook格式 ===
-{{FULLPAGENAME}},{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(最新訪問於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>).
+{{FULLPAGENAME}},{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}(最新訪問於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>).
 
 === BibTeX記錄 ===
 
@@ -44,16 +44,16 @@
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
+    url = "{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}",
     note = "[線上資源;訪問於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>]"
   }
 
-使用LaTeX包裝的連結(開頭某処的<code>\usepackage{url}</code>)將提供更好的網址格式,推薦選用下列格式:
+使用LaTeX包裝的連結(開頭某處的<code>\usepackage{url}</code>)將提供更好的網址格式,推薦選用下列格式:
   @misc{ wiki:xxx,
     author = "{{SITENAME}}",
     title = "{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}",
     year = "{{CURRENTYEAR}}",
-    url = "'''\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
+    url = "'''\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''",
     note = "[線上資源;訪問於<citation>{{CURRENTYEAR}}年{{CURRENTMONTH}}月{{CURRENTDAY}}日</citation>]"
   }
 

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/ext.cite/ext.cite.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/ext.cite/ext.cite.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/ext.cite/ext.cite.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,12 @@
+( function($) {
+	$( function() {
+		$('.biblio-cite-link,sup.reference a').tooltip({
+				bodyHandler: function() {
+					return $( '#' + this.hash.substr(1) + ' > .reference-text' )
+						.html();
+				},
+				showURL : false
+			} );
+	} );
+	
+} )( jQuery );

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.css
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.css	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.css	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,9 @@
+#tooltip {
+	position: absolute;
+	z-index: 3000;
+	border: 1px solid #111;
+	background-color: #eee;
+	padding: 5px;
+	opacity: 0.85;
+}
+#tooltip h3, #tooltip div { margin: 0; }

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Cite/modules/jquery.tooltip/jquery.tooltip.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,294 @@
+/*
+ * jQuery Tooltip plugin 1.3
+ *
+ * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
+ * http://docs.jquery.com/Plugins/Tooltip
+ *
+ * Copyright (c) 2006 - 2008 Jörn Zaefferer
+ *
+ * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
+ * 
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ */
+ 
+;(function($) {
+	
+		// the tooltip element
+	var helper = {},
+		// the current tooltipped element
+		current,
+		// the title of the current element, used for restoring
+		title,
+		// timeout id for delayed tooltips
+		tID,
+		// IE 5.5 or 6
+		IE = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent),
+		// flag for mouse tracking
+		track = false;
+	
+	$.tooltip = {
+		blocked: false,
+		defaults: {
+			delay: 200,
+			fade: false,
+			showURL: true,
+			extraClass: "",
+			top: 15,
+			left: 15,
+			id: "tooltip"
+		},
+		block: function() {
+			$.tooltip.blocked = !$.tooltip.blocked;
+		}
+	};
+	
+	$.fn.extend({
+		tooltip: function(settings) {
+			settings = $.extend({}, $.tooltip.defaults, settings);
+			createHelper(settings);
+			return this.each(function() {
+					$.data(this, "tooltip", settings);
+					this.tOpacity = helper.parent.css("opacity");
+					// copy tooltip into its own expando and remove the title
+					this.tooltipText = this.title;
+					$(this).removeAttr("title");
+					// also remove alt attribute to prevent default tooltip in IE
+					this.alt = "";
+				})
+				.mouseover(save)
+				.mouseout(hide)
+				.click(hide);
+		},
+		fixPNG: IE ? function() {
+			return this.each(function () {
+				var image = $(this).css('backgroundImage');
+				if (image.match(/^url\(["']?(.*\.png)["']?\)$/i)) {
+					image = RegExp.$1;
+					$(this).css({
+						'backgroundImage': 'none',
+						'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
+					}).each(function () {
+						var position = $(this).css('position');
+						if (position != 'absolute' && position != 'relative')
+							$(this).css('position', 'relative');
+					});
+				}
+			});
+		} : function() { return this; },
+		unfixPNG: IE ? function() {
+			return this.each(function () {
+				$(this).css({'filter': '', backgroundImage: ''});
+			});
+		} : function() { return this; },
+		hideWhenEmpty: function() {
+			return this.each(function() {
+				$(this)[ $(this).html() ? "show" : "hide" ]();
+			});
+		},
+		url: function() {
+			return this.attr('href') || this.attr('src');
+		}
+	});
+	
+	function createHelper(settings) {
+		// there can be only one tooltip helper
+		if( helper.parent )
+			return;
+		// create the helper, h3 for title, div for url
+		helper.parent = $('<div id="' + settings.id + '"><h3></h3><div class="body"></div><div class="url"></div></div>')
+			// add to document
+			.appendTo(document.body)
+			// hide it at first
+			.hide();
+			
+		// apply bgiframe if available
+		if ( $.fn.bgiframe )
+			helper.parent.bgiframe();
+		
+		// save references to title and url elements
+		helper.title = $('h3', helper.parent);
+		helper.body = $('div.body', helper.parent);
+		helper.url = $('div.url', helper.parent);
+	}
+	
+	function settings(element) {
+		return $.data(element, "tooltip");
+	}
+	
+	// main event handler to start showing tooltips
+	function handle(event) {
+		// show helper, either with timeout or on instant
+		if( settings(this).delay )
+			tID = setTimeout(show, settings(this).delay);
+		else
+			show();
+		
+		// if selected, update the helper position when the mouse moves
+		track = !!settings(this).track;
+		$(document.body).bind('mousemove', update);
+			
+		// update at least once
+		update(event);
+	}
+	
+	// save elements title before the tooltip is displayed
+	function save() {
+		// if this is the current source, or it has no title (occurs with click event), stop
+		if ( $.tooltip.blocked || this == current || (!this.tooltipText && !settings(this).bodyHandler) )
+			return;
+
+		// save current
+		current = this;
+		title = this.tooltipText;
+		
+		if ( settings(this).bodyHandler ) {
+			helper.title.hide();
+			var bodyContent = settings(this).bodyHandler.call(this);
+			if (bodyContent.nodeType || bodyContent.jquery) {
+				helper.body.empty().append(bodyContent)
+			} else {
+				helper.body.html( bodyContent );
+			}
+			helper.body.show();
+		} else if ( settings(this).showBody ) {
+			var parts = title.split(settings(this).showBody);
+			helper.title.html(parts.shift()).show();
+			helper.body.empty();
+			for(var i = 0, part; (part = parts[i]); i++) {
+				if(i > 0)
+					helper.body.append("<br/>");
+				helper.body.append(part);
+			}
+			helper.body.hideWhenEmpty();
+		} else {
+			helper.title.html(title).show();
+			helper.body.hide();
+		}
+		
+		// if element has href or src, add and show it, otherwise hide it
+		if( settings(this).showURL && $(this).url() )
+			helper.url.html( $(this).url().replace('http://', '') ).show();
+		else 
+			helper.url.hide();
+		
+		// add an optional class for this tip
+		helper.parent.addClass(settings(this).extraClass);
+
+		// fix PNG background for IE
+		if (settings(this).fixPNG )
+			helper.parent.fixPNG();
+			
+		handle.apply(this, arguments);
+	}
+	
+	// delete timeout and show helper
+	function show() {
+		tID = null;
+		if ((!IE || !$.fn.bgiframe) && settings(current).fade) {
+			if (helper.parent.is(":animated"))
+				helper.parent.stop().show().fadeTo(settings(current).fade, current.tOpacity);
+			else
+				helper.parent.is(':visible') ? helper.parent.fadeTo(settings(current).fade, current.tOpacity) : helper.parent.fadeIn(settings(current).fade);
+		} else {
+			helper.parent.show();
+		}
+		update();
+	}
+	
+	/**
+	 * callback for mousemove
+	 * updates the helper position
+	 * removes itself when no current element
+	 */
+	function update(event)	{
+		if($.tooltip.blocked)
+			return;
+		
+		if (event && event.target.tagName == "OPTION") {
+			return;
+		}
+		
+		// stop updating when tracking is disabled and the tooltip is visible
+		if ( !track && helper.parent.is(":visible")) {
+			$(document.body).unbind('mousemove', update)
+		}
+		
+		// if no current element is available, remove this listener
+		if( current == null ) {
+			$(document.body).unbind('mousemove', update);
+			return;	
+		}
+		
+		// remove position helper classes
+		helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");
+		
+		var left = helper.parent[0].offsetLeft;
+		var top = helper.parent[0].offsetTop;
+		if (event) {
+			// position the helper 15 pixel to bottom right, starting from mouse position
+			left = event.pageX + settings(current).left;
+			top = event.pageY + settings(current).top;
+			var right='auto';
+			if (settings(current).positionLeft) {
+				right = $(window).width() - left;
+				left = 'auto';
+			}
+			helper.parent.css({
+				left: left,
+				right: right,
+				top: top
+			});
+		}
+		
+		var v = viewport(),
+			h = helper.parent[0];
+		// check horizontal position
+		if (v.x + v.cx < h.offsetLeft + h.offsetWidth) {
+			left -= h.offsetWidth + 20 + settings(current).left;
+			helper.parent.css({left: left + 'px'}).addClass("viewport-right");
+		}
+		// check vertical position
+		if (v.y + v.cy < h.offsetTop + h.offsetHeight) {
+			top -= h.offsetHeight + 20 + settings(current).top;
+			helper.parent.css({top: top + 'px'}).addClass("viewport-bottom");
+		}
+	}
+	
+	function viewport() {
+		return {
+			x: $(window).scrollLeft(),
+			y: $(window).scrollTop(),
+			cx: $(window).width(),
+			cy: $(window).height()
+		};
+	}
+	
+	// hide helper and restore added classes and the title
+	function hide(event) {
+		if($.tooltip.blocked)
+			return;
+		// clear timeout if possible
+		if(tID)
+			clearTimeout(tID);
+		// no more current element
+		current = null;
+		
+		var tsettings = settings(this);
+		function complete() {
+			helper.parent.removeClass( tsettings.extraClass ).hide().css("opacity", "");
+		}
+		if ((!IE || !$.fn.bgiframe) && tsettings.fade) {
+			if (helper.parent.is(':animated'))
+				helper.parent.stop().fadeTo(tsettings.fade, 0, complete);
+			else
+				helper.parent.stop().fadeOut(tsettings.fade, complete);
+		} else
+			complete();
+		
+		if( settings(this).fixPNG )
+			helper.parent.unfixPNG();
+	}
+	
+})(jQuery);

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,6 +2,7 @@
 /**
  * Internationalisation file for the CreateBox extension.
  *
+ * @file
  * @ingroup Extensions
  * @author Ross McClure
  */
@@ -12,14 +13,13 @@
  * @author Ross McClure
  */
 $messages['en'] = array(
-	'createbox-desc'   => 'Specialised inputbox for page creation',
+	'createbox-desc' => 'Specialised inputbox for page creation',
 	'createbox-create' => 'Create',
-	'createbox-exists' => "Sorry, \"'''{{FULLPAGENAME}}'''\" already " .
-			"exists.\n\nYou cannot create this page, but you can " .
-			"[{{fullurl:{{FULLPAGENAME}}|action=edit}} edit it], " .
-			"[{{fullurl:{{FULLPAGENAME}}}} read it], or choose to " .
-			"create a different page using the box below.\n\n" .
-			"<createbox>break=no</createbox>",
+	'createbox-exists' => "Sorry, \"'''{{FULLPAGENAME}}'''\" already exists.
+
+You cannot create this page, but you can [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit it], [{{fullurl:{{FULLPAGENAME}}}} read it], or choose to create a different page using the box below.
+
+<createbox>break=no</createbox>",
 );
 
 /** Message documentation (Message documentation)
@@ -37,14 +37,27 @@
 $messages['af'] = array(
 	'createbox-desc' => 'Gespesialiseerde invoerveld vir die skep van nuwe bladsye',
 	'createbox-create' => 'Skep',
+	'createbox-exists' => "Jammer, \"'''{{FULLPAGENAME}}'''\" bestaan al reeds.
+
+U kan nie hierdie bladsy skep nie, maar u kan dit wel [{{fullurl:{{FULLPAGENAME}}|action=edit}} wysig], [{{fullurl:{{FULLPAGENAME}}}} wys], of 'n ander bladsy via die onderstaande vorm skep.
+
+<createbox>break=no</createbox>",
 );
 
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ */
+$messages['an'] = array(
+	'createbox-create' => 'Creyar',
+);
+
 /** Arabic (العربية)
  * @author Meno25
+ * @author OsamaK
  */
 $messages['ar'] = array(
 	'createbox-desc' => 'صندوق إدخال متخصص لإنشاء الصفحات',
-	'createbox-create' => 'إنشاء',
+	'createbox-create' => 'أنشئ',
 	'createbox-exists' => "عذرا، \"'''{{FULLPAGENAME}}'''\" موجودة بالفعل.
 
 أنت لا يمكنك إنشاء هذه الصفحة، لكن يمكنك [{{fullurl:{{FULLPAGENAME}}|action=edit}} تعديلها], [{{fullurl:{{FULLPAGENAME}}}} قراءتها]، أو اختيار إنشاء صفحة أخرى باستخدام الصندوق بالأسفل.
@@ -52,6 +65,13 @@
 <createbox>break=no</createbox>",
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'createbox-create' => 'ܒܪܝ',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Meno25
  */
@@ -65,11 +85,43 @@
 <createbox>break=no</createbox>",
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'createbox-desc' => "Caxa d'entrada especializada pa la creación de páxines",
+	'createbox-create' => 'Crear',
+	'createbox-exists' => "Sentímoslo, \"'''{{FULLPAGENAME}}'''\" yá esiste.
+
+Nun puedes crear esta páxina, pero puedes [{{fullurl:{{FULLPAGENAME}}|action=edit}} editala], [{{fullurl:{{FULLPAGENAME}}}} lleela], o elixir crear una páxina diferente usando la caxa d'abaxo.
+
+<createbox>break=no</createbox>",
+);
+
+/** Bavarian (Boarisch)
+ * @author Mucalexx
+ */
+$messages['bar'] = array(
+	'createbox-exists' => "„'''{{FULLPAGENAME}}'''“ existiard beraits.
+
+Du kååst de Saiten ned åleeng, ower du kååstas [{{fullurl:{{FULLPAGENAME}}|action=edit}} beorwaiten], [{{fullurl:{{FULLPAGENAME}}}} leesen] oder a åndre Seiten mid da Hüif vom untensteehaten Aigobföidl åleeng.
+
+<createbox>break=no</createbox>",
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
+ * @author Jim-by
+ * @author Zedlik
  */
 $messages['be-tarask'] = array(
+	'createbox-desc' => 'Спэцыялізаванае поле ўводу для стварэньня старонак',
 	'createbox-create' => 'Стварыць',
+	'createbox-exists' => "Прабачце, «'''{{FULLPAGENAME}}'''» ужо існуе.
+
+Вы ня можаце стварыць гэту старонку, але Вы можаце [{{fullurl:{{FULLPAGENAME}}|action=edit}} рэдагаваць яе], [{{fullurl:{{FULLPAGENAME}}}} чытаць яе] альбо стварыць іншую старонку з дапамогай поля ніжэй.
+
+<createbox>break=no</createbox>",
 );
 
 /** Bulgarian (Български)
@@ -79,6 +131,27 @@
 	'createbox-create' => 'Създаване',
 );
 
+/** Bengali (বাংলা)
+ * @author Wikitanvir
+ */
+$messages['bn'] = array(
+	'createbox-desc' => 'পাতা তৈরির জন্য বিশেষ ইনপুট বক্স',
+	'createbox-create' => 'তৈরি করুন',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'createbox-desc' => "Boest skridaozañ gouestlet d'ar c'hrouiñ pajennoù",
+	'createbox-create' => 'Krouiñ',
+	'createbox-exists' => "Ho tigarez, bez' ez eus eus \"'''{{FULLPAGENAME}}'''\" c'hoazh.
+
+N'haller ket krouiñ ar bajenn-mañ, met gallout a reer [{{fullurl:{{FULLPAGENAME}}|action=edit}} degas kemmoù enni], [{{fullurl:{{FULLPAGENAME}}}} lenn anezhi], pe dibab krouiñ ur bajenn all en ur implijout ar voest a-is.
+
+<createbox>break=no</createbox>",
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
@@ -104,20 +177,69 @@
 	'createbox-create' => 'Creà',
 );
 
+/** Czech (Česky)
+ * @author Jkjk
+ */
+$messages['cs'] = array(
+	'createbox-desc' => 'Speciální vkládací pole pro vytváření stránek',
+	'createbox-create' => 'Vytvořit',
+	'createbox-exists' => "Omlouváme se, ale \"'''{{FULLPAGENAME}}'''\" již existuje.
+
+Nemůžete vytvořit tuto stránku, ale můžete jí [{{fullurl:{{FULLPAGENAME}}|action=edit}} editovat], [{{fullurl:{{FULLPAGENAME}}}} zobrazit], nebo vytvořit jinou stránku pomocí následujícího pole.
+
+<createbox>break=no</createbox>",
+);
+
+/** Welsh (Cymraeg)
+ * @author Lloffiwr
+ */
+$messages['cy'] = array(
+	'createbox-desc' => "Blwch mewnbynnu arbennig ar gyfer dechrau tudalen o'r newydd",
+	'createbox-create' => 'Dechrau',
+	'createbox-exists' => "Mae'n ddrwg gennym, mae'r dudalen \"'''{{FULLPAGENAME}}'''\" ar gael yn barod.
+
+Ni ellwch ddechrau'r dudalen o'r newydd, ond gallwch [{{fullurl:{{FULLPAGENAME}}|action=edit}} ei golygu], neu [{{fullurl:{{FULLPAGENAME}}}} ei darllen], neu dechrau tudalen arall gan ddefnyddio'r blwch isod.
+
+<createbox>break=no</createbox>",
+);
+
 /** German (Deutsch)
  * @author ChrisiPK
+ * @author Kghbln
  * @author Revolus
  */
 $messages['de'] = array(
-	'createbox-desc' => 'Spezielles Eingabefeld zur Seitenerstellung',
+	'createbox-desc' => 'Ermöglicht ein spezielles Eingabefeld zur Seitenerstellung',
 	'createbox-create' => 'Erstellen',
+	'createbox-exists' => "„'''{{FULLPAGENAME}}'''“ ist bereits vorhanden.
+
+Du kannst diese Seite daher nicht anlegen, sie aber [{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten], [{{fullurl:{{FULLPAGENAME}}}} lesen] oder eine Seite anderen Namens mithilfe des untenstehenden Eingabefeldes anlegen.
+
+<createbox>break=no</createbox>",
+);
+
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Imre
+ */
+$messages['de-formal'] = array(
 	'createbox-exists' => "„'''{{FULLPAGENAME}}'''“ existiert bereits.
 
-Du kannst diese Seite nicht anlegen, aber du kannst sie [{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten], [{{fullurl:{{FULLPAGENAME}}}} lesen] oder eine andere Seite mithilfe des untenstehenden Eingabefeldes anlegen.
+Sie können diese Seite nicht anlegen, aber Sie können sie [{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten], [{{fullurl:{{FULLPAGENAME}}}} lesen] oder eine andere Seite mithilfe des untenstehenden Eingabefeldes anlegen.
 
 <createbox>break=no</createbox>",
 );
 
+/** Zazaki (Zazaki)
+ * @author Erdemaslancan
+ */
+$messages['diq'] = array(
+	'createbox-exists' => "Xeta, \"'''{{FULLPAGENAME}}'''\" xora esta.
+
+Feqet şıma şenê [{{fullurl:{{FULLPAGENAME}}|action=edit}} bıvurnê],  ya zi [{{fullurl:{{FULLPAGENAME}}}} buwanê], ya na  dora cêrêna peşti gerênra şıma şenê  zewmi pela vırazê.
+
+<createbox>break=no</createbox>",
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
@@ -132,10 +254,23 @@
 <createbox>break=no</createbox>",
 );
 
+/** Ewe (Eʋegbe)
+ * @author Natsubee
+ */
+$messages['ee'] = array(
+	'createbox-desc' => 'Go tɔxɛ na axa gɔmedzedze',
+	'createbox-create' => 'Dze egɔme',
+	'createbox-exists' => "Taflatse, woŋlɔ \"'''{{FULLPAGENAME}}'''\" xoxo.
+
+Wòmateŋu adze axa sia gɔme o, ke boŋ wòateŋu [{{fullurl:{{FULLPAGENAME}}|action=edit}} atrɔ asi le eŋu], [{{fullurl:{{FULLPAGENAME}}}} alo axlẽ], alo wòateŋu adze axa bubu gɔme kple go si le afisia ɖome.",
+);
+
 /** Greek (Ελληνικά)
  * @author Konsnos
+ * @author ZaDiak
  */
 $messages['el'] = array(
+	'createbox-desc' => 'Ειδικευμένο inputbox για δημιουργία σελίδων',
 	'createbox-create' => 'Δημιουργία',
 );
 
@@ -151,6 +286,7 @@
  * @author Imre
  */
 $messages['es'] = array(
+	'createbox-desc' => 'Tabla de ingreso especializada para creación de página',
 	'createbox-create' => 'Crear',
 	'createbox-exists' => "Disculpe, \"'''{{FULLPAGENAME}}'''\" ya existe.
 
@@ -159,6 +295,13 @@
 <createbox>break=no</createbox>",
 );
 
+/** Estonian (Eesti)
+ * @author Avjoska
+ */
+$messages['et'] = array(
+	'createbox-create' => 'Loo',
+);
+
 /** Basque (Euskara)
  * @author An13sa
  */
@@ -195,6 +338,13 @@
 <createbox>break=no</createbox>",
 );
 
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'createbox-create' => 'Fâre',
+);
+
 /** Galician (Galego)
  * @author Toliño
  */
@@ -212,7 +362,7 @@
  * @author Omnipaedista
  */
 $messages['grc'] = array(
-	'createbox-create' => 'Ποεῖν',
+	'createbox-create' => 'Ποιεῖν',
 );
 
 /** Swiss German (Alemannisch)
@@ -228,6 +378,24 @@
 <createbox>break=no</createbox>",
 );
 
+/** Gujarati (ગુજરાતી)
+ * @author Ashok modhvadia
+ */
+$messages['gu'] = array(
+	'createbox-desc' => 'પાનું બનાવવા માટેનું વિશેષ આગતચોકઠું',
+	'createbox-create' => 'બનાવો',
+	'createbox-exists' => "માફ કરો,\"'''{{FULLPAGENAME}}'''\" પહેલેથી અસ્તિત્વમાં છે.
+
+તમે આ પાનું બનાવી શકતા નથી, પરંતુ તમે [{{fullurl:{{FULLPAGENAME}}|action=edit}} સંપાદિત] કરી શકો છો,[{{fullurl:{{FULLPAGENAME}}}} વાંચી શકો છો], અથવા નિચેનાં ચોકઠાનો ઉપયોગ કરી અલગ પાનું બનાવી શકો છો.
+
+<createbox>break=no</createbox>",
+);
+
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'createbox-create' => 'Ƙirƙira',
+);
+
 /** Hakka (Hak-kâ-fa)
  * @author Hakka
  */
@@ -287,6 +455,32 @@
 <createbox>break=no</createbox>",
 );
 
+/** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ */
+$messages['id'] = array(
+	'createbox-desc' => '"Inputbox" khusus untuk pembuatan halaman',
+	'createbox-create' => 'Buat',
+	'createbox-exists' => "Maaf, \"'''{{FULLPAGENAME}}'''\" sudah ada.
+
+Anda tidak dapat membuat halaman ini, namun Anda dapat [{{fullurl:{{FULLPAGENAME}}|action=edit}} menyuntingnya], [{{fullurl:{{FULLPAGENAME}}}} membacanya], atau membuat halaman lainnya dengan menggunakan kotak di bawah ini.
+
+<createbox>break=no</createbox>",
+);
+
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'createbox-desc' => 'Ntiyéntiyé di mkpà maka éké ihü',
+	'createbox-create' => 'Ké',
+	'createbox-exists' => "Ndó, \"'''{{FULLPAGENAME}}'''\" di kwà.
+
+Í nweríkí ké ihü á, mànà Í nwẹríkí [{{fullurl:{{FULLPAGENAME}}|action=edit}} rüo élú yá], [{{fullurl:{{FULLPAGENAME}}}} gwuó ya], ma Í jí ngwa nor nà àlà ngá Í kpátá ihü nke òzór.
+
+<createbox>gbàjié=mbạ</createbox>",
+);
+
 /** Italian (Italiano)
  * @author Pietrodn
  */
@@ -328,6 +522,20 @@
 <createbox>break=no</createbox>",
 );
 
+/** Korean (한국어)
+ * @author Klutzy
+ * @author Yknok29
+ */
+$messages['ko'] = array(
+	'createbox-desc' => '새 문서 생성을 편리하게 만들어 주는 입력 상자',
+	'createbox-create' => '생성',
+	'createbox-exists' => "‘'''{{FULLPAGENAME}}'''’ 문서가 이미 존재합니다.
+
+따라서 문서를 새로 만들 수는 없지만, [{{fullurl:{{FULLPAGENAME}}|action=edit}} 이 문서를 편집하거나] [{{fullurl:{{FULLPAGENAME}}}} 읽을 수] 있습니다. 또는, 아래 상자를 이용해 다른 문서를 만들어 주세요.
+
+<createbox>break=no</createbox>",
+);
+
 /** Krio (Krio)
  * @author Jose77
  */
@@ -335,7 +543,7 @@
 	'createbox-create' => 'Mek sohmtin',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
@@ -358,9 +566,50 @@
 	'createbox-create' => 'Maachen',
 	'createbox-exists' => "Pardon, \"'''{{FULLPAGENAME}}'''\" gëtt et schonn.
 
-Dir kënnt dës Sàit net uleeën, awer Dir kënnt [{{fullurl:{{FULLPAGENAME}}|action=edit}} s'änneren], [{{fullurl:{{FULLPAGENAME}}}} liest] oder wielt fir eng aner Säit unzeleeë mat Hellëf vun der Kescht ënnendrënner.",
+Dir kënnt dës Säit net uleeën, awer Dir kënnt [{{fullurl:{{FULLPAGENAME}}|action=edit}} s'änneren], [{{fullurl:{{FULLPAGENAME}}}} liest] oder wielt fir eng aner Säit unzeleeë mat Hëllef vun der Këscht ënnendrënner.",
 );
 
+/** Basa Banyumasan (Basa Banyumasan)
+ * @author StefanusRA
+ */
+$messages['map-bms'] = array(
+	'createbox-desc' => '"Inputbox" khusus kanggo nggawe kaca',
+	'createbox-create' => 'Gawe',
+	'createbox-exists' => "Pangapura, \"'''{{FULLPAGENAME}}'''\" uwis ana.
+
+Rika ora teyeng gawe kaca kiye, ningen Rika teyeng [{{fullurl:{{FULLPAGENAME}}|action=edit}} nyunting], [{{fullurl:{{FULLPAGENAME}}}} maca], utawa nggawe kaca sejene nganggo kotak nang ngisor kiye.
+
+<createbox>break=no</createbox>",
+);
+
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'createbox-desc' => "Boaty fampidirana teny natokana ho an'ny famoronana pejy",
+	'createbox-create' => 'Amboary',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'createbox-desc' => 'Специјализирана вносна кутија за создавање страници',
+	'createbox-create' => 'Создај',
+	'createbox-exists' => "Жалиме, но „'''{{FULLPAGENAME}}'''“ веќе постои.
+
+Не можете да ја создадете оваа страница, но можете да ја [{{fullurl:{{FULLPAGENAME}}|action=edit}} уредите], [{{fullurl:{{FULLPAGENAME}}}} прочитате], или да изберете да создадете друга страница со помош на кутијата подолу.
+
+<createbox>break=no</createbox>",
+);
+
+/** Malayalam (മലയാളം)
+ * @author Praveenp
+ */
+$messages['ml'] = array(
+	'createbox-create' => 'സൃഷ്ടിക്കുക',
+);
+
 /** Marathi (मराठी)
  * @author Mahitgar
  */
@@ -368,6 +617,19 @@
 	'createbox-create' => 'तयार करा',
 );
 
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ */
+$messages['ms'] = array(
+	'createbox-desc' => 'Ruang input khusus untuk penciptaan laman',
+	'createbox-create' => 'Cipta',
+	'createbox-exists' => "Maaf, \"'''{{FULLPAGENAME}}'''\" sudah wujud.
+
+Anda tidak boleh mencipta laman ini, tetapi anda boleh [{{fullurl:{{FULLPAGENAME}}|action=edit}} menyuntingnya], [{{fullurl:{{FULLPAGENAME}}}} membacanya], atau memilih untuk mencipta laman yang baru dengan menggunakan ruangan di bawah.
+
+<createbox>break=no</createbox>",
+);
+
 /** Maltese (Malti)
  * @author Chrisportelli
  */
@@ -388,6 +650,28 @@
 	'createbox-create' => 'Ticchīhuāz',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'createbox-desc' => 'Spesialisert tekstboks for sideoppretting',
+	'createbox-create' => 'Opprett',
+	'createbox-exists' => "Beklager, «'''{{FULLPAGENAME}}'''» finnes fra før.
+
+Du kan ikke opprette denne siden, men du kan [{{fullurl:{{FULLPAGENAME}}|action=edit}} redigere den], [{{fullurl:{{FULLPAGENAME}}}} lese den] eller opprette en annen siden med hjelp av boksen nedenfor.
+
+<createbox>break=no</createbox>",
+);
+
+/** Nepali (नेपाली)
+ * @author Bhawani Gautam
+ * @author Bhawani Gautam Rhk
+ */
+$messages['ne'] = array(
+	'createbox-desc' => 'पृष्ठ सृजनाको निम्ति विशेष इनपुट बाकस',
+	'createbox-create' => 'सृजना गर्ने',
+);
+
 /** Dutch (Nederlands)
  * @author Siebrand
  */
@@ -414,19 +698,6 @@
 <createbox>break=no</createbox>",
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'createbox-desc' => 'Spesialisert tekstboks for sideoppretting',
-	'createbox-create' => 'Opprett',
-	'createbox-exists' => "Beklager, «'''{{FULLPAGENAME}}'''» finnes fra før.
-
-Du kan ikke opprette denne siden, men du kan [{{fullurl:{{FULLPAGENAME}}|action=edit}} redigere den], [{{fullurl:{{FULLPAGENAME}}}} lese den] eller opprette en annen siden med hjelp av boksen nedenfor.
-
-<createbox>break=no</createbox>",
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
@@ -440,6 +711,20 @@
 <createbox>break=no</createbox>",
 );
 
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Odisha1
+ */
+$messages['or'] = array(
+	'createbox-create' => 'ତିଆରି',
+);
+
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'createbox-create' => 'Schtaerte',
+);
+
 /** Polish (Polski)
  * @author Sp5uhe
  * @author Wpedzich
@@ -454,23 +739,42 @@
 <createbox>break=no</createbox>",
 );
 
+/** Piedmontese (Piemontèis)
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'createbox-desc' => 'Inputbox specialisà për creassion ëd pàgine',
+	'createbox-create' => 'Crea',
+	'createbox-exists' => "Am dëspias, \"'''{{FULLPAGENAME}}'''\" a esist già.
+
+It peule pa creé sta pàgina-sì, ma it peule [{{fullurl:{{FULLPAGENAME}}|action=edit}} modifichela], [{{fullurl:{{FULLPAGENAME}}}} lesla], o serne ëd creé na pàgina diferenta an dovrand ël box sota.
+
+<createbox>break=no</createbox>",
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
 	'createbox-create' => 'جوړول',
+	'createbox-exists' => "بخښنه دې وي چې د \"'''{{FULLPAGENAME}}'''\" په نوم مخ د پخوا نه شته.
+
+تاسې دا مخ نه شی جوړولای، خو تاسې کولای شی چې [{{fullurl:{{FULLPAGENAME}}|action=edit}} سم يې کړی]، [{{fullurl:{{FULLPAGENAME}}}} وې لولی]، او يا هم د لانديني چوکاټ په کارولو سره په کوم بل نوم يو مخ جوړ کړی.
+
+<createbox>break=no</createbox>",
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  * @author Waldir
  */
 $messages['pt'] = array(
-	'createbox-desc' => 'Inputbox especializado para a criação de páginas',
+	'createbox-desc' => 'Caixa especializada para a criação de páginas',
 	'createbox-create' => 'Criar',
 	'createbox-exists' => "Desculpe, \"'''{{FULLPAGENAME}}'''\" já existe.
 
-Você não pode criar esta página, mas pode [{{fullurl:{{FULLPAGENAME}}|action=edit}} editá-la], 
+Não pode criar esta página, mas pode [{{fullurl:{{FULLPAGENAME}}|action=edit}} editá-la], 
 [{{fullurl:{{FULLPAGENAME}}}} lê-la], ou optar por criar uma página diferente usando a caixa abaixo.
 
 <createbox>break=no</createbox>",
@@ -501,7 +805,13 @@
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
+	'createbox-desc' => 'scatele de input specializzate pe le ccreaziune de le pàggene',
 	'createbox-create' => 'Ccreje',
+	'createbox-exists' => "Me dispiace, \"'''{{FULLPAGENAME}}'''\" già esiste.
+
+Tu non ge puè ccrejà sta pàgene, ma tu 'a puè [{{fullurl:{{FULLPAGENAME}}|action=edit}} cangià], [{{fullurl:{{FULLPAGENAME}}}} leggerle], o scacchie de ccrejà 'a pàgene cu 'nu nome differende ausanne 'a scatele ca ste aqquà sotte.
+
+<createbox>break=no</createbox>",
 );
 
 /** Russian (Русский)
@@ -519,6 +829,21 @@
 <createbox>break=no</createbox>",
 );
 
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'createbox-create' => 'Створити',
+);
+
+/** Sakha (Саха тыла)
+ * @author HalanTul
+ */
+$messages['sah'] = array(
+	'createbox-desc' => 'Сирэй айарга аналлаах формалар',
+	'createbox-create' => 'Айарга',
+);
+
 /** Slovak (Slovenčina)
  * @author Helix84
  */
@@ -532,10 +857,22 @@
 <createbox>break=no</createbox>",
 );
 
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬) */
+$messages['sr-ec'] = array(
+	'createbox-create' => 'Направи',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬) */
+$messages['sr-el'] = array(
+	'createbox-create' => 'Napravi',
+);
+
 /** Sundanese (Basa Sunda)
  * @author Irwangatot
+ * @author Kandar
  */
 $messages['su'] = array(
+	'createbox-desc' => 'Kotak asupan husus pikeun nyieun kaca',
 	'createbox-create' => 'Jieun',
 );
 
@@ -556,13 +893,26 @@
  * @author Lloffiwr
  */
 $messages['sw'] = array(
+	'createbox-desc' => 'Kisanduku ingizo maalum kwa ajili ya kuanzisha ukurasa',
 	'createbox-create' => 'Anzisha kurasa',
+	'createbox-exists' => "Kumradhi, \"'''{{FULLPAGENAME}}'''\" inapatikana tayari.
+
+Huwezi kuanzisha ukurasa, lakini unaweza [{{fullurl:{{FULLPAGENAME}}|action=edit}} kuuhariri] au [{{fullurl:{{FULLPAGENAME}}}} kuusoma], au kuanzisha ukurasa mwingine kwa kutumia sanduku iliyopo chini.",
 );
 
+/** Tamil (தமிழ்)
+ * @author TRYPPN
+ */
+$messages['ta'] = array(
+	'createbox-create' => 'உருவாக்கவும்',
+);
+
 /** Telugu (తెలుగు)
+ * @author Kiranmayee
  * @author Veeven
  */
 $messages['te'] = array(
+	'createbox-desc' => 'వ్యాసమును సృష్టించుటకు ఒక ప్రత్యేక ఇన్పుట్ బాక్స్',
 	'createbox-create' => 'సృష్టించు',
 	'createbox-exists' => "క్షమించండి, \"'''{{FULLPAGENAME}}'''\" ఇప్పటికే ఉంది.
 
@@ -571,13 +921,47 @@
 <createbox>break=no</createbox>",
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tetum (Tetun)
+ * @author MF-Warburg
+ */
+$messages['tet'] = array(
+	'createbox-create' => 'Kria',
+);
+
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
 	'createbox-create' => 'Эҷод',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'createbox-create' => 'Eçod',
+);
+
+/** Thai (ไทย)
+ * @author Ans
+ */
+$messages['th'] = array(
+	'createbox-desc' => 'inputbox ที่ออกแบบมาเฉพาะสำหรับการสร้างหน้าใหม่',
+	'createbox-create' => 'สร้างหน้า',
+	'createbox-exists' => "ขออภัย, มีเนื้อหาชื่อ \"'''{{FULLPAGENAME}}'''\" อยู่ก่อนแล้ว.
+
+คุณไม่สามารถสร้างหน้านี้ได้, แต่คุณสามารถ[{{fullurl:{{FULLPAGENAME}}|action=edit}} แก้ไข]หรือ[{{fullurl:{{FULLPAGENAME}}}} เปิดอ่าน]หน้านี้, หรือเลือกที่จะสร้างเนื้อหาในชื่ออื่น โดยใช้กล่องด้านล่างนี้.
+
+<createbox>break=no</createbox>",
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'createbox-create' => 'Döret',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -662,13 +1046,27 @@
  * @author Gzdavidwong
  */
 $messages['zh-hans'] = array(
+	'createbox-desc' => '于Wiki中包含创建页面的输入框',
 	'createbox-create' => '建立',
+	'createbox-exists' => "抱歉,'''{{FULLPAGENAME}}'''已经存在于{{SITENAME}}。
+
+你不能创建本页,但你可以[{{fullurl:{{FULLPAGENAME}}|action=edit}} 编辑本页]、[{{fullurl:{{FULLPAGENAME}}}} 阅读本页]或在下方输入另一个名字继续创建页面:
+
+<createbox>break=no</createbox>",
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Horacewai2
+ * @author Mark85296341
  * @author Wrightbus
  */
 $messages['zh-hant'] = array(
+	'createbox-desc' => '於Wiki中包含建立頁面的輸入框',
 	'createbox-create' => '建立',
+	'createbox-exists' => "抱歉,'''{{FULLPAGENAME}}'''已經存在於{{SITENAME}}。
+
+你不能建立本頁,但你可以[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編輯本頁]、[{{fullurl:{{FULLPAGENAME}}}} 閱讀本頁]或在下方輸入另一個名字繼續建立頁面:
+
+<createbox>break=no</createbox>",
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/CreateBox/CreateBox.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -20,98 +20,101 @@
 
  You should have received a copy of the GNU General Public License along
  with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  http://www.gnu.org/copyleft/gpl.html
 
  To install, add following to LocalSettings.php
-   require_once("extensions/create.php");
+   require_once("extensions/CreateBox/CreateBox.php");
 */
 
-//Avoid unstubbing $wgParser too early on modern (1.12+) MW versions, as per r35980
-if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-	$wgHooks['ParserFirstCallInit'][] = 'wfCreateBox';
-} else {
-	$wgExtensionFunctions[] = 'wfCreateBox';
+if ( !defined( 'MEDIAWIKI' ) ) {
+	die( "This is not a valid entry point.\n" );
 }
 
+$wgHooks['ParserFirstCallInit'][] = 'wfCreateBox';
+
 $wgHooks['UnknownAction'][] = 'actionCreate';
 $wgExtensionCredits['parserhook'][] = array(
-	'name'           => 'CreateBox',
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:CreateBox',
-	'description'    => 'Specialized inputbox for page creation',
-	'author'         => 'Ross McClure',
-	'version'        => '1.6',
+	'path' => __FILE__,
+	'name' => 'CreateBox',
+	'author' => 'Ross McClure',
+	'version' => '1.6',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:CreateBox',
 	'descriptionmsg' => 'createbox-desc',
 );
 
-$dir = dirname(__FILE__) . '/';
+$dir = dirname( __FILE__ ) . '/';
 $wgExtensionMessagesFiles['CreateBox'] = $dir . 'CreateBox.i18n.php';
 
-function wfCreateBox() {
-    global $wgParser;
-    $wgParser->setHook( 'createbox', 'acMakeBox' );
+function wfCreateBox( $parser ) {
+	$parser->setHook( 'createbox', 'acMakeBox' );
 	return true;
 }
 
-function actionCreate($action, $article) {
-	wfLoadExtensionMessages('CreateBox');
-    if($action != 'create') return true;
+function actionCreate( $action, $article ) {
+	if( $action != 'create' ) {
+		return true;
+	}
 
-    global $wgRequest;
-    $prefix = $wgRequest->getVal('prefix');
-    $text = $wgRequest->getVal('title');
-    if($prefix && strpos($text, $prefix)!==0) {
-        $title = Title::newFromText( $prefix . $text );
-        if(is_null($title)) {
-            global $wgTitle;
-            $wgTitle = Title::makeTitle( NS_SPECIAL, 'Badtitle' );
-            throw new ErrorPageError( 'badtitle', 'badtitletext' );
-        }
-        else if($title->getArticleID() == 0) acRedirect($title, 'edit');
-        else acRedirect($title, 'create');
-    }
-    else if($wgRequest->getVal('section')=='new' || $article->getID() == 0) {
-        acRedirect($article->getTitle(), 'edit');
-    } else {
-        global $wgOut;
-        $text = $article->getTitle()->getPrefixedText();
-        $wgOut->setPageTitle($text);
-        $wgOut->setHTMLTitle(wfMsg('pagetitle', $text.' - '.wfMsg('createbox-create')));
-        $wgOut->addWikiText(wfMsg('createbox-exists'));
-    }
-    return false;
+	global $wgRequest;
+	$prefix = $wgRequest->getVal( 'prefix' );
+	$text = $wgRequest->getVal( 'title' );
+	if( $prefix && strpos( $text, $prefix ) !== 0 ) {
+		$title = Title::newFromText( $prefix . $text );
+		if( is_null( $title ) ) {
+			global $wgTitle;
+			$wgTitle = SpecialPage::getTitleFor( 'Badtitle' );
+			throw new ErrorPageError( 'badtitle', 'badtitletext' );
+		} elseif( $title->getArticleID() == 0 ) {
+			acRedirect( $title, 'edit' );
+		} else {
+			acRedirect( $title, 'create' );
+		}
+	} elseif( $wgRequest->getVal( 'section' ) == 'new' || $article->getID() == 0 ) {
+		acRedirect( $article->getTitle(), 'edit' );
+	} else {
+		global $wgOut;
+		$text = $article->getTitle()->getPrefixedText();
+		$wgOut->setPageTitle( $text );
+		$wgOut->setHTMLTitle( wfMsg( 'pagetitle', $text . ' - ' . wfMsg( 'createbox-create' ) ) );
+		$wgOut->addWikiMsg( 'createbox-exists' );
+	}
+	return false;
 }
 
-function acGetOption(&$input,$name,$value=NULL) {
-    if(preg_match("/^\s*$name\s*=\s*(.*)/mi",$input,$matches)) {
-        if(is_int($value)) return intval($matches[1]);
-        else return htmlspecialchars($matches[1]);
-    }
-    return $value;
+function acGetOption( $input, $name, $value = null ) {
+	if( preg_match( "/^\s*$name\s*=\s*(.*)/mi", $input, $matches ) ) {
+		if( is_int( $value ) ) {
+			return intval( $matches[1] );
+		} else {
+			return htmlspecialchars( $matches[1] );
+		}
+	}
+	return $value;
 }
 
-function acMakeBox($input, $argv, &$parser) {
-	wfLoadExtensionMessages('CreateBox');
-    global $wgRequest, $wgScript;
-    if($wgRequest->getVal('action')=='create') {
-        $prefix = $wgRequest->getVal('prefix');
-        $preload = $wgRequest->getVal('preload');
-        $editintro = $wgRequest->getVal('editintro');
-        $text = $parser->getTitle()->getPrefixedText();
-        if($prefix && strpos($text, $prefix)===0)
-            $text = substr($text, strlen($prefix));
-    } else {
-        $prefix = acGetOption($input,'prefix');
-        $preload = acGetOption($input,'preload');
-        $editintro = acGetOption($input,'editintro');
-        $text = acGetOption($input,'default');
-    }
-    $submit = htmlspecialchars($wgScript);
-    $width = acGetOption($input, 'width', 0);
-    $align = acGetOption($input, 'align', 'center');
-    $br = ((acGetOption($input, 'break', 'no')=='no') ? '' : '<br />');
-    $label = acGetOption($input, 'buttonlabel', wfMsgHtml('createbox-create'));
-    $output=<<<ENDFORM
+function acMakeBox( $input, $argv, $parser ) {
+	global $wgRequest, $wgScript;
+	if( $wgRequest->getVal( 'action' ) == 'create' ) {
+		$prefix = acGetOption( $input, 'prefix' );
+		$preload = acGetOption( $input, 'preload' );
+		$editintro = acGetOption( $input, 'editintro' ); 
+		$text = $parser->getTitle()->getPrefixedText();
+		if( $prefix && strpos( $text, $prefix ) === 0 ) {
+			$text = substr( $text, strlen( $prefix ) );
+		}
+	} else {
+		$prefix = acGetOption( $input, 'prefix' );
+		$preload = acGetOption( $input, 'preload' );
+		$editintro = acGetOption( $input, 'editintro' );
+		$text = acGetOption( $input, 'default' );
+	}
+	$submit = htmlspecialchars( $wgScript );
+	$width = acGetOption( $input, 'width', 0 );
+	$align = acGetOption( $input, 'align', 'center' );
+	$br = ( ( acGetOption( $input, 'break', 'no' ) == 'no' ) ? '' : '<br />' );
+	$label = acGetOption( $input, 'buttonlabel', wfMsgHtml( 'createbox-create' ) );
+	$output = <<<ENDFORM
 <div class="createbox" align="{$align}">
 <form name="createbox" action="{$submit}" method="get" class="createboxForm">
 <input type='hidden' name="action" value="create">
@@ -122,15 +125,15 @@
 <input type='submit' name="create" class="createboxButton" value="{$label}"/>
 </form></div>
 ENDFORM;
-    return $parser->replaceVariables($output);
+	return $parser->replaceVariables( $output );
 }
 
-function acRedirect($title, $action) {
-    global $wgRequest, $wgOut;
-    $query = "action={$action}&prefix=" . $wgRequest->getVal('prefix') .
-        "&preload=" . $wgRequest->getVal('preload') .
-        "&editintro=" . $wgRequest->getVal('editintro') .
-        "&section=" . $wgRequest->getVal('section');
-    $wgOut->setSquidMaxage( 1200 );
-    $wgOut->redirect($title->getFullURL( $query ), '301');
+function acRedirect( $title, $action ) {
+	global $wgRequest, $wgOut;
+	$query = "action={$action}&prefix=" . $wgRequest->getVal( 'prefix' ) .
+		'&preload=' . $wgRequest->getVal( 'preload' ) .
+		'&editintro=' . $wgRequest->getVal( 'editintro' ) .
+		'&section=' . $wgRequest->getVal( 'section' );
+	$wgOut->setSquidMaxage( 1200 );
+	$wgOut->redirect( $title->getFullURL( $query ), '301' );
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/FootNote/Footnote.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/FootNote/Footnote.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/FootNote/Footnote.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,45 +1,52 @@
 <?php
-# Copyright (C) 2005 Anders Wegge Jakobsen <awegge at gmail.com>
-# http://www.mediawiki.org/
-# 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or 
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# http://www.gnu.org/copyleft/gpl.html
 
 /**
- 
-* Extension to add footnotes to the wiki pages. 
-*
-* Use with:
-*
-* <footnote>This text is placed at the end of the page.</footnote>
-*
-* @author Anders Wegge Jakobsen <awegge at gmail.com>
-* @addtogroup Extensions
+ * Copyright (C) 2005 Anders Wegge Jakobsen <awegge at gmail.com>
+ * http://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or 
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Extension to add footnotes to the wiki pages. 
+ *
+ * Use with:
+ *
+ * <footnote>This text is placed at the end of the page.</footnote>
+ *
+ * @file
+ * @author Anders Wegge Jakobsen <awegge at gmail.com>
+ * @ingroup Extensions
  */
 
 if( !defined( 'MEDIAWIKI' ) ) {
 	die();
 }
 
+$wgExtensionCredits['parserhook'][] = array(
+	'path'           => __FILE__,
+	'name'           => 'Footnote',
+	'author'         => '',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:Footnote',
+);
 
-$wgExtensionFunctions[] = "wfFootnote";
+$wgHooks['ParserBeforeTidy'][] = 'insert_endnotes';
+$wgHooks['ParserFirstCallInit'][] = "wfFootnoteSetHook";
 
-function wfFootnote() {
-  global $wgParser, $wgHooks ;
-	$wgParser->setHook( "footnote" , 'parse_footnote' ) ;
-	$wgHooks['ParserBeforeTidy'][] = 'insert_endnotes' ;
+function wfFootnoteSetHook( $parser ) {
+	$parser->setHook( 'footnote', 'parse_footnote' );
+	return true;
 }
 
 $footnoteNotes = array() ;
@@ -57,7 +64,7 @@
 	$ret = "" ;
 	foreach( $footnoteNotes AS $num => $entry ) {
 		$x = " <a name='footnote{$num}'></a>\n";
-		$x = $x . "<li>$entry <a href='#footnoteback{$num}'>↑</a></li>\n" ;
+		$x = $x . "<li>$entry <a href='#footnoteback{$num}'>↑</a></li>\n" ;
 		$ret .= $x ;
 	}
 	$ret = "<hr /><ol>" . $ret . "</ol>" ;

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,8 +2,9 @@
 /**
  * Internationalisation file for extension FindSpam.
  *
- * @addtogroup Extensions
-*/
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
@@ -11,7 +12,7 @@
  * @author Tim Starling
  */
 $messages['en'] = array(
-	'imagemap_desc'                 => 'Allows client-side clickable image maps using <tt><nowiki><imagemap></nowiki></tt> tag',
+	'imagemap_desc'                 => 'Allows client-side clickable image maps using <code><imagemap></code> tag',
 	'imagemap_no_image'             => 'Error: must specify an image in the first line',
 	'imagemap_invalid_image'        => 'Error: image is invalid or non-existent',
 	'imagemap_bad_image'            => 'Error: image is blacklisted on this page',
@@ -19,9 +20,8 @@
 	'imagemap_invalid_title'        => 'Error: invalid title in link at line $1',
 	'imagemap_missing_coord'        => 'Error: not enough coordinates for shape at line $1',
 	'imagemap_unrecognised_shape'   => 'Error: unrecognised shape at line $1, each line must start with one of: default, rect, circle or poly',
-	'imagemap_no_areas'             => 'Error: at least one area specification must be given',
 	'imagemap_invalid_coord'        => 'Error: invalid coordinate at line $1, must be a number',
-	'imagemap_invalid_desc'         => 'Error: invalid desc specification, must be one of: <tt>$1</tt>',
+	'imagemap_invalid_desc'         => 'Error: invalid desc specification, must be one of: <code>$1</code>',
 	'imagemap_description'          => 'About this image',
 	# Note to translators: keep the same order
 	'imagemap_desc_types'           => 'top-right, bottom-right, bottom-left, top-left, none',
@@ -30,15 +30,26 @@
 
 /** Message documentation (Message documentation)
  * @author Purodha
+ * @author The Evil IP address
+ * @author Umherirrender
  */
 $messages['qqq'] = array(
-	'imagemap_desc' => 'Short description of the Imagemap extension, shown in [[Special:Version]]. Do not translate or change links.',
+	'imagemap_desc' => '{{desc}}',
+	'imagemap_desc_types' => '{{optional}}',
 );
 
 /** Afrikaans (Afrikaans)
+ * @author Naudefj
  * @author SPQRobin
+ * @author පසිඳු කාවින්ද
  */
 $messages['af'] = array(
+	'imagemap_no_image' => "Fout: moet 'n beeld op die eerste lyn spesifiseer",
+	'imagemap_invalid_image' => 'Fout: beeld is ongeldig of bestaan nie',
+	'imagemap_bad_image' => 'Fout: beeld is op die swartlys vir hierdie bladsy',
+	'imagemap_no_link' => 'Fout: geen geldige skakel was aan die einde van lyn $1 gevind nie',
+	'imagemap_invalid_title' => 'Fout: ongeldige titel in skakel op lyn $1',
+	'imagemap_missing_coord' => 'Fout: nie genoeg koördinate vir vorm op lyn $1',
 	'imagemap_description' => 'Beeldinligting',
 );
 
@@ -46,26 +57,26 @@
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'imagemap_desc' => "Premite mapas d'imachens punchables en o client fendo serbir a etiqueta <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Premite mapas d'imachens punchables en o client fendo servir a etiqueta <code><imagemap></code>",
 	'imagemap_no_image' => "Error: ha d'endicar una imachen a primer ringlera",
-	'imagemap_invalid_image' => 'Error: a imachen no ye conforme u no esiste',
+	'imagemap_invalid_image' => 'Error: a imachen no ye conforme u no existe',
 	'imagemap_bad_image' => 'Error: a imachen ye en a lista negra ta ista pachina',
-	'imagemap_no_link' => "Error: no s'ha trobato garra binclo conforme á la fin d'a ringlera $1",
-	'imagemap_invalid_title' => "Error: títol no conforme en o binclo d'a ringlera $1",
+	'imagemap_no_link' => "Error: no s'ha trobato garra vinclo conforme a la fin d'a ringlera $1",
+	'imagemap_invalid_title' => "Error: títol no conforme en o vinclo d'a ringlera $1",
 	'imagemap_missing_coord' => "Error: No bi'n ha prous de coordinadas ta definir a forma en a ringlera $1",
-	'imagemap_unrecognised_shape' => "Error: no s'ha reconoixito a forma en a ringlera $1, cada linia ha de prenzipiar con una d'as siguients espresions: default, rect, circle u poly",
-	'imagemap_no_areas' => "Error: s'ha d'endicar á o menos una espezificazión d'aria",
+	'imagemap_unrecognised_shape' => "Error: no s'ha reconoixito a forma en a ringlera $1, cada linia ha de prencipiar con una d'as siguients espresions: default, rect, circle u poly",
 	'imagemap_invalid_coord' => "Error: coordinada no conforme en a ringlera $1, ha d'estar un numero",
-	'imagemap_invalid_desc' => "Error: A descripzión (desc) espezificata no ye conforme, ha d'estar una de: <tt>$1</tt>",
-	'imagemap_description' => 'Informazión sobre ista imachen',
+	'imagemap_invalid_desc' => "Error: A descripción (desc) especificata no ye conforme, ha d'estar una de: <code>$1</code>",
+	'imagemap_description' => 'Información sobre ista imachen',
 	'imagemap_poly_odd' => "Error: s'ha trobato un polinomio con un numero impar de coordinadas en a linia $1",
 );
 
 /** Arabic (العربية)
  * @author Meno25
+ * @author OsamaK
  */
 $messages['ar'] = array(
-	'imagemap_desc' => 'يسمح بخرائط صور قابلة للضغط عليها من طرف العميل باستخدام وسم <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'يسمح بخرائط صور قابلة للضغط عليها من طرف العميل باستخدام وسم <code><imagemap></code>',
 	'imagemap_no_image' => 'خطأ: يجب تحديد صورة في السطر الأول',
 	'imagemap_invalid_image' => 'خطأ: الصورة غير صحيحة أو غير موجودة',
 	'imagemap_bad_image' => 'خطأ: الصورة في القائمة السوداء على هذه الصفحة',
@@ -73,10 +84,9 @@
 	'imagemap_invalid_title' => 'خطأ: عنوان غير صحيح في الوصلة عند السطر $1',
 	'imagemap_missing_coord' => 'خطأ: إحداثيات غير كافية للشكل عند السطر $1',
 	'imagemap_unrecognised_shape' => 'خطأ: شكل غير معروف عند السطر $1، كل سطر يجب أن يبدأ بواحد من: default، rect، circle أو poly',
-	'imagemap_no_areas' => 'خطأ: على الأقل محدد مساحة واحد يجب إعطاؤه',
 	'imagemap_invalid_coord' => 'خطأ: إحداثي غير صحيح عند السطر $1، يجب أن يكون رقما',
-	'imagemap_invalid_desc' => 'خطأ: محدد وصف غير صحيح، يجب أن يكون واحدا من: <tt>$1</tt>',
-	'imagemap_description' => 'حول هذه الصورة',
+	'imagemap_invalid_desc' => 'خطأ: محدد وصف غير صحيح، يجب أن يكون واحدا من: <code>$1</code>',
+	'imagemap_description' => 'عن هذه الصورة',
 	'imagemap_desc_types' => 'أعلى اليمين, أسفل اليمين, أسفل اليسار, أعلى اليسار, لا شيء',
 	'imagemap_poly_odd' => 'خطأ: تم العثور على مضلع بعدد فردي من الأضلاع في السطر $1',
 );
@@ -86,7 +96,7 @@
  * @author Ramsis II
  */
 $messages['arz'] = array(
-	'imagemap_desc' => 'بيسمح بخرايط صور قابلة للضغط عليها من طرف العميل باستخدام تاج <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'بيسمح بخرايط صور قابلة للضغط عليها من طرف العميل باستخدام تاج <code><imagemap></code>',
 	'imagemap_no_image' => 'غلط: لازم تحدد صورة فى السطر الاولانى.',
 	'imagemap_invalid_image' => 'غلط:الصورة مش صحيحة او مش موجودة',
 	'imagemap_bad_image' => 'غلط: الصورة فى البلاك ليست بتاعة الصفحة دى',
@@ -94,9 +104,8 @@
 	'imagemap_invalid_title' => 'غلط:عنوان مش صحيح فى اللينك عند السطر$1',
 	'imagemap_missing_coord' => 'غلط: إحداثيات مش كافية للشكل عند السطر $1',
 	'imagemap_unrecognised_shape' => 'غلط:شكل مش معروف عند السطر$1، كل سطر لازم يبتدى بواحد من دول: default, rect, circle او poly',
-	'imagemap_no_areas' => 'غلط: على الاقل محدد مساحة واحد لازم يتقدم',
 	'imagemap_invalid_coord' => 'غلط:احداثى مش صحيح عند السطر $1, لازم يكون رقم',
-	'imagemap_invalid_desc' => 'غلط: محدد وصف مش صحيح, لازم يكون واحد من دول: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'غلط: محدد وصف مش صحيح, لازم يكون واحد من دول: <code>$1</code>',
 	'imagemap_description' => 'عن الصورة دي',
 	'imagemap_desc_types' => 'اليمين من فوق،اليمين من تحت،الشمال من تحت،الشمال من فوق، ولا حاجة',
 	'imagemap_poly_odd' => 'خطأ: تم العثور على مضلع بعدد فردى من الأضلاع فى السطر $1',
@@ -106,7 +115,7 @@
  * @author Esbardu
  */
 $messages['ast'] = array(
-	'imagemap_desc' => "Permite los mapes d'imaxe clicables per aciu de la etiqueta <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Permite los mapes d'imaxe clicables per aciu de la etiqueta <code><imagemap></code>",
 	'imagemap_no_image' => 'Error: ha especificase una imaxe na primer llinia',
 	'imagemap_invalid_image' => 'Error: la imaxe nun ye válida o nun esiste',
 	'imagemap_bad_image' => "Error: La imaxe ta na llista prieta d'esta páxina",
@@ -114,27 +123,50 @@
 	'imagemap_invalid_title' => 'Error: títulu non válidu nel enllaz de la llinia $1',
 	'imagemap_missing_coord' => 'Error: nun hai abondes coordenaes pa formar la figura de la llinia $1',
 	'imagemap_unrecognised_shape' => "Error: figura non reconocida en llinia $1, cada llinia ha empecipiar con dalguna d'estes: default, rect, circle o poly",
-	'imagemap_no_areas' => "Error: ha conseñase a lo menos una especificación d'área",
 	'imagemap_invalid_coord' => 'Error: coordenada non válida en llinia $1, ha ser un númberu',
-	'imagemap_invalid_desc' => "Error: parámetru 'desc' non válidu, ha ser ún d'estos: <tt>$1</tt>",
+	'imagemap_invalid_desc' => "Error: parámetru 'desc' non válidu, ha ser ún d'estos: <code>$1</code>",
 	'imagemap_description' => 'Tocante a esta imaxe',
 	'imagemap_poly_odd' => 'Error: atopóse un polígonu con un númberu impar de coordenaes na llinia $1',
 );
 
+/** Azerbaijani (Azərbaycanca)
+ * @author Vago
+ */
+$messages['az'] = array(
+	'imagemap_desc_types' => 'yuxarı-sağ, aşağı-sağ, aşağı-sol, yuxarı-sol, heç nə',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'imagemap_desc' => '<code><imagemap></code> билдәһе ярҙамында килент яғында баҫмалы рәсемдәр картаһын күрһатеү мөмкинлеген бирә',
+	'imagemap_no_image' => 'Хата: беренсе юлда рәсем билдәләнгән булырға тейеш',
+	'imagemap_invalid_image' => 'Хата: рәсем дөрөҫ түгел йәки юҡ',
+	'imagemap_bad_image' => 'Хата: рәсем был биттә ҡара исемлеккә керә',
+	'imagemap_no_link' => 'Хата: $1 юлының аҙағында һылтанма дөрөҫ түгел',
+	'imagemap_invalid_title' => 'Хата: $1 юлында һылтанманың исеме дөрөҫ түгел',
+	'imagemap_missing_coord' => 'Хата: $1 юлында фигура өсөн координаталар етмәй',
+	'imagemap_unrecognised_shape' => 'Хата: $1 юлында танылмаған фигура, һәр юл default, rect, circle йәки poly асҡыс һүҙҙәренең береһе менән башланырға тейеш',
+	'imagemap_invalid_coord' => 'Хата: $1 юлында координата дөрөҫ түгел, һан булырға тейеш',
+	'imagemap_invalid_desc' => 'Хата: desc дөрөҫ күрһәтелмәгән, түбәндәгеләрҙең береһе булырға тейеш: <code>$1</code>',
+	'imagemap_description' => 'Рәсем тураһында',
+	'imagemap_poly_odd' => 'Хата: $1 юлындағы күпмөйөштөң координаталар һаны — таҡ һан',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
 $messages['bcc'] = array(
-	'imagemap_desc' => 'اجازت دن استفاده چه برچسپ<tt><nowiki><imagemap></nowiki></tt>نقشه یان تصاویر کلیکی کاربر-جهت',
+	'imagemap_desc' => 'اجازت دن استفاده چه برچسپ<code><imagemap></code>نقشه یان تصاویر کلیکی کاربر-جهت',
 	'imagemap_no_image' => '<imagemap>: بایدن یک تصویری ته خط اول مشخص کنیت',
 	'imagemap_invalid_image' => '<imagemap>: عکس نامعتبر یا موجود نهنت',
 	'imagemap_no_link' => '<imagemap>: هچ معتبرین لینکی ته آهر خط$1پیداگ نه بوت',
 	'imagemap_invalid_title' => '<imagemap>: نامعتبراین عنوان ته لینک ته خط $1',
 	'imagemap_missing_coord' => '<imagemap>: کافی ان هماهنگی په شکل نیست ته خط $1',
 	'imagemap_unrecognised_shape' => '<imagemap>: ناشناسین شکل ته خط $1، هر خط بایدن گون یکی چه شان شروه بیت:پیشفرض،مربع, گردیم یا باز',
-	'imagemap_no_areas' => '<imagemap>: حداقل بایدن یک ناحیه ای دهگ بیت',
 	'imagemap_invalid_coord' => '<imagemap>: نامعتبراین هماهنگی ته خطا $1, بایدن یک شماره بیت',
-	'imagemap_invalid_desc' => '<imagemap>: نامعتبراین مشخصه ای توضیح، بایدن یکی چه شان بیت: <tt>$1</tt>',
+	'imagemap_invalid_desc' => '<imagemap>: نامعتبراین مشخصه ای توضیح، بایدن یکی چه شان بیت: <code>$1</code>',
 	'imagemap_description' => 'ای عکسء باره',
 );
 
@@ -145,13 +177,13 @@
 	'imagemap_description' => 'Manónongod sa retratong ini',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
  */
 $messages['be-tarask'] = array(
-	'imagemap_desc' => 'Дазваляе стварэньне на старонцы кліента мапаў выявы з выкарыстаньнем тэгу <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Дазваляе стварэньне на старонцы кліента мапаў выявы з выкарыстаньнем тэгу <code><imagemap></code>',
 	'imagemap_no_image' => 'Памылка: у першым радку мусіць быць пазначаная выява',
 	'imagemap_invalid_image' => 'Памылка: няслушная выява альбо яна не існуе',
 	'imagemap_bad_image' => 'Памылка: выява на гэтай старонцы ўваходзіць у чорны сьпіс',
@@ -159,9 +191,8 @@
 	'imagemap_invalid_title' => 'Памылка: няслушная назва ў спасылцы ў радку $1',
 	'imagemap_missing_coord' => 'Памылка: недастаткова каардынатаў для фігуры ў радку $1',
 	'imagemap_unrecognised_shape' => 'Памылка: нераспазнаная фігура ў радку $1, кожны радок павінен пачынацца з: default, rect, circle ці poly',
-	'imagemap_no_areas' => 'Памылка: павінна быць пазначана хоць бы адна вобласьць',
 	'imagemap_invalid_coord' => 'Памылка: няправільная каардыната ў радку $1, павінна быць лічба',
-	'imagemap_invalid_desc' => 'Памылка: няслушнае значэньне desc, павінна быць адно з: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Памылка: няслушнае значэньне desc, павінна быць адно з: <code>$1</code>',
 	'imagemap_description' => 'Апісаньне выявы',
 	'imagemap_poly_odd' => 'Памылка: у радку $1 знойдзены шматкутнік зь няцотнай колькасьцю каардынатаў',
 );
@@ -172,14 +203,24 @@
 $messages['bg'] = array(
 	'imagemap_no_image' => 'Error: трябва да се укаже изображение на първия ред',
 	'imagemap_invalid_image' => 'Error: невалидно или липсващо изображение',
+	'imagemap_bad_image' => 'Грешка: има забрана за включване на изображението в тази страница',
 	'imagemap_no_link' => 'Error: липсва валидна препратка в края на ред $1',
 	'imagemap_invalid_title' => 'Error: невалидно заглавие в препратка на ред $1',
 	'imagemap_missing_coord' => 'Error: недостатъчно координати за фигура на ред $1',
 	'imagemap_unrecognised_shape' => 'Error: неразпозната фигура на ред $1; всеки ред трябва да са започва с някое от следните: default (по подразбиране), rect (правоъгълник), circle (кръг) или poly (многоъгълник)',
 	'imagemap_invalid_coord' => 'Error: невалидна координата на ред $1, трябва да бъде число',
+	'imagemap_invalid_desc' => 'Грешка: невалидна спецификация на описанието (desc), което трябва да бъде някое от следните: <code>$1</code>',
 	'imagemap_description' => 'Информация за изображението',
+	'imagemap_poly_odd' => 'Грешка: открит е многоъгълник (poly) с нечетен брой координати на ред $1',
 );
 
+/** Banjar (Bahasa Banjar)
+ * @author Alamnirvana
+ */
+$messages['bjn'] = array(
+	'imagemap_invalid_coord' => 'Nyunyuk: koordinat kada sah pada baris ka $1, musti barupa angka',
+);
+
 /** Bengali (বাংলা)
  * @author Bellayet
  */
@@ -190,29 +231,40 @@
 	'imagemap_no_link' => 'ত্রুটি:লাইন নম্বর $1 এ শেষ কোন সঠিক লিঙ্ক পাওয়া যায় নি',
 	'imagemap_invalid_title' => 'ত্রুটি:লাইন নম্বর $1 এ লিঙ্কে সঠিক শিরোনাম নাই',
 	'imagemap_missing_coord' => 'ত্রুটি:লাইন নম্বর $1 এ আকারের জন্য যথেষ্ট স্থানাংক নাই',
-	'imagemap_no_areas' => 'ত্রুটি:অন্তত একটি এলাকা নির্ধারণ করে দিতে হবে',
 	'imagemap_invalid_coord' => 'ত্রুটি:লাইন নম্বর $1 এ স্থানাংক সঠিক নয়, তা অবশ্যই সংখ্যা হবে',
 	'imagemap_description' => 'এই চিত্র সম্পর্কে',
 );
 
+/** Tibetan (བོད་ཡིག)
+ * @author Freeyak
+ */
+$messages['bo'] = array(
+	'imagemap_description' => 'བརྙན་རིས་འདིའི་སྐོར།',
+);
+
 /** Breton (Brezhoneg)
  * @author Fulup
  */
 $messages['br'] = array(
-	'imagemap_desc' => "Aotren a ra ar c'hartennoù skeudennoù arval klikadus, a-drugarez d'ar valizenn <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Aotren a ra ar c'hartennoù skeudennoù arval klikadus, a-drugarez d'ar valizenn <code><imagemap></code>",
 	'imagemap_no_image' => 'Error: rankout a rit spisaat ur skeudenn el linenn gentañ',
 	'imagemap_invalid_image' => "Error : direizh eo ar skeudenn pe n'eus ket anezhi",
+	'imagemap_bad_image' => 'Fazi : emañ ar skeudenn war al listenn zu evit ar bajenn-mañ',
 	'imagemap_no_link' => "Error: n'eus bet kavet liamm reizh ebet e dibenn al linenn $1",
 	'imagemap_invalid_title' => 'Error: titl direizh el liamm el linenn $1',
 	'imagemap_missing_coord' => 'Error: diouer a zaveennoù zo evit stumm al linenn $1',
+	'imagemap_unrecognised_shape' => 'Fazi : Furm dianav el linenn $1, rankout a ra pep linenn kregiñ gant unan eus ar gerioù-mañ : default, rect, circle pe poly',
+	'imagemap_invalid_coord' => 'Fazi : daveenn fall el linenn $1, ret eo e vije un niver',
+	'imagemap_invalid_desc' => 'Fazi : arventenn desc direizh; setu an arventennoù aotreet : <code>$1</code>',
 	'imagemap_description' => 'Diwar-benn ar skeudenn-mañ',
+	'imagemap_poly_odd' => 'Fazi : kavet ez eus ul lieskorn dezhañ un niver daveennoù ampar el linenn $1',
 );
 
 /** Bosnian (Bosanski)
  * @author CERminator
  */
 $messages['bs'] = array(
-	'imagemap_desc' => 'Omogućuje mape slika na klijentskom računaru koje se mogu kliknuti koristeći oznaku <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Omogućuje mape slika na klijentskom računaru koje se mogu kliknuti koristeći oznaku <code><imagemap></code>',
 	'imagemap_no_image' => 'Greška: morate odrediti sliku u prvom redu',
 	'imagemap_invalid_image' => 'Greška: slika je nevaljana ili ne postoji',
 	'imagemap_bad_image' => 'Greška: slika je nepoželjna na ovoj stranici',
@@ -220,10 +272,10 @@
 	'imagemap_invalid_title' => 'Greška: nevaljan naslov u linku u redu $1',
 	'imagemap_missing_coord' => 'Greška: nema dovoljno koordinata za iscrtavanje u redu $1',
 	'imagemap_unrecognised_shape' => 'Greška: neprepoznat oblik u redu $1, svaki red mora počinjati sa jednim od: default, rect, circle ili poly',
-	'imagemap_no_areas' => 'Greška: mora se navesti bar jedno područje specifikacije',
 	'imagemap_invalid_coord' => 'Greška: nevaljane koordinate u redu $1, treba biti broj',
-	'imagemap_invalid_desc' => 'Greška: nevaljana specifikacija opisa, mora biti jedan od: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Greška: nevaljana specifikacija opisa, mora biti jedan od: <code>$1</code>',
 	'imagemap_description' => 'O ovoj slici',
+	'imagemap_desc_types' => 'gore-desno, dolje-desno, dolje-lijevo, gore-lijevo, nema',
 	'imagemap_poly_odd' => 'Greška: pronađen poly sa neparnim brojem koordinata u redu $1',
 );
 
@@ -232,7 +284,7 @@
  * @author Toniher
  */
 $messages['ca'] = array(
-	'imagemap_desc' => "Permet mapes d'imatges clicables des del costat del client fent servir l'etiqueta <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Permet mapes d'imatges clicables des del costat del client fent servir l'etiqueta <code><imagemap></code>",
 	'imagemap_no_image' => 'Error: cal especificar una imatge en la primera línia',
 	'imagemap_invalid_image' => 'Error: la imatge no es vàlida o no existeix',
 	'imagemap_bad_image' => 'Error: la imatge està en la llista negra',
@@ -240,13 +292,19 @@
 	'imagemap_invalid_title' => "Error: el títol no és vàlid a l'enllaç de la línia $1",
 	'imagemap_missing_coord' => 'Error: no hi ha coordenades suficients per a la forma de la línia $1',
 	'imagemap_unrecognised_shape' => 'Error: la forma de la línia $1 no és reconeixible, cada línia ha de començar amb una de les opcions següents: default, rect, circle or poly',
-	'imagemap_no_areas' => "Error: s'ha d'especificar com a mínim una àrea",
 	'imagemap_invalid_coord' => 'Error: la coordenada a la línia $1 no és vàlida, ha de ser un nombre',
-	'imagemap_invalid_desc' => "Error: l'especificació de descripció no és vàlida, ha de ser una de: <tt>$1</tt>",
+	'imagemap_invalid_desc' => "Error: l'especificació de descripció no és vàlida, ha de ser una de: <code>$1</code>",
 	'imagemap_description' => 'Quant a la imatge',
 	'imagemap_poly_odd' => 'Error: poly amb un nombre senar de coordenades a la línia $1',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'imagemap_invalid_image' => 'Гlалат: нийса дац йа ишта сурт дац кху чохь',
+);
+
 /** Corsican (Corsu) */
 $messages['co'] = array(
 	'imagemap_description' => "À prupositu d'issa imagine",
@@ -257,7 +315,7 @@
  * @author Mormegil
  */
 $messages['cs'] = array(
-	'imagemap_desc' => 'Umožňuje vytvoření klikací mapy obrázku na straně klienta pomocí značky <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Umožňuje vytvoření klikací mapy obrázku na straně klienta pomocí značky <code><imagemap></code>',
 	'imagemap_no_image' => 'Error: na první řádce musí být určen obrázek',
 	'imagemap_invalid_image' => 'Error: soubor není platný nebo neexistuje',
 	'imagemap_bad_image' => 'Chyba: obrázek se nachází na černé listině',
@@ -265,9 +323,8 @@
 	'imagemap_invalid_title' => 'Error: neplatný název v odkazu na řádku $1',
 	'imagemap_missing_coord' => 'Error: chybějící souřadnice tvaru na řádku $1',
 	'imagemap_unrecognised_shape' => 'Error: nerozpoznaný tvar na řádku $1, každá řádka musí začínat definicí tvaru: default, rect, circle nebo poly',
-	'imagemap_no_areas' => 'Error: musí být určena alespoň jedna oblast',
 	'imagemap_invalid_coord' => 'Error: neplatné souřadnice na řádku $1, je očekáváno číslo',
-	'imagemap_invalid_desc' => 'Error: neplatné určení oblasti desc, je očekávána jedna z možností: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: neplatné určení oblasti desc, je očekávána jedna z možností: <code>$1</code>',
 	'imagemap_description' => 'O tomto obrázku',
 	'imagemap_poly_odd' => 'Chyba: na řádku $1 nalezen mnohoúhelník s lichým počtem souřadnic',
 );
@@ -280,28 +337,33 @@
 );
 
 /** Danish (Dansk)
- * @author Wegge
+ * @author Byrial
+ * @author Peter Alberti
  */
 $messages['da'] = array(
+	'imagemap_desc' => 'Muliggør klikbare billeder med brug af <code><imagemap></code>-tagget.',
 	'imagemap_no_image' => '<imagemap>: Der skal angives et billednavn i første linje',
 	'imagemap_invalid_image' => '<imagemap>: Billedet er ugyldigt eller findes ikke',
+	'imagemap_bad_image' => 'Fejl: billedet er sortlistet på denne side',
 	'imagemap_no_link' => '<imagemap>: Fandt ikke en brugbar henvisning i slutningen af linje $1',
 	'imagemap_invalid_title' => '<imagemap>: Ugyldig titel i henvisning på linje $1',
 	'imagemap_missing_coord' => '<imagemap>: Utilstrækkeligt antal koordinater til omridset i linje $1',
 	'imagemap_unrecognised_shape' => '<imagemap>: Ukendt omridstype i linje $1. Alle linjer skal starte med en af:default, rect, circle or poly',
-	'imagemap_no_areas' => '<imagemap>: Der skal angives omrids af mindst et område',
 	'imagemap_invalid_coord' => '<imagemap>: Ugyldig koordinat på linje $1, koordinater skal være tal',
-	'imagemap_invalid_desc' => '<imagemap>: Ugyldig specifikation af desc, skal være en af: <tt>$1</tt>',
+	'imagemap_invalid_desc' => '<imagemap>: Ugyldig specifikation af desc, skal være en af: <code>$1</code>',
 	'imagemap_description' => 'Om dette billede',
 	'imagemap_desc_types' => 'top-højre, bund-højre, bund-venstre, top-venstre, ingen',
+	'imagemap_poly_odd' => 'Fejl: fandt polygon med et ulige antal koordinater på linje $1',
 );
 
 /** German (Deutsch)
+ * @author Kghbln
+ * @author LWChris
  * @author Raimond Spekking
  * @author Umherirrender
  */
 $messages['de'] = array(
-	'imagemap_desc' => "Ermöglicht die Erstellung von verweissensitiven Grafiken ''(image maps)'' mit Hilfe der <tt><nowiki><imagemap></nowiki></tt>-Syntax",
+	'imagemap_desc' => 'Ergänzt das Tag <code><imagemap></code> zum Erstellen verweissensitiver Grafiken',
 	'imagemap_no_image' => '<imagemap>-Fehler: In der ersten Zeile muss ein Bild angegeben werden',
 	'imagemap_invalid_image' => '<imagemap>-Fehler: Bild ist ungültig oder nicht vorhanden',
 	'imagemap_bad_image' => 'Fehler: Das Bild steht auf der Liste unerwünschter Bilder',
@@ -309,19 +371,36 @@
 	'imagemap_invalid_title' => '<imagemap>-Fehler: ungültiger Titel im Link in Zeile $1',
 	'imagemap_missing_coord' => '<imagemap>-Fehler: Zu wenige Koordinaten in Zeile $1 für den Umriss',
 	'imagemap_unrecognised_shape' => '<imagemap>-Fehler: Unbekannte Umrissform in Zeile $1. Jede Zeile muss mit einem dieser Parameter beginnen: <tt>default</tt>, <tt>rect</tt>, <tt>circle</tt> oder <tt>poly</tt>',
-	'imagemap_no_areas' => '<imagemap>-Fehler: Es muss mindestens ein Gebiet definiert werden',
 	'imagemap_invalid_coord' => '<imagemap>-Fehler: Ungültige Koordinate in Zeile $1: es sind nur Zahlen erlaubt',
-	'imagemap_invalid_desc' => '<imagemap>-Fehler: Ungültiger „desc“-Parameter, möglich sind: <tt>$1</tt>',
+	'imagemap_invalid_desc' => '<imagemap>-Fehler: Ungültiger „desc“-Parameter, möglich sind: <code>$1</code>',
 	'imagemap_description' => 'Über dieses Bild',
 	'imagemap_desc_types' => 'oben rechts, unten rechts, unten links, oben links, keine',
 	'imagemap_poly_odd' => 'Fehler: Polygon mit ungerader Anzahl an Koordinaten in Zeile $1',
 );
 
+/** Zazaki (Zazaki)
+ * @author Aspar
+ */
+$messages['diq'] = array(
+	'imagemap_desc' => 'pê şuxulnayişê etiketê <code><imagemap></code>i destur dano gırewtox xeritayê resmi bıtıkın',
+	'imagemap_no_image' => 'xeta: şıma gani satıro ewwil de yew resm nişan bıkeri',
+	'imagemap_invalid_image' => 'xeta: resım ya çino ya zi meqbul niyo',
+	'imagemap_bad_image' => 'xeta: no pel de resım biyo qereliste',
+	'imagemap_no_link' => 'xeta: peyniyê satıro $1. de yew gıreyo meqbul çino.',
+	'imagemap_invalid_title' => 'xeta:satıro $1. de gıre de sernameyo nemeqbul esto.',
+	'imagemap_missing_coord' => 'xeta:satıro $1. de qey şekli koordinat tayê',
+	'imagemap_unrecognised_shape' => 'xeta:satıro $1. de şeklo netemam esto, her satır gani pê her yew ninan destpêbıkero: default, rect, cirle ya zi poly',
+	'imagemap_invalid_coord' => 'xeta: satıro $1. de koordinato nemeqbul, gani yew amar bıbo',
+	'imagemap_invalid_desc' => 'xeta: diyarikerdışê desci yo nemeqbul, gani ninan ra yew bıbo: <code>$1</code>',
+	'imagemap_description' => 'Derheqê resmi de',
+	'imagemap_poly_odd' => 'xeta: satıro $1. de poliyo ke wayirê yew koordinat diya',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
-	'imagemap_desc' => 'Zmóžnja klikajobne wobraze wót boka klienta z pomocu toflicki <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Zmóžnja klikajobne wobraze wót boka klienta z pomocu toflicki <code><imagemap></code>',
 	'imagemap_no_image' => 'Zmólka: musyš wobraz w prědnej zmužce pódaś',
 	'imagemap_invalid_image' => 'Zmólka: wobraz jo njepłaśiwy abo njeeksistěrujo',
 	'imagemap_bad_image' => 'Zmólka: wobraz stoj na cornej lisćinje',
@@ -329,9 +408,8 @@
 	'imagemap_invalid_title' => 'Zmólka: njepłaśiwy titel we wótkazu w smužce $1',
 	'imagemap_missing_coord' => 'Zmólka: nic dosć koordinatow za formu w smužce $1',
 	'imagemap_unrecognised_shape' => 'Zmólka: njespóznata forma w smužce $1, kužda smužka musy se z jadnym z toś tych parametrow zachopiś: default, rect, circle abo poly',
-	'imagemap_no_areas' => 'Umólka: nanejmjenjej jaden parameter "area" musy se definěrowaś',
 	'imagemap_invalid_coord' => 'Zmólka: njepłaśiwa koordinata w smužce $1, musy to licba byś',
-	'imagemap_invalid_desc' => 'Zmólka: njepłaśiwy parameter "desc", móžno su: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Zmólka: njepłaśiwy parameter "desc", móžno su: <code>$1</code>',
 	'imagemap_description' => 'Wó toś tom wobrazu',
 	'imagemap_poly_odd' => 'Zmólka: polygon z njerowneju licbu koordinatow w smužce $1',
 );
@@ -341,7 +419,7 @@
  * @author Dead3y3
  */
 $messages['el'] = array(
-	'imagemap_desc' => 'Επιτρέπει από την πλευρά-του-πελάτη επιλέξιμους εικονοχάρτες χρησιμοποιώντας την ετικέτα <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Επιτρέπει από την πλευρά-του-πελάτη επιλέξιμους εικονοχάρτες χρησιμοποιώντας την ετικέτα <code><imagemap></code>',
 	'imagemap_no_image' => 'Σφάλμα: πρέπει να ορίσετε μια εικόνα στην πρώτη γραμμή',
 	'imagemap_invalid_image' => 'Σφάλμα: η εικόνα είναι άκυρη ή ανύπαρκτη',
 	'imagemap_bad_image' => 'Σφάλμα: η εικόνα βρίσκεται στη μαύρη λίστα σε αυτή τη σελίδα',
@@ -349,28 +427,27 @@
 	'imagemap_invalid_title' => 'Σφάλμα: άκυρος τίτλος σε σύνδεσμο στη γραμμή $1',
 	'imagemap_missing_coord' => 'Σφάλμα: όχι αρκετές συντεταγμένες για σχήμα στη γραμμή $1',
 	'imagemap_unrecognised_shape' => 'Σφάλμα: μη αναγνωρίσιμο σχήμα στη γραμμή $1, κάθε γραμμή πρέπει να αρχίζει με μία από τις λέξεις: default, rect, circle ή poly',
-	'imagemap_no_areas' => 'Σφάλμα: τουλάχιστον ένας ορισμός περιοχής πρέπει να δίνεται',
 	'imagemap_invalid_coord' => 'Σφάλμα: άκυρη συντεταγμένη στη γραμμή $1, πρέπει να είναι αριθμός',
-	'imagemap_invalid_desc' => 'Σφάλμα: άκυρος ορισμός desc, πρέπει να είναι ένας από τους: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Σφάλμα: άκυρος ορισμός desc, πρέπει να είναι ένας από τους: <code>$1</code>',
 	'imagemap_description' => 'Σχετικά με αυτήν την εικόνα',
 	'imagemap_poly_odd' => 'Σφάλμα: βρέθηκε πολύγωνο με περιττό αριθμό συντεταγμένων στη γραμμή $1',
 );
 
 /** Esperanto (Esperanto)
+ * @author Michawiki
  * @author Yekrats
  */
 $messages['eo'] = array(
-	'imagemap_desc' => 'Permesas klientflankajn klakeblajn bildmapojn uzante etikedon <tt><nowiki><imagemap></nowiki></tt>',
-	'imagemap_no_image' => 'Error: devas deklari bildon en la unua linio',
-	'imagemap_invalid_image' => 'Eraro: bildo estas aŭ nevalida aŭ neekzista',
+	'imagemap_desc' => 'Permesas klientflankajn klakeblajn bildmapojn uzante etikedon <code><imagemap></code>',
+	'imagemap_no_image' => 'Eraro: devas specifi bildon en la unua linio',
+	'imagemap_invalid_image' => 'Eraro: bildo estas aŭ malvalida aŭ neekzista',
 	'imagemap_bad_image' => 'Eraro: bildo estas nigralistigita en ĉi tiu paĝo',
 	'imagemap_no_link' => 'Eraro: neniu valida ligilo estis trovita ĉe fino de linio $1',
-	'imagemap_invalid_title' => 'Eraro: nevalida titolo en ligilo ĉe linio $1',
+	'imagemap_invalid_title' => 'Eraro: malvalida titolo en ligilo ĉe linio $1',
 	'imagemap_missing_coord' => 'Eraro: mankas sufiĉaj koordinatoj por formo ĉe linio $1',
 	'imagemap_unrecognised_shape' => 'Eraro: nekonata formo ĉe linio $1; ĉiu linio devas komenci kun unu el: default, rect, circle aŭ poly',
-	'imagemap_no_areas' => 'Eraro: almenaŭ unu specifigado de areo devas esti donata',
-	'imagemap_invalid_coord' => 'Eraro: Nevalida koordinato ĉe linio $1; ĝi nepre estu nombro',
-	'imagemap_invalid_desc' => 'Eraro: nevalida desc deklarado, devas esti unu el: <tt>$1</tt>',
+	'imagemap_invalid_coord' => 'Eraro: Malvalida koordinato ĉe linio $1; ĝi nepre estu nombro',
+	'imagemap_invalid_desc' => 'Eraro: malvalida deklarado de desc, devas esti unu el: <code>$1</code>',
 	'imagemap_description' => 'Pri ĉi tiu bildo',
 	'imagemap_poly_odd' => 'Eraro: troviĝis poligono kun malpara nombro de koordinatoj en linio $1',
 );
@@ -382,7 +459,7 @@
  * @author Sanbec
  */
 $messages['es'] = array(
-	'imagemap_desc' => "Permite ''image-maps'' dinámicos usando la etiqueta <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Permite ''image-maps'' dinámicos usando la etiqueta <code><imagemap></code>",
 	'imagemap_no_image' => 'Error: hay que especificar un imagen en la línea primera',
 	'imagemap_invalid_image' => 'Error: la imagen no es válida o no existe',
 	'imagemap_bad_image' => 'Error: la imagen esta en la lista negra en esta página',
@@ -390,19 +467,40 @@
 	'imagemap_invalid_title' => 'Error: título no válido en un enlace de la linea $1',
 	'imagemap_missing_coord' => 'Error: no hay bastante coordinates para la figura a la linea $1',
 	'imagemap_unrecognised_shape' => 'Error: figura no reconocida a la linea $1, cada linea debe comenzar con uno de default, rect, circle o poly',
-	'imagemap_no_areas' => 'Error: se debe dar al menos una especificación de área',
 	'imagemap_invalid_coord' => 'Error: hay una coordenada no válida en la línea $1, debe ser un número',
-	'imagemap_invalid_desc' => 'Error: especificación de desc no válido, debe ser uno de: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: especificación de desc no válido, debe ser uno de: <code>$1</code>',
 	'imagemap_description' => 'Acerca de esta imagen',
 	'imagemap_poly_odd' => 'Error: se encontró un polígono con un número de coordinates impar en la linea $1',
 );
 
+/** Estonian (Eesti)
+ * @author Avjoska
+ * @author Pikne
+ * @author Silvar
+ */
+$messages['et'] = array(
+	'imagemap_desc' => 'Lubab kliendipoolse klõpsatava pildi ala, mis kasutab <code><imagemap></code>-märgendit.',
+	'imagemap_no_image' => 'Tõrge: Esimesel real peab määrama pildi.',
+	'imagemap_invalid_image' => 'Tõrge: Pilt on vigane või teda pole olemas.',
+	'imagemap_bad_image' => 'Tõrge: Pilt on siin lehel mustas nimekirjas.',
+	'imagemap_no_link' => 'Tõrge: Rea $1 lõpust ei leitud sobivat linki',
+	'imagemap_invalid_title' => 'Tõrge: Real $1 lingis vigane pealkiri',
+	'imagemap_missing_coord' => 'Tõrge: Real $1 pole kujundi jaoks piisavalt koordinaate',
+	'imagemap_unrecognised_shape' => 'Tõrge: Real $1 on tundmatu kujund; rida peab algama ühega neist: <tt>default</tt>, <tt>rect</tt>, <tt>circle</tt> või <tt>poly</tt>.',
+	'imagemap_invalid_coord' => 'Tõrge: Real $1 on vigane koordinaat; see peab olema number',
+	'imagemap_invalid_desc' => 'Tõrge: Vigane "desc"-parameeter; peab olema üks järgmistest: <code>$1</code>',
+	'imagemap_description' => 'Info pildi kohta',
+	'imagemap_poly_odd' => 'Tõrge: Real $1 on polügoon paaritu arvu koordinaatidega.',
+);
+
 /** Basque (Euskara)
  * @author An13sa
+ * @author Kobazulo
  */
 $messages['eu'] = array(
 	'imagemap_no_image' => 'Errorea: lehen lerroan irudia zehaztu behar da',
 	'imagemap_invalid_image' => 'Errorea: irudia baliogabea da edo ez da existitzen',
+	'imagemap_invalid_coord' => 'Errorea: baliogabeko koordenatua $1. lerroan, zenbaki bat izan behar du',
 	'imagemap_description' => 'Irudi honen inguruan',
 );
 
@@ -417,7 +515,7 @@
  * @author Huji
  */
 $messages['fa'] = array(
-	'imagemap_desc' => 'امکان ایجاد نقشه‌های تصویری قابل کلیک کردن در سمت کاربر را با استفاده از برچسب <tt><nowiki><imagemap></nowiki></tt> فراهم می‌آورد',
+	'imagemap_desc' => 'امکان ایجاد نقشه‌های تصویری قابل کلیک کردن در سمت کاربر را با استفاده از برچسب <code><imagemap></code> فراهم می‌آورد',
 	'imagemap_no_image' => '<imagemap>: باید در اولین سطر یک تصویر را مشخص کنید',
 	'imagemap_invalid_image' => '<imagemap>: تصویر غیرمجاز است یا وجود ندارد',
 	'imagemap_bad_image' => 'خطا: تصویر در این صفحه در فهرست سیاه قرار دارد',
@@ -425,9 +523,8 @@
 	'imagemap_invalid_title' => '<imagemap>: عنوان غیرمجاز در پیوند سطر $1',
 	'imagemap_missing_coord' => '<imagemap>: تعداد مختصات در سطر $1 برای شکل کافی نیست',
 	'imagemap_unrecognised_shape' => '<imagemap>: شکل ناشناخته در سطر $1، هر سطر باید با یکی از این دستورات آغاز شود: default، rect، circle یا poly',
-	'imagemap_no_areas' => '<imagemap>: دست کم یک تخصیص فضا باید وجود داشته باشد',
 	'imagemap_invalid_coord' => '<imagemap>: مختصات غیرمجاز در سطر $1، مختصات باید عدد باشد',
-	'imagemap_invalid_desc' => '<imagemap>: توضیحات غیرمجاز، باید یکی از این موارد باشد: <tt>$1</tt>',
+	'imagemap_invalid_desc' => '<imagemap>: توضیحات غیرمجاز، باید یکی از این موارد باشد: <code>$1</code>',
 	'imagemap_description' => 'دربارهٔ این تصویر',
 	'imagemap_poly_odd' => 'خطا: چند ضلعی با تعداد فرعی از مختصات در سطر $1 پیدا شد',
 );
@@ -439,7 +536,7 @@
  * @author Tarmo
  */
 $messages['fi'] = array(
-	'imagemap_desc' => 'Mahdollistaa napsautettavien kuvakarttojen tekemisen <tt><nowiki><imagemap></nowiki></tt>-elementillä.',
+	'imagemap_desc' => 'Mahdollistaa napsautettavien kuvakarttojen tekemisen <code><imagemap></code>-elementillä.',
 	'imagemap_no_image' => 'Error: kuva pitää määritellä ensimmäisellä rivillä.',
 	'imagemap_invalid_image' => 'Error: kuva ei kelpaa tai sitä ei ole olemassa',
 	'imagemap_bad_image' => 'Virhe: Kuva kuuluu sivuston estolistalle',
@@ -447,20 +544,31 @@
 	'imagemap_invalid_title' => 'Virhe: kelvoton otsikko linkissä rivillä $1',
 	'imagemap_missing_coord' => 'Virhe: rivin $1 muodolle ei ole määritelty riittävästi koordinaatteja',
 	'imagemap_unrecognised_shape' => 'Virhe: rivin $1 muotoa ei tunnistettu, jokaisen rivin tulee alkaa jollakin seuraavista: default, rect, circle tai poly',
-	'imagemap_no_areas' => 'Error: aluemäärittelyitä pitää olla ainakin yksi.',
 	'imagemap_invalid_coord' => 'Error: kelpaamaton koordinaatti rivillä $1. Koordinaatin täytyy olla numero.',
-	'imagemap_invalid_desc' => 'Virhe: virheellinen kohdemäärittely, kohdemäärittelyn tulee olla yksi seuraavista: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Virhe: virheellinen kohdemäärittely, kohdemäärittelyn tulee olla yksi seuraavista: <code>$1</code>',
 	'imagemap_description' => 'Kuvan tiedot',
 	'imagemap_poly_odd' => 'Virhe: löytyi polygoni, jossa pariton määrä koordinaatteja rivillä $1',
 );
 
+/** Faroese (Føroyskt)
+ * @author EileenSanda
+ */
+$messages['fo'] = array(
+	'imagemap_no_image' => 'Feilur: tú mást skriva eitt myndanavn á fyrstu linju',
+	'imagemap_invalid_image' => 'Feilur: Myndin er ógyldug ella er ikki til',
+	'imagemap_bad_image' => 'Feilur: Myndin er á svartalista á hesi síðu',
+	'imagemap_no_link' => 'Feilur: ongin galdandi slóð var funnin fyri endan á linju $1',
+	'imagemap_invalid_title' => 'Feilur: skeivt heiti á leinkjuni á linju $1',
+	'imagemap_description' => 'Um hesa myndina',
+);
+
 /** French (Français)
  * @author Grondin
  * @author Urhixidur
  * @author Verdy p
  */
 $messages['fr'] = array(
-	'imagemap_desc' => 'Permet les cartes images clientes cliquables, grâce à la balise <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Permet les cartes images clientes cliquables, grâce à la balise <code><imagemap></code>',
 	'imagemap_no_image' => '<imagemap> : vous devez spécifier une image dans la première ligne',
 	'imagemap_invalid_image' => '<imagemap> : l’image est invalide ou n’existe pas',
 	'imagemap_bad_image' => '<imagemap> : l’image est en liste noire sur cette page',
@@ -468,7 +576,6 @@
 	'imagemap_invalid_title' => '<imagemap> : titre invalide dans le lien à la ligne  $1',
 	'imagemap_missing_coord' => '<imagemap> : pas assez de coordonnées pour la forme à la ligne  $1',
 	'imagemap_unrecognised_shape' => '<imagemap> : forme non reconnue à la ligne $1, chaque ligne doit débuter par un des mots suivants : default, rect, circle ou poly',
-	'imagemap_no_areas' => '<imagemap> : au moins une spécification de zone doit être donnée',
 	'imagemap_invalid_coord' => '<imagemap> : coordonnée invalide à la ligne $1, doit être un nombre',
 	'imagemap_invalid_desc' => '<imagemap> : paramètre « desc » invalide, les paramètres possibles sont : $1',
 	'imagemap_description' => 'À propos de cette image',
@@ -479,17 +586,19 @@
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'imagemap_desc' => 'Pèrmèt una mapa émâge clianta a étre clicâ en utilisent la balisa <tt><nowiki><imagemap></nowiki></tt>.',
-	'imagemap_no_image' => 'Error : vos dête spècefiar una émâge dens la premiére legne',
-	'imagemap_invalid_image' => 'Error : l’émâge est envalida ou ègziste pas',
-	'imagemap_no_link' => 'Error : nion lim valido at étâ trovâ a la fin de la legne $1',
-	'imagemap_invalid_title' => 'Error : titro envalido dens lo lim a la legne $1',
-	'imagemap_missing_coord' => 'Error : pas prod de coordonâs por la fôrma a la legne $1',
-	'imagemap_unrecognised_shape' => 'Error : fôrma pas recognua a la legne $1, châque legne dêt comenciér avouéc yon des mots siuvents : default, rect, circle ou ben poly',
-	'imagemap_no_areas' => 'Error : u muens yona spèceficacion de surface dêt étre balyê',
-	'imagemap_invalid_coord' => 'Error : coordonâ envalida a la legne $1, dêt étre un nombro',
-	'imagemap_invalid_desc' => 'Error : paramètre « dèsc » envalido, los paramètres possiblos sont : <tt>$1</tt>',
+	'imagemap_desc' => 'Pèrmèt les mapes émâges cliantes clicâbles, grâce a la balisa <code><imagemap></code>.',
+	'imagemap_no_image' => 'Èrror : vos dête spècefiar una émâge dens la premiére legne',
+	'imagemap_invalid_image' => 'Èrror : l’émâge est envalida ou ben ègziste pas',
+	'imagemap_bad_image' => 'Èrror : l’émâge est en lista nêre sur ceta pâge',
+	'imagemap_no_link' => 'Èrror : nion lim valido at étâ trovâ a la fin de la legne $1',
+	'imagemap_invalid_title' => 'Èrror : titro envalido dens lo lim a la legne $1',
+	'imagemap_missing_coord' => 'Èrror : pas prod de coordonâs por la fôrma a la legne $1',
+	'imagemap_unrecognised_shape' => 'Èrror : fôrma pas recognua a la legne $1, châque legne dêt comenciér per yon de cetos mots : default, rect, circle ou ben poly',
+	'imagemap_invalid_coord' => 'Èrror : coordonâ envalida a la legne $1, dêt étre un nombro',
+	'imagemap_invalid_desc' => 'Èrror : paramètre « dèsc » envalido, los paramètres possiblos sont : <code>$1</code>',
 	'imagemap_description' => 'A propôs de ceta émâge',
+	'imagemap_desc_types' => 'd’amont a drêta, d’avâl a drêta, d’avâl a gôche, d’amont a gôche, nion',
+	'imagemap_poly_odd' => 'Èrror : trovâ un poligono avouéc un nombro mâl-par de coordonâs a la legne $1',
 );
 
 /** Galician (Galego)
@@ -498,18 +607,17 @@
  * @author Xosé
  */
 $messages['gl'] = array(
-	'imagemap_desc' => 'Permite mapas de imaxe nos que se poden facer clic usando a etiqueta <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Permite mapas de imaxe nos que se poden facer clic usando a etiqueta <code><imagemap></code>',
 	'imagemap_no_image' => 'Erro: debe especificar unha imaxe na primeira liña',
 	'imagemap_invalid_image' => 'Erro: a imaxe non é válida ou non existe',
 	'imagemap_bad_image' => 'Erro: a imaxe atópase na lista negra desta páxina',
-	'imagemap_no_link' => 'Erro: foi atopada unha ligazón non válida ao final da liña $1',
+	'imagemap_no_link' => 'Erro: non se atopou ningunha ligazón válida ao final da liña $1',
 	'imagemap_invalid_title' => 'Erro: título non válido na ligazón na liña $1',
 	'imagemap_missing_coord' => 'Erro: non abondan as coordenadas para crear un polígono, na liña $1',
 	'imagemap_unrecognised_shape' => 'Erro: forma descoñecida na liña $1, cada liña debe comezar con un dos seguintes: por defecto, rectángulo, círculo ou polígono',
-	'imagemap_no_areas' => 'Erro: polo menos debe darse unha zona de especificación',
 	'imagemap_invalid_coord' => 'Erro: coordenada non válida na liña $1, debe ser un número',
-	'imagemap_invalid_desc' => 'Erro: especificación da descrición non válida, debe ser unha de: <tt>$1</tt>',
-	'imagemap_description' => 'Sobre esta imaxe',
+	'imagemap_invalid_desc' => 'Erro: especificación da descrición non válida, debe ser unha de: <code>$1</code>',
+	'imagemap_description' => 'Acerca desta imaxe',
 	'imagemap_poly_odd' => 'Erro: atopouse un polígono cun número impar de coordenadas na liña $1',
 );
 
@@ -524,7 +632,7 @@
  * @author Als-Holder
  */
 $messages['gsw'] = array(
-	'imagemap_desc' => "Macht s Aalege vu verwyys-sensitive Grafike ''(image maps)'' megli mit dr Hilf vu dr <tt><nowiki><imagemap></nowiki></tt>-Syntax",
+	'imagemap_desc' => "Macht s Aalege vu verwyys-sensitive Grafike ''(image maps)'' megli mit dr Hilf vu dr <code><imagemap></code>-Syntax",
 	'imagemap_no_image' => 'Fähler: in dr erschte Zyylete muess e Bild aagee wäre',
 	'imagemap_invalid_image' => 'Fähler: Bild ist nit giltig oder s git s nit',
 	'imagemap_bad_image' => 'Fähler: S Bild stoht uf dr Lischt vu nit gwinschte Bilder',
@@ -532,23 +640,37 @@
 	'imagemap_invalid_title' => 'Fähler: uugiltiger Titel im Gleich in dr Zyyle $1',
 	'imagemap_missing_coord' => 'Fähler: Z wenig Koordinate in dr Zyyle $1 fir dr Umriss',
 	'imagemap_unrecognised_shape' => 'Fähler: Nit bekannti Umrissform in dr Zyyle $1. Jedi Zyyle muess mit eim vu däne Parameter aafange: <tt>default, rect, circle</tt> oder <tt>poly</tt>',
-	'imagemap_no_areas' => 'Fähler: S muess zmindescht ei Gebiet definiert wäre',
 	'imagemap_invalid_coord' => 'Fähler: Uugiltigi Koordinate in dr Zyyle $1: s sin nume Zahle erlaubt',
-	'imagemap_invalid_desc' => 'Fähler: Uugiltige „desc“-Parameter, megli sin: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Fähler: Uugiltige „desc“-Parameter, megli sin: <code>$1</code>',
 	'imagemap_description' => 'Iber des Bild',
 	'imagemap_poly_odd' => 'Fähler: Polygon mit ere uugrade Anzahl vu Koordinate in dr Zyyle $1',
 );
 
-/** Gujarati (ગુજરાતી) */
+/** Gujarati (ગુજરાતી)
+ * @author Dsvyas
+ * @author KartikMistry
+ * @author Sushant savla
+ */
 $messages['gu'] = array(
+	'imagemap_no_image' => 'ત્રુટિ: પહેલી લીટીમાં ચિત્રની સ્પષ્ટાતા કરેલી હોવી જ જોઈએ',
+	'imagemap_invalid_image' => 'ત્રુટી: ચિત્ર યાતો અવૈધ છે અથવાતો અસ્તિત્વમાં નથી',
+	'imagemap_bad_image' => 'ત્રુટી: આ પાના પર ચિત્ર પર પ્રતિબંધ મુકેલો છે',
+	'imagemap_no_link' => 'ત્રુટી : $1મી હરોળ ના અંતે કોઈ પણ વૈધ કડી ન મળી',
+	'imagemap_invalid_title' => 'ત્રુટી: $1 મી લાઈનમાં અયોગ્ય શીર્ષક',
+	'imagemap_missing_coord' => 'ત્રુટી: $1મી હરોળમાં પૂરતાં આકાર માટે અક્ષાંસ રેખાંશ ન મળ્યાં',
+	'imagemap_unrecognised_shape' => 'ત્રુટી: $1મી હરોળમાં અયોગ્ય અક્ષર, દરેક હરોળ : default, rect, circle or poly થી શરૂ થવી જોઈએ.',
+	'imagemap_invalid_coord' => 'ક્ષતિ: લીટી $1 પર અયોગ્ય કો-ઓર્ડિનેટ, સંખ્યા જ હોવી જોઈએ.',
+	'imagemap_invalid_desc' => 'Error: અયોગ્ય વર્ણન વિગત, આમાંનું એક હોવુ જોઈએ: <code>$1</code>',
 	'imagemap_description' => 'આ ચિત્ર વિષે',
+	'imagemap_poly_odd' => 'ત્રુટી:  $1 મી હરોળમાં વિસંગત ક્રમાંકના નિર્દેશકો મળી આવ્યાં',
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
  */
 $messages['he'] = array(
-	'imagemap_desc' => 'אפשרות למפות תמונה עם קישורים בצד הלקוח באמצעות התגית <tt><nowiki><imagemap></nowiki></tt> tag',
+	'imagemap_desc' => 'אפשרות למפות תמונה עם קישורים בצד הלקוח באמצעות התגית <code><imagemap></code>',
 	'imagemap_no_image' => 'שגיאה: יש לציין תמונה בשורה הראשונה',
 	'imagemap_invalid_image' => 'שגיאה: התמונה שגויה או שאינה קיימת',
 	'imagemap_bad_image' => 'שגיאה: התמונה אסורה לשימוש בדף זה',
@@ -556,7 +678,6 @@
 	'imagemap_invalid_title' => 'שגיאה: כותרת שגויה בקישור בשורה $1',
 	'imagemap_missing_coord' => 'שגיאה: לא מספיק קוארדינאטות לצורה בשורה $1',
 	'imagemap_unrecognised_shape' => 'שגיאה: צורה בלתי מזוהה בשורה $1, כל שורה חייבת להתחיל עם אחת האפשרויות הבאות: default, rect, circle or poly',
-	'imagemap_no_areas' => 'שגיאה: יש לציין לפחות אזור אחד',
 	'imagemap_invalid_coord' => 'שגיאה;: קוארדינאטה שגויה בשורה $1, היא חייבת להיות מספר',
 	'imagemap_invalid_desc' => 'שגיאה: הגדרת פרמטר desc שגויה, צריך להיות אחד מהבאים: $1',
 	'imagemap_description' => 'אודות התמונה',
@@ -564,19 +685,20 @@
 );
 
 /** Hindi (हिन्दी)
+ * @author Ansumang
  * @author Kaustubh
  */
 $messages['hi'] = array(
-	'imagemap_desc' => 'क्लायंटके चित्रनक्शे <tt><nowiki><imagemap></nowiki></tt> टॅग देकर इस्तेमाल किये जा सकतें हैं',
+	'imagemap_desc' => 'क्लायंटके चित्रनक्शे <code><imagemap></code> टॅग देकर इस्तेमाल किये जा सकतें हैं',
 	'imagemap_no_image' => 'Error: पहली कतारमें चित्र देना जरूरी हैं',
 	'imagemap_invalid_image' => 'Error: गलत या अस्तित्वमें ना होने वाला चित्र',
+	'imagemap_bad_image' => 'त्रुटि: छबि को इस पृष्ठ पे ब्लाकलिस्ट किया गया है',
 	'imagemap_no_link' => 'Error: $1 कतार के आखिर में वैध कड़ी मिली नहीं',
 	'imagemap_invalid_title' => 'Error: $1 कतारमें दिये कड़ीका अवैध शीर्षक',
 	'imagemap_missing_coord' => 'Error: $1 कतारपर आकार के लिये जरूरी कोऑर्डिनेट्स नहीं हैं',
 	'imagemap_unrecognised_shape' => 'Error: $1 कतारमें गलत आकार, हर कतार: default, rect, circle अथवा poly से शुरू होनी चाहियें',
-	'imagemap_no_areas' => 'Error: कमसे कम एक आकार देना चाहिये',
 	'imagemap_invalid_coord' => 'Error: $1 कतार में गलत कोऑर्डिनेट्स, संख्या चाहिये',
-	'imagemap_invalid_desc' => 'Error: गलत ज़ानकारी, इसमेंसे एक होनी चाहिये: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: गलत ज़ानकारी, इसमेंसे एक होनी चाहिये: <code>$1</code>',
 	'imagemap_description' => 'इस चित्र के बारे में',
 );
 
@@ -585,7 +707,7 @@
  * @author SpeedyGonsales
  */
 $messages['hr'] = array(
-	'imagemap_desc' => 'Omogućava strani klijenta klikabilne slike karata korištenjem <tt><nowiki><imagemap></nowiki></tt> oznake',
+	'imagemap_desc' => 'Omogućava strani klijenta klikabilne slike karata korištenjem <code><imagemap></code> oznake',
 	'imagemap_no_image' => 'Error: morate navesti ime slike koju rabite u prvom retku',
 	'imagemap_invalid_image' => 'Error: slika ne postoji ili je krivog tipa',
 	'imagemap_bad_image' => 'Greška: slika je na crnom popisu na ovoj stranici',
@@ -593,9 +715,8 @@
 	'imagemap_invalid_title' => 'Error: loš naziv u poveznici u retku $1',
 	'imagemap_missing_coord' => 'Error: nedovoljan broj koordinata za oblik u retku $1',
 	'imagemap_unrecognised_shape' => 'Error: oblik u retku $1 nije prepoznat, svaki redak mora početi s jednim od oblika: default, rect, circle ili poly',
-	'imagemap_no_areas' => 'Error: najmanje jedna specifikacija područja mora biti zadana',
 	'imagemap_invalid_coord' => 'Error: nevaljane koordinate u retku $1, mora biti broj',
-	'imagemap_invalid_desc' => 'Error: nevaljan opis, mora biti jedan od: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: nevaljan opis, mora biti jedan od: <code>$1</code>',
 	'imagemap_description' => "Ovo je slika/karta s poveznicama (''imagemap'')",
 	'imagemap_poly_odd' => 'Greška: pronađen poly s neobičnim brojem koordinata u redu $1',
 );
@@ -604,7 +725,7 @@
  * @author Michawiki
  */
 $messages['hsb'] = array(
-	'imagemap_desc' => 'Zmóžnja klikajomne wobrazowe mapy na klientowej stronje z pomocu taflički <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Zmóžnja klikajomne wobrazowe mapy na klientowej stronje z pomocu taflički <code><imagemap></code>',
 	'imagemap_no_image' => '<imagemap> zmylk: Dyrbiš w prěnjej lince wobraz podać',
 	'imagemap_invalid_image' => '<imagemap> zmylk: Wobraz je njepłaćiwy abo njeeksistuje',
 	'imagemap_bad_image' => 'Zmylk: wobraz na tutej stronje je na čornej lisćinje',
@@ -612,9 +733,8 @@
 	'imagemap_invalid_title' => '<imagemap> zmylk: njepłaćiwy titul we wotkazu w lince $1',
 	'imagemap_missing_coord' => '<imagemap> zmylk: Přemało koordinatow w lince $1 za podobu',
 	'imagemap_unrecognised_shape' => '<imagemap> zmylk: Njeznata podoba w lince $1, kóžda linka dyrbi so z jednym z tutych parametrow započeć: <tt>default, rect, circle</tt> abo <tt>poly</tt>',
-	'imagemap_no_areas' => '<imagemap> zmylk: Dyrbi so znajmjeńša přestrjeń definować.',
 	'imagemap_invalid_coord' => '<imagemap> zmylk: njepłaćiwa koordinata w lince $1: su jenož ličby dowolene',
-	'imagemap_invalid_desc' => '<imagemap> zmylk: Njepłaćiwy parameter "desc", móžne su: <tt>$1</tt>',
+	'imagemap_invalid_desc' => '<imagemap> zmylk: Njepłaćiwy parameter "desc", móžne su: <code>$1</code>',
 	'imagemap_description' => 'Wo tutym wobrazu',
 	'imagemap_poly_odd' => 'Zmylk: polygon z njerunej ličbu koordinatow na lince $1',
 );
@@ -622,19 +742,19 @@
 /** Hungarian (Magyar)
  * @author Dani
  * @author KossuthRad
+ * @author Tgr
  */
 $messages['hu'] = array(
-	'imagemap_desc' => 'Lehetővé teszi kliensoldali imagemap-ek létrehozását a <tt><nowiki><imagemap></nowiki></tt> tag segítségével',
+	'imagemap_desc' => 'Lehetővé teszi kliensoldali imagemap-ek létrehozását a <code><imagemap></code> tag segítségével',
 	'imagemap_no_image' => 'Error: kell egy előírt kép az első sorban',
 	'imagemap_invalid_image' => 'Error: érvénytelen vagy nem létező kép',
 	'imagemap_bad_image' => 'Hiba: a kép feketelistán van ezen az oldalon',
 	'imagemap_no_link' => 'Error: nincs érvényes link a(z) $1. sor végén',
-	'imagemap_invalid_title' => 'Error: érvénytelen cím a linkben a $1 vonalban',
+	'imagemap_invalid_title' => 'Hiba: érvénytelen cím a linkben, a(z) $1. sorban',
 	'imagemap_missing_coord' => 'Error: nincs elég koordináta az alakításhoz a $1 sorban',
 	'imagemap_unrecognised_shape' => 'Error: ismeretlen alakzat a(z) $1. sorban, mindegyiknek ezek valamelyikével kell kezdődnie: default, rect, circle vagy poly',
-	'imagemap_no_areas' => 'Error: Legalább egy terület előírást hozzá kell adni',
-	'imagemap_invalid_coord' => 'Error: érvénytelen koordináta a $1 vonalban, számnak kell lennie',
-	'imagemap_invalid_desc' => 'Error: hibás desc leírás, ezek egyike kell: <tt>$1</tt>',
+	'imagemap_invalid_coord' => 'Hiba: érvénytelen koordináta a(z) $1. sorban, számnak kell lennie',
+	'imagemap_invalid_desc' => 'Error: hibás desc leírás, ezek egyike kell: <code>$1</code>',
 	'imagemap_description' => 'Kép leírása',
 	'imagemap_poly_odd' => 'Hiba: az $1. sorban páratlan számú koordináta található',
 );
@@ -643,7 +763,7 @@
  * @author McDutchie
  */
 $messages['ia'] = array(
-	'imagemap_desc' => 'Permitte le mappas de imagines cliccabile al latere del cliente, usante le etiquetta <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Permitte le mappas de imagines cliccabile al latere del cliente, usante le etiquetta <code><imagemap></code>',
 	'imagemap_no_image' => 'Error: debe specificar un imagine in le prime linea',
 	'imagemap_invalid_image' => 'Error: imagine es invalide o non existe',
 	'imagemap_bad_image' => 'Error: le imagine es in le lista nigre de iste pagina',
@@ -651,9 +771,8 @@
 	'imagemap_invalid_title' => 'Error: titulo invalide in ligamine al linea $1',
 	'imagemap_missing_coord' => 'Error: non bastante coordinatas pro le forma al linea $1',
 	'imagemap_unrecognised_shape' => 'Error: forma non recognoscite al linea $1; cata linea debe comenciar con un del sequentes: default, rect, circle, poly',
-	'imagemap_no_areas' => 'Error: es necessari dar alminus un specification de area',
 	'imagemap_invalid_coord' => 'Error: coordinata invalide al linea $1, debe esser un numero',
-	'imagemap_invalid_desc' => 'Error: specification "desc" invalide, debe esser un del sequentes: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: specification "desc" invalide, debe esser un del sequentes: <code>$1</code>',
 	'imagemap_description' => 'A proposito de iste imagine',
 	'imagemap_poly_odd' => 'Error: se trova un polygono con un numero impar de coordinatas in linea $1',
 );
@@ -663,7 +782,7 @@
  * @author Rex
  */
 $messages['id'] = array(
-	'imagemap_desc' => 'Menyediakan peta gambar yang dapat diklik dari klien dengan menggunakan tag <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Menyediakan peta gambar yang dapat diklik dari klien dengan menggunakan tag <code><imagemap></code>',
 	'imagemap_no_image' => '<imagemap>: harus memberikan suatu gambar di baris pertama',
 	'imagemap_invalid_image' => '<imagemap>: gambar tidak sah atau tidak ditemukan',
 	'imagemap_bad_image' => 'Kesalahan: berkas tidak diperbolehkan pada halaman ini',
@@ -671,13 +790,30 @@
 	'imagemap_invalid_title' => '<imagemap>: judul tidak sah pada pranala di baris ke $1',
 	'imagemap_missing_coord' => '<imagemap>: tidak cukup koordinat untuk bentuk pada baris ke $1',
 	'imagemap_unrecognised_shape' => '<imagemap>: bentuk tak dikenali pada baris ke $1, tiap baris harus dimulai dengan salah satu dari: default, rect, circle atau poly',
-	'imagemap_no_areas' => '<imagemap>: harus diberikan paling tidak satu spesifikasi area',
 	'imagemap_invalid_coord' => '<imagemap>: koordinat tidak sah pada baris ke $1, haruslah berupa angka',
 	'imagemap_invalid_desc' => '<imagemap>: spesifikasi desc tidak sah, harus salah satu dari: $1',
 	'imagemap_description' => 'Tentang gambar ini',
 	'imagemap_poly_odd' => 'Kesalahan: terdapat poligon dengan nomor koordinat salah pada baris $1',
 );
 
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'imagemap_desc' => 'Palubusan ti kliente-a bangir nga agpabalin ti agtakla kadagiti imahen ti mapa nga agusar ti <code><imagemap></code> nga etiketa',
+	'imagemap_no_image' => 'Biddut: masapul nga inaganan ti imahen iti umuna a linia',
+	'imagemap_invalid_image' => 'Biddut: ti imahen ket imbalido wenn awan',
+	'imagemap_bad_image' => 'Biddut: ti imahen ket naiparit iti daytoy a panid',
+	'imagemap_no_link' => 'Biddut: awan ti nabirukan nga umisu a panilpo idiay lippasan ti linia $1',
+	'imagemap_invalid_title' => 'Biddut: imbalido a titulo iti panilpo idiay linia $1',
+	'imagemap_missing_coord' => 'Biddut: awan ti umanay a nagsasabtan para iti tabas idiay linia $1',
+	'imagemap_unrecognised_shape' => 'Biddut: saan a malasing a tabas idiay linia $1, tunggal maysa a linia ket masapul a mangrugi iti maysa nga: kinasigud, rektanggilo, nagtimbukel wenno poly',
+	'imagemap_invalid_coord' => 'Biddut: imbalido a nagsasabtan idiay linia $1, masapul a numero',
+	'imagemap_invalid_desc' => 'Biddut: imbalido a nainaganan a panagipalpalawag, masapul a maysa iti: <code>$1</code>',
+	'imagemap_description' => 'Maipanggep daytoy ngaimahen',
+	'imagemap_poly_odd' => 'Biddut: nabirukan ti poly nga addaan ti pangis a numero iti nagsasabtan idiay linia $1',
+);
+
 /** Ido (Ido)
  * @author Malafaya
  */
@@ -696,7 +832,7 @@
  * @author Darth Kule
  */
 $messages['it'] = array(
-	'imagemap_desc' => "Consente di realizzare ''image map'' cliccabili lato client con il tag <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Consente di realizzare ''image map'' cliccabili lato client con il tag <code><imagemap></code>",
 	'imagemap_no_image' => "Errore: si deve specificare un'immagine nella prima riga",
 	'imagemap_invalid_image' => "<imagemap>: l'immagine non è valida o non esiste",
 	'imagemap_bad_image' => "Errore: l'immagine si trova nella blacklist per questa pagina",
@@ -704,7 +840,6 @@
 	'imagemap_invalid_title' => '<imagemap>: titolo del collegamento non valido nella riga $1',
 	'imagemap_missing_coord' => '<imagemap>: non ci sono abbastanza coordinate per la forma specificata nella riga $1',
 	'imagemap_unrecognised_shape' => '<imagemap>: Forma (shape) non riconosciuta nella riga $1, ogni riga deve iniziare con uno dei seguenti: default, rect, circle o poly',
-	'imagemap_no_areas' => "<imagemap>: deve essere specificata almeno un'area",
 	'imagemap_invalid_coord' => '<imagemap>: coordinata non valida nella riga $1, deve essere un numero',
 	'imagemap_invalid_desc' => '<imagemap>: Valore non valido per il parametro desc, deve essere uno dei seguenti: $1',
 	'imagemap_description' => "Informazioni sull'immagine",
@@ -719,7 +854,7 @@
  * @author Mizusumashi
  */
 $messages['ja'] = array(
-	'imagemap_desc' => '<tt><nowiki><imagemap></nowiki></tt>タグによるクライアントサイドのクリッカブルマップ機能を有効にする',
+	'imagemap_desc' => '<code><imagemap></code>タグによるクライアントサイドのクリッカブルマップ機能を有効にする',
 	'imagemap_no_image' => 'エラー: 最初の行で画像を指定して下さい。',
 	'imagemap_invalid_image' => 'エラー: 画像が無効であるか、存在しません。',
 	'imagemap_bad_image' => 'エラー: このページでは画像が排除されています',
@@ -727,9 +862,8 @@
 	'imagemap_invalid_title' => 'エラー: $1行目のリンクのタイトルが無効です。',
 	'imagemap_missing_coord' => 'エラー: $1行目にある図形の座標指定が不足しています。',
 	'imagemap_unrecognised_shape' => 'エラー: $1行目の図形は認められません。各行は次のどれかで始まる必要があります: default, rect, circle, poly',
-	'imagemap_no_areas' => 'エラー: 図形の指定がありません。',
 	'imagemap_invalid_coord' => 'エラー: $1行目の座標が無効です。数字を指定して下さい。',
-	'imagemap_invalid_desc' => 'エラー: 無効なdescの指定です。次のどれかを指定して下さい: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'エラー: 無効なdescの指定です。次のどれかを指定して下さい: <code>$1</code>',
 	'imagemap_description' => '画像の詳細',
 	'imagemap_poly_odd' => 'エラー: $1行目に、奇数個の座標値が指定されたpolyがあります。',
 );
@@ -739,7 +873,7 @@
  * @author Pras
  */
 $messages['jv'] = array(
-	'imagemap_desc' => 'Nyedyakaké péta gambar sing bisa diklik saka klièn mawa nganggo tag <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Nyedyakaké péta gambar sing bisa diklik saka klièn mawa nganggo tag <code><imagemap></code>',
 	'imagemap_no_image' => 'Error: kudu mènèhi sawijining gambar ing baris kapisan',
 	'imagemap_invalid_image' => 'Error: gambar ora absah utawa ora ditemokaké',
 	'imagemap_bad_image' => 'Kasalahan: berkas ora diidinaké ing kaca iki',
@@ -747,7 +881,6 @@
 	'imagemap_invalid_title' => 'Error: irah-irahan ora absah ing pranala ing baris kaping $1',
 	'imagemap_missing_coord' => 'Error: ora cukup koordinat kanggo wujud ing baris kaping $1',
 	'imagemap_unrecognised_shape' => 'Error: wujud ora ditepungi ing baris kaping $1, saben baris kudu diwiwiti mawa salah siji saka: default, rect, circle utawa poly',
-	'imagemap_no_areas' => 'Error: kudu diwènèhi spésifikasi area minimal sawiji',
 	'imagemap_invalid_coord' => 'Error: koordinat ora absah ing baris kaping $1, kudu awujud angka',
 	'imagemap_invalid_desc' => 'Error: spésifikasi desc ora absah, kudu salah siji saka: $1',
 	'imagemap_description' => 'Prekara gambar iki',
@@ -755,10 +888,23 @@
 );
 
 /** Georgian (ქართული)
+ * @author BRUTE
+ * @author ITshnik
  * @author Malafaya
+ * @author გიორგიმელა
  */
 $messages['ka'] = array(
+	'imagemap_no_image' => 'შეცდომა: პირველ ხაზზე უნდა მიუთითოთ სურათი',
+	'imagemap_invalid_image' => 'შეცდომა: სურათი მცდარია ან არ არსებობს',
+	'imagemap_bad_image' => 'შეცდომა: სურათი შავ სიაშია ამ გვერდზე',
+	'imagemap_no_link' => 'შეცდომა: არასწორი ბმული $1 ხაზის ბოლოს',
+	'imagemap_invalid_title' => 'შეცდომა: არასწორი სათაური ბმულში ხაზზე $1',
+	'imagemap_missing_coord' => 'შეცდომა: ხაზ $1 არ არის საკმარისი რაოდენობის კოორდინატები',
+	'imagemap_unrecognised_shape' => 'შეცდომა: გაურკვეველი ფიგურა ხაზ $1-ში, ყველა ახალი ხაზი უნდა იწყებოდეს ერთ-ერთი ძირითადი სიტყვით: default, rect, circle ან  poly',
+	'imagemap_invalid_coord' => 'შეცდომა:არასწორი კოორდინატი ხაზ $1-ში, მოლოდინშია ციფრი',
+	'imagemap_invalid_desc' => 'შეცდომა: არასწორი მნიშვნელობა desc,  მოლოდინშია ერთ-ერთი მნიშვნელობა  <code>$1</code>.',
 	'imagemap_description' => 'ამ სურათის შესახებ',
+	'imagemap_poly_odd' => 'შეცდომა: $1 ხაზში არის შეცდომით აღწერილი მრავალკუთხედით ზედმეტი კორდინატებით.',
 );
 
 /** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬)
@@ -771,13 +917,12 @@
 	'imagemap_invalid_title' => '<imagemap>: $1 جول اياعىنداعى سٸلتەمەدە جارامسىز اتاۋ',
 	'imagemap_missing_coord' => '<imagemap>: $1 جولداعى كەسكٸن ٷشٸن كوورديناتتار جەتٸكسٸز',
 	'imagemap_unrecognised_shape' => '<imagemap>: $1 جولداعى كەسكٸن جارامسىز, ٵربٸر جول مىنانىڭ بٸرەۋٸنەن باستالۋ قاجەت:',
-	'imagemap_no_areas' => '<imagemap>: ەڭ كەمٸندە بٸر اۋماق ماماندانىمى بەرٸلۋ قاجەت',
 	'imagemap_invalid_coord' => '<imagemap>: $1 جولىندا جارامسىز كوورديناتا, سان بولۋى قاجەت',
 	'imagemap_invalid_desc' => '<imagemap>: جارامسىز سيپاتتاما ماماندانىمى, مىنانىڭ بٸرەۋٸ بولۋى قاجەت: $1',
 	'imagemap_description' => 'بۇل سۋرەت تۋرالى',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic))
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬)
  * @author AlefZet
  */
 $messages['kk-cyrl'] = array(
@@ -787,13 +932,12 @@
 	'imagemap_invalid_title' => '<imagemap>: $1 жол аяғындағы сілтемеде жарамсыз атау',
 	'imagemap_missing_coord' => '<imagemap>: $1 жолдағы кескін үшін координаттар жетіксіз',
 	'imagemap_unrecognised_shape' => '<imagemap>: $1 жолдағы кескін жарамсыз, әрбір жол мынаның біреуінен басталу қажет:',
-	'imagemap_no_areas' => '<imagemap>: ең кемінде бір аумақ маманданымы берілу қажет',
 	'imagemap_invalid_coord' => '<imagemap>: $1 жолында жарамсыз координата, сан болуы қажет',
 	'imagemap_invalid_desc' => '<imagemap>: жарамсыз сипаттама маманданымы, мынаның біреуі болуы қажет: $1',
 	'imagemap_description' => 'Бұл сурет туралы',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin))
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬)
  * @author AlefZet
  */
 $messages['kk-latn'] = array(
@@ -803,7 +947,6 @@
 	'imagemap_invalid_title' => '<imagemap>: $1 jol ayağındağı siltemede jaramsız ataw',
 	'imagemap_missing_coord' => '<imagemap>: $1 joldağı keskin üşin koordïnattar jetiksiz',
 	'imagemap_unrecognised_shape' => '<imagemap>: $1 joldağı keskin jaramsız, ärbir jol mınanıñ birewinen bastalw qajet:',
-	'imagemap_no_areas' => '<imagemap>: eñ keminde bir awmaq mamandanımı berilw qajet',
 	'imagemap_invalid_coord' => '<imagemap>: $1 jolında jaramsız koordïnata, san bolwı qajet',
 	'imagemap_invalid_desc' => '<imagemap>: jaramsız sïpattama mamandanımı, mınanıñ birewi bolwı qajet: $1',
 	'imagemap_description' => 'Bul swret twralı',
@@ -813,43 +956,64 @@
  * @author Chhorran
  * @author Lovekhmer
  * @author Thearith
+ * @author វ័ណថារិទ្ធ
  */
 $messages['km'] = array(
+	'imagemap_no_image' => 'កំហុស៖ ត្រូវបញ្ជាក់​រូបភាពមួយនៅក្នុង​បន្ទាត់ទីមួយ​',
+	'imagemap_invalid_image' => 'កំហុស៖ រូបភាព​មិនត្រឹមត្រូវ ឬមិនមាន​',
+	'imagemap_bad_image' => 'កំហុស៖ រូបភាពត្រូវបានហាមឃាត់ក្នុងបញ្ជី​ខ្មៅ​ លើ​ទំព័រនេះ​',
 	'imagemap_invalid_title' => 'កំហុស:ចំណងជើងមិនត្រឹមត្រូវក្នុងតំណភ្ជាប់នៅបន្ទាត់ទី$1',
 	'imagemap_description' => 'អំពីរូបភាពនេះ',
 );
 
 /** Korean (한국어)
+ * @author Klutzy
  * @author Kwj2772
+ * @author Yknok29
  */
 $messages['ko'] = array(
+	'imagemap_desc' => '사용자가 이미지맵을 사용할 수 있도록 <code><imagemap></code> 태그를 추가',
 	'imagemap_no_image' => '오류: 첫 줄에 그림이 제시되어야 합니다.',
 	'imagemap_invalid_image' => '오류: 그림이 잘못되었거나 존재하지 않습니다.',
 	'imagemap_bad_image' => '오류: 이 그림은 이 문서에서 사용이 금지되어 있습니다.',
+	'imagemap_no_link' => '오류: $1번째 줄에서 유효한 링크를 찾을 수 없습니다',
+	'imagemap_invalid_title' => '오류: $1번째 줄의 링크 제목이 잘못되었습니다',
+	'imagemap_missing_coord' => '오류: $1줄에 정의된 도형의 좌표 값이 충분하지 않습니다.',
+	'imagemap_unrecognised_shape' => '오류: $1줄에서 도형을 인식할 수 없음, 각 줄은 다음으로 시작해야 합니다: default, rect, circle, poly',
+	'imagemap_invalid_coord' => '오류: $1번째 줄에서 좌표가 잘못되었습니다. 좌표는 반드시 숫자여야 합니다.',
+	'imagemap_invalid_desc' => '오류: 질못된 desc 설정. 다음 중 하나가 되어야 함: <code>$1</code>',
 	'imagemap_description' => '이 그림에 대한 정보',
+	'imagemap_poly_odd' => '오류: $1번째 줄에 정의된 좌표 값의 수가 홀수 개입니다.',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
-	'imagemap_desc' => 'Brengk dä Befäähl <tt><nowiki><imagemap></nowiki></tt> en et Wiki, un med em Belldsche, wo mer op Anndeile fun klecke kann, wo dann Lengks henger lijje.',
-	'imagemap_no_image' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: En de eetzte Reih mööt e Beld shtonn.',
-	'imagemap_invalid_image' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: dat Beld jidd_et nit, odder dä Name es verkeeht',
-	'imagemap_bad_image' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: Dat Beld es op dä Sigg nit äloup.',
-	'imagemap_no_link' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: En de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß am Engk keine Lengk jefonge woode.',
-	'imagemap_invalid_title' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: Dä Tittel em Lengk en de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß verkeeht.',
-	'imagemap_missing_coord' => "Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: En dä {{PLURAL:$1|eetzte|$1-te|nullte}} Reih sin nit jenooch Ko'oddinate förr_ene komplätte Ömreß.",
-	'imagemap_unrecognised_shape' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: Dä Name förr_enne Ömreß en de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß verkeeht. Et mööt „<tt>rect</tt>“, „<tt>circle</tt>“, „<tt>poly</tt>“, udder „<tt>default</tt>“ do shtonn.',
-	'imagemap_no_areas' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: Do mööt jo winnischßdens eine Ömreß aanjejovve wääde, es ävver nit, es jaa keine doh.',
-	'imagemap_invalid_coord' => "Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: En de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß jet verkeeht met de Ko'oddinate. Do mööte luuter Zahle shtonn, es äver nit esu.",
-	'imagemap_invalid_desc' => 'Do es ene Fääler met <tt><nowiki><imagemap></nowiki></tt> opjefalle: Dä Parammeeter „<tt><nowiki>desc</nowiki></tt>“ eß verkeeht aanjejovve. Bruche kanns De nor ein fun dänne hee: <tt>$1</tt>',
+	'imagemap_desc' => 'Brengk dä Befäähl <code><imagemap></code> en et Wiki, un med em Belldsche, wo mer op Anndeile fun klecke kann, wo dann Lengks henger lijje.',
+	'imagemap_no_image' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: En de eetzte Reih mööt e Beld shtonn.',
+	'imagemap_invalid_image' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: dat Beld jidd_et nit, odder dä Name es verkeeht',
+	'imagemap_bad_image' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: Dat Beld es op dä Sigg nit äloup.',
+	'imagemap_no_link' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: En de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß am Engk keine Lengk jefonge woode.',
+	'imagemap_invalid_title' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: Dä Tittel em Lengk en de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß verkeeht.',
+	'imagemap_missing_coord' => "Do es ene Fääler met <code><imagemap></code> opjefalle: En dä {{PLURAL:$1|eetzte|$1-te|nullte}} Reih sin nit jenooch Ko'oddinate förr_ene komplätte Ömreß.",
+	'imagemap_unrecognised_shape' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: Dä Name förr_enne Ömreß en de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß verkeeht. Et mööt „<tt>rect</tt>“, „<tt>circle</tt>“, „<tt>poly</tt>“, udder „<tt>default</tt>“ do shtonn.',
+	'imagemap_invalid_coord' => "Do es ene Fääler met <code><imagemap></code> opjefalle: En de {{PLURAL:$1|eetzte|$1-te|nullte}} Reih eß jet verkeeht met de Ko'oddinate. Do mööte luuter Zahle shtonn, es äver nit esu.",
+	'imagemap_invalid_desc' => 'Do es ene Fääler met <code><imagemap></code> opjefalle: Dä Parammeeter „<tt><nowiki>desc</nowiki></tt>“ eß verkeeht aanjejovve. Bruche kanns De nor ein fun dänne hee: <code>$1</code>',
 	'imagemap_description' => 'Övver dat Beld hee',
 	'imagemap_desc_types' => 'bovve räähß, unge räähß, unge lengkß, bovve lengkß, nix',
 	'imagemap_poly_odd' => 'Do es ene Fääler met <imagemap> opjefalle: De Parammeeter för „poly“ möße Zahle-Päärche sin, ävver hee es ei Zahl zovill udder zowinnisch
 en dä Reih: $1.',
 );
 
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ * @author Gomada
+ */
+$messages['ku-latn'] = array(
+	'imagemap_description' => 'Derbarê vî wêneyî de',
+);
+
 /** Latin (Latina)
  * @author SPQRobin
  */
@@ -861,7 +1025,7 @@
  * @author Robby
  */
 $messages['lb'] = array(
-	'imagemap_desc' => 'Erlaabt et Biller ze benotzen déi een uklicke ka mat Hellëf vum Tag <tt><nowiki><imagemap></nowiki></tt>.',
+	'imagemap_desc' => 'Erlaabt et Biller ze benotzen déi een uklicke ka mat Hëllef vum Tag <code><imagemap></code>.',
 	'imagemap_no_image' => 'Feeler: Dir musst an der éischter Linn e Bild uginn',
 	'imagemap_invalid_image' => "Feeler: d'Bild ass ongëltig oder net do",
 	'imagemap_bad_image' => "Feeler: D'Bild steet op der Lëscht vun den onerwënschte Biller",
@@ -869,20 +1033,20 @@
 	'imagemap_invalid_title' => 'Feeler: ongëltigen Titel am Link an der Zeil $1',
 	'imagemap_missing_coord' => 'Feeler: Ze wéineg Koordinaten an der Zeil $1 fir den Ëmress',
 	'imagemap_unrecognised_shape' => 'Feeler: Onbekannte Form an der Zeil $1. All Zeile muss matt engem vun dëse Parameter ufänken: <tt>default, rect, circle</tt> oder <tt>poly</tt>',
-	'imagemap_no_areas' => 'Feeler: Dir musst mindestens eng Fläch definéieren',
 	'imagemap_invalid_coord' => 'Feeler: Ongëlteg Koordinaten an der Zeil $1: et sinn nëmmen Zuelen erlaabt',
-	'imagemap_invalid_desc' => 'Feeler: Ongëltegen „desc“-Parameter, méiglech sinn: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Feeler: Ongëltegen „desc“-Parameter, méiglech sinn: <code>$1</code>',
 	'imagemap_description' => 'Iwwert dëst Bild',
 	'imagemap_desc_types' => 'uewe-riets, ënne-riets, ënne-lénks, uewe-lénks, keen',
 	'imagemap_poly_odd' => 'Feeler: e Polygon mat enger ongerueder Zuel vu Koordinate gouf an der Linn $1 fonnt',
 );
 
 /** Limburgish (Limburgs)
+ * @author Aelske
  * @author Matthias
  * @author Ooswesthoesbes
  */
 $messages['li'] = array(
-	'imagemap_desc' => 'Maakt aanklikbare imagemaps meugelijk met de tag <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Maakt aanklikbare imagemaps meugelijk met de tag <code><imagemap></code>',
 	'imagemap_no_image' => "Error: geef 'n afbeelding op in de eerste regel",
 	'imagemap_invalid_image' => 'Error: de afbeelding is corrupt of bestaat neet',
 	'imagemap_bad_image' => 'Fout: de afbeelding steit op de zwarte lies voor deze pagina',
@@ -890,7 +1054,6 @@
 	'imagemap_invalid_title' => 'Error: er staat een ongeldige titel in de verwijzing op regel $1',
 	'imagemap_missing_coord' => 'Error: neet genoeg coördinaten veur vorm in regel $1',
 	'imagemap_unrecognised_shape' => "Error: neet herkende vorm in regel $1, iedere regel mot beginne met éin van de commando's: default, rect, circle of poly",
-	'imagemap_no_areas' => 'Error: er moet tenminste één gebied gespecificeerd worde',
 	'imagemap_invalid_coord' => 'Error: ongeldige coördinaten in regel $1, moet een getal zien',
 	'imagemap_invalid_desc' => 'Error: ongeldige beschrijvingsspecificatie, dit moet er één zijn uit de volgende lijst: $1',
 	'imagemap_description' => 'Euver deze aafbeelding',
@@ -908,9 +1071,8 @@
 	'imagemap_invalid_title' => 'Error: blogas pavadinimas nuorodoje $1 eilutėje',
 	'imagemap_missing_coord' => 'Error: nėra pakankamai koordinačių figūrai $1 eilutėje',
 	'imagemap_unrecognised_shape' => 'Error: neatpažįstama figūra $1 eilutėje, kiekviena eilutė privalo prasidėti su vienu iš šių žodžių: default, rect, circle arba poly',
-	'imagemap_no_areas' => 'Error: privalo būti duoda mažiausiai viena vietos specifikacija',
 	'imagemap_invalid_coord' => 'Error: netinkama koordinatė $1 eilutėje, privalo būti skaičius',
-	'imagemap_invalid_desc' => 'Error: bloga aprašymo specifikacija, privalo būti viena iš: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: bloga aprašymo specifikacija, privalo būti viena iš: <code>$1</code>',
 	'imagemap_description' => 'Apie šį paveikslėlį',
 );
 
@@ -924,45 +1086,71 @@
 	'imagemap_description' => 'Par šo attēlu',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'imagemap_desc' => 'Дава картографски слики кои можат да се кликаат од клиентот користејќи ја ознаката <code><imagemap></code>',
+	'imagemap_no_image' => 'Грешка: мора да се назначи слика во првиот ред',
+	'imagemap_invalid_image' => 'Грешка: сликата е неважечка или не постои',
+	'imagemap_bad_image' => 'Грешка: сликата е на црн список за оваа страница',
+	'imagemap_no_link' => 'Грешка: не беше пронајдена важечка врска на крајот на редот $1',
+	'imagemap_invalid_title' => 'Грешка: погрешен наслов во врската на ред $1',
+	'imagemap_missing_coord' => 'Грешка: нема доволно координати за обликот на ред $1',
+	'imagemap_unrecognised_shape' => 'Грешка: непризнат ред $1, секој ред мора да почне со едно од: default, rect, circle или poly',
+	'imagemap_invalid_coord' => 'Грешка: погрешни координати на ред $1, мора да биде со бројки',
+	'imagemap_invalid_desc' => 'Грешка: неважечко напатствие за опис, мора да биде едно од: <code>$1</code>',
+	'imagemap_description' => 'За сликава',
+	'imagemap_desc_types' => 'најгоре-десно, најдолу-десно, најдолу-лево, најгоре-лево, нема',
+	'imagemap_poly_odd' => 'Грешка: пронајден е многуаголник (poly) со непарен број на координати во ред $1',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'imagemap_no_image' => 'Error: ഒന്നാമത്തെ വരിയില്‍ ഒരു ചിത്രത്തിന്റെ പേരു വേണം',
-	'imagemap_invalid_image' => 'Error: ചിത്രം അസാധുവാണ്‌ അല്ലെങ്കില്‍ നിലവിലില്ല',
-	'imagemap_no_link' => 'Error: $1-മത്തെ വരിയുടെ അവസാനം സാധുവായ കണ്ണി കാണുന്നില്ല',
-	'imagemap_invalid_title' => 'Error: $1-മത്തെ വരിയില്‍ അസാധുവായ തലക്കെട്ട്',
-	'imagemap_missing_coord' => 'Error: $1-മത്തെ വരിയില്‍ രൂപത്തിനുള്ള നിര്‍ദ്ദേശാങ്കങ്ങള്‍ നിര്‍‌വചിച്ചിട്ടില്ല.',
-	'imagemap_unrecognised_shape' => 'Error: $1മത്തെ വരിയില്‍ മനസ്സിലാക്കാന്‍ പറ്റാത്ത രൂപം. ഓരോ വരിയും ഇനി പറയുന്ന ഒന്നു കൊണ്ടു വേണം തുടങ്ങാന്‍:default, rect, circle or poly',
-	'imagemap_no_areas' => 'Error: കുറഞ്ഞപക്ഷം ഒരു വിസ്തീര്‍ണ്ണ നിര്‍ദ്ദേശമെങ്കിലും കൊടുത്തിരിക്കണം',
-	'imagemap_invalid_coord' => 'Error: $1-മത്തെ വരിയില്‍ അസാധുവായ നിര്‍ദേശാങ്കം. നിര്‍ബന്ധമായും അത് ഒരു സംഖ്യയായിരിക്കണം.',
-	'imagemap_invalid_desc' => 'Error: അസാധുവായ വിവരണ നിര്‍ദ്ദേശം. ഇനി പറയുന്ന ഇനങ്ങളില്‍ ഒനായിരിക്കണം: <tt>$1</tt>',
+	'imagemap_desc' => 'സ്വീകർത്താവിന് ചിത്രത്തിലെ അടയാളപ്പെടുത്തലുകളിൽ ഞെക്കി ഗമിക്കാവുന്ന സൗകര്യം <code><imagemap></code> റ്റാഗ് ഉപയോഗിച്ച് സാദ്ധ്യമാക്കുന്നു',
+	'imagemap_no_image' => 'പിഴവ്: ഒന്നാമത്തെ വരിയിൽ ഒരു ചിത്രത്തിന്റെ പേരു വേണം',
+	'imagemap_invalid_image' => 'പിഴവ്: ചിത്രം അസാധുവാണ്‌ അല്ലെങ്കിൽ നിലവിലില്ല',
+	'imagemap_bad_image' => 'പിഴവ്: ഈ താളിൽ ചിത്രം കരിമ്പട്ടികയിലാണ്',
+	'imagemap_no_link' => 'പിഴവ്: വരി $1-ന്റെ അവസാനം സാധുവായ കണ്ണി കാണുന്നില്ല',
+	'imagemap_invalid_title' => 'പിഴവ്: വരി $1-ൽ അസാധുവായ തലക്കെട്ട്',
+	'imagemap_missing_coord' => 'പിഴവ്: വരി $1-ൽ രൂപത്തിന് ആവശ്യമുള്ളത്ര നിർദ്ദേശാങ്കങ്ങൾ നിർവചിച്ചിട്ടില്ല.',
+	'imagemap_unrecognised_shape' => 'പിഴവ്: വരി $1-ൽ മനസ്സിലാക്കാൻ പറ്റാത്ത രൂപം. ഓരോ വരിയും ഇനി പറയുന്ന ഒന്നു കൊണ്ടു വേണം തുടങ്ങാൻ: default, rect, circle അഥവാ poly',
+	'imagemap_invalid_coord' => 'പിഴവ്: വരി $1-ൽ അസാധുവായ നിർദ്ദേശാങ്കം. നിർബന്ധമായും അത് ഒരു സംഖ്യയായിരിക്കണം.',
+	'imagemap_invalid_desc' => 'പിഴവ്: അസാധുവായ വിവരണ നിർദ്ദേശം. ഇനി പറയുന്ന ഇനങ്ങളിൽ ഒന്നായിരിക്കണം: <code>$1</code>',
 	'imagemap_description' => 'ഈ ചിത്രത്തെ കുറിച്ച്',
+	'imagemap_poly_odd' => 'പിഴവ്: വിവിധ ഒറ്റയായുള്ള സംഖ്യകൾ ഉപയോഗിച്ചുള്ള നിർദ്ദേശാങ്കങ്ങൾ വരി $1-ൽ കണ്ടെത്തി',
 );
 
 /** Marathi (मराठी)
+ * @author Kaajawa
  * @author Kaustubh
+ * @author Rahuldeshmukh101
  */
 $messages['mr'] = array(
-	'imagemap_desc' => 'क्लायंटकडील चित्रनकाशे <tt><nowiki><imagemap></nowiki></tt> टॅग देऊन वापरता येऊ शकतात.',
+	'imagemap_desc' => 'क्लायंटकडील चित्रनकाशे <code><imagemap></code> टॅग देऊन वापरता येऊ शकतात.',
 	'imagemap_no_image' => 'Error: पहिल्या ओळीत चित्र देणे गरजेचे आहे',
 	'imagemap_invalid_image' => 'Error: चुकीचे अथवा अस्तित्वात नसलेले चित्र',
+	'imagemap_bad_image' => 'त्रूटी: ह्या पानावरील  चित्र काळ्या यादीत टाकले  आहे',
 	'imagemap_no_link' => 'Error: $1 ओळीच्या शेवटी योग्य दुवा सापडलेला नाही',
 	'imagemap_invalid_title' => 'Error: $1 ओळीतील दुव्याचे चुकीचे शीर्षक',
 	'imagemap_missing_coord' => 'Error: $1 ओळीवरील आकारासाठी पुरेसे कोऑर्डिनेट्स नाहीत',
 	'imagemap_unrecognised_shape' => 'Error: $1 ओळीमध्ये चुकीचा आकार, प्रत्येक ओळ ही: default, rect, circle अथवा poly पासून सुरु व्हायला पाहिजे.',
-	'imagemap_no_areas' => 'Error: कमीतकमी एक आकार दिला पाहिजे',
 	'imagemap_invalid_coord' => 'Error:  $1 ओळीवर चुकीचे कोऑर्डिनेट्स, संख्या हवी',
-	'imagemap_invalid_desc' => 'Error: चुकीची माहिती, यापैकी एक असायला हवी: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: चुकीची माहिती, यापैकी एक असायला हवी: <code>$1</code>',
 	'imagemap_description' => 'या चित्राबद्दल माहिती',
+	'imagemap_poly_odd' => 'त्रुटी: रेष क्र. $1 मधे विषम संख्येचे गुणक असलेला बहुभुजक आकार सापडला',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
  * @author Aviator
  * @author Kurniasan
  */
 $messages['ms'] = array(
-	'imagemap_desc' => 'Membenarkan peta imej boleh klik menggunakan tag <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Membenarkan peta imej boleh klik menggunakan tag <code><imagemap></code>',
 	'imagemap_no_image' => 'Ralat: sila nyatakan imej dalam baris pertama',
 	'imagemap_invalid_image' => 'Imej: imej tidak sah atau tidak wujud',
 	'imagemap_bad_image' => 'Ralat: imej disenaraihitamkan di laman ini',
@@ -970,19 +1158,41 @@
 	'imagemap_invalid_title' => 'Ralat: tajuk tidak sah dalam pautan pada baris $1',
 	'imagemap_missing_coord' => 'Ralat: koordinat bagi bentuk tidak cukup pada baris $1',
 	'imagemap_unrecognised_shape' => 'Ralat: bentuk tidak dikenali pada baris $1, setiap baris hendaklah dimulakan dengan salah satu daripada: default, rect, circle atau poly',
-	'imagemap_no_areas' => 'Ralat: hendaklah sekurang-kurangnya satu spesifikasi kawasan dinyatakan',
 	'imagemap_invalid_coord' => 'Ralat: koordinat tidak sah pada baris $1, hanya nombor dibenarkan',
-	'imagemap_invalid_desc' => 'Ralat: spesifikasi keterangan tidak sah, hendaklah salah satu daripada: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Ralat: spesifikasi keterangan tidak sah, hendaklah salah satu daripada: <code>$1</code>',
 	'imagemap_description' => 'Perihal imej ini',
-	'imagemap_desc_types' => 'puncak-kanan, bawah-kanan, bawah-kiri, puncak-kiri, tiada',
+	'imagemap_desc_types' => 'atas-kanan, bawah-kanan, bawah-kiri, atas-kiri, tiada',
 	'imagemap_poly_odd' => 'Ralat: terdapat poligon dengan bilangan koordinat yang ganjil dalam baris $1',
 );
 
+/** Erzya (Эрзянь)
+ * @author Botuzhaleny-sodamo
+ */
+$messages['myv'] = array(
+	'imagemap_description' => 'Те артовкстонть',
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$messages['nb'] = array(
+	'imagemap_desc' => 'Gjør at man kan bruke klikkbare bilder ved hjelp av <code><imagemap></code>.',
+	'imagemap_no_image' => 'Error: må angi et bilde i første linje',
+	'imagemap_invalid_image' => 'Error: bilde er ugyldig eller ikke-eksisterende',
+	'imagemap_bad_image' => 'Feil: bildet er svartelistet på denne siden',
+	'imagemap_no_link' => 'Error: ingen gyldig lenke ble funnet i slutten av linje $1',
+	'imagemap_invalid_title' => 'Error: ugyldig tittel i lenke på linje $1',
+	'imagemap_missing_coord' => 'Error: ikke nok koordinater for form på linje $1',
+	'imagemap_unrecognised_shape' => 'Error: ugjenkjennelig form på linje $1; hver linje må starte med enten: default, rect, circle eller poly',
+	'imagemap_invalid_coord' => 'Error: ugyldig koordinat i slutten av linje $1, må være et tall',
+	'imagemap_invalid_desc' => 'Error: ugyldig desc-spesifisering, må være enten: <code>$1</code>',
+	'imagemap_description' => 'Om dette bildet',
+	'imagemap_poly_odd' => 'Feil: fant poly med et oddetall koordinater på rad $1',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
 $messages['nds'] = array(
-	'imagemap_desc' => 'Verlöövt dat Instellen vun Lenken op Biller över den Tag <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Verlöövt dat Instellen vun Lenken op Biller över den Tag <code><imagemap></code>',
 	'imagemap_no_image' => 'Error: in de eerste Reeg mutt en Bild angeven wesen',
 	'imagemap_invalid_image' => 'Error: Bild geiht nich oder dat gifft dat gornich',
 	'imagemap_bad_image' => 'Fehler: Dat Bild steiht op de swarte List för disse Sied',
@@ -990,13 +1200,27 @@
 	'imagemap_invalid_title' => 'Error: in Reeg $1 is de Titel in’n Lenk nich bi de Reeg',
 	'imagemap_missing_coord' => 'Error: Form in Reeg $1 hett nich noog Koordinaten',
 	'imagemap_unrecognised_shape' => "Error: Form in Reeg $1 nich kennt, jede Reeg mutt mit ''default'', ''rect'', ''circle'' oder ''poly'' anfangen",
-	'imagemap_no_areas' => 'Error: opminnst een Areal mutt angeven wesen',
 	'imagemap_invalid_coord' => 'Error: Koordinaat in Reeg $1 nich bi de Reeg, mutt en Tall wesen',
-	'imagemap_invalid_desc' => 'Error: Beschrieven nich bi de Reeg, mutt een vun disse wesen: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: Beschrieven nich bi de Reeg, mutt een vun disse wesen: <code>$1</code>',
 	'imagemap_description' => 'Över dit Bild',
 	'imagemap_poly_odd' => 'Fehler: Polygon mit unevene Tall Koordinaten in Reeg $1',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'imagemap_no_image' => 'Fout: geef n aofbeelding op in de eerste regel',
+	'imagemap_invalid_image' => 'Fout: aofbeelding is ongeldig of besteet niet',
+	'imagemap_no_link' => 'Fout: der is gien geldige verwiezing evunnen an t einde van regel $1',
+	'imagemap_invalid_title' => 'Fout: ongeldige titel in de verwiezing op regel $1',
+	'imagemap_missing_coord' => 'Fout: niet genog koördinaoten veur vorm op regel $1',
+	'imagemap_unrecognised_shape' => 'Fout: onherkenbaore vorm op regel $1, elke regel mut beginnen mit één van de volgende vormen: standard, dreehoek, sirkel of n veulhoek',
+	'imagemap_invalid_coord' => 'Fout: ongeldige koördinaot in regel $1, mut n getal ween',
+	'imagemap_invalid_desc' => 'Fout: ongeldige beschrievingsspesifikasie, mut n van: <code>$1</code> ween',
+	'imagemap_description' => 'Over disse aofbeelding',
+);
+
 /** Nepali (नेपाली) */
 $messages['ne'] = array(
 	'imagemap_description' => 'यो चित्रको बारेमा',
@@ -1007,7 +1231,7 @@
  * @author Siebrand
  */
 $messages['nl'] = array(
-	'imagemap_desc' => 'Maakt aanklikbare imagemaps mogelijk met de tag <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Maakt aanklikbare imagemaps mogelijk met de tag <code><imagemap></code>',
 	'imagemap_no_image' => '<imagemap>: geef een afbeelding op in de eerste regel',
 	'imagemap_invalid_image' => '<imagemap>: de afbeelding is corrupt of bestaat niet',
 	'imagemap_bad_image' => 'Fout: de afbeelding staat op de zwarte lijst voor deze pagina',
@@ -1015,7 +1239,6 @@
 	'imagemap_invalid_title' => '<imagemap>: er staat een ongeldige titel in de verwijzing op regel $1',
 	'imagemap_missing_coord' => '<imagemap>: niet genoeg coördinaten voor vorm in regel $1',
 	'imagemap_unrecognised_shape' => "<imagemap>: niet herkende vorm in regel $1, iedere regel moet beginnen met één van de commando's: default, rect, circle of poly",
-	'imagemap_no_areas' => '<imagemap>: er moet tenminste één gebied gespecificeerd worden',
 	'imagemap_invalid_coord' => '<imagemap>: ongeldige coördinaten in regel $1, moet een getal zijn',
 	'imagemap_invalid_desc' => '<imagemap>: ongeldige beschrijvingsspecificatie, dit moet er één zijn uit de volgende lijst: $1',
 	'imagemap_description' => 'Over deze afbeelding',
@@ -1026,7 +1249,7 @@
  * @author Frokor
  */
 $messages['nn'] = array(
-	'imagemap_desc' => 'Gjer at ein kan nytte klikkbare bilete ved hjelp av <tt><nowiki><imagemap></nowiki></tt>.',
+	'imagemap_desc' => 'Gjer at ein kan nytte klikkbare bilete ved hjelp av <code><imagemap></code>.',
 	'imagemap_no_image' => 'Feil: må gje eit bilete i første linja',
 	'imagemap_invalid_image' => 'Fil: biletet er ugyldig eller eksisterer ikkje',
 	'imagemap_bad_image' => 'Feil: biletet er svartelista på denne sida',
@@ -1034,37 +1257,17 @@
 	'imagemap_invalid_title' => 'Feil: ugyldig tittel i lenke på linje $1',
 	'imagemap_missing_coord' => 'Feil: ikkje nok koordinatar for form på linje $1',
 	'imagemap_unrecognised_shape' => 'Feil: ukjend form på linje $1; kvar linje må starte med anten: default, rect, circle eller poly',
-	'imagemap_no_areas' => 'Feil: Minst eitt område må spesifiserast',
 	'imagemap_invalid_coord' => 'Feil: ugyldig koordinat i slutten av linje $1, må vere eit tal',
-	'imagemap_invalid_desc' => 'Feil: ugyldig desc-spesifisering, må vere ein av: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Feil: ugyldig desc-spesifisering, må vere ein av: <code>$1</code>',
 	'imagemap_description' => 'Om dette bilete',
 	'imagemap_poly_odd' => 'Feil: fann poly med eit oddetal koordinatar på rad $1',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'imagemap_desc' => 'Gjør at man kan bruke klikkbare bilder ved hjelp av <tt><nowiki><imagemap></nowiki></tt>.',
-	'imagemap_no_image' => 'Error: må angi et bilde i første linje',
-	'imagemap_invalid_image' => 'Error: bilde er ugyldig eller ikke-eksisterende',
-	'imagemap_bad_image' => 'Feil: bildet er svartelistet på denne siden',
-	'imagemap_no_link' => 'Error: ingen gyldig lenke ble funnet i slutten av linje $1',
-	'imagemap_invalid_title' => 'Error: ugyldig tittel i lenke på linje $1',
-	'imagemap_missing_coord' => 'Error: ikke nok koordinater for form på linje $1',
-	'imagemap_unrecognised_shape' => 'Error: ugjenkjennelig form på linje $1; hver linje må starte med enten: default, rect, circle eller poly',
-	'imagemap_no_areas' => 'Feil: Minst ett område må spesifiseres',
-	'imagemap_invalid_coord' => 'Error: ugyldig koordinat i slutten av linje $1, må være et tall',
-	'imagemap_invalid_desc' => 'Error: ugyldig desc-spesifisering, må være enten: <tt>$1</tt>',
-	'imagemap_description' => 'Om dette bildet',
-	'imagemap_poly_odd' => 'Feil: fant poly med et oddetall koordinater på rad $1',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
-	'imagemap_desc' => "Permet qu'una mapa imatge clienta siá clicabla en utilizant la balisa <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Permet qu'una mapa imatge clienta siá clicabla en utilizant la balisa <code><imagemap></code>",
 	'imagemap_no_image' => 'Error : vos cal especificar un imatge dins la primièra linha',
 	'imagemap_invalid_image' => 'Error : l’imatge es invalid o existís pas',
 	'imagemap_bad_image' => 'Error : l’imatge es sus la tièra negra sus aquesta pagina',
@@ -1072,27 +1275,51 @@
 	'imagemap_invalid_title' => 'Error : títol invalid dins lo ligam a la linha $1',
 	'imagemap_missing_coord' => 'Error : pas pro de coordenadas per la forma a la linha $1',
 	'imagemap_unrecognised_shape' => 'Error : forma pas reconeguda a la linha $1, cada linha deu començar amb un dels mots seguents : default, rect, circle o poly',
-	'imagemap_no_areas' => 'Error : almens una especificacion d’aira deu èsser balhada',
 	'imagemap_invalid_coord' => 'Error : coordenada invalida a la linha $1, deu èsser un nombre',
 	'imagemap_invalid_desc' => 'Error : paramètre « desc » invalid, los paramètres possibles son : $1',
 	'imagemap_description' => "A prepaus d'aqueste imatge",
 	'imagemap_poly_odd' => 'Error : trobat un poligòn amb un nombre impar de coordenadas a la linha $1',
 );
 
-/** Ossetic (Иронау)
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'imagemap_desc' => '<code><imagemap></code> ଚିହ୍ନ ବ୍ୟବହାର କରି କ୍ଲାଏଣ୍ଟ ଭାଗର କ୍ଲିକ କଲାଭଳି ଛବିର ମାନଚିତ୍ର ତିଆରି କରିଥାଏ ।',
+	'imagemap_no_image' => 'ଭୁଲ: ପ୍ରଥମ ଧାଡ଼ିରେ ଏକ ଛବି ଉଲ୍ଲେଖ କରିବା ଜରୁରୀ',
+	'imagemap_invalid_image' => 'ଭୁଲ: ଛବିଟି ଅବୈଧ ବା ନାହିଁ',
+	'imagemap_bad_image' => 'ଭୁଲ: ଏହି ପୃଷ୍ଠାରେ ଛବିଟି ବାସନ୍ଦ କରାଯାଇଅଛି',
+	'imagemap_no_link' => 'ଭୁଲ:$1 ଧାଡ଼ିର ଶେଷରେ କୌଣସିଟି ବୈଧ ଲିଙ୍କ ଦିଆଯାଇନାହିଁ',
+	'imagemap_invalid_title' => 'ଭୁଲ:$1ତମ ଧାଡ଼ିରେ ଭୁଲ ନାମଟିଏ ଦିଆଯାଇଅଛି',
+	'imagemap_missing_coord' => 'ଭୁଲ: ଆକୃତି ପାଇଁ $1 ଧାଡ଼ିରେ ସେତେ ଅଧିକ ଦିଗବରେଣି ନାହିଁ',
+	'imagemap_unrecognised_shape' => 'ଭୁଲ: $1ମ ଧାଡ଼ିରେ ଅଚିହ୍ନା ଆକୃତି, ସବୁଯାକ ଧାଡ଼ି ଏହି ସବୁ ନାମରୁ ଆରମ୍ଭ ହେବ ଉଚିତ: ଆପେଆପେ, ଆୟତକ୍ଷେତ୍ର, ବୃତ୍ତ ବ ବହୁଭୂଜ',
+	'imagemap_invalid_coord' => 'ଭୁଲ: $1 ଧାଡ଼ିରେ ଥିବା ଅବୈଧ ଦିଗବାରେଣି, ସଂଖ୍ୟାଟିଏ ନିହାତି ହୋଇପାରେ',
+	'imagemap_invalid_desc' => 'ଭୁଲ: ଅବୈଧ ବଖାଣ ନିର୍ଦିଷ୍ଟତା, ଏହି ସବୁ ଭିତରୁ ଗୋଟିଏ ହୋଇପାରେ: <code>$1</code>',
+	'imagemap_description' => 'ଏହି ଛବି ବାବଦରେ',
+	'imagemap_poly_odd' => 'ଭୁଲ: $1 ତମ ଧାଡ଼ିରେ ଏକ ବିସମ କୋଣଥିବା ବହୁଭୂଜ ପାଇଲୁଁ',
+);
+
+/** Ossetic (Ирон)
  * @author Amikeco
  */
 $messages['os'] = array(
 	'imagemap_description' => 'Ацы нывы тыххæй',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'imagemap_description' => 'Iwwer sell Pikder',
+);
+
 /** Polish (Polski)
  * @author Derbeth
  * @author Leinad
  * @author Sp5uhe
  */
 $messages['pl'] = array(
-	'imagemap_desc' => 'Umożliwia utworzenie obrazka zawierającego klikalną mapę, z użyciem znacznika <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Umożliwia utworzenie obrazka zawierającego klikalną mapę, z użyciem znacznika <code><imagemap></code>',
 	'imagemap_no_image' => 'Błąd – należy wpisać grafikę w pierwszej linii',
 	'imagemap_invalid_image' => 'Błąd – grafika jest niepoprawna lub nie istnieje',
 	'imagemap_bad_image' => 'Błąd – ta grafika jest zakazana w tym serwisie',
@@ -1100,29 +1327,49 @@
 	'imagemap_invalid_title' => 'Błąd – niepoprawny tytuł linku w linii $1',
 	'imagemap_missing_coord' => 'Błąd – niewystarczająca liczba współrzędnych dla kształtu zdefiniowanego w linii $1',
 	'imagemap_unrecognised_shape' => 'Błąd – nierozpoznany kształt w linii $1; każda linia musi zawierać tekst: default, rect, circle lub poly',
-	'imagemap_no_areas' => 'Błąd – należy podać przynajmniej jedną specyfikację pola',
 	'imagemap_invalid_coord' => 'Błąd – nieprawidłowa współrzędna w linii $1; należy podać liczbę',
-	'imagemap_invalid_desc' => 'Błąd – nieprawidłowa specyfikacja opisu; należy wpisać jeden z wariantów: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Błąd – nieprawidłowa specyfikacja opisu; należy wpisać jeden z wariantów: <code>$1</code>',
 	'imagemap_description' => 'Informacje o tej grafice',
 	'imagemap_poly_odd' => 'Błąd – w linii $1 znaleziono wielokąt z nieparzystą liczbą współrzędnych',
 );
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
+	'imagemap_desc' => 'A përmëtt "image map" client-side clicàbij an dovrand ël tag <code><imagemap></code>',
 	'imagemap_no_image' => "Error: ant la prima riga a venta ch'a-i sia la specìfica ëd na figura",
 	'imagemap_invalid_image' => "Error: la figura ò ch'a l'ha chèich-còs ch'a va nen, ò ch'a-i é nen d'autut",
+	'imagemap_bad_image' => "Eror: la figura a l'é ant la blacklist ëd costa pàgina",
 	'imagemap_no_link' => 'Error: pa gnun-a anliura bon-a a la fin dla riga $1',
 	'imagemap_invalid_title' => "Error: tìtol nen bon ant l'anliura dla riga $1",
 	'imagemap_missing_coord' => 'Error: pa basta ëd coordinà për fé na forma a la riga $1',
 	'imagemap_unrecognised_shape' => 'Error: forma nen arconossùa a la riga $1, minca riga a la dev anandiesse con un ëd: default, rect, circle ò poly',
-	'imagemap_no_areas' => "Error: almanch n'area a venta ch'a sia specificà",
 	'imagemap_invalid_coord' => "Error: coordinà nen bon-a a la riga $1, a l'ha da esse un nùmer",
-	'imagemap_invalid_desc' => "Error: specìfica dla descrission nen bon-a, a l'ha da esse un-a ëd coste-sì: <tt>$1</tt>",
+	'imagemap_invalid_desc' => "Error: specìfica dla descrission nen bon-a, a l'ha da esse un-a ëd coste-sì: <code>$1</code>",
 	'imagemap_description' => 'Rësgoard a sta figura-sì',
+	'imagemap_poly_odd' => 'Eror: trovà un polìgon con un nùmer dìspar ëd coordinà an sla linia $1',
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'imagemap_desc' => 'اجازت دیندا اے کلائینٹ سائیڈ کلکایبل امیج نقشے <code><imagemap></code> ٹیگ ورتدیاں ہویاں۔',
+	'imagemap_no_image' => 'غلطی: پہلی لائن چ مورت بارے دسو',
+	'imagemap_invalid_image' => 'مسئلہ: اے فوٹو غلط اے یا نئیں ہیگی',
+	'imagemap_bad_image' => 'مسئلہ: فوٹو اس صفے واسطے بلیک لسٹ اے',
+	'imagemap_no_link' => 'مسئلہ: $1 دی لائن دے انت تے کوئی ٹردا جوڑ نئیں',
+	'imagemap_invalid_title' => 'مسئلہ:  $1 لائن دے جوڑ تے غلط ناں اے',
+	'imagemap_missing_coord' => 'غلطی: کافی کووارڈینیٹ لکیر $1 تے مورت لئی نئیں دتے گۓ۔',
+	'imagemap_unrecognised_shape' => 'غلطی:لکیر $1 تے مورت نئیں پچھانی جاندی، ہر لکیر ایناں چوں کسے نال شروع ہووے: ڈیفالٹ، ریکٹ، چکر، یا پولی',
+	'imagemap_invalid_coord' => 'غلطی: ناں منے جان والے کووارڈینیٹ لکیر $1، لازمی اک نمبر ہووے۔',
+	'imagemap_invalid_desc' => 'غلطی: ناں منی جان والی ڈیسک سپیسیفیکیشن، لازمی ایناں چوں ہووے: <کوڈ>$1</کوڈ>',
+	'imagemap_description' => 'ایس مورت بارے',
+	'imagemap_poly_odd' => 'غلطی: لکیر $1 تے پولی لبی وکھے نمبراں دے کوورڈینیٹ نال',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
@@ -1131,20 +1378,20 @@
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'imagemap_desc' => 'Permite mapas de imagem clicáveis no lado do cliente usando a "tag" <tt><nowiki><imagemap></nowiki></tt>',
-	'imagemap_no_image' => '<imagemap>: é necessário especificar uma imagem na primeira linha',
-	'imagemap_invalid_image' => '<imagemap>: imagem inválida ou inexistente',
+	'imagemap_desc' => 'Permite mapas de imagem clicáveis no lado do cliente usando a "tag" <code><imagemap></code>',
+	'imagemap_no_image' => 'Erro: é necessário especificar uma imagem na primeira linha',
+	'imagemap_invalid_image' => 'Erro: imagem inválida ou inexistente',
 	'imagemap_bad_image' => 'Erro: a imagem está na lista negra para esta página',
-	'imagemap_no_link' => '<imagemap>: não foi encontrado um link válido ao final da linha $1',
-	'imagemap_invalid_title' => '<imagemap>: título inválido no link da linha $1',
-	'imagemap_missing_coord' => '<imagemap>: coordenadas insuficientes para formar uma figura na linha $1',
-	'imagemap_unrecognised_shape' => '<imagemap>: figura não reconhecida na linha $1. Cada linha precisa iniciar com: default, rect, circle ou poly',
-	'imagemap_no_areas' => '<imagemap>: é necessário fornecer ao menos uma especificação de área',
-	'imagemap_invalid_coord' => '<imagemap>: coordenada inválida na linha $1. 0 necessário que seja um número',
-	'imagemap_invalid_desc' => '<imagemap>: especificação desc inválida. 0 necessário que seja uma dentre: <tt>$1</tt>',
+	'imagemap_no_link' => 'Erro: não foi encontrada nenhum link válido, ao final da linha $1',
+	'imagemap_invalid_title' => 'Erro: título inválido num link, na linha $1',
+	'imagemap_missing_coord' => 'Erro: coordenadas insuficientes para formar uma figura, na linha $1',
+	'imagemap_unrecognised_shape' => 'Erro: figura não reconhecida, na linha $1 - cada linha tem de começar por: default, rect, circle ou poly',
+	'imagemap_invalid_coord' => 'Erro: coordenada inválida, na linha $1 - tem de ser um número',
+	'imagemap_invalid_desc' => 'Erro: especificação desc inválida - tem de ser uma destas: <code>$1</code>',
 	'imagemap_description' => 'Sobre esta imagem',
 	'imagemap_poly_odd' => 'Erro: encontrado polígono com número ímpar de coordenadas na linha $1',
 );
@@ -1154,7 +1401,7 @@
  * @author Eduardo.mps
  */
 $messages['pt-br'] = array(
-	'imagemap_desc' => 'Permite mapas de imagem clicáveis no lado do cliente usando a marca <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Permite mapas de imagem clicáveis no lado do cliente usando a marca <code><imagemap></code>',
 	'imagemap_no_image' => 'Erro: deve ser especificada uma imagem na primeira linha',
 	'imagemap_invalid_image' => 'Erro: imagem inválida ou inexistente',
 	'imagemap_bad_image' => 'Erro: a imagem está na lista negra para esta página',
@@ -1162,9 +1409,8 @@
 	'imagemap_invalid_title' => 'Erro: título inválido na ligação da linha $1',
 	'imagemap_missing_coord' => 'Erro: coordenadas insuficientes para formar uma figura na linha $1',
 	'imagemap_unrecognised_shape' => 'Erro: figura não reconhecida na linha $1. Cada linha precisa iniciar com: default, rect, circle ou poly',
-	'imagemap_no_areas' => 'Erro: é necessário fornecer ao menos uma especificação de área',
 	'imagemap_invalid_coord' => 'Erro: coordenada inválida na linha $1, é necessário que seja um número',
-	'imagemap_invalid_desc' => 'Erro: especificação desc inválida, é necessário que seja uma dentre: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Erro: especificação desc inválida, é necessário que seja uma dentre: <code>$1</code>',
 	'imagemap_description' => 'Sobre esta imagem',
 	'imagemap_desc_types' => 'superior-direito, inferior-direito, inferior-esquerdo, superior-esquerdo, nenhum',
 	'imagemap_poly_odd' => 'Erro: encontrado polígono com número ímpar de coordenadas na linha $1',
@@ -1178,30 +1424,51 @@
 );
 
 /** Romanian (Română)
+ * @author Cin
  * @author KlaudiuMihaila
+ * @author Mihai
+ * @author Minisarm
  */
 $messages['ro'] = array(
+	'imagemap_desc' => 'Permite realizarea unei imagini hartă, cu ajutorul etichetei <code><imagemap></code>',
 	'imagemap_no_image' => 'Eroare: trebuie specificată o imagine pe prima linie',
 	'imagemap_invalid_image' => 'Eroare: imaginea este incorectă sau nu există',
-	'imagemap_no_link' => 'Eroare: nu a fost găsită nici o legătură validă la sfârşitul liniei $1',
+	'imagemap_bad_image' => 'Eroare: imaginea este pe o listă neagră pentru această pagină',
+	'imagemap_no_link' => 'Eroare: nu a fost găsită nici o legătură validă la sfârșitul liniei $1',
+	'imagemap_invalid_title' => 'Eroare: titlu invalid în legătură în linia $1',
 	'imagemap_missing_coord' => 'Eroare: coordonate insuficiente pentru forma de la linia $1',
+	'imagemap_unrecognised_shape' => 'Eroare: formă nerecunoscută în linia $1, fiecare linie trebuie să înceapă cu unul din parametrii: default, rect, circle or poly',
 	'imagemap_invalid_coord' => 'Eroare: coordonată incorectă la linia $1, trebuie să fie număr',
+	'imagemap_invalid_desc' => 'Eroare: parametru "desc" invalid, trebuie să fie unul din următorii: <code>$1</code>',
 	'imagemap_description' => 'Despre această imagine',
+	'imagemap_poly_odd' => 'Eroare: a fost găsit un poligon cu un număr impar de coordonate în linia $1',
 );
 
 /** Tarandíne (Tarandíne)
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
+	'imagemap_desc' => "Permette le mappe de immaggine cazzabbele late cliende ausanne 'u tag <code><imagemap></code>",
+	'imagemap_no_image' => "Errore: a specifià 'n'immaggine jndr'à prima righe",
+	'imagemap_invalid_image' => "Errore: l'immaggine jè invalide o non g'esiste",
+	'imagemap_bad_image' => "Errore: l'immaggine sus a sta pàgene jè jndr'à lista gnore",
+	'imagemap_no_link' => "Errore: nisciune collegamende valide ha state acchiate a fine d'a linèe $1",
+	'imagemap_invalid_title' => "Errore: titele invalide jndr'à 'u collegamende a 'a linèe $1",
+	'imagemap_missing_coord' => "Errore: non ge stonne abbastanze coordinate pa figure a 'a linèe $1",
+	'imagemap_unrecognised_shape' => "Errore: figure none recanusciute a 'a linèe $1, ogne linèe adda accumenzà cu une de quiste: default, rect, circle o poly",
+	'imagemap_invalid_coord' => "Errore: coordinate invalide a 'a linèe $1, adda essere 'nu numere",
+	'imagemap_invalid_desc' => "Errore: specificazione d'a descrizione (desc) invalide, adda essere une de <code>$1</code>",
 	'imagemap_description' => "Sus a st'immaggine",
+	'imagemap_poly_odd' => "Errore: acchiate 'nu poligone cu numere dispare de coordinate sus a linèe $1",
 );
 
 /** Russian (Русский)
+ * @author Dim Grits
  * @author Kaganer
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
-	'imagemap_desc' => 'Позволяет указывать срабатывающие на нажатие карты изображений на стороне клиента с помощью тега <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Позволяет указывать срабатывающие на нажатие карты изображений на стороне клиента с помощью тега <code><imagemap></code>',
 	'imagemap_no_image' => 'Ошибка: в первой строке должно быть задано изображение',
 	'imagemap_invalid_image' => 'Ошибка: неверное или отсутствующее изображение',
 	'imagemap_bad_image' => 'Ошибка. Изображение входит в чёрный список на этой странице.',
@@ -1209,18 +1476,36 @@
 	'imagemap_invalid_title' => 'Ошибка: неверный заголовок ссылки в строке $1',
 	'imagemap_missing_coord' => 'Ошибка: недостаточно координат для фигуры в строке $1',
 	'imagemap_unrecognised_shape' => 'Ошибка: неопознанная фигура в строке $1, каждая строка должна начинаться одним из ключевых слов: default, rect, circle или poly',
-	'imagemap_no_areas' => 'Ошибка: должна быть указана хотя бы одна область',
 	'imagemap_invalid_coord' => 'Ошибка: ошибочная координата в строке $1, ожидается число',
-	'imagemap_invalid_desc' => 'Ошибка: некорректное значение desc, ожидается одно из следующих значений: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Ошибка: некорректное значение desc, ожидается одно из следующих значений: <code>$1</code>',
 	'imagemap_description' => 'Описание изображения',
+	'imagemap_desc_types' => 'верхний правый, нижний правый, нижний левый, верхний левый, ни один',
 	'imagemap_poly_odd' => 'Ошибка: в строке $1 обнаружено описание многоугольника с лишними координатами',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'imagemap_desc' => 'Доволює створёвати кликачу мапу образку на боцї кліента за помочі значкы <code><imagemap></code>',
+	'imagemap_no_image' => 'Хыба: на першім рядку мусить быти заданый образок',
+	'imagemap_invalid_image' => 'Хыба: файл не є платный або не єствує',
+	'imagemap_bad_image' => 'Хыба: образок ся находить на чорнім списку',
+	'imagemap_no_link' => 'Хыба: не нашов ся жаден платный одказ на кінцї рядку $1',
+	'imagemap_invalid_title' => 'Хыба: неправилна назва в одказї на рядку $1',
+	'imagemap_missing_coord' => 'Хыба: хыблячі коордінаты про твар на рядку $1',
+	'imagemap_unrecognised_shape' => 'Хыба: нероспознаный твар на рядку $1, каждый рядок мусить зачінати дефініціов твару: default, rect, circle або poly',
+	'imagemap_invalid_coord' => 'Хыба: неправилны коордінаты на рядку $1, має быти чісло',
+	'imagemap_invalid_desc' => 'Хыба: неправилне заданя области desc, має быти єдна з такых можностей: <code>$1</code>',
+	'imagemap_description' => 'О образку',
+	'imagemap_poly_odd' => 'Хыба: на рядку $1 найденый многокутник з непарным чіслом коордінат',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
-	'imagemap_desc' => 'Бу <tt><nowiki><imagemap></nowiki></tt> тиэги туһанан клиент өттүгэр каартаны баттааһын үлэлиирин көҥүллүүр',
+	'imagemap_desc' => 'Бу <code><imagemap></code> тиэги туһанан клиент өттүгэр каартаны баттааһын үлэлиирин көҥүллүүр',
 	'imagemap_no_image' => 'Error: бастакы строкатыгар ойуу баар буолуохтаах',
 	'imagemap_invalid_image' => 'Error: ойуу сыыһа бэриллибит, эбэтэр отой суох',
 	'imagemap_bad_image' => 'Алҕас: ойуу бу сирэй хара испииһэгэр киирэр',
@@ -1228,9 +1513,8 @@
 	'imagemap_invalid_title' => 'Error: $1 строкаҕа ыйынньык баһа сыыһа суруллубут',
 	'imagemap_missing_coord' => 'Error: недостаточно координат для фигуры в строке $1',
 	'imagemap_unrecognised_shape' => 'Error: неопознанная фигура в строке $1, каждая строка должна начинаться одним из ключевых слов: default, rect, circle или poly',
-	'imagemap_no_areas' => 'Error: саатар биир уобалас ыйыллыахтаах',
 	'imagemap_invalid_coord' => 'Error: $1 строкаҕа сыыһа координата суруллубут, чыыһыла буолуохтаах',
-	'imagemap_invalid_desc' => 'Error: desc суолтата сыыһа турбут, мантан талыахха наада: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: desc суолтата сыыһа турбут, мантан талыахха наада: <code>$1</code>',
 	'imagemap_description' => 'Ойуу туһунан',
 	'imagemap_poly_odd' => 'Алҕас: $1 строкааҕа наһаа элбэх координааталаах многоугольник туһунан булулунна',
 );
@@ -1239,7 +1523,7 @@
  * @author Santu
  */
 $messages['scn'] = array(
-	'imagemap_desc' => "Pirmetti di rializzari ''image map'' cliccàbbili latu client cô tag <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Pirmetti di rializzari ''image map'' cliccàbbili latu client cô tag <code><imagemap></code>",
 	'imagemap_no_image' => "Sbàgghiu: s'hà spicificari na mmàggini ntâ prima riga",
 	'imagemap_invalid_image' => "Sbàgghiu: la mmàggini nun è vàlida o non c'è",
 	'imagemap_bad_image' => "Sbàgghiu: la mmàggini s'attrova ntâ blacklist pi sta pàggina",
@@ -1248,9 +1532,8 @@
 	'imagemap_invalid_title' => 'Sbàgghiu: tìtulu dû lijami non vàlidu ntâ riga $1',
 	'imagemap_missing_coord' => 'Sbàgghiu: non ci sunnu abbastanza cuurdinati pi la furma spicificata nti la tiga $1',
 	'imagemap_unrecognised_shape' => 'Sbàgghiu: Furma (shape) non canusciuta nti la riga $1, ogniduna di li righi hà accuminciari cu unu di li furmi ccà di sècutu:  default, rect, circle o poly',
-	'imagemap_no_areas' => "Sbàgghiu: hà èssiri spicificata ô cchiù picca n'ària.",
 	'imagemap_invalid_coord' => 'Sbàgghiu: cuurdinata non vàlida ntâ riga $1, idda hà èssiri nu nùmmiru',
-	'imagemap_invalid_desc' => 'Sbàgghiu: valuri non vàlidu pô paràmitru desc, hà èssiri unu di chisti: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Sbàgghiu: valuri non vàlidu pô paràmitru desc, hà èssiri unu di chisti: <code>$1</code>',
 	'imagemap_description' => "Nfumazzioni supr'a â mmàggini",
 	'imagemap_desc_types' => 'top-right (susu-a manu dritta), bottom-right (jusu-a manu dritta) , bottom-left (jusu-a manu manca), top-left (susu-a manu manca), none (nenti)',
 	'imagemap_poly_odd' => "Sbàgghiu: attruvatu pulìgunu c'un nùmmiru sparu di cuurdinati nti la riga $1",
@@ -1260,7 +1543,7 @@
  * @author නන්දිමිතුරු
  */
 $messages['si'] = array(
-	'imagemap_desc' => '<tt><nowiki><imagemap></nowiki></tt> ටැගය භාවිතයෙන් සේවාලාභි-අන්තයෙහි ක්ලික්කලහැකි රූප සිතියම් වලට ඉඩ සලසයි',
+	'imagemap_desc' => '<code><imagemap></code> ටැගය භාවිතයෙන් සේවාලාභි-අන්තයෙහි ක්ලික්කලහැකි රූප සිතියම් වලට ඉඩ සලසයි',
 	'imagemap_no_image' => 'දෝෂය: ඔබ විසින්, පළමු පේලියෙහි රූපයක් හුවාදැක්වියයුතුය',
 	'imagemap_invalid_image' => 'දෝෂය: රූපය අනීතිකයි නැතිනම් නොපවතියි',
 	'imagemap_bad_image' => 'දෝෂය: රූපය මෙම පටුවෙහි අපලේඛණය කොට ඇත',
@@ -1268,9 +1551,8 @@
 	'imagemap_invalid_title' => 'දෝෂය: $1 පේළියෙහි සබැඳියෙහි ශීර්ෂය අනීතිකයි',
 	'imagemap_missing_coord' => 'දෝෂය: $1 පේළියෙහි හැඩය සඳහා අවශ්‍ය තරමට ඛණ්ඩාංක සපයා නොමැත',
 	'imagemap_unrecognised_shape' => 'දෝෂය: $1 පේළියෙහි හැඩය හඳුනාගතනොහැකි විය, සෑම පේළියක්ම මෙයින් එකකික් ඇරඹිය යුතුය: default, rect, circle හෝ poly',
-	'imagemap_no_areas' => 'දෝෂය: අවම වශයෙන් සරි පිරිවිතර එකක් හෝ සැපයිය යුතුය',
 	'imagemap_invalid_coord' => 'දෝෂය: $1 පේළියෙහි අනීතික ඛණ්ඩාංකයකි, එය සංඛ්‍යාවක් විය යුතුය',
-	'imagemap_invalid_desc' => 'දෝෂය: desc පිරිවිතරය අනීතිකයි, මෙයින් එකක් විය යුතුය: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'දෝෂය: desc පිරිවිතරය අනීතිකයි, මෙයින් එකක් විය යුතුය: <code>$1</code>',
 	'imagemap_description' => 'මෙම රූපය පිළිබඳ',
 	'imagemap_desc_types' => 'ඉහළ-දකුණ, පහළ-දකුණ, පහළ-වම, ඉහළ-වම, කිසිවක් නැත',
 	'imagemap_poly_odd' => 'දෝෂය: $1 පේළියෙහි ඛණ්ඩාංක ඔත්තේ ගණනක් සමග poly හමුවිය',
@@ -1280,7 +1562,7 @@
  * @author Helix84
  */
 $messages['sk'] = array(
-	'imagemap_desc' => 'Poskytuje klikateľné obrázkové mapy spracúvané na strane klienta pomocou značky <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Poskytuje klikateľné obrázkové mapy spracúvané na strane klienta pomocou značky <code><imagemap></code>',
 	'imagemap_no_image' => '<imagemap>: musí mať na prvom riadku uvedený obrázok',
 	'imagemap_invalid_image' => '<imagemap>: obrázok je neplatný alebo neexistuje',
 	'imagemap_bad_image' => 'Chyba: obrázok na tejto stránke sa nachádza na čiernej listine',
@@ -1288,36 +1570,94 @@
 	'imagemap_invalid_title' => '<imagemap>: neplatný nadpis v odkaze na riadku $1',
 	'imagemap_missing_coord' => '<imagemap>: nedostatok súradníc na vytvorenie tvaru na riadku $1',
 	'imagemap_unrecognised_shape' => '<imagemap>: nerozpoznaný tvar na riadku $1, každý riadok musí začínať jedným z: default, rect, circle alebo poly',
-	'imagemap_no_areas' => '<imagemap>: musí byť zadaná najmenej jedna špecifikácia oblasti',
 	'imagemap_invalid_coord' => '<imagemap>: neplatná súradnica na riadku $1, musí to byť číslo',
 	'imagemap_invalid_desc' => '<imagemap>: neplatný popis, musí byť jedno z nasledovných: $1',
 	'imagemap_description' => 'O tomto obrázku',
 	'imagemap_poly_odd' => 'Chyba: nájdený mnohouholník s nepárnym počtom súradníc na riadku $1',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'imagemap_desc' => 'Omogoča klikljive zemljevide slik na odjemalski strani z uporabo oznake <code><imagemap></code>',
+	'imagemap_no_image' => 'Napaka: v prvi vrstici morate navesti sliko',
+	'imagemap_invalid_image' => 'Napaka: slika je neveljavna ali ne obstaja',
+	'imagemap_bad_image' => 'Napaka: slika je na tej strani na črnem seznamu',
+	'imagemap_no_link' => 'Napaka: na koncu vrstice $1 ni bila najdena veljavna povezava',
+	'imagemap_invalid_title' => 'Napaka: neveljaven naslov v povezavi v vrstici $1',
+	'imagemap_missing_coord' => 'Napaka: ni dovolj koordinat za obliko v vrstici $1',
+	'imagemap_unrecognised_shape' => 'Napaka: nerazpoznavna oblika v vrsici $1; vsaka vrstica se mora začeti z enim od: default, rect, circle ali poly',
+	'imagemap_invalid_coord' => 'Napaka: neveljavna koordinata v vrstici $1, mora biti število',
+	'imagemap_invalid_desc' => 'Napaka: neveljavno določilo desc, mora biti eno izmed: <code>$1</code>',
+	'imagemap_description' => 'O tej sliki',
+	'imagemap_poly_odd' => 'Napaka: najden večkotnik z lihim številom koordinat v vrstici $1',
+);
+
+/** Albanian (Shqip)
+ * @author Olsi
+ */
+$messages['sq'] = array(
+	'imagemap_desc' => 'Lejon klientin-side klikueshme harta figure duke përdorur etiketën <code><imagemap></code>',
+	'imagemap_no_image' => 'Gabim: duhet të specifikohet një figurë në rreshtin e parë',
+	'imagemap_invalid_image' => 'Gabim: figura është e pavlefshme ose joekzistente',
+	'imagemap_bad_image' => 'Gabim: figura është në listën e zezë në këtë faqe',
+	'imagemap_no_link' => 'Gabim: nuk u gjet asnjë lidhje në fund të rreshtit $1',
+	'imagemap_invalid_title' => 'Gabim: titull i pavlefshëm në lidhjen tek rreshti $1',
+	'imagemap_missing_coord' => 'Gabim: nuk ka mjaftueshëm koordinata për formën tek rreshti $1',
+	'imagemap_unrecognised_shape' => 'Gabim: formë e papranuar tek rreshti $1, çdo rresht duhet të fillojë me një: default, rect, cicrcle ose poly',
+	'imagemap_invalid_coord' => 'Gabim: koordinatë e pavlefshme tek rreshti $1, duhet të jetë një numër',
+	'imagemap_invalid_desc' => 'Gabim: desc specifikim i pavlefshëm, duhet të jetë një nga: <code>$1</code>',
+	'imagemap_description' => 'Rreth kësaj figure',
+	'imagemap_poly_odd' => 'Gabim: u gjet poli me numër tek i koordinatave në rreshtin $1',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
  * @author Sasa Stefanovic
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
-	'imagemap_desc' => 'Омогућава клијентској страни кликабилну мапу коришћњењм ознаке <tt><nowiki><imagemap></nowiki></tt>.',
+	'imagemap_desc' => 'Омогућава клијентској страни кликабилну мапу коришћњењм ознаке <code><imagemap></code>.',
 	'imagemap_no_image' => 'Грешка: Неопходно је одредити слику у првој линији.',
 	'imagemap_invalid_image' => 'Грешка: Слика је лоша или непостојећа.',
+	'imagemap_bad_image' => 'Грешка: слика се налази на црном списку за ову страну',
 	'imagemap_no_link' => 'Грешка: Није пронађена ниједна ваљана веза на крају линије $1.',
 	'imagemap_invalid_title' => 'Грешка: Лош наслов у вези у линији $1.',
 	'imagemap_missing_coord' => 'Грешка: Нема довољно координата за криву у линији $1.',
 	'imagemap_unrecognised_shape' => 'Грешка: Непрепозната крива у линији $1, свака линија мора почети једном од: default, rect, circle или poly.',
-	'imagemap_no_areas' => 'Грешка: Мора се дати бар једно просторно одређење.',
 	'imagemap_invalid_coord' => 'Грешка: Лоше координате у линији $1; морају бити број.',
-	'imagemap_invalid_desc' => 'Грешка: Лоше desc одређење, мора бити једно од: <tt>$1</tt>.',
+	'imagemap_invalid_desc' => 'Грешка: Лоше desc одређење, мора бити једно од: <code>$1</code>.',
 	'imagemap_description' => 'О овој слици',
+	'imagemap_desc_types' => 'горе-десно, доле-десно, доле-лево, горе-лево, нема',
+	'imagemap_poly_odd' => 'Грешка: нађен је полигон са непарним бројем координата у линији $1',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'imagemap_desc' => 'Omogućava klijentskoj strani klikabilnu mapu korišćnjenjm oznake <code><imagemap></code>.',
+	'imagemap_no_image' => 'Greška: Neophodno je odrediti sliku u prvoj liniji.',
+	'imagemap_invalid_image' => 'Greška: Slika je loša ili nepostojeća.',
+	'imagemap_bad_image' => 'Greška: slika se nalazi na crnom spisku za ovu stranu',
+	'imagemap_no_link' => 'Greška: Nije pronađena nijedna valjana veza na kraju linije $1.',
+	'imagemap_invalid_title' => 'Greška: Loš naslov u vezi u liniji $1.',
+	'imagemap_missing_coord' => 'Greška: Nema dovoljno koordinata za krivu u liniji $1.',
+	'imagemap_unrecognised_shape' => 'Greška: Neprepoznata kriva u liniji $1, svaka linija mora početi jednom od: default, rect, circle ili poly.',
+	'imagemap_invalid_coord' => 'Greška: Loše koordinate u liniji $1; moraju biti broj.',
+	'imagemap_invalid_desc' => 'Greška: Loše desc određenje, mora biti jedno od: <code>$1</code>.',
+	'imagemap_description' => 'O ovoj slici',
+	'imagemap_desc_types' => 'gore-desno, dole-desno, dole-levo, gore-levo, nema',
+	'imagemap_poly_odd' => 'Greška: nađen je poligon sa neparnim brojem koordinata u liniji $1',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'imagemap_desc' => "Moaket dät muugelk ferwies-sensitive Grafike ''(image maps)'' tou moakjen mäd Hälpe fon ju <tt><nowiki><imagemap></nowiki></tt>-Syntax",
+	'imagemap_desc' => "Moaket dät muugelk ferwies-sensitive Grafike ''(image maps)'' tou moakjen mäd Hälpe fon ju <code><imagemap></code>-Syntax",
 	'imagemap_no_image' => 'Failer: In ju eerste Riege mout ne Bielde ounroat wäide',
 	'imagemap_invalid_image' => 'Failer: Bielde is uungultich of is nit deer',
 	'imagemap_bad_image' => 'Failer: Ju Bielde stoant ap ju Lieste fon nit wonskede Bielden',
@@ -1325,9 +1665,8 @@
 	'imagemap_invalid_title' => 'Failer: uungultigen Tittel in dän Link in Riege $1',
 	'imagemap_missing_coord' => 'Failer: Tou min Koordinate in Riege $1 foar dän Uumriet',
 	'imagemap_unrecognised_shape' => 'Failer: Uunbekoande Uumrietfoarm in Riege $1. Älke Riege mout mäd aan fon disse Parametere ounfange: <tt>default, rect, circle</tt> of <tt>poly</tt>',
-	'imagemap_no_areas' => 'Failer: Der mout mindestens een Gebiet definiert wäide',
 	'imagemap_invalid_coord' => 'Failer: Uungultige Koordinate in Riege $1: der sunt bloot Taale toulät',
-	'imagemap_invalid_desc' => 'Failer: Uungultigen „desc“-Parameter, muugelk sunt: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Failer: Uungultigen „desc“-Parameter, muugelk sunt: <code>$1</code>',
 	'imagemap_description' => 'Uur disse Bielde',
 	'imagemap_poly_odd' => 'Failer: Polygon mäd uunpooren Antaal an Koordinoaten in Riege $1',
 );
@@ -1345,7 +1684,7 @@
  * @author M.M.S.
  */
 $messages['sv'] = array(
-	'imagemap_desc' => 'Lägger till taggen <tt><nowiki><imagemap></nowiki></tt> för klickbara bilder',
+	'imagemap_desc' => 'Lägger till taggen <code><imagemap></code> för klickbara bilder',
 	'imagemap_no_image' => '<imagemap>: en bild måste anges på första raden',
 	'imagemap_invalid_image' => '<imagemap>: bilden är ogiltig eller existerar inte',
 	'imagemap_bad_image' => 'Fel: bilden är svartlistad på den här sidan',
@@ -1353,27 +1692,36 @@
 	'imagemap_invalid_title' => '<imagemap>: felaktig titel i länken på rad $1',
 	'imagemap_missing_coord' => '<imagemap>: koordinater saknas för området på rad $1',
 	'imagemap_unrecognised_shape' => '<imagemap>: okänd områdesform på rad $1, varje rad måste börja med något av följande: <tt>default, rect, circle, poly</tt>',
-	'imagemap_no_areas' => '<imagemap>: minst ett område måste specificeras',
 	'imagemap_invalid_coord' => '<imagemap>: ogiltig koordinat på rad $1, koordinater måste vara tal',
-	'imagemap_invalid_desc' => '<imagemap>: ogiltig specifikation av desc, den måste var en av följande: <tt>$1</tt>',
+	'imagemap_invalid_desc' => '<imagemap>: ogiltig specifikation av desc, den måste var en av följande: <code>$1</code>',
 	'imagemap_description' => 'Bildinformation',
 	'imagemap_poly_odd' => 'Fel: hittade poly med udda antal koordinater på rad $1',
 );
 
+/** Tamil (தமிழ்)
+ * @author Shanmugamp7
+ */
+$messages['ta'] = array(
+	'imagemap_no_image' => 'பிழை:ஒரு படத்தை முதல் வரியில் கண்டிப்பாக குறிப்பிடவேண்டும்.',
+	'imagemap_invalid_image' => 'பிழை:படம் செல்லத்தக்கதல்ல அல்லது இல்லாத ஒன்று',
+	'imagemap_bad_image' => 'பிழை:படம் இந்த பக்கத்தில் ஏற்கத்தகாதது என பட்டியலிடப்பட்டுள்ளது.',
+	'imagemap_invalid_title' => 'பிழை:செல்லத்தகாத தலைப்பு இணைப்பின் வரி $1ல்',
+	'imagemap_description' => 'இந்த படத்தை பற்றி',
+);
+
 /** Telugu (తెలుగు)
  * @author Chaduvari
  * @author Veeven
  */
 $messages['te'] = array(
-	'imagemap_desc' => '<tt><nowiki><imagemap></nowiki></tt> ట్యాగును వాడటం ద్వారా క్లిక్కదగ్గ క్లయంటు-వైపు ఇమేజి మ్యాపులను అనుమతిస్తుంది',
+	'imagemap_desc' => '<code><imagemap></code> ట్యాగును వాడటం ద్వారా క్లిక్కదగ్గ క్లయంటు-వైపు ఇమేజి మ్యాపులను అనుమతిస్తుంది',
 	'imagemap_no_image' => 'Error: తప్పనిసరిగా మొదటి లైనులో ఓ బొమ్మని ఇవ్వాలి',
 	'imagemap_invalid_image' => 'Error: తప్పుడు లేదా ఉనికిలో లేని బొమ్మ',
 	'imagemap_no_link' => 'Error: $1వ లైను చివర సరియైన లింకు కనబడలేదు',
 	'imagemap_invalid_title' => 'Error: $1వ లైనులో ఉన్న లింకులో తప్పుడు శీర్షిక',
 	'imagemap_missing_coord' => 'Error: ఆకృతికి తగినన్ని నిరూపకాలు $1వ లైనులో లేవు',
-	'imagemap_no_areas' => 'Error: కనీసం ఒక్క areaని అయినా ఇచ్చితీరాలి',
 	'imagemap_invalid_coord' => 'Error: $1వ లైనులో తప్పుడు నిరూపకం, అది ఖచ్చితంగా సంఖ్య అయివుండాలి.',
-	'imagemap_invalid_desc' => 'Error: descని తప్పుగా ఇచ్చారు, అది వీటిల్లో ఏదో ఒకటి అయివుండాలి: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: descని తప్పుగా ఇచ్చారు, అది వీటిల్లో ఏదో ఒకటి అయివుండాలి: <code>$1</code>',
 	'imagemap_description' => 'ఈ బొమ్మ గురించి',
 );
 
@@ -1384,28 +1732,61 @@
 	'imagemap_description' => "Kona-ba imajen ne'e",
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
-	'imagemap_desc' => 'Имкони эҷоди нақшаҳои тасвирӣ қобили клик кардан дар самти корбарро бо истифода аз барчасби  <tt><nowiki><imagemap></nowiki></tt> фароҳам меоварад',
+	'imagemap_desc' => 'Имкони эҷоди нақшаҳои тасвирӣ қобили клик кардан дар самти корбарро бо истифода аз барчасби  <code><imagemap></code> фароҳам меоварад',
 	'imagemap_no_image' => 'Error: бояд дар сатри аввал як аксро мушаххас кунед',
 	'imagemap_invalid_image' => 'Error: акс ғайримиҷоз аст ё вуҷуд надорад',
 	'imagemap_no_link' => 'Error: ҳеҷ пайванди миҷозе то интиҳои сатри $1 пайдо нашуд',
 	'imagemap_invalid_title' => 'Error: унвони ғайримиҷоз дар пайванди сатри $1',
 	'imagemap_missing_coord' => 'Error: теъдоди ҳамоҳангӣ дар сатри $1 барои шакл кофӣ нест',
 	'imagemap_unrecognised_shape' => 'Error: шакли ношинохта дар сатри $1, ҳар сатр бояд бо яке аз ин дастурот оғоз шавад: default, rect, circle ё poly',
-	'imagemap_no_areas' => 'Error: дасти кам бояд як мушаххасоти фазо бояд вуҷуд дошта бошад',
 	'imagemap_invalid_coord' => 'Error: баробарии ғайримиҷоз дар сатри $1, бояд адад бошад',
-	'imagemap_invalid_desc' => 'Error: тавзеҳоти ғайримиҷоз, бояд яке аз ин маворид бошад: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Error: тавзеҳоти ғайримиҷоз, бояд яке аз ин маворид бошад: <code>$1</code>',
 	'imagemap_description' => 'Дар бораи ин акс',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'imagemap_desc' => 'Imkoni eçodi naqşahoi tasvirī qobili klik kardan dar samti korbarro bo istifoda az barcasbi  <code><imagemap></code> faroham meovarad',
+	'imagemap_no_image' => 'Error: bojad dar satri avval jak aksro muşaxxas kuned',
+	'imagemap_invalid_image' => 'Error: aks ƣajrimiçoz ast jo vuçud nadorad',
+	'imagemap_no_link' => 'Error: heç pajvandi miçoze to intihoi satri $1 pajdo naşud',
+	'imagemap_invalid_title' => 'Error: unvoni ƣajrimiçoz dar pajvandi satri $1',
+	'imagemap_missing_coord' => "Error: te'dodi hamohangī dar satri $1 baroi şakl kofī nest",
+	'imagemap_unrecognised_shape' => 'Error: şakli noşinoxta dar satri $1, har satr bojad bo jake az in dasturot oƣoz şavad: default, rect, circle jo poly',
+	'imagemap_invalid_coord' => 'Error: barobariji ƣajrimiçoz dar satri $1, bojad adad boşad',
+	'imagemap_invalid_desc' => 'Error: tavzehoti ƣajrimiçoz, bojad jake az in mavorid boşad: <code>$1</code>',
+	'imagemap_description' => 'Dar borai in aks',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'imagemap_desc' => '<code><imagemap></code> tegini ulanyp, müşderi tarapyndan tyklanyp boljak surat kartalaryna rugsat berýär',
+	'imagemap_no_image' => 'Säwlik: birinji setirde bir surat görkezmeli',
+	'imagemap_invalid_image' => 'Säwlik: surat nädogry ýa-da ýok',
+	'imagemap_bad_image' => 'Säwlik: surat bu sahypada gara sanawda',
+	'imagemap_no_link' => 'Säwlik: $1 setiriň ahyrynda dogry çykgyt tapylmady',
+	'imagemap_invalid_title' => 'Säwlik: $1 setirdäki çykgytda nädogry at',
+	'imagemap_missing_coord' => 'Säwlik: $1 setirde surat üçin ýeterlik koordinata ýok',
+	'imagemap_unrecognised_shape' => 'Säwlik: $1 setirde ykrar edilmedik şekil, her setir şulardan biri bilen başlamaly: default, rect, cirle ýa-da poly',
+	'imagemap_invalid_coord' => 'Säwlik: $1 setirde nädogry koordinata, san bolmaly',
+	'imagemap_invalid_desc' => 'Säwlik: nädogry desc bahasy, şulardan biri bolmaly: <code>$1</code>',
+	'imagemap_description' => 'Bu surat hakda',
+	'imagemap_poly_odd' => 'Säwlik: $1 setirde täk sanly koordinata eýe poly tapyldy',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
-	'imagemap_desc' => 'Nagpapahintulot ng napipindot na mga larawang mapa sa panig ng mga kliyente na ginagamitan ng tatak na <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Nagpapahintulot ng napipindot na mga larawang mapa sa panig ng mga kliyente na ginagamitan ng tatak na <code><imagemap></code>',
 	'imagemap_no_image' => 'Kamalian: dapat tumukoy ng isang larawan sa unang guhit/hanay',
 	'imagemap_invalid_image' => 'Kamalian: hindi tanggap o hindi umiiral ang isang larawan',
 	'imagemap_bad_image' => 'Kamalian: ipinagbabawal (nasa "itim na talaan") sa pahinang ito ang larawan',
@@ -1413,9 +1794,8 @@
 	'imagemap_invalid_title' => 'Kamalian: may hindi tanggap na pamagat sa kawing sa guhit/hanay na $1',
 	'imagemap_missing_coord' => 'Kamalian: walang sapat na tugmaang pampook para sa hugis sa guhit/hanay na $1',
 	'imagemap_unrecognised_shape' => "Kamalian: hindi nakikilalang hugis sa guhit/hanay na \$1, bawat guhit ay dapat na nagsisimula sa kahit na isang: nakatakda, parihaba, bilog o \"poli\" (''poly'')",
-	'imagemap_no_areas' => 'Kamalian: dapat na magbigay ng kahit na isang pagtutukoy na pampook',
 	'imagemap_invalid_coord' => 'Kamalian: hindi tanggap na tugmaang pampook sa guhit/hanay na $1, dapat na isang bilang',
-	'imagemap_invalid_desc' => 'Kamalian: hindi tanggap na pagtukoy sa paglalarawan, dapat na isa sa: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Kamalian: hindi tanggap na pagtukoy sa paglalarawan, dapat na isa sa: <code>$1</code>',
 	'imagemap_description' => 'Tungkol sa larawang ito',
 	'imagemap_desc_types' => 'pang-itaas na kanan, pang-ibabang kanan, pang-ibabang kaliwa, pang-itaas na kaliwa, wala',
 	'imagemap_poly_odd' => "Kamalian: nakatagpo ng isang \"poli\" (''poly'') na mayroong bilang na may butal na pang-pagtutugmang pampook na nasa guhit/hanay na \$1",
@@ -1426,7 +1806,7 @@
  * @author Karduelis
  */
 $messages['tr'] = array(
-	'imagemap_desc' => '<tt><nowiki><imagemap></nowiki></tt> etiketini kullanarak, alıcı-tarafında tıklanabilir resim haritalarına izin verir',
+	'imagemap_desc' => '<code><imagemap></code> etiketini kullanarak, alıcı-tarafında tıklanabilir resim haritalarına izin verir',
 	'imagemap_no_image' => 'Hata: ilk satırda bir resim belirtmelisiniz',
 	'imagemap_invalid_image' => 'Hata: resim geçersiz ya da mevcut değil',
 	'imagemap_bad_image' => 'Hata: resim bu sayfada karalistelenmiş',
@@ -1434,9 +1814,8 @@
 	'imagemap_invalid_title' => 'Hata: $1. satırdaki bağlantıda geçersiz başlık',
 	'imagemap_missing_coord' => 'Hata: $1. satırda şekil için yeterli koordinat yok',
 	'imagemap_unrecognised_shape' => 'Hata: $1. satırda tanımlanmamış şekil, her satır şunlardan biriyle başlamalı: default, rect, cirle ya da poly',
-	'imagemap_no_areas' => 'Hata: en az bir alan belirlemesi verilmelidir',
 	'imagemap_invalid_coord' => 'Hata: $1. satırda geçersiz koordinat, bir sayı olmalı',
-	'imagemap_invalid_desc' => 'Hata: geçersiz desc belirlemesi, şunlardan biri olmalı: <tt>$1</tt>',
+	'imagemap_invalid_desc' => 'Hata: geçersiz desc belirlemesi, şunlardan biri olmalı: <code>$1</code>',
 	'imagemap_description' => 'Resim hakkında',
 	'imagemap_poly_odd' => 'Hata: $1. satırda tek sayıda koordinata sahip poly bulundu',
 );
@@ -1444,28 +1823,30 @@
 /** Ukrainian (Українська)
  * @author AS
  * @author Ahonc
+ * @author Alex Khimich
+ * @author Dim Grits
  */
 $messages['uk'] = array(
-	'imagemap_desc' => 'Дозволяє створювати на боці клієнта карти зображень, які спрацьовують при натисканні, за допомогою тегу <tt><nowiki><imagemap></nowiki></tt>',
-	'imagemap_no_image' => 'Error: у першому рядку має бути задане зображення',
-	'imagemap_invalid_image' => 'Error: неправильне або відсутнє зображення',
+	'imagemap_desc' => 'Дозволяє створювати на боці клієнта карти зображень, які спрацьовують при натисканні, за допомогою тегу <code><imagemap></code>',
+	'imagemap_no_image' => 'Помилка: у першому рядку має бути задане зображення',
+	'imagemap_invalid_image' => 'Помилка: неправильне або відсутнє зображення',
 	'imagemap_bad_image' => 'Помилка: зображення на цій сторінці присутнє у чорному списку',
-	'imagemap_no_link' => 'Error: неправильне посилання в кінці рядка $1',
-	'imagemap_invalid_title' => 'Error: неправильний заголовок посилання в рядку $1',
-	'imagemap_missing_coord' => 'Error: недостатньо координат для фігури в рядку $1',
-	'imagemap_unrecognised_shape' => 'Error: нерозпізнана фігура в рядку $1, кожен рядок повинен починатися з одного з ключових слів: default, rect, circle або poly',
-	'imagemap_no_areas' => 'Error: повинна бути зазначена принаймні одна область',
-	'imagemap_invalid_coord' => 'Error: помилкова координата в рядку $1, має бути число',
-	'imagemap_invalid_desc' => 'Error: помилкове значення desc, має бути одне з наступних значень: <tt>$1</tt>',
+	'imagemap_no_link' => 'Помилка: неправильне посилання в кінці рядка $1',
+	'imagemap_invalid_title' => 'Помилка: неправильний заголовок в посиланні в рядку $1',
+	'imagemap_missing_coord' => 'Помилка: недостатньо координат для фігури в рядку $1',
+	'imagemap_unrecognised_shape' => 'Помилка: нерозпізнана фігура в рядку $1, кожен рядок повинен починатися з одного з ключових слів: default, rect, circle або poly',
+	'imagemap_invalid_coord' => 'Помилка: помилкова координата в рядку $1, має бути число',
+	'imagemap_invalid_desc' => 'Помилка: помилкове значення desc, має бути одне з таких значень: <code>$1</code>',
 	'imagemap_description' => 'Опис зображення',
-	'imagemap_poly_odd' => 'Помилка: в рядку $1 знайдений многокутник із зайвою кількістю координат',
+	'imagemap_desc_types' => 'угорі праворуч, унизу праворуч, унизу ліворуч, угорі ліворуч, ніде',
+	'imagemap_poly_odd' => 'Помилка: в рядку $1 знайдений многокутник із непарною кількістю координат',
 );
 
 /** Vèneto (Vèneto)
  * @author Candalua
  */
 $messages['vec'] = array(
-	'imagemap_desc' => "Parméte de realizar ''image map'' clicàbili lato client col tag <tt><nowiki><imagemap></nowiki></tt>",
+	'imagemap_desc' => "Parméte de realizar ''image map'' clicàbili lato client col tag <code><imagemap></code>",
 	'imagemap_no_image' => 'Error: se gà da specificar na imagine ne la prima riga',
 	'imagemap_invalid_image' => "Error: l'imagine no la xe valida o no la esiste",
 	'imagemap_bad_image' => "Eror: l'imagine la se cata su la lista nera de sta pagina",
@@ -1473,19 +1854,25 @@
 	'imagemap_invalid_title' => 'Error: titolo del colegamento mìa valido ne la riga $1',
 	'imagemap_missing_coord' => 'Error: no ghe xe coordinate in bisogno par la forma speçificada ne la riga $1',
 	'imagemap_unrecognised_shape' => 'Error: Forma (shape) mìa riconossiùa ne la riga $1, ogni riga la ga da scuminsiar con uno dei seguenti: default, rect, circle o poly',
-	'imagemap_no_areas' => "Error: gà da èssar speçificada almanco un'area",
 	'imagemap_invalid_coord' => 'Error: coordinata mìa valida ne la riga $1, la gà da èssar un nùmaro',
 	'imagemap_invalid_desc' => 'Error: Valor mìa valido par el parametro desc, el gà da èssar uno dei seguenti: $1',
 	'imagemap_description' => 'Informazion su sta imagine',
 	'imagemap_poly_odd' => "Erór: gò catà un polìgono co' un nùmaro dispari de coordinate in te la riga $1",
 );
 
+/** Veps (Vepsän kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'imagemap_description' => 'Necen kuvan polhe',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
-	'imagemap_desc' => 'Thêm những bản đồ hình có liên kết dùng thẻ <tt><nowiki><imagemap></nowiki></tt>',
+	'imagemap_desc' => 'Thêm những bản đồ hình có liên kết dùng thẻ <code><imagemap></code>',
 	'imagemap_no_image' => 'Lỗi: phải đưa tên hình vào dòng đầu tiên',
 	'imagemap_invalid_image' => 'Lỗi: hình không hợp lệ hay không tồn tại',
 	'imagemap_bad_image' => 'Lỗi: cấm nhúng hình đó vào trang này',
@@ -1493,7 +1880,6 @@
 	'imagemap_invalid_title' => 'Lỗi: văn bản liên kết không hợp lệ ở dòng $1',
 	'imagemap_missing_coord' => 'Lỗi: không có đủ tọa độ cho vùng ở dòng $1',
 	'imagemap_unrecognised_shape' => 'Lỗi: không hiểu hình dạng ở dòng $1, mỗi dòng phải bắt đầu với một trong: default, rect, circle, hay poly',
-	'imagemap_no_areas' => 'Lỗi: phải định rõ ít nhất một vùng',
 	'imagemap_invalid_coord' => 'Lỗi: tọa độ không hợp lệ ở dòng $1, phải là số',
 	'imagemap_invalid_desc' => 'Lỗi: chọn desc không hợp lệ, phải là một trong: $1',
 	'imagemap_description' => 'Thông tin về hình này',
@@ -1514,60 +1900,80 @@
 	'imagemap_description' => 'Tefü magod at',
 );
 
-/** Yue (粵語)
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'imagemap_invalid_image' => 'טעות: בילד איז אומגילטיק אָדער נישט פֿאַרהאַנען',
+	'imagemap_invalid_title' => 'טעות: אומגילטיקער טיטל אין פֿאַרבינדונג אין שורה $1',
+	'imagemap_description' => 'וועגן דעם בילד',
+);
+
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'imagemap_no_image' => 'Àsìṣe: àwòrán gbọ́dọ̀ jẹ́ títọ́kasí ní inú ìlà àkọ́kọ́',
+	'imagemap_missing_coord' => 'Àsìṣe: àwọn ajọfọ̀nàkò kò tó fún síṣerí ní ìlà $1',
+	'imagemap_description' => 'Nípa àwòrán yìí',
+);
+
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
-	'imagemap_desc' => '容許客戶端可以用<tt><nowiki><imagemap></nowiki></tt>標籤整可撳圖像地圖',
-	'imagemap_no_image' => '<imagemap>: 一定要響第一行指定一幅圖像',
-	'imagemap_invalid_image' => '<imagemap>: 圖像唔正確或者唔存在',
-	'imagemap_no_link' => '<imagemap>: 響第$1行結尾度搵唔到一個正式嘅連結',
-	'imagemap_invalid_title' => '<imagemap>: 響第$1行度嘅標題連結唔正確',
-	'imagemap_missing_coord' => '<imagemap>: 響第$1行度未有足夠嘅座標組成一個形狀',
-	'imagemap_unrecognised_shape' => '<imagemap>: 響第$1行度有未能認出嘅形狀,每一行一定要用以下其中一樣開始: default, rect, circle 或者係 poly',
-	'imagemap_no_areas' => '<imagemap>: 最少要畀出一個指定嘅空間',
-	'imagemap_invalid_coord' => '<imagemap>: 響第$1行度有唔正確嘅座標,佢一定係一個數字',
-	'imagemap_invalid_desc' => '<imagemap>: 唔正確嘅 desc 參數,一定係要以下嘅其中之一: $1',
+	'imagemap_desc' => '容許客戶端可以用<code><imagemap></code>標籤整可撳圖像地圖',
+	'imagemap_no_image' => '錯誤: 一定要響第一行指定一幅圖像',
+	'imagemap_invalid_image' => '錯誤: 圖像唔正確或者唔存在',
+	'imagemap_bad_image' => '錯誤: 圖像響呢一版已經列入咗黑名單度',
+	'imagemap_no_link' => '錯誤: 響第$1行結尾度搵唔到一個正式嘅連結',
+	'imagemap_invalid_title' => '錯誤: 響第$1行度嘅標題連結唔正確',
+	'imagemap_missing_coord' => '錯誤: 響第$1行度未有足夠嘅座標組成一個形狀',
+	'imagemap_unrecognised_shape' => '錯誤: 響第$1行度有未能認出嘅形狀,每一行一定要用以下其中一樣開始: default, rect, circle 或者係 poly',
+	'imagemap_invalid_coord' => '錯誤: 響第$1行度有唔正確嘅座標,佢一定係一個數字',
+	'imagemap_invalid_desc' => '錯誤: 唔正確嘅 desc 參數,一定係要以下嘅其中之一: $1',
 	'imagemap_description' => '關於呢幅圖像',
 	'imagemap_desc_types' => '右上, 右下, 左下, 左上, 無',
-	'imagemap_poly_odd' => '錯: 響第$1行搵到單數嘅多邊坐標',
+	'imagemap_poly_odd' => '錯誤: 響第$1行搵到單數嘅多邊坐標',
 );
 
 /** Simplified Chinese (‪中文(简体)‬)
  * @author Shinjiman
  */
 $messages['zh-hans'] = array(
-	'imagemap_desc' => '容许客户端可以使用<tt><nowiki><imagemap></nowiki></tt>标签整可点击图像地图',
-	'imagemap_no_image' => '<imagemap>: 必须要在第一行指定一幅图像',
-	'imagemap_invalid_image' => '<imagemap>: 图像不正确或者不存在',
-	'imagemap_no_link' => '<imagemap>: 在第$1行结尾中找不到一个正式的链接',
-	'imagemap_invalid_title' => '<imagemap>: 在第$1行中的标题链接不正确',
-	'imagemap_missing_coord' => '<imagemap>: 在第$1行中未有足够的座标组成一个形状',
-	'imagemap_unrecognised_shape' => '<imagemap>: 在第$1行中有未能认出的形状,每一行必须使用以下其中一组字开始: default, rect, circle 或者是 poly',
-	'imagemap_no_areas' => '<imagemap>: 最少要给出一个指定的空间',
-	'imagemap_invalid_coord' => '<imagemap>: 在第$1行中有不正确的座标,它必须是一个数字',
-	'imagemap_invalid_desc' => '<imagemap>: 不正确的 desc 参数,必须是以下的其中之一: $1',
+	'imagemap_desc' => '容许客户端可以使用<code><imagemap></code>标签整可点击图像地图',
+	'imagemap_no_image' => '错误: 必须要在第一行指定一幅图像',
+	'imagemap_invalid_image' => '错误: 图像不正确或者不存在',
+	'imagemap_bad_image' => '错误: 图像已被本页列入黑名单内',
+	'imagemap_no_link' => '错误: 在第$1行结尾中找不到一个正式的链接',
+	'imagemap_invalid_title' => '错误: 在第$1行中的标题链接不正确',
+	'imagemap_missing_coord' => '错误: 在第$1行中未有足够的座标组成一个形状',
+	'imagemap_unrecognised_shape' => '错误: 在第$1行中有未能认出的形状,每一行必须使用以下其中一组字开始: default, rect, circle 或者是 poly',
+	'imagemap_invalid_coord' => '错误: 在第$1行中有不正确的座标,它必须是一个数字',
+	'imagemap_invalid_desc' => '错误: 不正确的 desc 参数,必须是以下的其中之一: $1',
 	'imagemap_description' => '关于这幅图像',
 	'imagemap_desc_types' => '右上, 右下, 左下, 左上, 无',
 	'imagemap_poly_odd' => '错误: 在第$1行找到单数的多边坐标',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Mark85296341
  * @author Shinjiman
+ * @author Tomchiukc
  */
 $messages['zh-hant'] = array(
-	'imagemap_desc' => '容許客戶端可以使用<tt><nowiki><imagemap></nowiki></tt>標籤整可點擊圖像地圖',
-	'imagemap_no_image' => '<imagemap>: 必須要在第一行指定一幅圖像',
-	'imagemap_invalid_image' => '<imagemap>: 圖像不正確或者不存在',
-	'imagemap_no_link' => '<imagemap>: 在第$1行結尾中找不到一個正式的連結',
-	'imagemap_invalid_title' => '<imagemap>: 在第$1行中的標題連結不正確',
-	'imagemap_missing_coord' => '<imagemap>: 在第$1行中未有足夠的座標組成一個形狀',
-	'imagemap_unrecognised_shape' => '<imagemap>: 在第$1行中有未能認出的形狀,每一行必須使用以下其中一組字開始: default, rect, circle 或者是 poly',
-	'imagemap_no_areas' => '<imagemap>: 最少要給出一個指定的空間',
-	'imagemap_invalid_coord' => '<imagemap>: 在第$1行中有不正確的座標,它必須是一個數字',
-	'imagemap_invalid_desc' => '<imagemap>: 不正確的 desc 參數,必須是以下的其中之一: $1',
-	'imagemap_description' => '關於這幅圖像',
+	'imagemap_desc' => '容許客戶端可以使用<code><imagemap></code>標籤整可點擊圖片地圖',
+	'imagemap_no_image' => '錯誤:必須要在第一行指定一幅圖片',
+	'imagemap_invalid_image' => '錯誤:圖片不正確或者不存在',
+	'imagemap_bad_image' => '錯誤:圖片已被本頁列入黑名單內',
+	'imagemap_no_link' => '錯誤:在第 $1 行結尾中找不到一個正式的連結',
+	'imagemap_invalid_title' => '錯誤:在第 $1 行中的標題連結不正確',
+	'imagemap_missing_coord' => '錯誤:在第 $1 行中未有足夠的座標組成一個形狀',
+	'imagemap_unrecognised_shape' => '錯誤:在第 $1 行中有未能認出的形狀,每一行必須使用以下其中一組字開始:default, rect, circle 或者是 poly',
+	'imagemap_invalid_coord' => '錯誤:在第 $1 行中有不正確的座標,它必須是一個數字',
+	'imagemap_invalid_desc' => '錯誤:不正確的 desc 參數,必須是以下的其中之一:$1',
+	'imagemap_description' => '關於這幅圖片',
 	'imagemap_desc_types' => '右上, 右下, 左下, 左上, 無',
-	'imagemap_poly_odd' => '錯誤: 在第$1行找到單數的多邊坐標',
+	'imagemap_poly_odd' => '錯誤:在第 $1 行找到單數的多邊坐標',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -3,24 +3,21 @@
 $dir = dirname(__FILE__) . '/';
 $wgExtensionMessagesFiles['ImageMap'] = $dir . 'ImageMap.i18n.php';
 $wgAutoloadClasses['ImageMap'] = $dir . 'ImageMap_body.php';
-if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-	$wgHooks['ParserFirstCallInit'][] = 'wfSetupImageMap';
-} else {
-	$wgExtensionFunctions[] = 'wfSetupImageMap';
-}
+$wgHooks['ParserFirstCallInit'][] = 'wfSetupImageMap';
 
 $wgExtensionCredits['parserhook']['ImageMap'] = array(
+	'path'           => __FILE__,
 	'name'           => 'ImageMap',
-	'svn-date' => '$LastChangedDate: 2008-06-06 22:38:04 +0200 (Fri, 06 Jun 2008) $',
-	'svn-revision' => '$LastChangedRevision: 35980 $',
 	'author'         => 'Tim Starling',
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:ImageMap',
-	'description'    => 'Allows client-side clickable image maps using <nowiki><imagemap></nowiki> tag.',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:ImageMap',
 	'descriptionmsg' => 'imagemap_desc',
 );
 
-function wfSetupImageMap() {
-	global $wgParser;
-	$wgParser->setHook( 'imagemap', array( 'ImageMap', 'render' ) );
+/**
+ * @param $parser Parser
+ * @return bool
+ */
+function wfSetupImageMap( &$parser ) {
+	$parser->setHook( 'imagemap', array( 'ImageMap', 'render' ) );
 	return true;
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap_body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap_body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/ImageMap_body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,7 +1,7 @@
 <?php
 
 /**
- * Image map extension. 
+ * Image map extension.
  *
  * Syntax:
  * <imagemap>
@@ -9,7 +9,7 @@
  *
  * rect    0  0  50 50  [[Foo type A]]
  * circle  50 50 20     [[Foo type B]]
- * 
+ *
  * desc bottom-left
  * </imagemap>
  *
@@ -26,9 +26,14 @@
 	const TOP_LEFT = 3;
 	const NONE = 4;
 
-	static function render( $input, $params, $parser ) {
-		global $wgScriptPath, $wgUser, $wgUrlProtocols, $wgNoFollowLinks;
-		wfLoadExtensionMessages( 'ImageMap' );
+	/**
+	 * @param $input
+	 * @param $params
+	 * @param $parser Parser
+	 * @return array|mixed|string
+	 */
+	public static function render( $input, $params, $parser ) {
+		global $wgScriptPath, $wgUrlProtocols, $wgNoFollowLinks;
 
 		$lines = explode( "\n", $input );
 
@@ -42,6 +47,7 @@
 		$descType = self::BOTTOM_RIGHT;
 		$defaultLinkAttribs = false;
 		$realmap = true;
+		$extLinks = array();
 		foreach ( $lines as $line ) {
 			++$lineNum;
 			$externLink = false;
@@ -76,7 +82,6 @@
 				$parser->replaceLinkHolders( $imageHTML );
 				$imageHTML = $parser->mStripState->unstripBoth( $imageHTML );
 				$imageHTML = Sanitizer::normalizeCharReferences( $imageHTML );
-				$parser->mOutput->addImage( $imageTitle->getDBkey() );
 
 				$domDoc = new DOMDocument();
 				wfSuppressWarnings();
@@ -94,16 +99,11 @@
 				$thumbWidth = $imageNode->getAttribute('width');
 				$thumbHeight = $imageNode->getAttribute('height');
 
-				if( function_exists( 'wfFindFile' ) ) {
-					$imageObj = wfFindFile( $imageTitle );
-				} else {
-					// Old MW
-					$imageObj = wfFindFile( $imageTitle );
-				}
+				$imageObj = wfFindFile( $imageTitle );
 				if ( !$imageObj || !$imageObj->exists() ) {
 					return self::error( 'imagemap_invalid_image' );
 				}
-				# Add the linear dimensions to avoid inaccuracy in the scale 
+				# Add the linear dimensions to avoid inaccuracy in the scale
 				# factor when one is much larger than the other
 				# (sx+sy)/(x+y) = s
 				$denominator = $imageObj->getWidth() + $imageObj->getHeight();
@@ -138,6 +138,7 @@
 
 			# Find the link
 			$link = trim( strstr( $line, '[' ) );
+			$m = array();
 			if ( preg_match( '/^ \[\[  ([^|]*+)  \|  ([^\]]*+)  \]\] \w* $ /x', $link, $m ) ) {
 				$title = Title::newFromText( $m[1] );
 				$alt = trim( $m[2] );
@@ -213,7 +214,7 @@
 				if ( $wgNoFollowLinks ) {
 					$attribs['rel'] = 'nofollow';
 				}
-			} else if ( $title->getFragment() != '' && $title->getPrefixedDBkey() == '' ) {
+			} elseif ( $title->getFragment() != '' && $title->getPrefixedDBkey() == '' ) {
 				# XXX: kluge to handle [[#Fragment]] links, should really fix getLocalURL()
 				# in Title.php to return an empty string in this case
 				$attribs['href'] = $title->getFragmentForURL();
@@ -231,7 +232,7 @@
 					$attribs['alt'] = $alt;
 				}
 				$attribs['title'] = $alt;
-			} 
+			}
 			if ( $shape == 'default' ) {
 				$defaultLinkAttribs = $attribs;
 			} else {
@@ -248,16 +249,14 @@
 			return self::error( 'imagemap_no_image' );
 		}
 
-		if ( $mapHTML == '' && $defaultLinkAttribs == '' ) {
-			return self::error( 'imagemap_no_areas' );
-		} elseif ( $mapHTML == '' && $defaultLinkAttribs != '' ) {
+		if ( $mapHTML == '' ) {
 			// no areas defined, default only. It's not a real imagemap, so we do not need some tags
 			$realmap = false;
 		}
 
 		if ( $realmap ) {
 			# Construct the map
-			# Add random number to avoid breaking cached HTML fragments that are 
+			# Add random number to avoid breaking cached HTML fragments that are
 			# later joined together on the one page (bug 16471)
 			$mapName = "ImageMap_" . ++self::$id . '_' . mt_rand( 0, 0x7fffffff );
 			$mapHTML = "<map name=\"$mapName\">\n$mapHTML</map>\n";
@@ -311,8 +310,8 @@
 			}
 			$div->setAttribute( 'style', "height: {$thumbHeight}px; width: {$thumbWidth}px; " );
 			$descWrapper = $div->appendChild( new DOMElement( 'div' ) );
-			$descWrapper->setAttribute( 'style', 
-				"margin-left: {$marginLeft}px; " . 
+			$descWrapper->setAttribute( 'style',
+				"margin-left: {$marginLeft}px; " .
 				"margin-top: {$marginTop}px; " .
 				"text-align: left;"
 			);
@@ -353,6 +352,11 @@
 		return $output;
 	}
 
+	/**
+	 * @param $count int
+	 * @param $lineNum int|string
+	 * @return array|string
+	 */
 	static function tokenizeCoords( $count, $lineNum ) {
 		$coords = array();
 		for ( $i = 0; $i < $count; $i++ ) {
@@ -368,6 +372,11 @@
 		return $coords;
 	}
 
+	/**
+	 * @param $name string
+	 * @param $line string|int
+	 * @return string
+	 */
 	static function error( $name, $line = false ) {
 		return '<p class="error">' . wfMsgForContent( $name, $line ) . '</p>';
 	}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/desc-20.png
===================================================================
(Binary files differ)

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/desc.svg
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/desc.svg	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ImageMap/desc.svg	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,22 +1,208 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
+
 <svg
    xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:cc="http://creativecommons.org/ns#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:svg="http://www.w3.org/2000/svg"
    xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    width="744.09448819"
    height="1052.3622047"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.44"
-   sodipodi:docbase="C:\htdocs\w2\extensions\ImageMap"
-   sodipodi:docname="desc.svg">
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="desc.svg"
+   version="1.1"
+   inkscape:export-filename="/Users/tparscal/Desktop/imageMap.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
   <defs
-     id="defs4" />
+     id="defs4">
+    <linearGradient
+       id="linearGradient3615">
+      <stop
+         style="stop-color:#50a3ff;stop-opacity:1;"
+         offset="0"
+         id="stop3617" />
+      <stop
+         style="stop-color:#0051ab;stop-opacity:1;"
+         offset="1"
+         id="stop3619" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5219">
+      <stop
+         style="stop-color:#8b8b8b;stop-opacity:1;"
+         offset="0"
+         id="stop5221" />
+      <stop
+         style="stop-color:#999999;stop-opacity:1;"
+         offset="1"
+         id="stop5223" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5183">
+      <stop
+         style="stop-color:#1282ff;stop-opacity:1;"
+         offset="0"
+         id="stop5185" />
+      <stop
+         style="stop-color:#0a7eff;stop-opacity:0.184;"
+         offset="1"
+         id="stop5187" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5140">
+      <stop
+         style="stop-color:#008bff;stop-opacity:1;"
+         offset="0"
+         id="stop5142" />
+      <stop
+         style="stop-color:#003452;stop-opacity:0;"
+         offset="1"
+         id="stop5144" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2904">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2906" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2908" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective13" />
+    <inkscape:perspective
+       id="perspective2832"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2857"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2882"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2882-0"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5183"
+       id="radialGradient5191"
+       cx="421.42856"
+       cy="694.62939"
+       fx="421.42856"
+       fy="694.62939"
+       r="311.18631"
+       gradientTransform="matrix(2.2098429,-3.3268405e-8,2.0370692e-8,1.31418,-509.86238,-221.41781)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2904"
+       id="linearGradient5203"
+       x1="421.42856"
+       y1="770.5788"
+       x2="421.42856"
+       y2="157.00269"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2904"
+       id="linearGradient5207"
+       gradientUnits="userSpaceOnUse"
+       x1="421.42856"
+       y1="770.5788"
+       x2="421.42856"
+       y2="157.00269" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2904"
+       id="linearGradient5210"
+       gradientUnits="userSpaceOnUse"
+       x1="421.42856"
+       y1="770.5788"
+       x2="421.42856"
+       y2="157.00269" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2904"
+       id="linearGradient5212"
+       gradientUnits="userSpaceOnUse"
+       x1="421.42856"
+       y1="770.5788"
+       x2="421.42856"
+       y2="157.00269"
+       gradientTransform="matrix(1.014493,0,0,1.029412,-127.53624,-175.0696)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2904"
+       id="linearGradient5217"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.014493,0,0,1.029412,-107.53624,-157.92674)"
+       x1="421.42856"
+       y1="770.5788"
+       x2="421.42856"
+       y2="157.00269" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5219"
+       id="linearGradient5225"
+       x1="421.42856"
+       y1="768.92761"
+       x2="421.42856"
+       y2="158.65387"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3615"
+       id="radialGradient3621"
+       cx="421.42856"
+       cy="463.79074"
+       fx="421.42856"
+       fy="463.79074"
+       r="303.84723"
+       gradientTransform="matrix(1,0,0,1.0042444,0,-1.968506)"
+       gradientUnits="userSpaceOnUse" />
+    <filter
+       inkscape:collect="always"
+       id="filter3631"
+       x="-0.1165843"
+       width="1.2331686"
+       y="-0.065459239"
+       height="1.1309185">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="10.301636"
+         id="feGaussianBlur3633" />
+    </filter>
+  </defs>
   <sodipodi:namedview
      id="base"
      pagecolor="#ffffff"
@@ -28,14 +214,16 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="0.35"
-     inkscape:cx="796.52647"
-     inkscape:cy="480.05164"
+     inkscape:cx="108.91681"
+     inkscape:cy="358.30213"
      inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     inkscape:window-width="853"
-     inkscape:window-height="609"
-     inkscape:window-x="307"
-     inkscape:window-y="247" />
+     inkscape:current-layer="layer3"
+     inkscape:window-width="1920"
+     inkscape:window-height="1075"
+     inkscape:window-x="1440"
+     inkscape:window-y="0"
+     showgrid="false"
+     inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
     <rdf:RDF>
@@ -44,39 +232,68 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
   <g
-     inkscape:label="Layer 1"
+     inkscape:label="Base"
      inkscape:groupmode="layer"
-     id="layer1">
-    <g
-       id="g3657"
-       transform="translate(-99.99995,-350.0001)">
-      <path
-         transform="matrix(1.014493,0,0,1.029412,-27.53629,174.9305)"
-         d="M 717.14285 463.79074 A 295.71429 291.42856 0 1 1  125.71426,463.79074 A 295.71429 291.42856 0 1 1  717.14285 463.79074 z"
-         sodipodi:ry="291.42856"
-         sodipodi:rx="295.71429"
-         sodipodi:cy="463.79074"
-         sodipodi:cx="421.42856"
-         id="path1872"
-         style="opacity:1;fill:blue;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         sodipodi:type="arc" />
-      <flowRoot
-         transform="matrix(6.2409,0,0,4.446071,-1211.524,-1867.093)"
-         style="font-size:144px;fill:white;fill-opacity:1;stroke:none;stroke-opacity:1;font-family:Times New Roman"
-         id="flowRoot2764"
-         xml:space="preserve"><flowRegion
-           id="flowRegion2766"><rect
-             style="font-size:144px;fill:white;fill-opacity:1;stroke:none;stroke-opacity:1;font-family:Times New Roman"
-             y="495.21933"
-             x="234.28572"
-             height="297.14285"
-             width="354.28571"
-             id="rect2768" /></flowRegion><flowPara
-           style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:white;fill-opacity:1;stroke:none;stroke-opacity:1;font-family:Times New Roman"
-           id="flowPara2770">i</flowPara></flowRoot>    </g>
+     id="layer1"
+     style="display:inline"
+     sodipodi:insensitive="true">
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#radialGradient3621);fill-opacity:1;stroke:url(#linearGradient5225);stroke-width:27.61747932;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path1872"
+       sodipodi:cx="421.42856"
+       sodipodi:cy="463.79074"
+       sodipodi:rx="295.71429"
+       sodipodi:ry="291.42856"
+       d="m 717.14285,463.79074 a 295.71429,291.42856 0 1 1 -591.42859,0 295.71429,291.42856 0 1 1 591.42859,0 z"
+       transform="matrix(1.014493,0,0,1.029412,-107.53624,-157.92674)" />
   </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="Refraction"
+     style="display:inline"
+     sodipodi:insensitive="true">
+    <path
+       transform="matrix(1.014493,0,0,1.029412,-107.53624,-157.92674)"
+       d="m 717.14285,463.79074 a 295.71429,291.42856 0 1 1 -591.42859,0 295.71429,291.42856 0 1 1 591.42859,0 z"
+       sodipodi:ry="291.42856"
+       sodipodi:rx="295.71429"
+       sodipodi:cy="463.79074"
+       sodipodi:cx="421.42856"
+       id="path5180"
+       style="opacity:0.79111113;fill:url(#radialGradient5191);fill-opacity:1;stroke:none;display:inline"
+       sodipodi:type="arc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Reflection"
+     style="display:inline"
+     sodipodi:insensitive="true">
+    <path
+       style="opacity:0.3288889;fill:url(#linearGradient5217);fill-opacity:1;stroke:none;display:inline"
+       d="m 320,19.517857 c -165.68547,0 -300,134.314543 -300,300.000003 0,21.41886 2.264366,42.28957 6.53125,62.4375 C 106.0102,338.98527 208.33367,313.11161 320,313.11161 c 111.66633,0 213.9898,25.87366 293.46875,68.84375 C 617.73563,361.80743 620,340.93672 620,319.51786 620,153.8324 485.68547,19.517857 320,19.517857 z"
+       id="path5193" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Italic "i""
+     style="display:inline">
+    <path
+       id="path2820"
+       style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.17777782;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter3631);font-family:Times New Roman"
+       d="m 370.95661,140.65523 c 15.48657,3.7e-4 28.47549,3.8263 38.96675,11.4778 10.7406,7.65219 16.111,16.9056 16.11127,27.76025 -2.7e-4,10.85529 -5.37067,20.10867 -16.11127,27.76025 -10.74102,7.65215 -23.72994,11.47807 -38.96675,11.47777 -14.98738,3e-4 -27.85138,-3.82562 -38.59209,-11.47777 -10.74096,-7.65158 -16.11137,-16.90496 -16.11127,-27.76025 -10e-5,-10.85465 5.24545,-20.10806 15.73661,-27.76025 10.7407,-7.6515 23.72961,-11.47743 38.96675,-11.4778 m 23.23015,122.78572 -76.80945,189.78403 c -4.24645,10.85499 -6.36966,17.973 -6.36955,21.35404 -1.1e-4,1.95747 1.12395,3.82596 3.37211,5.60542 2.248,1.60157 4.62096,2.40236 7.11894,2.40232 4.24624,4e-5 8.49265,-1.33457 12.7391,-4.00388 11.24028,-6.58411 24.72877,-18.50676 40.46547,-35.76801 l 12.73917,5.33852 c -37.71796,46.80095 -77.80871,70.20137 -120.27237,70.20141 -16.23624,-4e-5 -29.2251,-3.20315 -38.96676,-9.60932 -9.49195,-6.58418 -14.23788,-14.85885 -14.23788,-24.8241 0,-6.5841 2.12321,-14.94779 6.36955,-25.09098 l 52.08058,-127.59039 c 4.99569,-12.27837 7.49356,-21.53179 7.49361,-27.76026 -5e-5,-3.91468 -2.37302,-7.3847 -7.11894,-10.41007 -4.74598,-3.02494 -11.24044,-4.53753 -19.48338,-4.53775 -3.74682,2.2e-4 -8.24299,0.0892 -13.48849,0.26688 l 4.87088,-10.67703 127.01659,-14.68091 22.48082,0"
+       transform="matrix(1.0936445,0,0,1.0936445,-29.966243,-30.856327)" />
+    <path
+       d="m 369.16654,116.40862 c 16.9368,4.1e-4 31.14206,4.18461 42.61577,12.55264 11.7464,8.36877 17.61971,18.48871 17.62,30.35984 -2.9e-4,11.87183 -5.8736,21.99174 -17.62,30.35984 -11.74686,8.36874 -25.95212,12.55293 -42.61577,12.5526 -16.39086,3.3e-4 -30.45951,-4.18386 -42.20603,-12.5526 -11.74679,-8.3681 -17.62011,-18.48801 -17.62,-30.35984 -1.1e-4,-11.87113 5.73666,-21.99107 17.21026,-30.35984 11.74651,-8.36803 25.95176,-12.55223 42.61577,-12.55264 m 25.40553,134.28393 -84.00224,207.55626 c -4.6441,11.8715 -6.96614,19.65607 -6.96602,23.35372 -1.2e-4,2.14078 1.2292,4.18424 3.68789,6.13034 2.45851,1.75155 5.05369,2.62733 7.78559,2.62728 4.64388,5e-5 9.28794,-1.45954 13.93205,-4.37882 12.29287,-7.20067 27.04448,-20.23981 44.25483,-39.11748 l 13.93213,5.83844 c -41.25004,51.1836 -85.09507,76.77534 -131.53522,76.77538 -17.75667,-4e-5 -31.96187,-3.5031 -42.61578,-10.50918 -10.38082,-7.20075 -15.57118,-16.2503 -15.57118,-27.14874 0,-7.20066 2.32204,-16.34756 6.96603,-27.44061 l 56.95764,-139.53852 c 5.4635,-13.42818 8.19529,-23.54813 8.19534,-30.35986 -5e-5,-4.28127 -2.59524,-8.07624 -7.78559,-11.38492 -5.19041,-3.3082 -12.29304,-4.96244 -21.30789,-4.96268 -4.09769,2.4e-4 -9.0149,0.0976 -14.75161,0.29187 l 5.32701,-11.67687 138.91099,-16.0557 24.58603,0"
+       style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Times New Roman"
+       id="path5215" />
+  </g>
 </svg>

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.classes.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.classes.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.classes.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -17,10 +17,12 @@
 	private $mPreload = '';
 	private $mEditIntro = '';
 	private $mSummary = '';
+	private $mNosummary = '';
 	private $mMinor = '';
 	private $mPage = '';
 	private $mBR = 'yes';
 	private $mDefaultText = '';
+	private $mPlaceholderText = '';
 	private $mBGColor = 'transparent';
 	private $mButtonLabel = '';
 	private $mSearchButtonLabel = '';
@@ -39,9 +41,6 @@
 	}
 
 	public function render() {
-		// Internationalization
-		wfLoadExtensionMessages( 'InputBox' );
-
 		// Handle various types
 		switch( $this->mType ) {
 			case 'create':
@@ -62,8 +61,8 @@
 							'class' => 'error'
 						),
 						strlen( $this->mType ) > 0
-						? wfMsgForContent( 'inputbox-error-bad-type', $this->mType ) 
-						: wfMsgForContent( 'inputbox-error-no-type' ) 
+						? wfMsgForContent( 'inputbox-error-bad-type', $this->mType )
+						: wfMsgForContent( 'inputbox-error-no-type' )
 					)
 				);
 		}
@@ -71,10 +70,10 @@
 
 	/**
 	 * Generate search form
-	 * @param $type 
+	 * @param $type
 	 */
 	public function getSearchForm( $type ) {
-		global $wgContLang;
+		global $wgContLang, $wgNamespaceAliases;
 
 		// Use button label fallbacks
 		if ( !$this->mButtonLabel ) {
@@ -105,10 +104,11 @@
 				'name' => 'search',
 				'type' => $this->mHidden ? 'hidden' : 'text',
 				'value' => $this->mDefaultText,
+				'placeholder' => $this->mPlaceholderText,
 				'size' => $this->mWidth,
 			)
 		);
-		
+
 		if( $this->mPrefix != '' ){
 			$htmlOut .= Xml::element( 'input',
 				array(
@@ -116,49 +116,82 @@
 					'type' => 'hidden',
 					'value' => $this->mPrefix,
 				)
-			);	
+			);
 		}
-		
+
 		$htmlOut .= $this->mBR;
 
 		// Determine namespace checkboxes
-		$namespaces = $wgContLang->getNamespaces();
 		$namespacesArray = explode( ',', $this->mNamespaces );
 		if ( $this->mNamespaces ) {
-			foreach ( $namespacesArray as $userNamespace ) {
+			$namespaces = $wgContLang->getNamespaces();
+			$nsAliases = array_merge( $wgContLang->getNamespaceAliases(), $wgNamespaceAliases );
+			$showNamespaces = array();
+			$checkedNS = array();
+			# Check for valid namespaces
+			foreach ( $namespacesArray as $userNS ) {
+				$userNS = trim( $userNS ); # no whitespace
+
+				# Namespace needs to be checked if flagged with "**"
+				if ( strpos( $userNS, '**' ) ) {
+					$userNS = str_replace( '**', '', $userNS );
+					$checkedNS[$userNS] = true;
+				}
+
+				$mainMsg = wfMsgForContent( 'inputbox-ns-main' );
+				if( $userNS == 'Main' || $userNS == $mainMsg ) {
+					$i = 0;
+				} elseif( array_search( $userNS, $namespaces ) ) {
+					$i = array_search( $userNS, $namespaces );
+				} elseif ( isset( $nsAliases[$userNS] ) ) {
+					$i = $nsAliases[$userNS];
+				} else {
+					continue; # Namespace not recognised, skip
+				}
+				$showNamespaces[$i] = $userNS;
+				if( isset( $checkedNS[$userNS] ) && $checkedNS[$userNS] ) {
+					$checkedNS[$i] = true;
+				}
+			}
+
+			# Show valid namespaces
+			foreach( $showNamespaces as $i => $name ) {
 				$checked = array();
-				// Namespace needs to be checked if flagged with "**" or if it's the only one
-				if ( strstr( $userNamespace, '**' ) || count( $namespacesArray ) == 1 ) {
-					$userNamespace = str_replace( '**', '', $userNamespace );
+				// Namespace flagged with "**" or if it's the only one
+				if ( ( isset( $checkedNS[$i] ) && $checkedNS[$i] ) || count( $showNamespaces ) == 1 ) {
 					$checked = array( 'checked' => 'checked' );
 				}
 
-				// Namespace checkboxes
-				foreach ( $namespaces as $i => $name ) {
-					if ( $i < 0 ) {
-						continue;
-					} elseif ( $i == 0 ) {
-						$name = 'Main';
-					}
-					if ( $userNamespace == $name ) {
-						// Checkbox
-						$htmlOut .= Xml::element( 'input',
-							array(
-								'type' => 'checkbox',
-								'name' => 'ns' . $i,
-								'value' => 1,
-								'id' => 'mw-inputbox-ns' . $i
-							) + $checked
-						);
-						// Label
-						$htmlOut .= ' ' . Xml::label( $userNamespace, 'mw-inputbox-ns' . $i );
-					}
+				if ( count( $showNamespaces ) == 1 ) {
+					// Checkbox
+					$htmlOut .= Xml::element( 'input',
+						array(
+							'type' => 'hidden',
+							'name' => 'ns' . $i,
+							'value' => 1,
+							'id' => 'mw-inputbox-ns' . $i
+						) + $checked
+					);
+				} else {
+					// Checkbox
+					$htmlOut .= ' <div class="inputbox-element" style="display: inline; white-space: nowrap;">';
+					$htmlOut .= Xml::element( 'input',
+						array(
+							'type' => 'checkbox',
+							'name' => 'ns' . $i,
+							'value' => 1,
+							'id' => 'mw-inputbox-ns' . $i
+						) + $checked
+					);
+					// Label
+					$htmlOut .= ' ' . Xml::label( $name, 'mw-inputbox-ns' . $i );
+					$htmlOut .= '</div> ';
 				}
 			}
 
 			// Line break
 			$htmlOut .= $this->mBR;
-		} else if( $type == 'search' ) {
+		} elseif( $type == 'search' ) {
 			// Go button
 			$htmlOut .= Xml::element( 'input',
 				array(
@@ -168,7 +201,7 @@
 					'value' => $this->mButtonLabel
 				)
 			);
-			$htmlOut .= ' ';
+			$htmlOut .= ' ';
 		}
 
 		// Search button
@@ -180,12 +213,12 @@
 				'value' => $this->mSearchButtonLabel
 			)
 		);
-		
+
 		// Hidden fulltext param for IE (bug 17161)
 		if( $type == 'fulltext' ) {
-			$htmlOut .= Xml::hidden( 'fulltext', 'Search' );
+			$htmlOut .= Html::hidden( 'fulltext', 'Search' );
 		}
-		
+
 		$htmlOut .= Xml::closeElement( 'form' );
 		$htmlOut .= Xml::closeElement( 'div' );
 
@@ -193,7 +226,7 @@
 		return $htmlOut;
 	}
 
-	/*
+	/**
 	 * Generate search form version 2
 	 */
 	public function getSearchForm2() {
@@ -275,7 +308,6 @@
 				$this->mButtonLabel = wfMsgHtml( "postcomment" );
 			}
 		} else {
-			$comment = '';
 			if ( !$this->mButtonLabel ) {
 				$this->mButtonLabel = wfMsgHtml( 'createarticle' );
 			}
@@ -287,15 +319,16 @@
 				'style' => 'background-color:' . $this->mBGColor
 			)
 		);
-		$htmlOut .= Xml::openElement( 'form',
-			array(
-				'name' => 'createbox',
-				'id' => 'createbox',
-				'class' => 'createbox',
-				'action' => $wgScript,
-				'method' => 'get'
-			)
+		$createBoxParams = array(
+			'name' => 'createbox',
+			'class' => 'createbox',
+			'action' => $wgScript,
+			'method' => 'get'
 		);
+		if( isset( $this->mId ) ) {
+			$createBoxParams['id'] = Sanitizer::escapeId( $this->mId );
+		}
+		$htmlOut .= Xml::openElement( 'form', $createBoxParams );
 		$htmlOut .= Xml::openElement( 'input',
 			array(
 				'type' => 'hidden',
@@ -327,6 +360,20 @@
 		$htmlOut .= Xml::openElement( 'input',
 			array(
 				'type' => 'hidden',
+				'name' => 'nosummary',
+				'value' => $this->mNosummary,
+			)
+		);
+		$htmlOut .= Xml::openElement( 'input',
+			array(
+				'type' => 'hidden',
+				'name' => 'prefix',
+				'value' => $this->mPrefix,
+			)
+		);
+		$htmlOut .= Xml::openElement( 'input',
+			array(
+				'type' => 'hidden',
 				'name' => 'minor',
 				'value' => $this->mMinor,
 			)
@@ -346,6 +393,7 @@
 				'name' => 'title',
 				'class' => 'createboxInput',
 				'value' => $this->mDefaultText,
+				'placeholder' => $this->mPlaceholderText,
 				'size' => $this->mWidth
 			)
 		);
@@ -364,7 +412,7 @@
 		// Return HTML
 		return $htmlOut;
 	}
-	
+
 	/**
 	 * Generate new section form
 	 */
@@ -381,15 +429,16 @@
 				'style' => 'background-color:' . $this->mBGColor
 			)
 		);
-		$htmlOut .= Xml::openElement( 'form',
-			array(
-				'name' => 'commentbox',
-				'id' => 'commentbox',
-				'class' => 'commentbox',
-				'action' => $wgScript,
-				'method' => 'get'
-			)
+		$commentFormParams = array(
+			'name' => 'commentbox',
+			'class' => 'commentbox',
+			'action' => $wgScript,
+			'method' => 'get'
 		);
+		if( isset( $this->mId ) ) {
+			$commentFormParams['id'] = Sanitizer::escapeId( $this->mId );
+		}
+		$htmlOut .= Xml::openElement( 'form', $commentFormParams );
 		$htmlOut .= Xml::openElement( 'input',
 			array(
 				'type' => 'hidden',
@@ -417,6 +466,7 @@
 				'name' => 'preloadtitle',
 				'class' => 'commentboxInput',
 				'value' => $this->mDefaultText,
+				'placeholder' => $this->mPlaceholderText,
 				'size' => $this->mWidth
 			)
 		);
@@ -464,7 +514,7 @@
 			if ( strpos( $line, '=' ) === false )
 				continue;
 			list( $name, $value ) = explode( '=', $line, 2 );
-			$values[ strtolower( trim( $name ) ) ] = trim( $value );
+			$values[ strtolower( trim( $name ) ) ] = Sanitizer::decodeCharReferences( trim( $value ) );
 		}
 
 		// Build list of options, with local member names
@@ -475,9 +525,11 @@
 			'page' => 'mPage',
 			'editintro' => 'mEditIntro',
 			'summary' => 'mSummary',
+			'nosummary' => 'mNosummary',
 			'minor' => 'mMinor',
 			'break' => 'mBR',
 			'default' => 'mDefaultText',
+			'placeholder' => 'mPlaceholderText',
 			'bgcolor' => 'mBGColor',
 			'buttonlabel' => 'mButtonLabel',
 			'searchbuttonlabel' => 'mSearchButtonLabel',

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.hooks.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.hooks.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.hooks.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -12,11 +12,9 @@
 	/* Functions */
 
 	// Initialization
-	public static function register() {
-		global $wgParser;
-
+	public static function register( &$parser ) {
 		// Register the hook with the parser
-		$wgParser->setHook( 'inputbox', array( 'InputBoxHooks', 'render' ) );
+		$parser->setHook( 'inputbox', array( 'InputBoxHooks', 'render' ) );
 
 		// Continue
 		return true;
@@ -33,4 +31,46 @@
 		// Return output
 		return $inputBox->render();
 	}
+	
+	/**
+	 * <inputbox type=create...> sends requests with action=edit, and 
+	 * possibly a &prefix=Foo.  So we pick that up here, munge prefix 
+	 * and title together, and redirect back out to the real page
+	 * @param $output OutputPage
+	 * @param $article Article
+	 * @param $title Title
+	 * @param $user User
+	 * @param $request WebRequest 
+	 * @param $wiki MediaWiki
+	 * @return True
+	 */
+	public static function onMediaWikiPerformAction( 
+		$output, 
+		$article, 
+		$title, 
+		$user, 
+		$request, 
+		$wiki )
+	{
+		if( $wiki->getAction( $request ) !== 'edit' ){
+			# not our problem
+			return true;
+		}
+		if( $request->getText( 'prefix', '' ) === '' ){
+			# Fine
+			return true;
+		}
+		
+		$params = $request->getValues();
+		$title = $params['prefix'];
+		if ( isset( $params['title'] ) ){
+			$title .= $params['title'];
+		}
+		unset( $params['prefix'] );
+		$params['title'] = $title;
+		
+		global $wgScript;
+		$output->redirect( wfAppendQuery( $wgScript, $params ), '301' );
+		return false;
+	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -3,7 +3,8 @@
 /**
  * Messages file for the InputBox extension
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  */
 
 /**
@@ -21,19 +22,23 @@
 	'tryexact'                => 'Try exact match',
 	'searchfulltext'          => 'Search full text',
 	'createarticle'           => 'Create page',
+	'inputbox-ns-main'        => 'Main',
 );
 
 /** Message documentation (Message documentation)
+ * @author Lloffiwr
  * @author Meno25
  * @author SPQRobin
  * @author Siebrand
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
-	'inputbox-desc' => 'Short description of the Inputbox extension, shown on [[Special:Version]].',
+	'inputbox-desc' => '{{desc}}',
 	'inputbox-error-bad-type' => '{{doc-important|"create", "comment", "search", "search2" and "fulltext" should not be translated.}}',
 	'tryexact' => 'Part of the "Inputbox" extension. This message is the text of the button to search the page you typed in the inputbox. If the page with the exact name exists, you will go directly to that page.',
 	'searchfulltext' => 'Part of the "Inputbox" extension. This message is the text of the button to search the page you typed in the inputbox. This button always goes to the search page, even if the page with the exact name exists.',
 	'createarticle' => 'Part of the "Inputbox" extension. This message is the text of the button to create the page you typed in the inputbox.',
+	'inputbox-ns-main' => 'Probably refers to the main namespace.',
 );
 
 /** Niuean (ko e vagahau Niuē)
@@ -49,11 +54,12 @@
 $messages['af'] = array(
 	'inputbox-desc' => 'Laat die insluiting van vooraf gedefinieerde HTML-vorms moontlik',
 	'inputbox-error-no-type' => 'U het nie die tipe invoerveld gespesifiseer nie.',
-	'inputbox-error-bad-type' => 'Tipe invoerveld "$1" nie herken nie.
-Gebruik "create", "comment", "search" of "search2".',
+	'inputbox-error-bad-type' => 'Tipe invoerveld is "$1" nie herken nie.
+Gebruik "create", "comment", "search", "search2" of "fulltext".',
 	'tryexact' => 'Soek presiese ooreenkoms',
 	'searchfulltext' => 'Deursoek volledige teks',
 	'createarticle' => 'Skep bladsy',
+	'inputbox-ns-main' => 'Hoofnaamruimte',
 );
 
 /** Amharic (አማርኛ)
@@ -70,14 +76,16 @@
 	'inputbox-desc' => 'Premite a enclusión de formularios HTML predefinitos',
 	'inputbox-error-no-type' => 'No ha endicato o tipo de caixa de dentrada que cal creyar.',
 	'inputbox-error-bad-type' => 'No se reconoixe o tipo de caixa de dentrada "$1".
-Por fabor, espezifique "create", "comment", "search" u "fulltext".',
+Por favor, especifique "create", "comment", "search" u "fulltext".',
 	'tryexact' => 'Mirar títol esauto',
 	'searchfulltext' => 'Mirar por testo completo',
 	'createarticle' => 'Creyar pachina',
+	'inputbox-ns-main' => 'Prencipal',
 );
 
 /** Arabic (العربية)
  * @author Meno25
+ * @author زكريا
  */
 $messages['ar'] = array(
 	'inputbox-desc' => 'يسمح بتضمين أشكال HTML معرفة مسبقا.',
@@ -87,8 +95,16 @@
 	'tryexact' => 'ابحث عن عنوان مطابق',
 	'searchfulltext' => 'ابحث في النص الكامل',
 	'createarticle' => 'إنشاء صفحة',
+	'inputbox-ns-main' => 'رئيسي',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'createarticle' => 'ܒܪܝ ܦܐܬܐ',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ghaly
  * @author Ramsis II
@@ -104,36 +120,51 @@
 );
 
 /** Assamese (অসমীয়া)
+ * @author Chaipau
  * @author Rajuonline
  */
 $messages['as'] = array(
 	'tryexact' => 'কেবল দিয়া শব্দহে বিচাৰিব',
-	'searchfulltext' => 'সম্পূর্ণ পাঠ্য বিচাৰিব',
+	'searchfulltext' => 'সম্পূৰ্ণ পাঠ্য বিচাৰিব',
 	'createarticle' => 'পৃষ্ঠা বনাওক',
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
 	'inputbox-desc' => 'Permite la inclusión de formularios HTML predefiníos',
 	'inputbox-error-no-type' => "Nun especificasti la triba de caxellu d'entrada pa crear.",
-	'inputbox-error-bad-type' => "Triba de caxa d'entrada $1 non reconocida. Por favor conseña la opción ''create'', ''comment'', ''search'' o ''search2''.",
+	'inputbox-error-bad-type' => "Triba de caxa d'entrada \$1 non reconocida.
+Por favor conseña la opción ''create'', ''comment'', ''search'', ''search2'' o \"fulltext\".",
 	'tryexact' => 'Intentar concueyar exautamente',
 	'searchfulltext' => 'Buscar testu completu',
 	'createarticle' => 'Crear páxina',
+	'inputbox-ns-main' => 'Principal',
 );
 
-/** Azerbaijani (Azərbaycan) */
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ * @author Vugar 1981
+ */
 $messages['az'] = array(
+	'searchfulltext' => 'Yaxşı mətni axtar',
 	'createarticle' => 'Məqalə yarat',
+	'inputbox-ns-main' => 'Əsas',
 );
 
-/** Samogitian (Žemaitėška)
- * @author Hugo.arg
+/** Bashkir (Башҡортса)
+ * @author Assele
  */
-$messages['bat-smg'] = array(
-	'searchfulltext' => 'Ėiškuotė pėlna teksta',
+$messages['ba'] = array(
+	'inputbox-desc' => 'Алдан билдәләнгән HTML формаларҙы индереү мөмкинлеген бирә',
+	'inputbox-error-no-type' => 'Һеҙ булдырыла торған юлдың төрөн күрһәтмәгеҙ.',
+	'inputbox-error-bad-type' => '"$1" юл төрө танылмаған.
+Зинһар, "create", "comment", "search", "search2" йәки "fulltext" төрөнөң береһен күрһәтегеҙ.',
+	'tryexact' => 'Теүәл тура килеү буйынса эҙләү',
+	'searchfulltext' => 'Тулы текст буйынса эҙләү',
+	'createarticle' => 'Яңы бит яһарға',
 );
 
 /** Southern Balochi (بلوچی مکرانی)
@@ -154,10 +185,11 @@
 	'createarticle' => 'Пачаць артыкул',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
+ * @author Wizardist
  */
 $messages['be-tarask'] = array(
 	'inputbox-desc' => 'Дазваляе ўключаць раней вызначаныя HTML-формы',
@@ -167,6 +199,7 @@
 	'tryexact' => 'Паспрабаваць дакладны пошук',
 	'searchfulltext' => 'Шукаць увесь тэкст',
 	'createarticle' => 'Стварыць старонку',
+	'inputbox-ns-main' => 'Асноўная',
 );
 
 /** Bulgarian (Български)
@@ -177,7 +210,7 @@
 	'inputbox-desc' => 'Позволява вмъкването на HTML формуляри.',
 	'inputbox-error-no-type' => 'Не се посочили типа на кутията за вход, която да бъде създадена.',
 	'inputbox-error-bad-type' => 'Неразпознат тип „$1“ на кутията за вход.
-Моля, посочете „create“, „comment“, „search“ или „search2“.',
+Необходимо е да се посочи „create“, „comment“, „search“, „search2“ или „fulltext“.',
 	'tryexact' => 'Пълно и точно съвпадение',
 	'searchfulltext' => 'Претърсване на целия текст',
 	'createarticle' => 'Създаване',
@@ -197,10 +230,12 @@
 $messages['bn'] = array(
 	'inputbox-desc' => 'পূর্বসংজ্ঞায়িত এইচটিএমএল ফর্মের অন্তর্ভুক্তি অনুমোদন করুন',
 	'inputbox-error-no-type' => 'আপনি ইনপুট বক্স তৈরির জন্য ইনপুট বক্সের ধরণ নির্ধারণ করেননি।',
-	'inputbox-error-bad-type' => '"$1" ধরণের ইনপুট বক্স নেই। দয়া করে "create", "comment", "search" অথবা "search2" নির্ধারণ করুন।',
+	'inputbox-error-bad-type' => '"$1" ধরনেরর ইনপুট বাক্স সনাক্ত করা যায় নাই।
+অনুগ্রহ করে "create", "comment", "search" অথবা "search2" নির্ধারণ করুন।',
 	'tryexact' => 'ঠিক এই নামের নিবন্ধে যান',
 	'searchfulltext' => 'সব বিষয়বস্তুতে খুঁজুন',
 	'createarticle' => 'নিবন্ধ শুরু করো',
+	'inputbox-ns-main' => 'প্রধান',
 );
 
 /** Bakhtiari (بختياري)
@@ -223,10 +258,11 @@
 	'inputbox-desc' => 'Aotren a ra degas furmskridoù HTML raktermenet.',
 	'inputbox-error-no-type' => "N'eo ket bet spisaet ganeoc'h ar seurt boest enmont da vezañ krouet",
 	'inputbox-error-bad-type' => 'N\'eo ket anavaezet ar seurt boest enmont "$1".
-Spisait "create", "comment", "search" pe "search2".',
+Spisait "create", "comment", "search" pe "search2" pe "fulltext".',
 	'tryexact' => 'Klask ma klotfe rik',
-	'searchfulltext' => 'Klask an destenn a-bezh',
+	'searchfulltext' => 'Klask en destenn a-bezh',
 	'createarticle' => 'Krouiñ ar pennad',
+	'inputbox-ns-main' => 'Pennañ',
 );
 
 /** Bosnian (Bosanski)
@@ -243,6 +279,8 @@
 );
 
 /** Catalan (Català)
+ * @author Aleator
+ * @author Gemmaa
  * @author Paucabot
  * @author SMP
  * @author Toniher
@@ -256,6 +294,7 @@
 	'tryexact' => 'Prova una coincidència exacta',
 	'searchfulltext' => 'Cerca un text sencer',
 	'createarticle' => 'Crea una pàgina',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄) */
@@ -263,29 +302,37 @@
 	'createarticle' => 'Kŭi hiĕk',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'tryexact' => 'Леррина лахар',
+);
+
 /** Corsican (Corsu) */
 $messages['co'] = array(
 	'searchfulltext' => 'Ricerca testu cumplettu',
 	'createarticle' => "Creà l'articulu",
 );
 
-/** Crimean Turkish (Latin) (Qırımtatarca (Latin))
- * @author Alessandro
+/** Crimean Turkish (Latin script) (‪Qırımtatarca (Latin)‬)
+ * @author Don Alessandro
  */
 $messages['crh-latn'] = array(
-	'createarticle' => 'Saifeni yañart',
+	'createarticle' => 'Saifeni yarat',
 );
 
-/** Crimean Turkish (Cyrillic) (Qırımtatarca (Cyrillic))
- * @author Alessandro
+/** Crimean Turkish (Cyrillic script) (‪Къырымтатарджа (Кирилл)‬)
+ * @author Don Alessandro
  */
 $messages['crh-cyrl'] = array(
-	'createarticle' => 'Саифени янъарт',
+	'createarticle' => 'Саифени ярат',
 );
 
 /** Czech (Česky)
  * @author Danny B.
  * @author Li-sung
+ * @author Mormegil
  */
 $messages['cs'] = array(
 	'inputbox-desc' => 'Umožňuje vkládat určité HTML formuláře.',
@@ -295,9 +342,17 @@
 	'tryexact' => 'Vyzkoušet přesné hledání',
 	'searchfulltext' => 'Plnotextové hledání',
 	'createarticle' => 'Vytvořit článek',
+	'inputbox-ns-main' => 'Hlavní',
 );
 
-/** Chuvash (Чăвашла) */
+/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
+ * @author ОйЛ
+ */
+$messages['cu'] = array(
+	'createarticle' => 'cъꙁижди члѣнъ',
+);
+
+/** Chuvash (Чӑвашла) */
 $messages['cv'] = array(
 	'createarticle' => 'Çĕнĕ статья çыр',
 );
@@ -313,10 +368,12 @@
 	'tryexact' => 'Chwilio am yr union gymal',
 	'searchfulltext' => "Chwilio'r testun cyfan",
 	'createarticle' => "Creu'r dudalen",
+	'inputbox-ns-main' => 'Prif',
 );
 
 /** Danish (Dansk)
  * @author Byrial
+ * @author Peter Alberti
  */
 $messages['da'] = array(
 	'inputbox-desc' => 'Muliggør inkludering af forhåndsdefinerede HTML-formularer',
@@ -326,28 +383,39 @@
 	'tryexact' => 'Gå til siden',
 	'searchfulltext' => 'Søg efter teksten',
 	'createarticle' => 'Opret side',
+	'inputbox-ns-main' => 'Hoved',
 );
 
 /** German (Deutsch)
+ * @author Kghbln
+ * @author LWChris
  * @author Metalhead64
  * @author Raimond Spekking
  * @author Umherirrender
  */
 $messages['de'] = array(
-	'inputbox-desc' => 'Erlaubt die Einbindung vordefinierter HTML-Formulare',
-	'inputbox-error-no-type' => 'Du hast keinen Eingabefeld-Typ angegeben.',
-	'inputbox-error-bad-type' => 'Eingabefeld-Typ „$1“ unbekannt.
+	'inputbox-desc' => 'Ergänzt das Tag <code><inputbox></code> zum Einbinden vordefinierter HTML-Eingabefelder',
+	'inputbox-error-no-type' => 'Es wurde kein Eingabefeldtyp angegeben.',
+	'inputbox-error-bad-type' => 'Der Eingabefeldtyp „$1“ ist unbekannt.
 Bitte „create“, „comment“, „search“, „search2“ oder „fulltext“ angeben.',
-	'tryexact' => 'Versuche exakte Suche',
-	'searchfulltext' => 'Gesamten Text durchsuchen',
-	'createarticle' => 'Seite anlegen',
+	'tryexact' => 'Exakte Suche durchführen',
+	'searchfulltext' => 'Volltextsuche',
+	'createarticle' => 'Seite erstellen',
+	'inputbox-ns-main' => 'Seiten',
 );
 
-/** German (formal address) (Deutsch (Sie-Form))
- * @author Umherirrender
+/** Zazaki (Zazaki)
+ * @author Aspar
+ * @author Xoser
  */
-$messages['de-formal'] = array(
-	'inputbox-error-no-type' => 'Sie haben keinen Eingabefeld-Typ angegeben.',
+$messages['diq'] = array(
+	'inputbox-desc' => 'desturê daxilbiyayişê formê HTMLyi dano, no HTML gani ver ra şınasi bıbo.',
+	'inputbox-error-no-type' => 'Qutiya daxilbiyayişi ya ke vıraziyena gani tipê aye diyari bıbo',
+	'inputbox-error-bad-type' => 'Qutiyê tîp ê "$1"î kebul nikerd.
+Ma şima rê "create", "comment", "search", "search2" or "fulltext" spesife bike.',
+	'tryexact' => 'tam hemcıt biyayiş tesel bıker/bıcereb',
+	'searchfulltext' => 'pêroyê metni bıgêr',
+	'createarticle' => 'pel vıraz',
 );
 
 /** Lower Sorbian (Dolnoserbski)
@@ -359,9 +427,10 @@
 	'inputbox-error-no-type' => 'Njejsy pódał typ zapódawańskego póla za napóranje.',
 	'inputbox-error-bad-type' => 'Zapódawańske pólo typa "$1" njespóznane.
 Pšosym pódaj "create", "comment", "search", "search2" abo "fulltext".',
-	'tryexact' => 'Nawłos pytaś:',
+	'tryexact' => 'Eksaktne pytanje',
 	'searchfulltext' => 'Ceły tekst pytaś',
-	'createarticle' => 'Nastawk natworiś',
+	'createarticle' => 'Bok załožyś',
+	'inputbox-ns-main' => 'Boki',
 );
 
 /** Divehi (ދިވެހިބަސް)
@@ -371,13 +440,17 @@
 	'createarticle' => 'މަޒުމޫނެއް ފައްޓަވާ',
 );
 
-/** Ewe (Eʋegbe) */
+/** Ewe (Eʋegbe)
+ * @author Natsubee
+ */
 $messages['ee'] = array(
+	'searchfulltext' => 'Di nuŋɔŋlɔ bliboa me',
 	'createarticle' => 'Dze nuŋɔŋlɔ yeye gɔme',
 );
 
 /** Greek (Ελληνικά)
  * @author Dead3y3
+ * @author ZaDiak
  */
 $messages['el'] = array(
 	'inputbox-desc' => 'Επιτρέπει την περίληψη προκαθορισμένων φορμών HTML',
@@ -387,24 +460,28 @@
 	'tryexact' => 'Δοκιμάστε την επακριβή αντιστοιχία.',
 	'searchfulltext' => 'Αναζήτηση με το πλήρες κείμενο',
 	'createarticle' => 'Δημιουργία σελίδας',
+	'inputbox-ns-main' => 'Κύριος',
 );
 
 /** Esperanto (Esperanto)
+ * @author Michawiki
  * @author Yekrats
  */
 $messages['eo'] = array(
 	'inputbox-desc' => 'Permesi enhavon de antaŭdifinitaj HTML-kamparoj',
 	'inputbox-error-no-type' => 'Vi ne enigis la specon de enigo-kesto por krei.',
 	'inputbox-error-bad-type' => 'Enigo-kesto "$1" ne estas konata.
-Bonvolu specifigi keston "krea", "komenta", "serĉa", "serĉa2", aŭ "plenateksa".',
+Bonvolu specifi keston "create", "comment", "seatch", "search2", aŭ "fulltext".',
 	'tryexact' => 'Provu ekzaktan trafon',
 	'searchfulltext' => 'Serĉi plentekste',
 	'createarticle' => 'Krei artikolon',
+	'inputbox-ns-main' => 'Ĉefa',
 );
 
 /** Spanish (Español)
  * @author Crazymadlover
  * @author Icvav
+ * @author MetalBrasil
  * @author Muro de Aguas
  * @author Sanbec
  */
@@ -416,13 +493,19 @@
 	'tryexact' => 'Buscar título exacto',
 	'searchfulltext' => 'Buscar por texto completo',
 	'createarticle' => 'Crear artículo',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Estonian (Eesti)
  * @author Avjoska
  * @author Jaan513
+ * @author Pikne
  */
 $messages['et'] = array(
+	'inputbox-desc' => 'Lubab kaasata eelmääratletud HTML-vormid.',
+	'inputbox-error-no-type' => 'Sisendkasti tüüp on määramata.',
+	'inputbox-error-bad-type' => 'Tundmatu sisendkasti tüüp "$1".
+Palun vali tüübiks "create", "comment", "search", "search2" või "fulltext".',
 	'tryexact' => 'Proovi täpset vastet',
 	'searchfulltext' => 'Otsi täisteksti',
 	'createarticle' => 'Alusta lehekülge',
@@ -437,25 +520,29 @@
 
 /** Extremaduran (Estremeñu) */
 $messages['ext'] = array(
-	'createarticle' => 'Creal artículu',
+	'createarticle' => 'Crial página',
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
+ * @author Mjbmr
  */
 $messages['fa'] = array(
 	'inputbox-desc' => 'اجازهٔ استفاده از فرم‌های HTML از پیش تعریف شده را می‌دهد',
 	'inputbox-error-no-type' => 'نوع جعبهٔ ورودی  ایجادشونده را مشخص نکرده‌اید.',
-	'inputbox-error-bad-type' => 'نوع "$1" برای جعبهٔ ورودی شناخته شده نیست.
+	'inputbox-error-bad-type' => 'نوع «$1» برای جعبهٔ ورودی شناخته شده نیست.
 لطفاً یکی از موارد «create»، «comment»، «search»، «search2» یا «fulltext» را مشخص کنید.',
 	'tryexact' => 'مطابقت نظیر به نظیر را بیازما',
 	'searchfulltext' => 'جستجوی کل متن',
-	'createarticle' => 'ایجاد مقاله',
+	'createarticle' => 'ایجاد صفحه',
+	'inputbox-ns-main' => 'اصلی',
 );
 
 /** Finnish (Suomi)
  * @author Crt
  * @author Nike
+ * @author Olli
  */
 $messages['fi'] = array(
 	'inputbox-desc' => 'Mahdollistaa ennalta määriteltyjen lomakkeiden sisällyttämisen sivuille.',
@@ -465,17 +552,24 @@
 	'tryexact' => 'Yritä tarkkaa osumaa',
 	'searchfulltext' => 'Etsi koko tekstiä',
 	'createarticle' => 'Luo sivu',
+	'inputbox-ns-main' => '(sivut)',
 );
 
-/** Faroese (Føroyskt) */
+/** Faroese (Føroyskt)
+ * @author EileenSanda
+ */
 $messages['fo'] = array(
-	'createarticle' => 'Stovna grein',
+	'tryexact' => 'Far til síðu',
+	'searchfulltext' => 'Leita eftir hesum teksti',
+	'createarticle' => 'Upprætta síðu',
+	'inputbox-ns-main' => 'Høvuðs',
 );
 
 /** French (Français)
  * @author Crochet.david
  * @author IAlex
  * @author Sherbrooke
+ * @author Wyz
  */
 $messages['fr'] = array(
 	'inputbox-desc' => 'Permet l’inclusion de formulaires HTML prédéfinis.',
@@ -484,7 +578,8 @@
 Indiquez une option parmis « create », « comment », « search », « searche2 » ou « fulltext ».',
 	'tryexact' => 'Essayez la correspondance exacte.',
 	'searchfulltext' => 'Recherche en texte intégral',
-	'createarticle' => 'Créer la page',
+	'createarticle' => 'Créer une page',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Franco-Provençal (Arpetan)
@@ -492,11 +587,13 @@
  */
 $messages['frp'] = array(
 	'inputbox-desc' => 'Pèrmèt l’encllusion de formulèros HTML prèdèfenis.',
-	'inputbox-error-no-type' => 'Vos éd pas spècefiâ lo tipo de la bouèta d’entrâ a crèar.',
-	'inputbox-error-bad-type' => "Tipo de bouèta d’entrâ « $1 » pas recognu. Endicâd lo chouèx ''create'', ''comment'', ''search'' ou ben ''searche2''.",
-	'tryexact' => 'Èprovâd la corrèspondance ègzacta.',
-	'searchfulltext' => 'Rechèrche en tèxte complèt',
-	'createarticle' => 'Crèar l’articllo',
+	'inputbox-error-no-type' => 'Vos éd pas spècefiâ lo tipo de la bouèta d’entrâ a fâre.',
+	'inputbox-error-bad-type' => 'Tipo de bouèta d’entrâ « $1 » pas recognu.
+Volyéd spècefiar un chouèx permié « create », « comment », « search », « searche2 » ou ben « fulltext ».',
+	'tryexact' => 'Èprovâd la corrèspondance justa.',
+	'searchfulltext' => 'Rechèrche en tèxto complèt',
+	'createarticle' => 'Fâre la pâge',
+	'inputbox-ns-main' => 'Principâl',
 );
 
 /** Friulian (Furlan)
@@ -515,8 +612,14 @@
 	'createarticle' => 'Side oanmeitsje',
 );
 
-/** Irish (Gaeilge) */
+/** Irish (Gaeilge)
+ * @author Evertype
+ */
 $messages['ga'] = array(
+	'inputbox-desc' => 'Ceadaigh glactha foirmeacha HTML réamhshainithe',
+	'inputbox-error-no-type' => 'Níor shocraigh tú an cineál bosca ionchur a bheadh le cruthú.',
+	'inputbox-error-bad-type' => 'Bosca iochur den chineál "$1" gan aithint.
+Sonraigh "create", "comment", "search", "search2" nó "fulltext".',
 	'tryexact' => 'Déan iarracht ar meaitseáil cruinn',
 	'searchfulltext' => 'Cuardaigh sa téacs iomlán',
 	'createarticle' => 'Cruthaigh alt',
@@ -528,12 +631,13 @@
  */
 $messages['gl'] = array(
 	'inputbox-desc' => 'Permitir a inclusión de formularios predefinidos de HTML',
-	'inputbox-error-no-type' => 'Non se especificou o tipo de caixa de entrada para crear.',
+	'inputbox-error-no-type' => 'Non especificou o tipo de caixa de entrada que quere crear.',
 	'inputbox-error-bad-type' => 'O tipo de caixa de entrada "$1" non foi recoñecido.
 Por favor, especifique "create", "comment", "search", "search2" ou "fulltext".',
-	'tryexact' => 'Tentar coincidencias exactas',
+	'tryexact' => 'Buscar coincidencias exactas',
 	'searchfulltext' => 'Buscar o texto completo',
 	'createarticle' => 'Crear a páxina',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Ancient Greek (Ἀρχαία ἑλληνικὴ)
@@ -561,13 +665,21 @@
 	'tryexact' => 'Versuech es mitenere exakte Suech',
 	'searchfulltext' => 'De gsamti Teggscht durchsueche',
 	'createarticle' => 'Syte aalaie',
+	'inputbox-ns-main' => 'Hauptsyte',
 );
 
 /** Gujarati (ગુજરાતી)
  * @author Dsvyas
+ * @author KartikMistry
+ * @author Sushant savla
  */
 $messages['gu'] = array(
+	'inputbox-desc' => 'પૂર્વવ્યાખ્યાયિત HTML પત્રકોનો સમાવેશ માન્ય',
+	'inputbox-error-no-type' => 'તમે બનાવવા માટેના ઈનપુટ બોક્સનો પ્રકાર સ્પષ્ટ કર્યો નથી.',
+	'tryexact' => 'આબેહૂબ સરખામણી ધારી પ્રયત્ન કરો',
+	'searchfulltext' => 'સંપૂર્ણ લખાણ શોધો',
 	'createarticle' => 'નવો લેખ શરૂ કરો',
+	'inputbox-ns-main' => 'મુખ્ય',
 );
 
 /** Manx (Gaelg)
@@ -587,6 +699,7 @@
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
  */
 $messages['he'] = array(
@@ -597,9 +710,11 @@
 	'tryexact' => 'לדף בשם זה',
 	'searchfulltext' => 'חיפוש בתוכן הדפים',
 	'createarticle' => 'יצירת הדף',
+	'inputbox-ns-main' => 'ראשי',
 );
 
 /** Hindi (हिन्दी)
+ * @author Ansumang
  * @author Kaustubh
  */
 $messages['hi'] = array(
@@ -610,9 +725,10 @@
 	'tryexact' => 'दिये हुए शब्दही खोजें',
 	'searchfulltext' => 'पूरा पाठ खोजें',
 	'createarticle' => 'लेख बनाईयें',
+	'inputbox-ns-main' => 'मुख्य',
 );
 
-/** Fiji Hindi (Latin) (Fiji Hindi (Latin))
+/** Fiji Hindi (Latin script) (Fiji Hindi)
  * @author Thakurji
  */
 $messages['hif-latn'] = array(
@@ -658,37 +774,46 @@
 	'tryexact' => 'Dokładne pytanje spytać',
 	'searchfulltext' => 'Dospołny tekst pytać',
 	'createarticle' => 'Nastawk wutworić',
+	'inputbox-ns-main' => 'Strony',
 );
 
 /** Haitian (Kreyòl ayisyen)
+ * @author Boukman
  * @author Masterches
  */
 $messages['ht'] = array(
-	'inputbox-desc' => 'Ap pèmèt ou mete fòmilè HTML yo ki ja defini.',
+	'inputbox-desc' => 'Pèmèt ou mete fòmilè HTML yo ki deja defini.',
 	'inputbox-error-no-type' => 'Atansyon, ou pa bay detay sou tip, kalite bwat antre pou ou kreye',
-	'inputbox-error-bad-type' => "Kalite bwat antre $1 pa bon, sistèm an pa konnen l. Mete opsyon sa ''create (kreye)'', ''comment (komante)'', ''search (chache, fouye)'' ou ''searche2''.",
-	'tryexact' => 'Eseye yon korespondans egzakt, toutbon.',
-	'searchfulltext' => 'Chache, fouye ak opsyon tèks entegral; wap pran an konsiderasyon tout mo ki nan demann ou an',
+	'inputbox-error-bad-type' => 'Kalite bwat $1 ou antre pa bon, sistèm nan pa konnen l.
+Tanpri mete youn nan opsyon sa yo: "create", "comment", "search", "search2" oubyen "fulltext".',
+	'tryexact' => 'Eseye paj ki koresponn toutbon.',
+	'searchfulltext' => 'Fouye nan tout teks nèt',
 	'createarticle' => 'Kreye atik sa',
 );
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Dj
+ * @author Glanthor Reviol
  * @author KossuthRad
  * @author Tgr
  */
 $messages['hu'] = array(
 	'inputbox-desc' => 'Lehetővé teszi előre megadott HTML-űrlapok beillesztését',
 	'inputbox-error-no-type' => 'Nem adtad meg, hogy milyen típusú beviteli mezőt akarsz készíteni.',
-	'inputbox-error-bad-type' => '„$1” típusú beviteli mező nem ismert. „create”, „comment”, „search” vagy „search2” egyikét add meg.',
+	'inputbox-error-bad-type' => '„$1” típusú beviteli mező nem ismert.
+A „create”, „comment”, „search”, „search2” vagy „fulltext” egyikét add meg.',
 	'tryexact' => 'Ugrás a szócikkre',
 	'searchfulltext' => 'Keresés a teljes szövegben',
 	'createarticle' => 'Szócikk létrehozása',
+	'inputbox-ns-main' => 'Fő',
 );
 
-/** Armenian (Հայերեն) */
+/** Armenian (Հայերեն)
+ * @author Xelgen
+ */
 $messages['hy'] = array(
-	'createarticle' => 'Հոդված ստեղծել',
+	'createarticle' => 'Ստեղծել էջ',
 );
 
 /** Interlingua (Interlingua)
@@ -702,23 +827,45 @@
 	'tryexact' => 'Provar correspondentia exacte',
 	'searchfulltext' => 'Cercar in texto integre',
 	'createarticle' => 'Crear pagina',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author -iNu-
+ * @author Aldnonymous
  * @author IvanLanin
+ * @author Rex
  */
 $messages['id'] = array(
 	'inputbox-desc' => 'Memungkinkan penggunaan form HTML yang telah ditentukan',
 	'inputbox-error-no-type' => 'Anda harus menentukan tipe kotak input yang ingin dibuat.',
-	'inputbox-error-bad-type' => 'Tipe kotak input "$1" tak dikenal. Tolong gunakan "create", "comment", "search" atau "search2".',
+	'inputbox-error-bad-type' => 'Tipe kotak input "$1" tak dikenal.
+Harap gunakan "create", "comment", "search", "search2", atau "fulltext".',
 	'tryexact' => 'Coba pencocokan eksak',
 	'searchfulltext' => 'Cari di teks lengkap',
-	'createarticle' => 'Buat artikel',
+	'createarticle' => 'Buat halaman',
+	'inputbox-ns-main' => 'Utama',
 );
 
-/** Iloko (Ilokano) */
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'createarticle' => 'Ké ihü',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
 $messages['ilo'] = array(
-	'createarticle' => 'Mangaramid iti articulo',
+	'inputbox-desc' => 'Pakabaelan na nga agikabil kadagiti napalasin a kinabuklan ti HTML',
+	'inputbox-error-no-type' => 'Saan mo pay nga imbaga no ania a kita ti pagikabilan a kahon ti aramiden.',
+	'inputbox-error-bad-type' => 'Ti kita ti pigikabilan a kahon "$1" ket saan a ma-ammoan.
+Pangaasi ta ibagam nga "agaramid", "komentario", "biruken", "biruken2", "wenno sibubukel a teksto".',
+	'tryexact' => 'Padasem to pudno a kapada',
+	'searchfulltext' => 'Agbiruk ti sibubukel a teksto',
+	'createarticle' => 'Agaramid ti panid',
+	'inputbox-ns-main' => 'Dati',
 );
 
 /** Ido (Ido)
@@ -739,6 +886,7 @@
 /** Italian (Italiano)
  * @author BrokenArrow
  * @author Darth Kule
+ * @author Karika
  */
 $messages['it'] = array(
 	'inputbox-desc' => "Consente l'inserimento di moduli HTML predefiniti",
@@ -747,11 +895,13 @@
 	'tryexact' => 'Cerca corrispondenza esatta',
 	'searchfulltext' => 'Ricerca nel testo',
 	'createarticle' => 'Crea voce',
+	'inputbox-ns-main' => 'Principale',
 );
 
 /** Japanese (日本語)
  * @author Fryed-peach
  * @author JtFuruhata
+ * @author Schu
  */
 $messages['ja'] = array(
 	'inputbox-desc' => 'あらかじめ定義されたHTMLフォーム埋め込み機能を有効にする',
@@ -760,6 +910,7 @@
 	'tryexact' => '一致する項目を検索',
 	'searchfulltext' => '全文検索',
 	'createarticle' => '項目を作成',
+	'inputbox-ns-main' => '(標準)',
 );
 
 /** Jutish (Jysk)
@@ -776,12 +927,13 @@
 
 /** Javanese (Basa Jawa)
  * @author Meursault2004
+ * @author Pras
  */
 $messages['jv'] = array(
 	'inputbox-desc' => 'Ngidinaké nganggo formulir HTML sing wis ditemtokaké',
 	'inputbox-error-no-type' => 'Panjenengan durung nemtokaké tipe kothak input sing arep digawé.',
-	'inputbox-error-bad-type' => 'Tipe kothak input "$1" ora ditepungi.
-Tulung nganggoa "create", "comment", "search" utawa "search2".',
+	'inputbox-error-bad-type' => 'Tipe kothak input "$1" ora dikenal.
+Supaya migunakaké "create", "comment", "search", "search2", utawa "fulltext".',
 	'tryexact' => 'Cobanen pancocogan èksak',
 	'searchfulltext' => 'Golèk ing tèks jangkep',
 	'createarticle' => 'Damel artikel',
@@ -789,11 +941,15 @@
 
 /** Georgian (ქართული)
  * @author Alsandro
+ * @author David1010
+ * @author ITshnik
  */
 $messages['ka'] = array(
+	'inputbox-desc' => 'საშუალებას იძლევა ჩართოს წინასწარ განსაზღვრული HTML ფორმები',
 	'tryexact' => 'სცადე ზუსტი დამთხვევა',
 	'searchfulltext' => 'სრული ტექსტის ძიება',
 	'createarticle' => 'სტატიის შექმნა',
+	'inputbox-ns-main' => 'მთავარი',
 );
 
 /** Kara-Kalpak (Qaraqalpaqsha) */
@@ -819,7 +975,7 @@
 	'createarticle' => 'بەتتٸ باستاۋ',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'inputbox-error-no-type' => 'Жасалатын енгізу жолағының түрін келтірмепсіз.',
 	'inputbox-error-bad-type' => 'Енгізу жолақтың «$1» түрі танылмады. Тек «create», «comment», «search» не «search2» деген түрлерді келтіріңіз.',
@@ -828,7 +984,7 @@
 	'createarticle' => 'Бетті бастау',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'inputbox-error-no-type' => 'Jasalatın engizw jolağınıñ türin keltirmepsiz.',
 	'inputbox-error-bad-type' => 'Engizw jolaqtıñ «$1» türi tanılmadı. Tek «create», «comment», «search» ne «search2» degen türlerdi keltiriñiz.',
@@ -862,9 +1018,19 @@
 	'tryexact' => '정확한 이름으로 찾기',
 	'searchfulltext' => '전체 글 검색',
 	'createarticle' => '문서 만들기',
+	'inputbox-ns-main' => '문서',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Komi-Permyak (Перем Коми)
+ * @author Enye Lav
+ */
+$messages['koi'] = array(
+	'tryexact' => 'Кошшыны утлянно сiйö',
+	'searchfulltext' => 'Кошшыны тыр текст',
+	'createarticle' => 'Лöсьöтны листбок',
+);
+
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
@@ -874,9 +1040,10 @@
 	'tryexact' => 'Versök en akkurate Üvvereinstimmung:',
 	'searchfulltext' => 'Sök durch dä janze Tex',
 	'createarticle' => 'Sigg aanlääje',
+	'inputbox-ns-main' => '{{int:blanknamespace}}',
 );
 
-/** Kurdish (Latin) (Kurdî / كوردی (Latin)) */
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬) */
 $messages['ku-latn'] = array(
 	'createarticle' => 'Gotarê biafirîne',
 );
@@ -892,9 +1059,12 @@
 $messages['lb'] = array(
 	'inputbox-desc' => "Erlaabt d'Afüge vu viirdefinéierten HTML-Formulairen",
 	'inputbox-error-no-type' => 'Dir hutt den Typ vu Këscht fir eppes anzeginn net uginn.',
+	'inputbox-error-bad-type' => 'Këscht fir anzeginn vum Typ "$1" net erkannt.
+Gitt w.e.g. "create", "comment", "search", "search2" oder "fulltext" un.',
 	'tryexact' => 'Versicht et matt der preziser Sich:',
 	'searchfulltext' => 'Am ganzen Text sichen',
 	'createarticle' => 'Säit uleeën',
+	'inputbox-ns-main' => 'Haapt',
 );
 
 /** Lingua Franca Nova (Lingua Franca Nova)
@@ -910,6 +1080,7 @@
 );
 
 /** Limburgish (Limburgs)
+ * @author Aelske
  * @author Matthias
  * @author Ooswesthoesbes
  */
@@ -919,8 +1090,9 @@
 	'inputbox-error-bad-type' => 'Inputbox-type "$1" neet herkend. 
 Gebroek "create", "comment", "search", "search2" óf "fulltext".',
 	'tryexact' => 'Perbeer exacte euvereinkoms',
-	'searchfulltext' => 'Zeuk dèr volledige tèks',
-	'createarticle' => "Maak 'ne pazjena aan",
+	'searchfulltext' => 'Zeuk de volledige teks',
+	'createarticle' => "Maak 'n pagina aan",
+	'inputbox-ns-main' => 'Houfnaamruumdje',
 );
 
 /** Lingala (Lingála)
@@ -946,11 +1118,20 @@
 	'createarticle' => 'Kurti straipsnį',
 );
 
+/** Latgalian (Latgaļu)
+ * @author Dark Eagle
+ */
+$messages['ltg'] = array(
+	'createarticle' => 'Sataiseit rakstīņu',
+);
+
 /** Latvian (Latviešu)
+ * @author Dark Eagle
  * @author Xil
  * @author Yyy
  */
 $messages['lv'] = array(
+	'inputbox-desc' => 'Atļaut iekļaut iepriekš noteiktās HTML formas',
 	'inputbox-error-no-type' => 'Tu neesi norādījis ievades lauka tipu',
 	'inputbox-error-bad-type' => 'Ievades lauka tips "$1" nav atpazīts.
 Lūdzu norādi "create", "comment", "search", "search2" vai "fulltext".',
@@ -959,7 +1140,7 @@
 	'createarticle' => 'Izveidot lapu',
 );
 
-/** Classical Chinese (文言) */
+/** Literary Chinese (文言) */
 $messages['lzh'] = array(
 	'inputbox-error-no-type' => '汝未定輸入盒之類也。',
 	'inputbox-error-bad-type' => '輸入盒之類"$1"無認耳。指"create"、"comment"、"search"或"search2"之。',
@@ -969,45 +1150,62 @@
 );
 
 /** Macedonian (Македонски)
+ * @author Bjankuloski06
  * @author Brest
  * @author Misos
  */
 $messages['mk'] = array(
-	'inputbox-desc' => 'Овозможува вклучување на предефинирани HTML форми',
-	'inputbox-error-no-type' => 'Немате наведено тип на поле за внес кое сакате да го креирате.',
+	'inputbox-desc' => 'Овозможува вклучување на предодредени HTML-форми',
+	'inputbox-error-no-type' => 'Немате наведено тип на поле за внос кое сакате да го создадете.',
 	'inputbox-error-bad-type' => 'Типот на полето за внес "$1" не е познат.
 Наведете еден од следниве "create", "comment", "search", "search2" или "fulltext".',
 	'tryexact' => 'Обиди се точно',
 	'searchfulltext' => 'Барај низ целиот текст',
-	'createarticle' => 'Создади страница',
+	'createarticle' => 'Создај страница',
+	'inputbox-ns-main' => 'Главна',
 );
 
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'inputbox-desc' => 'നിര്‍‌വചിക്കപ്പെട്ടു വെച്ചിരിക്കുന്ന HTML ഫോമുകള്‍ ഉള്‍പ്പെടുത്താന്‍ അനുവദിക്കുക',
-	'inputbox-error-no-type' => 'സൃഷ്ടിക്കേണ്ട ഇന്‍‌പുട്ട് ബോക്സിന്റെ തരം നിഷ്കര്‍ഷിച്ചിട്ടില്ല',
-	'inputbox-error-bad-type' => '"$1" എന്ന ഇന്‍പുട്ട് ബോക്സ് തരം തിരിച്ചറിഞ്ഞില്ല.
-ദയവു ചെയ്ത് "create", "comment", "search", "search2" ഇവയിലൊന്നു നിഷ്കര്‍ഷിക്കുക',
-	'tryexact' => 'കൃത്യമായി യോജിക്കുന്ന ഫലങ്ങള്‍ ഉണ്ടോയെന്നു പരിശോധിക്കുക',
-	'searchfulltext' => 'ടെക്സ്റ്റ് മൊത്തമായി തിരയുക',
-	'createarticle' => 'താള്‍ സൃഷ്ടിക്കുക',
+	'inputbox-desc' => 'നിർവ്വചിക്കപ്പെട്ടു വെച്ചിരിക്കുന്ന HTML ഫോമുകൾ ഉൾപ്പെടുത്താൻ അനുവദിക്കുക',
+	'inputbox-error-no-type' => 'സൃഷ്ടിക്കേണ്ട ഇൻപുട്ട് ബോക്സിന്റെ തരം നിഷ്കർഷിച്ചിട്ടില്ല',
+	'inputbox-error-bad-type' => 'ഇൻപുട്ട് ബോക്സ് "$1" ഏതു തരം എന്നു തിരിച്ചറിയാൻ കഴിഞ്ഞില്ല.
+ദയവു ചെയ്ത് "create", "comment", "search", "search2" ഇവയിലൊന്നു നിഷ്കർഷിക്കുക',
+	'tryexact' => 'കൃത്യമായി യോജിക്കുന്ന ഫലങ്ങൾ ഉണ്ടോയെന്നു പരിശോധിക്കുക',
+	'searchfulltext' => 'എഴുത്ത് മൊത്തമായി തിരയുക',
+	'createarticle' => 'താൾ സൃഷ്ടിക്കുക',
+	'inputbox-ns-main' => 'മുഖ്യം',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'createarticle' => 'Хуудас үүсгэх',
+);
+
 /** Marathi (मराठी)
  * @author Kaustubh
+ * @author Mahitgar
+ * @author Rahuldeshmukh101
+ * @author V.narsikar
  */
 $messages['mr'] = array(
 	'inputbox-desc' => 'पूर्वी लिहिलेले HTML अर्ज वापरण्याची परवानगी द्या',
 	'inputbox-error-no-type' => 'तुम्ही कुठल्या प्रकारची पृष्ठपेटी तयार करायची ते स्पष्ट केलेले नाही.',
-	'inputbox-error-bad-type' => 'तुम्ही दिलेला पृष्ठपेटीचा "$1" हा प्रकार योग्य नाही. कृपया "create", "comment", "search" किंवा "search2" यातील एक निवडा.',
+	'inputbox-error-bad-type' => 'तुम्ही दिलेला पृष्ठपेटीचा "$1" हा प्रकार ओळखीचा नाही. 
+कृपया "create", "comment", "search" किंवा "search2"  किंवा "fulltext".यातील एक निवडा.',
 	'tryexact' => 'दिलेलेच शब्द शोधा',
 	'searchfulltext' => 'पूर्ण मजकूर शोधा',
 	'createarticle' => 'लेख बनवा',
+	'inputbox-ns-main' => 'मुख्य',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
  * @author Aviator
  */
 $messages['ms'] = array(
@@ -1017,6 +1215,7 @@
 	'tryexact' => 'Cuba padanan tepat',
 	'searchfulltext' => 'Cari dalam teks penuh',
 	'createarticle' => 'Cipta laman',
+	'inputbox-ns-main' => 'Utama',
 );
 
 /** Maltese (Malti)
@@ -1026,17 +1225,26 @@
 $messages['mt'] = array(
 	'inputbox-desc' => "Tħalli formuli ta' HTML predefiniti",
 	'inputbox-error-no-type' => "Inti ma speċifikajtx it-tip ta' ''input box'' li trid toħloq.",
-	'inputbox-error-bad-type' => '"$1" mhuwiex tip magħruf ta\' \'\'inputbox\'\'. Jekk jogħġbok speċifika fost "create", "comment", "search" u "search2".',
+	'inputbox-error-bad-type' => '"$1" mhuwiex tip magħruf ta\' \'\'inputbox\'\'.
+Jekk jogħġbok speċifika fost "create", "comment", "search", "search2" jew "fulltext".',
 	'tryexact' => 'Fittex korrispondenza eżatta',
 	'searchfulltext' => 'Fittex fit-test',
 	'createarticle' => 'Oħloq paġna',
 );
 
-/** Mazanderani (مَزِروني)
+/** Erzya (Эрзянь)
+ * @author Botuzhaleny-sodamo
+ */
+$messages['myv'] = array(
+	'createarticle' => 'Шкамс лопа',
+);
+
+/** Mazanderani (مازِرونی)
  * @author Spacebirdy
+ * @author محک
  */
 $messages['mzn'] = array(
-	'createarticle' => 'ولگ بایتن',
+	'createarticle' => 'صفحه بَیتن',
 );
 
 /** Nahuatl (Nāhuatl)
@@ -1055,10 +1263,25 @@
  * @author SabineCretella
  */
 $messages['nap'] = array(
-	'searchfulltext' => 'Ascià dint''o testo',
+	'searchfulltext' => "Ascià dint''o testo",
 	'createarticle' => 'Cria voce',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author EivindJ
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'inputbox-desc' => 'Tillater inkludering av forhåndsdefinerte HTML-skjemaer',
+	'inputbox-error-no-type' => 'Du har ikke angitt hva slags inputboks du vil lage.',
+	'inputbox-error-bad-type' => 'Inputboks av typen «$1» gjenkjennes ikke.
+Vennligst velg «create», «comment», «search», «search2» eller «fulltext».',
+	'tryexact' => 'Prøv nøyaktig treff',
+	'searchfulltext' => 'Søk full tekst',
+	'createarticle' => 'Opprett side',
+	'inputbox-ns-main' => 'Hoved',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -1072,6 +1295,15 @@
 	'createarticle' => 'Siet anleggen',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'tryexact' => 'Naor sekuur zeuken',
+	'searchfulltext' => 'De hele tekste deurzeuken',
+	'createarticle' => 'Nieje pagina anmaken',
+);
+
 /** Nepali (नेपाली) */
 $messages['ne'] = array(
 	'createarticle' => 'लेख थाल्नुहोस्',
@@ -1089,7 +1321,8 @@
 Gebruik "create", "comment", "search", "search2" of "fulltext".',
 	'tryexact' => 'Zoeken op exacte overeenkomst',
 	'searchfulltext' => 'Volledige tekst doorzoeken',
-	'createarticle' => 'Nieuwe pagina maken',
+	'createarticle' => 'Pagina aanmaken',
+	'inputbox-ns-main' => 'Hoofdnaamruimte',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
@@ -1106,19 +1339,6 @@
 	'createarticle' => 'Lag side',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'inputbox-desc' => 'Tillater inkludering av forhåndsdefinerte HTML-skjemaer',
-	'inputbox-error-no-type' => 'Du har ikke angitt hva slags inputboks du vil lage.',
-	'inputbox-error-bad-type' => 'Inputboks av typen «$1» gjenkjennes ikke.
-Vennligst velg «create», «comment», «search», «search2» eller «fulltext».',
-	'tryexact' => 'Prøv nøyaktig treff',
-	'searchfulltext' => 'Søk full tekst',
-	'createarticle' => 'Opprett side',
-);
-
 /** Novial (Novial)
  * @author Malafaya
  */
@@ -1138,14 +1358,29 @@
  */
 $messages['oc'] = array(
 	'inputbox-desc' => 'Permet l’inclusion de formularis HTML predefinits',
-	'inputbox-error-no-type' => 'Avètz pas precisat lo tipe de la bóstia de dintrada de crear.',
+	'inputbox-error-no-type' => "Avètz pas precisat lo tipe de la bóstia d'entrada de crear.",
 	'inputbox-error-bad-type' => "Tipe de bóstia d'entrada « $1 » pas reconeguda.
 Indicatz una opcion demest ''create'', ''comment'', ''search'' o ''searche2'' o « fulltext ».",
 	'tryexact' => 'Ensajatz la correspondéncia exacta',
-	'searchfulltext' => 'Recèrca en tèxt integral',
+	'searchfulltext' => 'Recèrca en tèxte integral',
 	'createarticle' => 'Crear l’article',
 );
 
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Odisha1
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'inputbox-desc' => 'ଆଗରୁ ତିଆରି HTML ରୂପରେ ଆହରଣକୁ ଅନୁମୋଦନ ଦେବା',
+	'inputbox-error-no-type' => 'ଆପଣ ନିବେଶ ଘରେ ଦେବାକୁ ଥିବା ଲେଖାର ପ୍ରକାର ଏଯାଏଁ ଦେଇନାହାନ୍ତି ।',
+	'inputbox-error-bad-type' => 'ନିବେଶ ଘର ପ୍ରକାର "$1" ବାରିପାରିଲୁ ନାହିଁ ।
+ଦୟାକରି "create", "comment", "search", "search2" ଅବା "fulltext" ସ୍ଥିର କରନ୍ତୁ ।',
+	'tryexact' => 'ପୁରାପୁରି ମେଳ କରିବାକୁ ଚେଷ୍ଟା କରିବେ',
+	'searchfulltext' => 'ପୁରା ଲେଖା ଖୋଜିବେ',
+	'createarticle' => 'ନୂଆ ପୃଷ୍ଠାଟିଏ ତିଆରିବେ',
+	'inputbox-ns-main' => 'ମୁଖ୍ୟ',
+);
+
 /** Pangasinan (Pangasinan) */
 $messages['pag'] = array(
 	'createarticle' => 'Mangawa na artikulo',
@@ -1156,6 +1391,13 @@
 	'createarticle' => 'Gawang artikulu',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'inputbox-ns-main' => 'Bledder',
+);
+
 /** Polish (Polski)
  * @author Derbeth
  * @author Sp5uhe
@@ -1168,19 +1410,38 @@
 	'tryexact' => 'Użyj dokładnego wyrażenia',
 	'searchfulltext' => 'Szukaj w całych tekstach',
 	'createarticle' => 'Utwórz artykuł',
+	'inputbox-ns-main' => 'Główna',
 );
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
+	'inputbox-desc' => "A përmëtt l'anseriment ëd forme HTML predefinìe",
 	'inputbox-error-no-type' => "A l'ha nen dit che sòrt ëd quàder ëd caria dat ch'a debia fesse.",
-	'inputbox-error-bad-type' => 'La sòrt ëd quàder "$1" a l\'é nen conossùa. Për piasì, ch\'a sërna antra "create", "comment", "search" ò pura "search2".',
+	'inputbox-error-bad-type' => 'La sòrt ëd quàder "$1" a l\'é nen conossùa. 
+Për piasì, ch\'a sërna antra "create", "comment", "search", "search2" o "fulltext".',
 	'tryexact' => 'Sërca che a sia pròpe parej',
 	'searchfulltext' => 'Sërca an tut ël test',
 	'createarticle' => "Crea n'artìcol",
+	'inputbox-ns-main' => 'Prinsipal',
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'inputbox-desc' => 'ایچ ٹی ایم ایل پریڈیفائینڈ فورمز نوں رلان دی اجازت دیو۔',
+	'inputbox-error-no-type' => 'تساں انپٹ ڈبے بنان دی ٹائپ نئیں دسی۔',
+	'inputbox-error-bad-type' => 'انپٹ ڈبہ ٹائپ "$1" نئیں پچھانیا گیا۔
+مہربانی کرکے "create", "comment", "search", "search2"  "fulltext" بارے دسو۔',
+	'tryexact' => 'ٹھیک جوڑ رلاؤ',
+	'searchfulltext' => 'پوری لکھت لبو',
+	'createarticle' => 'صفہ بناؤ',
+	'inputbox-ns-main' => 'مین',
+);
+
 /** Pontic (Ποντιακά)
  * @author Sinopeus
  */
@@ -1196,24 +1457,28 @@
 	'tryexact' => 'کټ مټ انډول يې وآزمويه',
 	'searchfulltext' => 'بشپړ متن پلټل',
 	'createarticle' => 'نوې ليکنه پيلول',
+	'inputbox-ns-main' => 'آرنی',
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
 	'inputbox-desc' => 'Permite a inclusão de formulários HTML pré-definidos.',
-	'inputbox-error-no-type' => 'Você não especificou o tipo de box de inserção a ser criado.',
+	'inputbox-error-no-type' => 'Não especificou o tipo de caixa de edição a ser criado.',
 	'inputbox-error-bad-type' => 'O tipo de caixa de introdução de dados "$1" não foi reconhecido.
 Por favor, especifique "create", "comment", "search", "search2" ou "fulltext".',
 	'tryexact' => 'Tentar a exata expressão',
 	'searchfulltext' => 'Pesquisar no texto completo',
 	'createarticle' => 'Criar página',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Brunoy Anastasiya Seryozhenko
  * @author Eduardo.mps
+ * @author MetalBrasil
  */
 $messages['pt-br'] = array(
 	'inputbox-desc' => 'Permite a inclusão de formulários definidos de HTML',
@@ -1223,6 +1488,7 @@
 	'tryexact' => 'Tentar a expressão exata',
 	'searchfulltext' => 'Pesquisar em todo o texto.',
 	'createarticle' => 'Criar página.',
+	'inputbox-ns-main' => 'Principal',
 );
 
 /** Quechua (Runa Simi)
@@ -1235,31 +1501,36 @@
 );
 
 /** Romanian (Română)
+ * @author AdiJapan
  * @author Emily
  * @author Firilacroco
  * @author KlaudiuMihaila
  * @author Mihai
+ * @author Minisarm
  */
 $messages['ro'] = array(
 	'inputbox-desc' => 'Permite includerea formelor HTML predefinite',
-	'inputbox-error-no-type' => 'Nu ai specificat ce tip de cutie intrare să fie creată.',
-	'inputbox-error-bad-type' => 'Tipul de cutie intrare "$1" nu este recunoscut.
-Te rog să specifici parametrii "create", "comment", "search", "search2" sau "fulltext".',
+	'inputbox-error-no-type' => 'Nu ați specificat ce tip de cutie intrare să fie creată.',
+	'inputbox-error-bad-type' => 'Tipul de cutie intrare „$1” nu este recunoscut.
+Vă rugăm să specificați parametrii „create”, „comment”, „search”, „search2” sau „fulltext”.',
 	'tryexact' => 'Încearcă varianta exactă',
 	'searchfulltext' => 'Caută textul întreg',
-	'createarticle' => 'Crează articol',
+	'createarticle' => 'Creează pagină',
+	'inputbox-ns-main' => 'Principal',
 );
 
-/** Aromanian (Armãneashce) */
-$messages['roa-rup'] = array(
-	'createarticle' => 'Adrats articlu',
-);
-
 /** Tarandíne (Tarandíne)
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
+	'inputbox-desc' => "Permette l'inglusione de module predefinite de HTML",
+	'inputbox-error-no-type' => "Tu non g'è specificate 'u tipe de scatele de input da ccrejà.",
+	'inputbox-error-bad-type' => '\'U tipe d\'a scatele de input "$1" non g\'è corrette.
+Pe piacere mitte "create", "comment", "search", "search2" o "fulltext".',
+	'tryexact' => "Pruève cu 'u combronde satte-satte",
+	'searchfulltext' => "Cirche jndr'à tutte 'u teste",
 	'createarticle' => "Ccreje 'a vôsce",
+	'inputbox-ns-main' => 'Prengepàle',
 );
 
 /** Russian (Русский)
@@ -1273,9 +1544,36 @@
 	'tryexact' => 'Строгий поиск',
 	'searchfulltext' => 'Полнотекстовый поиск',
 	'createarticle' => 'Создать статью',
+	'inputbox-ns-main' => 'Главная',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'inputbox-desc' => 'Доволює вкладати вызначены HTML формуларї.',
+	'inputbox-error-no-type' => 'Не задали сьте тіп формуларёвого поля про створїня.',
+	'inputbox-error-bad-type' => 'Нерозпознаный тіп поля „$1“.
+Зазначте єдну з можностей: „create“, „comment“, „search“, „search2“ або „fulltext“.',
+	'tryexact' => 'Спробуйте точне гляданя',
+	'searchfulltext' => 'Повнотекстове гляданя',
+	'createarticle' => 'Створити статю',
+	'inputbox-ns-main' => 'Головна',
+);
+
+/** Aromanian (Armãneashce) */
+$messages['rup'] = array(
+	'createarticle' => 'Adrats articlu',
+);
+
+/** Sanskrit (संस्कृतम्)
+ * @author Ansumang
+ */
+$messages['sa'] = array(
+	'inputbox-ns-main' => 'मुख्य',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
@@ -1285,6 +1583,7 @@
 	'tryexact' => 'Чопчу булуу',
 	'searchfulltext' => 'Тиэкиһин барытын көрдөөһүн',
 	'createarticle' => 'Ыстатыйаны айарга',
+	'inputbox-ns-main' => 'Сүрүн',
 );
 
 /** Sardinian (Sardu)
@@ -1295,6 +1594,7 @@
 );
 
 /** Sicilian (Sicilianu)
+ * @author Aushulz
  * @author Santu
  */
 $messages['scn'] = array(
@@ -1304,6 +1604,7 @@
 	'tryexact' => 'Cerca currispunnenza giusta',
 	'searchfulltext' => 'Circata ntô testu',
 	'createarticle' => 'Cria vuci',
+	'inputbox-ns-main' => 'Principali',
 );
 
 /** Sindhi (سنڌي) */
@@ -1316,18 +1617,28 @@
 	'createarticle' => 'Sü soura',
 );
 
+/** Samogitian (Žemaitėška)
+ * @author Hugo.arg
+ */
+$messages['sgs'] = array(
+	'searchfulltext' => 'Ėiškuotė pėlna teksta',
+);
+
 /** Sinhala (සිංහල)
  * @author Asiri wiki
+ * @author Budhajeewa
  * @author නන්දිමිතුරු
+ * @author බිඟුවා
  */
 $messages['si'] = array(
 	'inputbox-desc' => 'පූර්වාර්ථදැක්වූණු HTML ආකාරයන් අඩංගුකිරීමට ඉඩදෙන්න',
 	'inputbox-error-no-type' => 'තැනිය යුතු ප්‍රදාන කොටුවේ මාදිලිය ඔබ විසින් නිර්දේශ කොට දක්වා නොමැත.',
-	'inputbox-error-bad-type' => 'ප්‍රදාන කොටු මාදිලිය "$1" හඳුනාගත නොහැක.
-කරුණාකර "තැනීම", "පරිකථනය", "ගවේෂණය" හෝ "ගවේෂණය2" නිර්දේශ කරන්න .',
+	'inputbox-error-bad-type' => '"$1" ඇතුලත් කෙරුම් කොටු වර්ගය හඳුනාගත නොහැක.
+"create", "comment", "search", "search2" හෝ "fulltext" බව සඳහන් කරන්න.',
 	'tryexact' => 'තථ්‍ය ගැලපීම  වෑයම් කරන්න',
 	'searchfulltext' => 'සම්පූර්ණ පෙළ ගවේෂණය කරන්න',
 	'createarticle' => 'පිටුවක් සාදන්න',
+	'inputbox-ns-main' => 'ප්‍රධාන',
 );
 
 /** Slovak (Slovenčina)
@@ -1343,39 +1654,63 @@
 	'createarticle' => 'Vytvoriť stránku',
 );
 
-/** Slovenian (Slovenščina) */
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
 $messages['sl'] = array(
-	'tryexact' => 'Poskusite z natančnim zadetkom',
+	'inputbox-desc' => 'Omogoča vključitev vnaprej določenih obrazcev HTML',
+	'inputbox-error-no-type' => 'Niste določili vrste vnosnega polja za ustvarjanje.',
+	'inputbox-error-bad-type' => 'Vrsta vnosnega polja »$1« ni prepoznana.
+Prosimo, določite »create«, »comment«, »search«, »search2« ali »fulltext«.',
+	'tryexact' => 'Poskusite z natančnim ujemanjem',
 	'searchfulltext' => 'Preišči vse besedilo',
 	'createarticle' => 'Ustvarite stran',
+	'inputbox-ns-main' => 'Osnovno',
 );
 
 /** Albanian (Shqip)
  * @author Dori
+ * @author Olsi
  */
 $messages['sq'] = array(
+	'inputbox-desc' => 'Lejoni futjen e formave të paracaktuara HTML',
+	'inputbox-error-no-type' => 'Ju nuk keni specifikuar llojin e kutisë për ta krijuar.',
+	'inputbox-error-bad-type' => 'Lloji i kutisë "$1" nuk njihet.
+Ju lutemi specifikoni "create", "comment", "search", "search2" ose "fulltext".',
 	'tryexact' => 'Kërko përputhje të plotë',
 	'searchfulltext' => 'Kërko tekstin e plotë',
 	'createarticle' => 'Krijo artikull',
+	'inputbox-ns-main' => 'Kryesor',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
 	'inputbox-desc' => 'Омогући укључивање претходно дефинисаних HTML форми.',
 	'inputbox-error-no-type' => 'Ниси одредио тип уносне кутије да би је направио.',
-	'inputbox-error-bad-type' => 'Уносна кутија типа "$1" није препозната. Одреди "create", "comment", "search" или "search2".',
+	'inputbox-error-bad-type' => 'Тип "$1" кутијице за унос података је непознат.
+Молимо вас да га промените на "create", "comment", "search", "search2" или "fulltext".',
 	'tryexact' => 'Покушај тачно',
 	'searchfulltext' => 'Претражи цео текст',
 	'createarticle' => 'Направи чланак',
+	'inputbox-ns-main' => 'Главни',
 );
 
-/** latinica (latinica) */
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
 $messages['sr-el'] = array(
+	'inputbox-desc' => 'Omogući uključivanje prethodno definisanih HTML formi.',
+	'inputbox-error-no-type' => 'Nisi odredio tip unosne kutije da bi je napravio.',
+	'inputbox-error-bad-type' => 'Tip "$1" kutijice za unos podataka je nepoznat.
+Molimo vas da ga promenite na "create", "comment", "search", "search2" ili "fulltext".',
 	'tryexact' => 'Pokušaj tačno',
 	'searchfulltext' => 'Pretraži ceo tekst',
 	'createarticle' => 'Napravi članak',
+	'inputbox-ns-main' => 'Glavni',
 );
 
 /** Swati (SiSwati)
@@ -1409,6 +1744,7 @@
 );
 
 /** Swedish (Svenska)
+ * @author Boivie
  * @author Lejonel
  * @author Najami
  */
@@ -1420,8 +1756,17 @@
 	'tryexact' => 'Försök hitta exakt matchning',
 	'searchfulltext' => 'Fulltextsökning',
 	'createarticle' => 'Skapa sida',
+	'inputbox-ns-main' => 'Huvud',
 );
 
+/** Swahili (Kiswahili)
+ * @author Lloffiwr
+ */
+$messages['sw'] = array(
+	'createarticle' => 'Anzisha ukurasa',
+	'inputbox-ns-main' => 'Kuu',
+);
+
 /** Silesian (Ślůnski)
  * @author Ozi64
  */
@@ -1429,19 +1774,33 @@
 	'createarticle' => 'Naškryflej artikel',
 );
 
+/** Tamil (தமிழ்)
+ * @author Kanags
+ * @author Shanmugamp7
+ * @author TRYPPN
+ */
+$messages['ta'] = array(
+	'createarticle' => 'பக்கத்தை உருவாக்கவும்',
+	'inputbox-ns-main' => 'முதன்மை',
+);
+
 /** Telugu (తెలుగు)
  * @author Chaduvari
+ * @author Kiranmayee
  * @author Veeven
  */
 $messages['te'] = array(
 	'inputbox-desc' => 'ముందే నిర్వచించబడిన HTML ఫారములను చేర్చనివ్వు',
 	'inputbox-error-no-type' => 'ఏ రకమైన ఇన్‌పుట్ పెట్టెని తయారుచేయాలో మీరు చెప్పలేదు.',
+	'inputbox-error-bad-type' => 'ప్రవేశికము పెట్టె యొక్క బాపతు "$1"ను గుర్తించలేదు .
+దయచేసి "create", "comment", "search", "search2" లేదా "fulltext" లను పేర్కొనండి.',
 	'tryexact' => 'ఖచ్చితమైన పోలిక కొరకు ప్రయత్నించు',
 	'searchfulltext' => 'పూర్తి పాఠ్యంలో వెతుకు',
 	'createarticle' => 'వ్యాసాన్ని సృష్టించు',
+	'inputbox-ns-main' => 'ప్రధాన',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -1453,6 +1812,17 @@
 	'createarticle' => 'Эҷоди мақола',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'inputbox-desc' => "Içozai istifoda az formhoi HTML az peş ta'rifşudaro medihad",
+	'inputbox-error-no-type' => "Nav'i ça'bai vurudiji eçodşavandaro muşaxxas nakardaed.",
+	'tryexact' => 'Mutobiqati aniqro bisançed',
+	'searchfulltext' => 'Çustuçūi matni purra',
+	'createarticle' => 'Eçodi maqola',
+);
+
 /** Thai (ไทย) */
 $messages['th'] = array(
 	'tryexact' => 'ค้นหาตรงทุกตัวอักษร',
@@ -1460,6 +1830,19 @@
 	'createarticle' => 'สร้างเนื้อหา',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'inputbox-desc' => 'Deslapky kesgitlenen HTML formlarynyň goşulmagyna rugsat berýär',
+	'inputbox-error-no-type' => 'Dörediljek giriş gutusynyň tipini görkezmediňiz.',
+	'inputbox-error-bad-type' => 'Giriş gutusynyň tipi "$1" ykrar edilmedi.
+"create", "comment", "search", "search2" ýa-da "fulltext" diýip görkeziň.',
+	'tryexact' => 'Takyk gabat gelýänini syna',
+	'searchfulltext' => 'Tutuş teksti gözle',
+	'createarticle' => 'Sahypa döret',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -1478,12 +1861,13 @@
 	'createarticle' => 'Kwala mokwalo',
 );
 
-/** Tonga (faka-Tonga) */
+/** Tongan (lea faka-Tonga) */
 $messages['to'] = array(
 	'createarticle' => 'Fakatupu ʻa e kupu',
 );
 
 /** Turkish (Türkçe)
+ * @author Emperyan
  * @author Erkan Yilmaz
  * @author Joseph
  * @author Srhat
@@ -1496,6 +1880,7 @@
 	'tryexact' => 'Tam eşleşme dene',
 	'searchfulltext' => 'Tüm metni ara',
 	'createarticle' => 'Sayfayı oluştur',
+	'inputbox-ns-main' => 'Ana',
 );
 
 /** Tsonga (Xitsonga)
@@ -1508,6 +1893,7 @@
 /** Ukrainian (Українська)
  * @author AS
  * @author Ahonc
+ * @author Dim Grits
  */
 $messages['uk'] = array(
 	'inputbox-desc' => 'Дозволяє включати заздалегідь визначені HTML-форми',
@@ -1517,6 +1903,7 @@
 	'tryexact' => 'Строгий пошук',
 	'searchfulltext' => 'Повнотекстовий пошук',
 	'createarticle' => 'Створити статтю',
+	'inputbox-ns-main' => 'Головна',
 );
 
 /** Urdu (اردو) */
@@ -1543,6 +1930,16 @@
 	'createarticle' => 'Crea pagina',
 );
 
+/** Veps (Vepsän kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'tryexact' => "Lat'kat tehta tarkoiged ecind",
+	'searchfulltext' => 'Ectä täudes tekstas',
+	'createarticle' => "Säta lehtpol'",
+	'inputbox-ns-main' => 'Pänimiavaruz',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  */
@@ -1553,6 +1950,7 @@
 	'tryexact' => 'Thử tìm đoạn văn khớp chính xác với từ khóa',
 	'searchfulltext' => 'Tìm toàn văn',
 	'createarticle' => 'Viết bài mới',
+	'inputbox-ns-main' => 'Chính',
 );
 
 /** Volapük (Volapük)
@@ -1569,6 +1967,10 @@
  * @author Võrok
  */
 $messages['vro'] = array(
+	'inputbox-desc' => 'Lupa pruukiq ette ärqmäärätüid HTML-vormõ.',
+	'inputbox-error-no-type' => 'Sa olõ-õi määränüq sisseandmisvälä tüüpi.',
+	'inputbox-error-bad-type' => 'Sisseandmisvälä tüüp ”$1” ei kõlbaq.
+Tüüp piät olõma create, comment, search, search2 vai fulltext.',
 	'tryexact' => 'Täpsä otsminõ',
 	'searchfulltext' => 'Otsiq terveq tekst',
 	'createarticle' => 'Luuq leht',
@@ -1584,7 +1986,7 @@
  */
 $messages['wo'] = array(
 	'inputbox-error-no-type' => 'Leeraloo ban xeetu boyotu duggit nga bëgga sos.',
-	'inputbox-error-bad-type' => '"$1" du xeetu boyotu duggit bu ñu xam. Tànnal benn ci yii "create", "comment", "seach" walla "search2"',
+	'inputbox-error-bad-type' => '↓"$1" du xeetu boyotu duggiit bees xam. Tànnal benn ci yii "create", "comment", "seach" walla "search2"',
 	'tryexact' => 'Seet wi mu yamal',
 	'searchfulltext' => 'Ceet ci mbind mi',
 	'createarticle' => 'Sos jukki bi',
@@ -1596,6 +1998,18 @@
 	'createarticle' => '建立新文章',
 );
 
+/** Kalmyk (Хальмг)
+ * @author Huuchin
+ */
+$messages['xal'] = array(
+	'inputbox-error-no-type' => 'Та бүтәлдг оруллһна теегин янз заав уга.',
+	'inputbox-error-bad-type' => '«$1» буру оруллһна теегин янз болҗана.
+Буйн болтха, нег йоста янз автн: «create», «comment», «search», «search2» аль «fulltext».',
+	'tryexact' => 'Дарата хәәлһн',
+	'searchfulltext' => 'Күцц бичг хәәлһн',
+	'createarticle' => 'Халхиг бүтәх',
+);
+
 /** Xhosa (isiXhosa) */
 $messages['xh'] = array(
 	'createarticle' => 'Bhala Ibali',
@@ -1608,9 +2022,17 @@
 $messages['yi'] = array(
 	'searchfulltext' => 'זוך אין אלע בלעטער',
 	'createarticle' => 'באשאפט ארטיקל',
+	'inputbox-ns-main' => 'הויפט',
 );
 
-/** Yue (粵語) */
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'createarticle' => 'Dá ojúewé',
+);
+
+/** Cantonese (粵語) */
 $messages['yue'] = array(
 	'inputbox-desc' => '容許包含預先設定嘅HTML表格',
 	'inputbox-error-no-type' => '你重未指定開輸入盒嘅指定類型。',
@@ -1620,26 +2042,47 @@
 	'createarticle' => '建立文章',
 );
 
-/** Simplified Chinese (‪中文(简体)‬) */
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Liangent
+ * @author PhiLiP
+ * @author Wmr89502270
+ * @author Xiaomingyan
+ */
 $messages['zh-hans'] = array(
-	'inputbox-desc' => '容许包含预先设置的HTML表格',
-	'inputbox-error-no-type' => '您尚未指定创建输入箱的指定类型。',
-	'inputbox-error-bad-type' => '输入箱类型"$1"无法辨识。请指定"create"、"comment"、"search"或"search2"。',
+	'inputbox-desc' => '允许包含预先设置的HTML表格',
+	'inputbox-error-no-type' => '您没有指定所创建输入框的类型。',
+	'inputbox-error-bad-type' => '输入框类型“$1”无法识别。
+请指定“create”、“comment”、“search”、“search2”或“fulltext”。',
 	'tryexact' => '尝试精确匹配',
-	'searchfulltext' => '全文搜索',
-	'createarticle' => '建立文章',
+	'searchfulltext' => '搜索全文',
+	'createarticle' => '创建页面',
+	'inputbox-ns-main' => '主',
 );
 
-/** Traditional Chinese (‪中文(繁體)‬) */
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Anakmalaysia
+ * @author Gaoxuewei
+ * @author Liangent
+ * @author Mark85296341
+ */
 $messages['zh-hant'] = array(
-	'inputbox-desc' => '容許包含預先設定的HTML表格',
-	'inputbox-error-no-type' => '您尚未指定創建輸入箱的指定類型。',
-	'inputbox-error-bad-type' => '輸入箱類型"$1"無法辨識。請指定"create"、"comment"、"search"或"search2"。',
+	'inputbox-desc' => '容許包含預先設定的 HTML 表格',
+	'inputbox-error-no-type' => '您尚未指定建立輸入框的指定類型。',
+	'inputbox-error-bad-type' => '輸入框類型「$1」無法識別。
+請指定「create」、「comment」、「search」、「search2」或「fulltext」。',
 	'tryexact' => '嘗試精確匹配',
 	'searchfulltext' => '全文檢索',
 	'createarticle' => '建立文章',
+	'inputbox-ns-main' => '主',
 );
 
+/** Chinese (Taiwan) (‪中文(台灣)‬)
+ * @author Ffaarr
+ */
+$messages['zh-tw'] = array(
+	'createarticle' => '創建頁面',
+);
+
 /** Zulu (isiZulu) */
 $messages['zu'] = array(
 	'searchfulltext' => 'Sesha ukubhala konke',

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/InputBox/InputBox.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -17,7 +17,7 @@
  *	Cleaned up by Trevor Parscal <tparscal at wikimedia.org>
  * @copyright Public domain
  * @license Public domain
- * @version 0.1.1
+ * @version 0.1.4
  */
 
 // Check environment
@@ -30,11 +30,11 @@
 
 // Credits
 $wgExtensionCredits['parserhook'][] = array(
+	'path'           => __FILE__,
 	'name'           => 'InputBox',
-	'author'         => array( 'Erik Moeller', 'Leonardo Pimenta', 'Rob Church', 'Trevor Parscal' ),
-	'svn-date'       => '$LastChangedDate: 2008-10-30 00:59:03 +0100 (Thu, 30 Oct 2008) $',
-	'svn-revision'   => '$LastChangedRevision: 42791 $',
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:InputBox',
+	'author'         => array( 'Erik Moeller', 'Leonardo Pimenta', 'Rob Church', 'Trevor Parscal', 'DaSch' ),
+	'version'        => '0.1.4',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:InputBox',
 	'description'    => 'Allow inclusion of predefined HTML forms.',
 	'descriptionmsg' => 'inputbox-desc',
 );
@@ -50,10 +50,5 @@
 $wgAutoloadClasses['InputBox'] = $dir . 'InputBox.classes.php';
 
 // Register parser hook
-if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-	// Modern
-	$wgHooks['ParserFirstCallInit'][] = 'InputBoxHooks::register';
-} else {
-	// Legacy
-	$wgExtensionFunctions[] = array( 'InputBoxHooks', 'register' );
-}
+$wgHooks['ParserFirstCallInit'][] = 'InputBoxHooks::register';
+$wgHooks['MediaWikiPerformAction'][] = 'InputBoxHooks::onMediaWikiPerformAction';

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.alias.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,189 @@
+<?php
+/**
+ * Aliases for Special:Interwiki
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$specialPageAliases = array();
+
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'Interwiki' => array( 'Interwiki' ),
+);
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
+	'Interwiki' => array( 'إنترويكي' ),
+);
+
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'Interwiki' => array( 'إنترويكى' ),
+);
+
+/** Bulgarian (Български) */
+$specialPageAliases['bg'] = array(
+	'Interwiki' => array( 'Междууикита' ),
+);
+
+/** Breton (Brezhoneg) */
+$specialPageAliases['br'] = array(
+	'Interwiki' => array( 'Etrewiki' ),
+);
+
+/** Bosnian (Bosanski) */
+$specialPageAliases['bs'] = array(
+	'Interwiki' => array( 'Medjuwiki' ),
+);
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = array(
+	'Interwiki' => array( 'Intervikia_ligilo' ),
+);
+
+/** Spanish (Español) */
+$specialPageAliases['es'] = array(
+	'Interwiki' => array( 'Enlaces_interligüísticos' ),
+);
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = array(
+	'Interwiki' => array( 'میان‌ویکی' ),
+);
+
+/** Franco-Provençal (Arpetan) */
+$specialPageAliases['frp'] = array(
+	'Interwiki' => array( 'Entèrvouiqui' ),
+);
+
+/** Gagauz (Gagauz) */
+$specialPageAliases['gag'] = array(
+	'Interwiki' => array( 'İnterviki' ),
+);
+
+/** Galician (Galego) */
+$specialPageAliases['gl'] = array(
+	'Interwiki' => array( 'Interwikis' ),
+);
+
+/** Hebrew (עברית) */
+$specialPageAliases['he'] = array(
+	'Interwiki' => array( 'בינוויקי' ),
+);
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'Interwiki' => array( 'Entèwiki' ),
+);
+
+/** Hungarian (Magyar) */
+$specialPageAliases['hu'] = array(
+	'Interwiki' => array( 'Wikiközi_hivatkozások' ),
+);
+
+/** Indonesian (Bahasa Indonesia) */
+$specialPageAliases['id'] = array(
+	'Interwiki' => array( 'Interwiki' ),
+);
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = array(
+	'Interwiki' => array( 'インターウィキ' ),
+);
+
+/** Georgian (ქართული) */
+$specialPageAliases['ka'] = array(
+	'Interwiki' => array( 'ინტერვიკი' ),
+);
+
+/** Khmer (ភាសាខ្មែរ) */
+$specialPageAliases['km'] = array(
+	'Interwiki' => array( 'អន្តរវិគី' ),
+);
+
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'Interwiki' => array( '인터위키' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'Interwiki' => array( 'EngerWiki', 'Engerwiki' ),
+);
+
+/** Latin (Latina) */
+$specialPageAliases['la'] = array(
+	'Interwiki' => array( 'Intervici' ),
+);
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = array(
+	'Interwiki' => array( 'Interviki' ),
+);
+
+/** Macedonian (Македонски) */
+$specialPageAliases['mk'] = array(
+	'Interwiki' => array( 'Интервики' ),
+);
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'Interwiki' => array( 'അന്തർ‌വിക്കി' ),
+);
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = array(
+	'Interwiki' => array( 'आंतरविकि' ),
+);
+
+/** Portuguese (Português) */
+$specialPageAliases['pt'] = array(
+	'Interwiki' => array( 'Interwikis' ),
+);
+
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = array(
+	'Interwiki' => array( 'आंन्तरविकि' ),
+);
+
+/** Swahili (Kiswahili) */
+$specialPageAliases['sw'] = array(
+	'Interwiki' => array( 'Viungovyawiki' ),
+);
+
+/** Telugu (తెలుగు) */
+$specialPageAliases['te'] = array(
+	'Interwiki' => array( 'అంతర్వికీ' ),
+);
+
+/** Tagalog (Tagalog) */
+$specialPageAliases['tl'] = array(
+	'Interwiki' => array( 'Kawing-wiki' ),
+);
+
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = array(
+	'Interwiki' => array( 'İnterviki' ),
+);
+
+/** Tatar (Cyrillic script) (Татарча) */
+$specialPageAliases['tt-cyrl'] = array(
+	'Interwiki' => array( 'Интервики' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = array(
+	'Interwiki' => array( 'Liên_wiki' ),
+);
+
+/** Cantonese (粵語) */
+$specialPageAliases['yue'] = array(
+	'Interwiki' => array( '其他維基連接' ),
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$specialPageAliases['zh-hant'] = array(
+	'Interwiki' => array( '跨維基連結' ),
+);
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.css
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.css	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.css	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,35 @@
+/**
+ * CSS for Special:Interwiki
+ */
+table.mw-interwikitable {
+	width: 100%;
+}
+
+table.mw-interwikitable.intro th {
+	padding-right: 1.4ex;
+	vertical-align: top;
+}
+
+table.mw-interwikitable.intro th.mw-align-start {
+	text-align: left;
+}
+
+table.mw-interwikitable.intro th.mw-align-end {
+	text-align: right;
+}
+
+table.mw-interwikitable.body td.mw-interwikitable-local,
+table.mw-interwikitable.body td.mw-interwikitable-trans,
+table.mw-interwikitable.body td.mw-interwikitable-modify {
+	text-align: center;
+}
+/* @noflip */ .mw-interwikitable-url {
+	text-align: left;
+}
+/* @noflip */ input#mw-interwiki-url  {
+	text-align: left;
+	direction: ltr;
+}
+.mw-interwikitable-modify {
+	white-space: nowrap;
+}
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,4376 @@
+<?php
+/**
+ * Internationalisation file for Interwiki extension.
+ *
+ * @file
+ * @ingroup Extensions
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * @author Stephanie Amanda Stevens <phroziac at gmail.com>
+ * @author SPQRobin <robin_1273 at hotmail.com>
+ * @copyright Copyright (C) 2005-2007 Stephanie Amanda Stevens
+ * @copyright Copyright (C) 2007 SPQRobin
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+
+$messages = array();
+
+/** English (English)
+ * @author Stephanie Amanda Stevens
+ * @author SPQRobin
+ * @author Purodha
+ */
+$messages['en'] = array(
+	# general messages
+	'interwiki' => 'View and edit interwiki data',
+	'interwiki-title-norights' => 'View interwiki data',
+	'interwiki-desc' => 'Adds a [[Special:Interwiki|special page]] to view and edit the interwiki table',
+	'interwiki_intro' => 'This is an overview of the interwiki table. Meanings of the data in the columns:',
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix:',
+	'interwiki_prefix_intro' => 'Interwiki prefix to be used in <code>[<nowiki />[prefix:<i>pagename</i>]]</code> wikitext syntax.',
+	'interwiki_url' => 'URL', # only translate this message if you have to change it
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Template for URLs. The placeholder $1 will be replaced by the <i>pagename</i> of the wikitext, when the abovementioned wikitext syntax is used.',
+	'interwiki_local' => 'Forward',
+	'interwiki-local-label' => 'Forward:',
+	'interwiki_local_intro' => 'An HTTP request to the local wiki with this interwiki prefix in the URL is:',
+	'interwiki_local_0_intro' => 'not honored, usually blocked by "page not found",',
+	'interwiki_local_1_intro' => 'redirected to the target URL given in the interwiki link definitions (i.e. treated like references in local pages)',
+	'interwiki_trans' => 'Transclude',
+	'interwiki-trans-label' => 'Transclude:',
+	'interwiki_trans_intro' => 'If wikitext syntax <code>{<nowiki />{prefix:<i>pagename</i>}}</code> is used, then:',
+	'interwiki_trans_1_intro' => 'allow transclusion from the foreign wiki, if interwiki transclusions are generally permitted in this wiki,',
+	'interwiki_trans_0_intro' => 'do not allow it, rather look for a page in the template namespace.',
+	'interwiki_intro_footer' => 'See [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] for more information about the interwiki table.
+There is a [[Special:Log/interwiki|log of changes]] to the interwiki table.',
+	'interwiki_1' => 'yes',
+	'interwiki_0' => 'no',
+	'interwiki_error' => 'Error: The interwiki table is empty, or something else went wrong.',
+	'interwiki-cached' => 'The interwiki data is cached. Modifying the cache is not possible.',
+
+	# modifying permitted
+	'interwiki_edit' => 'Edit',
+	'interwiki_reasonfield' => 'Reason:',
+
+	# deleting a prefix
+	'interwiki_delquestion' => 'Deleting "$1"',
+	'interwiki_deleting' => 'You are deleting prefix "$1".',
+	'interwiki_deleted' => 'Prefix "$1" was successfully removed from the interwiki table.',
+	'interwiki_delfailed' => 'Prefix "$1" could not be removed from the interwiki table.',
+
+	# adding a prefix
+	'interwiki_addtext' => 'Add an interwiki prefix',
+	'interwiki_addintro' => 'You are adding a new interwiki prefix.
+Remember that it cannot contain spaces ( ), colons (:), ampersands (&), or equal signs (=).',
+	'interwiki_addbutton' => 'Add',
+	'interwiki_added' => 'Prefix "$1" was successfully added to the interwiki table.',
+	'interwiki_addfailed' => 'Prefix "$1" could not be added to the interwiki table.
+Possibly it already exists in the interwiki table.',
+	'interwiki-defaulturl' => 'http://www.example.com/$1', # do not translate or duplicate this message to other languages
+
+	# editing a prefix
+	'interwiki_edittext' => 'Editing an interwiki prefix',
+	'interwiki_editintro' => 'You are editing an interwiki prefix.
+Remember that this can break existing links.',
+	'interwiki_edited' => 'Prefix "$1" was successfully modified in the interwiki table.',
+	'interwiki_editerror' => 'Prefix "$1" could not be modified in the interwiki table.
+Possibly it does not exist.',
+	'interwiki-badprefix' => 'Specified interwiki prefix "$1" contains invalid characters',
+	'interwiki-submit-empty' => 'The prefix and URL cannot be empty.',
+
+	# interwiki log
+	'interwiki_logpagename' => 'Interwiki table log',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|added}} prefix "$4" ($5) (trans: $6; local: $7) to the interwiki table',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|modified}} prefix "$4" ($5) (trans: $6; local: $7) in the interwiki table',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|removed}} prefix "$4" from the interwiki table',
+	'interwiki_logpagetext' => 'This is a log of changes to the [[Special:Interwiki|interwiki table]].',
+	'logentry-interwiki-interwiki' => '', # do not translate this message
+
+	# rights
+	'right-interwiki' => 'Edit interwiki data',
+	'action-interwiki' => 'change this interwiki entry',
+);
+
+/** Message documentation (Message documentation)
+ * @author Fryed-peach
+ * @author Jon Harald Søby
+ * @author Meno25
+ * @author Mormegil
+ * @author Purodha
+ * @author Raymond
+ * @author SPQRobin
+ * @author Siebrand
+ * @author Umherirrender
+ */
+$messages['qqq'] = array(
+	'interwiki' => 'This message is the title of the special page [[Special:Interwiki]].',
+	'interwiki-title-norights' => 'Part of the interwiki extension. This message is the title of the special page [[Special:Interwiki]] when the user has no right to edit the interwiki data, so can only view them.',
+	'interwiki-desc' => '{{desc}}',
+	'interwiki_intro' => 'Part of the interwiki extension. Shown as introductory text on [[Special:Interwiki]].',
+	'interwiki_prefix' => 'Used on [[Special:Interwiki]] as a column header of the table.',
+	'interwiki-prefix-label' => 'Used on [[Special:Interwiki]] as a field label in a form.',
+	'interwiki_prefix_intro' => 'Used on [[Special:Interwiki]] so as to explain the data in the {{msg-mw|interwiki_prefix}} column of the table.
+Do translate both words inside the square brackets as placeholders, where "prefix" should be identical to, or clearly linked to, the column header.',
+	'interwiki_url' => '{{optional}}
+Used on [[Special:Interwiki]] as a column header of the table.
+
+See also: {{msg-mw|Interwiki-url-label}}',
+	'interwiki-url-label' => '{{optional}}
+Used on [[Special:Interwiki]] as a field label in a form.
+
+See also: {{msg-mw|interwiki url}}',
+	'interwiki_url_intro' => 'Used on [[Special:Interwiki]] so as to explain the data in the {{msg-mw|interwiki_url}} column of the table.
+
+$1 is being rendered verbatim. It rerfers to the syntax of the values listed in de "prefix" column, and does not mark a substitutible variable of this message.',
+	'interwiki_local' => 'Used on [[Special:Interwiki]] as a column header.
+
+{{Identical|Forward}}',
+	'interwiki_local_intro' => 'Used on [[Special:Interwiki]] so as to explain the data in the {{msg-mw|interwiki_local}} column of the table.',
+	'interwiki_local_0_intro' => 'Used on [[Special:Interwiki]] so as to descripe the meaning of the value 0 in the {{msg-mw|interwiki_local}} column of the table.',
+	'interwiki_local_1_intro' => 'Used on [[Special:Interwiki]] so as to descripe the meaning of the value 1 in the {{msg-mw|interwiki_local}} column of the table.',
+	'interwiki_trans' => 'Used on [[Special:Interwiki]] as table column header.',
+	'interwiki-trans-label' => 'Used on [[Special:Interwiki]] as a field label in a form.',
+	'interwiki_trans_intro' => 'Used on [[Special:Interwiki]] so as to explain the data in the {{msg-mw|interwiki_trans}} column of the table.',
+	'interwiki_trans_1_intro' => 'Used on [[Special:Interwiki]] so as to descripe the meaning of the value 1 in the {{msg-mw|interwiki_trans}} column of the table.',
+	'interwiki_trans_0_intro' => 'Used on [[Special:Interwiki]] so as to describe the meaning of the value 0 in the {{msg-mw|interwiki_trans}} column of the table.',
+	'interwiki_intro_footer' => 'Part of the interwiki extension.
+Shown as last pice of the introductory text on [[Special:Interwiki]].
+Parameter $1 contains the following (a link): [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org]',
+	'interwiki_1' => "'''Yes'''-value to be inserted into the columns headed by {{msg-mw|interwiki_local}} and {{msg-mw|interwiki_trans}}.
+
+{{Identical|Yes}}",
+	'interwiki_0' => "'''No'''-value to be inserted into the columns headed by {{msg-mw|interwiki_local}} and {{msg-mw|interwiki_trans}}.
+
+{{Identical|No}}",
+	'interwiki_error' => 'This error message is shown when the Special:Interwiki page is empty.',
+	'interwiki_edit' => 'For users allowed to edit the interwiki table via [[Special:Interwiki]], this text is shown as the column header above the edit buttons.
+
+{{Identical|Edit}}',
+	'interwiki_reasonfield' => '{{Identical|Reason}}',
+	'interwiki_delquestion' => 'Parameter $1 is the interwiki prefix you are deleting.',
+	'interwiki_deleting' => '-',
+	'interwiki_deleted' => '',
+	'interwiki_addbutton' => 'This message is the text of the button to submit the interwiki prefix you are adding.
+
+{{Identical|Add}}',
+	'interwiki_editerror' => 'Error message when modifying a prefix has failed.',
+	'interwiki_logpagename' => 'Part of the interwiki extension. This message is shown as page title on Special:Log/interwiki.',
+	'logentry-interwiki-iw_add' => 'Shows up in "[[Special:Log/interwiki]]" when someone has added a prefix. Leave parameters and text between brackets exactly as it is.
+* $1 is the username of the user who added it
+* $2 is the username usable for GENDER
+* $4 is the prefix
+* $5 is the URL
+* $6 and $7 is 0 or 1',
+	'logentry-interwiki-iw_edit' => 'Shows up in "[[Special:Log/interwiki]]" when someone has modified a prefix. Leave parameters and text between brackets exactly as it is.
+* $1 is the username of the user who added it
+* $2 is the username usable for GENDER
+* $4 is the prefix
+* $5 is the URL
+* $6 and $7 is 0 or 1',
+	'logentry-interwiki-iw_delete' => 'Shows up in "[[Special:Log/interwiki]]" when someone removed a prefix.
+* $1 is the username of the user who deleted it.
+* $2 is the username usable for GENDER
+* $4 is the prefix',
+	'interwiki_logpagetext' => 'Part of the interwiki extension. Summary shown on Special:Log/interwiki.',
+	'right-interwiki' => '{{doc-right|interwiki}}',
+	'action-interwiki' => '{{doc-action|interwiki}}',
+);
+
+/** Niuean (ko e vagahau Niuē)
+ * @author Jose77
+ */
+$messages['niu'] = array(
+	'interwiki_reasonfield' => 'Kakano:',
+);
+
+/** Afrikaans (Afrikaans)
+ * @author Arnobarnard
+ * @author Naudefj
+ */
+$messages['af'] = array(
+	'interwiki' => 'Bekyk en wysig interwiki data',
+	'interwiki-title-norights' => 'Bekyk interwiki data',
+	'interwiki-desc' => "Voeg 'n [[Special:Interwiki|spesiale bladsy]] by om die interwiki tabel te bekyk en wysig",
+	'interwiki_intro' => "Hier volg 'n oorsig van die interwiki-tabel.
+Betekenis van die inligting en kolomme:",
+	'interwiki_prefix' => 'Voorvoegsel',
+	'interwiki-prefix-label' => 'Voorvoegsel:',
+	'interwiki_prefix_intro' => 'Interwiki-voorvoegsel wat gebruik moet word in die wikiteks-sintaks <code>[<nowiki />[voorvoegsel:<i>bladsynaam</i>]]</code>.',
+	'interwiki_url_intro' => "'n Sjabloon vir URL's. Die plekhouer $1 word met die <i>bladsynaam</i> van die wikiteks vervang as die bovermelde wikiteks-sintaks gebruik word.",
+	'interwiki_local' => 'Aanstuur',
+	'interwiki-local-label' => 'Aanstuur:',
+	'interwiki_local_intro' => "'n HTTP-aanvraag na die lokale wiki met hierdie interwiki-voorvoegsel in die URL is:",
+	'interwiki_local_0_intro' => 'word nie verwerk nie. Meestal geblokkeer deur \'n  "bladsy nie gevind"-fout.',
+	'interwiki_local_1_intro' => 'aanstuur na die doel-URL verskaf in die definisies van die interwiki-skakels (hierdie word hanteer as verwysings in lokale bladsye)',
+	'interwiki_trans' => 'Transkludeer',
+	'interwiki-trans-label' => 'Transkludeer:',
+	'interwiki_trans_intro' => 'Indien die wikiteks-sintaks <code>{<nowiki />{voorvoegsel:<i>bladsynaam</i>}}</code> gebruik word, dan:',
+	'interwiki_trans_1_intro' => "laat transklusie van ander wiki's toe as interwiki-transklusies wel in hierdie wiki toegelaat word.",
+	'interwiki_trans_0_intro' => "nie toegelaat nie, soek eerder na 'n bladsy in die sjabloonnaamruimte.",
+	'interwiki_intro_footer' => "Sien [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] vir meer inligting oor die interwiki-tabel.
+Daar is 'n [[Special:Log/interwiki|logboek van veranderings]] vir die interwiki-tabel.",
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nee',
+	'interwiki_error' => 'Fout: Die interwiki-tabel is leeg, of iets anders is verkeerd.',
+	'interwiki_edit' => 'Wysig',
+	'interwiki_reasonfield' => 'Rede:',
+	'interwiki_delquestion' => 'Besig om "$1" te verwyder',
+	'interwiki_deleting' => 'U is besig om voorvoegsel "$1" te verwyder.',
+	'interwiki_deleted' => 'Voorvoegsel "$1" is suksesvol uit die interwiki-tabel verwyder.',
+	'interwiki_delfailed' => 'Voorvoegsel "$1" kon nie van die interwiki-tabel verwyder word nie.',
+	'interwiki_addtext' => "Voeg 'n interwiki-voorvoegsel by",
+	'interwiki_addintro' => "U is besig om 'n nuwe interwiki-voorvoegsel by te voeg. Let op dat dit geen spasies ( ), dubbelpunte (:), ampersands (&), of gelykheidstekens (=) mag bevat nie.",
+	'interwiki_addbutton' => 'Voeg by',
+	'interwiki_added' => 'Voorvoegsel "$1" is suksesvol by die interwiki-tabel bygevoeg.',
+	'interwiki_addfailed' => 'Voorvoegsel "$1" kon nie by die interwiki-tabel gevoeg word nie. Moontlik bestaan dit al reeds in die interwiki-tabel.',
+	'interwiki_edittext' => "Wysig 'n interwiki-voorvoegsel",
+	'interwiki_editintro' => "U is besig om 'n interwiki-voorvoegsel te wysig.
+Let op dat dit moontlik bestaande skakels kan breek.",
+	'interwiki_edited' => 'Voorvoegsel "$1" is suksesvol in die interwiki-tabel gewysig.',
+	'interwiki_editerror' => 'Voorvoegsel "$1" kon nie in die interwiki-tabel opgedateer word nie.
+Moontlik bestaan dit nie.',
+	'interwiki-badprefix' => 'Die interwiki-voorvoegsel "$1" bevat ongeldige karakters',
+	'interwiki_logpagename' => 'Interwiki tabel staaf',
+	'interwiki_logpagetext' => "Die is 'n logboek van veranderinge aan die [[Special:Interwiki|interwiki-tabel]].",
+	'right-interwiki' => 'Wysig interwiki-inligting',
+	'action-interwiki' => 'verander hierdie interwiki-item',
+);
+
+/** Amharic (አማርኛ)
+ * @author Codex Sinaiticus
+ */
+$messages['am'] = array(
+	'interwiki_reasonfield' => 'ምክንያት:',
+);
+
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ */
+$messages['an'] = array(
+	'interwiki_1' => 'Sí',
+	'interwiki_reasonfield' => 'Razón:',
+);
+
+/** Arabic (العربية)
+ * @author Meno25
+ * @author OsamaK
+ */
+$messages['ar'] = array(
+	'interwiki' => 'عرض وتعديل بيانات الإنترويكي',
+	'interwiki-title-norights' => 'عرض بيانات الإنترويكي',
+	'interwiki-desc' => 'يضيف [[Special:Interwiki|صفحة خاصة]] لرؤية وتعديل جدول الإنترويكي',
+	'interwiki_intro' => 'هذا عرض عام لجدول الإنترويكي. معاني البيانات في العواميد:',
+	'interwiki_prefix' => 'بادئة',
+	'interwiki-prefix-label' => 'البادئة:',
+	'interwiki_prefix_intro' => 'بادئة الإنترويكي ليتم استخدامها في صياغة نص الويكي <code>[<nowiki />[prefix:<i>pagename</i>]]</code>.',
+	'interwiki_url' => 'مسار',
+	'interwiki-url-label' => 'مسار:',
+	'interwiki_url_intro' => 'قالب للمسارات. حامل المكان $1 سيتم استبداله بواسطة <i>pagename</i> لنص الويكي، عندما يتم استخدام صياغة نص الويكي المذكورة بالأعلى.',
+	'interwiki_local' => 'إرسال',
+	'interwiki-local-label' => 'إرسال:',
+	'interwiki_local_intro' => 'طلب http للويكي المحلي ببادئة الإنترويكي هذه في URl هو:',
+	'interwiki_local_0_intro' => 'لا يتم أخذها في الاعتبار، عادة يتم المنع بواسطة "page not found"،',
+	'interwiki_local_1_intro' => 'يتم التحويل للمسار الهدف المعطى في تعريفات وصلة الإنترويكي (أي تتم معاملتها مثل المراجع في الصفحات المحلية)',
+	'interwiki_trans' => 'تضمين',
+	'interwiki-trans-label' => 'تضمين:',
+	'interwiki_trans_intro' => 'لو أن صياغة نص الويكي <code>{<nowiki />{prefix:<i>pagename</i>}}</code> تم استخدامها، إذا:',
+	'interwiki_trans_1_intro' => 'يسمح بالتضمين من الويكي الأجنبي، لو أن تضمينات الإنترويكي مسموح بها عموما في هذا الويكي،',
+	'interwiki_trans_0_intro' => 'لا تسمح به، ولكن ابحث عن صفحة في نطاق القوالب.',
+	'interwiki_intro_footer' => 'انظر [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] للمزيد من المعلومات حول جدول الإنترويكي.
+هناك [[Special:Log/interwiki|سجل بالتغييرات]] لجدول الإنترويكي.',
+	'interwiki_1' => 'نعم',
+	'interwiki_0' => 'لا',
+	'interwiki_error' => 'خطأ: جدول الإنترويكي فارغ، أو حدث خطأ آخر.',
+	'interwiki_edit' => 'عدل',
+	'interwiki_reasonfield' => 'السبب:',
+	'interwiki_delquestion' => 'حذف "$1"',
+	'interwiki_deleting' => 'أنت تحذف البادئة "$1".',
+	'interwiki_deleted' => 'البادئة "$1" تمت إزالتها بنجاح من جدول الإنترويكي.',
+	'interwiki_delfailed' => 'البادئة "$1" لم يمكن إزالتها من جدول الإنترويكي.',
+	'interwiki_addtext' => 'أضف بادئة إنترويكي',
+	'interwiki_addintro' => 'أنت تضيف بادئة إنترويكي جديدة.
+تذكر أنها لا يمكن أن تحتوي على مسافات ( )، نقطتين فوق بعض (:)، علامة و (&)، أو علامة يساوي (=).',
+	'interwiki_addbutton' => 'أضف',
+	'interwiki_added' => 'البادئة "$1" تمت إضافتها بنجاح إلى جدول الإنترويكي.',
+	'interwiki_addfailed' => 'البادئة "$1" لم يمكن إضافتها إلى جدول الإنترويكي.
+على الأرجح هي موجودة بالفعل في جدول الإنترويكي.',
+	'interwiki_edittext' => 'تعديل بادئة إنترويكي',
+	'interwiki_editintro' => 'أنت تعدل بادئة إنترويكي موجودة.
+تذكر أن هذا يمكن أن يكسر الوصلات الحالية.',
+	'interwiki_edited' => 'البادئة "$1" تم تعديلها بنجاح في جدول الإنترويكي..',
+	'interwiki_editerror' => 'البادئة "$1" لم يمكن تعديلها في جدول الإنترويكي.
+من المحتمل أنها غير موجودة.',
+	'interwiki-badprefix' => 'بادئة إنترويكي محددة "$1" تحتوي أحرفا غير صحيحة',
+	'interwiki_logpagename' => 'سجل جدول الإنترويكي',
+	'interwiki_logpagetext' => 'هذا سجل بالتغييرات في [[Special:Interwiki|جدول الإنترويكي]].',
+	'right-interwiki' => 'تعديل بيانات الإنترويكي',
+	'action-interwiki' => 'تغيير مدخلة الإنترويكي هذه',
+);
+
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'interwiki_prefix' => 'ܫܪܘܝܐ',
+	'interwiki-prefix-label' => 'ܫܪܘܝܐ:',
+	'interwiki_1' => 'ܐܝܢ',
+	'interwiki_0' => 'ܠܐ',
+	'interwiki_edit' => 'ܫܚܠܦ',
+	'interwiki_reasonfield' => 'ܥܠܬܐ:',
+	'interwiki_addbutton' => 'ܐܘܣܦ',
+);
+
+/** Egyptian Spoken Arabic (مصرى)
+ * @author Ghaly
+ * @author Meno25
+ */
+$messages['arz'] = array(
+	'interwiki' => 'عرض وتعديل بيانات الإنترويكي',
+	'interwiki-title-norights' => 'عرض بيانات الإنترويكي',
+	'interwiki-desc' => 'يضيف [[Special:Interwiki|صفحة خاصة]] لرؤية وتعديل جدول الإنترويكي',
+	'interwiki_intro' => 'هذا عرض عام لجدول الإنترويكى. معانى البيانات فى العواميد:',
+	'interwiki_prefix' => 'بادئة',
+	'interwiki-prefix-label' => 'بادئة:',
+	'interwiki_prefix_intro' => 'بادئة الإنترويكى ليتم استخدامها فى صياغة نص الويكى <code>[<nowiki />[prefix:<i>pagename</i>]]</code>.',
+	'interwiki_url_intro' => 'قالب للمسارات. حامل المكان $1 سيتم استبداله بواسطة <i>pagename</i> لنص الويكى، عندما يتم استخدام صياغة نص الويكى المذكورة بالأعلى.',
+	'interwiki_local' => 'إرسال',
+	'interwiki-local-label' => 'إرسال:',
+	'interwiki_local_intro' => 'طلب http للويكى المحلى ببادئة الإنترويكى هذه فى URl هو:',
+	'interwiki_local_0_intro' => 'لا يتم أخذها فى الاعتبار، عادة يتم المنع بواسطة "page not found"،',
+	'interwiki_local_1_intro' => 'يتم التحويل للمسار الهدف المعطى فى تعريفات وصلة الإنترويكى (أى تتم معاملتها مثل المراجع فى الصفحات المحلية)',
+	'interwiki_trans' => 'تضمين',
+	'interwiki-trans-label' => 'تضمين:',
+	'interwiki_trans_intro' => 'لو أن صياغة نص الويكى <code>{<nowiki />{prefix:<i>pagename</i>}}</code> تم استخدامها، إذا:',
+	'interwiki_trans_1_intro' => 'يسمح بالتضمين من الويكى الأجنبى، لو أن تضمينات الإنترويكى مسموح بها عموما فى هذا الويكى،',
+	'interwiki_trans_0_intro' => 'لا تسمح به، ولكن ابحث عن صفحة فى نطاق القوالب.',
+	'interwiki_intro_footer' => 'انظر [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] للمزيد من المعلومات حول جدول الإنترويكى.
+هناك [[Special:Log/interwiki|سجل بالتغييرات]] لجدول الإنترويكى.',
+	'interwiki_1' => 'نعم',
+	'interwiki_0' => 'لا',
+	'interwiki_error' => 'خطأ: جدول الإنترويكى فارغ، أو حدث خطأ آخر.',
+	'interwiki_edit' => 'عدل',
+	'interwiki_reasonfield' => 'سبب:',
+	'interwiki_delquestion' => 'حذف "$1"',
+	'interwiki_deleting' => 'أنت تحذف البادئة "$1".',
+	'interwiki_deleted' => 'البادئة "$1" تمت إزالتها بنجاح من جدول الإنترويكى.',
+	'interwiki_delfailed' => 'البادئة "$1" لم يمكن إزالتها من جدول الإنترويكى.',
+	'interwiki_addtext' => 'أضف بادئة إنترويكي',
+	'interwiki_addintro' => 'أنت تضيف بادئة إنترويكى جديدة.
+تذكر أنها لا يمكن أن تحتوى على مسافات ( )، نقطتين فوق بعض (:)، علامة و (&)، أو علامة يساوى (=).',
+	'interwiki_addbutton' => 'إضافة',
+	'interwiki_added' => 'البادئة "$1" تمت إضافتها بنجاح إلى جدول الإنترويكى.',
+	'interwiki_addfailed' => 'البادئة "$1" لم يمكن إضافتها إلى جدول الإنترويكى.
+على الأرجح هى موجودة بالفعل فى جدول الإنترويكى.',
+	'interwiki_edittext' => 'تعديل بادئة إنترويكي',
+	'interwiki_editintro' => 'أنت تعدل بادئة إنترويكى موجودة.
+تذكر أن هذا يمكن أن يكسر الوصلات الحالية.',
+	'interwiki_edited' => 'البادئة "$1" تم تعديلها بنجاح فى جدول الإنترويكى..',
+	'interwiki_editerror' => 'البادئة "$1" لم يمكن تعديلها فى جدول الإنترويكى.
+من المحتمل أنها غير موجودة.',
+	'interwiki-badprefix' => 'بادئة إنترويكى محددة "$1" فيها حروف مش صحيحة',
+	'interwiki_logpagename' => 'سجل جدول الإنترويكي',
+	'interwiki_logpagetext' => 'هذا سجل بالتغييرات فى [[Special:Interwiki|جدول الإنترويكي]].',
+	'right-interwiki' => 'تعديل بيانات الإنترويكي',
+	'action-interwiki' => 'تغيير مدخلة الإنترويكى هذه',
+);
+
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'interwiki' => "Ver y editar los datos d'interwiki",
+	'interwiki-title-norights' => "Ver los datos d'interwiki",
+	'interwiki-desc' => "Amiesta una [[Special:Interwiki|páxina especial]] pa ver y editar la tabla d'interwiki",
+	'interwiki_intro' => "Esta ye una vista xeneral de la tabla d'interwikis. Significaos de los datos de les columnes:",
+	'interwiki_prefix' => 'Prefixu',
+	'interwiki-prefix-label' => 'Prefixu:',
+	'interwiki_prefix_intro' => "Prefixu d'interwiki a usar cola sintaxis de testu wiki <code>[<nowiki />[prefixu:<i>nome de la páxina</i>]]</code>.",
+	'interwiki_url_intro' => "Plantía pa URLs. El marcador $1 se sustituirá pol <i>nome de la páxina</i> del testu wiki, cuando s'use la sintaxis de testu wiki anterior.",
+	'interwiki_local' => 'Siguiente',
+	'interwiki-local-label' => 'Siguiente:',
+	'interwiki_local_intro' => 'Una solicitú HTTP a la wiki llocal con esti prefixu interwiki na URL:',
+	'interwiki_local_0_intro' => 'nun se respeta, bloquiada de vezu con "páxina nun alcontrada",',
+	'interwiki_local_1_intro' => 'se redirixe a la URL de destín indicada nes definiciones del enllaz interwiki (esto ye, se trata como les referencies nes páxines llocales)',
+	'interwiki_trans' => 'Trescluír',
+	'interwiki-trans-label' => 'Trescluír:',
+	'interwiki_trans_intro' => "Si s'usa la sintaxis de testu wiki <code>{<nowiki />{prefixu:<i>nome de la páxina</i>}}</code>, entós:",
+	'interwiki_trans_1_intro' => 'permite la tresclusión de la wiki esterna, si les tresclusiones interwiki se permiten en xeneral nesta wiki,',
+	'interwiki_trans_0_intro' => 'nun la permite, sinón que gueta una páxina nel espaciu de nomes de la plantía.',
+	'interwiki_intro_footer' => "Pa más información consulta [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] tocante a la tabla d'interwiki.
+Hai un [[Special:Log/interwiki|rexistru de cambios]] a la tabla d'interwiki.",
+	'interwiki_1' => 'sí',
+	'interwiki_0' => 'non',
+	'interwiki_error' => "Error: La tabla d'interwiki ta balera, o salió mal otra cosa.",
+	'interwiki-cached' => "Los datos d'interwiki tan guardaos na caché. Nun ye posible camudar la caché.",
+	'interwiki_edit' => 'Edición',
+	'interwiki_reasonfield' => 'Motivu:',
+	'interwiki_delquestion' => 'Desaniciando «$1»',
+	'interwiki_deleting' => "Tas desaniciando'l prefixu «$1».",
+	'interwiki_deleted' => "El prefixu «$1» se desanició correutamente de la tabla d'interwiki.",
+	'interwiki_delfailed' => "El prefixu «$1» nun se pudo desaniciar de la tabla d'interwiki.",
+	'interwiki_addtext' => "Amestar un prefixu d'interwiki",
+	'interwiki_addintro' => 'Tas amestando un nuevu prefixu interwiki.
+Recuerda que nun pue contener espacios ( ), dos puntos (:), nin los signos (&) nin (=).',
+	'interwiki_addbutton' => 'Amestar',
+	'interwiki_added' => "El prefixu «$1» s'amestó correutamente a la tabla d'interwiki.",
+	'interwiki_addfailed' => "El prefixu «$1» nun se pudo amestar a la tabla d'interwiki.
+Seique yá esiste na tabla d'interwiki.",
+	'interwiki_edittext' => "Editar un prefixu d'interwiki",
+	'interwiki_editintro' => "Tas editando un prefixu d'interwiki.
+Recuerda qu'esto pue francer enllaces esistentes.",
+	'interwiki_edited' => "El prefixu «$1» se camudó correutamente na tabla d'interwiki.",
+	'interwiki_editerror' => "El prefixu «$1» nun se pudo camudar na tabla d'interwiki.
+Seique nun esista.",
+	'interwiki-badprefix' => "El prefixu d'interwiki conseñáu «$1» contién caráuteres non válidos",
+	'interwiki-submit-empty' => 'El prefixu y la URL nun puen tar baleros.',
+	'interwiki_logpagename' => "Rexistru de la tabla d'interwiki",
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|amestó}}\'l prefixu "$4" ($5) (trans: $6; local: $7) a la tabla d\'interwiki',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|camudó}}\'l prefixu "$4" ($5) (trans: $6; local: $7) na tabla d\'interwiki',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|desanició}}\'l prefixu "$4" de la tabla d\'interwiki',
+	'interwiki_logpagetext' => "Esti ye un rexistru de los cambios fechos na [[Special:Interwiki|tabla d'interwiki]].",
+	'right-interwiki' => "Editar los datos d'interwiki",
+	'action-interwiki' => "camudar esta entrada d'interwiki",
+);
+
+/** Kotava (Kotava)
+ * @author Wikimistusik
+ */
+$messages['avk'] = array(
+	'interwiki' => "Wira va 'interwiki' orig isu betara",
+	'interwiki-title-norights' => "Wira va 'interwiki' orig",
+	'interwiki-desc' => "Batcoba, ta wira va 'interwiki' origak isu betara, va [[Special:Interwiki|aptafu bu]] loplekur",
+	'interwiki_intro' => "Ta lo giva icde 'interwiki' origak va [http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org] wil !
+Batcoba tir [[Special:Log/interwiki|'log' dem betaks]] va 'interwiki' origak.",
+	'interwiki_prefix' => 'Abdueosta',
+	'interwiki-prefix-label' => 'Abdueosta:',
+	'interwiki_error' => "ROKLA : 'Interwiki' origak tir vlardaf oke rotaca al sokir.",
+	'interwiki_reasonfield' => 'Lazava :',
+	'interwiki_delquestion' => 'Sulara va "$1"',
+	'interwiki_deleting' => 'Rin va "$1" abdueosta dun sulal.',
+	'interwiki_deleted' => '"$1" abdueosta div \'interwiki\' origak al zo tioltenher.',
+	'interwiki_delfailed' => '"$1" abdueosta div \'interwiki\' origak me zo rotiolter.',
+	'interwiki_addtext' => "Loplekura va 'interwiki' abdueosta",
+	'interwiki_addintro' => "Rin va warzafa 'interwiki' abdueosta dun loplekul.
+Me vulkul da bata va darka ( ) ik briva (:) ik 'ampersand' (&) ik miltastaa (=) me roruldar.",
+	'interwiki_addbutton' => 'Loplekura',
+	'interwiki_added' => '"$1" abdueosta ko \'interwiki\' origak al zo loplekunhur.',
+	'interwiki_addfailed' => '"$1" abdueosta ko \'interwiki\' origak me zo roloplekur.
+Rotir koeon ixam tir.',
+	'interwiki_edittext' => "Betara va 'interwiki' abdueosta",
+	'interwiki_editintro' => "Rin va 'interwiki' abdueosta dun betal.
+Me vulkul da batcoba va kruldesi gluyasiki rotempar !",
+	'interwiki_edited' => '"$1" abdueosta koe \'interwiki\' origak al zo betanhar.',
+	'interwiki_editerror' => '"$1" abdueosta koe \'interwiki\' origak me zo robetar.
+Rotir koeon me krulder.',
+	'interwiki_logpagename' => "'Interwiki' origak 'log'",
+	'interwiki_logpagetext' => "Batcoba tir 'log' dem betaks va [[Special:Interwiki|'interwiki' origak]].",
+);
+
+/** Azerbaijani (Azərbaycanca)
+ * @author Wertuose
+ */
+$messages['az'] = array(
+	'interwiki' => 'İnterviki məlumatlarına bax və redaktə et',
+	'interwiki-title-norights' => 'İnterviki məlumatlarına bax',
+	'interwiki-desc' => 'İnterviki cədvəlinə baxmaq və redaktə etmək üçün [[Special:Interwiki|xüsusi səhifə]] əlavə edir',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_local' => 'Yönləndir',
+	'interwiki-local-label' => 'Yönləndir:',
+	'interwiki_trans' => 'Göstər',
+	'interwiki-trans-label' => 'Göstər:',
+	'interwiki_1' => 'bəli',
+	'interwiki_0' => 'xeyr',
+	'interwiki_edit' => 'Redaktə et',
+	'interwiki_reasonfield' => 'Səbəb:',
+	'interwiki_delquestion' => '"$1" silinir',
+	'interwiki_addbutton' => 'Əlavə et',
+	'right-interwiki' => 'İntervikilərin redaktə edilməsi',
+);
+
+/** Belarusian (Беларуская)
+ * @author Тест
+ */
+$messages['be'] = array(
+	'interwiki_reasonfield' => 'Прычына:',
+	'interwiki_addbutton' => 'Дадаць',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ * @author Jim-by
+ * @author Red Winged Duck
+ * @author Wizardist
+ */
+$messages['be-tarask'] = array(
+	'interwiki' => 'Прагляд і рэдагаваньне зьвестак пра інтэрвікі',
+	'interwiki-title-norights' => 'Прагляд зьвестак пра інтэрвікі',
+	'interwiki-desc' => 'Дадае [[Special:Interwiki|службовую старонку]] для прагляду і рэдагаваньня табліцы інтэрвікі.',
+	'interwiki_intro' => 'Гэта апісаньне табліцы інтэрвікі. Сэнс зьвестак у слупках:',
+	'interwiki_prefix' => 'Прэфікс',
+	'interwiki-prefix-label' => 'Прэфікс:',
+	'interwiki_prefix_intro' => 'Прэфікс інтэрвікі, які будзе выкарыстоўвацца ў сынтаксісе <code>[<nowiki />[prefix:<i>назва старонкі</i>]]</code>.',
+	'interwiki_url_intro' => 'Шаблён для URL-адрасоў. Сымбаль $1 будзе заменены <i>назвай старонкі</i> вікі-тэксту, калі будзе ўжывацца вышэйпазначаны сынтаксіс вікі-тэксту.',
+	'interwiki_local' => 'Так/Не',
+	'interwiki-local-label' => 'Перасылка:',
+	'interwiki_local_intro' => 'HTTP-запыт да лякальнай вікі з гэтым прэфіксам інтэрвікі ў URL-адрасе:',
+	'interwiki_local_0_intro' => 'ігнаруюцца, звычайна блякуюцца з дапамогай «старонка ня знойдзена»,',
+	'interwiki_local_1_intro' => 'перанакіраваньне на мэтавую URL-спасылку пададзенае ў вызначэньнях інтэрвікі-спасылак (разглядаецца як спасылкі ў лякальных старонках)',
+	'interwiki_trans' => 'Трансклюзія',
+	'interwiki-trans-label' => 'Трансклюзія:',
+	'interwiki_trans_intro' => 'Калі выкарыстоўваецца сынтаксіс вікі-тэксту <code>{<nowiki />{prefix:<i>назва старонкі</i>}}</code>, тады:',
+	'interwiki_trans_1_intro' => 'дазваляе трансклюзію зь іншай вікі, калі трансклюзія інтэрвікі дазволена ў гэтай вікі,',
+	'interwiki_trans_0_intro' => 'не дазваляе гэта, замест шукаць старонку ў прасторы назваў шаблёнаў.',
+	'interwiki_intro_footer' => 'Для дадатковай інфармацыі пра табліцу інтэрвікі глядзіце [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org].
+Тут знаходзіцца [[Special:Log/interwiki|журнал зьменаў]] табліцы інтэрвікі.',
+	'interwiki_1' => 'так',
+	'interwiki_0' => 'не',
+	'interwiki_error' => 'Памылка: табліца інтэрвікі пустая альбо ўзьніклі іншыя праблемы.',
+	'interwiki-cached' => 'Зьвесткі пра інтэрвікі знаходзяцца ў кэшы. Зьмяніць кэш немагчыма.',
+	'interwiki_edit' => 'Рэдагаваць',
+	'interwiki_reasonfield' => 'Прычына:',
+	'interwiki_delquestion' => 'Выдаленьне «$1»',
+	'interwiki_deleting' => 'Вы выдаляеце прэфікс «$1».',
+	'interwiki_deleted' => 'Прэфікс «$1» быў пасьпяхова выдалены з табліцы інтэрвікі.',
+	'interwiki_delfailed' => 'Прэфікс «$1» ня можа быць выдалены з табліцы інтэрвікі.',
+	'interwiki_addtext' => 'Дадаць прэфікс інтэрвікі',
+	'interwiki_addintro' => "Вы дадаеце новы прэфікс інтэрвікі.
+Памятайце, што ён ня можа ўтрымліваць прабелы ( ), двукроп'і (:), ампэрсанды (&), ці знакі роўнасьці (=).",
+	'interwiki_addbutton' => 'Дадаць',
+	'interwiki_added' => 'Прэфікс «$1» быў пасьпяхова дададзены да табліцы інтэрвікі.',
+	'interwiki_addfailed' => 'Прэфікс «$1» ня можа быць дададзены да табліцы інтэрвікі.
+Верагодна ён ужо ёсьць у табліцы інтэрвікі.',
+	'interwiki_edittext' => 'Рэдагаваньне прэфікса інтэрвікі',
+	'interwiki_editintro' => 'Вы рэдагуеце прэфікс інтэрвікі.
+Памятайце, гэта можа сапсаваць існуючыя спасылкі.',
+	'interwiki_edited' => 'Прэфікс «$1» быў пасьпяхова зьменены ў табліцы інтэрвікі.',
+	'interwiki_editerror' => 'Прэфікс «$1» ня можа быць зьменены ў табліцы інтэрвікі.
+Верагодна ён не існуе.',
+	'interwiki-badprefix' => 'Пазначаны прэфікс інтэрвікі «$1» утрымлівае няслушныя сымбалі',
+	'interwiki-submit-empty' => 'Прэфікс і URL-адрас ня могуць быць пустымі.',
+	'interwiki_logpagename' => 'Журнал зьменаў табліцы інтэрвікі',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|дадаў|дадала}} прэфікс «$4» ($5) (trans: $6; local: $7) у інтэрвікі-табліцу',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|зьмяніў|зьмяніла}} прэфікс «$4» ($5) (trans: $6; local: $7) у інтэрвікі-табліцы',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|выдаліў|выдаліла}} прэфікс «$4» з інтэрвікі-табліцы',
+	'interwiki_logpagetext' => 'Гэта журнал зьменаў [[Special:Interwiki|табліцы інтэрвікі]].',
+	'right-interwiki' => 'Рэдагаваньне зьвестак інтэрвікі',
+	'action-interwiki' => 'зьмяніць гэты элемэнт інтэрвікі',
+);
+
+/** Bulgarian (Български)
+ * @author DCLXVI
+ */
+$messages['bg'] = array(
+	'interwiki' => 'Преглед и управление на междууикитата',
+	'interwiki-title-norights' => 'Преглед на данните за междууикита',
+	'interwiki-desc' => 'Добавя [[Special:Interwiki|специална страница]] за преглед и управление на таблицата с междууикита',
+	'interwiki_intro' => 'Това е общ преглед на таблицата с междууикита. Значения на данните в колоните:',
+	'interwiki_prefix' => 'Представка:',
+	'interwiki-prefix-label' => 'Представка:',
+	'interwiki_local' => 'Локално',
+	'interwiki-local-label' => 'Локално:',
+	'interwiki_intro_footer' => 'Вижте [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] за повече информация относно таблицата с междууикита.
+Съществува и [[Special:Log/interwiki|дневник на промените]] в таблицата с междууикита.',
+	'interwiki_1' => 'да',
+	'interwiki_0' => 'не',
+	'interwiki_error' => 'ГРЕШКА: Таблицата с междууикита е празна или е възникнала друга грешка.',
+	'interwiki_edit' => 'Редактиране',
+	'interwiki_reasonfield' => 'Причина:',
+	'interwiki_delquestion' => 'Изтриване на "$1"',
+	'interwiki_deleting' => 'Изтриване на представката „$1“.',
+	'interwiki_deleted' => '„$1“ беше успешно премахнато от таблицата с междууикита.',
+	'interwiki_delfailed' => '„$1“ не може да бъде премахнато от таблицата с междууикита.',
+	'interwiki_addtext' => 'Добавяне на ново междууики',
+	'interwiki_addintro' => "''Забележка:'' Междууикитата не могат да съдържат интервали ( ), двуеточия (:), амперсанд (&) или знак за равенство (=).",
+	'interwiki_addbutton' => 'Добавяне',
+	'interwiki_added' => '„$1“ беше успешно добавено в таблицата с междууикита.',
+	'interwiki_addfailed' => '„$1“ не може да бъде добавено в таблицата с междууикита. Възможно е вече да е било добавено там.',
+	'interwiki_edittext' => 'Редактиране на междууики представка',
+	'interwiki_edited' => 'Представката „$1“ беше успешно променена в таблицата с междууикита.',
+	'interwiki_logpagename' => 'Дневник на междууикитата',
+	'interwiki_logpagetext' => 'Тази страница съдържа дневник на промените в [[Special:Interwiki|таблицата с междууикита]].',
+	'right-interwiki' => 'Редактиране на междууикитата',
+);
+
+/** Bengali (বাংলা)
+ * @author Wikitanvir
+ */
+$messages['bn'] = array(
+	'interwiki_prefix' => 'উপসর্গ',
+	'interwiki-prefix-label' => 'উপসর্গ:',
+	'interwiki_1' => 'হ্যাঁ',
+	'interwiki_0' => 'না',
+	'interwiki_edit' => 'সম্পাদনা',
+	'interwiki_reasonfield' => 'কারণ:',
+	'interwiki_delquestion' => '"$1" অপসারণ',
+	'interwiki_deleting' => 'আপনি উপসর্গ "$1" অপসারণ করছেন।',
+	'interwiki_addtext' => 'একটি আন্তঃউইকি উপসর্গ যোগ',
+	'interwiki_addbutton' => 'যোগ',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fohanno
+ * @author Fulup
+ * @author Y-M D
+ */
+$messages['br'] = array(
+	'interwiki' => 'Gwelet hag aozañ ar roadennoù etrewiki',
+	'interwiki-title-norights' => 'Gwelet ar roadennoù etrewiki',
+	'interwiki-desc' => 'Ouzhpennañ a ra ur [[Special:Interwiki|bajenn dibar]] evit gwelet ha kemmañ taolenn an etrewiki',
+	'interwiki_intro' => 'Hemañ zo un alberz eus taolenn an etrewiki. Setu talvoudegezh ar roadennoù zo er bannoù :',
+	'interwiki_prefix' => 'Rakger',
+	'interwiki-prefix-label' => 'Rakger :',
+	'interwiki_prefix_intro' => 'Rakger etrewiki da vezañ implijet en <code>[<nowiki />[prefix:<i>anv ar bajenn</i>]]</code> en ereadur wikitestenn.',
+	'interwiki_url_intro' => "Patrom evit an URLoù. Erlec'hiet e vo $1 gant <i>anv ar bajenn</i> ar wikitestenn, pa vez graet gant an ereadur wikitestenn a-us.",
+	'interwiki_local' => 'Treuzkas',
+	'interwiki-local-label' => 'Treuzkas :',
+	'interwiki_local_intro' => 'Ur reked HTTP war ar wiki-mañ gant ar rakger etrewiki-mañ en URL a vo :',
+	'interwiki_local_0_intro' => 'nac\'het, stanket alies gant "pajenn nann-kavet",',
+	'interwiki_local_1_intro' => "Adkaset war-du an URL tal roet e termenadurioù al liammoù etrewiki (da lavaret eo e vez gwelet evel daveennoù er pajennoù lec'hel)",
+	'interwiki_trans' => 'Ebarzhiñ',
+	'interwiki-trans-label' => 'Treuzkludañ :',
+	'interwiki_trans_intro' => 'Ma vez implijet an ereadur wikitestenn <code>{<nowiki />{prefix:<i>anv ar bajenn</i>}}</code>, neuze :',
+	'interwiki_trans_1_intro' => 'Aotren an treuzkludañ adalek ar wiki estren, ma vez aotreet treuzkludañ er wiki-mañ dre-vras,',
+	'interwiki_trans_0_intro' => "na aotren an treuzkludañ, kentoc'h klask ur bajenn en esaouenn anv ar patrom.",
+	'interwiki_intro_footer' => "Gwelet [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] evit gouzout hiroc'h diwar-benn taolenn an etrewiki.
+Ur [[Special:Log/interwiki|marilh ar c'hemmoù]] zo e taolenn an etrewiki.",
+	'interwiki_1' => 'ya',
+	'interwiki_0' => 'ket',
+	'interwiki_error' => 'Fazi : goullo eo taolenn an etrewiki, pe un dra bennak all zo aet a-dreuz.',
+	'interwiki-cached' => "Krubuilhet eo an etrewiki-mañ. N'haller ket kemmañ ar grubuilh.",
+	'interwiki_edit' => 'Aozañ',
+	'interwiki_reasonfield' => 'Abeg :',
+	'interwiki_delquestion' => 'O tilemel « $1 »',
+	'interwiki_deleting' => "Emaoc'h o tilemel ar rakger « $1 ».",
+	'interwiki_deleted' => 'Lamet eo bet ervat ar rakger "$1" eus an daolenn etrewiki.',
+	'interwiki_delfailed' => 'N\'eus ket bet tu dilemel "$1" eus an daolenn etrewiki.',
+	'interwiki_addtext' => 'Ouzhpennañ ur rakger etrewiki',
+	'interwiki_addintro' => "Oc'h ouzhpennañ ur rakger etrewiki nevez emaoc'h.
+Dalc'hit soñj n'hall bezañ ennañ nag esaouennoù ( ), na daoubikoù (:), nag unan eus an arouezennoù (&) pe \"kevatal\" (=)",
+	'interwiki_addbutton' => 'Ouzhpennañ',
+	'interwiki_added' => 'Ouzhpennet eo bet ervat ar rakger "$1" e taolenn an etrewiki.',
+	'interwiki_addfailed' => 'N\'eus ket bet gallet ouzhpennañ are rakger "$1" e taolenn an etrewiki.
+Ken buan all emañ en daolenn dija.',
+	'interwiki_edittext' => 'O kemmañ ur rakger etrewiki',
+	'interwiki_editintro' => "Emaoc'h o kemmañ ur rakger etrewiki.
+Ho pezet soñj e c'hall an dra-se terriñ liammoù zo anezho dija.",
+	'interwiki_edited' => 'Kemmet eo bet ervat ar rakger "$1" e taolenn an etrewiki.',
+	'interwiki_editerror' => 'N\'hall ket ar rakger "$1" bezañ kemmet e taolenn an etrewiki.
+Marteze n\'eus ket anezhañ.',
+	'interwiki-badprefix' => 'Arouezennoù direizh zo er rakger etrewiki spisaet "$1',
+	'interwiki-submit-empty' => "N'hall ket ar rakger hag an URL bezañ goullo.",
+	'interwiki_logpagename' => 'Deizlevr taolenn an etrewiki',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|en deus|he deus}} ouzhpennet ar rakger "$4" ($5) (treuz: $6; lec\'hel: $7) d\'an daolenn etrewiki',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|en deus|he deus}} kemmet ar rakger "$4" ($5) (treuz: $6; lec\'hel: $7) en daolenn etrewiki',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|en deus|he deus}} tennet ar rakger "$4" diwar an daolenn etrewiki',
+	'interwiki_logpagetext' => "Ur marilh eus ar c'hemmoù e [[Special:Interwiki|taolenn an etrewiki]] eo.",
+	'right-interwiki' => 'Kemmañ ar roadennoù etrewiki',
+	'action-interwiki' => 'kemmañ ar moned etrewiki-mañ',
+);
+
+/** Bosnian (Bosanski)
+ * @author CERminator
+ * @author Kal-El
+ */
+$messages['bs'] = array(
+	'interwiki' => 'Vidi i uredi međuwiki podatke',
+	'interwiki-title-norights' => 'Pregled interwiki podataka',
+	'interwiki-desc' => 'Dodaje [[Special:Interwiki|posebnu stranicu]] za pregled i uređivanje interwiki tabele',
+	'interwiki_intro' => 'Ovo je pregled interwiki tabele. Značenja podataka u kolonama:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Međuwiki prefiks koji se koristi u <code>[<nowiki />[prefix:<i>pagename</i>]]</code> wikitekst sintaksi.',
+	'interwiki_url' => 'URL',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Šablon za URLove. Šablon $1 će biti zamijenjen sa <i>pagename</i> wikiteksta, ako je gore spomenuta sintaksa wikiteksta korištena.',
+	'interwiki_local' => 'naprijed',
+	'interwiki-local-label' => 'Naprijed:',
+	'interwiki_local_intro' => 'Http zahtjev na lokalnu wiki sa ovim interwiki prefiksom u URl je:',
+	'interwiki_local_0_intro' => 'nije privilegovano, obično blokirano putem "stranica nije nađena",',
+	'interwiki_local_1_intro' => 'preusmjeravanje na ciljnu URL koja je navedena putem interwiki definicije (tj. tretira se poput referenci na lokalnim stranicama)',
+	'interwiki_trans' => 'Uključenja',
+	'interwiki-trans-label' => 'Uključenja:',
+	'interwiki_trans_intro' => 'Ako se koristi wikitekst sintaksa <code>{<nowiki />{prefix:<i>pagename</i>}}</code>, onda:',
+	'interwiki_trans_1_intro' => 'dopuštena uključenja iz inostrane wiki, ako su međuwiki uključenja općenito dopuštena u ovoj wiki,',
+	'interwiki_trans_0_intro' => 'nisu dopuštena, radije treba tražiti stranice u imenskom prostoru šablona.',
+	'interwiki_intro_footer' => 'Pogledaje [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] za više informacija o interwiki tabeli.
+Postoji [[Special:Log/interwiki|zapisnik izmjena]] na interwiki tabeli.',
+	'interwiki_1' => 'da',
+	'interwiki_0' => 'ne',
+	'interwiki_error' => 'Greška: interwiki tabela je prazna ili je nešto drugo pogrešno.',
+	'interwiki_edit' => 'Uredi',
+	'interwiki_reasonfield' => 'Razlog:',
+	'interwiki_delquestion' => 'Briše se "$1"',
+	'interwiki_deleting' => 'Brišete prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" je uspješno uklonjen iz interwiki tabele.',
+	'interwiki_delfailed' => 'Prefiks "$1" nije bilo moguće ukloniti iz interwiki tabele.',
+	'interwiki_addtext' => 'Dodaj interwiki prefiks',
+	'interwiki_addintro' => 'Dodajete novi interwiki prefiks.
+Zapamtite da ne može sadržavati razmake ( ), dvotačke (:), znak and (&), ili znakove jednakosti (=).',
+	'interwiki_addbutton' => 'Dodaj',
+	'interwiki_added' => 'Prefiks "$1" je uspješno dodat u interwiki tabelu.',
+	'interwiki_addfailed' => 'Prefiks "$1" nije bilo moguće dodati u interwiki tabelu.
+Moguće je da već postoji u interwiki tabeli.',
+	'interwiki_edittext' => 'Uređivanje interwiki prefiksa',
+	'interwiki_editintro' => 'Uređujete interwiki prefiks.
+Zapamtite da ovo može poremetiti postojeće linkove.',
+	'interwiki_edited' => 'Prefiks "$1" je uspješno izmijenjen u interwiki tabeli.',
+	'interwiki_editerror' => 'Prefiks "$1" ne može biti izmijenjen u interwiki tabeli.
+Moguće je da uopće ne postoji.',
+	'interwiki-badprefix' => 'Navedeni interwiki prefiks "$1" sadrži nevaljane znakove',
+	'interwiki-submit-empty' => 'Prefiks i URL ne mogu biti prazni.',
+	'interwiki_logpagename' => 'Zapisnik tabele interwikija',
+	'interwiki_logpagetext' => 'Ovo je zapisnik izmjena na [[Special:Interwiki|interwiki tabeli]].',
+	'right-interwiki' => 'Uređivanje interwiki podataka',
+	'action-interwiki' => 'mijenjate ovu stavku interwikija',
+);
+
+/** Catalan (Català)
+ * @author BroOk
+ * @author Paucabot
+ * @author SMP
+ * @author Solde
+ * @author Ssola
+ */
+$messages['ca'] = array(
+	'interwiki' => 'Veure i editar dades interwiki',
+	'interwiki-title-norights' => 'Veure dades interwiki',
+	'interwiki-desc' => 'Afegeix una [[Special:Interwiki|pàgina especial]] per veure i editar la taula interwiki',
+	'interwiki_intro' => 'Aquesta és una visió general de la taula de interwiki. Significats de les dades a les columnes:',
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix:',
+	'interwiki_prefix_intro' => 'Prefix de interwiki és utilitzat en <code>[<nowiki />[prefix:<i>pagename</i>]]</code> sintaxi wikitext.',
+	'interwiki_url_intro' => "Plantilla per a URLs. El marcador $1 serà substituït per <i>pagename</i> del wikitext, quan s'utilitza la sintaxi de wikitext esmentats.",
+	'interwiki_local' => 'Endavant',
+	'interwiki-local-label' => 'Endavant:',
+	'interwiki_local_intro' => "Una petició HTTP al wiki local amb aquest prefix interwiki en l'URL és:",
+	'interwiki_local_0_intro' => 'no honrat, generalment bloquejat per "pàgina no trobada",',
+	'interwiki_local_1_intro' => "s'ha redirigit a l'URL de destinació donada a les definicions d'enllaç d'interwiki (és a dir, tractats com a referències a pàgines locals)",
+	'interwiki_trans' => 'Transclude',
+	'interwiki-trans-label' => 'Transclude:',
+	'interwiki_trans_intro' => "Si la sintaxi wikitext <code>{<nowiki />{prefix:<i>pagename</i>}}</code> s'utilitza, llavors:",
+	'interwiki_trans_1_intro' => 'permetre transclusion des del wiki estranger, si aquest wiki, generalment admet interwiki transclusions',
+	'interwiki_trans_0_intro' => "no es permet, busca una pàgina en l'espai de nom de la plantilla.",
+	'interwiki_intro_footer' => 'Veure [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] per obtenir més informació sobre la taula de interwiki.
+Hi ha un [[Special:Log/interwiki|registre de canvis]] a la taula de interwiki.',
+	'interwiki_1' => 'sí',
+	'interwiki_0' => 'no',
+	'interwiki_error' => 'Error: La taula interwiki és buida, o alguna cosa ha sortit malament.',
+	'interwiki_edit' => 'Modifica',
+	'interwiki_reasonfield' => 'Raó:',
+	'interwiki_delquestion' => "S'està eliminant «$1»",
+	'interwiki_deleting' => 'Estàs eliminant el prefix "$1".',
+	'interwiki_deleted' => 'Prefix "$1" s\'ha suprimit amb èxit  de la taula de interwiki.',
+	'interwiki_delfailed' => 'Prefix " $1 "no pot ser eliminat de la taula interwiki.',
+	'interwiki_addtext' => 'Afegir un prefix interwiki',
+	'interwiki_addintro' => "Estàs afegint un prefix nou interwiki.
+Recorda que no pot contenir espais ( ), dos punts (:), ampersands (&) o signes d'igual (=)",
+	'interwiki_addbutton' => 'Afegeix',
+	'interwiki_added' => 'Prefix " $1 "s\'ha afegit correctament a la taula interwiki.',
+	'interwiki_addfailed' => 'Prefix "$1" no es pot afegir a la taula de interwiki.
+Possiblement ja existeix a la taula de interwiki.',
+	'interwiki_edittext' => 'Edita un prefix de interwiki',
+	'interwiki_editintro' => 'Estàs editant un prefix interwiki.
+Recorda que això pot trencar vincles existents.',
+	'interwiki_edited' => 'Prefix "$1" s\'ha modificat amb èxit en la taula de interwiki.',
+	'interwiki_editerror' => 'Prefix "$1" no pot ser modificat en la taula de interwiki.
+Possiblement no existeix.',
+	'interwiki-badprefix' => 'El prefix interwiki especificat "$1" conté caràcters no vàlids',
+	'interwiki-submit-empty' => "El prefix i l'URL no pot estar buit.",
+	'interwiki_logpagename' => 'Registre de taula interwiki',
+	'interwiki_logpagetext' => 'Això és un registre de canvis a la[[Special:Interwiki|interwiki taula]].',
+	'right-interwiki' => 'Editar les dades interwiki',
+	'action-interwiki' => "canviar aquesta entrada d'interwiki",
+);
+
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'interwiki_edit' => 'Нисйé',
+	'interwiki_addbutton' => 'Тlетоха',
+);
+
+/** Sorani (کوردی)
+ * @author Asoxor
+ */
+$messages['ckb'] = array(
+	'interwiki_reasonfield' => 'هۆکار:',
+	'interwiki_deleted' => 'پێشگری «$1» سەرکەوتووانە لە خشتەی نێوانویکی لابرا.',
+);
+
+/** Corsican (Corsu) */
+$messages['co'] = array(
+	'interwiki_reasonfield' => 'Mutivu:',
+);
+
+/** Czech (Česky)
+ * @author Danny B.
+ * @author Mormegil
+ */
+$messages['cs'] = array(
+	'interwiki' => 'Zobrazit a upravovat interwiki',
+	'interwiki-title-norights' => 'Zobrazit interwiki',
+	'interwiki-desc' => 'Přidává [[Special:Interwiki|speciální stránku]], na které lze prohlížet a editovat tabulku interwiki',
+	'interwiki_intro' => 'Toto je přehled tabulky interwiki odkazů. Významy dat ve sloupcích:',
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix:',
+	'interwiki_prefix_intro' => 'Interwiki prefix používaný v syntaxi wikitextu <code>[<nowiki />[prefix:<i>stránka</i>]]</code>.',
+	'interwiki_url_intro' => 'Vzor pro URL. Místo $1 se vloží <i>stránka</i> z wikitextu uvedeného v příkladu výše.',
+	'interwiki_local' => 'Přesměrovat',
+	'interwiki-local-label' => 'Přesměrovat:',
+	'interwiki_local_intro' => 'HTTP požadavek na tuto wiki s tímto interwiki prefixem v URL je:',
+	'interwiki_local_0_intro' => 'odmítnut, zpravidla s výsledkem „stránka nenalezena“,',
+	'interwiki_local_1_intro' => 'přesměrován na cílové URL podle definice v tabulce interwiki odkazů (tj. chová se jako odkazy v lokálních stránkách)',
+	'interwiki_trans' => 'Transkluze',
+	'interwiki-trans-label' => 'Transkluze:',
+	'interwiki_trans_intro' => 'Při použití syntaxe wikitextu <code>{<nowiki />{prefix:<i>stránka</i>}}</code>:',
+	'interwiki_trans_1_intro' => 'umožnit vložení z druhé wiki, pokud je interwiki transkluze na této wiki obecně povolena,',
+	'interwiki_trans_0_intro' => 'to nedovolit, místo toho použít stránku ve jmenném prostoru šablon.',
+	'interwiki_intro_footer' => 'Více informací o tabulce interwiki najdete na [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org].
+Existuje také [[Special:Log/interwiki|protokol změn]] tabulky interwiki.',
+	'interwiki_1' => 'ano',
+	'interwiki_0' => 'ne',
+	'interwiki_error' => 'CHYBA: Interwiki tabulka je prázdná anebo se pokazilo něco jiného.',
+	'interwiki_edit' => 'Editovat',
+	'interwiki_reasonfield' => 'Důvod:',
+	'interwiki_delquestion' => 'Mazání „$1“',
+	'interwiki_deleting' => 'Mažete prefix „$1“.',
+	'interwiki_deleted' => 'Prefix „$1“ byl úspěšně odstraněn z tabulky interwiki.',
+	'interwiki_delfailed' => 'Prefix „$1“ nebylo možné odstranit z tabulky interwiki.',
+	'interwiki_addtext' => 'Přidat interwiki prefix',
+	'interwiki_addintro' => 'Přidáváte nový interwiki prefix.
+Mějte na vědomí, že nemůže obsahovat mezery ( ), dvojtečky (:), ampersandy (&), ani rovnítka (=).',
+	'interwiki_addbutton' => 'Přidat',
+	'interwiki_added' => 'Prefix „$1“ byl úspěšně přidán do tabulky interwiki.',
+	'interwiki_addfailed' => 'Prefix „$1“ nemohl být přidán do tabulky interwiki.
+Pravděpodobně tam již existuje.',
+	'interwiki_edittext' => 'Editace interwiki prefixu',
+	'interwiki_editintro' => 'Editujete interwiki prefix.
+Mějte na vědomí, že to může znefunkčnit existující odkazy.',
+	'interwiki_edited' => 'Prefix „$1“ v tabulce interwiki byl úspěšně modifikován.',
+	'interwiki_editerror' => 'Prefix „$1“ v tabulce interwiki nemohl být modifikován.
+Pravděpodobně neexistuje.',
+	'interwiki-badprefix' => 'Uvedený interwiki prefix „$1“ obsahuje nepovolený znak',
+	'interwiki_logpagename' => 'Kniha změn tabulky interwiki',
+	'interwiki_logpagetext' => 'Toto je seznam změn [[Special:Interwiki|tabulky interwiki]].',
+	'right-interwiki' => 'Editování interwiki záznamů',
+	'action-interwiki' => 'změnit tento záznam interwiki',
+);
+
+/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
+ * @author ОйЛ
+ */
+$messages['cu'] = array(
+	'interwiki_0' => 'нѣ́тъ',
+);
+
+/** Welsh (Cymraeg)
+ * @author Lloffiwr
+ */
+$messages['cy'] = array(
+	'interwiki' => 'Gweld a golygu data rhyngwici',
+	'interwiki-title-norights' => 'Gweld y data rhyngwici',
+	'interwiki_prefix' => 'Rhagddodiad',
+	'interwiki-prefix-label' => 'Rhagddodiad:',
+	'interwiki_local' => 'Anfon ymlaen',
+	'interwiki-local-label' => 'Anfon ymlaen:',
+	'interwiki_trans' => 'Trawsgynnwys',
+	'interwiki-trans-label' => 'Trawsgynnwys:',
+	'interwiki_intro_footer' => "Cewch ragor o wybodaeth am y tabl rhyngwici ar [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org].
+Cofnodir newidiadau i'r tabl rhyngwici ar y [[Special:Log/interwiki|lòg newidiadau]].",
+	'interwiki_1' => 'gellir',
+	'interwiki_0' => 'ni ellir',
+	'interwiki_edit' => 'Golygu',
+	'interwiki_reasonfield' => 'Rheswm:',
+	'interwiki_addtext' => 'Ychwanegu rhagddodiad rhyngwici',
+	'interwiki_addintro' => 'Rydych yn ychwanegu rhagddodiad rhyngwici newydd.
+Cofiwch na all gynnwys bwlch ( ), gorwahannod (:), ampersand (&), na hafalnod (=).',
+	'interwiki_addbutton' => 'Ychwaneger',
+	'interwiki_added' => 'Llwyddwyd i ychwanegu\'r rhagddodiad "$1" at y tabl rhyngwici.',
+	'interwiki_addfailed' => 'Methwyd ychwanegu\'r rhagddodiad "$1" at y tabl rhyngwici.
+Efallai ei fod eisoes yn y tabl rhyngwici.',
+	'interwiki_logpagename' => 'Lòg y tabl rhyngwici',
+	'interwiki_logpagetext' => "Dyma lòg y newidiadau i'r [[Special:Interwiki|tabl rhyngwici]].",
+	'right-interwiki' => 'Golygu data rhyngwici',
+	'action-interwiki' => 'newid yr eitem rhyngwici hwn',
+);
+
+/** Danish (Dansk)
+ * @author Byrial
+ * @author Jon Harald Søby
+ * @author Peter Alberti
+ * @author Purodha
+ */
+$messages['da'] = array(
+	'interwiki' => 'Vis og rediger interwikidata',
+	'interwiki-title-norights' => 'Vis interwikidata',
+	'interwiki_prefix' => 'Præfiks',
+	'interwiki-prefix-label' => 'Præfiks:',
+	'interwiki_local' => 'Videresend',
+	'interwiki-local-label' => 'Videresend:',
+	'interwiki_trans' => 'Transkluder',
+	'interwiki-trans-label' => 'Transkluder:',
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nej',
+	'interwiki_error' => 'Fejl: Interwikitabellen er tom eller noget andet gik galt.',
+	'interwiki_edit' => 'Redigér',
+	'interwiki_reasonfield' => 'Begrundelse:',
+	'interwiki_delquestion' => 'Sletter "$1"',
+	'interwiki_deleting' => 'Du er ved at slette præfikset "$1".',
+	'interwiki_addtext' => 'Tilføj et interwikipræfiks',
+	'interwiki_addintro' => 'Du er ved at tilføje et nyt interwikipræfiks.
+Husk at det ikke kan indeholde mellemrum ( ), kolon (:), &-tegn eller lighedstegn (=).',
+	'interwiki_addbutton' => 'Tilføj',
+	'right-interwiki' => 'Redigere interwikidata',
+	'action-interwiki' => 'ændre dette interwiki-element',
+);
+
+/** German (Deutsch)
+ * @author Als-Holder
+ * @author Church of emacs
+ * @author Kghbln
+ * @author MF-Warburg
+ * @author Metalhead64
+ * @author Purodha
+ * @author Raimond Spekking
+ * @author Umherirrender
+ */
+$messages['de'] = array(
+	'interwiki' => 'Interwikidaten ansehen und bearbeiten',
+	'interwiki-title-norights' => 'Interwikidaten ansehen',
+	'interwiki-desc' => 'Ergänzt eine [[Special:Interwiki|Spezialseite]] zur Pflege der Interwikitabelle',
+	'interwiki_intro' => 'Dies ist ein Überblick des Inhalts der Interwikitabelle.
+Die Daten in den einzelnen Spalten haben die folgende Bedeutung:',
+	'interwiki_prefix' => 'Präfix',
+	'interwiki-prefix-label' => 'Präfix:',
+	'interwiki_prefix_intro' => 'Interwikipräfix zur Verwendung in der Form <code>[<nowiki />[präfix:<i>Seitenname</i>]]</code> im Wikitext.',
+	'interwiki_url_intro' => 'Muster für URLs. Der Platzhalter $1 wird bei der Verwendung durch <i>Seitenname</i> aus der oben genannten Syntax im Wikitext ersetzt.',
+	'interwiki_local' => 'Als lokales Wiki definiert',
+	'interwiki-local-label' => 'Als lokales Wiki definiert:',
+	'interwiki_local_intro' => 'Eine HTTP-Anfrage an das lokale Wiki mit diesem Interwikipräfix in der URL wird:',
+	'interwiki_local_0_intro' => 'nicht erfüllt, sondern normalerweise mit „Seite nicht gefunden“ blockiert',
+	'interwiki_local_1_intro' => 'automatisch auf die Ziel-URL der in den Definitionen angegebenen Interwikilinks weitergeleitet, d. h. sie werden wie ein Wikilink innerhalb lokaler Wikiseiten behandelt.',
+	'interwiki_trans' => 'Einbinden',
+	'interwiki-trans-label' => 'Einbinden:',
+	'interwiki_trans_intro' => 'Wenn Vorlagensyntax <code>{<nowiki />{präfix:<i>Seitenname</i>}}</code> verwendet wird, dann:',
+	'interwiki_trans_1_intro' => 'erlaube Einbindungen von fremden Wikis, sofern Einbindungen in diesem Wiki allgemein zulässig sind,',
+	'interwiki_trans_0_intro' => 'erlaube es nicht, und nimm eine Seite aus dem Vorlagennamensraum.',
+	'interwiki_intro_footer' => 'Siehe [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] für weitere Informationen zur Interwikitabelle. Das [[Special:Log/interwiki|Logbuch]] zeigt ein Protokoll aller Änderungen an der Interwikitabelle.',
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nein',
+	'interwiki_error' => 'Fehler: Die Interwikitabelle ist leer.',
+	'interwiki-cached' => 'Die Interwikidaten wurden gecached. Die Daten im Cache zu ändern ist nicht möglich.',
+	'interwiki_edit' => 'Bearbeiten',
+	'interwiki_reasonfield' => 'Grund:',
+	'interwiki_delquestion' => 'Löscht „$1“',
+	'interwiki_deleting' => 'Du bist dabei das Präfix „$1“ zu löschen.',
+	'interwiki_deleted' => '„$1“ wurde erfolgreich aus der Interwikitabelle entfernt.',
+	'interwiki_delfailed' => '„$1“ konnte nicht aus der Interwikitabelle gelöscht werden.',
+	'interwiki_addtext' => 'Interwikipräfix hinzufügen',
+	'interwiki_addintro' => 'Du fügst ein neues Interwikipräfix hinzu. Beachte, dass es kein Leerzeichen ( ), Kaufmännisches Und (&), Gleichheitszeichen (=) und keinen Doppelpunkt (:) enthalten darf.',
+	'interwiki_addbutton' => 'Hinzufügen',
+	'interwiki_added' => 'Das Präfix „$1“ wurde erfolgreich der Interwikitabelle hinzugefügt.',
+	'interwiki_addfailed' => '„$1“ konnte nicht der Interwikitabelle hinzugefügt werden.',
+	'interwiki_edittext' => 'Interwikipräfix bearbeiten',
+	'interwiki_editintro' => 'Du bist dabei ein Präfix zu ändern.
+Beachte, dass dies bereits vorhandene Links ungültig machen kann.',
+	'interwiki_edited' => 'Das Präfix „$1“ wurde erfolgreich in der Interwikitabelle geändert.',
+	'interwiki_editerror' => 'Das Präfix „$1“ kann in der Interwikitabelle nicht geändert werden.
+Möglicherweise ist es nicht vorhanden.',
+	'interwiki-badprefix' => 'Das festgelegte Interwikipräfix „$1“ beinhaltet ungültige Zeichen.',
+	'interwiki-submit-empty' => 'Das Präfix und die URL dürfen nicht leer sein.',
+	'interwiki_logpagename' => 'Interwikitabelle-Logbuch',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|fügte}} das Präfix „$4“ ($5) (trans: $6; local: $7) der Interwikitabelle hinzu',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|änderte}} das Präfix „$4“ ($5) (trans: $6; local: $7) in der Interwikitabelle',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|entfernte}} das Präfix „$4“ aus der Interwikitabelle',
+	'interwiki_logpagetext' => 'In diesem Logbuch werden Änderungen an der [[Special:Interwiki|Interwikitabelle]] protokolliert.',
+	'right-interwiki' => 'Interwikitabelle bearbeiten',
+	'action-interwiki' => 'Diesen Interwikieintrag ändern',
+);
+
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Kghbln
+ * @author MichaelFrey
+ */
+$messages['de-formal'] = array(
+	'interwiki_deleting' => 'Sie sind dabei das Präfix „$1“ zu löschen.',
+	'interwiki_addintro' => 'Sie fügen ein neues Interwikipräfix hinzu. Beachten Sie, dass es kein Leerzeichen ( ), Kaufmännisches Und (&), Gleichheitszeichen (=) und keinen Doppelpunkt (:) enthalten darf.',
+	'interwiki_editintro' => 'Sie sind dabei ein Präfix zu ändern.
+Beachten Sie, dass dies bereits vorhandene Links ungültig machen kann.',
+);
+
+/** Zazaki (Zazaki)
+ * @author Erdemaslancan
+ */
+$messages['diq'] = array(
+	'interwiki_prefix' => 'Werqare',
+	'interwiki_local' => 'Hetana fi',
+	'interwiki_trans' => 'Temase fi',
+	'interwiki-trans-label' => 'Temase fi',
+);
+
+/** Lower Sorbian (Dolnoserbski)
+ * @author Michawiki
+ */
+$messages['dsb'] = array(
+	'interwiki' => 'Daty interwiki se wobglědaś a wobźěłaś',
+	'interwiki-title-norights' => 'Daty interwiki se wobglědaś',
+	'interwiki-desc' => 'Pśidawa [[Special:Interwiki|specialny bok]] za woglědowanje a wobźěłowanje tabele interwiki',
+	'interwiki_intro' => 'Toś to jo pśeglěd tabele interwiki. Wóznamy datow w słupach:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Prefiks interwiki, kótaryž ma se we wikitekstowej syntaksy <code>[<nowiki />[prefix:<i>pagename</i>]]</code> wužywaś.',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Pśedłoga za URL. Zastupne znamješko $1 wuměnijo se pśez <i>mě boka</i> wikijowego teksta, gaž se wušej naspomnjona wikitekstowa syntaksa wužywa.',
+	'interwiki_local' => 'Doprědka',
+	'interwiki-local-label' => 'Doprědka:',
+	'interwiki_local_intro' => 'Napšašowanje http do lokalnego wikija z toś tym prefiksom interwiki w URL jo:',
+	'interwiki_local_0_intro' => 'njepśipóznaty, zwětšego wót "bok njenamakany" blokěrowany,',
+	'interwiki_local_1_intro' => 'k celowemu URL w definicijach wótkaza interwiki dalej pósrědnjony (t.j. wobchada se z tym, ako z referencami w lokalnych bokach)',
+	'interwiki_trans' => 'Transkluděrowaś',
+	'interwiki-trans-label' => 'Transkluděrowaś:',
+	'interwiki_trans_intro' => 'Jolic se wikitekstowa syntaksa <code>{<nowiki />{prefix:<i>pagename</i>}}</code> wužywa, ga:',
+	'interwiki_trans_1_intro' => 'zapśěgnjenje z cuzego wikija dowóliś, jolic zapśěgnjenja interwiki su powšyknje w toś tom wikiju dopušćone,',
+	'interwiki_trans_0_intro' => 'jo njedowóliś, lubjej wuwoglěduj se za bokom w mjenjowem rumje Pśedłoga',
+	'interwiki_intro_footer' => 'Glědaj [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] za dalšne informacije wó tabeli interwikijow.
+Jo [[Special:Log/interwiki|protokol změnow]] tabele interwikijow.',
+	'interwiki_1' => 'jo',
+	'interwiki_0' => 'ně',
+	'interwiki_error' => 'Zmólka: Tabela interwiki jo prozna abo něco druge jo wopak.',
+	'interwiki_edit' => 'Wobźěłaś',
+	'interwiki_reasonfield' => 'Pśicyna:',
+	'interwiki_delquestion' => '"$1" se lašujo',
+	'interwiki_deleting' => 'Lašujoš prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" jo se wuspěšnje z tabele interwiki wupórał.',
+	'interwiki_delfailed' => 'Prefiks "$1" njejo se dał z tabele interwiki wupóraś.',
+	'interwiki_addtext' => 'Prefiks interwiki pśidaś',
+	'interwiki_addintro' => 'Pśidawaš nowy prefiks interwiki.
+Źiwaj na to, až njesmějo wopśimjeś prozne znamjenja ( ), dwójodypki (:), pśekupny A (&) abo znamuška rownosći (=).',
+	'interwiki_addbutton' => 'Pśidaś',
+	'interwiki_added' => 'Prefiks "$1" jo se wuspěšnje tabeli interwiki pśidał.',
+	'interwiki_addfailed' => 'Prefiks "$1" njejo se dał tabeli interwiki pśidaś.
+Snaź eksistěrujo južo w tabeli interwiki.',
+	'interwiki_edittext' => 'Prefiks interwiki wobźěłaś',
+	'interwiki_editintro' => 'Wobźěłujoš prefiks interwiki.
+Źiwaj na to, až to móžo eksistěrujuce wótkaze skóńcowaś',
+	'interwiki_edited' => 'Prefiks "$1" jo se wuspěšnje w tabeli interwiki změnił.',
+	'interwiki_editerror' => 'Prefiks "$1" njedajo se w tabeli interwiki změniś.
+Snaź njeeksistěrujo.',
+	'interwiki-badprefix' => 'Podaty prefiks interwiki "$1" wopśimujo njepłaśiwe znamuška',
+	'interwiki_logpagename' => 'Protokol tabele interwiki',
+	'interwiki_logpagetext' => 'To jo protokol změnow k [[Special:Interwiki|tabeli interwiki]].',
+	'right-interwiki' => 'Daty interwiki wobźěłaś',
+	'action-interwiki' => 'toś ten zapisk interwiki změniś',
+);
+
+/** Ewe (Eʋegbe) */
+$messages['ee'] = array(
+	'interwiki_edit' => 'Trɔ asi le eŋu',
+);
+
+/** Greek (Ελληνικά)
+ * @author Consta
+ * @author Crazymadlover
+ * @author Dead3y3
+ * @author Evropi
+ * @author Omnipaedista
+ * @author ZaDiak
+ */
+$messages['el'] = array(
+	'interwiki' => 'Εμφάνιση και επεξεργασία των δεδομένων ιντερβίκι',
+	'interwiki-title-norights' => 'Εμφάνιση δεδομένων ιντερβίκι',
+	'interwiki-desc' => 'Προσθέτει μια [[Special:Interwikilist|ειδική σελίδα]] για την προβολή και επεξεργασία των διαθέσιμων συνδέσμων interwiki',
+	'interwiki_prefix' => 'Πρόθεμα',
+	'interwiki-prefix-label' => 'Πρόθεμα:',
+	'interwiki_local' => 'Προώθηση',
+	'interwiki-local-label' => 'Προώθηση:',
+	'interwiki_trans' => 'Ενσωμάτωση',
+	'interwiki-trans-label' => 'Ενσωμάτωση:',
+	'interwiki_1' => 'ναι',
+	'interwiki_0' => 'όχι',
+	'interwiki_error' => 'Σφάλμα: Ο πίνακας ιντερβίκι είναι άδειος, ή κάτι άλλο έχει πάει στραβά.',
+	'interwiki_edit' => 'Επεξεργασία',
+	'interwiki_reasonfield' => 'Λόγος:',
+	'interwiki_delquestion' => 'Διαγραφή του "$1"',
+	'interwiki_deleting' => 'Διαγράφεις το πρόθεμα "$1".',
+	'interwiki_deleted' => 'Το πρόθεμα "$1" αφαιρέθηκε με επιτυχία από τον πίνακα των interwiki.',
+	'interwiki_addtext' => 'Προσθήκη ενός προθέματος interwiki',
+	'interwiki_addbutton' => 'Προσθήκη',
+	'interwiki_edittext' => 'Επεξεργασία ενός ιντερβίκι προθέματος',
+	'interwiki_editerror' => 'Το πρόθεμα "$1" δεν μπορεί να τροποποιηθεί στον πίνακα interwiki.
+Πιθανώς να μην υπάρχει.',
+	'interwiki-badprefix' => 'Το καθορισμένο πρόθεμα interwiki "$1" περιέχει μη έγκυρους χαρακτήρες',
+	'interwiki_logpagename' => 'Αρχείο του πίνακα ιντερβίκι',
+	'interwiki_logpagetext' => 'Αυτό είναι ένα ημερολόγιο αλλαγών στον [[Special:Interwiki|πίνακα ιντερβίκι]].',
+	'right-interwiki' => 'Επεξεργασία των δεδομένων ιντερβίκι',
+	'action-interwiki' => 'αλλαγή αυτής της καταχώρισης ιντερβίκι',
+);
+
+/** Esperanto (Esperanto)
+ * @author Michawiki
+ * @author Yekrats
+ */
+$messages['eo'] = array(
+	'interwiki' => 'Rigardi kaj redakti intervikiajn datenojn',
+	'interwiki-title-norights' => 'Rigardi intervikiajn datenojn',
+	'interwiki-desc' => 'Aldonas [[Special:Interwiki|specialan paĝon]] por rigardi kaj redakti la intervikian tabelon',
+	'interwiki_intro' => 'Tio estas superrigardo de la intervikia tabelo. Signifoj de la datumoj en la kolumnoj:',
+	'interwiki_prefix' => 'Prefikso',
+	'interwiki-prefix-label' => 'Prefikso:',
+	'interwiki_local' => 'Plu',
+	'interwiki-local-label' => 'Plu:',
+	'interwiki_trans' => 'Transinkluzivi',
+	'interwiki-trans-label' => 'Transinkluzivi:',
+	'interwiki_1' => 'jes',
+	'interwiki_0' => 'ne',
+	'interwiki_error' => 'ERARO: La intervikia tabelo estas malplena, aŭ iel misfunkciis.',
+	'interwiki_edit' => 'Redakti',
+	'interwiki_reasonfield' => 'Kialo:',
+	'interwiki_delquestion' => 'Forigante "$1"',
+	'interwiki_deleting' => 'Vi forigas prefikson "$1".',
+	'interwiki_deleted' => 'Prefikso "$1" estis sukcese forigita de la intervikia tabelo.',
+	'interwiki_delfailed' => 'Prefikso "$1" ne eblis esti forigita el la intervikia tabelo.',
+	'interwiki_addtext' => 'Aldonu intervikian prefikson',
+	'interwiki_addintro' => 'Vi aldonas novan intervikian prefikson.
+Memoru ke ĝi ne povas enhavi spacetojn ( ), kolojn (:), kajsignojn (&), aŭ egalsignojn (=).',
+	'interwiki_addbutton' => 'Aldoni',
+	'interwiki_added' => 'Prefikso "$1" estis sukcese aldonita al la intervikia tabelo.',
+	'interwiki_addfailed' => 'Prefikso "$1" ne eblis esti aldonita al la intervikia tabelo.
+Eble ĝi jam ekzistas en la intervikia tabelo.',
+	'interwiki_edittext' => 'Redaktante intervikian prefikson',
+	'interwiki_editintro' => 'Vi redaktas intervikian prefikson.
+Notu ke ĉi tiu ago povas rompi ekzistantajn ligilojn.',
+	'interwiki_edited' => 'Prefikso "$1" estis sukcese modifita en la intervikian tabelon.',
+	'interwiki_editerror' => 'Prefikso "$1" ne eblis esti modifita en la intervikia tabelo.
+Verŝajne ĝi ne ekzistas.',
+	'interwiki-badprefix' => 'Specifita intervika prefikso "$1" enhavas nevalidajn signojn',
+	'interwiki_logpagename' => 'Loglibro pri la intervikia tabelo',
+	'interwiki_logpagetext' => 'Jen loglibro de ŝanĝoj al la [[Special:Interwiki|intervikia tabelo]].',
+	'right-interwiki' => 'Redakti intervikiajn datenojn',
+);
+
+/** Spanish (Español)
+ * @author Crazymadlover
+ * @author Imre
+ * @author Locos epraix
+ * @author Pertile
+ * @author Piolinfax
+ * @author Sanbec
+ * @author Translationista
+ */
+$messages['es'] = array(
+	'interwiki' => 'Ver y editar la tabla de interwikis',
+	'interwiki-title-norights' => 'Ver datos de interwikis',
+	'interwiki-desc' => 'Añade una [[Special:Interwiki|página especial]] para ver y editar la tabla de interwikis',
+	'interwiki_intro' => 'Esta es una visión general de la tabla intewiki. Los significados de los datos en las columnas:',
+	'interwiki_prefix' => 'Prefijo',
+	'interwiki-prefix-label' => 'Prefijo:',
+	'interwiki_prefix_intro' => 'Prefijo interwiki que se utilizará en sintaxis wikitexto <code>[<nowiki />[prefix:<i>pagename</i>]]</code> wikitext syntax.',
+	'interwiki_url_intro' => 'Plantilla para URLs. El marcador $1 será reemplazado por el <i>nombre de página</i> del wikitexto cuando se use la sintaxis de wikitexto arriba mostrada.',
+	'interwiki_local' => 'Adelante',
+	'interwiki-local-label' => 'Adelante:',
+	'interwiki_local_intro' => 'Una solicitud HTTP a la wiki local con este prefijo interwiki en la URL es:',
+	'interwiki_local_0_intro' => 'no se satisfizo, normalmente bloqueado por "página no encontrada",',
+	'interwiki_local_1_intro' => 'redirigido a la URL objetivo en las definiciones de enlaces interwiki (es decir, se la trata como a las referencias en páginas locales)',
+	'interwiki_trans' => 'transcluir',
+	'interwiki-trans-label' => 'Transcluir:',
+	'interwiki_trans_intro' => 'Si se utiliza la sintaxis de wikitexto <code>{<nowiki />{prefix:<i>pagename</i>}}</code>, entonces:',
+	'interwiki_trans_1_intro' => 'permitir la transclusión desde la wiki foránea, si las transclusiones de interwiki son por lo general permitidas en esta wiki,',
+	'interwiki_trans_0_intro' => 'no permitirlo. En su lugar, buscar una página en el espacio de nombre de la plantilla.',
+	'interwiki_intro_footer' => 'Para más información consulte [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] acerca de la tabla de interwiki.
+Hay un [[Special:Log/interwiki|registro de cambios]] a esta tabla de interwiki.',
+	'interwiki_1' => 'Sí',
+	'interwiki_0' => 'no',
+	'interwiki_error' => 'Error: La tabla de interwikis está vacía, u otra cosa salió mal.',
+	'interwiki_edit' => 'Editar',
+	'interwiki_reasonfield' => 'Motivo:',
+	'interwiki_delquestion' => 'Borrando «$1»',
+	'interwiki_deleting' => 'Estás borrando el prefijo «$1».',
+	'interwiki_deleted' => 'El prefijo «$1» ha sido borrado correctamente de la tabla de interwikis.',
+	'interwiki_delfailed' => 'El prefijo «$1» no puede ser borrado de la tabla de interwikis.',
+	'interwiki_addtext' => 'Añadir un prefijo interwiki',
+	'interwiki_addintro' => "Estás añadiendo un nuevo prefijo interwiki.
+Recuerda que no puede contener espacios ( ), dos puntos (:), ni los signos ''et'' (&), o ''igual'' (=).",
+	'interwiki_addbutton' => 'Agregar',
+	'interwiki_added' => 'El prefijo «$1» ha sido añadido correctamente a la tabla de interwikis.',
+	'interwiki_addfailed' => 'El prefijo «$1» no se puede añadir a la tabla de interwikis.
+Posiblemente ya exista.',
+	'interwiki_edittext' => 'Editando un prefijo interwiki',
+	'interwiki_editintro' => 'Estás editando un prefijo interwiki.
+Recuerda que esto puede romper enlaces existentes.',
+	'interwiki_edited' => 'El prefijo «$1» ha sido modificado correctamente en la tabla de interwikis.',
+	'interwiki_editerror' => 'El prefijo «$1» no puede ser modificado en la tabla de interwikis.
+Posiblemente no exista.',
+	'interwiki-badprefix' => 'El prefijo interwiki especificado «$1» contiene caracteres no válidos',
+	'interwiki_logpagename' => 'Tabla de registro de interwiki',
+	'interwiki_logpagetext' => 'Este es un registro de los cambios hechos a la [[Special:Interwiki|tabla interwiki]].',
+	'right-interwiki' => 'Editar datos de interwiki',
+	'action-interwiki' => 'cambiar esta entrada interwiki',
+);
+
+/** Estonian (Eesti)
+ * @author Avjoska
+ */
+$messages['et'] = array(
+	'interwiki_1' => 'jah',
+	'interwiki_0' => 'ei',
+	'interwiki_edit' => 'Redigeeri',
+	'interwiki_reasonfield' => 'Põhjus:',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ * @author Kobazulo
+ */
+$messages['eu'] = array(
+	'interwiki_prefix' => 'Aurrizkia',
+	'interwiki-prefix-label' => 'Aurrizkia:',
+	'interwiki_1' => 'bai',
+	'interwiki_0' => 'ez',
+	'interwiki_edit' => 'Aldatu',
+	'interwiki_reasonfield' => 'Arrazoia:',
+	'interwiki_delquestion' => '"$1" ezabatzen',
+	'interwiki_deleting' => '"$1" aurrizkia ezabatzen ari zara.',
+	'interwiki_addbutton' => 'Gehitu',
+	'interwiki_edittext' => 'Interwiki aurrizkia editatzen',
+);
+
+/** Persian (فارسی)
+ * @author Ebraminio
+ * @author Hamid rostami
+ * @author Huji
+ * @author Mjbmr
+ */
+$messages['fa'] = array(
+	'interwiki' => 'نمایش و ویرایش اطلاعات میان‌ویکی',
+	'interwiki-title-norights' => 'مشاهدهٔ اطلاعات میان‌ویکی',
+	'interwiki-desc' => 'یک [[Special:Interwiki|صفحهٔ ویژه]] برای مشاهده و ویرایش جدول میان‌ویکی می‌افزاید.',
+	'interwiki_intro' => 'قمستی از افزونهٔ میان‌ویکی. به صورت یک مرور کلی در Special:Interwiki نمایش داده شده.',
+	'interwiki_prefix' => 'پیشوند',
+	'interwiki-prefix-label' => 'پیشوند:',
+	'interwiki_local' => 'مشخص کردن به عنوان یک ویکی محلی',
+	'interwiki-local-label' => 'مشخص کردن به عنوان یک ویکی محلی:',
+	'interwiki_trans' => 'اجازهٔ گنجاندن میان‌ویکی را بده',
+	'interwiki-trans-label' => 'اجازهٔ گنجاندن میان‌ویکی را بده:',
+	'interwiki_intro_footer' => 'برای اطلاعات بیشتر در مورد Interwiki به [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] مراحعه نمائید.
+همچنین می‌توانید [[Special:Log/interwiki|تاریخچهٔ تغییرات]] چدول Interwiki را مشاهده کنید.',
+	'interwiki_1' => 'بله',
+	'interwiki_0' => 'خیر',
+	'interwiki_error' => 'خطا: جدول میان‌ویکی خالی است، یا چیز دیگری مشکل دارد.',
+	'interwiki_edit' => 'ویرایش',
+	'interwiki_reasonfield' => 'دلیل:',
+	'interwiki_delquestion' => 'حذف «$1»',
+	'interwiki_deleting' => 'شما در حال حذف کردن پیشوند «$1» هستید.',
+	'interwiki_deleted' => 'پیشوند «$1» با موفقیت از جدول میان‌ویکی حذف شد.',
+	'interwiki_delfailed' => 'پیشوند «$1» را نمی‌توان از جدول میان‌ویکی حذف کرد.',
+	'interwiki_addtext' => 'افزودن یک پیشوند میان‌ویکی',
+	'interwiki_addintro' => 'شما در حال ویرایش یک پیشوند میان‌ویکی هستید.
+توجه داشته باشید که این پیشوند نمی‌تواند شامل فاصله ( )، دو نقطه (:)، علامت آمپرساند (&) یا علامت مساوی (=) باشد.',
+	'interwiki_addbutton' => 'افزودن',
+	'interwiki_added' => 'پیشوند «$1» با موفقیت به جدول میان‌ویکی افزوده شد.',
+	'interwiki_addfailed' => 'پیشوند «$1» را نمی‌توان به جدول میان‌ویکی افزود.
+احتمالاً این پیشوند از قبل در جدول میان‌ویکی وجود دارد.',
+	'interwiki_edittext' => 'ویرایش یک پیشوند میان‌ویکی',
+	'interwiki_editintro' => 'شما در حال ویرایش یک پیشوند میان‌ویکی هستید.
+توجه داشته باشید که این کار می‌تواند پیوندهای موجود را خراب کند.',
+	'interwiki_edited' => 'پیشوند «$1» با موفقیت در جدول میان‌ویکی تغییر داده شد.',
+	'interwiki_editerror' => 'پیشوند «$1» را نمی‌توان در جدول میان‌ویکی تغییر داد.
+احتمالاً این پیشوند وجود ندارد.',
+	'interwiki-badprefix' => 'پیشوند میان‌ویکی «$1» حاوی نویسه‌های غیر مجاز است',
+	'interwiki-submit-empty' => 'پیشوند و آدرس URL نمی‌توانند خالی باشند.',
+	'interwiki_logpagename' => 'سیاههٔ جدول میان‌ویکی',
+	'interwiki_logpagetext' => 'این یک تاریخچه از تغییرات [[Special:Interwiki|interwiki table]] است.',
+	'right-interwiki' => 'ویرایش اطلاعات میان‌ویکی',
+	'action-interwiki' => 'تغییر این مدخل میان‌ویکی',
+);
+
+/** Finnish (Suomi)
+ * @author Crt
+ * @author Jack Phoenix
+ * @author Mobe
+ * @author Nike
+ */
+$messages['fi'] = array(
+	'interwiki' => 'Wikienväliset linkit',
+	'interwiki-title-norights' => 'Selaa interwiki-tietueita',
+	'interwiki-desc' => 'Lisää [[Special:Interwiki|toimintosivun]], jonka avulla voi katsoa ja muokata interwiki-taulua.',
+	'interwiki_intro' => 'Tämä on yleiskatsaus interwiki-taulusta. Tietojen merkitykset sarakkeissa:',
+	'interwiki_prefix' => 'Etuliite',
+	'interwiki-prefix-label' => 'Etuliite:',
+	'interwiki_local' => 'Välitä',
+	'interwiki-local-label' => 'Välitä:',
+	'interwiki_trans' => 'Sisällytä',
+	'interwiki-trans-label' => 'Sisällytä:',
+	'interwiki_1' => 'kyllä',
+	'interwiki_0' => 'ei',
+	'interwiki_error' => 'Virhe: Interwiki-taulu on tyhjä tai jokin muu meni pieleen.',
+	'interwiki_edit' => 'Muokkaa',
+	'interwiki_reasonfield' => 'Syy',
+	'interwiki_delquestion' => 'Poistetaan ”$1”',
+	'interwiki_deleting' => 'Olet poistamassa etuliitettä ”$1”.',
+	'interwiki_deleted' => 'Etuliite ”$1” poistettiin onnistuneesti interwiki-taulusta.',
+	'interwiki_delfailed' => 'Etuliitteen ”$1” poistaminen interwiki-taulusta epäonnistui.',
+	'interwiki_addtext' => 'Lisää wikienvälinen etuliite',
+	'interwiki_addintro' => 'Olet lisäämässä uutta wikienvälistä etuliitettä. Se ei voi sisältää välilyöntejä ( ), kaksoispisteitä (:), et-merkkejä (&), tai yhtäsuuruusmerkkejä (=).',
+	'interwiki_addbutton' => 'Lisää',
+	'interwiki_added' => 'Etuliite ”$1” lisättiin onnistuneesti interwiki-tauluun.',
+	'interwiki_addfailed' => 'Etuliitteen ”$1” lisääminen interwiki-tauluun epäonnistui. Kyseinen etuliite saattaa jo olla interwiki-taulussa.',
+	'interwiki_edittext' => 'Muokataan interwiki-etuliitettä',
+	'interwiki_editintro' => 'Muokkaat interwiki-etuliitettä. Muista, että tämä voi rikkoa olemassa olevia linkkejä.',
+	'interwiki_edited' => 'Etuliitettä ”$1” muokattiin onnistuneesti interwiki-taulukossa.',
+	'interwiki_editerror' => 'Etuliitettä ”$1” ei voi muokata interwiki-taulukossa. Sitä ei mahdollisesti ole olemassa.',
+	'interwiki-badprefix' => 'Annettu interwiki-etuliite <code>$1</code> sisältää virheellisiä merkkejä',
+	'interwiki_logpagename' => 'Interwikitaululoki',
+	'interwiki_logpagetext' => 'Tämä on loki muutoksista [[Special:Interwiki|interwiki-tauluun]].',
+	'right-interwiki' => 'Muokata interwiki-dataa',
+	'action-interwiki' => 'muokata tätä interwiki-merkintää',
+);
+
+/** French (Français)
+ * @author Crochet.david
+ * @author Gomoko
+ * @author Grondin
+ * @author IAlex
+ * @author Jean-Frédéric
+ * @author Louperivois
+ * @author Purodha
+ * @author Sherbrooke
+ * @author Urhixidur
+ * @author Verdy p
+ */
+$messages['fr'] = array(
+	'interwiki' => 'Voir et manipuler les données interwiki',
+	'interwiki-title-norights' => 'Voir les données interwiki',
+	'interwiki-desc' => 'Ajoute une [[Special:Interwiki|page spéciale]] pour voir et modifier la table interwiki',
+	'interwiki_intro' => 'Ceci est aperçu de la table interwiki. Voici les significations des données de colonnes :',
+	'interwiki_prefix' => 'Préfixe',
+	'interwiki-prefix-label' => 'Préfixe :',
+	'interwiki_prefix_intro' => 'Préfixe interwiki à utiliser dans <code>[<nowiki />[préfixe:<i>nom de la page</i>]]</code> de la syntaxe wiki.',
+	'interwiki-url-label' => 'URL :',
+	'interwiki_url_intro' => 'Modèle pour les URLs. $1 sera remplacé par le <i>nom de la page</i> du wikitexte, quand la syntaxe ci-dessus est utilisée.',
+	'interwiki_local' => 'Faire suivre',
+	'interwiki-local-label' => 'Faire suivre :',
+	'interwiki_local_intro' => "Une requête HTTP sur ce wiki avec ce préfixe interwiki dans l'URL sera :",
+	'interwiki_local_0_intro' => 'rejeté, bloqué généralement par « Mauvais titre »,',
+	'interwiki_local_1_intro' => "redirigé vers l'URL cible en fonction de la définition du préfixe interwiki (c'est-à-dire traité comme un lien dans une page du wiki)",
+	'interwiki_trans' => 'Inclure',
+	'interwiki-trans-label' => 'Inclure :',
+	'interwiki_trans_intro' => 'Si la syntaxe <code>{<nowiki />{préfixe:<i>nom de la page</i>}}</code> est utilisée, alors :',
+	'interwiki_trans_1_intro' => "l'inclusion à partir du wiki sera autorisée, si les inclusion interwiki sont autorisées dans ce wiki,",
+	'interwiki_trans_0_intro' => "l'inclusion sera rejetée, et la page correspondante sera recherchée dans l'espace de noms « Modèle ».",
+	'interwiki_intro_footer' => "Voyez [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] pour obtenir plus d'informations en ce qui concerne la table interwiki.
+Il existe un [[Special:Log/interwiki|journal des modifications]] de la table interwiki.",
+	'interwiki_1' => 'oui',
+	'interwiki_0' => 'non',
+	'interwiki_error' => "Erreur : la table des interwikis est vide ou un processus s'est mal déroulé.",
+	'interwiki-cached' => 'Les données interwiki sont mis en cache. Il n’est pas possible de modifier le cache.',
+	'interwiki_edit' => 'Modifier',
+	'interwiki_reasonfield' => 'Motif :',
+	'interwiki_delquestion' => 'Suppression de « $1 »',
+	'interwiki_deleting' => 'Vous effacez présentement le préfixe « $1 ».',
+	'interwiki_deleted' => '« $1 » a été enlevé avec succès de la table interwiki.',
+	'interwiki_delfailed' => "« $1 » n'a pas pu être enlevé de la table interwiki.",
+	'interwiki_addtext' => 'Ajouter un préfixe interwiki',
+	'interwiki_addintro' => "Vous êtes en train d'ajouter un préfixe interwiki. Rappelez-vous qu'il ne peut pas contenir d'espaces ( ), de deux-points (:), d'esperluettes (&) ou de signes égal (=).",
+	'interwiki_addbutton' => 'Ajouter',
+	'interwiki_added' => '« $1 » a été ajouté avec succès dans la table interwiki.',
+	'interwiki_addfailed' => "« $1 » n'a pas pu être ajouté à la table interwiki.",
+	'interwiki_edittext' => 'Modifier un préfixe interwiki',
+	'interwiki_editintro' => 'Vous modifiez un préfixe interwiki. Rappelez-vous que cela peut casser des liens existants.',
+	'interwiki_edited' => 'Le préfixe « $1 » a été modifié avec succès dans la table interwiki.',
+	'interwiki_editerror' => "Le préfixe « $1 » ne peut pas être modifié. Il se peut qu'il n'existe pas.",
+	'interwiki-badprefix' => 'Le préfixe interwiki spécifié « $1 » contient des caractères invalides',
+	'interwiki-submit-empty' => "Le préfixe et l'URL ne peuvent être vides.",
+	'interwiki_logpagename' => 'Journal de la table interwiki',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|a ajouté}} le préfixe "$4" ($5) (trans: $6; local: $7) à la table interwiki',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|a modifié}} le préfixe "$4" ($5) (trans: $6; local: $7) dans la table interwiki',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|a supprimé}} le préfixe "$4" de la table interwiki',
+	'interwiki_logpagetext' => 'Ceci est le journal des changements dans la [[Special:Interwiki|table interwiki]].',
+	'right-interwiki' => 'Modifier les données interwiki',
+	'action-interwiki' => 'modifier cette entrée interwiki',
+);
+
+/** Franco-Provençal (Arpetan)
+ * @author Cedric31
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'interwiki' => 'Vêre et changiér les balyês entèrvouiqui',
+	'interwiki-title-norights' => 'Vêre les balyês entèrvouiqui',
+	'interwiki_prefix' => 'Prèfixo',
+	'interwiki-prefix-label' => 'Prèfixo :',
+	'interwiki_local' => 'Fâre siuvre',
+	'interwiki-local-label' => 'Fâre siuvre :',
+	'interwiki_trans' => 'Encllure',
+	'interwiki-trans-label' => 'Encllure :',
+	'interwiki_1' => 'ouè',
+	'interwiki_0' => 'nan',
+	'interwiki_edit' => 'Changiér',
+	'interwiki_reasonfield' => 'Rêson :',
+	'interwiki_delquestion' => 'Suprèssion de « $1 »',
+	'interwiki_deleting' => 'Vos éte aprés suprimar lo prèfixo « $1 ».',
+	'interwiki_addtext' => 'Apondre un prèfixo entèrvouiqui',
+	'interwiki_addbutton' => 'Apondre',
+	'interwiki_edittext' => 'Changiér un prèfixo entèrvouiqui',
+	'interwiki_logpagename' => 'Jornal de la trâbla entèrvouiqui',
+	'right-interwiki' => 'Changiér les balyês entèrvouiqui',
+	'action-interwiki' => 'changiér ceta entrâ entèrvouiqui',
+);
+
+/** Western Frisian (Frysk)
+ * @author Snakesteuben
+ */
+$messages['fy'] = array(
+	'interwiki_addbutton' => 'Tafoegje',
+);
+
+/** Galician (Galego)
+ * @author Alma
+ * @author Toliño
+ * @author Xosé
+ */
+$messages['gl'] = array(
+	'interwiki' => 'Ver e manipular datos interwiki',
+	'interwiki-title-norights' => 'Ver os datos do interwiki',
+	'interwiki-desc' => 'Engade unha [[Special:Interwiki|páxina especial]] para ver e editar a táboa de interwikis',
+	'interwiki_intro' => 'Esta é unha vista xeral da táboa de interwikis. Os significados dos datos aparecen nas columnas:',
+	'interwiki_prefix' => 'Prefixo',
+	'interwiki-prefix-label' => 'Prefixo:',
+	'interwiki_prefix_intro' => 'Prefixo interwiki a ser usado coa sintaxe do texto wiki <code>[<nowiki />[prefixo:<i>nome da páxina</i>]]</code>.',
+	'interwiki_url' => 'URL',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Modelo para os enderezos URL. O espazo reservado $1 será substituído polo <i>nome da páxina</i> do texto wiki, cando se usa a sintaxe do devantito texto wiki.',
+	'interwiki_local' => 'Avanzar',
+	'interwiki-local-label' => 'Avanzar:',
+	'interwiki_local_intro' => 'Unha solicitude HTTP ao wiki local con este prefixo interwiki no URL é:',
+	'interwiki_local_0_intro' => 'ignoradas, normalmente bloqueadas, dando unha mensaxe de "a páxina non foi atopada",',
+	'interwiki_local_1_intro' => 'redirixidas cara ao enderezo URL de destino indicado na ligazón interwiki das definicións (ou sexa, serán tratadas como referencias nas páxinas)',
+	'interwiki_trans' => 'Transcluír',
+	'interwiki-trans-label' => 'Transcluír:',
+	'interwiki_trans_intro' => 'Se a sintaxe do texto wiki <code>{<nowiki />{prefixo:<i>nome da páxina</i>}}</code> é usado, entón:',
+	'interwiki_trans_1_intro' => 'permitir as transclusións a partir do wiki estranxeiro, se estas transclusións interwiki están xeralmente permitidas neste wiki,',
+	'interwiki_trans_0_intro' => 'non permitilas, e procurar a páxina no espazo de nomes "Modelo".',
+	'interwiki_intro_footer' => 'Consulte [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] para obter máis información acerca da táboa de interwikis.
+Ademais, existe un [[Special:Log/interwiki|rexistro dos cambios]] realizados á táboa de interwikis.',
+	'interwiki_1' => 'si',
+	'interwiki_0' => 'non',
+	'interwiki_error' => 'Erro: A táboa de interwikis está baleira, ou algo máis saíu mal.',
+	'interwiki-cached' => 'Os datos sobre os interwikis almacénanse na caché. Non é posible modificar a caché.',
+	'interwiki_edit' => 'Editar',
+	'interwiki_reasonfield' => 'Motivo:',
+	'interwiki_delquestion' => 'Eliminando "$1"',
+	'interwiki_deleting' => 'Vai eliminar o prefixo "$1".',
+	'interwiki_deleted' => 'Eliminouse sen problemas o prefixo "$1" da táboa de interwikis.',
+	'interwiki_delfailed' => 'Non se puido eliminar o prefixo "$1" da táboa de interwikis.',
+	'interwiki_addtext' => 'Engadir un prefixo interwiki',
+	'interwiki_addintro' => 'Está engadindo un novo prefixo interwiki. Recorde que non pode conter espazos ( ), dous puntos (:), símbolos de unión (&) ou signos de igual (=).',
+	'interwiki_addbutton' => 'Engadir',
+	'interwiki_added' => 'Engadiuse sen problemas o prefixo "$1" á táboa de interwikis.',
+	'interwiki_addfailed' => 'Non se puido engadir o prefixo "$1" á táboa de interwikis.
+Posiblemente xa existe na táboa de interwikis.',
+	'interwiki_edittext' => 'Editando un prefixo interwiki',
+	'interwiki_editintro' => 'Está editando un prefixo interwiki. Lembre que isto pode quebrar ligazóns existentes.',
+	'interwiki_edited' => 'O prefixo "$1" foi modificado con éxito na táboa de interwikis.',
+	'interwiki_editerror' => 'O prefixo "$1" non se puido modificar na táboa de interwikis. Posiblemente non existe.',
+	'interwiki-badprefix' => 'O prefixo interwiki especificado "$1" contén caracteres inválidos',
+	'interwiki-submit-empty' => 'O prefixo e o enderezo URL non poden quedar baleiros.',
+	'interwiki_logpagename' => 'Rexistro da táboa de interwikis',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|engadiu}} o prefixo "$4" ($5) (trans: $6; local: $7) á táboa de interwikis',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|modificou}} o prefixo "$4" ($5) (trans: $6; local: $7) na táboa de interwikis',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|eliminou}} o prefixo "$4" da táboa de interwikis',
+	'interwiki_logpagetext' => 'Este é un rexistro dos cambios feitos na [[Special:Interwiki|táboa de interwikis]].',
+	'right-interwiki' => 'Editar os datos do interwiki',
+	'action-interwiki' => 'cambiar esta entrada de interwiki',
+);
+
+/** Gothic (Gothic)
+ * @author Jocke Pirat
+ * @author Omnipaedista
+ */
+$messages['got'] = array(
+	'interwiki_reasonfield' => '𐍆𐌰𐌹𐍂𐌹𐌽𐌰:',
+);
+
+/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
+ * @author Crazymadlover
+ * @author Omnipaedista
+ */
+$messages['grc'] = array(
+	'interwiki' => 'Ὁρᾶν καὶ μεταγράφειν διαβικι-δεδομένα',
+	'interwiki-title-norights' => 'Ὁρᾶν διαβικι-δεδομένα',
+	'interwiki_prefix' => 'Πρόθεμα',
+	'interwiki-prefix-label' => 'Πρόθεμα:',
+	'interwiki_local' => 'Ἀκολούθησις',
+	'interwiki-local-label' => 'Ἀκολούθησις:',
+	'interwiki_trans' => 'Ὑπερδιαποκλῄειν',
+	'interwiki-trans-label' => 'Ὑπερδιαποκλῄειν:',
+	'interwiki_1' => 'ναί',
+	'interwiki_0' => 'οὐ',
+	'interwiki_error' => 'Σφάλμα: Ὁ διαβικι-πίναξ κενός ἐστίν, ἢ ἑτέρα ἐσφαλμένη ἐνέργειά τι συνέβη.',
+	'interwiki_edit' => 'Μεταγράφειν',
+	'interwiki_reasonfield' => 'Αἰτία:',
+	'interwiki_delquestion' => 'Διαγράφειν τὴν "$1"',
+	'interwiki_deleting' => 'Διαγράφεις τὸ πρόθεμα "$1".',
+	'interwiki_deleted' => 'Τὸ πρόθεμα "$1" ἀφῃρημένον ἐπιτυχῶς ἐστὶ ἐκ τοῦ διαβικι-πίνακος.',
+	'interwiki_delfailed' => 'Τὸ πρόθεμα "$1" μὴ ἀφαιρέσιμον ἐκ τοῦ διαβικι-πίνακος ἦν.',
+	'interwiki_addtext' => 'Προστιθέναι διαβικι-πρόθεμά τι',
+	'interwiki_addintro' => 'Προσθέτεις νέον διαβικι-πρόθεμά τι.
+Οὐκ ἔξεστί σοι χρῆσαι κενά ( ), κόλα (:), σύμβολα τοῦ σύν (&), ἢ σύμβολα τοῦ ἴσον (=).',
+	'interwiki_addbutton' => 'Προστιθέναι',
+	'interwiki_added' => 'Τὸ πρόθεμα "$1" ἐπιτυχῶς προσετέθη τῷ διαβικι-πίνακι.',
+	'interwiki_addfailed' => 'Τὸ πρόθεμα "$1" οὐ προσετέθη τῷ διαβικι-πίνακι.
+Πιθανῶς ἤδη ὑπάρχει ἐν τῷ διαβικι-πίνακι.',
+	'interwiki_edittext' => 'Μεταγράφειν διαβικι-πρόθεμά τι',
+	'interwiki_editintro' => 'Μεταγράφεις διαβικι-πρόθεμά τι.
+Μέμνησο τὴν πιθανότητα καταστροφῆς τῶν ὑπαρχόντων συνδέσμων.',
+	'interwiki_edited' => 'Τὸ πρόθεμα "$1" ἐπιτυχῶς ἐτράπη ἐν τῷ διαβικι-πίνακι.',
+	'interwiki_editerror' => 'Τὸ πρόθεμα "$1" μὴ μετατρέψιμον ἐστὶ ἐν τῷ διαβικι-πίνακι.
+Πιθανῶς οὐκ ἔστι.',
+	'interwiki-badprefix' => 'Τὸ καθωρισμένον διαβικι-πρόθεμά  "$1" περιέχει ἀκύρους χαρακτῆρας',
+	'right-interwiki' => 'Μεταγράφειν διαβίκι-δεδομένα',
+);
+
+/** Swiss German (Alemannisch)
+ * @author Als-Chlämens
+ * @author Als-Holder
+ */
+$messages['gsw'] = array(
+	'interwiki' => 'Interwiki-Date aaluege un bearbeite',
+	'interwiki-title-norights' => 'Interwiki-Date aaluege',
+	'interwiki-desc' => '[[Special:Interwiki|Spezialsyte]] zum Interwiki-Tabälle pfläge',
+	'interwiki_intro' => 'Des isch e Iberblick iber d Interwiki-Tabälle. D Date in dr einzelne Spalte hän die Bedytig:',
+	'interwiki_prefix' => 'Präfix',
+	'interwiki-prefix-label' => 'Präfix:',
+	'interwiki_prefix_intro' => 'Interwiki-Präfix, wu in dr Form <code>[<nowiki />[präfix:<i>Sytename</i>]]</code> im Wikitext cha bruucht wäre.',
+	'interwiki_url_intro' => 'Muschter für URL. Dr Platzhalter $1 wird dur <i>Sytename</i> us dr Syntax im Wikitäxt ersetzt, wu oben gnännt wird.',
+	'interwiki_local' => 'Wyter',
+	'interwiki-local-label' => 'Wyter:',
+	'interwiki_local_intro' => 'E HTTP-Aafrog an s lokal Wiki mit däm Interwiki-Präfix in dr URL wird:',
+	'interwiki_local_0_intro' => 'nit gmacht, sundere normalerwyys mit „Syte nit gfunde“ blockiert',
+	'interwiki_local_1_intro' => 'automatisch uf d Ziil-URL in dr Interwikigleich-Definitione wytergleitet (d. h. behandlet wie Wikigleicher uf lokali Syte)',
+	'interwiki_trans' => 'Quer vernetze',
+	'interwiki-trans-label' => 'Quer vernetze:',
+	'interwiki_trans_intro' => 'Wänn Vorlagesyntax <code>{<nowiki />{präfix:<i>Sytename</i>}}</code> bruucht wird, derno:',
+	'interwiki_trans_1_intro' => 'erlaub Yybindige vu andere Wiki, wänn Interwiki-Yybindigen in däm Wiki allgmein zuelässig sin,',
+	'interwiki_trans_0_intro' => 'erlaub s nit, un nimm e Syte us em Vorlagenamensruum.',
+	'interwiki_intro_footer' => 'Lueg [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] fir meh Informationen iber d Interwiki-Tabälle. S [[Special:Log/interwiki|Logbuech]] zeigt e Protokoll vu allene Änderigen an dr Interwiki-Tabälle.',
+	'interwiki_1' => 'jo',
+	'interwiki_0' => 'nei',
+	'interwiki_error' => 'Fähler: D Interwiki-Tabälle isch läär.',
+	'interwiki-cached' => 'D Interwikidatenwurden im Cache uffgno worde. D Date im Cache z ändre isch nit mögli.',
+	'interwiki_edit' => 'Bearbeite',
+	'interwiki_reasonfield' => 'Grund:',
+	'interwiki_delquestion' => 'Lescht „$1“',
+	'interwiki_deleting' => 'Du bisch am Lesche vum Präfix „$1“.',
+	'interwiki_deleted' => '„$1“ isch mit Erfolg us dr Interwiki-Tabälle usegnuh wore.',
+	'interwiki_delfailed' => '„$1“ het nit chenne us dr Interwiki-Tabälle glescht wäre.',
+	'interwiki_addtext' => 'E Interwiki-Präfix zuefiege',
+	'interwiki_addintro' => 'Du fiegsch e nej Interwiki-Präfix zue. Gib Acht, ass es kei Läärzeiche ( ), Chaufmännisch Un (&), Glyychzeiche (=) un kei Doppelpunkt (:) derf enthalte.',
+	'interwiki_addbutton' => 'Zuefiege',
+	'interwiki_added' => '„$1“ isch mit Erfolg dr Interwiki-Tabälle zuegfiegt wore.',
+	'interwiki_addfailed' => '„$1“ het nit chenne dr Interwiki-Tabälle zuegfiegt wäre.',
+	'interwiki_edittext' => 'Interwiki-Präfix bearbeite',
+	'interwiki_editintro' => 'Du bisch am Ändere vun eme Präfix.
+Gib Acht, ass des Gleicher cha uugiltig mache, wu s scho git.',
+	'interwiki_edited' => 'S Präfix „$1“ isch mit Erfolg in dr Interwiki-Tabälle gänderet wore.',
+	'interwiki_editerror' => 'S Präfix „$1“ cha in dr Interwiki-Tabälle nit gänderet wäre.
+Villicht git s es nit.',
+	'interwiki-badprefix' => 'Im feschtgleite Interwikipräfix „$1“ het s nit giltigi Zeiche din',
+	'interwiki-submit-empty' => 'S Präfix un d URL dürfe nit läär sy.',
+	'interwiki_logpagename' => 'Interwikitabälle-Logbuech',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|het}} s Präfix „$4“ ($5) (trans: $6; local: $7) uff de Interwikitabelle dezuegfiegt',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|het}} s Präfix „$4“ ($5) (trans: $6; local: $7) uff de Interwikitabelle gänderet',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|het}} s Präfix „$4“ uss dr Interwikitabelle ussegno',
+	'interwiki_logpagetext' => 'In däm Logbuech wäre Änderige an dr [[Special:Interwiki|Interwiki-Tabälle]] protokolliert.',
+	'right-interwiki' => 'Interwiki-Tabälle bearbeite',
+	'action-interwiki' => 'Där Interwiki-Yytrag ändere',
+);
+
+/** Gujarati (ગુજરાતી)
+ * @author Dineshjk
+ */
+$messages['gu'] = array(
+	'interwiki_reasonfield' => 'કારણ:',
+);
+
+/** Manx (Gaelg)
+ * @author MacTire02
+ */
+$messages['gv'] = array(
+	'interwiki_reasonfield' => 'Fa:',
+);
+
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'interwiki_reasonfield' => 'Dalili:',
+);
+
+/** Hawaiian (Hawai`i)
+ * @author Kalani
+ * @author Singularity
+ */
+$messages['haw'] = array(
+	'interwiki_edit' => 'E hoʻololi',
+	'interwiki_reasonfield' => 'Kumu:',
+	'interwiki_addbutton' => 'Ho‘ohui',
+);
+
+/** Hebrew (עברית)
+ * @author Agbad
+ * @author Amire80
+ * @author Rotemliss
+ * @author YaronSh
+ * @author דניאל ב.
+ */
+$messages['he'] = array(
+	'interwiki' => 'הצגת ועריכת מידע הבינוויקי',
+	'interwiki-title-norights' => 'הצגת מידע הבינוויקי',
+	'interwiki-desc' => 'הוספת [[Special:Interwiki|דף מיוחד]] להצגת ולעריכת טבלת הבינוויקי',
+	'interwiki_intro' => 'זוהי סקירה של טבלת הבינוויקי. משמעויות הנתונים שבעמודות:',
+	'interwiki_prefix' => 'קידומת',
+	'interwiki-prefix-label' => 'קידומת:',
+	'interwiki_prefix_intro' => 'קידומת הבינוויקי שתשמש בתחביר <code>[<nowiki />[prefix:<i>שם_הדף</i>]]</code>',
+	'interwiki_url_intro' => 'תבנית עבור כתובות. ממלא המקום $1 יוחלף על ידי <i>שם_הדף</i>, כאשר נעשה שימוש בתחביר שהוזכר לעיל.',
+	'interwiki_local' => 'העברה',
+	'interwiki-local-label' => 'העברה:',
+	'interwiki_local_intro' => 'בקשת HTTP לאתר הוויקי המקומי עם קידומת בינוויקי זו בכתובת:',
+	'interwiki_local_0_intro' => 'לא מכובדת, לרוב נחסמת עם הודעת "הדף לא נמצא",',
+	'interwiki_local_1_intro' => 'מופנית אל כתובת היעד שניתנה בהגדרות קישור הבינוויקי (כלומר מטופלת כמו הפניה בדפים מקומיים)',
+	'interwiki_trans' => 'הכללת מקטעים חיצוניים',
+	'interwiki-trans-label' => 'הכללת מקטעים חיצוניים:',
+	'interwiki_trans_intro' => 'אם נעשה שימוש בתחביר <code>{<nowiki />{prefix:<i>שם_הדף</i>}}</code>,אז:',
+	'interwiki_trans_1_intro' => 'תינתן האפשרות להכללת מקטעים חיצוניים מאתר ויקי זר, אם הכללות מקטעי ויקי חיצוניים מורשים באופן כללי באתר ויקי זה,',
+	'interwiki_trans_0_intro' => 'אין לאפשר זאת, במקום זאת יש לחפש דף במרחב השם תבנית.',
+	'interwiki_intro_footer' => 'עיינו ב־[//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] למידע נוסף אודות טבלת הבינוויקי.
+ישנו [[Special:Log/interwiki|יומן שינויים]] לטבלת הבינוויקי.',
+	'interwiki_1' => 'כן',
+	'interwiki_0' => 'לא',
+	'interwiki_error' => 'שגיאה: טבלת הבינוויקי ריקה, או שיש שגיאה אחרת.',
+	'interwiki-cached' => 'מידע בינוויקי מוטמן. שינוי המטמון אינו אפשרי.',
+	'interwiki_edit' => 'עריכה',
+	'interwiki_reasonfield' => 'סיבה:',
+	'interwiki_delquestion' => 'מחיקת "$1"',
+	'interwiki_deleting' => 'הנכם מוחקים את הקידומת "$1".',
+	'interwiki_deleted' => 'הקידומת "$1" הוסרה בהצלחה מטבלת הבינוויקי.',
+	'interwiki_delfailed' => 'לא ניתן להסיר את הקידומת "$1" מטבלת הבינוויקי.',
+	'interwiki_addtext' => 'הוספת קידומת בינוויקי',
+	'interwiki_addintro' => 'הנכם עורכים קידומת בינוויקי.
+זכרו שלא ניתן לכלול רווחים ( ), נקודותיים (:), אמפרסנד (&) או הסימן שווה (=).',
+	'interwiki_addbutton' => 'הוספה',
+	'interwiki_added' => 'הקידומת "$1" נוספה בהצלחה לטבלת הבינוויקי.',
+	'interwiki_addfailed' => 'לא ניתן להוסיף את הקידומת "$1" לטבלת הבינוויקי.
+ייתכן שהיא כבר קיימת בטבלה.',
+	'interwiki_edittext' => 'עריכת קידומת בינוויקי',
+	'interwiki_editintro' => 'הנכם עורכים קידומת בינוויקי.
+זכרו שפעולה זו עלולה לשבור קישורים קיימים.',
+	'interwiki_edited' => 'הקידומת "$1" שונתה בהצלחה בטבלת הבינוויקי.',
+	'interwiki_editerror' => 'לא ניתן לשנות את הקידומת "$1" בטבלת הבינוויקי.
+ייתכן שהיא אינה קיימת.',
+	'interwiki-badprefix' => 'קידומת הבינוויקי שצוינה, "$1", כוללת תווים בלתי תקינים',
+	'interwiki-submit-empty' => 'הקידומת והכתובת אינן יכולות להיות ריקות.',
+	'interwiki_logpagename' => 'יומן טבלת הבינוויקי',
+	'interwiki_logpagetext' => 'זהו יומן השינויים שנערכו ב[[Special:Interwiki|טבלת הבינוויקי]].',
+	'right-interwiki' => 'עריכת נתוני הבינוויקי',
+	'action-interwiki' => 'לשנות את רשומת הבינוויקי הזו',
+);
+
+/** Hindi (हिन्दी)
+ * @author Kaustubh
+ */
+$messages['hi'] = array(
+	'interwiki' => 'आंतरविकि डाटा देखें एवं बदलें',
+	'interwiki-title-norights' => 'आंतरविकि डाटा देखें',
+	'interwiki-desc' => 'आंतरविकि तालिका देखनेके लिये और बदलने के लिये एक [[Special:Interwiki|विशेष पॄष्ठ]]',
+	'interwiki_intro' => 'आंतरविकि तालिका के बारें में अधिक ज़ानकारी के लिये [http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org] देखें। यहां आंतरविकि तालिका में हुए [[Special:Log/interwiki|बदलावों की सूची]] हैं।',
+	'interwiki_prefix' => 'उपपद',
+	'interwiki-prefix-label' => 'उपपद:',
+	'interwiki_error' => 'गलती: आंतरविकि तालिका खाली हैं, या और कुछ गलत हैं।',
+	'interwiki_reasonfield' => 'कारण:',
+	'interwiki_delquestion' => '$1 को हटा रहें हैं',
+	'interwiki_deleting' => 'आप "$1" उपपद हटा रहें हैं।',
+	'interwiki_deleted' => '"$1" उपपद आंतरविकि तालिकासे हटा दिया गया हैं।',
+	'interwiki_delfailed' => '"$1" उपपद आंतरविकि तालिकासे हटा नहीं पा रहें हैं।',
+	'interwiki_addtext' => 'एक आंतरविकि उपपद दें',
+	'interwiki_addintro' => 'आप एक नया आंतरविकि उपपद बढा रहें हैं। कृपया ध्यान रहें की इसमें स्पेस ( ), विसर्ग (:), और (&), या बराबर का चिन्ह (=) नहीम दे सकतें हैं।',
+	'interwiki_addbutton' => 'बढायें',
+	'interwiki_added' => '$1" उपपद आंतरविकि तालिका में बढाया गया हैं।',
+	'interwiki_addfailed' => '"$1" उपपद आंतरविकि तालिका में बढा नहीं पायें।
+शायद वह पहले से अस्तित्वमें हैं।',
+	'interwiki_edittext' => 'एक आंतरविकि उपपद बदल रहें हैं',
+	'interwiki_editintro' => 'आप एक आंतरविकि उपपद बदल रहें हैं। ध्यान रखें ये पहले दी हुई कड़ीयों को तोड सकता हैं।',
+	'interwiki_edited' => '"$1" उपपद आंतरविकि तालिका में बदला गया।',
+	'interwiki_editerror' => '"$1" उपपद आंतरविकि तालिका में बदल नहीं पायें। शायद वह अस्तित्वमें नहीं हैं।',
+	'interwiki_logpagename' => 'आंतरविकि तालिका सूची',
+	'interwiki_logpagetext' => '[[Special:Interwiki|आंतरविकि तालिकामें]] हुए बदलावोंकी यह सूची है।',
+);
+
+/** Hiligaynon (Ilonggo)
+ * @author Jose77
+ */
+$messages['hil'] = array(
+	'interwiki_reasonfield' => 'Rason:',
+);
+
+/** Croatian (Hrvatski)
+ * @author Dalibor Bosits
+ * @author Ex13
+ * @author SpeedyGonsales
+ */
+$messages['hr'] = array(
+	'interwiki' => 'Vidi i uredi međuwiki podatke',
+	'interwiki-title-norights' => 'Gledanje interwiki tablice',
+	'interwiki-desc' => 'Dodaje [[Special:Interwiki|posebnu stranicu]] za gledanje i uređivanje interwiki tablice',
+	'interwiki_intro' => 'Ovo je pregled međuwiki tablice. Značenja podataka u stupcima:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Međuwiki prefiks koji će se rabiti u <code>[<nowiki />[prefix:<i>pagename</i>]]</code> wikitekst sintaksi.',
+	'interwiki_url_intro' => 'Predložak za URL-ove. Varijabla $1 biti će zamijenjena s <i>pagename</i> u wikitekst, kad će navedena wikitekst sintaksa biti rabljena.',
+	'interwiki_local' => 'Proslijedi',
+	'interwiki-local-label' => 'Proslijedi:',
+	'interwiki_trans' => 'Transkludiraj',
+	'interwiki-trans-label' => 'Uključi:',
+	'interwiki_1' => 'da',
+	'interwiki_0' => 'ne',
+	'interwiki_error' => 'GREŠKA: Interwiki tablica je prazna, ili je nešto drugo neispravno.',
+	'interwiki_edit' => 'Uredi',
+	'interwiki_reasonfield' => 'Razlog:',
+	'interwiki_delquestion' => 'Brišem "$1"',
+	'interwiki_deleting' => 'Brišete prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" je uspješno uklonjen iz interwiki tablice.',
+	'interwiki_delfailed' => 'Prefiks "$1" nije mogao biti uklonjen iz interwiki tablice.',
+	'interwiki_addtext' => 'Dodaj međuwiki prefiks',
+	'interwiki_addintro' => 'Uređujete novi interwiki prefiks. Upamtite, prefiks ne može sadržavati prazno mjesto ( ), dvotočku (:), znak za i (&), ili znakove jednakosti (=).',
+	'interwiki_addbutton' => 'Dodaj',
+	'interwiki_added' => 'Prefiks "$1" je uspješno dodan u interwiki tablicu.',
+	'interwiki_addfailed' => 'Prefiks "$1" nije mogao biti dodan u interwiki tablicu. Vjerojatno već postoji u interwiki tablici.',
+	'interwiki_edittext' => 'Uređivanje interwiki prefiksa',
+	'interwiki_editintro' => 'Uređujete interwiki prefiks. Ovo može oštetiti postojeće poveznice.',
+	'interwiki_edited' => 'Prefiks "$1" je uspješno promijenjen u interwiki tablici.',
+	'interwiki_editerror' => 'Prefiks "$1" ne može biti promijenjen u interwiki tablici. Vjerojatno ne postoji.',
+	'interwiki-badprefix' => 'Određeni međuwiki prefiks "$1" sadrži nedozvoljene znakove',
+	'interwiki_logpagename' => 'Evidencije interwiki tablice',
+	'interwiki_logpagetext' => 'Ovo su evidencije promjena na [[Special:Interwiki|interwiki tablici]].',
+	'right-interwiki' => 'Uređivanje interwiki podataka',
+	'action-interwiki' => 'uredi ovaj međuwiki zapis',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'interwiki' => 'Interwiki-daty wobhladać a změnić',
+	'interwiki-title-norights' => 'Daty interwiki wobhladać',
+	'interwiki-desc' => 'Přidawa [[Special:Interwiki|specialnu stronu]] za wobhladowanje a wobdźěłowanje interwiki-tabele',
+	'interwiki_intro' => 'Tutón je přehlad tabele interwiki. Woznamy datow w stołpach:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Prefiks interwiki, kotryž ma so we wikitekstowej syntaksy <code>[<nowiki />[prefix:<i>pagename</i>]]</code> wužiwać.',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Předłoha za URL. Zastupne znamjěsko $1 naruna so přez <i>mjeno strony</i> wikijoweho teksta, hdyž so horjeka naspomnjena wikitekstowa syntaksa wužiwa.',
+	'interwiki_local' => 'Doprědka',
+	'interwiki-local-label' => 'Doprědka:',
+	'interwiki_local_intro' => 'Naprašowanje http do lokalneho wiki z tutym prefiksom interwiki w URL je:',
+	'interwiki_local_0_intro' => 'njepřipóznaty, zwjetša přez "strona njenamakana" zablokowany',
+	'interwiki_local_1_intro' => 'K cilowemu URL w definicijach wotkaza interwiki dale sposrědkowany (t. j. wobchadźa so z tym kaž z referencami w lokalnych stronach)',
+	'interwiki_trans' => 'Transkludować',
+	'interwiki-trans-label' => 'Transkludować:',
+	'interwiki_trans_intro' => 'Jeli je so wikijowa syntaksa <code>{<nowiki />{prefix:<i>pagename</i>}}</code> wužiwa, to:',
+	'interwiki_trans_1_intro' => 'Zapřijeće z cuzeho wikija dowolić, jeli zapřijeća interwiki so powšitkownje w tutym wikiju dopušćeja,',
+	'interwiki_trans_0_intro' => 'je njedowolić, pohladaj skerje za stronu w mjenowym rumje Předłoha',
+	'interwiki_intro_footer' => 'Hlej [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] za dalše informacije wo tabeli interwikijow.
+Je [[Special:Log/interwiki|protokol změnow]] tabele interwikijow.',
+	'interwiki_1' => 'haj',
+	'interwiki_0' => 'ně',
+	'interwiki_error' => 'ZMYLK: Interwiki-tabela je prózdna abo něšto je wopak.',
+	'interwiki-cached' => 'Interwikijowe daty su pufrowane. Njeje móžno pufrowak změnić.',
+	'interwiki_edit' => 'Wobdźěłać',
+	'interwiki_reasonfield' => 'Přičina:',
+	'interwiki_delquestion' => 'Wušmórnja so "$1"',
+	'interwiki_deleting' => 'Wušmórnješ prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" je so wuspěšnje z interwiki-tabele wotstronił.',
+	'interwiki_delfailed' => 'Prefiks "$1" njeda so z interwiki-tabele wotstronić.',
+	'interwiki_addtext' => 'Interwiki-prefiks přidać',
+	'interwiki_addintro' => 'Přidawaš nowy prefiks interwiki. Wobkedźbuj, zo njesmě mjezery ( ), dwudypki (.), et-znamješka (&) abo znaki runosće (=) wobsahować.',
+	'interwiki_addbutton' => 'Přidać',
+	'interwiki_added' => 'Prefiks "$1" je so wuspěšnje interwiki-tabeli přidał.',
+	'interwiki_addfailed' => 'Prefiks "$1" njeda so interwiki-tabeli přidać. Snano eksistuje hižo w interwiki-tabeli.',
+	'interwiki_edittext' => 'Prefiks interwiki wobdźěłać',
+	'interwiki_editintro' => 'Wobdźěłuješ prefiks interwiki.
+Wobkedźbuj, zo to móže eksistowace wotkazy skóncować.',
+	'interwiki_edited' => 'Prefiks "$1" je so wuspěšnje w tabeli interwiki změnil.',
+	'interwiki_editerror' => 'Prefiks "$1" njeda so w tabeli interwiki změnić.
+Snano njeeksistuje.',
+	'interwiki-badprefix' => 'Podaty prefiks interwiki "$1" wobsahuje njepłaćiwe znamješka',
+	'interwiki-submit-empty' => 'Prefiks a URL njesmětej pródznej być.',
+	'interwiki_logpagename' => 'Protokol interwiki-tabele',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|přida}} prefiks "$4" ($5) (trans: $6; local: $7) interwikijowej tabeli',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|změni}} prefiks "$4" ($5) (trans: $6; local: $7) w interwikijowej tabeli',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|wotstroni}} prefiks "$4" z interwikijoweje tabele',
+	'interwiki_logpagetext' => 'To je protokol změnow na [[Special:Interwiki|interwiki-tabeli]].',
+	'right-interwiki' => 'Daty interwiki wobdźěłać',
+	'action-interwiki' => 'tutón zapisk interwiki změnić',
+);
+
+/** Haitian (Kreyòl ayisyen)
+ * @author Boukman
+ * @author Jvm
+ * @author Masterches
+ */
+$messages['ht'] = array(
+	'interwiki' => 'Wè epi modifye enfòmasyon entèwiki yo',
+	'interwiki-title-norights' => 'Wè enfòmasyon entèwiki',
+	'interwiki-desc' => 'Ajoute yon [[Special:Interwiki|paj espesyal]] pou wè ak modifye tablo entèwiki a',
+	'interwiki_intro' => 'Sa se yon kout je sou tablo entèwiki a.
+Men sa dòne nan kolòn yo vle di:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_error' => 'ERÈ:  Tablo entèwiki a vid, oubyen yon lòt bagay pa t mache.',
+	'interwiki_reasonfield' => 'Rezon:',
+	'interwiki_delquestion' => 'Efase "$1"',
+	'interwiki_deleting' => 'W ap efase prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" te reyisi retire nan tablo entèwiki a.',
+	'interwiki_delfailed' => 'Prefiks "$1" pa t kapab retire nan tablo entèwiki a.',
+	'interwiki_addtext' => 'Ajoute yon prefiks entèwiki',
+	'interwiki_addintro' => 'W ap ajoute yon nouvo prefiks entèwiki.
+Sonje ke li pa ka genyen ladan li espace ( ), de pwen (:), anmpèsand (&), ou sign egalite (=).',
+	'interwiki_addbutton' => 'Ajoute',
+	'interwiki_added' => 'Prefiks "$1" te reyisi ajoute nan tablo entèwiki a.',
+	'interwiki_addfailed' => 'Prefiks "$1" pa t kapab ajoute nan tablo entèwiki a.
+Gendwa se paske li deja ekziste nan tablo entèwiki a.',
+	'interwiki_edittext' => 'Modifye yon prefiks entèwiki',
+	'interwiki_editintro' => 'W ap modifye yon prefiks entèwiki.
+Sonje ke sa gendwa kraze lyen ki deja ekziste yo.',
+	'interwiki_edited' => 'Prefiks "$1" te reyisi modifye nan tablo entèwiki a.',
+	'interwiki_editerror' => 'Prefiks "$1" pa ka modifye nan tablo entèwiki a.
+Petèt li pa ekziste.',
+	'interwiki_logpagename' => 'Jounal tablo entèwiki a',
+	'interwiki_logpagetext' => 'Sa se yon jounal pou chanjman yo nan [[Special:Interwiki|tablo entèwiki a]].',
+);
+
+/** Hungarian (Magyar)
+ * @author BáthoryPéter
+ * @author Dani
+ * @author Glanthor Reviol
+ * @author Gondnok
+ */
+$messages['hu'] = array(
+	'interwiki' => 'Wikiközi hivatkozások adatainak megtekintése és szerkesztése',
+	'interwiki-title-norights' => 'Wikiközi hivatkozások adatainak megtekintése',
+	'interwiki-desc' => '[[Special:Interwiki|Speciális lap]], ahol megtekinthető és szerkeszthető a wikiközi hivatkozások táblája',
+	'interwiki_intro' => 'Ez egy áttekintés a wikiközi hivatkozások táblájáról. Az adatok jelentése az oszlopokban:',
+	'interwiki_prefix' => 'Előtag',
+	'interwiki-prefix-label' => 'Előtag:',
+	'interwiki_prefix_intro' => 'Wikiközi előtag az <code>[<nowiki />[előtag:<i>lapnév</i>]]</code> wikiszöveg szintaxisban való használatra.',
+	'interwiki_url_intro' => 'Sablon az URL-eknek. A(z) $1 helyfoglalót le fogja cserélni a wikiszöveg <i>lapneve</i>, a fent említett wikiszöveg használata esetén.',
+	'interwiki_local' => 'Továbbítás',
+	'interwiki-local-label' => 'Továbbítás:',
+	'interwiki_local_intro' => 'Egy HTTP kérés a helyi wikihez ezzel a wikiközi előtaggal az URL-ben:',
+	'interwiki_local_0_intro' => 'nem teljesül, általában blokkolja a „lap nem található”,',
+	'interwiki_local_1_intro' => 'átirányítva a wikiközi hivatkozások definícióiban megadott cél URL-re  (azaz olyan, mint a hivatkozások a helyi lapokon)',
+	'interwiki_trans' => 'Wikiközi beillesztés',
+	'interwiki-trans-label' => 'Wikiközi beillesztés:',
+	'interwiki_trans_intro' => 'Ha az <code>{<nowiki />{előtag:<i>lapnév</i>}}</code> wikiszöveg szintaxist használjuk, akkor:',
+	'interwiki_trans_1_intro' => 'engedd a beillesztést az idegen wikiről, ha a wikiközi beillesztések általában megengedettek ezen a wikin,',
+	'interwiki_trans_0_intro' => 'ne engedd, inkább keress egy lapot a sablon névtérben.',
+	'interwiki_intro_footer' => 'Az interwiki-táblázattal kapcsolatban további információkat a [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org]-on olvashatsz. Az interwiki-táblázat módosításai [[Special:Log/interwiki|naplózva]] vannak.',
+	'interwiki_1' => 'igen',
+	'interwiki_0' => 'nem',
+	'interwiki_error' => 'Hiba: A wikiközi hivatkozások táblája üres, vagy valami más romlott el.',
+	'interwiki-cached' => 'Az interwiki adatok gyorsítótárazva vannak. A gyorsítótár módosítása nem lehetséges.',
+	'interwiki_edit' => 'Szerkesztés',
+	'interwiki_reasonfield' => 'Indoklás:',
+	'interwiki_delquestion' => '„$1” törlése',
+	'interwiki_deleting' => 'A(z) „$1” előtag törlésére készülsz.',
+	'interwiki_deleted' => 'A(z) „$1” előtagot sikeresen eltávolítottam a wikiközi hivatkozások táblájából.',
+	'interwiki_delfailed' => 'A(z) „$1” előtagot nem sikerült eltávolítanom a wikiközi hivatkozások táblájából.',
+	'interwiki_addtext' => 'Wikiközi hivatkozás előtag hozzáadása',
+	'interwiki_addintro' => 'Új wikiközi hivatkozás előtag hozzáadására készülsz. Ügyelj arra, hogy ne tartalmazzon szóközt ( ), kettőspontot (:), és- (&), vagy egyenlő (=) jeleket.',
+	'interwiki_addbutton' => 'Hozzáadás',
+	'interwiki_added' => 'A(z) „$1” előtagot sikeresen hozzáadtam az wikiközi hivatkozások táblájához.',
+	'interwiki_addfailed' => 'A(z) „$1” előtagot nem tudtam hozzáadni a wikiközi hivatkozások táblájához. Valószínűleg már létezik.',
+	'interwiki_edittext' => 'Wikiközi hivatkozás előtagjának módosítása',
+	'interwiki_editintro' => 'Egy wikiközi hivatkozás előtagját akarod módosítani.
+Ne feledd, hogy ez működésképtelenné teheti a már létező hivatkozásokat!',
+	'interwiki_edited' => 'A „$1” előtagot sikeresen módosítottad a wikiközi hivatkozások táblájában.',
+	'interwiki_editerror' => 'A(z) „$1” előtagot nem lehet módosítani a wikiközi hivatkozások táblájában.
+Valószínűleg nem létezik ilyen előtag.',
+	'interwiki-badprefix' => 'A wikiközi hivatkozásnak megadott „$1” előtag érvénytelen karaktereket tartalmaz',
+	'interwiki-submit-empty' => 'Az előtag és az URL nem lehet üres.',
+	'interwiki_logpagename' => 'Interwiki tábla-napló',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|hozzáadta}} a(z) "$4" előtagot ($5) (trans: $6; helyi: $7) az interwiki táblához',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|módosította}} a(z) "$4" előtagot ($5) (trans: $6; helyi: $7) az interwiki táblában',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|törölte}} a(z) "$4" előtagot az interwiki táblából',
+	'interwiki_logpagetext' => 'Ez az [[Special:Interwiki|interwiki táblában]] történt változások naplója.',
+	'right-interwiki' => 'wikiközi hivatkozások módosítása',
+	'action-interwiki' => 'eme wikiközi bejegyzés megváltoztatása',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'interwiki' => 'Vider e modificar datos interwiki',
+	'interwiki-title-norights' => 'Vider datos interwiki',
+	'interwiki-desc' => 'Adde un [[Special:Interwiki|pagina special]] pro vider e modificar le tabella interwiki',
+	'interwiki_intro' => 'Isto es un summario del tabella interwiki. Significatos del datos in le columnas:',
+	'interwiki_prefix' => 'Prefixo',
+	'interwiki-prefix-label' => 'Prefixo:',
+	'interwiki_prefix_intro' => 'Prefixo interwiki pro usar in le syntaxe de wikitexto <code>[<nowiki />[prefixo:<i>nomine de pagina</i>]]</code>.',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Patrono pro adresses URL. Le marcator $1 essera reimplaciate per le <i>nomine de pagina</i> del wikitexto, quando le syntaxe de wikitexto supra mentionate es usate.',
+	'interwiki_local' => 'Facer sequer',
+	'interwiki-local-label' => 'Facer sequer:',
+	'interwiki_local_intro' => 'Un requesta HTTP al wiki local con iste prefixo interwiki in le adresse URL es:',
+	'interwiki_local_0_intro' => 'refusate, normalmente blocate con "pagina non trovate",',
+	'interwiki_local_1_intro' => 'redirigite verso le adresse URL de destination specificate in le definitiones de ligamines interwiki (i.e. tractate como referentias in paginas local)',
+	'interwiki_trans' => 'Transcluder',
+	'interwiki-trans-label' => 'Transcluder:',
+	'interwiki_trans_intro' => 'Si le syntaxe de wikitexto <code>{<nowiki />{prefixo:<i>nomine de pagina</i>}}</code> es usate, alora:',
+	'interwiki_trans_1_intro' => 'permitte le transclusion ab le wiki externe, si le transclusiones interwiki es generalmente permittite in iste wiki,',
+	'interwiki_trans_0_intro' => 'non permitte lo, ma cerca un pagina in le spatio de nomines "Patrono".',
+	'interwiki_intro_footer' => 'Vide [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] pro plus informationes super le tabella interwiki.
+Existe un [[Special:Log/interwiki|registro de modificationes]] al tabella interwiki.',
+	'interwiki_1' => 'si',
+	'interwiki_0' => 'no',
+	'interwiki_error' => 'Error: Le tabella interwiki es vacue, o un altere cosa faceva falta.',
+	'interwiki-cached' => 'Le datos interwiki es in cache. Non es possibile modificar le cache.',
+	'interwiki_edit' => 'Modificar',
+	'interwiki_reasonfield' => 'Motivo:',
+	'interwiki_delquestion' => 'Deletion de "$1"',
+	'interwiki_deleting' => 'Tu sta super le puncto de deler le prefixo "$1".',
+	'interwiki_deleted' => 'Le prefixo "$1" ha essite removite del tabella interwiki con successo.',
+	'interwiki_delfailed' => 'Le prefixo "$1" non poteva esser removite del tabella interwiki.',
+	'interwiki_addtext' => 'Adder un prefixo interwiki',
+	'interwiki_addintro' => 'Tu sta super le puncto de adder un nove prefixo interwiki.
+Memora que illo non pote continer spatios ( ), duo punctos (:), signos et (&), o signos equal (=).',
+	'interwiki_addbutton' => 'Adder',
+	'interwiki_added' => 'Le prefixo "$1" ha essite addite al tabella interwiki con successo.',
+	'interwiki_addfailed' => 'Le prefixo "$1" non poteva esser addite al tabella interwiki.
+Es possibile que illo ja existe in le tabella interwiki.',
+	'interwiki_edittext' => 'Modificar un prefixo interwiki',
+	'interwiki_editintro' => 'Tu modifica un prefixo interwiki.
+Memora que isto pote rumper ligamines existente.',
+	'interwiki_edited' => 'Le prefixo "$1" ha essite modificate in le tabella interwiki con successo.',
+	'interwiki_editerror' => 'Le prefixo "$1" non pote esser modificate in le tabella interwiki.
+Es possibile que illo non existe.',
+	'interwiki-badprefix' => 'Le prefixo interwiki specificate "$1" contine characteres invalide',
+	'interwiki-submit-empty' => 'Le prefixo e le URL non pote esser vacue.',
+	'interwiki_logpagename' => 'Registro del tabella interwiki',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|addeva}} le prefixo "$4" ($5) (trans: $6; local: $7) al tabella interwiki',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|modificava}} le prefixo "$4" ($5) (trans: $6; local: $7) in le tabella interwiki',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|removeva}} le prefixo "$4" del tabella interwiki',
+	'interwiki_logpagetext' => 'Isto es un registro de modificationes in le [[Special:Interwiki|tabella interwiki]].',
+	'right-interwiki' => 'Modificar datos interwiki',
+	'action-interwiki' => 'alterar iste entrata interwiki',
+);
+
+/** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ * @author Irwangatot
+ * @author IvanLanin
+ * @author Rex
+ */
+$messages['id'] = array(
+	'interwiki' => 'Lihat dan sunting data interwiki',
+	'interwiki-title-norights' => 'Lihat data interwiki',
+	'interwiki-desc' => 'Menambahkan sebuah [[Special:Interwiki|halaman istimewa]] untuk menampilkan dan menyunting tabel interwiki',
+	'interwiki_intro' => 'Ini adalah sebuah laporan mengenai tabel interwiki. Arti dari data di kolom:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Interwiki prefix akan digunakan dalam  <code>[<nowiki />[prefix:<i>pagename</i>]]</code> sintak teksWiki',
+	'interwiki_url_intro' => 'Template untuk URL. Tempat $1 akan digantikan oleh <i>judul</i> dari teksWiki, ketika  sintaks teksWiki tersebut di atas digunakan.',
+	'interwiki_local' => 'Meneruskan',
+	'interwiki-local-label' => 'Meneruskan:',
+	'interwiki_local_intro' => 'Diperlukan HTTP untuk wiki lokal dengan prefix interwiki ini dalam URL:',
+	'interwiki_local_0_intro' => 'tidak dihormati, biasanya diblokir oleh "halaman tidak ditemukan",',
+	'interwiki_local_1_intro' => 'pengalihan ke URL target akan meberikan definis pranala interwiki (contoh. seperti referensi di halaman lokal)',
+	'interwiki_trans' => 'Transclude',
+	'interwiki-trans-label' => 'Mentransklusikan:',
+	'interwiki_trans_intro' => 'Jika sintak tekswiki <code>{<nowiki />{prefix:<i>pagename</i>}}</code> digunakan, maka:',
+	'interwiki_trans_1_intro' => 'memperbolehkan transklusi dari wiki lain, jika transklusi interwiki diizinkan di wiki ini,',
+	'interwiki_trans_0_intro' => 'tidak mengizinkan hal itu, lebih baik mencari halaman pada ruang nama templat.',
+	'interwiki_intro_footer' => 'Lihat [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] untuk informasi lebih lanjut tentang tabel interwiki.
+Ada [[Special:Log/interwiki|log perubahan]] ke tabel interwiki.',
+	'interwiki_1' => 'ya',
+	'interwiki_0' => 'tidak',
+	'interwiki_error' => 'KESALAHAN: Tabel interwiki kosong, atau terjadi kesalahan lain.',
+	'interwiki_edit' => 'Sunting',
+	'interwiki_reasonfield' => 'Alasan:',
+	'interwiki_delquestion' => 'Menghapus "$1"',
+	'interwiki_deleting' => 'Anda menghapus prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" berhasil dihapus dari tabel interwiki.',
+	'interwiki_delfailed' => 'Prefiks "$1" tidak dapat dihapuskan dari tabel interwiki.',
+	'interwiki_addtext' => 'Menambahkan sebuah prefiks interwiki',
+	'interwiki_addintro' => 'Anda akan menambahkan sebuah prefiks interwiki.
+Ingat bahwa prefiks tidak boleh mengandung tanda spasi ( ), titik dua (:), lambang dan (&), atau tanda sama dengan (=).',
+	'interwiki_addbutton' => 'Tambahkan',
+	'interwiki_added' => 'Prefiks "$1" berhasil ditambahkan ke tabel interwiki.',
+	'interwiki_addfailed' => 'Prefiks "$1" tidak dapat ditambahkan ke tabel interwiki. Kemungkinan dikarenakan prefiks ini telah ada di tabel interwiki.',
+	'interwiki_edittext' => 'Menyunting sebuah prefiks interwiki',
+	'interwiki_editintro' => 'Anda sedang menyunting sebuah prefiks interwiki.
+Ingat bahwa tindakan ini dapat mempengaruhi pranala yang telah eksis.',
+	'interwiki_edited' => 'Prefiks "$1" berhasil diubah di tabel interwiki.',
+	'interwiki_editerror' => 'Prefiks "$1" tidak dapat diubah di tabel interwiki.
+Kemungkinan karena prefiks ini tidak ada.',
+	'interwiki-badprefix' => 'Ditentukan interwiki awalan "$1" mengandung karakter yang tidak sah',
+	'interwiki_logpagename' => 'Log tabel interwiki',
+	'interwiki_logpagetext' => 'Ini adalah log perubahan [[Special:Interwiki|tabel interwiki]].',
+	'right-interwiki' => 'Menyunting data interwiki',
+	'action-interwiki' => 'Ubah masukan untuk interwiki ini',
+);
+
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'interwiki_edit' => 'Mèzi',
+	'interwiki_reasonfield' => 'Mgbághapụtà:',
+);
+
+/** Eastern Canadian (Latin script) (inuktitut) */
+$messages['ike-latn'] = array(
+	'interwiki_edit' => 'Suqusiqpaa',
+);
+
+/** Ido (Ido)
+ * @author Malafaya
+ */
+$messages['io'] = array(
+	'interwiki_1' => 'yes',
+);
+
+/** Icelandic (Íslenska)
+ * @author S.Örvarr.S
+ */
+$messages['is'] = array(
+	'interwiki_1' => 'já',
+	'interwiki_0' => 'nei',
+	'interwiki_edit' => 'Breyta',
+	'interwiki_reasonfield' => 'Ástæða:',
+	'interwiki_addbutton' => 'Bæta við',
+);
+
+/** Italian (Italiano)
+ * @author BrokenArrow
+ * @author Cruccone
+ * @author Darth Kule
+ * @author OrbiliusMagister
+ * @author Pietrodn
+ * @author VittGam
+ */
+$messages['it'] = array(
+	'interwiki' => 'Visualizza e modifica i dati interwiki',
+	'interwiki-title-norights' => 'Visualizza i dati interwiki',
+	'interwiki-desc' => 'Aggiunge una [[Special:Interwiki|pagina speciale]] per visualizzare e modificare la tabella degli interwiki',
+	'interwiki_intro' => 'Questa è una panoramica della tabella degli interwiki. Il significato dei dati nelle colonne:',
+	'interwiki_prefix' => 'Prefisso',
+	'interwiki-prefix-label' => 'Prefisso:',
+	'interwiki_prefix_intro' => 'Prefisso interwiki da utilizzare nella sintassi <code>[<nowiki />[prefisso:<i>nomepagina</i>]]</code>.',
+	'interwiki_url_intro' => 'Modello per gli URL. $1 sarà sostituito dal <i>nomepagina</i> del testo, quando la suddetta sintassi viene utilizzata.',
+	'interwiki_local' => 'Reindirizza',
+	'interwiki-local-label' => 'Reindirizza:',
+	'interwiki_local_intro' => "Una richiesta HTTP al sito locale con questo prefisso interwiki nell'URL è:",
+	'interwiki_local_0_intro' => 'non eseguita, di solito bloccata da "pagina non trovata",',
+	'interwiki_local_1_intro' => "reindirizzata all'URL di destinazione indicato nella definizione del link interwiki (cioè trattati come riferimenti nelle pagine locali)",
+	'interwiki_trans' => 'Inclusione',
+	'interwiki-trans-label' => 'Inclusione:',
+	'interwiki_trans_intro' => 'Se la sintassi <code>{<nowiki />{prefisso:<i>nomepagina</i>}}</code> è usata, allora:',
+	'interwiki_trans_1_intro' => "permette l'inclusione da siti esterni, se le inclusioni interwiki sono generalmente permesse in questo sito,",
+	'interwiki_trans_0_intro' => 'non la permette, invece cerca una pagina nel namespace template.',
+	'interwiki_intro_footer' => 'Consultare [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] per maggiori informazioni sulle tabelle degli interwiki. Esiste un [[Special:Log/interwiki|registro delle modifiche]] alla tabella degli interwiki.',
+	'interwiki_1' => 'sì',
+	'interwiki_0' => 'no',
+	'interwiki_error' => "ERRORE: La tabella degli interwiki è vuota, o c'è qualche altro errore.",
+	'interwiki_edit' => 'Modifica',
+	'interwiki_reasonfield' => 'Motivo:',
+	'interwiki_delquestion' => 'Cancello "$1"',
+	'interwiki_deleting' => 'Stai cancellando il prefisso "$1"',
+	'interwiki_deleted' => 'Il prefisso "$1" è stato cancellato con successo dalla tabella degli interwiki.',
+	'interwiki_delfailed' => 'Rimozione del prefisso "$1" dalla tabella degli interwiki fallita.',
+	'interwiki_addtext' => 'Aggiungi un prefisso interwiki',
+	'interwiki_addintro' => 'Sta per essere aggiunto un nuovo prefisso interwiki.
+Non sono ammessi i caratteri: spazio ( ), due punti (:), e commerciale (&), simbolo di uguale (=).',
+	'interwiki_addbutton' => 'Aggiungi',
+	'interwiki_added' => 'Il prefisso "$1" è stato aggiunto alla tabella degli interwiki.',
+	'interwiki_addfailed' => 'Impossibile aggiungere il prefisso "$1" alla tabella degli interwiki.
+Il prefisso potrebbe essere già presente in tabella.',
+	'interwiki_edittext' => 'Modifica di un prefisso interwiki',
+	'interwiki_editintro' => 'Si sta modificando un prefisso interwiki.
+Ciò può rendere non funzionanti dei collegamenti esistenti.',
+	'interwiki_edited' => 'Il prefisso "$1" è stato modificato nella tabella degli interwiki.',
+	'interwiki_editerror' => 'Impossibile modificare il prefisso "$1" nella tabella degli interwiki.
+Il prefisso potrebbe essere inesistente.',
+	'interwiki-badprefix' => 'Il prefisso interwiki "$1" specificato contiene caratteri non validi',
+	'interwiki_logpagename' => 'Registro tabella interwiki',
+	'interwiki_logpagetext' => 'Registro dei cambiamenti apportati alla [[Special:Interwiki|tabella degli interwiki]].',
+	'right-interwiki' => 'Modifica i dati interwiki',
+	'action-interwiki' => 'modificare questo interwiki',
+);
+
+/** Japanese (日本語)
+ * @author Aotake
+ * @author Fievarsty
+ * @author Fryed-peach
+ * @author Mzm5zbC3
+ * @author Schu
+ * @author 青子守歌
+ */
+$messages['ja'] = array(
+	'interwiki' => 'インターウィキデータの閲覧と編集',
+	'interwiki-title-norights' => 'インターウィキデータの一覧',
+	'interwiki-desc' => 'インターウィキテーブルの表示と編集を行う[[Special:Interwiki|特別ページ]]を追加する',
+	'interwiki_intro' => '以下はインターウィキの一覧表です。各欄のデータの意味は次の通りです:',
+	'interwiki_prefix' => '接頭辞',
+	'interwiki-prefix-label' => '接頭辞:',
+	'interwiki_prefix_intro' => '<code>[<nowiki />[接頭辞:<i>ページ名</i>]]</code> というウィキテキストの構文で使われる、インターウィキ接頭辞。',
+	'interwiki_url_intro' => 'URLの雛型。$1 というプレースホルダーは、上で述べた構文における「<i>ページ名</i>」で置換されます。',
+	'interwiki_local' => '転送',
+	'interwiki-local-label' => '転送:',
+	'interwiki_local_intro' => 'URLにこの接頭辞をもつ、ローカルウィキへのHTTP要求は、',
+	'interwiki_local_0_intro' => '無効です。「ページは存在しません」などと表示されます。',
+	'interwiki_local_1_intro' => 'インターウィキウィキリンクの定義で指定された対象URLに転送されます。言い換えると、同一ウィキ内のページへのリンクのように扱います。',
+	'interwiki_trans' => 'トランスクルージョン',
+	'interwiki-trans-label' => 'トランスクルージョン:',
+	'interwiki_trans_intro' => '<code>{<nowiki />{接頭辞:<i>ページ名</i>}}</code> というウィキテキストの構文が使われた場合、',
+	'interwiki_trans_1_intro' => 'ウィキ間トランスクルージョンがこのウィキで(一般的に)許可されているならば、この外部ウィキからのトランスクルージョンを許可します。',
+	'interwiki_trans_0_intro' => '許可せず、テンプレート名前空間でページを探します。',
+	'interwiki_intro_footer' => 'インターウィキテーブルについて、より詳しくは [//www.mediawiki.org/wiki/Manual:Interwiki_table/ja MediaWiki.org] を参照してください。また、インターウィキテーブルの[[Special:Log/interwiki|変更記録]]があります。',
+	'interwiki_1' => 'はい',
+	'interwiki_0' => 'いいえ',
+	'interwiki_error' => 'エラー: インターウィキテーブルが空か、他の理由でうまくいきませんでした。',
+	'interwiki-cached' => 'インターウィキデータはキャッシュされています。キャッシュを変更することは不可能です。',
+	'interwiki_edit' => '編集',
+	'interwiki_reasonfield' => '理由:',
+	'interwiki_delquestion' => '"$1"を削除',
+	'interwiki_deleting' => 'あなたは接頭辞 "$1" を削除しようとしています。',
+	'interwiki_deleted' => '接頭辞 "$1" はインターウィキテーブルから正常に削除されました。',
+	'interwiki_delfailed' => '接頭辞 "$1" をインターウィキテーブルから削除できませんでした。',
+	'interwiki_addtext' => 'インターウィキの接頭辞を追加する',
+	'interwiki_addintro' => 'あなたはインターウィキの新しい接頭辞を追加しようとしています。その中にスペース ( )、コロン (:)、アンパーサンド (&)、等号 (=) といった記号を含むことができないことに注意してください。',
+	'interwiki_addbutton' => '追加',
+	'interwiki_added' => '接頭辞 "$1" はインターウィキテーブルに正常に追加されました。',
+	'interwiki_addfailed' => '接頭辞 "$1" をインターウィキテーブルに追加することができませんでした。すでに同じものが、インターウィキテーブルの中に存在している可能性があります。',
+	'interwiki_edittext' => 'インターウィキ用接頭辞の編集',
+	'interwiki_editintro' => 'あなたはインターウィキ用接頭辞を編集しようとしています。この作業によりすでに存在しているリンクを破壊する可能性があります。',
+	'interwiki_edited' => '接頭辞 "$1" はインターウィキテーブル内で正常に変更されました。',
+	'interwiki_editerror' => 'インターウィキテーブル内で接頭辞 "$1" を変更できませんでした。存在していない可能性があります。',
+	'interwiki-badprefix' => '指定されたインターウィキ接頭辞 "$1" は無効な文字を含んでいます',
+	'interwiki-submit-empty' => '接頭辞とURLを空にすることはできません。',
+	'interwiki_logpagename' => 'インターウィキ編集記録',
+	'interwiki_logpagetext' => 'これは[[Special:Interwiki|インターウィキテーブル]]の変更記録です。',
+	'right-interwiki' => 'インターウィキデータの編集',
+	'action-interwiki' => 'このインターウィキ項目の変更',
+);
+
+/** Javanese (Basa Jawa)
+ * @author Meursault2004
+ * @author Pras
+ */
+$messages['jv'] = array(
+	'interwiki' => 'Ndeleng lan nyunting data interwiki',
+	'interwiki-title-norights' => 'Ndeleng data interwiki',
+	'interwiki-desc' => 'Nambahaké sawijining [[Special:Interwiki|kaca astaméwa]] kanggo ndeleng lan nyunting tabèl interwiki',
+	'interwiki_intro' => 'Iki sawijining gambaran saka tabel interwiki. Makna data sing ana ing kolom:',
+	'interwiki_prefix' => 'Préfiks (sisipan awal)',
+	'interwiki-prefix-label' => 'Préfiks (sisipan awal):',
+	'interwiki_error' => 'KALUPUTAN: Tabèl interwikiné kosong, utawa ana masalah liya.',
+	'interwiki_reasonfield' => 'Alesan:',
+	'interwiki_delquestion' => 'Mbusak "$1"',
+	'interwiki_deleting' => 'Panjenengan mbusak préfiks utawa sisipan awal "$1".',
+	'interwiki_deleted' => 'Préfisk "$1" bisa kasil dibusak saka tabèl interwiki.',
+	'interwiki_delfailed' => 'Préfiks "$1" ora bisa diilangi saka tabèl interwiki.',
+	'interwiki_addtext' => 'Nambah préfiks interwiki',
+	'interwiki_addintro' => 'Panjenengan nambah préfiks utawa sisipan awal interwiki anyar.
+Élinga yèn iku ora bisa ngandhut spasi ( ), pada pangkat (:), ampersands (&), utawa tandha padha (=).',
+	'interwiki_addbutton' => 'Nambah',
+	'interwiki_added' => 'Préfiks utawa sisipan awal "$1" bisa kasil ditambahaké ing tabèl interwiki.',
+	'interwiki_addfailed' => 'Préfiks "$1" ora bisa ditambahaké ing tabèl interwiki.
+Mbok-menawa iki pancèn wis ana ing tabèl interwiki.',
+	'interwiki_edittext' => 'Nyunting sawijining préfiks interwiki',
+	'interwiki_editintro' => 'Panjenengan nyunting préfiks interwiki.
+Élinga yèn iki ora bisa nugel pranala-pranala sing wis ana.',
+	'interwiki_edited' => 'Préfiks "$1" bisa suksès dimodifikasi ing tabèl interwiki.',
+	'interwiki_editerror' => 'Préfiks utawa sisipan awal "$1" ora bisa dimodifikasi ing tabèl interwiki.
+Mbok-menawa iki ora ana.',
+	'interwiki_logpagename' => 'Log tabèl interwiki',
+	'interwiki_logpagetext' => 'Kaca iki log owah-owahan kanggo [[Special:Interwiki|tabèl interwiki]].',
+);
+
+/** Georgian (ქართული)
+ * @author Malafaya
+ */
+$messages['ka'] = array(
+	'interwiki_reasonfield' => 'მიზეზი:',
+);
+
+/** Khmer (ភាសាខ្មែរ)
+ * @author Chhorran
+ * @author Lovekhmer
+ * @author Thearith
+ * @author គីមស៊្រុន
+ * @author វ័ណថារិទ្ធ
+ */
+$messages['km'] = array(
+	'interwiki' => 'មើលនិងកែប្រែទិន្នន័យអន្តរវិគី',
+	'interwiki-title-norights' => 'មើលទិន្នន័យអន្តរវិគី',
+	'interwiki-desc' => 'បន្ថែម[[Special:Interwiki|ទំព័រពិសេស]]ដើម្បីមើលនិងកែប្រែតារាងអន្តរវិគី',
+	'interwiki_intro' => 'នេះ​គឺជា​ទិដ្ឋភាពទូទៅ​នៃ​តារាង​អន្តរវិគី​។ ដែល​ជា​អត្ថន័យ​នៃ​ទិន្នន័យ​នៅ​ក្នុង​ជួរឈរ:',
+	'interwiki_prefix' => 'បុព្វបទ',
+	'interwiki-prefix-label' => 'បុព្វបទ៖',
+	'interwiki_1' => 'បាទ/ចាស៎',
+	'interwiki_0' => 'ទេ',
+	'interwiki_error' => 'កំហុស:តារាងអន្តរវិគីគឺទទេ ឬក៏មានអ្វីផ្សេងទៀតមានបញ្ហា។',
+	'interwiki_edit' => 'កែប្រែ​',
+	'interwiki_reasonfield' => 'មូលហេតុ៖',
+	'interwiki_delquestion' => 'ការលុបចេញ "$1"',
+	'interwiki_deleting' => 'លោកអ្នកកំពុងលុបបុព្វបទ "$1"។',
+	'interwiki_deleted' => 'បុព្វបទ"$1"បានដកចេញពីតារាងអន្តរវិគីដោយជោគជ័យហើយ។',
+	'interwiki_delfailed' => 'បុព្វបទ"$1"មិនអាចដកចេញពីតារាងអន្តរវិគីបានទេ។',
+	'interwiki_addtext' => 'បន្ថែមបុព្វបទអន្តរវិគី',
+	'interwiki_addintro' => 'អ្នកកំពុងបន្ថែមបុព្វបទអន្តរវិគីថ្មីមួយ។
+
+សូមចងចាំថាវាមិនអាចមាន ដកឃ្លា( ) ចុច២(:) សញ្ញានិង(&) ឬសញ្ញាស្មើ(=)បានទេ។',
+	'interwiki_addbutton' => 'បន្ថែម',
+	'interwiki_added' => 'បុព្វបទ "$1" ត្រូវបានបន្ថែមទៅក្នុងតារាងអន្តរវិគីដោយជោគជ័យ។',
+	'interwiki_addfailed' => 'បុព្វបទ "$1" មិនអាចបន្ថែមទៅក្នុងតារាងអន្តរវិគីបានទេ។
+
+ប្រហែលជាវាមានរួចហើយនៅក្នុងតារាងអន្តរវិគី។',
+	'interwiki_edittext' => 'ការកែប្រែបុព្វបទអន្តរវិគី',
+	'interwiki_editintro' => 'អ្នកកំពុងកែប្រែបុព្វបទអន្តរវិគី។
+
+ចូរចងចាំថាវាអាចនាំឱ្យខូចតំណភ្ជាប់ដែលមានស្រេច។',
+	'interwiki_edited' => 'បុព្វបទ"$1"ត្រូវបានកែសម្រួលក្នុងតារាងអន្តរវិគីដោយជោគជ័យហើយ។',
+	'interwiki_editerror' => 'បុព្វបទ "$1" មិនអាចកែសម្រួលនៅក្នុងតារាងអន្តរវិគីបានទេ។
+
+ប្រហែលជាវាមិនមានអត្ថិភាពទេ។',
+	'interwiki_logpagename' => 'កំណត់ហេតុតារាងអន្តរវិគី',
+	'interwiki_logpagetext' => 'នេះជាកំណត់ហេតុនៃបំលាស់ប្តូរក្នុង[[Special:Interwiki|តារាងអន្តរវិគី]]។',
+	'right-interwiki' => 'កែប្រែទិន្នន័យអន្តរវិគី',
+);
+
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'interwiki_1' => 'ಹೌದು',
+	'interwiki_0' => 'ಇಲ್ಲ',
+	'interwiki_edit' => 'ಸಂಪಾದಿಸಿ',
+	'interwiki_reasonfield' => 'ಕಾರಣ:',
+	'interwiki_addbutton' => 'ಸೇರಿಸು',
+);
+
+/** Korean (한국어)
+ * @author Devunt
+ * @author Kwj2772
+ * @author ToePeu
+ */
+$messages['ko'] = array(
+	'interwiki' => '인터위키 목록 보기/고치기',
+	'interwiki-title-norights' => '인터위키 보기',
+	'interwiki-desc' => '인터위키 표를 보거나 고칠 수 있는 [[Special:Interwiki|특수문서]]를 추가',
+	'interwiki_intro' => '이 페이지는 인터위키 표에 대한 둘러보기 표입니다. 각 단의 데이터는 다음을 의미합니다:',
+	'interwiki_prefix' => '접두어',
+	'interwiki-prefix-label' => '접두어:',
+	'interwiki_prefix_intro' => '<code>[<nowiki />[접두어:문서 이름]]</code> 위키 링크에 쓰일 인터위키 접두어',
+	'interwiki_local' => '이것을 로컬 위키로 정의',
+	'interwiki-local-label' => '전달',
+	'interwiki_trans' => '인터위키 포함',
+	'interwiki-trans-label' => '인터위키 포함:',
+	'interwiki_intro_footer' => '인터위키 테이블에 대한 자세한 내용을 [//www.mediawiki.org/wiki/Manual:Interwiki_table/ko MediaWiki.org]에서 보세요
+인터위키 테이블의 [[Special:Log/interwiki|바뀜 기록]]이 존재합니다.',
+	'interwiki_1' => '예',
+	'interwiki_0' => '아니오',
+	'interwiki_error' => '오류: 인터위키 표가 비어 있거나 다른 무엇인가가 잘못되었습니다.',
+	'interwiki_edit' => '편집',
+	'interwiki_reasonfield' => '이유:',
+	'interwiki_delquestion' => '"$1" 지우기',
+	'interwiki_deleting' => '접두어 "$1"을(를) 지웁니다.',
+	'interwiki_deleted' => '접두어 "$1"을(를) 지웠습니다.',
+	'interwiki_delfailed' => '접두어 "$1"을(를) 지울 수 없습니다.',
+	'interwiki_addtext' => '접두어 더하기',
+	'interwiki_addintro' => '새 인터위키 접두어를 만듭니다. 공백( ), 쌍점(:), &기호(&), 등호(=)는 포함할 수 없습니다.',
+	'interwiki_addbutton' => '더하기',
+	'interwiki_added' => '접두어 "$1"을(를) 더했습니다.',
+	'interwiki_addfailed' => '접두어 "$1"을(를) 더할 수 없습니다. 이미 표에 있을 수 있습니다.',
+	'interwiki_edittext' => '접두어 고치기',
+	'interwiki_editintro' => '인터위키 접두어를 고칩니다. 이미 만들어진 인터위키를 망가뜨릴 수 있으니 주의해 주세요.',
+	'interwiki_edited' => '접두어 "$1"을(를) 고쳤습니다.',
+	'interwiki_editerror' => '접두어 "$1"을(를) 고칠 수 없습니다. 목록에 없는 접두어일 수 있습니다.',
+	'interwiki-badprefix' => '당신이 입력한 인터위키 접두어 "$1"은(는) 잘못된 문자를 포함하고 있습니다.',
+	'interwiki_logpagename' => '인터위키 수정 기록',
+	'interwiki_logpagetext' => '[[Special:Interwiki|인터위키]] 목록의 바뀐 내역입니다.',
+	'right-interwiki' => '인터위키 목록을 편집',
+	'action-interwiki' => '이 인터위키 접두어를 수정',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'interwiki' => 'Engerwiki Date beloere un änndere',
+	'interwiki-title-norights' => 'Engerwiki Date beloore',
+	'interwiki-desc' => 'Brengk de Sondersigg [[Special:Interwiki]], öm Engerwiki Date ze beloore un ze ändere.',
+	'interwiki_intro' => 'Heh is ene Övverbleck övver de Engerwiki-Tabäll.
+De Daate en de einzel Shpallde bedügge:',
+	'interwiki_prefix' => 'Försaz',
+	'interwiki-prefix-label' => 'Försaz:',
+	'interwiki_prefix_intro' => 'Dä Fösatz för Engewiki Lengks wie hä em Wikitex en Sigge jebruch weed, wam_mer <code>[<nowiki />[<i>{{lc:{{int:Interwiki_prefix}}}}</i>:<i>Siggename</i>]]</code> schrieve deijt.',
+	'interwiki_url' => 'URL',
+	'interwiki-url-label' => '<i lang="en">URL</i>',
+	'interwiki_url_intro' => 'E Muster för en URL. Dä Plazhallder „$1“ do dren weet ußjetuusch, wann dat Denge jebruch weet — wann di Syntax vun bovve em Wikitext op en Sigg aanjezeish weed, dann kütt dä <code><i">Siggenam</i></code> aan dä Plaz vun däm $1.',
+	'interwiki_local' => 'Wiggerjevve?',
+	'interwiki-local-label' => 'Wiggerjevve?:',
+	'interwiki_local_intro' => 'Wann övver et Internet ene Sigge-Oproof aan dat Wiki hee jescheck weed, un dä Försatz es em Sigge-Tittel dren, dann:',
+	'interwiki_local_0_intro' => 'donn dä nit als ene Vöratz behandelle, un sök noh su en Sigg hee em Wiki — dat jeiht fö jewööhnlesch uß met: „esu en Sigg hann mir nit“,',
+	'interwiki_local_1_intro' => 'dä Oproof weed wiggerjejovve aan dä Wiki, esu wi et hee unger URL enjedraaren es, well heiße, dä weed jenou esu behandelt, wi ene Oproof ennerhallf vun en Sigg hee em Wiki.',
+	'interwiki_trans' => 'Ennfööje?',
+	'interwiki-trans-label' => 'Ennfööje?:',
+	'interwiki_trans_intro' => 'Wann em Wikitex en ener Sigg de Syntax <code>{<nowiki />{<i>{{lc:{{int:Interwiki_prefix}}}}</i>:<i>Siggename</i>}}</code> jebruch weed, dann:',
+	'interwiki_trans_1_intro' => 'lohß et zoh — wann dat en hee dämm Wiki övverhoup zohjelohße es — dat en Sigg uß däm andere Wiki hee enjeföösh weed,',
+	'interwiki_trans_0_intro' => 'dunn dat nit, un sök hee em Wiki noh ene {{ns:template}} met dämm komplätte Name.',
+	'interwiki_intro_footer' => 'Op dä Sigg [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] fingk mer mieh do dröver, wat et met dä Tabäll met de Engerwiki Date op sich hät.
+Et [[Special:Log/interwiki|{{int:interwiki_logpagename}}]] zeichnet all de Änderunge aan de Engerwiki Date op.',
+	'interwiki_1' => 'Jo',
+	'interwiki_0' => 'Nä',
+	'interwiki_error' => "'''Fähler:''' de Tabäll met de Engerwiki Date is leddisch.",
+	'interwiki-cached' => 'Heh di Daate kumme us enem Zweschespeischer. Dodren jät ze ändere es nit müjjelesch.',
+	'interwiki_edit' => 'Beärbeide',
+	'interwiki_reasonfield' => 'Aanlass:',
+	'interwiki_delquestion' => '„$1“ weed fottjeschmeße',
+	'interwiki_deleting' => 'Do wells dä Engerwiki Försaz „$1“ fott schmiiße.',
+	'interwiki_deleted' => 'Dä Försaz „$1“ es jäz uß dä Engerwiki Date erusjeschmesse.',
+	'interwiki_delfailed' => 'Dä Försaz „$1“ konnt nit uß dä Engerwiki Date jenomme wääde.',
+	'interwiki_addtext' => 'Ene Engerwiki Försaz dobei donn',
+	'interwiki_addintro' => 'Do bes ennem Engerwiki Försaz dobei aam donn.
+Denk draan, et dörfe kei Zweschräum ( ), Koufmanns-Un (&), Jlisch-Zeiche (=), un kein Dubbelpünkscher (:) do dren sin.',
+	'interwiki_addbutton' => 'Dobei donn',
+	'interwiki_added' => 'Dä Försaz „$1“ es jäz bei de Engerwiki Date dobei jekomme.',
+	'interwiki_addfailed' => 'Dä Försaz „$1“ konnt nit bei de Engerwiki Date dobeijedonn wäde.
+Maach sin, dat dä en de Engerwiki Tabäll ald dren wor un es.',
+	'interwiki_edittext' => 'Enne Engerwiki Fürsaz Ändere',
+	'interwiki_editintro' => 'Do bes an ennem Engerwiki Fösaz am ändere.
+Denk draan, domet könnts De Links em Wiki kapott maache, die velleich do drop opboue.',
+	'interwiki_edited' => 'Föz dä Försaz „$1“ sen de Engerwiki Date jäz jetuusch.',
+	'interwiki_editerror' => 'Dä Försaz „$1“ konnt en de Engerwiki Date nit beärrbeidt wäde.
+Maach sin, dat et inn nit jitt.',
+	'interwiki-badprefix' => 'Dä aanjejovve Engerwiki-Försatz „$1“ änthäld onjöltijje Zeiche',
+	'interwiki-submit-empty' => 'Der Engerwiki-Försatz un der URL künne nit läddesch jelohße wääde.',
+	'interwiki_logpagename' => 'Logboch fun de Engerwiki Tabäll',
+	'logentry-interwiki-iw_add' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dä Vörsaz „$4“ met däm {{int:interwiki-url-label}} „$5“ un {{int:interwiki-local-label}}$6 un {{int:interwiki-trans-label}}$7 bei de Engerwiki-Date dobei jedonn.',
+	'logentry-interwiki-iw_edit' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dä Vörsaz „$4“ met däm {{int:interwiki-url-label}} „$5“ un {{int:interwiki-local-label}}$6 un {{int:interwiki-trans-label}}$7 vun de Engerwiki-Date verändert.',
+	'logentry-interwiki-iw_delete' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dä Vörsaz „$4“ uß dä Engerwiki-Date fott jenumme.',
+	'interwiki_logpagetext' => 'Hee is dat Logboch met de Änderonge aan de [[Special:Interwiki|Engerwiki Date]].',
+	'right-interwiki' => 'Engerwiki Date ändere',
+	'action-interwiki' => 'Donn hee dä Engerwiki Enndraach ändere',
+);
+
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'interwiki_1' => 'erê',
+	'interwiki_reasonfield' => 'Sedem:',
+);
+
+/** Latin (Latina)
+ * @author Omnipaedista
+ * @author SPQRobin
+ * @author UV
+ */
+$messages['la'] = array(
+	'interwiki' => 'Videre et recensere data intervica',
+	'interwiki-title-norights' => 'Videre data intervica',
+	'interwiki_intro' => 'De tabula intervicia. Sunt hae columnae:',
+	'interwiki_prefix' => 'Praefixum',
+	'interwiki-prefix-label' => 'Praefixum:',
+	'interwiki_error' => 'ERROR: Tabula intervica est vacua, aut aerumna alia occurrit.',
+	'interwiki_reasonfield' => 'Causa:',
+	'interwiki_delquestion' => 'Removens "$1"',
+	'interwiki_deleting' => 'Delens praefixum "$1".',
+	'interwiki_deleted' => 'Praefixum "$1" prospere remotum est ex tabula intervica.',
+	'interwiki_delfailed' => 'Praefixum "$1" ex tabula intervica removeri non potuit.',
+	'interwiki_addtext' => 'Addere praefixum intervicum',
+	'interwiki_addbutton' => 'Addere',
+	'interwiki_added' => 'Praefixum "$1" prospere in tabulam intervicam additum est.',
+	'interwiki_addfailed' => 'Praefixum "$1" in tabulam intervicam addi non potuit. Fortasse iam est in tabula intervica.',
+	'interwiki_edittext' => 'Recensere praefixum intervicum',
+	'interwiki_editintro' => 'Recenses praefixum intervicum.
+Memento hoc nexus frangere posse.',
+	'interwiki_edited' => 'Praefixum "$1" prospere modificata est in tabula intervica.',
+	'interwiki_editerror' => 'Praefixum "$1" in tabula intervica modificari non potuit.
+Fortasse nondum est in tabula intervica.',
+	'interwiki_logpagename' => 'Index tabulae intervicae',
+	'interwiki_logpagetext' => 'Hic est index mutationum [[Special:Interwiki|tabulae intervicae]].',
+	'right-interwiki' => 'Data intervica recensere',
+	'action-interwiki' => 'data intervica recensere',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
+ * @author Purodha
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'interwiki' => 'Interwiki-Date kucken a veränneren',
+	'interwiki-title-norights' => 'Interwiki-Date kucken',
+	'interwiki-desc' => "Setzt eng [[Special:Interwiki|Spezialsäit]] derbäi fir d'Interwiki-Tabell ze gesinn an z'änneren",
+	'interwiki_intro' => "Dëst ass en Iwwerbléck iwwert d'Interwiki-Tabell.
+D'Bedeitung vun den Informatiounen an de Kolonnen:",
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix:',
+	'interwiki_prefix_intro' => 'Interwiki-Prefix fir an der Form <code>[<nowiki />[prefix:<i>Säitennumm</i>]]</code> am Wikitext gebraucht ze ginn.',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Schabloun fir URLen. $1 gëtt duerch <i>Säitennumm</i> aus der uewe genannter Syntax am Wikitext ersat.',
+	'interwiki_local' => 'Viruleeden',
+	'interwiki-local-label' => 'Viruleeden:',
+	'interwiki_local_intro' => 'Eng HTTP-Ufro un déi lokal Wiki mat dësem Interwiki-Prefix an der URL gëtt:',
+	'interwiki_local_0_intro' => 'net erfëllt, gëtt normalerweis mat „Säit net fonnt“ blockéiert',
+	'interwiki_local_1_intro' => "automatesch op d'Zil-URL virugeleed déi an den Interwikilink-Definitiounen uginn ass (d. h. gëtt wéi en Interwikilink op enger lokaler Säit behandelt)",
+	'interwiki_trans' => 'Interwiki-Abannungen',
+	'interwiki-trans-label' => 'Abannen:',
+	'interwiki_trans_intro' => "Wann d'Wiki-Syntax <code>{<nowiki />{prefix:<i>Numm vun der Säit</i>}}</code> benotzt gëtt, dann:",
+	'interwiki_trans_1_intro' => "erlaabt Abannunge vun anere Wikien, wann d'Interwiki-Abannungen an dëser Wiki allgemeng zoulässeg sinn,",
+	'interwiki_trans_0_intro' => 'erlaabt et net, an huelt éischter eng Säit aus dem Nummraum:Schabloun.',
+	'interwiki_intro_footer' => "Kuckt [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org], fir weider Informatiounen iwwer d'Interwiki-Tabell ze kréien. D'[[Special:Log/interwiki|Logbuch]] weist e Protokoll vun allen Ännerungen an der Interwiki-Tabell.",
+	'interwiki_1' => 'jo',
+	'interwiki_0' => 'neen',
+	'interwiki_error' => "Feeler: D'Interwiki-Tabell ass eidel.",
+	'interwiki-cached' => "D'Interwiki-Informatioune kommen aus dem Tëschespäicher. Et ass net méiglech den Tëschespäicher z'änneren.",
+	'interwiki_edit' => 'Änneren',
+	'interwiki_reasonfield' => 'Grond:',
+	'interwiki_delquestion' => 'Läscht "$1"',
+	'interwiki_deleting' => 'Dir läscht de Prefix "$1".',
+	'interwiki_deleted' => 'De Prefix "$1" gouf aus der Interwiki-Tabell erausgeholl.',
+	'interwiki_delfailed' => 'Prefix "$1" konnt net aus der Interwiki-Tabell erausgeholl ginn.',
+	'interwiki_addtext' => 'En Interwiki-prefix derbäisetzen',
+	'interwiki_addintro' => 'Dir setzt en neien Interwiki-Prefix derbäi.
+Denkt drunn datt keng Espacen ( ), Et-commerciale (&), Gläichzeechen (=) a keng Doppelpunkten (:) däerfen dra sinn.',
+	'interwiki_addbutton' => 'Derbäisetzen',
+	'interwiki_added' => 'De Prefix "$1" gou an d\'Interwiki-Tabell derbäigesat.',
+	'interwiki_addfailed' => 'De Prefix "$1" konnt net an d\'Interwiki-Tabell derbäigesat ginn.
+Méiglecherweis gëtt et e schn an der Interwiki-Tabell.',
+	'interwiki_edittext' => 'En interwiki Prefix änneren',
+	'interwiki_editintro' => 'Dir ännert en Interwiki Prefix.
+Denkt drun, datt dat kann dozou féieren datt Linken déi et scho gëtt net méi fonctionnéieren.',
+	'interwiki_edited' => 'De Prefix "$1" gouf an der Interwiki-Tabell geännert.',
+	'interwiki_editerror' => 'De Prefix "$1" kann an der Interwiki-Tabell net geännert ginn.
+Méiglecherweis gëtt et en net.',
+	'interwiki-badprefix' => 'Den Interwiki-Prefix "$1" huet net valabel Buchstawen',
+	'interwiki-submit-empty' => "De Prefix an d'URL kënnen net eidel sinn.",
+	'interwiki_logpagename' => 'Lëscht mat der Interwikitabell',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|huet}} de Prefix "$4" ($5) (trans: $6; local: $7) an d\'Interwikitabell derbäigesat',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|huet}} de Prefix „$4“ ($5) (trans: $6; local: $7) an der Interwikitabell geännert',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|huet}} de Präfix "$4" aus der Interwikitabell erausgeholl',
+	'interwiki_logpagetext' => 'Dëst ass eng Lëscht mat den Ännerunge vun der [[Special:Interwiki|Interwikitabell]].',
+	'right-interwiki' => 'Interwiki-Daten änneren',
+	'action-interwiki' => "dës Interwiki-Informatioun z'änneren",
+);
+
+/** Ganda (Luganda)
+ * @author Kizito
+ */
+$messages['lg'] = array(
+	'interwiki_edit' => 'Kyusa',
+);
+
+/** Lithuanian (Lietuvių)
+ * @author Homo
+ */
+$messages['lt'] = array(
+	'interwiki' => 'Žiūrėti ir redaguoti interwiki duomenis',
+	'interwiki-title-norights' => 'Žiūrėti interwiki duomenis',
+	'interwiki-desc' => 'Prideda [[Special:Interwiki|specialųjį puslapį]] interwiki lentelei peržiūrėti ir redaguoti',
+	'interwiki_local' => 'Persiųsti',
+	'interwiki-local-label' => 'Persiųsti:',
+	'interwiki_addbutton' => 'Pridėti',
+	'interwiki_logpagetext' => 'Tai pakeitimų [[Special:Interwiki|interwiki lentelėje]] sąrašas',
+	'right-interwiki' => 'Redaguoti interwiki duomenis',
+);
+
+/** Literary Chinese (文言) */
+$messages['lzh'] = array(
+	'interwiki' => '察與修跨維表',
+	'interwiki-title-norights' => '察跨維',
+	'interwiki_intro' => '閱[http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org]之。
+有跨維之[[Special:Log/interwiki|誌]]。',
+	'interwiki_prefix' => '前',
+	'interwiki-prefix-label' => '前:',
+	'interwiki_local' => '定為本維',
+	'interwiki-local-label' => '定為本維:',
+	'interwiki_trans' => '許跨維之含',
+	'interwiki-trans-label' => '許跨維之含:',
+	'interwiki_error' => '錯:跨維為空,或它錯發生。',
+	'interwiki_reasonfield' => '因:',
+	'interwiki_delquestion' => '現刪「$1」',
+	'interwiki_deleting' => '爾正刪「$1」。',
+	'interwiki_deleted' => '已刪「$1」。',
+	'interwiki_delfailed' => '無刪「$1」。',
+	'interwiki_addtext' => '加跨維',
+	'interwiki_addintro' => '爾正加新之跨。
+記無含空( )、冒(:)、連(&),或等(=)。',
+	'interwiki_addbutton' => '加',
+	'interwiki_added' => '「$1」加至跨維也。',
+	'interwiki_addfailed' => '「$1」無加跨維也。
+或已存在之。',
+	'interwiki_edittext' => '改跨維',
+	'interwiki_editintro' => '爾正改跨維。
+記此能斷現連。',
+	'interwiki_edited' => '「$1」已改之。',
+	'interwiki_editerror' => '「$1」無改之。
+無存。',
+	'interwiki-badprefix' => '定之跨維前「$1」含有無效之字也',
+	'right-interwiki' => '改跨維',
+);
+
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'interwiki' => 'Hijery sy hikasika ny data interwiki',
+	'interwiki-title-norights' => 'Hijery ny data interwiki',
+	'interwiki-desc' => "Manampy [[Special:Interwiki|pejy manokana iray]] ho an'ny fijerena sy ho an'ny fanovana ny tabilao interwiki",
+	'interwiki_intro' => "Ity dia topi-mason'ny tabilao interwiki. Ity ny dikan'ny fampahalalàn'ny tsanganana :",
+	'interwiki_prefix' => 'Tovona',
+	'interwiki-prefix-label' => 'Tovona',
+	'interwiki_local' => 'Hanohy',
+	'interwiki-local-label' => 'Hanohy',
+	'interwiki_1' => 'eny',
+	'interwiki_0' => 'tsia',
+	'right-interwiki' => 'Manova ny data interwiki',
+);
+
+/** Eastern Mari (Олык Марий)
+ * @author Сай
+ */
+$messages['mhr'] = array(
+	'interwiki_reasonfield' => 'Амал:',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'interwiki' => 'Преглед и уредување на интервики податоци',
+	'interwiki-title-norights' => 'Податоци за меѓувики',
+	'interwiki-desc' => 'Додава [[Special:Interwiki|специјална страница]] за преглед и уредување на интервики-табелата',
+	'interwiki_intro' => 'Ова е преглед на интервики-табелата. Значења на податоците во колоните:',
+	'interwiki_prefix' => 'Префикс',
+	'interwiki-prefix-label' => 'Префикс:',
+	'interwiki_prefix_intro' => 'Интервики префикс за користење во викитекст-синтаксата <code>[<nowiki />[префикс:<i>име на страница</i>]]</code>.',
+	'interwiki_url' => 'URL',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Шаблон за URL-адреси. Наместо $1 ќе биде поставено <i>име на страницата</i> на викитекстот, кога се користи гореспоменатата виктекст-синтакса.',
+	'interwiki_local' => 'Препратка',
+	'interwiki-local-label' => 'Препратка:',
+	'interwiki_local_intro' => 'HTTP-барање до локалното вики со овој интервики префикс во URL-адресата:',
+	'interwiki_local_0_intro' => 'не се почитува, туку обично се блокира со пораката „страницата не е пронајдена“,',
+	'interwiki_local_1_intro' => 'се пренасочува кон целната URL-адреса посочена во дефинициите на интервики-врските (т.е. се третира како референтните врски на локалните страници)',
+	'interwiki_trans' => 'Превметнување',
+	'interwiki-trans-label' => 'Превметнување:',
+	'interwiki_trans_intro' => 'Ако се користи викитекст-синтаксата <code>{<nowiki />{префикс:<i>име на страница</i>}}</code>, тогаш:',
+	'interwiki_trans_1_intro' => 'дозволи превметнување од други викија, ако тоа е начелно дозволено на ова вики,',
+	'interwiki_trans_0_intro' => 'не дозволувај, туку барај страница во шаблонскиот именски простор.',
+	'interwiki_intro_footer' => 'Погледајте ја страницата [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] за повеќе информации за интервики-табелата.
+Постои [[Special:Log/interwiki|дневник на промени]] во интервики-табелата.',
+	'interwiki_1' => 'да',
+	'interwiki_0' => 'не',
+	'interwiki_error' => 'Грешка: Интервики-табелата е празна, или нешто друго не е во ред.',
+	'interwiki-cached' => 'Податоците за меѓувики се кеширани. Кешот не може да се измени.',
+	'interwiki_edit' => 'Уреди',
+	'interwiki_reasonfield' => 'Причина:',
+	'interwiki_delquestion' => 'Бришење на „$1“',
+	'interwiki_deleting' => 'Го бришете префиксот „$1“.',
+	'interwiki_deleted' => 'Префиксот „$1“ е успешно отстранет од интервики-табелата.',
+	'interwiki_delfailed' => 'Префиксот „$1“ не можеше да се отстрани од интервики-табелата.',
+	'interwiki_addtext' => 'Додај интервики префикс',
+	'interwiki_addintro' => 'Запомнете дека не смее да содржи празни простори ( ), две точки (:), амперсанди (&) и знаци на равенство (=).',
+	'interwiki_addbutton' => 'Додај',
+	'interwiki_added' => 'Префиксот „$1“ е успешно додаден кон интервики-табелата',
+	'interwiki_addfailed' => 'Префиксот „$1“ не можеше да се додаде во интервики-табелата.
+Веројатно таму веќе постои.',
+	'interwiki_edittext' => 'Уредување на интервики префикс',
+	'interwiki_editintro' => 'Уредувате интервики префикс.
+Запомнете дека ова може да ги раскине постоечките врски.',
+	'interwiki_edited' => 'Префиксот „$1“ е успешно изменет во интервики-табелата.',
+	'interwiki_editerror' => 'Префиксот „$1“ не може да се менува во интервики-табелата.
+Можеби тој не постои.',
+	'interwiki-badprefix' => 'Назначениот интервики префикс „$1“ содржи неважечки знаци',
+	'interwiki-submit-empty' => 'Префиксот и URL-адресата не можат да бидат празни.',
+	'interwiki_logpagename' => 'Дневник на измени во интервики-табелата',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|го додаде}} префиксот „$4“ ($5) (trans: $6; local: $7) во табелата со меѓувики',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|го измени}} префиксот „$4“ ($5) (trans: $6; local: $7) во табелата со меѓувики',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|го отстрани}} префиксот „$4“ од табелата со меѓувики',
+	'interwiki_logpagetext' => 'Ова е дневник на промени во [[Special:Interwiki|интервики-табелата]].',
+	'right-interwiki' => 'Уреди интервики',
+	'action-interwiki' => 'менување на овој интервики-запис',
+);
+
+/** Malayalam (മലയാളം)
+ * @author Praveenp
+ * @author Shijualex
+ */
+$messages['ml'] = array(
+	'interwiki' => 'ഇന്റർ വിക്കി ഡാറ്റ കാണുകയും തിരുത്തുകയും ചെയ്യുക',
+	'interwiki-title-norights' => 'ഇന്റർ‌വിക്കി ഡാറ്റ കാണുക',
+	'interwiki_reasonfield' => 'കാരണം:',
+	'interwiki_delquestion' => '"$1" മായ്ച്ചുകൊണ്ടിരിക്കുന്നു',
+	'interwiki_addbutton' => 'ചേർക്കുക',
+);
+
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'interwiki_1' => 'тийм',
+	'interwiki_0' => 'үгүй',
+	'interwiki_reasonfield' => 'Шалтгаан:',
+	'interwiki_addbutton' => 'Нэмэх',
+);
+
+/** Marathi (मराठी)
+ * @author Kaustubh
+ */
+$messages['mr'] = array(
+	'interwiki' => 'आंतरविकि डाटा पहा व संपादा',
+	'interwiki-title-norights' => 'अंतरविकि डाटा पहा',
+	'interwiki-desc' => 'आंतरविकि सारणी पाहण्यासाठी व संपादन्यासाठी एक [[Special:Interwiki|विशेष पान]] वाढविते',
+	'interwiki_intro' => 'आंतरविकि सारणी बद्दल अधिक माहीतीसाठी [http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org] पहा. इथे आंतरविकि सारणीत करण्यात आलेल्या [[Special:Log/interwiki|बदलांची यादी]] आहे.',
+	'interwiki_prefix' => 'उपपद (पूर्वप्रत्यय)',
+	'interwiki-prefix-label' => 'उपपद (पूर्वप्रत्यय):',
+	'interwiki_error' => 'त्रुटी: आंतरविकि सारणी रिकामी आहे, किंवा इतर काहीतरी चुकलेले आहे.',
+	'interwiki_reasonfield' => 'कारण:',
+	'interwiki_delquestion' => '"$1" वगळत आहे',
+	'interwiki_deleting' => 'तुम्ही "$1" उपपद वगळत आहात.',
+	'interwiki_deleted' => '"$1" उपपद आंतरविकि सारणीमधून वगळण्यात आलेले आहे.',
+	'interwiki_delfailed' => '"$1" उपपद आंतरविकि सारणीतून वगळता आलेले नाही.',
+	'interwiki_addtext' => 'एक आंतरविकि उपपद वाढवा',
+	'interwiki_addintro' => 'तुम्ही एक नवीन आंतरविकि उपपद वाढवित आहात. कृपया लक्षात घ्या की त्यामध्ये स्पेस ( ), विसर्ग (:), आणिचिन्ह (&), किंवा बरोबरची खूण (=) असू शकत नाही.',
+	'interwiki_addbutton' => 'वाढवा',
+	'interwiki_added' => '"$1" उपपद आंतरविकि सारणी मध्ये वाढविण्यात आलेले आहे.',
+	'interwiki_addfailed' => '"$1" उपपद आंतरविकि सारणी मध्ये वाढवू शकलेलो नाही. कदाचित ते अगोदरच अस्तित्वात असण्याची शक्यता आहे.',
+	'interwiki_edittext' => 'एक अंतरविकि उपपद संपादित आहे',
+	'interwiki_editintro' => 'तुम्ही एक अंतरविकि उपपद संपादित आहात.
+लक्षात ठेवा की यामुळे अगोदर दिलेले दुवे तुटू शकतात.',
+	'interwiki_edited' => 'अंतरविकि सारणीमध्ये "$1" उपपद यशस्वीरित्या बदलण्यात आलेले आहे.',
+	'interwiki_editerror' => 'अंतरविकि सारणीमध्ये "$1" उपपद बदलू शकत नाही.
+कदाचित ते अस्तित्वात नसेल.',
+	'interwiki_logpagename' => 'आंतरविकि सारणी नोंद',
+	'interwiki_logpagetext' => '[[Special:Interwiki|आंतरविकि सारणीत]] झालेल्या बदलांची ही सूची आहे.',
+	'right-interwiki' => 'आंतरविकि डाटा बदला',
+);
+
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
+ * @author Aviator
+ * @author Diagramma Della Verita
+ */
+$messages['ms'] = array(
+	'interwiki' => 'Lihat dan ubah data interwiki',
+	'interwiki-title-norights' => 'Lihat data interwiki',
+	'interwiki-desc' => 'Menambahkan [[Special:Interwiki|laman khas]] untuk melihat dan menyunting jadual interwiki',
+	'interwiki_intro' => 'Ini merupakan gambaran keseluruhan jadual interwiki. Erti-erti data dalam lajur:',
+	'interwiki_prefix' => 'Awalan',
+	'interwiki-prefix-label' => 'Awalan:',
+	'interwiki_prefix_intro' => 'Awalan interwiki yang hendak digunakan dalam sintaks teks wiki <code>[<nowiki />[awalan:<i>nama laman</i>]]</code>.',
+	'interwiki_url_intro' => 'Templat untuk URL. Pemegang tempat $1 akan diganti dengan <i>nama laman</i> wikiteks, apabila sintaks teks wiki yang dinyatakan di atas digunakan.',
+	'interwiki_local' => 'Kirim semula',
+	'interwiki-local-label' => 'Kirim semula:',
+	'interwiki_local_intro' => 'Permohonan HTTP kepada wiki tempatan dengan awalan interwiki ini dalam URL ialah:',
+	'interwiki_local_0_intro' => 'tidak dilunaskan, biasanya disekat oleh "laman tidak dijumpai",',
+	'interwiki_local_1_intro' => 'dilencongkan ke URL sasaran yang diberikan dalam takrifan pautan interwiki (iaitu dilayan seperti rujukan dalam laman tempatan)',
+	'interwiki_trans' => 'Transklusi',
+	'interwiki-trans-label' => 'Transklusi:',
+	'interwiki_trans_intro' => 'Jika sintaks teks wiki <code>{<nowiki />{awalan:<i>nama laman</i>}}</code> digunakan, maka:',
+	'interwiki_trans_1_intro' => 'benarkan transklusi dari wiki luar, jika transklusi interwiki pada umumnya dibenarkan dalam wiki ini,',
+	'interwiki_trans_0_intro' => 'jangan benarkan, sebaliknya cari suatu laman dalam ruang nama templat.',
+	'interwiki_intro_footer' => 'Lihat [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] untuk maklumat lanjut mengenai jadual interwiki.
+Terdapat [[Special:Log/interwiki|log perubahan]] pada jadual interwiki.',
+	'interwiki_1' => 'ya',
+	'interwiki_0' => 'tidak',
+	'interwiki_error' => 'Ralat: Jadual interwiki kosong atau sesuatu yang tidak kena berlaku.',
+	'interwiki-cached' => 'Data interwiki sudah dicachekan. Cache tidak boleh diubah suai.',
+	'interwiki_edit' => 'Sunting',
+	'interwiki_reasonfield' => 'Sebab:',
+	'interwiki_delquestion' => 'Menghapuskan "$1"',
+	'interwiki_deleting' => 'Anda sedang menghapuskan awalan "$1".',
+	'interwiki_deleted' => 'Awalan "$1" telah dibuang daripada jadual interwiki.',
+	'interwiki_delfailed' => 'Awalan "$1" tidak dapat dibuang daripada jadual interwiki.',
+	'interwiki_addtext' => 'Tambah awalan interwiki',
+	'interwiki_addintro' => 'Anda sedang menambah awalan interwiki baru. Sila ingat bahawa awalan interwiki tidak boleh mangandungi jarak ( ), noktah bertindih (:), ampersan (&), atau tanda sama (=).',
+	'interwiki_addbutton' => 'Tambahkan',
+	'interwiki_added' => 'Awalan "$1" telah ditambah ke dalam jadual interwiki.',
+	'interwiki_addfailed' => 'Awalan "$1" tidak dapat ditambah ke dalam jadual interwiki. Barangkali awalan ini telah pun wujud dalam jadual interwiki.',
+	'interwiki_edittext' => 'Mengubah awalan interwiki',
+	'interwiki_editintro' => 'Anda sedang mengubah suatu awalan interwiki. Sila ingat bahawa perbuatan ini boleh merosakkan pautan-pautan yang sudah ada.',
+	'interwiki_edited' => 'Awalan "$1" telah diubah dalam jadual interwiki.',
+	'interwiki_editerror' => 'Awalan "$1" tidak boleh diubah dalam jadual interwiki. Barangkali awalan ini tidak wujud.',
+	'interwiki-badprefix' => 'Awalan interwiki yang dinyatakan, "$1" mengandungi aksara yang tidak sah',
+	'interwiki-submit-empty' => 'Awalan dan URL tidak boleh dibiarkan kosong.',
+	'interwiki_logpagename' => 'Log maklumat Interwiki',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|membubuh}} awalan "$4" ($5) (trans: $6; setempat: $7) pada jadual interwiki',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|mengubah suai}} awalan "$4" ($5) (trans: $6; setempat: $7) pada jadual interwiki',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|membuang}} awalan "$4" daripada jadual interwiki',
+	'interwiki_logpagetext' => 'Ini ialah log perubahan kepada [[Special:Interwiki|jadual interwiki]].',
+	'right-interwiki' => 'Menyunting data interwiki',
+	'action-interwiki' => 'tukar data interwiki berikut',
+);
+
+/** Maltese (Malti)
+ * @author Chrisportelli
+ */
+$messages['mt'] = array(
+	'interwiki_edit' => 'Editja',
+);
+
+/** Erzya (Эрзянь)
+ * @author Botuzhaleny-sodamo
+ */
+$messages['myv'] = array(
+	'interwiki_prefix' => 'Икелькс пене',
+	'interwiki-prefix-label' => 'Икелькс пенезэ:',
+	'interwiki_local' => 'Пачтямс седе тов',
+	'interwiki-local-label' => 'Пачтямс седе тов:',
+	'interwiki_edit' => 'Витнеме-петнеме',
+	'interwiki_reasonfield' => 'Тувталось:',
+	'interwiki_addbutton' => 'Поладомс',
+);
+
+/** Mazanderani (مازِرونی)
+ * @author محک
+ */
+$messages['mzn'] = array(
+	'interwiki_edit' => 'دچی‌ین',
+);
+
+/** Nahuatl (Nāhuatl)
+ * @author Fluence
+ */
+$messages['nah'] = array(
+	'interwiki_reasonfield' => 'Īxtlamatiliztli:',
+	'interwiki_delquestion' => 'Mopolocah "$1"',
+	'interwiki_addbutton' => 'Ticcētilīz',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ * @author Nghtwlkr
+ * @author Purodha
+ */
+$messages['nb'] = array(
+	'interwiki' => 'Vis og manipuler interwikidata',
+	'interwiki-title-norights' => 'Vis interwikidata',
+	'interwiki-desc' => 'Legger til en [[Special:Interwiki|spesialside]] som gjør at man kan se og redigere interwiki-tabellen.',
+	'interwiki_intro' => 'Dette er en oversikt over interwikitabellen. Betydningene til dataene i kolonnene:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Interwikiprefiks som skal brukes i <code>[<nowiki />[prefiks:<i>sidenavn</i>]]</code>-wikisyntaks.',
+	'interwiki_url_intro' => 'Mal for internettadresser. Variabelen $1 vil bli erstattet av <i>sidenavnet</i> i wikiteksten når wikisyntaksen ovenfor blir brukt.',
+	'interwiki_local' => 'Videresend',
+	'interwiki-local-label' => 'Videresend:',
+	'interwiki_local_intro' => 'En HTTP-forespørsel til den lokale wikien med dette interwikiprefikset i internettadressen er:',
+	'interwiki_local_0_intro' => 'ikke fulgt, vanligvis blokkert av «siden ble ikke funnet»,',
+	'interwiki_local_1_intro' => 'omdirigert til målnettadressen gitt i interwikilenkedefinisjonene (med andre ord behandlet som referanser på lokale sider)',
+	'interwiki_trans' => 'Transkluder',
+	'interwiki-trans-label' => 'Transkluder:',
+	'interwiki_trans_intro' => 'Dersom wikisyntaksen <code>{<nowiki />{prefiks:<i>sidenavn</i>}}</code> blir brukt, så:',
+	'interwiki_trans_1_intro' => 'tillat transklusjon fra en fremmed wiki, om interwikitranskluderinger generellt er tillatt på denne wikien,',
+	'interwiki_trans_0_intro' => 'ikke tillat det, se heller etter en side i malnavnerommet.',
+	'interwiki_intro_footer' => 'Se [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] for mer informasjon om interwikitabellen.
+Det finnes en [[Special:Log/interwiki|endringslogg]] for interwikitabellen.',
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nei',
+	'interwiki_error' => 'FEIL: Interwikitabellen er tom, eller noe gikk gærent.',
+	'interwiki_edit' => 'Rediger',
+	'interwiki_reasonfield' => 'Årsak:',
+	'interwiki_delquestion' => 'Sletter «$1»',
+	'interwiki_deleting' => 'Du sletter prefikset «$1».',
+	'interwiki_deleted' => 'Prefikset «$1» ble fjernet fra interwikitabellen.',
+	'interwiki_delfailed' => 'Prefikset «$1» kunne ikke fjernes fra interwikitabellen.',
+	'interwiki_addtext' => 'Legg til et interwikiprefiks.',
+	'interwiki_addintro' => 'Du legger til et nytt interwikiprefiks. Husk at det ikke kan inneholde mellomrom ( ), kolon (:), &-tegn eller likhetstegn (=).',
+	'interwiki_addbutton' => 'Legg til',
+	'interwiki_added' => 'Prefikset «$1» ble lagt til i interwikitabellen.',
+	'interwiki_addfailed' => 'Prefikset «$1» kunne ikke legges til i interwikitabellen. Det er kanskje brukt der fra før.',
+	'interwiki_edittext' => 'Redigerer et interwikiprefiks',
+	'interwiki_editintro' => 'Du redigerer et interwikiprefiks. Merk at dette kan ødelegge eksisterende lenker.',
+	'interwiki_edited' => 'Prefikset «$1» ble endret i interwikitabellen.',
+	'interwiki_editerror' => 'Prefikset «$1» kan ikke endres i interwikitabellen. Det finnes muligens ikke.',
+	'interwiki-badprefix' => 'Det oppgitte interwikiprefikset «$1» innholder ugyldige tegn',
+	'interwiki_logpagename' => 'Interwikitabellogg',
+	'interwiki_logpagetext' => 'Dette er en logg over endringer i [[Special:Interwiki|interwikitabellen]].',
+	'right-interwiki' => 'Redigere interwikidata',
+	'action-interwiki' => 'endre dette interwikielementet',
+);
+
+/** Low German (Plattdüütsch)
+ * @author Purodha
+ * @author Slomox
+ */
+$messages['nds'] = array(
+	'interwiki_intro' => 'Disse Sied gifft en Överblick över de Interwiki-Tabell. De Indrääg in de enkelten Spalten bedüüdt:',
+	'interwiki_prefix' => 'Präfix',
+	'interwiki-prefix-label' => 'Präfix:',
+	'interwiki_local' => 'Wiederleiden to en anner Wiki',
+	'interwiki-local-label' => 'Wiederleiden to en anner Wiki:',
+	'interwiki_trans' => 'Inbinnen över Interwiki verlöven',
+	'interwiki-trans-label' => 'Inbinnen över Interwiki verlöven:',
+	'interwiki_1' => 'jo',
+	'interwiki_0' => 'nee',
+	'interwiki_error' => 'De Interwiki-Tabell is leddig, oder wat anners is verkehrt lopen.',
+	'interwiki_edit' => 'Ännern',
+	'interwiki_reasonfield' => 'Grund:',
+	'interwiki_delquestion' => '„$1“ warrt rutsmeten',
+	'interwiki_addtext' => 'Interwiki-Präfix tofögen',
+	'interwiki_addbutton' => 'Tofögen',
+	'right-interwiki' => 'Interwiki-Tabell ännern',
+	'action-interwiki' => 'dissen Indrag in de Interwiki-Tabell ännern',
+);
+
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'interwiki_addbutton' => 'Derbie doon',
+);
+
+/** Dutch (Nederlands)
+ * @author SPQRobin
+ * @author Siebrand
+ * @author Tvdm
+ */
+$messages['nl'] = array(
+	'interwiki' => 'Interwikigegevens bekijken en wijzigen',
+	'interwiki-title-norights' => 'Interwikigegevens bekijken',
+	'interwiki-desc' => 'Voegt een [[Special:Interwiki|speciale pagina]] toe om de interwikitabel te bekijken en bewerken',
+	'interwiki_intro' => 'Dit is een overzicht van de interwikitabel.
+Betekenis van de gegevens en kolommen:',
+	'interwiki_prefix' => 'Voorvoegsel',
+	'interwiki-prefix-label' => 'Voorvoegsel:',
+	'interwiki_prefix_intro' => 'Interwikivoorvoegsel dat gebruikt moet worden in de wikitekstsyntaxis <code>[<nowiki />[voorvoegsel:<i>paginanaam</i>]]</code>.',
+	'interwiki_url_intro' => "Een sjabloon voor URL's. De plaatshouder $1 wordt vervangen door de <i>paginanaam</i> van de wikitekst als de bovenvermelde wikitekstsyntaxis gebruikt wordt.",
+	'interwiki_local' => 'Doorverwijzen',
+	'interwiki-local-label' => 'Doorverwijzen:',
+	'interwiki_local_intro' => 'Een HTTP-aanvraag naar de lokale wiki met dit interwikivoorvoegsel in de URL is:',
+	'interwiki_local_0_intro' => 'wordt niet verwerkt. Meestal geblokkeerd door een "pagina niet gevonden"-foutmelding.',
+	'interwiki_local_1_intro' => "doorverwezen naar de doel-URL die opgegeven is in de definities van de interwikiverwijzingen (deze worden behandeld als bronnen in lokale pagina's)",
+	'interwiki_trans' => 'Transcluderen',
+	'interwiki-trans-label' => 'Transcluderen:',
+	'interwiki_trans_intro' => 'Indien de wikitextsyntaxis <code>{<nowiki />{voorvoegsel:<i>paginanaam</i>}}</code> gebruikt wordt, dan:',
+	'interwiki_trans_1_intro' => 'transclusie toestaan van de andere wiki indien interwikitransclusies toegestaan zijn in deze wiki.',
+	'interwiki_trans_0_intro' => 'niet toestaan, zoeken naar een pagina in de sjabloonnaamruimte.',
+	'interwiki_intro_footer' => 'Zie [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] voor meer informatie over de interwikitabel.
+Er is een [[Special:Log/interwiki|veranderingslogboek]] voor de interwikitabel.',
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nee',
+	'interwiki_error' => 'Fout: De interwikitabel is leeg, of iets anders ging verkeerd.',
+	'interwiki-cached' => 'De interwiki-gegevens staan in de cache. De cache wijzigen is niet mogelijk.',
+	'interwiki_edit' => 'Bewerken',
+	'interwiki_reasonfield' => 'Reden:',
+	'interwiki_delquestion' => '"$1" aan het verwijderen',
+	'interwiki_deleting' => 'U bent voorvoegsel "$1" aan het verwijderen.',
+	'interwiki_deleted' => 'Voorvoegsel "$1" is verwijderd uit de interwikitabel.',
+	'interwiki_delfailed' => 'Voorvoegsel "$1" kon niet worden verwijderd van de interwikitabel.',
+	'interwiki_addtext' => 'Een interwikivoorvoegsel toevoegen',
+	'interwiki_addintro' => 'U bent een nieuw interwikivoorvoegsel aan het toevoegen. Let op dat dit geen spaties ( ), dubbelepunt (:), ampersands (&), of gelijkheidstekens (=) mag bevatten.',
+	'interwiki_addbutton' => 'Toevoegen',
+	'interwiki_added' => 'Voorvoegsel "$1" is toegevoegd aan de interwikitabel.',
+	'interwiki_addfailed' => 'Voorvoegsel "$1" kon niet worden toegevoegd aan de interwikitabel. Mogelijk bestaat hij al in de interwikitabel.',
+	'interwiki_edittext' => 'Een interwikivoorvoegsel bewerken',
+	'interwiki_editintro' => 'U bent een interwikivoorvoegsel aan het bewerken. Let op dat dit bestaande verwijzingen kan breken.',
+	'interwiki_edited' => 'Voorvoegsel "$1" is gewijzigd in de interwikitabel.',
+	'interwiki_editerror' => 'Voorvoegsel "$1" kan niet worden gewijzigd in de interwikitabel. Mogelijk bestaat hij niet.',
+	'interwiki-badprefix' => 'Het interwikivoorvoegsel "$1" bevat ongeldige karakters',
+	'interwiki-submit-empty' => 'Het voorvoegsel en de URL mogen niet leeg zijn.',
+	'interwiki_logpagename' => 'Logboek interwikitabel',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|voegde}} voorvoegsel "$4" toe ($5) (trans: $6; local: $7) aan de interwikitabel',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|wijzigde}} voorvoegsel "$4" ($5) (trans: $6; local: $7) in de interwikitabel',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|verwijderde}} voorvoegsel "$4" van de interwikitabel',
+	'interwiki_logpagetext' => 'Dit is een logboek van wijzigingen aan de [[Special:Interwiki|interwikitabel]].',
+	'right-interwiki' => 'Interwikigegevens bewerken',
+	'action-interwiki' => 'deze interwikiverwijzing te wijzigen',
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
+ * @author Eirik
+ * @author Gunnernett
+ * @author Harald Khan
+ * @author Jon Harald Søby
+ */
+$messages['nn'] = array(
+	'interwiki' => 'Vis og endre interwikidata',
+	'interwiki-title-norights' => 'Vis interwikidata',
+	'interwiki-desc' => 'Legg til ei [[Special:Interwiki|spesialsida]] som gjer at ein kan syna og endra interwikitabellen.',
+	'interwiki_intro' => 'Dette er eit oversyn over interwikitabellen. Meiningane til dataa i kolonnane:',
+	'interwiki_prefix' => 'Forstaving',
+	'interwiki-prefix-label' => 'Forstaving:',
+	'interwiki_prefix_intro' => 'Interwikiforstaving som skal verta nytta i <code>[<nowiki />[forstaving:<i>sidenamn</i>]]</code>-wikisyntaks.',
+	'interwiki_url_intro' => 'Mal for adresser. Variabelen $1 vil verta bytt ut med <i>sidenamn</i> i wikiteksten når wikisyntakset ovanfor vert nytta.',
+	'interwiki_local' => 'Send vidare',
+	'interwiki-local-label' => 'Send vidare:',
+	'interwiki_local_intro' => 'Ein http-førespurnad til den lokale wikien med denne interwikiforstavinga i adressa, er:',
+	'interwiki_local_0_intro' => 'ikkje æra, vanlegvis blokkert med «finn ikkje websida»,',
+	'interwiki_local_1_intro' => 'omdirigert til måladressa oppgjeven i interwikilenkjedefinisjonane (med andre ord handsama som refereransar på lokale sider)',
+	'interwiki_trans' => 'Inkluder',
+	'interwiki-trans-label' => 'Inkluder:',
+	'interwiki_trans_intro' => 'Om wikitekstsyntakset <code>{<nowiki />{prefix:<i>pagename</i>}}</code> er nytta, so:',
+	'interwiki_trans_1_intro' => 'tillat inkludering frå ein framand wiki, om interwikiinkluderingar generelt sett er tillatne på denne wikien,',
+	'interwiki_trans_0_intro' => 'ikkje tillat det, sjå heller etter ei sida i malnamnerommet.',
+	'interwiki_intro_footer' => 'Sjå [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] for meir informasjon om interwikitabellen.
+Det finst ein [[Special:Log/interwiki|logg over endringar]] i interwikitabellen.',
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nei',
+	'interwiki_error' => 'Feil: Interwikitabellen er tom, eller noko anna gjekk gale.',
+	'interwiki_edit' => 'Endra',
+	'interwiki_reasonfield' => 'Årsak:',
+	'interwiki_delquestion' => 'Slettar «$1»',
+	'interwiki_deleting' => 'Du slettar prefikset «$1».',
+	'interwiki_deleted' => 'Prefikset «$1» blei fjerna frå interwikitabellen.',
+	'interwiki_delfailed' => 'Prefikset «$1» kunne ikkje bli fjerna frå interwikitabellen.',
+	'interwiki_addtext' => 'Legg til eit interwikiprefiks',
+	'interwiki_addintro' => 'Du legg til eit nytt interwikiprefiks.
+Hugs at det ikkje kan innehalda mellomrom ( ), kolon (:), et (&) eller likskapsteikn (=).',
+	'interwiki_addbutton' => 'Legg til',
+	'interwiki_added' => 'Prefikset «$1» blei lagt til i interwikitabellen.',
+	'interwiki_addfailed' => 'Prefikset «$1» kunne ikkje bli lagt til i interwikitabellen.
+Kanskje er det i bruk frå før.',
+	'interwiki_edittext' => 'Endrar eit interwikiprefiks',
+	'interwiki_editintro' => 'Du endrar eit interwikiprefiks.
+Hugs at dette kan øydeleggja lenkjer som finst frå før.',
+	'interwiki_edited' => 'Prefikset «$1» blei endra i interwikitabellen.',
+	'interwiki_editerror' => 'Prefikset «$1» kan ikkje bli endra i interwikitabellen.
+Kanskje finst det ikkje.',
+	'interwiki-badprefix' => 'Det oppgjevne interwikiprefikset «$1» inneheld ugyldige teikn.',
+	'interwiki_logpagename' => 'Logg for interwikitabell',
+	'interwiki_logpagetext' => 'Dette er ein logg over endringar i [[Special:Interwiki|interwikitabellen]].',
+	'right-interwiki' => 'Endra interwikidata',
+	'action-interwiki' => 'endra dette interwikielementet',
+);
+
+/** Novial (Novial)
+ * @author Malafaya
+ */
+$messages['nov'] = array(
+	'interwiki_reasonfield' => 'Resone:',
+);
+
+/** Northern Sotho (Sesotho sa Leboa)
+ * @author Mohau
+ */
+$messages['nso'] = array(
+	'interwiki_reasonfield' => 'Lebaka:',
+	'interwiki_delquestion' => 'Phumula "$1"',
+	'interwiki_addbutton' => 'Lokela',
+);
+
+/** Occitan (Occitan)
+ * @author Cedric31
+ */
+$messages['oc'] = array(
+	'interwiki' => 'Veire e editar las donadas interwiki',
+	'interwiki-title-norights' => 'Veire las donadas interwiki',
+	'interwiki-desc' => 'Apond una [[Special:Interwiki|pagina especiala]] per veire e editar la taula interwiki',
+	'interwiki_intro' => 'Aquò es un apercebut de la taula interwiki. Vaquí las significacions de las donadas de colomnas :',
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix :',
+	'interwiki_prefix_intro' => "Prefix interwiki d'utilizar dins <code>[<nowiki />[prefix :<i>nom de la pagina</i>]]</code> de la sintaxi wiki.",
+	'interwiki_url_intro' => 'Modèl per las URLs. $1 serà remplaçat pel <i>nom de la pagina</i> del wikitèxt, quora la sintaxi çaisús es utilizada.',
+	'interwiki_local' => 'Far seguir',
+	'interwiki-local-label' => 'Far seguir :',
+	'interwiki_local_intro' => "Una requèsta HTTP sus aqueste wiki amb aqueste prefix interwiki dins l'URL serà :",
+	'interwiki_local_0_intro' => 'regetat, blocat generalament per « Marrit títol »,',
+	'interwiki_local_1_intro' => "redirigit cap a l'URL cibla en foncion de la definicion del prefix interwiki (es a dire tractat coma un ligam dins una pagina del wiki)",
+	'interwiki_trans' => 'Enclure',
+	'interwiki-trans-label' => 'Enclure :',
+	'interwiki_trans_intro' => 'Se la sintaxi <code>{<nowiki />{prefix :<i>nom de la pagina</i>}}</code> es utilizada, alara :',
+	'interwiki_trans_1_intro' => "l'inclusion a partir del wiki serà autorizada, se las inclusions interwiki son autorizadas dins aqueste wiki,",
+	'interwiki_trans_0_intro' => "l'inclusion serà regetada, e la pagina correspondenta serà recercada dins l'espaci de noms « Modèl ».",
+	'interwiki_intro_footer' => "Vejatz [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] per obténer mai d'entresenhas a prepaus de la taula interwiki.
+Existís un [[Special:Log/interwiki|jornal de las modificacions]] de la taula interwiki.",
+	'interwiki_1' => 'òc',
+	'interwiki_0' => 'non',
+	'interwiki_error' => "Error : la taula dels interwikis es voida o un processús s'es mal desenrotlat.",
+	'interwiki_edit' => 'Modificar',
+	'interwiki_reasonfield' => 'Motiu :',
+	'interwiki_delquestion' => 'Supression "$1"',
+	'interwiki_deleting' => 'Escafatz presentament lo prefix « $1 ».',
+	'interwiki_deleted' => '$1 es estada levada amb succès de la taula interwiki.',
+	'interwiki_delfailed' => '$1 a pas pogut èsser levat de la taula interwiki.',
+	'interwiki_addtext' => 'Apond un prefix interwiki',
+	'interwiki_addintro' => "Sètz a apondre un prefix interwiki. Rapelatz-vos que pòt pas conténer d'espacis ( ), de punts dobles (:), d'eperluetas (&) o de signes egal (=)",
+	'interwiki_addbutton' => 'Apondre',
+	'interwiki_added' => '$1 es estat apondut amb succès dins la taula interwiki.',
+	'interwiki_addfailed' => '$1 a pas pogut èsser apondut a la taula interwiki.
+Benlèu i existís ja.',
+	'interwiki_edittext' => 'Modificar un prefix interwiki',
+	'interwiki_editintro' => "Modificatz un prefix interwiki. Rapelatz-vos qu'aquò pòt rompre de ligams existents.",
+	'interwiki_edited' => 'Lo prefix « $1 » es estat modificat amb succès dins la taula interwiki.',
+	'interwiki_editerror' => "Lo prefix « $1 » pòt pas èsser modificat. Es possible qu'exista pas.",
+	'interwiki-badprefix' => 'Lo prefix interwiki especificat « $1 » conten de caractèrs invalids',
+	'interwiki_logpagename' => 'Jornal de la taula interwiki',
+	'interwiki_logpagetext' => 'Aquò es lo jornal dels cambiaments dins la [[Special:Interwiki|taula interwiki]].',
+	'right-interwiki' => 'Modificar las donadas interwiki',
+	'action-interwiki' => 'modificar aquesta entrada interwiki',
+);
+
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Jnanaranjan Sahu
+ */
+$messages['or'] = array(
+	'interwiki_1' => 'ହଁ',
+	'interwiki_0' => 'ନା',
+	'interwiki_edit' => 'ବଦଳ',
+	'interwiki_reasonfield' => 'କାରଣ:',
+	'interwiki_delquestion' => '"$1"କୁ ଲିଭାଉଛି',
+	'interwiki_deleting' => 'ଆପଣ "$1"ର ପୂର୍ବକୁ ବଦଳାଉଛନ୍ତି',
+);
+
+/** Ossetic (Ирон)
+ * @author Amikeco
+ */
+$messages['os'] = array(
+	'interwiki_reasonfield' => 'Аххос:',
+);
+
+/** Deitsch (Deitsch)
+ * @author Purodha
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'interwiki_1' => 'ya',
+	'interwiki_0' => 'nee',
+	'interwiki_edit' => 'Ennere',
+	'interwiki_reasonfield' => 'Grund:',
+	'interwiki_addbutton' => 'Dezu duh',
+);
+
+/** Pälzisch (Pälzisch)
+ * @author Xqt
+ */
+$messages['pfl'] = array(
+	'interwiki_edit' => 'Bearwaide',
+);
+
+/** Polish (Polski)
+ * @author Leinad
+ * @author McMonster
+ * @author Sp5uhe
+ * @author Yarl
+ */
+$messages['pl'] = array(
+	'interwiki' => 'Podgląd i edycja danych interwiki',
+	'interwiki-title-norights' => 'Zobacz dane interwiki',
+	'interwiki-desc' => 'Dodaje [[Special:Interwiki|stronę specjalną]] służącą do przeglądania i redakcji tablicy interwiki.',
+	'interwiki_intro' => 'Przegląd tabeli interwiki. W kolumnach tabeli umieszczono następujące informacje:',
+	'interwiki_prefix' => 'Przedrostek',
+	'interwiki-prefix-label' => 'Przedrostek:',
+	'interwiki_prefix_intro' => 'Przedrostek interwiki do użycia zgodnie ze składnią wiki <code>[<nowiki />[prefiks:<i>nazwa strony</i>]]</code>.',
+	'interwiki_url_intro' => 'Szablon dla adresów URL. Symbol $1 zostanie zastąpiony przez <i>nazwę strony</i> wiki, gdzie wyżej wspomniana składnia wiki jest użyta.',
+	'interwiki_local' => 'Link działa',
+	'interwiki-local-label' => 'Przenieś do',
+	'interwiki_local_intro' => 'Zapytanie HTTP do lokalnej wiki z tym przedrostkiem interwiki w adresie URL to:',
+	'interwiki_local_0_intro' => 'nie respektowane, zazwyczaj blokowane przez „nie znaleziono strony”,',
+	'interwiki_local_1_intro' => 'przekierowane na adres docelowy podany w definicji linku interwiki (np. traktowane jako odniesienie do lokalnej strony)',
+	'interwiki_trans' => 'Transkluzja',
+	'interwiki-trans-label' => 'Transkluzja:',
+	'interwiki_trans_intro' => 'Jeśli składnia wiki <code>{<nowiki />{przedrostek:<i>nazwastrony</i>}}</code> została użyta, to:',
+	'interwiki_trans_1_intro' => 'pozwala na transkluzję z innych wiki, jeśli transkluzja interwiki jest w ogóle dozwolona na tej wiki,',
+	'interwiki_trans_0_intro' => 'nie pozwalaj na nią, raczej szukaj strony w przestrzeni szablonów.',
+	'interwiki_intro_footer' => 'Na [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] odnajdziesz więcej informacji na temat tabeli interwiki.
+Tutaj znajduje się [[Special:Log/interwiki|rejestr zmian]] tabeli interwiki.',
+	'interwiki_1' => 'tak',
+	'interwiki_0' => 'nie',
+	'interwiki_error' => 'BŁĄD: Tabela interwiki jest pusta lub wystąpił jakiś inny problem.',
+	'interwiki-cached' => 'Dane interwiki są buforowane. Zmiany zawartości pamięci podręcznej nie są możliwe.',
+	'interwiki_edit' => 'Edytuj',
+	'interwiki_reasonfield' => 'Powód',
+	'interwiki_delquestion' => 'Czy usunąć „$1”',
+	'interwiki_deleting' => 'Usuwasz prefiks „$1”.',
+	'interwiki_deleted' => 'Prefiks „$1” został z powodzeniem usunięty z tabeli interwiki.',
+	'interwiki_delfailed' => 'Prefiks „$1” nie może zostać usunięty z tabeli interwiki.',
+	'interwiki_addtext' => 'Dodaj przedrostek interwiki',
+	'interwiki_addintro' => 'Edytujesz przedrostek interwiki.
+Pamiętaj, że nie może on zawierać znaku odstępu ( ), dwukropka (:), ampersandu (&) oraz znaku równości (=).',
+	'interwiki_addbutton' => 'Dodaj',
+	'interwiki_added' => 'Prefiks „$1” został z powodzeniem dodany do tabeli interwiki.',
+	'interwiki_addfailed' => 'Prefiks „$1” nie może zostać dodany do tabeli interwiki.
+Prawdopodobnie ten prefiks już jest w tableli.',
+	'interwiki_edittext' => 'Edycja przedrostka interwiki',
+	'interwiki_editintro' => 'Edytujesz przedrostek interwiki. Pamiętaj, że może to zerwać istniejące powiązania między projektami językowymi.',
+	'interwiki_edited' => 'Prefiks „$1” został z powodzeniem poprawiony w tableli interwiki.',
+	'interwiki_editerror' => 'Prefiks „$1” nie może zostać poprawiony w tabeli interwiki. Prawdopodobnie nie ma go w tabeli.',
+	'interwiki-badprefix' => 'Podany przedrostek interwiki „$1” zawiera nieprawidłowe znaki',
+	'interwiki-submit-empty' => 'Przedrostek i adres URL nie mogą być puste.',
+	'interwiki_logpagename' => 'Rejestr tablicy interwiki',
+	'interwiki_logpagetext' => 'Poniżej znajduje się rejestr zmian wykonanych w [[Special:Interwiki|tablicy interwiki]].',
+	'right-interwiki' => 'Edycja danych interwiki',
+	'action-interwiki' => 'zmień ten wpis interwiki',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'interwiki' => 'Varda e modìfica dat antërwiki',
+	'interwiki-title-norights' => 'Varda dat antërwiki',
+	'interwiki-desc' => 'A gionta na [[Special:Interwiki|pàgina special]] për vëdde e modifiché la tàula antërwiki',
+	'interwiki_intro' => "Costa-sì a l'é na previsualisassion dla tàula antërwiki. Significà dij dat ant le colòne:",
+	'interwiki_prefix' => 'Prefiss',
+	'interwiki-prefix-label' => 'Prefiss:',
+	'interwiki_prefix_intro' => 'Prefiss antërwiki da dovré ant la sintassi dël test wiki <code>[<nowiki />[prefix:<i>nòm pàgina</i>]]</code>',
+	'interwiki_url_intro' => "Stamp për anliure. Ël marca-pòst $1 a sarà rimpiassà dal <i>nòm pàgina</i> dël test wiki, quand la sintassi dël test wiki dzor-dit a l'é dovrà.",
+	'interwiki_local' => 'Anans',
+	'interwiki-local-label' => 'Anans:',
+	'interwiki_local_intro' => "N'arcesta HTTP a la wiki local con sto prefiss antërwiki-sì ant l'anliura a l'é:",
+	'interwiki_local_0_intro' => 'pa fàit, normalment blocà da "pàgina pa trovà"',
+	'interwiki_local_1_intro' => "ridiressionà a l'anliura ëd destinassion dàita ant la definission dël colegament antërwiki (visadì tratà com arferiment ant le pàgine locaj)",
+	'interwiki_trans' => 'Anseriment',
+	'interwiki-trans-label' => 'Anseriment:',
+	'interwiki_trans_intro' => "Se la sintassi wikitest <code>{<nowiki />{prefix:<i>nòmpàgina</i>}}</code> a l'é dovrà, antlora:",
+	'interwiki_trans_1_intro' => "a përmet anseriment da la wiki strangera, se j'anseriment antërwiki a son generalment përmëttù an sta wiki-sì,",
+	'interwiki_trans_0_intro' => 'a përmet pa lòn, nopà a sërca na pàgina ant lë spassi nominal dlë stamp.',
+	'interwiki_intro_footer' => 'Varda [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] për savèjne ëd pi an sla tàula antërwiki.
+A-i é un [[Special:Log/interwiki|registr dij cambi]] për la tàula antërwiki.',
+	'interwiki_1' => 'é!',
+	'interwiki_0' => 'nò',
+	'interwiki_error' => "Eror: La tàula antërwiki a l'é veuida, o cheicòs d'àutr a l'é andàit mal.",
+	'interwiki-cached' => "Ij dat interwiki a son memorisà an local. A l'é nen possìbil modifiché la memòria local.",
+	'interwiki_edit' => 'Modìfica',
+	'interwiki_reasonfield' => 'Rason:',
+	'interwiki_delquestion' => 'Scancelassion ëd "$1"',
+	'interwiki_deleting' => 'It ses an camin a scancelé ël prefiss "$1".',
+	'interwiki_deleted' => 'Ël prefiss "$1" a l\'é stàit gavà da bin da la tàula antërwiki.',
+	'interwiki_delfailed' => 'Ël prefiss "$1" a peul pa esse gavà da la tàula antërwiki.',
+	'interwiki_addtext' => 'Gionta un prefiss antërwiki',
+	'interwiki_addintro' => "A l'é an camin ch'a gionta un neuv prefiss antërwiki.
+Ch'as visa che a peul pa conten-e spassi ( ), doi pont (:), e comersial (&), o l'ugual (=).",
+	'interwiki_addbutton' => 'Gionta',
+	'interwiki_added' => 'Ël prefiss "$1" a l\'é stàit giontà da bin a la tàula antërwiki.',
+	'interwiki_addfailed' => 'Ël prefiss "$1" a peul pa esse giontà a la tàula antërwiki.
+A peul esse ch\'a esista già ant la tàula antërwiki.',
+	'interwiki_edittext' => 'Modifiché un prefiss antërwiki',
+	'interwiki_editintro' => "A l'é an camin ch'a modìfica un prefiss antërwiki.
+Ch'as visa che sòn a peul rompe un colegament esistent.",
+	'interwiki_edited' => 'Ël prefiss "$1" a l\'é stàit modificà da bin ant la tàula antërwiki.',
+	'interwiki_editerror' => 'Ël prefiss "$1" a peul pa esse modificà ant la tàula antërwiki.
+A peul esse che a esista pa.',
+	'interwiki-badprefix' => 'Ël prefiss antërwiki specificà "$1" a conten caràter pa bon.',
+	'interwiki-submit-empty' => "Ël prefiss e l'anliura a peulo pa esse veuid.",
+	'interwiki_logpagename' => 'Registr tàula antërwiki',
+	'logentry-interwiki-iw_add' => "$1 {{GENDER:$2|a l'ha giontà}} ël prefiss «$4» ($5) (trans: $6; local: $7) a la tàula antërwiki",
+	'logentry-interwiki-iw_edit' => "$1 {{GENDER:$2|a l'ha modificà}} ël prefiss «$4» ($5) (trans: $6; local: $7) ant la tàula antërwiki",
+	'logentry-interwiki-iw_delete' => "$1 {{GENDER:$2|a l'ha gavà}} ël prefiss «$4» da la tàula antërwiki",
+	'interwiki_logpagetext' => "Cost-sì a l'é un registr dij cambi a la [[Special:Interwiki|tàula antërwiki]].",
+	'right-interwiki' => 'Modìfica dat antërwiki',
+	'action-interwiki' => 'cambia sto dat antërwiki-sì',
+);
+
+/** Pontic (Ποντιακά)
+ * @author Crazymadlover
+ * @author Omnipaedista
+ */
+$messages['pnt'] = array(
+	'interwiki_prefix' => 'Πρόθεμαν',
+	'interwiki-prefix-label' => 'Πρόθεμαν:',
+	'interwiki_trans' => 'Υπερκλεισμοί',
+	'interwiki-trans-label' => 'Υπερκλεισμοί:',
+	'interwiki_1' => 'ναι',
+	'interwiki_0' => 'όχι',
+	'interwiki_edit' => 'Ἀλλαγμαν',
+	'interwiki_delquestion' => 'Διαγραφήν του "$1"',
+	'right-interwiki' => 'Άλλαξον τα δογμενία ιντερβίκι',
+);
+
+/** Pashto (پښتو)
+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
+ */
+$messages['ps'] = array(
+	'interwiki_prefix' => 'مختاړی',
+	'interwiki-prefix-label' => 'مختاړی:',
+	'interwiki_1' => 'هو',
+	'interwiki_0' => 'نه',
+	'interwiki_edit' => 'سمول',
+	'interwiki_reasonfield' => 'سبب:',
+	'interwiki_delquestion' => '"$1" د ړنګولو په حال کې دی...',
+	'interwiki_deleting' => 'تاسې د "$1" مختاړی ړنګوی.',
+	'interwiki_addbutton' => 'ورګډول',
+);
+
+/** Portuguese (Português)
+ * @author 555
+ * @author Hamilton Abreu
+ * @author Malafaya
+ * @author Waldir
+ */
+$messages['pt'] = array(
+	'interwiki' => 'Ver e manipular dados de interwikis',
+	'interwiki-title-norights' => 'Dados de interwikis',
+	'interwiki-desc' => '[[Special:Interwiki|Página especial]] para ver e editar a tabela de interwikis',
+	'interwiki_intro' => 'Isto é um resumo da tabela de interwikis. Significado dos dados nas colunas:',
+	'interwiki_prefix' => 'Prefixo',
+	'interwiki-prefix-label' => 'Prefixo:',
+	'interwiki_prefix_intro' => 'Sintaxe dos prefixos dos links interwikis, na notação wiki <code>[<nowiki />[prefixo:<i>nome da página</i>]]</code>.',
+	'interwiki_url_intro' => 'Modelo para URLs. O espaço reservado por $1 será substituído pelo <i>nome da página</i> da notação wiki, quando for usada a sintaxe mencionada acima.',
+	'interwiki_local' => 'Encaminhar',
+	'interwiki-local-label' => 'Encaminhar:',
+	'interwiki_local_intro' => 'Um pedido http para a wiki local, com este prefixo de interwikis na URL, é:',
+	'interwiki_local_0_intro' => 'ignorado, geralmente bloqueado por "página não encontrada",',
+	'interwiki_local_1_intro' => 'redireccionado para a URL de destino especificada nas definições dos links interwikis (isto é, tratado como referências em páginas locais)',
+	'interwiki_trans' => 'Transcluir',
+	'interwiki-trans-label' => 'Transcluir:',
+	'interwiki_trans_intro' => 'Se for usada a sintaxe de texto wiki <code>{<nowiki />{prefix:<i>nome_página</i>}}</code>, então:',
+	'interwiki_trans_1_intro' => 'permite transclusão da wiki externa, se transclusões interwikis forem permitidas de forma geral nesta wiki,',
+	'interwiki_trans_0_intro' => 'não o permite; ao invés, procura uma página no espaço nominal de predefinições.',
+	'interwiki_intro_footer' => 'Veja [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] para mais informações sobre a tabela de interwikis.
+Existe um [[Special:Log/interwiki|registo de modificações]] à tabela de interwikis.',
+	'interwiki_1' => 'sim',
+	'interwiki_0' => 'não',
+	'interwiki_error' => 'ERRO: A tabela de interwikis está vazia, ou alguma outra coisa não correu bem.',
+	'interwiki-cached' => 'Os dados de interwikis são armazenados na cache. Não é possível modificar a cache.',
+	'interwiki_edit' => 'Editar',
+	'interwiki_reasonfield' => 'Motivo:',
+	'interwiki_delquestion' => 'A apagar "$1"',
+	'interwiki_deleting' => 'Está a apagar o prefixo "$1".',
+	'interwiki_deleted' => 'O prefixo "$1" foi removido da tabela de interwikis com sucesso.',
+	'interwiki_delfailed' => 'Não foi possível remover o prefixo "$1" da tabela de interwikis.',
+	'interwiki_addtext' => 'Adicionar um prefixo de interwikis',
+	'interwiki_addintro' => 'Está prestes a adicionar um novo prefixo de interwikis.
+Lembre-se que este não pode conter espaços ( ), dois-pontos (:), conjunções (&) ou sinais de igualdade (=).',
+	'interwiki_addbutton' => 'Adicionar',
+	'interwiki_added' => 'O prefixo "$1" foi adicionado à tabela de interwikis com sucesso.',
+	'interwiki_addfailed' => 'Não foi possível adicionar o prefixo "$1" à tabela de interwikis. Possivelmente já existe nessa tabela.',
+	'interwiki_edittext' => 'A editar um prefixo de interwikis',
+	'interwiki_editintro' => 'Está a editar um prefixo de interwikis. Lembre-se de que isto pode quebrar links existentes.',
+	'interwiki_edited' => 'O prefixo "$1" foi modificado com sucesso na tabela de interwikis.',
+	'interwiki_editerror' => 'Não foi possível modificar o prefixo "$1" na tabela de interwikis. Possivelmente, não existe.',
+	'interwiki-badprefix' => 'O prefixo de interwikis "$1" contém caracteres inválidos',
+	'interwiki-submit-empty' => 'O prefixo e a URL não podem estar vazios.',
+	'interwiki_logpagename' => 'Registo da tabela de interwikis',
+	'interwiki_logpagetext' => 'Este é um registo das alterações à [[Special:Interwiki|tabela de interwikis]].',
+	'right-interwiki' => 'Editar dados de interwikis',
+	'action-interwiki' => 'alterar esta entrada interwikis',
+);
+
+/** Brazilian Portuguese (Português do Brasil)
+ * @author Eduardo.mps
+ * @author Giro720
+ * @author Luckas Blade
+ */
+$messages['pt-br'] = array(
+	'interwiki' => 'Ver e editar dados de interwikis',
+	'interwiki-title-norights' => 'Ver dados interwiki',
+	'interwiki-desc' => 'Adiciona uma [[Special:Interwiki|página especial]] para visualizar e editar a tabela de interwikis',
+	'interwiki_intro' => 'Isto é um resumo da tabela de interwikis. Significado dos dados nas colunas:',
+	'interwiki_prefix' => 'Prefixo',
+	'interwiki-prefix-label' => 'Prefixo:',
+	'interwiki_prefix_intro' => 'Prefixo de interwiki a ser usado na sintaxe de wikitexto <code>[<nowiki />[prefix:<i>nome_página</i>]]</code>.',
+	'interwiki_url_intro' => 'Modelo para URL. O marcador $1 será substituído pelo <i>nome_página</i> do wikitexto, quando a sintaxe de wikitexto acima mencionada for usada.',
+	'interwiki_local' => 'Encaminhar',
+	'interwiki-local-label' => 'Encaminhar:',
+	'interwiki_local_intro' => 'Um pedido http para o wiki local com este prefixo de interwiki na URL é:',
+	'interwiki_local_0_intro' => 'ignorado, geralmente bloqueado por "página não encontrada",',
+	'interwiki_local_1_intro' => 'redirecionado para a URL alvo dada nas definições de ligação interwiki (p. ex. tratado como referências em páginas locais)',
+	'interwiki_trans' => 'Transcluir',
+	'interwiki-trans-label' => 'Transcluir:',
+	'interwiki_trans_intro' => 'Se a sintaxe de wikitexto <code>{<nowiki />{prefix:<i>nome_página</i>}}</code> for usada, então:',
+	'interwiki_trans_1_intro' => 'permite transclusão do wiki externo, se transclusões interwiki forem permitidas de forma geral neste wiki,',
+	'interwiki_trans_0_intro' => 'não o permite; ao invés, procura uma página no espaço nominal de predefinições.',
+	'interwiki_intro_footer' => 'Veja [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] para mais informações sobre a tabela de interwikis.
+Existe um [[Special:Log/interwiki|registro de modificações]] à tabela de interwikis.',
+	'interwiki_1' => 'sim',
+	'interwiki_0' => 'não',
+	'interwiki_error' => 'ERRO: A tabela de interwikis está vazia, ou alguma outra coisa não correu bem.',
+	'interwiki_edit' => 'Editar',
+	'interwiki_reasonfield' => 'Motivo:',
+	'interwiki_delquestion' => 'Apagando "$1"',
+	'interwiki_deleting' => 'Você está apagando o prefixo "$1".',
+	'interwiki_deleted' => 'O prefixo "$1" foi removido da tabelas de interwikis com sucesso.',
+	'interwiki_delfailed' => 'O prefixo "$1" não pôde ser removido da tabela de interwikis.',
+	'interwiki_addtext' => 'Adicionar um prefixo de interwikis',
+	'interwiki_addintro' => 'Você se encontra prestes a adicionar um novo prefixo de interwiki. Lembre-se de que ele não pode conter espaços ( ), dois-pontos (:), conjunções (&) ou sinais de igualdade (=).',
+	'interwiki_addbutton' => 'Adicionar',
+	'interwiki_added' => 'O prefixo "$1" foi adicionado à tabela de interwikis com sucesso.',
+	'interwiki_addfailed' => 'O prefixo "$1" não pôde ser adicionado à tabela de interwikis. Possivelmente já existe nessa tabela.',
+	'interwiki_edittext' => 'Editando um prefixo interwiki',
+	'interwiki_editintro' => 'Você está editando um prefixo interwiki. Lembre-se de que isto pode quebrar ligações existentes.',
+	'interwiki_edited' => 'O prefixo "$1" foi modificado na tabela de interwikis com sucesso.',
+	'interwiki_editerror' => 'O prefixo "$1" não pode ser modificado na tabela de interwikis. Possivelmente, não existe.',
+	'interwiki-badprefix' => 'O prefixo interwiki "$1" contém caracteres inválidos',
+	'interwiki_logpagename' => 'Registro da tabela de interwikis',
+	'interwiki_logpagetext' => 'Este é um registro das alterações à [[Special:Interwiki|tabela de interwikis]].',
+	'right-interwiki' => 'Editar dados de interwiki',
+	'action-interwiki' => 'alterar esta entrada interwiki',
+);
+
+/** Romanian (Română)
+ * @author Firilacroco
+ * @author KlaudiuMihaila
+ * @author Minisarm
+ */
+$messages['ro'] = array(
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix:',
+	'interwiki_1' => 'da',
+	'interwiki_0' => 'nu',
+	'interwiki_edit' => 'Modificare',
+	'interwiki_reasonfield' => 'Motiv:',
+	'interwiki_delquestion' => 'Ștergere „$1”',
+	'interwiki_addbutton' => 'Adaugă',
+	'action-interwiki' => 'modificați această legătură interwiki',
+);
+
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'interwiki_prefix' => 'Prefisse',
+	'interwiki-prefix-label' => 'Prefisse:',
+	'interwiki_local' => 'Inoltre',
+	'interwiki-local-label' => 'Inoltre:',
+	'interwiki_1' => 'sine',
+	'interwiki_0' => 'none',
+	'interwiki_edit' => 'Cange',
+	'interwiki_reasonfield' => 'Mutive:',
+	'interwiki_delquestion' => 'Scangellamende de "$1"',
+	'interwiki_deleting' => 'Tu ste scangille \'u prefisse "$1".',
+	'interwiki_addbutton' => 'Aggiunge',
+);
+
+/** Russian (Русский)
+ * @author Ferrer
+ * @author Grigol
+ * @author Illusion
+ * @author Innv
+ * @author KPu3uC B Poccuu
+ * @author Lockal
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'interwiki' => 'Просмотр и изменение настроек интервики',
+	'interwiki-title-norights' => 'Просмотреть данные об интервики',
+	'interwiki-desc' => 'Добавляет [[Special:Interwiki|служебную страницу]] для просмотра и редактирования таблицы приставок интервики.',
+	'interwiki_intro' => 'Это обзор таблицы интервики. Значения данных в колонках:',
+	'interwiki_prefix' => 'Приставка',
+	'interwiki-prefix-label' => 'Приставка:',
+	'interwiki_prefix_intro' => 'Приставка интервики для использования в синтаксисе вики-текста: <code>[<nowiki />[приставка:<i>название страницы</i>]]</code>.',
+	'interwiki_url_intro' => 'Шаблон для URL. Вместо $1 будет подставлено <i>название страницы</i>, указанное при использовании указанного выше синтаксиса.',
+	'interwiki_local' => 'Пересылка',
+	'interwiki-local-label' => 'Пересылка:',
+	'interwiki_local_intro' => 'HTTP-запрос в местную вики с интервики-приставкой в URL:',
+	'interwiki_local_0_intro' => 'не допускается, обычно блокируется сообщением «страница не найдена»,',
+	'interwiki_local_1_intro' => 'перенаправляет на целевой URL, указанный в определении интервики-ссылки (т. е. обрабатывается подобно ссылке с локальной страницы)',
+	'interwiki_trans' => 'Включение',
+	'interwiki-trans-label' => 'Включение:',
+	'interwiki_trans_intro' => 'Если используется синтаксис вики-текста вида <code>{<nowiki />{приставка:<i>название страницы</i>}}</code>:',
+	'interwiki_trans_1_intro' => 'позволяет включения из других вики, если интервики-включения разрешены в этой вики,',
+	'interwiki_trans_0_intro' => 'включения не разрешены, ищется страница в пространстве имён шаблонов.',
+	'interwiki_intro_footer' => 'Более подробную информацию о таблице интервики можно найти на [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org].
+Существует [[Special:Log/interwiki|журнал изменений]] таблицы интервики.',
+	'interwiki_1' => 'да',
+	'interwiki_0' => 'нет',
+	'interwiki_error' => 'ОШИБКА: таблица интервики пуста или что-то другое работает ошибочно.',
+	'interwiki-cached' => 'Сведения об интервики взяты из кэша. Измененить кэш не представляется возможным.',
+	'interwiki_edit' => 'Править',
+	'interwiki_reasonfield' => 'Причина:',
+	'interwiki_delquestion' => 'Удаление «$1»',
+	'interwiki_deleting' => 'Вы удаляете приставку «$1».',
+	'interwiki_deleted' => 'Приставка «$1» успешно удалена из таблицы интервики.',
+	'interwiki_delfailed' => 'Приставка «$1» не может быть удалена из таблицы интервики.',
+	'interwiki_addtext' => 'Добавить новую интервики-приставку',
+	'interwiki_addintro' => 'Вы собираетесь добавить новую интервики-приставку. Помните, что она не может содержать пробелы ( ), двоеточия (:), амперсанды (&) и знаки равенства (=).',
+	'interwiki_addbutton' => 'Добавить',
+	'interwiki_added' => 'Приставка «$1» успешно добавлена в таблицу интервики.',
+	'interwiki_addfailed' => 'Приставка «$1» не может быть добавлена в таблицу интервики. Возможно, она уже присутствует в таблице интервики.',
+	'interwiki_edittext' => 'Редактирование интервики-приставок',
+	'interwiki_editintro' => 'Вы редактируете интервики-приставку. Помните, что это может сломать существующие ссылки.',
+	'interwiki_edited' => 'Приставка «$1» успешно изменена в интервики-таблице.',
+	'interwiki_editerror' => 'Приставка «$1» не может быть изменена в интервики-таблице. Возможно, она не существует.',
+	'interwiki-badprefix' => 'Указанная интервики-приставка «$1» содержит недопустимые символы',
+	'interwiki-submit-empty' => 'Префикс и URL не могут быть пустыми.',
+	'interwiki_logpagename' => 'Журнал изменений таблицы интервики',
+	'logentry-interwiki-iw_add' => '$1 {{GENDER:$2|добавил|добавила}} префикс «$4» ($5) (trans: $6; local: $7) в интервики-таблицу',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|изменил|изменила}} префикс «$4» ($5) (trans: $6; local: $7) в интервики-таблице',
+	'logentry-interwiki-iw_delete' => '$1 {{GENDER:$2|удалил|удалила}} префикс «$4» из интервики-таблицы',
+	'interwiki_logpagetext' => 'Это журнал изменений [[Special:Interwiki|таблицы интервики]].',
+	'right-interwiki' => 'правка таблицы интервики',
+	'action-interwiki' => 'изменение записи интервики',
+);
+
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'interwiki_1' => 'гей',
+	'interwiki_0' => 'нїт',
+	'interwiki_edit' => 'Едітовати',
+	'interwiki_reasonfield' => 'Причіна:',
+	'interwiki_addbutton' => 'Придати',
+);
+
+/** Sakha (Саха тыла)
+ * @author HalanTul
+ */
+$messages['sah'] = array(
+	'interwiki' => 'Интервики туруорууларын көрүү уонна уларытыы',
+	'interwiki-title-norights' => 'Интервики туһунан',
+	'interwiki_intro' => 'Бу интервики табылыыссата. Колонкаларга:',
+	'interwiki_prefix' => 'Префикс (эбиискэ)',
+	'interwiki-prefix-label' => 'Префикс (эбиискэ):',
+	'interwiki_error' => 'Алҕас: Интервики табылыыссата кураанах эбэтэр туга эрэ сатамматах.',
+	'interwiki_reasonfield' => 'Төрүөтэ:',
+	'interwiki_delquestion' => '"$1" сотуу',
+	'interwiki_deleting' => '"$1" префиксы сотон эрэҕин.',
+	'interwiki_deleted' => '"$1" префикс интервики табылыыссатыттан сотулунна.',
+	'interwiki_delfailed' => '"$1" префикс интервики табылыыссатыттан сотуллар кыаҕа суох.',
+	'interwiki_addtext' => 'Саҥа интервики префиксы эбии',
+	'interwiki_addintro' => 'Эн саҥа интервики префиксын эбээри гынныҥ. Онтуҥ пробела ( ), икки туочуката (:), амперсанда (&) уонна тэҥнэһии бэлиэтэ (=) суох буолуохтаах.',
+	'interwiki_addbutton' => 'Эбэргэ',
+	'interwiki_added' => '"$1" префикс интервики табылыыссатыгар эбилиннэ.',
+	'interwiki_addfailed' => '"$1" префикс интервики табылыысатыгар кыайан эбиллибэтэ.
+Баҕар номнуо онно баара буолуо.',
+	'interwiki_edittext' => 'Интервики префикстары уларытыы',
+	'interwiki_editintro' => 'Интервики префиксы уларытан эрэҕин.
+Баар сигэлэри алдьатыан сөбүн өйдөө.',
+	'interwiki_edited' => '"$1" префикс интервики табылыыссатыгар сөпкө уларытылынна.',
+	'interwiki_editerror' => '"$1" префикс уларыйар кыаҕа суох.
+Баҕар отой да суох буолуон сөп.',
+	'interwiki-badprefix' => 'Интервики префикса "$1" туттуллуо суохтаах бэлиэлэрдээх',
+	'right-interwiki' => 'Интервикины уларытыы',
+);
+
+/** Sicilian (Sicilianu)
+ * @author Santu
+ */
+$messages['scn'] = array(
+	'interwiki' => 'Talìa e mudìfica li dati interwiki',
+	'interwiki-title-norights' => 'Talìa li dati interwiki',
+	'interwiki-desc' => 'Junci na [[Special:Interwiki|pàggina spiciali]] pi taliari e mudificari la tabedda di li interwiki',
+	'interwiki_intro' => "Talìa [http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org] pi chiossai nfurmazzioni supr'a tabedda di li interwiki.
+C'è nu [[Special:Log/interwiki|riggistru di li canciamenti]] a la tabedda di li interwiki.",
+	'interwiki_prefix' => 'Prifissu',
+	'interwiki-prefix-label' => 'Prifissu:',
+	'interwiki_url' => 'URL',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_local' => 'Qualificari chistu comu a nu wiki lucali',
+	'interwiki-local-label' => 'Qualificari chistu comu a nu wiki lucali:',
+	'interwiki_trans' => 'Cunzenti interwiki transclusions',
+	'interwiki-trans-label' => 'Cunzenti interwiki transclusions:',
+	'interwiki_error' => "SBÀGGHIU: La tabedda di li interwiki è vacanti, o c'è qualchi àutru sbàgghiu.",
+	'interwiki_reasonfield' => 'Mutivu:',
+	'interwiki_delquestion' => 'Scancellu "$1"',
+	'interwiki_deleting' => 'Stai pi scancillari lu prufissu "$1"',
+	'interwiki_deleted' => 'Lu prifissu "$1" vinni scancillatu cu successu dâ tabedda di li interwiki.',
+	'interwiki_delfailed' => 'Rimuzzioni dû prifissi "$1" dâ tabedda di li interwiki non arinisciuta.',
+	'interwiki_addtext' => 'Jùncicci nu prifissu interwiki',
+	'interwiki_addintro' => 'Ora veni iunciutu nu novu prifissu interwiki.
+Non sunnu ammittuti li caràttiri: spàzziu ( ), dui punti (:), e cummirciali (&), sìmmulu di uguali (=).',
+	'interwiki_addbutton' => 'Iunci',
+	'interwiki_added' => 'Lu prifissi "$1" vinni iunciutu a la tabedda di li interwiki.',
+	'interwiki_addfailed' => 'Mpussìbbili iunciri lu prufissu "$1" a la tabedda di li interwiki.
+Lu prifissi putissi èssiri già prisenti ntâ tabedda.',
+	'interwiki_edittext' => 'Mudìfica di nu prifissu interwiki',
+	'interwiki_editintro' => 'Si sta pi mudificari nu prifissu interwiki.
+Chistu pò non fari funziunari arcuni lijami ca ci sù.',
+	'interwiki_edited' => 'Lu prifissi "$1" vinni canciatu nnâ tabedda di li interwiki.',
+	'interwiki_editerror' => 'Mpussìbbili mudificari lu prifissi "$1" nnâ tabedda di li interwiki.
+Lu prifissu putissi èssiri ca non c\'è.',
+	'interwiki-badprefix' => 'Lu prifissu interwiki "$1" cunteni caràttiri non vàlidi',
+	'right-interwiki' => 'Mudìfica li dati interwiki',
+);
+
+/** Sassaresu (Sassaresu)
+ * @author Felis
+ */
+$messages['sdc'] = array(
+	'interwiki' => 'Vidè e mudìfiggà li dati interwiki',
+	'interwiki_prefix' => 'Prefissu',
+	'interwiki-prefix-label' => 'Prefissu:',
+	'interwiki_reasonfield' => 'Rasgioni',
+	'interwiki_delquestion' => 'Canzillendi "$1"',
+	'interwiki_deleting' => 'Sei canzillendi lu prefissu "$1".',
+	'interwiki_addtext' => 'Aggiungi un prefissu interwiki',
+	'interwiki_addbutton' => 'Aggiungi',
+	'interwiki_logpagename' => 'Rigisthru di la table interwiki',
+);
+
+/** Sinhala (සිංහල)
+ * @author තඹරු විජේසේකර
+ * @author බිඟුවා
+ */
+$messages['si'] = array(
+	'interwiki_1' => 'ඔව්',
+	'interwiki_0' => 'නැත',
+	'interwiki_edit' => 'සංස්කරණය',
+	'interwiki_reasonfield' => 'හේතුව:',
+	'right-interwiki' => 'අන්තර්-විකි දත්ත සංස්කරණය',
+);
+
+/** Slovak (Slovenčina)
+ * @author Helix84
+ */
+$messages['sk'] = array(
+	'interwiki' => 'Zobraziť a upravovať údaje interwiki',
+	'interwiki-title-norights' => 'Zobraziť údaje interwiki',
+	'interwiki-desc' => 'Pridáva [[Special:Interwiki|špeciálnu stránku]] na zobrazovanie a upravovanie tabuľky interwiki',
+	'interwiki_intro' => 'Toto je prehľad tabuľky interwiki. Význam údajov v stĺpcoch:',
+	'interwiki_prefix' => 'Predpona',
+	'interwiki-prefix-label' => 'Predpona:',
+	'interwiki_prefix_intro' => 'Predpona interwiki, ktorá sa má použiť v syntaxi wikitextu <code>[<nowiki />[predpona:<i>názov_stránky</i>]]</code>.',
+	'interwiki_url_intro' => 'Šablóna URL. Vyhradené miesto $1 sa nahradí <i>názvom_stránky</i> wikitextu pri použití vyššie uvedenej syntaxi wikitextu.',
+	'interwiki_local' => 'Presmerovať',
+	'interwiki-local-label' => 'Presmerovať:',
+	'interwiki_local_intro' => 'HTTP požiadavka na lokálnu wiki s touto predponou interwiki v URL je:',
+	'interwiki_local_0_intro' => 'nezohľadňuje sa, zvyčajne sa blokuje ako „stránka nenájdená“,',
+	'interwiki_local_1_intro' => 'presmerovaná na cieľové URL zadané v definícii interwiki odkazu (t.j. berie sa ako odkazy v rámci lokálnej stránky)',
+	'interwiki_trans' => 'Transklúzia',
+	'interwiki-trans-label' => 'Transklúzia:',
+	'interwiki_trans_intro' => 'Ak je použitá syntax wikitextu <code>{<nowiki />{predpona:<i>názov_stránky</i>}}</code>,',
+	'interwiki_trans_1_intro' => 'povoliť transklúzie z cudzej wiki ak sú na tejto wiki všeobecne povolené transklúzie interwiki,',
+	'interwiki_trans_0_intro' => 'nepovoliť ju, namiesto toho hľadať stránku v mennom priestore šablón.',
+	'interwiki_intro_footer' => 'Ďalšie informácie o tabuľke interwiki nájdete na [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org].
+Obsahuje [[Special:Log/interwiki|záznam zmien]] tabuľky interwiki.',
+	'interwiki_1' => 'áno',
+	'interwiki_0' => 'nie',
+	'interwiki_error' => 'CHYBA: Tabuľka interwiki je prázdna alebo sa pokazilo niečo iné.',
+	'interwiki_edit' => 'Upraviť',
+	'interwiki_reasonfield' => 'Dôvod:',
+	'interwiki_delquestion' => 'Maže sa „$1“',
+	'interwiki_deleting' => 'Mažete predponu „$1“.',
+	'interwiki_deleted' => 'Predpona „$1“ bola úspešne odstránená z tabuľky interwiki.',
+	'interwiki_delfailed' => 'Predponu „$1“ nebola možné odstrániť z tabuľky interwiki.',
+	'interwiki_addtext' => 'Pridať predponu interwiki',
+	'interwiki_addintro' => 'Pridávate novú predponu interwiki. Pamätajte, že nemôže obsahovať medzery „ “, dvojbodky „:“, ampersand „&“ ani znak rovnosti „=“.',
+	'interwiki_addbutton' => 'Pridať',
+	'interwiki_added' => 'Predpona „$1“ bola úspešne pridaná do tabuľky interwiki.',
+	'interwiki_addfailed' => 'Predponu „$1“ nebola možné pridať do tabuľky interwiki. Je možné, že už v tabuľke interwiki existuje.',
+	'interwiki_edittext' => 'Upravuje sa predpona interwiki',
+	'interwiki_editintro' => 'Upravujete predponu interwiki. Pamätajte na to, že týmto môžete pokaziť existujúce odkazy.',
+	'interwiki_edited' => 'Predpona „$1“ bola úspešne zmenená v tabuľke interwiki.',
+	'interwiki_editerror' => 'Predponu „$1“ nebolo možné zmeniť v tabuľke interwiki. Je možné, že neexistuje.',
+	'interwiki-badprefix' => 'Uvedená predpona interwiki „$1“ obsahuje neplatné znaky',
+	'interwiki_logpagename' => 'Záznam zmien tabuľky interwiki',
+	'interwiki_logpagetext' => 'Toto je záznam zmien [[Special:Interwiki|tabuľky interwiki]].',
+	'right-interwiki' => 'Upraviť interwiki údaje',
+	'action-interwiki' => 'zmeniť tento záznam interwiki',
+);
+
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'interwiki' => 'Ogled in urejanje podatkov interwiki',
+	'interwiki-title-norights' => 'Ogled podatkov interwiki',
+	'interwiki-desc' => 'Doda [[Special:Interwiki|posebno stran]] za ogled in urejanje tabele interwiki',
+	'interwiki_intro' => 'To je pregled tabele interwiki. Pomeni podatkov v stolpcih:',
+	'interwiki_prefix' => 'Predpona',
+	'interwiki-prefix-label' => 'Predpona:',
+	'interwiki_prefix_intro' => 'Predpona interwiki, uporabljena v skladnji wikibesedila <code>[<nowiki />[predpona:<i>imestrani</i>]]</code>.',
+	'interwiki_local' => 'Posredovano',
+	'interwiki-local-label' => 'Posredovano:',
+	'interwiki_trans' => 'Vključeno',
+	'interwiki-trans-label' => 'Vključeno:',
+	'interwiki_trans_intro' => 'Če je uporabljena skladnja wikibesedila <code>{<nowiki />{predpona:<i>imestrani</i>}}</code>, potem:',
+	'interwiki_1' => 'da',
+	'interwiki_0' => 'ne',
+	'interwiki_error' => 'Napaka: Tabela interwiki je prazna ali pa je kaj drugega šlo narobe.',
+	'interwiki-cached' => 'Podatki interwiki so predpomnjeni. Spreminjanje predpomnilnika ni mogoče.',
+	'interwiki_edit' => 'Uredi',
+	'interwiki_reasonfield' => 'Razlog:',
+	'interwiki_delquestion' => 'Brisanje »$1«',
+	'interwiki_deleting' => 'Brišete predpono »$1«.',
+	'interwiki_deleted' => 'Predpona »$1« je bila uspešno odstranjena iz tabele interwiki.',
+	'interwiki_delfailed' => 'Predpone »$1« ni bilo mogoče odstraniti iz tabele interwiki.',
+	'interwiki_addtext' => 'Dodaj predpono interwiki',
+	'interwiki_addintro' => "Dodajate novo predpono interwiki.
+Pomnite, da ne sme vsebovati presledkov ( ), dvopičij (:), znakov ''in'' (&) ali enačajev (=).",
+	'interwiki_addbutton' => 'Dodaj',
+	'interwiki_added' => 'Predpona »$1« je bila uspešno dodana v tabelo interwiki.',
+	'interwiki_addfailed' => 'Predpone »$1« ni mogoče dodati tabeli interwiki.
+Morda že obstaja v tabeli interwiki.',
+	'interwiki_edittext' => 'Urejanje predpone interwiki',
+	'interwiki_editintro' => 'Urejate predpono interwiki.
+Ne pozabite, da lahko to prekine obstoječe povezave.',
+	'interwiki_edited' => 'Predpona »$1« je bila uspešno spremenjena v tabeli interwiki.',
+	'interwiki_editerror' => 'Predpone »$1« ni mogoče spremeniti v tabeli interwiki.
+Morda ne obstaja.',
+	'interwiki-badprefix' => 'Navedena predpona interwiki »$1« vsebuje neveljavne znake.',
+	'interwiki-submit-empty' => 'Predpona in URL ne smeta biti prazna.',
+	'interwiki_logpagename' => 'Dnevnik tabele interwiki',
+	'interwiki_logpagetext' => 'To je dnevnik sprememb [[Special:Interwiki|tabele interwiki]].',
+	'right-interwiki' => 'Urejanje podatkov interwiki',
+	'action-interwiki' => 'spreminjanje tega vnosa interwikija',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Rancher
+ * @author Sasa Stefanovic
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
+ */
+$messages['sr-ec'] = array(
+	'interwiki' => 'Прегледај и измени податке о међувикију',
+	'interwiki-title-norights' => 'Међувики',
+	'interwiki-desc' => 'Додаје посебну страницу за преглед и измену [[Special:Interwiki|табеле међувикија]]',
+	'interwiki_intro' => 'Ово је преглед табеле међувикија. Значења података у колонама:',
+	'interwiki_prefix' => 'Префикс',
+	'interwiki-prefix-label' => 'Префикс:',
+	'interwiki_prefix_intro' => 'Међувики префикс који ће бити коришћен у <code>[<nowiki />[prefix:<i>pagename</i>]]</code> викитекст синтакси.',
+	'interwiki_url' => 'Адреса',
+	'interwiki-url-label' => 'Адреса:',
+	'interwiki_local' => 'Напред',
+	'interwiki-local-label' => 'Напред:',
+	'interwiki_trans_intro' => 'Ако је коришћена викитекст синтакса <code>{<nowiki />{prefix:<i>pagename</i>}}</code>, онда:',
+	'interwiki_1' => 'да',
+	'interwiki_0' => 'не',
+	'interwiki_error' => 'Грешка: табела међувикија је празна, или нешто друго није у реду.',
+	'interwiki_edit' => 'Уреди',
+	'interwiki_reasonfield' => 'Разлог:',
+	'interwiki_delquestion' => 'Бришем „$1”',
+	'interwiki_deleting' => 'Ви бришете префикс "$1".',
+	'interwiki_deleted' => 'Префикс "$1" је успешно обрисан из табеле међувикија.',
+	'interwiki_delfailed' => 'Префикс "$1" није могао бити обрисан из табеле међувикија.',
+	'interwiki_addtext' => 'Додај интервики префикс',
+	'interwiki_addintro' => 'Ви додајете један интервики префикс.
+Имајте на уму да он не може да садржи размаке ( ), двотачку (:), амерсанд (&), или знак једнакости (=).',
+	'interwiki_addbutton' => 'Додај',
+	'interwiki_added' => 'Префикс "$1" је успешно додат у табелу међувикија.',
+	'interwiki_addfailed' => 'Префикс "$1" није могао бити додат у табелу међувикија.
+Вероватно већ постоји у њој.',
+	'interwiki_edittext' => 'Мењање међувики префикса',
+	'interwiki_editintro' => 'Ви мењате један међувики префикс.
+Имајте на уму да може да оштети постојеће међувики везе.',
+	'interwiki_edited' => 'Префикс "$1" је успешно измењен у табели међувикија.',
+	'interwiki_editerror' => 'Префикс "$1" не може бити измењен у табели међувикија.
+Вероватно затшо што не постоји.',
+	'interwiki-badprefix' => 'Задати међувики префикс "$1" садржи недозвољене знакове',
+	'interwiki_logpagename' => 'Историја табеле међувикија',
+	'interwiki_logpagetext' => 'Ово је историја измена [[Special:Interwiki|табеле међувикија]].',
+	'right-interwiki' => 'уређивање међувикија',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ * @author Жељко Тодоровић
+ */
+$messages['sr-el'] = array(
+	'interwiki' => 'Pregledaj i izmeni podatke o međuvikiju',
+	'interwiki-title-norights' => 'Pregledaj podatke o međuvikiju',
+	'interwiki-desc' => 'Dodaje [[Special:Interwiki|specijalnu stranu]] za pregled i izmenu tabele međuvikija',
+	'interwiki_intro' => 'Ovo je pregled tabele međuvikija. Značenja podataka u kolonama:',
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_prefix_intro' => 'Međuviki prefiks koji će biti korišćen u <code>[<nowiki />[prefix:<i>pagename</i>]]</code> vikitekst sintaksi.',
+	'interwiki_url' => 'Adresa',
+	'interwiki-url-label' => 'Adresa:',
+	'interwiki_local' => 'Napred',
+	'interwiki-local-label' => 'Napred:',
+	'interwiki_trans_intro' => 'Ako je korišćena vikitekst sintaksa <code>{<nowiki />{prefix:<i>pagename</i>}}</code>, onda:',
+	'interwiki_1' => 'da',
+	'interwiki_0' => 'ne',
+	'interwiki_error' => 'Greška: tabela međuvikija je prazna, ili nešto drugo nije u redu.',
+	'interwiki_edit' => 'Izmeni',
+	'interwiki_reasonfield' => 'Razlog:',
+	'interwiki_delquestion' => 'Brišem „$1”',
+	'interwiki_deleting' => 'Vi brišete prefiks "$1".',
+	'interwiki_deleted' => 'Prefiks "$1" je uspešno obrisan iz tabele međuvikija.',
+	'interwiki_delfailed' => 'Prefiks "$1" nije mogao biti obrisan iz tabele međuvikija.',
+	'interwiki_addtext' => 'Dodaj interviki prefiks',
+	'interwiki_addintro' => 'Vi dodajete jedan interviki prefiks.
+Imajte na umu da on ne može da sadrži razmake ( ), dvotačku (:), amersand (&), ili znak jednakosti (=).',
+	'interwiki_addbutton' => 'Dodaj',
+	'interwiki_added' => 'Prefiks "$1" je uspešno dodat u tabelu međuvikija.',
+	'interwiki_addfailed' => 'Prefiks "$1" nije mogao biti dodat u tabelu međuvikija.
+Verovatno već postoji u njoj.',
+	'interwiki_edittext' => 'Menjanje međuviki prefiksa',
+	'interwiki_editintro' => 'Vi menjate jedan međuviki prefiks.
+Imajte na umu da može da ošteti postojeće međuviki veze.',
+	'interwiki_edited' => 'Prefiks "$1" je uspešno izmenjen u tabeli međuvikija.',
+	'interwiki_editerror' => 'Prefiks "$1" ne može biti izmenjen u tabeli međuvikija.
+Verovatno zatšo što ne postoji.',
+	'interwiki-badprefix' => 'Zadati međuviki prefiks "$1" sadrži nedozvoljene znakove',
+	'interwiki_logpagename' => 'Istorija tabele međuvikija',
+	'interwiki_logpagetext' => 'Ovo je istorija izmena [[Special:Interwiki|tabele međuvikija]].',
+	'right-interwiki' => 'Izmeni međuviki',
+);
+
+/** Seeltersk (Seeltersk)
+ * @author Purodha
+ * @author Pyt
+ */
+$messages['stq'] = array(
+	'interwiki' => 'Interwiki-Doaten bekiekje un beoarbaidje',
+	'interwiki_intro' => 'Dit is n Uursicht fon dän Inhoold fon ju Interwiki-Tabelle.
+Do Doaten in do eenpelde Spalten hääbe ju foulgjende Betjuudenge:',
+	'interwiki_prefix' => 'Präfix',
+	'interwiki-prefix-label' => 'Präfix:',
+	'interwiki_error' => 'Failer: Ju Interwiki-Tabelle is loos.',
+	'interwiki_reasonfield' => 'Gruund:',
+	'interwiki_delquestion' => 'Läsket „$1“',
+	'interwiki_deleting' => 'Du hoalst Prefix "$1" wäch.',
+	'interwiki_deleted' => '„$1“ wuude mäd Ärfoulch uut ju Interwiki-Tabelle wächhoald.',
+	'interwiki_delfailed' => '„$1“ kuude nit uut ju Interwiki-Tabelle läsked wäide.',
+	'interwiki_addtext' => 'N Interwiki-Präfix bietouföigje',
+	'interwiki_addintro' => 'Du föigest n näi Interwiki-Präfix bietou. Beoachte, dät et neen Loosteeken ( ), Koopmons-Un (&), Gliekhaidsteeken (=) un naan Dubbelpunkt (:) änthoolde duur.',
+	'interwiki_addbutton' => 'Bietouföigje',
+	'interwiki_added' => '„$1“ wuude mäd Ärfoulch ju Interwiki-Tabelle bietouföiged.',
+	'interwiki_addfailed' => '„$1“ kuude nit ju Interwiki-Tabelle bietouföiged wäide.',
+	'interwiki_logpagename' => 'Interwiki-Tabellenlogbouk',
+	'interwiki_logpagetext' => 'In dit Logbouk wäide Annerengen an ju [[Special:Interwiki|Interwiki-Tabelle]] protokollierd.',
+);
+
+/** Sundanese (Basa Sunda)
+ * @author Irwangatot
+ */
+$messages['su'] = array(
+	'interwiki_reasonfield' => 'Alesan:',
+	'interwiki_delquestion' => 'Ngahapus "$1"',
+);
+
+/** Swedish (Svenska)
+ * @author Boivie
+ * @author Fluff
+ * @author Lejonel
+ * @author M.M.S.
+ * @author Najami
+ * @author Per
+ * @author Purodha
+ * @author Sertion
+ * @author WikiPhoenix
+ */
+$messages['sv'] = array(
+	'interwiki' => 'Visa och redigera interwiki-data',
+	'interwiki-title-norights' => 'Visa interwiki-data',
+	'interwiki-desc' => 'Lägger till en [[Special:Interwiki|specialsida]] för att visa och ändra interwikitabellen',
+	'interwiki_intro' => 'Det här är en överblick över interwiki-tabellen. Datan i tabellerna representerar:',
+	'interwiki_prefix' => 'Prefix',
+	'interwiki-prefix-label' => 'Prefix:',
+	'interwiki_prefix_intro' => 'Interwiki-prefix avsedda att användas i <code>[<nowiki />[prefix:<i>pagename</i>]]</code>-wikisyntax.',
+	'interwiki_local' => 'Vidarebefordra',
+	'interwiki-local-label' => 'Vidarebefordra:',
+	'interwiki_local_intro' => 'En HTTP-förfrågan till den lokala wikin med denna interwiki-prefix i webbadressen är:',
+	'interwiki_trans' => 'Transkludera',
+	'interwiki-trans-label' => 'Transkludera:',
+	'interwiki_intro_footer' => 'Se [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] för mer information om interwikitabellen.
+Det finns en [[Special:Log/interwiki|logg över ändringar]] i interwikitabellen.',
+	'interwiki_1' => 'ja',
+	'interwiki_0' => 'nej',
+	'interwiki_error' => 'FEL: Interwikitabellen är tom, eller så gick något fel.',
+	'interwiki_edit' => 'Redigera',
+	'interwiki_reasonfield' => 'Anledning:',
+	'interwiki_delquestion' => 'Ta bort "$1"',
+	'interwiki_deleting' => 'Du håller på att ta bort prefixet "$1".',
+	'interwiki_deleted' => 'Prefixet "$1 har raderats från interwikitabellen.',
+	'interwiki_delfailed' => 'Prefixet "$1" kunde inte raderas från interwikitabellen.',
+	'interwiki_addtext' => 'Lägg till ett interwikiprefix',
+	'interwiki_addintro' => 'Du håller på att lägga till ett nytt interwikiprefix.
+Kom ihåg att det inte kan innehålla mellanslag ( ), kolon (:), &-tecken eller likhetstecken (=).',
+	'interwiki_addbutton' => 'Lägg till',
+	'interwiki_added' => 'Prefixet "$1" har lagts till i interwikitabellen.',
+	'interwiki_addfailed' => 'Prefixet "$1" kunde inte läggas till i interwikitabellen.
+Det är möjligt att prefixet redan finns i tabellen.',
+	'interwiki_edittext' => 'Redigera ett interwikiprefix',
+	'interwiki_editintro' => 'Du redigerar ett interwikiprefix. Notera att detta kan förstöra existerande länkar.',
+	'interwiki_edited' => 'Prefixet "$1" har ändrats i interwikitabellen.',
+	'interwiki_editerror' => 'Prefixet "$1" kan inte ändras i interwikitabellen. Det är möjligt att det inte finns.',
+	'interwiki-badprefix' => 'Specificerat interwikiprefix "$1" innehåller ogiltiga tecken',
+	'interwiki-submit-empty' => 'Prefix och URL-adressen kan inte vara tomma.',
+	'interwiki_logpagename' => 'Interwikitabellogg',
+	'interwiki_logpagetext' => 'Detta är en logg över ändringar i [[Special:Interwiki|interwikitabellen]].',
+	'right-interwiki' => 'Redigera interwikidata',
+	'action-interwiki' => 'ändra det här interwikielementet',
+);
+
+/** Swahili (Kiswahili)
+ * @author Ikiwaner
+ */
+$messages['sw'] = array(
+	'interwiki_1' => 'ndiyo',
+);
+
+/** Silesian (Ślůnski)
+ * @author Herr Kriss
+ */
+$messages['szl'] = array(
+	'interwiki_reasonfield' => 'Čymu:',
+	'interwiki_addbutton' => 'Dodej',
+);
+
+/** Tamil (தமிழ்)
+ * @author செல்வா
+ */
+$messages['ta'] = array(
+	'interwiki_addbutton' => 'சேர்',
+	'right-interwiki' => 'விக்கியிடைப் பரிமாற்றத் தரவுகளைத் தொகு',
+);
+
+/** Tulu (ತುಳು)
+ * @author VASANTH S.N.
+ */
+$messages['tcy'] = array(
+	'interwiki_edit' => 'ತಿದ್ದ್‘ಲೆ',
+	'interwiki_reasonfield' => 'ಕಾರಣ',
+	'interwiki_addbutton' => 'ಸೇರಾಲೆ',
+);
+
+/** Telugu (తెలుగు)
+ * @author Kiranmayee
+ * @author Veeven
+ */
+$messages['te'] = array(
+	'interwiki' => 'అంతర్వికీ భోగట్టాని చూడండి మరియు మార్చండి',
+	'interwiki-title-norights' => 'అంతర్వికీ భోగట్టా చూడండి',
+	'interwiki_intro' => 'అంతర్వికీ పట్టిక యొక్క సమీక్ష. పట్టికలోని కాలమ్న్స్ సమాచారము అర్ధము:',
+	'interwiki_prefix' => 'ఉపసర్గ',
+	'interwiki-prefix-label' => 'ఉపసర్గ:',
+	'interwiki_local' => 'ముందుకు',
+	'interwiki-local-label' => 'ముందుకు:',
+	'interwiki_intro_footer' => 'అంతర్వికీ పట్టిక గురించిన మరింత సమాచారాన్ని [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org]లో చూడండి.
+అంతర్వికీ పట్టికకి జరిగిన [[Special:Log/interwiki|మార్పుల యొక్క చిట్టా]] కూడా ఉంది.',
+	'interwiki_1' => 'అవును',
+	'interwiki_0' => 'కాదు',
+	'interwiki_error' => 'పొరపాటు: అంతర్వికీ పట్టిక ఖాళీగా ఉంది, లేదా ఏదో తప్పు జరిగింది.',
+	'interwiki_edit' => 'మార్చు',
+	'interwiki_reasonfield' => 'కారణం:',
+	'interwiki_delquestion' => '"$1"ని తొలగిస్తున్నారు',
+	'interwiki_deleting' => 'మీరు "$1" అనే ఉపసర్గని తొలగించబోతున్నారు.',
+	'interwiki_deleted' => 'అంతర్వికీ పట్టిక నుండి "$1" అనే ఉపసర్గని విజయవంతంగా తొలగించాం.',
+	'interwiki_delfailed' => 'అంతర్వికీ పట్టిక నుండి "$1" అనే ఉపసర్గని తొలగించలేకపోయాం.',
+	'interwiki_addtext' => 'ఓ అంతర్వికీ ఉపసర్గని చేర్చండి',
+	'interwiki_addbutton' => 'చేర్చు',
+	'interwiki_logpagename' => 'అంతర్వికీ పట్టిక చిట్టా',
+	'interwiki_logpagetext' => 'ఇది [[Special:Interwiki|అంతర్వికీ పట్టిక]]కి జరిగిన మార్పుల చిట్టా.',
+	'right-interwiki' => 'అంతర్వికీ సమాచారము మార్చు',
+);
+
+/** Tetum (Tetun)
+ * @author MF-Warburg
+ */
+$messages['tet'] = array(
+	'interwiki_1' => 'sin',
+	'interwiki_0' => 'lae',
+	'interwiki_edit' => 'Edita',
+	'interwiki_reasonfield' => 'Motivu:',
+	'interwiki_delquestion' => 'Halakon $1',
+	'interwiki_addbutton' => 'Tau tan',
+);
+
+/** Tajik (Cyrillic script) (Тоҷикӣ)
+ * @author Ibrahim
+ */
+$messages['tg-cyrl'] = array(
+	'interwiki_reasonfield' => 'Сабаб:',
+	'interwiki_delquestion' => 'Дар ҳоли ҳазфи "$1"',
+	'interwiki_addbutton' => 'Илова',
+);
+
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'interwiki_reasonfield' => 'Sabab:',
+	'interwiki_delquestion' => 'Dar holi hazfi "$1"',
+	'interwiki_addbutton' => 'Ilova',
+);
+
+/** Thai (ไทย)
+ * @author Manop
+ * @author Passawuth
+ */
+$messages['th'] = array(
+	'interwiki' => 'ดูและแก้ไขข้อมูลอินเตอร์วิกิ',
+	'interwiki-title-norights' => 'ดูข้อมูลอินเตอร์วิกิ',
+	'interwiki_prefix' => 'คำนำหน้า',
+	'interwiki-prefix-label' => 'คำนำหน้า:',
+	'interwiki_reasonfield' => 'เหตุผล:',
+	'interwiki_delquestion' => 'ลบ "$1"',
+	'interwiki_addbutton' => 'เพิ่ม',
+	'interwiki_edittext' => 'แก้ไขคำนำหน้าอินเตอร์วิกิ',
+	'right-interwiki' => 'แก้ไขข้อมูลอินเตอร์วิกิ',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'interwiki_edit' => 'Redaktirle',
+);
+
+/** Tagalog (Tagalog)
+ * @author AnakngAraw
+ */
+$messages['tl'] = array(
+	'interwiki' => "Tingnan at baguhin ang datong pangugnayang-wiki (''interwiki'')",
+	'interwiki-title-norights' => "Tingnan ang datong pangugnayang-wiki (''interwiki'')",
+	'interwiki-desc' => 'Nagdaragdag ng isang [[Special:Interwiki|natatanging pahina]] upang matingnan at mabago ang tablang pang-ugnayang wiki',
+	'interwiki_intro' => "Isa itong paglalarawan ng tabla ng ugnayang-wiki (''interwiki''). Nasa loob ng pababang mga hanay ang mga kahulugan ng dato:",
+	'interwiki_prefix' => 'Unlapi',
+	'interwiki-prefix-label' => 'Unlapi:',
+	'interwiki_prefix_intro' => 'Unlapi ng ugnayang-wiki na gagamitin sa loob ng palaugnayang <code>[<nowiki />[prefix:<i>pagename</i>]]</code> ng teksto ng wiki.',
+	'interwiki_url' => 'URL',
+	'interwiki-url-label' => 'URL:',
+	'interwiki_url_intro' => 'Suleras para sa mga URL. Ang tagpaghawak ng pook na $1 ay mapapalitan ng <i>pagename</i> ng teksto ng wiki, kapag ginamit ang nabanggit sa itaas na palaugnayang teksto ng wiki.',
+	'interwiki_local' => 'Isulong',
+	'interwiki-local-label' => 'Pasulong:',
+	'interwiki_local_intro' => 'Ang isang kahilingang http sa pampook na wiki na may ganitong unlapi ng ugnayang-wiki na nasa loob ng URL ay:',
+	'interwiki_local_0_intro' => 'huwag tanggapin, karaniwang hinahadlangan ng "hindi natagpuan ang pahina",',
+	'interwiki_local_1_intro' => 'itinuro papunta sa pinupukol na ibinigay na URL sa loob ng mga kahulugan ng kawing ng ugnayang-wiki (iyong mga itinuturing na katulad ng mga sanggunian sa pampook na mga pahina)',
+	'interwiki_trans' => 'Paglilipat-sama (transklusyon)',
+	'interwiki-trans-label' => 'Ilipat-sama:',
+	'interwiki_trans_intro' => 'Kapag ginamit ang palaugnayang <code>{<nowiki />{prefix:<i>pagename</i>}}</code> ng teksto ng wiki, kung gayon:',
+	'interwiki_trans_1_intro' => 'pahintulutan ang paglilipat-sama mula sa dayuhang wiki, kung pangkalahatang pinapayagan sa wiking ito ang paglilipat-sama',
+	'interwiki_trans_0_intro' => 'huwag itong pahintulutan, sa halip maghanap ng isang pahinang nasa loob ng espasyo ng pangalan ng suleras.',
+	'interwiki_intro_footer' => 'Tingnan ang [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] para sa mas marami pang mga kabatiran hinggil sa tabla ng ugnayang-wiki.
+Mayroong isang [[Special:Log/interwiki|talaan ng mga pagbabago]] sa tabla ng ugnayang-wiki.',
+	'interwiki_1' => 'oo',
+	'interwiki_0' => 'hindi',
+	'interwiki_error' => "Kamalian: Walang laman ang tablang pangugnayang-wiki (''interwiki''), o may iba pang bagay na nagkaroon ng kamalian/suliranin.",
+	'interwiki_edit' => 'Baguhin',
+	'interwiki_reasonfield' => 'Dahilan:',
+	'interwiki_delquestion' => 'Binubura ang "$1"',
+	'interwiki_deleting' => 'Binubura mo ang unlaping "$1".',
+	'interwiki_deleted' => "Matagumpay na natanggal ang unlaping \"\$1\" mula sa tablang pangugnayang-wiki (''interwiki'').",
+	'interwiki_delfailed' => "Hindi matanggal ang unlaping \"\$1\" mula sa tablang pangugnayang-wiki (''interwiki'').",
+	'interwiki_addtext' => "Magdagdag ng isang unlaping pangugnayang-wiki (''interwiki'')",
+	'interwiki_addintro' => "Nagdaragdag ng isang bagong unlaping pangugnayang-wiki (''interwiki'').
+Tandaan lamang na hindi ito maaaring maglaman ng mga puwang ( ), mga tutuldok (:), bantas para sa \"at\" (&), o mga bantas na pangkatumbas (=).",
+	'interwiki_addbutton' => 'Idagdag',
+	'interwiki_added' => "Matagumpay na naidagdag ang unlaping \"\$1\" sa tablang pangugnayang-wiki (''interwiki'').",
+	'interwiki_addfailed' => "Hindi maidagdag ang unlaping \"\$1\" sa tablang pangugnayang-wiki (''interwiki'').
+Maaaring umiiral na ito sa loob ng tablang pangugnayang-wiki.",
+	'interwiki_edittext' => "Binabago ang isang unlaping pangugnayang-wiki (''interwiki'')",
+	'interwiki_editintro' => "Binabago mo ang unlaping pangugnayang-wiki (''interwiki'').
+Tandaan na maaaring maputol nito ang umiiral na mga kawing.",
+	'interwiki_edited' => "Matagumpay na nabago ang unlaping \"\$1\" sa loob ng tablang pangugnayang-wiki (''interwiki'').",
+	'interwiki_editerror' => "Hindi mabago ang unlaping \"\$1\" sa loob ng tablang pangugnayang-wiki (''interwiki'').
+Maaaring hindi pa ito umiiral.",
+	'interwiki-badprefix' => "Naglalaman ang tinukoy na pangpaguugnayan ng wiking (''interwiki'') unlaping \"\$1\" ng hindi tanggap na mga panitik",
+	'interwiki_logpagename' => 'Talaan ng tablang pang-ugnayang wiki',
+	'interwiki_logpagetext' => 'Isa itong talaan ng mga pagbabago sa [[Special:Interwiki|tablang pang-ugnayang wiki]].',
+	'right-interwiki' => "Baguhin ang datong pangugnayang-wiki (''interwiki'')",
+	'action-interwiki' => "baguhin ang ipinasok/entradang ito na pang-ugnayang wiki (''interwiki'')",
+);
+
+/** Turkish (Türkçe)
+ * @author Homonihilis
+ * @author Joseph
+ * @author Karduelis
+ * @author Suelnur
+ * @author Vito Genovese
+ */
+$messages['tr'] = array(
+	'interwiki' => 'Vikilerarası veriyi gör ve değiştir',
+	'interwiki-title-norights' => 'Vikilerarası veriyi gör',
+	'interwiki-desc' => 'Vikilerarası tabloyu görmek ve değiştirmek için [[Special:Interwiki|özel bir sayfa]] ekler',
+	'interwiki_intro' => 'Bu vikilerarası tabloya genel bir bakıştır. Sütunlardaki verinin anlamları:',
+	'interwiki_prefix' => 'Önek',
+	'interwiki-prefix-label' => 'Önek:',
+	'interwiki_local' => 'Yönlendir',
+	'interwiki-local-label' => 'Yönlendir:',
+	'interwiki_trans' => 'Görüntüle',
+	'interwiki-trans-label' => 'Görüntüle:',
+	'interwiki_1' => 'evet',
+	'interwiki_0' => 'hayır',
+	'interwiki_error' => 'Hata: İnterviki tablosu boş ya da başka bir şeyde sorun çıktı.',
+	'interwiki_edit' => 'Değiştir',
+	'interwiki_reasonfield' => 'Neden:',
+	'interwiki_delquestion' => '"$ 1" siliniyor',
+	'interwiki_addtext' => 'Bir interviki öneki ekler',
+	'interwiki_addbutton' => 'Ekle',
+	'right-interwiki' => 'İnterviki verilerini düzenler',
+	'action-interwiki' => 'bu interviki girdisini değiştir',
+);
+
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Ajdar
+ * @author Ильнар
+ */
+$messages['tt-cyrl'] = array(
+	'interwiki' => 'Интервики көйләнмәләрен карау һәм үзгәртү',
+	'interwiki-title-norights' => 'Интервики турында мәгълүматларны үзгәртү',
+	'interwiki-desc' => 'Интервики сылтамаларны карау һәм үзгәртү өчен [[Special:Interwiki|махсус]] бит өсти',
+	'interwiki_intro' => 'Бу интервики җәдвәленә манзара. Баганалардагы мәгълүматларның аңлатмалары:',
+	'interwiki_prefix' => 'Өстәлмә',
+	'interwiki-prefix-label' => 'Өстәлмә',
+	'interwiki_1' => 'әйе',
+	'interwiki_0' => 'юк',
+	'interwiki_reasonfield' => 'Сәбәп:',
+	'interwiki_addbutton' => 'Өстәргә',
+);
+
+/** Ukrainian (Українська)
+ * @author AS
+ * @author Ahonc
+ * @author Hypers
+ * @author Microcell
+ * @author Prima klasy4na
+ */
+$messages['uk'] = array(
+	'interwiki' => 'Перегляд і редагування даних інтервікі',
+	'interwiki-title-norights' => 'Переглянути дані інтервікі',
+	'interwiki-desc' => 'Додає [[Special:Interwiki|спеціальну сторінку]] для перегляду і редагування таблиці інтервікі',
+	'interwiki_intro' => 'Це огляд таблиці інтервікі. Значення даних в колонках:',
+	'interwiki_prefix' => 'Префікс',
+	'interwiki-prefix-label' => 'Префікс:',
+	'interwiki_prefix_intro' => 'Префікс інтервікі для використання у синтаксисі вікі-тексту: <code>[<nowiki />[префікс:<i>назва сторінки</i>]]</code>.',
+	'interwiki_url_intro' => 'Шаблон для URL-адрес. Замість $1 буде підставлено <i>назву сторінки</i> вікітексту, якщо використовується вищезазначений синтаксис вікітексту.',
+	'interwiki_local' => 'Відсилання',
+	'interwiki-local-label' => 'Відсилання:',
+	'interwiki_local_intro' => 'HTTP-запит у місцеву вікі з інтервікі-префіксом в URL:',
+	'interwiki_local_0_intro' => 'не допускається, як правило, блокується повідомленням "сторінка не знайдена",',
+	'interwiki_local_1_intro' => 'перенаправляє на цільовий URL, вказаний у визначенні інтервікі-посилання (тобто, розглядається як посилання на місцевих сторінках)',
+	'interwiki_trans' => 'Включення',
+	'interwiki-trans-label' => 'Включення:',
+	'interwiki_trans_intro' => 'Якщо використовується синтаксис вікітексту <code>{<nowiki />{префікс:<i>назва сторінки</i>}}</code>, то:',
+	'interwiki_trans_1_intro' => 'дозволяє включення з інших вікі, якщо інтервікі-включення дозволені в цій вікі,',
+	'interwiki_trans_0_intro' => 'не дозволяє включення, натомість шукається сторінка у просторі імен шаблонів.',
+	'interwiki_intro_footer' => 'Докладніше про таблицю інтервікі можна подивитись на [//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org].
+Існує також [[Special:Log/interwiki|журнал змін]] таблиці інтервікі.',
+	'interwiki_1' => 'так',
+	'interwiki_0' => 'ні',
+	'interwiki_error' => 'Помилка: таблиця інтервікі порожня або щось іще пішло не так.',
+	'interwiki_edit' => 'Редагувати',
+	'interwiki_reasonfield' => 'Причина:',
+	'interwiki_delquestion' => 'Вилучення "$1"',
+	'interwiki_deleting' => 'Ви видаляєте префікс "$1".',
+	'interwiki_deleted' => 'Префікс "$1" було успішно видалено з таблиці інтервікі.',
+	'interwiki_delfailed' => 'Префікс "$1" не може бути видалений з таблиці інтервікі.',
+	'interwiki_addtext' => 'Додати префікс інтервікі',
+	'interwiki_addintro' => "Ви додаєте новий префікс інтервікі.
+Пам'ятайте, що він не може містити пробіли ( ), двокрапки (:), амперсанди (&) або знаки рівності (=).",
+	'interwiki_addbutton' => 'Додати',
+	'interwiki_added' => 'Префікс "$1" було успішно додано до таблиці інтервікі.',
+	'interwiki_addfailed' => 'Префікс "$1" не може бути доданий до таблиці інтервікі.
+Можливо, він вже існує в таблиці інтервікі.',
+	'interwiki_edittext' => 'Редагування префіксу інтервікі',
+	'interwiki_editintro' => "Ви редагуєте префікс інтервікі.
+Пам'ятайте, що це може пошкодити існуючі посилання.",
+	'interwiki_edited' => 'Префікс "$1" був успішно змінений в таблиці інтервікі.',
+	'interwiki_editerror' => 'Префікс "$1" не може бути змінений в таблиці інтервікі.
+Можливо, його не існує.',
+	'interwiki-badprefix' => 'Зазначений інтервікі-префікс "$1" містить неприпустимі символи',
+	'interwiki_logpagename' => 'Журнал таблиці інтервікі',
+	'logentry-interwiki-iw_edit' => '$1 {{GENDER:$2|змінив|змінила}} префікс «$4» ($5) (trans: $6; local: $7) в таблиці інтервікі',
+	'interwiki_logpagetext' => 'Це журнал змін [[Special:Interwiki|таблиці інтервікі]].',
+	'right-interwiki' => 'Редагувати дані інтервікі',
+	'action-interwiki' => 'зміну цього запису інтервікі',
+);
+
+/** Urdu (اردو) */
+$messages['ur'] = array(
+	'interwiki_reasonfield' => 'وجہ:',
+);
+
+/** Vèneto (Vèneto)
+ * @author Candalua
+ */
+$messages['vec'] = array(
+	'interwiki' => 'Varda e modìfega i dati interwiki',
+	'interwiki-title-norights' => 'Varda i dati interwiki',
+	'interwiki_intro' => 'Sta qua la xe na panoramica de la tabèla dei interwiki. El significato dei dati in te le colòne xe:',
+	'interwiki_prefix' => 'Prefisso',
+	'interwiki-prefix-label' => 'Prefisso:',
+	'interwiki_local' => 'Avanti',
+	'interwiki-local-label' => 'Avanti:',
+	'interwiki_trans' => 'Transcludi',
+	'interwiki-trans-label' => 'Transcludi:',
+	'interwiki_1' => 'sì',
+	'interwiki_0' => 'no',
+	'interwiki_error' => 'ERÓR: La tabèla dei interwiki la xe voda, o ghe xe qualche altro erór.',
+	'interwiki_edit' => 'Modìfega',
+	'interwiki_reasonfield' => 'Motivassion:',
+	'interwiki_delquestion' => 'Scancelassion de "$1"',
+	'interwiki_deleting' => 'Te sì drio scancelar el prefisso "$1"',
+	'interwiki_deleted' => 'El prefisso "$1" el xe stà scancelà da la tabèla dei interwiki.',
+	'interwiki_delfailed' => 'No s\'à podesto cavar el prefisso "$1" da la tabèla dei interwiki.',
+	'interwiki_addtext' => 'Zonta un prefisso interwiki',
+	'interwiki_addintro' => 'Te sì drio zontar un prefisso interwiki novo.
+No xe mia parmessi i caràteri: spassio ( ), do ponti (:), e comerçial (&), sìnbolo de uguale (=).',
+	'interwiki_addbutton' => 'Zonta',
+	'interwiki_added' => 'El prefisso "$1" el xe stà zontà a la tabèla dei interwiki.',
+	'interwiki_addfailed' => 'No se riesse a zontar el prefisso "$1" a la tabèla dei interwiki.
+El prefisso el podarìa èssar xà presente in tabèla.',
+	'interwiki_edittext' => 'Modìfega de un prefisso interwiki',
+	'interwiki_editintro' => 'Te sì drio modificar un prefisso interwiki.
+Ocio a no desfar i colegamenti esistenti.',
+	'interwiki_edited' => 'El prefisso "$1" el xe stà canbià in te la tabèla dei interwiki.',
+	'interwiki_editerror' => 'No se riesse a canbiar el prefisso "$1" in te la tabèla dei interwiki.
+Sto prefisso el podarìa èssar inesistente.',
+	'interwiki-badprefix' => 'El prefisso interwiki speçificà ("$1") el contien caràteri mia validi',
+	'interwiki_logpagename' => 'Registro de la tabèla interwiki',
+	'interwiki_logpagetext' => 'Registro dei canbiamenti fati a la [[Special:Interwiki|tabèla dei interwiki]].',
+	'right-interwiki' => 'Cànbia i dati interwiki',
+);
+
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'interwiki_prefix' => 'Prefiks',
+	'interwiki-prefix-label' => 'Prefiks:',
+	'interwiki_1' => 'ka',
+	'interwiki_0' => 'ei',
+	'interwiki_edit' => 'Redaktiruida',
+	'interwiki_reasonfield' => 'Sü:',
+	'interwiki_addbutton' => 'Ližata',
+	'interwiki_edittext' => 'Interwiki-prefiksoiden redaktiruind',
+);
+
+/** Vietnamese (Tiếng Việt)
+ * @author Minh Nguyen
+ * @author Vinhtantran
+ */
+$messages['vi'] = array(
+	'interwiki' => 'Xem và sửa đổi dữ liệu về liên kết liên wiki',
+	'interwiki-title-norights' => 'Xem dữ liệu liên wiki',
+	'interwiki-desc' => 'Thêm một [[Special:Interwiki|trang đặc biệt]] để xem sửa đổi bảng liên wiki',
+	'interwiki_intro' => 'Chú giải các cột trong bảng liên wiki:',
+	'interwiki_prefix' => 'Tiền tố',
+	'interwiki-prefix-label' => 'Tiền tố:',
+	'interwiki_prefix_intro' => 'Tiền tố liên wiki dùng trong cú pháp wiki <code>[<nowiki />[tiền tố:<i>tên trang</i>]]</code>.',
+	'interwiki_url_intro' => 'Mẫu địa chỉ URL. Dấu hiệu $1 được thay bằng <i>tiền tố</i> khi nào sử dụng cú pháp ở trên.',
+	'interwiki_local' => 'Chuyển tiếp',
+	'interwiki-local-label' => 'Chuyển tiếp:',
+	'interwiki_local_intro' => 'Khi nào truy cập wiki địa phương dùng tiền tố liên wiki trong URL, yêu cầu HTTP được:',
+	'interwiki_local_0_intro' => 'bác bỏ, thường bị chặn với kết quả “không tìm thấy trang”,',
+	'interwiki_local_1_intro' => 'đổi hướng tới URL đích trong định nghĩa liên kết liên wiki, nó coi như là URL dẫn đến trang địa phương',
+	'interwiki_trans' => 'Nhúng bản mẫu',
+	'interwiki-trans-label' => 'Nhúng bản mẫu:',
+	'interwiki_trans_intro' => 'Khi nào sử dụng cú pháp wiki <code>{<nowiki />{tiền tố:<i>tên trang</i>}}</code>:',
+	'interwiki_trans_1_intro' => 'cho phép nhúng trang từ wiki bên ngoài, nếu wiki này cho phép nhúng trang liên wiki nói chung',
+	'interwiki_trans_0_intro' => 'thay vì cho phép nhúng liên wiki, tìm kiếm trang trong không gian tên bản mẫu địa phương.',
+	'interwiki_intro_footer' => 'Xem [//www.mediawiki.org/wiki/Manual:Interwiki_table?uselang=vi MediaWiki.org] để biết thêm thông tin về bảng liên wiki.
+Có [[Special:Log/interwiki|nhật trình các thay đổi]] tại bảng liên wiki.',
+	'interwiki_1' => 'có',
+	'interwiki_0' => 'không',
+	'interwiki_error' => 'LỖi: Bảng liên wiki hiện đang trống, hoặc có vấn đề gì đó đã xảy ra.',
+	'interwiki_edit' => 'Sửa đổi',
+	'interwiki_reasonfield' => 'Lý do:',
+	'interwiki_delquestion' => 'Xóa “$1”',
+	'interwiki_deleting' => 'Bạn đang xóa tiền tố “$1”.',
+	'interwiki_deleted' => 'Tiền tố “$1” đã được xóa khỏi bảng liên wiki.',
+	'interwiki_delfailed' => 'Tiền tố “$1” không thể xóa khỏi bảng liên wiki.',
+	'interwiki_addtext' => 'Thêm tiền tố liên kết liên wiki',
+	'interwiki_addintro' => 'Bạn đang thêm một tiền tố liên wiki mới.
+Hãy nhớ rằng nó không chứa được khoảng trắng ( ), dấu hai chấm (:), dấu và (&), hay dấu bằng (=).',
+	'interwiki_addbutton' => 'Thêm',
+	'interwiki_added' => 'Tiền tố “$1” đã được thêm vào bảng liên wiki.',
+	'interwiki_addfailed' => 'Tiền tố “$1” không thể thêm vào bảng liên wiki.
+Có thể nó đã tồn tại trong bảng liên wiki rồi.',
+	'interwiki_edittext' => 'Sửa đổi tiền tố liên wiki',
+	'interwiki_editintro' => 'Bạn đang sửa đổi một tiền tố liên wiki. Hãy nhớ rằng việc làm này có thể phá hỏng các liên hết đã có.',
+	'interwiki_edited' => 'Tiền tố “$1” đã thay đổi xong trong bảng liên wiki.',
+	'interwiki_editerror' => 'Tiền tố “$1” không thể thay đổi trong bảng liên wiki. Có thể nó không tồn tại.',
+	'interwiki-badprefix' => 'Tiền tố liên wiki “$1” có chứa ký tự không hợp lệ',
+	'interwiki_logpagename' => 'Nhật trình bảng liên wiki',
+	'interwiki_logpagetext' => 'Đây là nhật trình các thay đổi trong [[Special:Interwiki|bảng liên wiki]].',
+	'right-interwiki' => 'Sửa dữ liệu liên wiki',
+	'action-interwiki' => 'thay đổi khoản mục liên wiki này',
+);
+
+/** Volapük (Volapük)
+ * @author Malafaya
+ * @author Smeira
+ */
+$messages['vo'] = array(
+	'interwiki' => 'Logön e bevobön nünodis vüvükik',
+	'interwiki-title-norights' => 'Logön nünodis vüvükik',
+	'interwiki-desc' => 'Läükön [[Special:Interwiki|padi patik]] ad logön e bevobön taibi vüvükik',
+	'interwiki_intro' => 'Logön eli [http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org] ad tuvön nünis pluik tefü taib vüvükik.
+Dabinon [[Special:Log/interwiki|jenotalised votükamas]] taiba vüvükik.',
+	'interwiki_prefix' => 'Foyümot',
+	'interwiki-prefix-label' => 'Foyümot:',
+	'interwiki_0' => 'nö',
+	'interwiki_error' => 'Pöl: Taib vüvükik vagon, u ba pöl votik ejenon.',
+	'interwiki_reasonfield' => 'Kod:',
+	'interwiki_delquestion' => 'El „$1“ pamoükon',
+	'interwiki_deleting' => 'Moükol foyümoti: „$1“.',
+	'interwiki_deleted' => 'Foyümot: „$1“ pemoükon benosekiko se taib vüvükik.',
+	'interwiki_delfailed' => 'No eplöpos ad moükön foyümot: „$1“ se taib vüvükik.',
+	'interwiki_addtext' => 'Läükön foyümoti vüvükik',
+	'interwiki_addintro' => 'Läükol foyümoti vüvükik nulik.
+Demolös, das foyümot no dalon ninädon spadis ( ), telpünis (:), (&), u (=).',
+	'interwiki_addbutton' => 'Läükön',
+	'interwiki_added' => 'Foyümot: „$1“ peläükon benosekiko taibe vüvükik.',
+	'interwiki_addfailed' => 'No eplöpos ad läükön foyümoti: „$1“ taibe vüvükik.
+Ba ya dabinon in taib vüvükik.',
+	'interwiki_edittext' => 'Votükam foyümota vüvükik',
+	'interwiki_editintro' => 'Bevobol foyümoti vüvükik.
+Demolös, das atos kanon breikön yümis dabinöl.',
+	'interwiki_edited' => 'Foyümot: „$1“ pevotükon benosekiko in taib vüvükik.',
+	'interwiki_editerror' => 'No eplöpos ad votükön foyümoti: „$1“ in taib vüvükik.
+Ba no dabinon.',
+	'interwiki-badprefix' => 'Foyümot vüvükik pavilöl: „$1“ ninädon malatis no lonöfölis',
+	'interwiki_logpagename' => 'Jenotalised taiba vüvükik',
+	'interwiki_logpagetext' => 'Is palisedons votükams [[Special:Interwiki|taiba vüvükik]].',
+	'right-interwiki' => 'Bevobön nünis vüvükik',
+	'action-interwiki' => 'votükön pati vüvükik at',
+);
+
+/** Walloon (Walon) */
+$messages['wa'] = array(
+	'interwiki_reasonfield' => 'Råjhon:',
+);
+
+/** Wu (吴语) */
+$messages['wuu'] = array(
+	'interwiki_reasonfield' => '理由:',
+);
+
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'interwiki_prefix' => 'פרעפֿיקס',
+	'interwiki-prefix-label' => 'פרעפֿיקס:',
+	'interwiki_local' => 'איבערפֿירן',
+	'interwiki_1' => 'יא',
+	'interwiki_0' => 'ניין',
+	'interwiki_edit' => 'רעדאַקטירן',
+	'interwiki_addbutton' => 'צולייגן',
+);
+
+/** Cantonese (粵語) */
+$messages['yue'] = array(
+	'interwiki' => '去睇同編輯跨維基資料',
+	'interwiki-title-norights' => '去睇跨維基資料',
+	'interwiki_intro' => '睇吓[http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org]有關跨維基表嘅更多資料。
+嗰度有一個對跨維基表嘅[[Special:Log/interwiki|修改日誌]]。',
+	'interwiki_prefix' => '前綴',
+	'interwiki-prefix-label' => '前綴:',
+	'interwiki_local' => '定義呢個做一個本地wiki',
+	'interwiki-local-label' => '定義呢個做一個本地wiki:',
+	'interwiki_trans' => '容許跨維基包含',
+	'interwiki-trans-label' => '容許跨維基包含:',
+	'interwiki_error' => '錯誤: 跨維基表係空、又或者有其它嘢出錯。',
+	'interwiki_reasonfield' => '原因',
+	'interwiki_delquestion' => '刪緊 "$1"',
+	'interwiki_deleting' => '你而家拎走緊前綴 "$1"。',
+	'interwiki_deleted' => '前綴 "$1" 已經成功噉響個跨維基表度拎走咗。',
+	'interwiki_delfailed' => '前綴 "$1" 唔能夠響個跨維基表度拎走。',
+	'interwiki_addtext' => '加入一個跨維基前綴',
+	'interwiki_addintro' => '你而家加緊一個新嘅跨維基前綴。
+要記住佢係唔可以包含住空格 ( )、冒號 (:)、連字號 (&),或者係等號 (=)。',
+	'interwiki_addbutton' => '加',
+	'interwiki_added' => '前綴 "$1" 已經成功噉加入到跨維基表。',
+	'interwiki_addfailed' => '前綴 "$1" 唔能夠加入到跨維基表。
+可能已經響個跨維基表度存在。',
+	'interwiki_edittext' => '改緊一個跨維基前綴',
+	'interwiki_editintro' => '你而家改緊跨維基前綴。
+記住呢個可以整斷現有嘅連結。',
+	'interwiki_edited' => '前綴 "$1" 已經響個跨維基表度改咗。',
+	'interwiki_editerror' => '前綴 "$1" 唔能夠響個跨維基表度改。
+可能佢並唔存在。',
+	'interwiki-badprefix' => '所指定嘅跨維基前綴 "$1" 含有無效嘅字母',
+	'right-interwiki' => '編輯跨維基資料',
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Gaoxuewei
+ * @author Hzy980512
+ * @author Liangent
+ * @author Mark85296341
+ * @author PhiLiP
+ * @author Vina
+ * @author Wmr89502270
+ * @author Xiaomingyan
+ */
+$messages['zh-hans'] = array(
+	'interwiki' => '查看并编辑跨维基连结表',
+	'interwiki-title-norights' => '查看跨维基资料',
+	'interwiki-desc' => '新增[[Special:Interwiki|特殊页面]]以查看或编辑跨语言链接表',
+	'interwiki_intro' => '这是跨维基链接表的概览。列中的数据的含义:',
+	'interwiki_prefix' => '前缀',
+	'interwiki-prefix-label' => '前缀:',
+	'interwiki_prefix_intro' => '跨网站的前缀,用于<code>[ [prefix: <i>pagename</i> ]]</code> <nowiki /> <code>[ [prefix: <i>pagename</i> ]]</code>。',
+	'interwiki_local' => '转发',
+	'interwiki-local-label' => '转发:',
+	'interwiki_trans' => '包含',
+	'interwiki-trans-label' => '包含:',
+	'interwiki_intro_footer' => '关于跨维基表的详细信息,请参阅[//www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org]。这里有一个跨维基列表的更改[[Special:Log/interwiki|日志]]。',
+	'interwiki_1' => '是',
+	'interwiki_0' => '否',
+	'interwiki_error' => '错误: 跨维基连结表为空,或是发生其它错误。',
+	'interwiki-cached' => '跨维基数据已缓存。缓存不能编辑。',
+	'interwiki_edit' => '编辑',
+	'interwiki_reasonfield' => '原因:',
+	'interwiki_delquestion' => '正在删除"$1"',
+	'interwiki_deleting' => '您正在删除前缀"$1"。',
+	'interwiki_deleted' => '已成功地从连结表中删除前缀"$1"。',
+	'interwiki_delfailed' => '无法从连结表删除前缀"$1"。',
+	'interwiki_addtext' => '新增一个跨维基前缀',
+	'interwiki_addintro' => '您现在加入一个新的跨维基连结前缀。
+要记住它不可以包含空格 ( )、冒号 (:)、连字号 (&),或者是等号 (=)。',
+	'interwiki_addbutton' => '添加',
+	'interwiki_added' => '前缀 "$1" 已经成功地加入到跨维基连结表。',
+	'interwiki_addfailed' => '前缀 "$1" 不能加入到跨维基连结表。
+可能已经在跨维基连结表中存在。',
+	'interwiki_edittext' => '修改一个跨维基连结前缀',
+	'interwiki_editintro' => '您现正修改跨维基连结前缀。
+记住这动作可以中断现有的连结。',
+	'interwiki_edited' => '前缀 "$1" 已经在跨维基连结表中修改。',
+	'interwiki_editerror' => '前缀 "$1" 不能在跨维基连结表中修改。
+可能它并不存在。',
+	'interwiki-badprefix' => '所指定的跨维基前缀 "$1" 含有无效的字母',
+	'interwiki-submit-empty' => '前缀和URL不能留空。',
+	'interwiki_logpagename' => '跨维基连结修改日志',
+	'interwiki_logpagetext' => '这是一个[[Special:Interwiki|跨维基连结]]修改的日志。',
+	'right-interwiki' => '修改跨维基资料',
+	'action-interwiki' => '修正这个跨语言链接',
+);
+
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Alexsh
+ * @author Horacewai2
+ * @author Liangent
+ * @author Mark85296341
+ * @author Waihorace
+ * @author Wrightbus
+ */
+$messages['zh-hant'] = array(
+	'interwiki' => '檢視並編輯跨維基連結表',
+	'interwiki-title-norights' => '檢視跨維基資料',
+	'interwiki-desc' => '新增[[Special:Interwiki|特殊頁面]]以檢視或編輯跨語言連結表',
+	'interwiki_intro' => '這是跨維基連結表的概覽。列中的數據的含義:',
+	'interwiki_prefix' => '前綴',
+	'interwiki-prefix-label' => '前綴:',
+	'interwiki_prefix_intro' => '跨網站的前綴,用於<code>[ [prefix: <i>pagename</i> ]]</code> <nowiki /> <code>[ [prefix: <i>pagename</i> ]]</code>。',
+	'interwiki_local' => '轉發',
+	'interwiki-local-label' => '定義這個為一個本地 wiki:',
+	'interwiki_trans' => '包含',
+	'interwiki-trans-label' => '容許跨維基包含:',
+	'interwiki_1' => '是',
+	'interwiki_0' => '否',
+	'interwiki_error' => '錯誤:跨維基連結表為空,或是發生其它錯誤。',
+	'interwiki_edit' => '編輯',
+	'interwiki_reasonfield' => '原因:',
+	'interwiki_delquestion' => '正在刪除「$1」',
+	'interwiki_deleting' => '您正在刪除前綴「$1」。',
+	'interwiki_deleted' => '已成功地從連結表中刪除前綴「$1」。',
+	'interwiki_delfailed' => '無法從連結表刪除前綴「$1」。',
+	'interwiki_addtext' => '新增一個跨維基前綴',
+	'interwiki_addintro' => '您現在加入一個新的跨維基連結前綴。
+要記住它不可以包含空格 ( )、冒號 (:)、連字號 (&),或者是等號 (=)。',
+	'interwiki_addbutton' => '加入',
+	'interwiki_added' => '前綴「$1」已經成功地加入到跨維基連結表。',
+	'interwiki_addfailed' => '前綴「$1」不能加入到跨維基連結表。
+可能已經在跨維基連結表中存在。',
+	'interwiki_edittext' => '修改一個跨維基連結前綴',
+	'interwiki_editintro' => '您現正修改跨維基連結前綴。
+記住這動作可以中斷現有的連結。',
+	'interwiki_edited' => '前綴「$1」已經在跨維基連結表中修改。',
+	'interwiki_editerror' => '前綴「$1」不能在跨維基連結表中修改。
+可能它並不存在。',
+	'interwiki-badprefix' => '所指定的跨維基前綴「$1」含有無效的字母',
+	'interwiki_logpagename' => '跨維基連結修改日誌',
+	'interwiki_logpagetext' => '這是一個[[Special:Interwiki|跨維基連結]]修改的日誌。',
+	'right-interwiki' => '修改跨維基資料',
+	'action-interwiki' => '修正這個跨語言連結',
+);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,57 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * @file
+ * @ingroup Extensions
+ * @version 2.0
+ * @author Stephanie Amanda Stevens <phroziac at gmail.com>
+ * @author Robin Pepermans (SPQRobin) <robinp.1273 at gmail.com>
+ * @copyright Copyright © 2005-2007 Stephanie Amanda Stevens
+ * @copyright Copyright © 2007-2011 Robin Pepermans (SPQRobin)
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ * @link http://www.mediawiki.org/wiki/Extension:SpecialInterwiki Documentation
+ * Formatting improvements Stephen Kennedy, 2006.
+ */
+
+if( !defined( 'MEDIAWIKI' ) ){
+	die( "This is not a valid entry point.\n" );
+}
+
+// Extension credits for Special:Version
+$wgExtensionCredits['specialpage'][] = array(
+	'path' => __FILE__,
+	'name' => 'Interwiki',
+	'author' => array( 'Stephanie Amanda Stevens', 'SPQRobin', '...' ),
+	'version' => '2.0',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:Interwiki',
+	'descriptionmsg' => 'interwiki-desc',
+);
+
+$wgResourceModules['SpecialInterwiki'] = array(
+		'styles' => 'Interwiki.css',
+		'localBasePath' => dirname( __FILE__ ),
+		'remoteExtPath' => 'Interwiki',
+);
+
+// Set up the new special page
+$dir = dirname( __FILE__ ) . '/';
+$wgExtensionMessagesFiles['Interwiki'] = $dir . 'Interwiki.i18n.php';
+$wgExtensionMessagesFiles['InterwikiAlias'] = $dir . 'Interwiki.alias.php';
+$wgAutoloadClasses['SpecialInterwiki'] = $dir . 'Interwiki_body.php';
+$wgSpecialPages['Interwiki'] = 'SpecialInterwiki';
+$wgSpecialPageGroups['Interwiki'] = 'wiki';
+
+// New user right, required to modify the interwiki table through Special:Interwiki
+$wgAvailableRights[] = 'interwiki';
+
+// Set up the new log type - interwiki actions are logged to this new log
+$wgLogTypes[] = 'interwiki';
+$wgLogNames['interwiki'] = 'interwiki_logpagename';
+$wgLogHeaders['interwiki'] = 'interwiki_logpagetext';
+$wgAutoloadClasses['InterwikiLogFormatter'] = $dir . 'Interwiki_body.php';
+# interwiki, iw_add, iw_delete, iw_edit
+$wgLogActionsHandlers['interwiki/*']  = 'InterwikiLogFormatter';

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki_body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki_body.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Interwiki/Interwiki_body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,335 @@
+<?php
+/**
+ * Implements Special:Interwiki
+ * @ingroup SpecialPage
+ */
+class SpecialInterwiki extends SpecialPage {
+
+	/**
+	 * Constructor - sets up the new special page
+	 */
+	public function __construct() {
+		parent::__construct( 'Interwiki' );
+	}
+
+	/**
+	 * Different description will be shown on Special:SpecialPage depending on
+	 * whether the user can modify the data.
+	 */
+	function getDescription() {
+		return wfMessage( $this->canModify() ?
+			'interwiki' : 'interwiki-title-norights' )->plain();
+	}
+
+	/**
+	 * Show the special page
+	 *
+	 * @param $par Mixed: parameter passed to the page or null
+	 */
+	public function execute( $par ) {
+		$this->setHeaders();
+		$this->outputHeader();
+
+		$out = $this->getOutput();
+		$request = $this->getRequest();
+
+		$out->addModuleStyles( 'SpecialInterwiki' );
+
+		$action = $par ? $par : $request->getVal( 'action', $par );
+		$return = $this->getTitle();
+
+		switch( $action ) {
+		case 'delete':
+		case 'edit':
+		case 'add':
+			if( $this->canModify( $out ) ) {
+				$out->addHTML( $this->showForm( $action ) );
+			}
+			$out->returnToMain( false, $return );
+			break;
+		case 'submit':
+			if( !$this->canModify( $out ) ) {
+				# Error msg added by canModify()
+			} elseif( !$request->wasPosted() || !$this->getUser()->matchEditToken( $request->getVal( 'wpEditToken' ) ) ) {
+				// Prevent cross-site request forgeries
+				$out->addWikiMsg( 'sessionfailure' );
+			} else {
+				$this->doSubmit();
+			}
+			$out->returnToMain( false, $return );
+			break;
+		default:
+			$this->showList();
+			break;
+		}
+	}
+
+	/**
+	 * Returns boolean whether the user can modify the data.
+	 * @param $out If $wgOut object given, it adds the respective error message.
+	 * @return Boolean
+	 */
+	public function canModify( $out = false ) {
+		global $wgInterwikiCache;
+		if( !$this->getUser()->isAllowed( 'interwiki' ) ) {
+			# Check permissions
+			if( $out ) { throw new PermissionsError( 'interwiki' ); }
+			return false;
+		} elseif( $wgInterwikiCache ) {
+			# Editing the interwiki cache is not supported
+			if( $out ) { $out->addWikiMsg( 'interwiki-cached' ); }
+			return false;
+		} elseif( wfReadOnly() ) {
+			# Is the database in read-only mode?
+			if( $out ) { $out->readOnlyPage(); }
+			return false;
+		}
+		return true;
+	}
+
+	function showForm( $action ) {
+		$request = $this->getRequest();
+
+		$prefix = $request->getVal( 'prefix' );
+		$wpPrefix = '';
+		$label = array( 'class' => 'mw-label' );
+		$input = array( 'class' => 'mw-input' );
+
+		if( $action == 'delete' ) {
+			$topmessage = wfMessage( 'interwiki_delquestion', $prefix )->text();
+			$intromessage = wfMessage( 'interwiki_deleting', $prefix )->text();
+			$wpPrefix = Html::hidden( 'wpInterwikiPrefix', $prefix );
+			$button = 'delete';
+			$formContent = '';
+		} elseif( $action == 'edit' ) {
+			$dbr = wfGetDB( DB_SLAVE );
+			$row = $dbr->selectRow( 'interwiki', '*', array( 'iw_prefix' => $prefix ), __METHOD__ );
+			if( !$row ) {
+				$this->error( 'interwiki_editerror', $prefix );
+				return;
+			}
+			$prefix = $row->iw_prefix;
+			$defaulturl = $row->iw_url;
+			$trans = $row->iw_trans;
+			$local = $row->iw_local;
+			$wpPrefix = Html::hidden( 'wpInterwikiPrefix', $row->iw_prefix );
+			$topmessage = wfMessage( 'interwiki_edittext' )->text();
+			$intromessage = wfMessage( 'interwiki_editintro' )->text();
+			$button = 'edit';
+		} elseif( $action == 'add' ) {
+			$prefix = $request->getVal( 'wpInterwikiPrefix', $request->getVal( 'prefix' ) );
+			$prefix = Xml::input( 'wpInterwikiPrefix', 20, $prefix,
+				array( 'tabindex' => 1, 'id' => 'mw-interwiki-prefix', 'maxlength' => 20 ) );
+			$local = $request->getCheck( 'wpInterwikiLocal' );
+			$trans = $request->getCheck( 'wpInterwikiTrans' );
+			$defaulturl = $request->getVal( 'wpInterwikiURL', wfMessage( 'interwiki-defaulturl' )->text() );
+			$topmessage = wfMessage( 'interwiki_addtext' )->text();
+			$intromessage = wfMessage( 'interwiki_addintro' )->text();
+			$button = 'interwiki_addbutton';
+		}
+
+		if( $action == 'add' || $action == 'edit' ) {
+			$formContent = Html::rawElement( 'tr', null,
+				Html::element( 'td', $label, wfMessage( 'interwiki-prefix-label' )->text() ) .
+				Html::rawElement( 'td', null, '<tt>' . $prefix . '</tt>' )
+			) . Html::rawElement( 'tr', null,
+				Html::rawElement( 'td', $label, Xml::label( wfMessage( 'interwiki-local-label' )->text(), 'mw-interwiki-local' ) ) .
+				Html::rawElement( 'td', $input, Xml::check( 'wpInterwikiLocal', $local, array( 'id' => 'mw-interwiki-local' ) ) )
+			) . Html::rawElement( 'tr', null,
+				Html::rawElement( 'td', $label, Xml::label( wfMessage( 'interwiki-trans-label' )->text(), 'mw-interwiki-trans' ) ) .
+				Html::rawElement( 'td', $input,  Xml::check( 'wpInterwikiTrans', $trans, array( 'id' => 'mw-interwiki-trans' ) ) )
+			) . Html::rawElement( 'tr', null,
+				Html::rawElement( 'td', $label, Xml::label( wfMessage( 'interwiki-url-label' )->text(), 'mw-interwiki-url' ) ) .
+				Html::rawElement( 'td', $input, Xml::input( 'wpInterwikiURL', 60, $defaulturl,
+					array( 'tabindex' => 1, 'maxlength' => 200, 'id' => 'mw-interwiki-url' ) ) )
+			);
+		}
+
+		return Xml::fieldset( $topmessage, Html::rawElement( 'form',
+			array( 'id' => "mw-interwiki-{$action}form", 'method' => 'post',
+				'action' => $this->getTitle()->getLocalURL( 'action=submit' ) ),
+			Html::rawElement( 'p', null, $intromessage ) .
+			Html::rawElement( 'table', array( 'id' => "mw-interwiki-{$action}" ),
+				$formContent . Html::rawElement( 'tr', null,
+					Html::rawElement( 'td', $label, Xml::label( wfMessage( 'interwiki_reasonfield' )->text(),
+						"mw-interwiki-{$action}reason" ) ) .
+					Html::rawElement( 'td', $input, Xml::input( 'wpInterwikiReason', 60, '',
+						array( 'tabindex' => 1, 'id' => "mw-interwiki-{$action}reason", 'maxlength' => 200 ) ) )
+				) .	Html::rawElement( 'tr', null,
+					Html::rawElement( 'td', null, '' ) .
+					Html::rawElement( 'td', array( 'class' => 'mw-submit' ),
+						Xml::submitButton( wfMessage( $button )->text(), array( 'id' => 'mw-interwiki-submit' ) ) )
+				) . $wpPrefix .
+				Html::hidden( 'wpEditToken', $this->getUser()->editToken() ) .
+				Html::hidden( 'wpInterwikiAction', $action )
+			)
+		) );
+	}
+
+	function doSubmit() {
+		global $wgContLang;
+
+		$request = $this->getRequest();
+		$prefix = $request->getVal( 'wpInterwikiPrefix' );
+		$do = $request->getVal( 'wpInterwikiAction' );
+		// show an error if the prefix is invalid (only when adding one)
+		if( preg_match( '/[\s:&=]/', $prefix ) && $do == 'add' ) {
+			$this->error( 'interwiki-badprefix', htmlspecialchars( $prefix ) );
+			$this->showForm( $do );
+			return;
+		}
+		$reason = $request->getText( 'wpInterwikiReason' );
+		$selfTitle = $this->getTitle();
+		$dbw = wfGetDB( DB_MASTER );
+		switch( $do ){
+		case 'delete':
+			$dbw->delete( 'interwiki', array( 'iw_prefix' => $prefix ), __METHOD__ );
+
+			if ( $dbw->affectedRows() == 0 ) {
+				$this->error( 'interwiki_delfailed', $prefix );
+				$this->showForm( $do );
+			} else {
+				$this->getOutput()->addWikiMsg( 'interwiki_deleted', $prefix );
+				$log = new LogPage( 'interwiki' );
+				$log->addEntry( 'iw_delete', $selfTitle, $reason, array( $prefix ) );
+			}
+			break;
+		case 'add':
+			$prefix = $wgContLang->lc( $prefix );
+		case 'edit':
+			$theurl = $request->getVal( 'wpInterwikiURL' );
+			$local = $request->getCheck( 'wpInterwikiLocal' ) ? 1 : 0;
+			$trans = $request->getCheck( 'wpInterwikiTrans' ) ? 1 : 0;
+			$data = array(
+				'iw_prefix' => $prefix,
+				'iw_url' => $theurl,
+				'iw_local' => $local,
+				'iw_trans' => $trans
+			);
+			
+			if( $prefix == '' || $theurl == '' ) {
+				$this->error( 'interwiki-submit-empty' );
+				$this->showForm( $do );
+				return;
+			}
+
+			if( $do == 'add' ){
+				$dbw->insert( 'interwiki', $data, __METHOD__, 'IGNORE' );
+			} else {
+				$dbw->update( 'interwiki', $data, array( 'iw_prefix' => $prefix ), __METHOD__, 'IGNORE' );
+			}
+
+			if( $dbw->affectedRows() == 0 ) {
+				$this->error( "interwiki_{$do}failed", $prefix );
+				$this->showForm( $do );
+			} else {
+				$this->getOutput()->addWikiMsg( "interwiki_{$do}ed", $prefix );
+				$log = new LogPage( 'interwiki' );
+				$log->addEntry( 'iw_' . $do, $selfTitle, $reason, array( $prefix, $theurl, $trans, $local ) );
+			}
+			break;
+		}	
+	}
+
+	function showList() {
+		$canModify = $this->canModify();
+
+		$this->getOutput()->addWikiMsg( 'interwiki_intro' );
+		$this->getOutput()->addHTML(
+			Html::rawElement( 'table', array( 'class' => 'mw-interwikitable wikitable intro' ),
+				self::addInfoRow( 'start', 'interwiki_prefix', 'interwiki_prefix_intro' ) .
+				self::addInfoRow( 'start', 'interwiki_url', 'interwiki_url_intro' ) .
+				self::addInfoRow( 'start', 'interwiki_local', 'interwiki_local_intro' ) .
+				self::addInfoRow( 'end', 'interwiki_0', 'interwiki_local_0_intro' ) .
+				self::addInfoRow( 'end', 'interwiki_1', 'interwiki_local_1_intro' ) .
+				self::addInfoRow( 'start', 'interwiki_trans', 'interwiki_trans_intro' ) .
+				self::addInfoRow( 'end', 'interwiki_0', 'interwiki_trans_0_intro' ) .
+				self::addInfoRow( 'end', 'interwiki_1', 'interwiki_trans_1_intro' )
+			) . "\n"
+		);
+		$this->getOutput()->addWikiMsg( 'interwiki_intro_footer' );
+
+		if ( $canModify ) {
+			$addtext = wfMessage( 'interwiki_addtext' )->escaped();
+			$addlink = Linker::linkKnown( $this->getTitle( 'add' ), $addtext );
+			$this->getOutput()->addHTML( '<p class="mw-interwiki-addlink">' . $addlink . '</p>' );
+		}
+
+		if( !method_exists( 'Interwiki', 'getAllPrefixes' ) ) {
+			# version 2.0 is not backwards compatible (but still display nice error)
+			$this->error( 'interwiki_error' );
+			return;
+		}
+		$iwPrefixes = Interwiki::getAllPrefixes( null );
+
+		if ( !is_array( $iwPrefixes ) || count( $iwPrefixes ) == 0 ) {
+			# If the interwiki table is empty, display an error message
+			$this->error( 'interwiki_error' );
+			return;
+		}
+
+		$out = '';
+
+		# Output the table header
+		$out .=	Html::openElement( 'table', array( 'class' => 'mw-interwikitable wikitable sortable body' ) ) . "\n";
+		$out .= Html::openElement( 'tr', array( 'id' => 'interwikitable-header' ) ) .
+			Html::element( 'th', null, wfMessage( 'interwiki_prefix' ) ) .
+			Html::element( 'th', null, wfMessage( 'interwiki_url' ) ) .
+			Html::element( 'th', null, wfMessage( 'interwiki_local' ) ) .
+			Html::element( 'th', null, wfMessage( 'interwiki_trans' ) ) .
+			( $canModify ? Html::element( 'th', array( 'class' => 'unsortable' ), wfMessage( 'interwiki_edit' ) ) : '' );
+		$out .= Html::closeElement( 'tr' ) . "\n";
+
+		$selfTitle = $this->getTitle();
+
+		foreach( $iwPrefixes as $i => $iwPrefix ) {
+			$out .= Html::openElement( 'tr', array( 'class' => 'mw-interwikitable-row' ) );
+			$out .=	Html::element( 'td', array( 'class' => 'mw-interwikitable-prefix' ),
+				htmlspecialchars( $iwPrefix['iw_prefix'] ) );
+			$out .= Html::element( 'td', array( 'class' => 'mw-interwikitable-url' ), $iwPrefix['iw_url'] );
+			$out .= Html::element( 'td', array( 'class' => 'mw-interwikitable-local' ),
+				( isset( $iwPrefix['iw_local'] ) ? wfMessage( 'interwiki_' . $iwPrefix['iw_local'] ) : '-' ) );
+			$out .= Html::element( 'td', array( 'class' => 'mw-interwikitable-trans' ),
+				( isset( $iwPrefix['iw_trans'] ) ? wfMessage( 'interwiki_' . $iwPrefix['iw_trans'] ) : '-' ) );
+			if( $canModify ) {
+				$out .= Html::rawElement( 'td', array( 'class' => 'mw-interwikitable-modify' ),
+					Linker::linkKnown( $selfTitle, wfMessage( 'edit' )->escaped(), array(),
+						array( 'action' => 'edit', 'prefix' => $iwPrefix['iw_prefix'] ) ) .
+					wfMessage( 'comma-separator' ) .
+					Linker::linkKnown( $selfTitle, wfMessage( 'delete' )->escaped(), array(),
+						array( 'action' => 'delete', 'prefix' => $iwPrefix['iw_prefix'] ) )
+				);
+			}
+			$out .= Html::closeElement( 'tr' ) . "\n";
+		}
+		$out .= Html::closeElement( 'table' );
+
+		$this->getOutput()->addHTML( $out );
+	}
+
+	static function addInfoRow( $align = 'start', $title, $text ) {
+		return Html::rawElement( 'tr', null,
+			Html::rawElement( 'th', array( 'class' => 'mw-align-' . $align ), wfMessage( $title )->escaped() ) .
+			Html::rawElement( 'td', null, wfMessage( $text )->parse() )
+		);
+	}
+
+	function error() {
+		$args = func_get_args();
+		$this->getOutput()->wrapWikiMsg( "<p class='error'>$1</p>", $args );
+	}
+
+}
+
+/**
+ * Needed to pass the URL as a raw parameter, because it contains $1
+*/
+class InterwikiLogFormatter extends LogFormatter {
+	protected function getMessageParameters() {
+		$params = parent::getMessageParameters();
+		if( isset( $params[4] ) ) {
+			$params[4] = Message::rawParam( $params[4] );
+		}
+		return $params;
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,7 +2,8 @@
 /**
  * Internationalisation file for extension LanguageSelector.
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  */
 
 $messages = array();
@@ -28,6 +29,27 @@
 	'languageselector-setlang' => 'Part of the "LanguageSelector" extension. This is the text of a submit button to select your user interface language. Mostly the button  is not shown, but sometimes it appears next to the language selector (a dropdown box like in your [[Special:Preferences|user preferences]]).',
 );
 
+/** Goan Konkani (Latin script) (Konknni)
+ * @author The Discoverer
+ */
+$messages['gom-latn'] = array(
+	'languageselector' => 'Bhas',
+);
+
+/** толышә зывон (толышә зывон)
+ * @author Гусейн
+ */
+$messages['tly'] = array(
+	'languageselector' => 'Зывон',
+);
+
+/** Abkhazian (Аҧсуа)
+ * @author Temuri rajavi
+ */
+$messages['ab'] = array(
+	'languageselector' => 'Абызшәа',
+);
+
 /** Afrikaans (Afrikaans)
  * @author Naudefj
  * @author SPQRobin
@@ -38,6 +60,15 @@
 	'languageselector-setlang' => 'stel',
 );
 
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'languageselector' => 'Gjuhë',
+	'languageselector-desc' => 'Gjuha seleksionues në çdo faqe, edhe për vizitorët',
+	'languageselector-setlang' => 'vendosur',
+);
+
 /** Amharic (አማርኛ)
  * @author Codex Sinaiticus
  */
@@ -54,11 +85,21 @@
 	'languageselector-setlang' => 'ضبط',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'languageselector' => 'ܠܫܢܐ',
+);
+
 /** Araucanian (Mapudungun)
+ * @author Kaniw
  * @author Lin linao
  */
 $messages['arn'] = array(
-	'languageselector' => 'Dungun',
+	'languageselector' => 'Cezugun',
+	'languageselector-desc' => 'Cezugun ñi zujipeyvm fijke aztapvl mew, keyv jajitufe',
+	'languageselector-setlang' => 'zujipe',
 );
 
 /** Egyptian Spoken Arabic (مصرى)
@@ -79,7 +120,35 @@
 	'languageselector-setlang' => 'establecer',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Azerbaijani (Azərbaycanca)
+ * @author Proger
+ */
+$messages['az'] = array(
+	'languageselector' => 'Dil',
+	'languageselector-setlang' => 'Seç',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ * @author Рустам Нурыев
+ */
+$messages['ba'] = array(
+	'languageselector' => 'Тышҡы күренештә ҡулланылған тел:',
+	'languageselector-desc' => 'Һәр биттә тел һайлау, шулай уҡ ябай кереүселәр өсөн',
+	'languageselector-setlang' => 'Билдәләргә',
+);
+
+/** Bavarian (Boarisch)
+ * @author Man77
+ * @author Mucalexx
+ */
+$messages['bar'] = array(
+	'languageselector' => 'Sprooch',
+	'languageselector-desc' => 'Sproochnauswoi auf jeeder Seiten, aa fyr Bsuacher',
+	'languageselector-setlang' => 'sétzen',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author Jim-by
  * @author Red Winged Duck
  */
@@ -96,6 +165,24 @@
 	'languageselector' => 'Език',
 );
 
+/** Bengali (বাংলা)
+ * @author Bellayet
+ */
+$messages['bn'] = array(
+	'languageselector' => 'ভাষা',
+	'languageselector-desc' => 'প্রতি পাতায় ভাষা নির্বাচক, পরিদর্শকের জন্যেও',
+	'languageselector-setlang' => 'স্থাপন',
+);
+
+/** Tibetan (བོད་ཡིག)
+ * @author Freeyak
+ */
+$messages['bo'] = array(
+	'languageselector' => 'སྐད་རིགས།',
+	'languageselector-desc' => 'ཤོག་ངོས་སོ་སོའི་སྐད་རིགས་འདེམས་ཚན་དང་། གཞན་ལྟ་ཀློག་བྱེད་མཁན་གྱི་ཆེད་དུའང་ཡིན།',
+	'languageselector-setlang' => 'སྒྲིག',
+);
+
 /** Breton (Brezhoneg)
  * @author Fulup
  */
@@ -114,6 +201,13 @@
 	'languageselector-setlang' => 'postavi',
 );
 
+/** Буряад (Буряад)
+ * @author ОйЛ
+ */
+$messages['bxr'] = array(
+	'languageselector' => 'Хэлэн',
+);
+
 /** Catalan (Català)
  * @author Jordi Roqué
  * @author SMP
@@ -124,6 +218,16 @@
 	'languageselector-setlang' => 'selecciona',
 );
 
+/** Sorani (کوردی)
+ * @author Marmzok
+ * @author رزگار
+ */
+$messages['ckb'] = array(
+	'languageselector' => 'زمان',
+	'languageselector-desc' => 'ھەڵبژێری زمان لە ھەموو پەڕەکان، ھەروەھا بۆ بینەران',
+	'languageselector-setlang' => 'داینێ',
+);
+
 /** Czech (Česky)
  * @author Matěj Grabovský
  */
@@ -160,18 +264,22 @@
 
 /** Danish (Dansk)
  * @author Jon Harald Søby
+ * @author Peter Alberti
  */
 $messages['da'] = array(
 	'languageselector' => 'Sprog',
+	'languageselector-desc' => 'Sprogvælger på alle sider, også for gæster',
+	'languageselector-setlang' => 'vælg',
 );
 
 /** German (Deutsch)
  * @author Als-Holder
+ * @author Kghbln
  * @author Raimond Spekking
  */
 $messages['de'] = array(
 	'languageselector' => 'Sprache',
-	'languageselector-desc' => 'Sprachenauswahl auf jeder Seite, auch für Besucher',
+	'languageselector-desc' => 'Ermöglicht, auch für Besucher des Wikis, die Auswahl der Sprache auf jeder Seite',
 	'languageselector-setlang' => 'setzen',
 );
 
@@ -195,9 +303,13 @@
 
 /** Greek (Ελληνικά)
  * @author Consta
+ * @author Omnipaedista
+ * @author ZaDiak
  */
 $messages['el'] = array(
 	'languageselector' => 'Γλώσσα',
+	'languageselector-desc' => 'Επιλογέας γλώσσας σε κάθε σελίδα, το ίδιο και για τους επισκέπτες',
+	'languageselector-setlang' => 'ρύθμιση',
 );
 
 /** Esperanto (Esperanto)
@@ -218,6 +330,15 @@
 	'languageselector-setlang' => 'selecciona',
 );
 
+/** Estonian (Eesti)
+ * @author Silvar
+ */
+$messages['et'] = array(
+	'languageselector' => 'Keel',
+	'languageselector-desc' => 'Keele valik kõikidele lehtedele, sama ka külastajatele',
+	'languageselector-setlang' => 'vali',
+);
+
 /** Basque (Euskara)
  * @author Theklan
  */
@@ -264,6 +385,24 @@
 	'languageselector-setlang' => 'Définir',
 );
 
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'languageselector' => 'Lengoua',
+	'languageselector-desc' => 'Chouèx de lengoua sur châque pâge, por los visitors avouéc.',
+	'languageselector-setlang' => 'Dèfenir',
+);
+
+/** Scottish Gaelic (Gàidhlig)
+ * @author Akerbeltz
+ */
+$messages['gd'] = array(
+	'languageselector' => 'Cànan',
+	'languageselector-desc' => "Roghnaiche cànain air gach duilleag 's airson cèilichean cuideachd",
+	'languageselector-setlang' => 'suidhich',
+);
+
 /** Galician (Galego)
  * @author Alma
  * @author Toliño
@@ -329,7 +468,7 @@
 );
 
 /** Croatian (Hrvatski)
- * @author Suradnik13
+ * @author Ex13
  */
 $messages['hr'] = array(
 	'languageselector' => 'Jezik',
@@ -431,18 +570,25 @@
 	'languageselector-setlang' => 'انىقتاۋ',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'languageselector' => 'Тіл',
 	'languageselector-setlang' => 'анықтау',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'languageselector' => 'Til',
 	'languageselector-setlang' => 'anıqtaw',
 );
 
+/** Kalaallisut (Kalaallisut)
+ * @author Qaqqalik
+ */
+$messages['kl'] = array(
+	'languageselector' => 'Oqaatsit',
+);
+
 /** Khmer (ភាសាខ្មែរ)
  * @author Chhorran
  * @author Thearith
@@ -454,6 +600,13 @@
 	'languageselector-setlang' => 'ប្តូរ',
 );
 
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'languageselector' => 'ಭಾಷೆ',
+);
+
 /** Korean (한국어)
  * @author Kwj2772
  */
@@ -463,7 +616,7 @@
 	'languageselector-setlang' => '설정',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
@@ -472,7 +625,14 @@
 	'languageselector-setlang' => 'Setze',
 );
 
-/** Cornish (Kernewek)
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'languageselector' => 'Ziman',
+);
+
+/** Cornish (Kernowek)
  * @author Kw-Moon
  */
 $messages['kw'] = array(
@@ -495,12 +655,22 @@
 	'languageselector-setlang' => 'Wielt',
 );
 
+/** Ganda (Luganda)
+ * @author Kizito
+ */
+$messages['lg'] = array(
+	'languageselector' => 'Lulimi',
+	'languageselector-desc' => "Buli alaba olupapula abe ng'asobola okwerondera lulimi mw'alusomera",
+	'languageselector-setlang' => 'lukakase',
+);
+
 /** Limburgish (Limburgs)
+ * @author Aelske
  * @author Ooswesthoesbes
  */
 $messages['li'] = array(
 	'languageselector' => 'Taal',
-	'languageselector-desc' => 'Taalseleksie op edere pazjena, ouch veur gebroekers die neet aangemeldj zeen',
+	'languageselector-desc' => 'Taalselectie op eder pagina, ouch veur gebroekers die neet aangemeld zin',
 	'languageselector-setlang' => 'instèlle',
 );
 
@@ -512,6 +682,23 @@
 	'languageselector-setlang' => 'nustatyti',
 );
 
+/** Latgalian (Latgaļu)
+ * @author Dark Eagle
+ */
+$messages['ltg'] = array(
+	'languageselector' => 'Volūda',
+	'languageselector-setlang' => 'nūstateit',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'languageselector' => 'Јазик',
+	'languageselector-desc' => 'Избирач на јазик на секоја страница, исто така за посетители',
+	'languageselector-setlang' => 'постави',
+);
+
 /** Malayalam (മലയാളം)
  * @author Shijualex
  */
@@ -519,6 +706,13 @@
 	'languageselector' => 'ഭാഷ',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'languageselector' => 'Хэл',
+);
+
 /** Marathi (मराठी)
  * @author Kaustubh
  * @author Mahitgar
@@ -529,6 +723,15 @@
 	'languageselector-setlang' => 'सेट (set)',
 );
 
+/** Malay (Bahasa Melayu)
+ * @author Zamwan
+ */
+$messages['ms'] = array(
+	'languageselector' => 'Bahasa',
+	'languageselector-desc' => 'Pilihan bahasa pada setiap laman, termasuk untuk para pelawat.',
+	'languageselector-setlang' => 'set',
+);
+
 /** Maltese (Malti)
  * @author Roderick Mallia
  */
@@ -545,11 +748,21 @@
 
 /** Nahuatl (Nāhuatl)
  * @author Fluence
+ * @author Teòtlalili
  */
 $messages['nah'] = array(
-	'languageselector' => 'Tlahtōlli',
+	'languageselector' => 'Tlâtòlli',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'languageselector' => 'Språk',
+	'languageselector-desc' => 'Valg av språk på alle sider, også for gjester',
+	'languageselector-setlang' => 'sett',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -577,15 +790,6 @@
 	'languageselector-setlang' => 'set',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'languageselector' => 'Språk',
-	'languageselector-desc' => 'Valg av språk på alle sider, også for gjester',
-	'languageselector-setlang' => 'sett',
-);
-
 /** Northern Sotho (Sesotho sa Leboa)
  * @author Mohau
  */
@@ -602,13 +806,37 @@
 	'languageselector-setlang' => 'Definir',
 );
 
-/** Ossetic (Иронау)
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Jnanaranjan Sahu
+ */
+$messages['or'] = array(
+	'languageselector' => 'ଭାଷା',
+	'languageselector-desc' => 'ଭାଷା ଚୟନକାରୀ ସବୁ ପୃଷ୍ଠାରେ, ଅତିଥି ମାନଙ୍କ ପାଇଁ ମଧ୍ୟ',
+	'languageselector-setlang' => 'ସେଟ କରନ୍ତୁ',
+);
+
+/** Ossetic (Ирон)
  * @author Amikeco
  */
 $messages['os'] = array(
 	'languageselector' => 'Æвзаг',
 );
 
+/** Punjabi (ਪੰਜਾਬੀ)
+ * @author Aalam
+ */
+$messages['pa'] = array(
+	'languageselector' => 'ਭਾਸ਼ਾ:',
+	'languageselector-setlang' => 'ਸੈੱਟ ਕਰੋ',
+);
+
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'languageselector' => 'Schprooch',
+);
+
 /** Polish (Polski)
  * @author McMonster
  * @author Wpedzich
@@ -619,30 +847,42 @@
 	'languageselector-setlang' => 'ustaw',
 );
 
+/** Piedmontese (Piemontèis)
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'languageselector' => 'Lenga',
+	'languageselector-desc' => 'Seletor ëd la lenga an dzora a mincadun-a pàgina, ëdcò për ij visitador',
+	'languageselector-setlang' => 'Ampòsta',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
 	'languageselector' => 'ژبه',
 	'languageselector-desc' => 'د ژب ټاکنې پټه دې په هر مخ وي، د کتونکو لپاره هم',
+	'languageselector-setlang' => 'ټاکل',
 );
 
 /** Portuguese (Português)
  * @author 555
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'languageselector' => 'Idioma',
+	'languageselector' => 'Língua',
 	'languageselector-desc' => 'Selector de língua em todas as páginas, também para visitantes',
 	'languageselector-setlang' => 'seleccionar',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Giro720
  * @author MF-Warburg
  */
 $messages['pt-br'] = array(
-	'languageselector' => 'Idioma',
+	'languageselector' => 'Língua',
 	'languageselector-desc' => 'Seletor de língua em todas as páginas, também para visitantes',
 	'languageselector-setlang' => 'selecionar',
 );
@@ -668,18 +908,39 @@
  */
 $messages['roa-tara'] = array(
 	'languageselector' => 'Lènghe',
+	'languageselector-desc' => "'U selezzionatore de le lènghe sus a ogne pàgene, pure pe le visitature",
+	'languageselector-setlang' => "'mboste",
 );
 
 /** Russian (Русский)
+ * @author Kaganer
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
 	'languageselector' => 'Язык',
-	'languageselector-desc' => 'Выбор языка на каждой странице, также и для посетителей',
+	'languageselector-desc' => 'Выбор языка на каждой странице, доступный также и для посетителей',
 	'languageselector-setlang' => 'установить',
 );
 
-/** Tachelhit (Tašlḥiyt)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'languageselector' => 'Язык',
+	'languageselector-desc' => 'Выбер языка на каждій сторінцї і тыж про навщівників',
+	'languageselector-setlang' => 'становити',
+);
+
+/** Sakha (Саха тыла)
+ * @author HalanTul
+ */
+$messages['sah'] = array(
+	'languageselector' => 'Омук тыла',
+	'languageselector-desc' => 'Хас сирэй аайы омук тылын талыы баар, көрөөччүлэргэ эмиэ',
+	'languageselector-setlang' => 'туруор',
+);
+
+/** Tachelhit (Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ)
  * @author Zanatos
  */
 $messages['shi'] = array(
@@ -687,10 +948,12 @@
 );
 
 /** Sinhala (සිංහල)
+ * @author තඹරු විජේසේකර
  * @author නන්දිමිතුරු
  */
 $messages['si'] = array(
 	'languageselector' => 'භාෂාව',
+	'languageselector-setlang' => 'සකසන්න',
 );
 
 /** Slovak (Slovenčina)
@@ -703,19 +966,44 @@
 );
 
 /** Slovenian (Slovenščina)
+ * @author Dbc334
  * @author Smihael
  */
 $messages['sl'] = array(
 	'languageselector' => 'Jezik',
+	'languageselector-desc' => 'Izbirnik jezika na vsaki strani, tudi za obiskovalce',
+	'languageselector-setlang' => 'določi',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Lower Silesian (Schläsch)
+ * @author Jonny84
+ * @author Piotron
+ */
+$messages['sli'] = array(
+	'languageselector' => 'Sproache',
+	'languageselector-desc' => 'Sproachaauswoahl uff jeder Seite, au fier Besucher',
+	'languageselector-setlang' => 'setza',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Sasa Stefanovic
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
 	'languageselector' => 'Језик',
+	'languageselector-desc' => 'Избирач језика на сваком језику, и такође за посетиоце',
+	'languageselector-setlang' => 'постави',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'languageselector' => 'Jezik',
+	'languageselector-desc' => 'Izbirač jezika na svakom jeziku, i takođe za posetioce',
+	'languageselector-setlang' => 'postavi',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
@@ -744,6 +1032,13 @@
 	'languageselector-setlang' => 'välj',
 );
 
+/** Tamil (தமிழ்)
+ * @author Mahir78
+ */
+$messages['ta'] = array(
+	'languageselector' => 'மொழி',
+);
+
 /** Telugu (తెలుగు)
  * @author Veeven
  */
@@ -762,7 +1057,7 @@
 	'languageselector-setlang' => 'hili',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -770,6 +1065,14 @@
 	'languageselector-desc' => 'Забон интихобкунанда дар ҳар саҳифа, барои ташрифоварандагон низ',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'languageselector' => 'Zabon',
+	'languageselector-desc' => 'Zabon intixobkunanda dar har sahifa, baroi taşrifovarandagon niz',
+);
+
 /** Thai (ไทย)
  * @author Passawuth
  */
@@ -777,6 +1080,13 @@
 	'languageselector' => 'ภาษา',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'languageselector' => 'Dil',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -796,7 +1106,15 @@
 	'languageselector-setlang' => 'ayar',
 );
 
-/** Uighur (Latin) (Uyghurche‎ / ئۇيغۇرچە (Latin))
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Ильнар
+ */
+$messages['tt-cyrl'] = array(
+	'languageselector' => 'Тел',
+	'languageselector-setlang' => 'урнаштыру',
+);
+
+/** Uyghur (Latin script) (Uyghurche‎)
  * @author Jose77
  */
 $messages['ug-latn'] = array(
@@ -805,9 +1123,12 @@
 
 /** Ukrainian (Українська)
  * @author AS
+ * @author Prima klasy4na
  */
 $messages['uk'] = array(
 	'languageselector' => 'Мова',
+	'languageselector-desc' => 'Вибір мови на кожній сторінці, а також для відвідувачів',
+	'languageselector-setlang' => 'встановити',
 );
 
 /** Vèneto (Vèneto)
@@ -819,6 +1140,16 @@
 	'languageselector-setlang' => 'selessiona',
 );
 
+/** Veps (Vepsan kel')
+ * @author Triple-ADHD-AS
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'languageselector' => 'Kel’',
+	'languageselector-desc' => 'Kelen valičend kaikuččen lehtpolen täht, mugažo adivoile-ki.',
+	'languageselector-setlang' => 'panda',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  */
@@ -835,7 +1166,14 @@
 	'languageselector' => 'Pük',
 );
 
-/** Yue (粵語)
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'languageselector' => 'שפראַך',
+);
+
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
@@ -844,18 +1182,23 @@
 );
 
 /** Simplified Chinese (‪中文(简体)‬)
+ * @author PhiLiP
  * @author Shinjiman
  */
 $messages['zh-hans'] = array(
 	'languageselector' => '语言',
-	'languageselector-setlang' => '設置',
+	'languageselector-desc' => '在每一页面上添加语言选择项,对匿名访问者亦有效',
+	'languageselector-setlang' => '设置',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Liangent
+ * @author Mark85296341
  * @author Shinjiman
  */
 $messages['zh-hant'] = array(
 	'languageselector' => '語言',
+	'languageselector-desc' => '在每一頁面上加入語言選擇項,對匿名訪問者亦有效',
 	'languageselector-setlang' => '設定',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.js	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,4 +1,4 @@
-addOnloadHook(function() { 
+$( function() {
 	var i = 1;
 	while ( true ) {
 		var btn = document.getElementById("languageselector-commit-"+i);
@@ -21,4 +21,4 @@
 
 		i++;
 	}
-});
\ No newline at end of file
+});

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/LanguageSelector/LanguageSelector.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -9,8 +9,8 @@
  * This can be combined with Polyglot and MultiLang to provide more internationalization support.
  *
  *
- * @package MediaWiki
- * @subpackage Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2007 Daniel Kinzler
  * @licence GNU General Public Licence 2.0 or later
@@ -21,13 +21,11 @@
 	die( 1 );
 }
 
-$wgExtensionCredits['other'][] = array( 
-	'name'           => 'Language Selector', 
-	'author'         => 'Daniel Kinzler', 
+$wgExtensionCredits['other'][] = array(
+	'path'           => __FILE__,
+	'name'           => 'Language Selector',
+	'author'         => 'Daniel Kinzler',
 	'url'            => 'http://mediawiki.org/wiki/Extension:LanguageSelector',
-	'svn-date' => '$LastChangedDate: 2009-03-17 17:30:16 +0100 (Tue, 17 Mar 2009) $',
-	'svn-revision' => '$LastChangedRevision: 48491 $',
-	'description'    => 'language selector on every page, also for visitors',
 	'descriptionmsg' => 'languageselector-desc',
 );
 
@@ -40,17 +38,26 @@
 * Possible values:
 * * LANGUAGE_SELECTOR_USE_CONTENT_LANG - use the $wgLanguageCode setting (default content language)
 * * LANGUAGE_SELECTOR_PREFER_CONTENT_LANG - use the $wgLanguageCode setting, if accepted by the client
-* * LANGUAGE_SELECTOR_USE_CONTENT_LANG - use the client's preferred language, if in $wgLanguageSelectorLanguages
+* * LANGUAGE_SELECTOR_PREFER_CLIENT_LANG - use the client's preferred language, if in $wgLanguageSelectorLanguages
 */
-$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_PREFER_CLIENT_LANG; 
+$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_PREFER_CLIENT_LANG;
 
 /**
 * Languages to offer in the language selector. Per default, this includes all languages MediaWiki knows
-* about by virtue of $wgLanguageNames. A shorter list may be more usable, though.
-* If the Polyglot extension is installed, $wgPolyglotLanguages is used as fallback.
+* about by virtue of languages/Names.php. A shorter list may be more usable, though.
 */
-$wgLanguageSelectorLanguages = NULL;
+$wgLanguageSelectorLanguages = null;
 
+/**
+* Determine if language codes are shown in the selector, in addition to names;
+*/
+$wgLanguageSelectorShowCode = false;
+
+/**
+ * Show all languages defined, not only those with a language file (Language::getLanguageNames( <true/false> ))
+ */
+$wgLanguageSelectorShowAll = false;
+
 define( 'LANGUAGE_SELECTOR_MANUAL',    0 ); #don't place anywhere
 define( 'LANGUAGE_SELECTOR_AT_TOP_OF_TEXT', 1 ); #put at the top of page content
 define( 'LANGUAGE_SELECTOR_IN_TOOLBOX',  2 ); #put into toolbox
@@ -63,186 +70,247 @@
 $wgLanguageSelectorLocation = LANGUAGE_SELECTOR_AT_TOP_OF_TEXT;
 
 ///// hook it up /////////////////////////////////////////////////////
-$wgHooks['AbortNewAccount'][] = 'wfLanguageSelectorAbortNewAccount'; //abuse hook to inject default language option //FIXME: doesn't quite work it seems :(
+$wgHooks['AddNewAccount'][] = 'wfLanguageSelectorAddNewAccount';
+$wgHooks['BeforePageDisplay'][] = 'wfLanguageSelectorBeforePageDisplay';
+$wgHooks['GetCacheVaryCookies'][] = 'wfLanguageSelectorGetCacheVaryCookies';
+$wgHooks['ParserFirstCallInit'][] = 'wfLanguageSelectorSetHook';
+$wgHooks['UserGetLanguageObject'][] = 'wfLanguageSelectorGetLanguageCode';
 
-$wgExtensionFunctions[] = "wfLanguageSelectorExtension";
+$wgExtensionFunctions[] = 'wfLanguageSelectorExtension';
 
-$wgLanguageSelectorRequestedLanguage = NULL;
+$wgParserOutputHooks['languageselector'] = 'wfLanguageSelectorAddJavascript';
 
+$wgResourceModules['ext.languageSelector'] = array(
+	'scripts' => 'LanguageSelector.js',
+	'localBasePath' => dirname( __FILE__ ),
+	'remoteExtPath' => 'LanguageSelector'
+);
 
 $dir = dirname(__FILE__) . '/';
 $wgExtensionMessagesFiles['LanguageSelector'] = $dir . 'LanguageSelector.i18n.php';
+$wgJSAutoloadClasses['LanguageSelector'] = 'extensions/LanguageSelector/LanguageSelector.js';
 
-function wgLanguageSelectorSetHook() {
-	global $wgParser;
-	$wgParser->setHook( 'languageselector', 'wfLanguageSelectorTag' );
+/**
+ * @param  $parser Parser
+ * @return bool
+ */
+function wfLanguageSelectorSetHook( $parser ) {
+	$parser->setHook( 'languageselector', 'wfLanguageSelectorTag' );
 	return true;
 }
 
 function wfLanguageSelectorExtension() {
-	wfLoadExtensionMessages( 'LanguageSelector' );
-	global $wgLanguageSelectorLanguages, $wgLanguageSelectorDetectLanguage, $wgLanguageSelectorRequestedLanguage, $wgLanguageSelectorLocation;
-	global $wgUser, $wgLang, $wgRequest, $wgCookiePrefix, $wgCookiePath, $wgOut, $wgJsMimeType, $wgHooks;
+	global $wgLanguageSelectorLocation,
+		$wgLanguageSelectorShowAll, $wgHooks;
 
-	if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-		$wgHooks['ParserFirstCallInit'][] = 'wgLanguageSelectorSetHook';
-	} else {
-		wgLanguageSelectorSetHook();
+	// We'll probably be beaten to this by the call in wfLanguageSelectorGetLanguageCode(),
+	// but just in case, call this to make sure the global is properly initialised
+	wfGetLanguageSelectorLanguages();
+
+	if ( $wgLanguageSelectorLocation != LANGUAGE_SELECTOR_MANUAL && $wgLanguageSelectorLocation != LANGUAGE_SELECTOR_AT_TOP_OF_TEXT ) {
+		switch ( $wgLanguageSelectorLocation ) {
+			case LANGUAGE_SELECTOR_IN_TOOLBOX:
+				$wgHooks['SkinTemplateToolboxEnd'][] = 'wfLanguageSelectorSkinHook';
+				break;
+			default:
+				$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'wfLanguageSelectorSkinTemplateOutputPageBeforeExec';
+				break;
+		}
 	}
+}
 
-	if ( $wgLanguageSelectorLanguages === NULL ) {
-		$wgLanguageSelectorLanguages = @$GLOBALS['wgPolyglotLanguages'];
+function wfGetLanguageSelectorLanguages(){
+	global $wgLanguageSelectorLanguages, $wgLanguageSelectorShowAll;
+	if ( $wgLanguageSelectorLanguages === null ) {
+		$wgLanguageSelectorLanguages = array_keys( Language::getLanguageNames( !$wgLanguageSelectorShowAll ) );
+		sort( $wgLanguageSelectorLanguages );
 	}
-	
-	if ( $wgLanguageSelectorLanguages === NULL ) {
-		$wgLanguageSelectorLanguages = array_keys( Language::getLanguageNames( true ) );
+	return $wgLanguageSelectorLanguages;
+}
+
+/**
+ * Hook to UserGetLanguageObject
+ * @param  $user User
+ * @param  $code String
+ * @return bool
+ */
+function wfLanguageSelectorGetLanguageCode( $user, &$code ) {
+	global $wgLanguageSelectorDetectLanguage,
+		$wgCommandLineMode, $wgRequest, $wgContLang;
+
+	if ( $wgCommandLineMode ) {
+		return true;
 	}
 
 	$setlang = $wgRequest->getVal( 'setlang' );
-	if ( $setlang && !in_array( $setlang, $wgLanguageSelectorLanguages ) )
-		$setlang = NULL; //ignore invalid
+	if ( $setlang && !in_array( $setlang, wfGetLanguageSelectorLanguages() ) ) {
+		$setlang = null; // ignore invalid
+	}
 
 	if ( $setlang ) {
-		setcookie( $wgCookiePrefix . 'LanguageSelectorLanguage', $setlang, 0, $wgCookiePath );
-		$wgLanguageSelectorRequestedLanguage = $setlang;
+		$wgRequest->response()->setcookie( 'LanguageSelectorLanguage', $setlang );
+		$requestedLanguage = $setlang;
 	} else {
-		$wgLanguageSelectorRequestedLanguage = @$_COOKIE[$wgCookiePrefix.'LanguageSelectorLanguage'];
+		$requestedLanguage = $wgRequest->getCookie( 'LanguageSelectorLanguage' );
 	}
 
-	if ( !$wgUser->isAnon() && $setlang ) {
-		if ( $setlang != $wgUser->getOption( 'language' ) ) {
-			$wgUser->setOption( 'language', $wgLanguageSelectorRequestedLanguage );
-			$wgUser->saveSettings();
-			// Reset $wgLang so that user's language is immediately changed
-			$wgLang = new StubUserLang;
+	if ( $setlang && !$user->isAnon() ) {
+		if ( $setlang != $user->getOption( 'language' ) ) {
+			$user->setOption( 'language', $requestedLanguage );
+			$user->saveSettings();
+			$code = $requestedLanguage;
 		}
 	}
 
-	if ( $wgUser->isAnon() && !$wgRequest->getVal( 'uselang' ) ) {
+	if ( !$wgRequest->getVal( 'uselang' ) && $user->isAnon() ) {
+		if ( $wgLanguageSelectorDetectLanguage != LANGUAGE_SELECTOR_USE_CONTENT_LANG ) {
+			if ( $requestedLanguage ) {
+				$code = $requestedLanguage;
+			} else {
+				$languages = $wgRequest->getAcceptLang();
 
-		//NOTE: we need this for anons, so squids don't get confused.
-		//      but something is still wrong with caching...
-		header( 'Vary: Cookie', false ); //hrm, this is pretty BAD.
-		header( 'Vary: Accept-Language', false );
-		 
-		if ( $wgLanguageSelectorRequestedLanguage || $wgLanguageSelectorDetectLanguage != LANGUAGE_SELECTOR_USE_CONTENT_LANG ) {
+				// see if the content language is accepted by the client.
+				if ( $wgLanguageSelectorDetectLanguage != LANGUAGE_SELECTOR_PREFER_CONTENT_LANG
+					|| !array_key_exists( $wgContLang->getCode(), $languages ) )
+				{
 
-			if ( !class_exists( 'StubAutoLang' ) ) {
-				class StubAutoLang extends StubObject {
-					function __construct() {
-						parent::__construct( 'wgLang' );
+					$supported = wfGetLanguageSelectorLanguages();
+					// look for a language that is acceptable to the client
+					// and known to the wiki.
+					foreach( $languages as $reqCode => $q ) {
+						if ( in_array( $reqCode, $supported ) ) {
+							$code = $reqCode;
+							break;
+						}
 					}
-				
-					function __call( $name, $args ) {
-						return $this->_call( $name, $args );
-					}
-				
-					//partially copied from StubObject.php. There should be a better way...
-					function _newObject() {
-						global $wgContLanguageCode, $wgContLang, $wgLanguageSelectorDetectLanguage, $wgLanguageSelectorRequestedLanguage;
-	
-						$code = $wgLanguageSelectorRequestedLanguage;
-						if (!$code) $code = wfLanguageSelectorDetectLanguage( $wgLanguageSelectorDetectLanguage );
-				
-						if( $code == $wgContLanguageCode ) {
-							return $wgContLang;
-						} else {
-							$obj = Language::factory( $code );
-							return $obj;
+
+					// Apparently Safari sends stupid things like "de-de" only.
+					// Try again with stripped codes.
+					foreach( $languages as $reqCode => $q ) {
+						$stupidPHP = explode( '-', $reqCode, 2 );
+						$bareCode = array_shift( $stupidPHP );
+						if ( in_array( $bareCode, $supported ) ) {
+							$code = $bareCode;
+							break;
 						}
 					}
 				}
 			}
-	
-			$wgLang = new StubAutoLang;
 		}
 	}
 
-	if ( $wgLanguageSelectorLocation != LANGUAGE_SELECTOR_MANUAL ) {
-		switch($wgLanguageSelectorLocation) {
-			case LANGUAGE_SELECTOR_AT_TOP_OF_TEXT: $wgHooks['BeforePageDisplay'][] = 'wfLanguageSelectorBeforePageDisplay'; break;
-			case LANGUAGE_SELECTOR_IN_TOOLBOX: $wgHooks['MonoBookTemplateToolboxEnd'][] = 'wfLanguageSelectorSkinHook'; break;
-			default:
-				$wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'wfLanguageSelectorSkinTemplateOutputPageBeforeExec'; break;
-		}
+	return true;
+}
+
+/**
+ * @param  $out OutputPage
+ * @return bool
+ */
+function wfLanguageSelectorBeforePageDisplay( &$out ) {
+	global $wgLanguageSelectorLocation;
+
+	if ( $wgLanguageSelectorLocation == LANGUAGE_SELECTOR_MANUAL ) {
+		return true;
 	}
 
-	$wgOut->addScript('<script type="'.$wgJsMimeType.'">
-		addOnloadHook(function() { 
-			var i = 1;
-			while ( true ) {
-				var btn = document.getElementById("languageselector-commit-"+i);
-				var sel = document.getElementById("languageselector-select-"+i);
-				var idx = i;
+	if ( $wgLanguageSelectorLocation == LANGUAGE_SELECTOR_AT_TOP_OF_TEXT ) {
+		$html = wfLanguageSelectorHTML( $out->getTitle() );
+		$out->mBodytext = $html . $out->mBodytext;
+	}
 
-				if (!btn) break;
+	$out->addModules( 'ext.languageSelector' );
 
-				btn.style.display = "none";
-				sel.onchange = function() {
-					node = this.parentNode;
-					while( true ) {
-						if( node.tagName.toLowerCase() == "form" ) {
-							node.submit();
-							break;
-						}
-						node = node.parentNode;
-					}
-				};
-
-				i++;
-			}
-		});
-	</script>');
+	return true;
 }
 
-function wfLanguageSelectorBeforePageDisplay( &$out ) {
-	$html = wfLanguageSelectorHTML();
-	$out->mBodytext = $html . $out->mBodytext;
+function wfLanguageSelectorGetCacheVaryCookies( $out, &$cookies ) {
+	global $wgCookiePrefix;
+	$cookies[] = $wgCookiePrefix.'LanguageSelectorLanguage';
 	return true;
 }
 
-function wfLanguageSelectorSkinHook( &$out ) {
-	$html = wfLanguageSelectorHTML();
+/**
+ * @param $skin Skin
+ * @return bool
+ */
+function wfLanguageSelectorSkinHook( &$skin ) {
+	$html = wfLanguageSelectorHTML( $skin->getTitle() );
 	print $html;
 	return true;
 }
 
-function wfLanguageSelectorTag($input, $args) {
+/**
+ * @param  $input String
+ * @param  $args Array
+ * @param  $parser Parser
+ * @return string
+ */
+function wfLanguageSelectorTag( $input, $args, $parser ) {
 	$style = @$args['style'];
 	$class = @$args['class'];
 	$selectorstyle = @$args['selectorstyle'];
 	$buttonstyle = @$args['buttonstyle'];
+	$showcode = @$args['showcode'];
 
-	if ($style) $style = htmlspecialchars($style);
-	if ($class) $class = htmlspecialchars($class);
-	if ($selectorstyle) $selectorstyle = htmlspecialchars($selectorstyle);
-	if ($buttonstyle) $buttonstyle = htmlspecialchars($buttonstyle);
+	if ( $style ) {
+		$style = htmlspecialchars( $style );
+	}
+	if ( $class ) {
+		$class = htmlspecialchars( $class );
+	}
+	if ( $selectorstyle ) {
+		$selectorstyle = htmlspecialchars( $selectorstyle );
+	}
+	if ( $buttonstyle ) {
+		$buttonstyle = htmlspecialchars( $buttonstyle );
+	}
 
-	return wfLanguageSelectorHTML( $style, $class, $selectorstyle, $buttonstyle );
+	if ( $showcode ) {
+		$showcode = strtolower( $showcode );
+		if ( $showcode == "true" || $showcode == "yes" || $showcode == "on" ) {
+			$showcode = true;
+		} elseif ( $showcode == "false" || $showcode == "no" || $showcode == "off" ) {
+			$showcode = false;
+		} else {
+			$showcode = null;
+		}
+	} else {
+		$showcode = null;
+	}
+
+	# So that this also works with parser cache
+	$parser->getOutput()->addOutputHook( 'languageselector' );
+
+	return wfLanguageSelectorHTML( $parser->getTitle(), $style, $class, $selectorstyle, $buttonstyle, $showcode );
 }
 
+/**
+ * @param  $skin Skin
+ * @param  $tpl QuickTemplate
+ * @return bool
+ */
 function wfLanguageSelectorSkinTemplateOutputPageBeforeExec( &$skin, &$tpl ) {
-	global $wgLanguageSelectorLocation, $wgLanguageSelectorLanguages;
-	global $wgLang, $wgContLang, $wgTitle;
+	global $wgLanguageSelectorLocation;
+	global $wgLang, $wgContLang;
 
 	if ($wgLanguageSelectorLocation == LANGUAGE_SELECTOR_AS_PORTLET) {
 		$code = $wgLang->getCode();
 		$lines = array();
-		foreach ($wgLanguageSelectorLanguages as $ln) {
+		foreach ( wfGetLanguageSelectorLanguages() as $ln ) {
 			$lines[] = array(
-				$href = $wgTitle->getFullURL( 'setlang=' . $ln ),
+				$href = $skin->getTitle()->getFullURL( 'setlang=' . $ln ),
 				'text' => $wgContLang->getLanguageName($ln),
 				'href' => $href,
 				'id' => 'n-languageselector',
 				'active' => ($ln == $code),
 			);
 		}
-		
+
 		$tpl->data['sidebar']['languageselector'] = $lines;
 		return true;
 	}
 
-	$key = NULL;
+	$key = null;
 
 	switch($wgLanguageSelectorLocation) {
 		case LANGUAGE_SELECTOR_INTO_SITENOTICE: $key = 'sitenotice'; break;
@@ -250,121 +318,88 @@
 		case LANGUAGE_SELECTOR_INTO_SUBTITLE: $key = 'subtitle'; break;
 		case LANGUAGE_SELECTOR_INTO_CATLINKS: $key = 'catlinks'; break;
 	}
-	
+
 	if ($key) {
-		$html = wfLanguageSelectorHTML();
+		$html = wfLanguageSelectorHTML( $skin->getTitle() );
 		$tpl->set( $key, $tpl->data[ $key ] . $html );
 	}
 
 	return true;
 }
 
-function wfLanguageSelectorDetectLanguage( $mode ) {
-	global $wgContLang, $wgLanguageSelectorLanguages;
+/**
+ * @param  $u User
+ * @return bool
+ */
+function wfLanguageSelectorAddNewAccount( $u ) {
+	global $wgUser, $wgLang;
 
-	$contLang = $wgContLang->getCode();
-
-	if ( !$mode || $mode == LANGUAGE_SELECTOR_USE_CONTENT_LANG ) {
-		return $contLang;
+	//inherit language;
+	//if $wgUser is the created user this means remembering what the user selected
+	//otherwise, it would mean inheriting the language from the user creating the account.
+	if ( $wgUser === $u ) {
+		$u->setOption( 'language', $wgLang->getCode() );
+		$u->saveSettings();
 	}
 
-	/**
-	* get accepted languages from Accept-Languages
-	* HTTP header.
-	*/
-	$accept = @$_SERVER["HTTP_ACCEPT_LANGUAGE"];
+	return true;
+}
 
-	if ( empty( $accept ) )
-		return $contLang;
-	
-	$accept = explode( ',', $accept );
-	
-	/**
-	* normalize accepted languages
-	*/
-	$languages = array();
-	foreach ( $accept as $lan ) {
-		@list( $value, $qpart ) = explode( ';', trim( $lan ) );
-		$match = array();
-		if( !isset( $qpart ) ) {
-			$languages[$value] = 1.0;
-		} elseif( preg_match( '/q\s*=\s*(\d*\.\d+)/', $qpart, $match ) ) {
-			$languages[$value] = floatval( $match[1] );
-		}
-	}
-
-	/**
-	* see if the content language is accepted by the 
-	* client.
-	*/
-	if ( $mode == LANGUAGE_SELECTOR_PREFER_CONTENT_LANG && array_key_exists( $contLang, $languages ) ) {
-		return $contLang;
-	}
-	
-	arsort( $languages, SORT_NUMERIC );
-
-	/**
-	* look for a language that is acceptable to the client
-	* and known to the wiki.
-	*/
-	foreach( $languages as $code => $q ) {
-		/**
-		* TODO: only accept languages for which an implementation exists.
-		*       this is disabled, because it's slow. Note that this code is
-		*       executed for every page request!
-		*/
-		/*
-		global $IP;
-		$langfile="$IP/languages/Language".str_replace('-', '_', ucfirst($code)).".php";
-		if(!file_exists($langfile)) {
-			continue;
-		}
-		*/
-		
-		if ( in_array( $code, $wgLanguageSelectorLanguages ) ) {
-			return $code;
-		}
-	}
-		
-	return $contLang;
+/**
+ * @param  $outputPage OutputPage
+ * @param  $parserOutput ParserOutput
+ * @param  $data
+ * @return void
+ */
+function wfLanguageSelectorAddJavascript( $outputPage, $parserOutput, $data ) {
+	$outputPage->addModules( 'ext.languageSelector' );
 }
 
-function wfLanguageSelectorAbortNewAccount( &$u ) { //FIXME: doesn't quite work it seems :(
-	global $wgUser;
+function wfLanguageSelectorHTML( Title $title, $style = null, $class = null, $selectorstyle = null, $buttonstyle = null, $showCode = null ) {
+	global $wgLang, $wgContLang, $wgScript,
+		$wgLanguageSelectorShowCode;
 
-	//inherit language;
-	//if $wgUser->isAnon, this means remembering what the user selected
-	//otherwise, it would mean inheriting the language from the user creating the account.
-	if ($wgUser->isAnon()) {
-		$u->setOption('language', $wgUser->getOption('language')); 
+	if ( $showCode === null ) {
+		$showCode = $wgLanguageSelectorShowCode;
 	}
 
-	return true;
-}
-
-function wfLanguageSelectorHTML( $style = NULL, $class = NULL, $selectorstyle = NULL, $buttonstyle = NULL ) {
-	global $wgLanguageSelectorLanguages, $wgTitle, $wgLang, $wgContLang, $wgScript;
-
 	static $id = 0;
 	$id += 1;
 
 	$code = $wgLang->getCode();
 
 	$html = '';
-	$html .= Xml::openElement('span', array('id' => 'languageselector-box-'.$id, 'class' => 'languageselector ' . $class, 'style' => $style ));
-	$html .= Xml::openElement('form', array('name' => 'languageselector-form-'.$id, 'id' => 'languageselector-form-'.$id, 'method' => 'get', 'action' => $wgScript, 'style' => 'display:inline;'));
-	$html .= Xml::hidden( 'title', $wgTitle->getPrefixedDBKey() );
-	$html .= Xml::openElement('select', array('name' => 'setlang', 'id' => 'languageselector-select-'.$id, 'style' => $selectorstyle));
+	$html .= Xml::openElement( 'span', array(
+		'id' => 'languageselector-box-' . $id,
+		'class' => 'languageselector ' . $class,
+		'style' => $style
+	) );
+	$html .= Xml::openElement( 'form', array(
+		'name' => 'languageselector-form-'.$id,
+		'id' => 'languageselector-form-' . $id,
+		'method' => 'get',
+		'action' => $wgScript,
+		'style' => 'display:inline;'
+	) );
+	$html .= Html::Hidden( 'title', $title->getPrefixedDBKey() );
+	$html .= Xml::openElement('select', array(
+		'name' => 'setlang',
+		'id' => 'languageselector-select-' . $id,
+		'style' => $selectorstyle
+	) );
 
-	foreach ($wgLanguageSelectorLanguages as $ln) {
-		$html .= Xml::option($wgContLang->getLanguageName($ln), $ln, $ln == $code);
+	foreach ( wfGetLanguageSelectorLanguages() as $ln ) {
+		$name = $wgContLang->getLanguageName( $ln );
+		if ( $showCode ) $name = wfBCP47( $ln ) . ' - ' . $name;
+
+		$html .= Xml::option( $name, $ln, $ln == $code );
 	}
 
-	$html .= Xml::closeElement('select');
-	$html .= Xml::submitButton(wfMsg('languageselector-setlang'), array( 'id' => 'languageselector-commit-'.$id, 'style' => $buttonstyle ));
-	$html .= Xml::closeElement('form');
-	$html .= Xml::closeElement('span');
+	$html .= Xml::closeElement( 'select' );
+	$html .= Xml::submitButton( wfMsg( 'languageselector-setlang' ),
+		array( 'id' => 'languageselector-commit-' . $id, 'style' => $buttonstyle ) );
+	$html .= Xml::closeElement( 'form' );
+	$html .= Xml::closeElement( 'span' );
 
 	return $html;
 }
-

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.class.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -3,12 +3,11 @@
 /**
  * Extension to provide customisable email notification of new user creation
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Rob Church <robchur at gmail.com>
  */
 
-require_once( 'UserMailer.php' );
-
 class NewUserNotifier {
 
 	private $sender;
@@ -29,7 +28,6 @@
 	 */
 	public function execute( $user ) {
 		$this->user = $user;
-		wfLoadExtensionMessages( 'NewUserNotifier' );
 		$this->sendExternalMails();
 		$this->sendInternalMails();
 	}
@@ -40,10 +38,10 @@
 	private function sendExternalMails() {
 		global $wgNewUserNotifEmailTargets, $wgSitename;
 		foreach( $wgNewUserNotifEmailTargets as $target ) {
-			userMailer(
+			UserMailer::send(
 				new MailAddress( $target ),
 				new MailAddress( $this->sender ),
-				wfMsgForContent( 'newusernotifsubj', $wgSitename ),
+				$this->makeSubject( $target, $this->user ),
 				$this->makeMessage( $target, $this->user )
 			);
 		}
@@ -58,7 +56,7 @@
 			$user = $this->makeUser( $userSpec );
 			if( $user instanceof User && $user->isEmailConfirmed() ) {
 				$user->sendMail(
-					wfMsgForContent( 'newusernotifsubj', $wgSitename ),
+					$this->makeSubject( $user->getName(), $this->user ),
 					$this->makeMessage( $user->getName(), $this->user ),
 					$this->sender
 				);
@@ -81,22 +79,41 @@
 	}
 
 	/**
-	 * Build a notification email
+	 * Build a notification email subject line
 	 *
 	 * @param string $recipient Name of the recipient
 	 * @param User $user User that was created
 	 */
+	private function makeSubject( $recipient, $user ) {
+		global $wgSitename;
+		$subjectLine = "";
+		wfRunHooks( 'NewUserNotifSubject', array( &$this, &$subjectLine, $wgSitename, $recipient, $user ) );
+		if (!strlen($subjectLine) )
+			return wfMsgForContent( 'newusernotifsubj', $wgSitename );
+		return $subjectLine;
+	}
+
+	/**
+	 * Build a notification email message body
+	 *
+	 * @param string $recipient Name of the recipient
+	 * @param User $user User that was created
+	 */
 	private function makeMessage( $recipient, $user ) {
 		global $wgSitename, $wgContLang;
-		return wfMsgForContent(
-			'newusernotifbody',
-			$recipient,
-			$user->getName(),
-			$wgSitename,
-			$wgContLang->timeAndDate( wfTimestampNow() ),
-			$wgContLang->date( wfTimestampNow() ),
-			$wgContLang->time( wfTimestampNow() )
-		);
+		$messageBody = "";
+		wfRunHooks( 'NewUserNotifBody', array( &$this, &$messageBody, $wgSitename, $recipient, $user ) );
+		if (!strlen($messageBody) )
+			return wfMsgForContent(
+				'newusernotifbody',
+				$recipient,
+				$user->getName(),
+				$wgSitename,
+				$wgContLang->timeAndDate( wfTimestampNow() ),
+				$wgContLang->date( wfTimestampNow() ),
+				$wgContLang->time( wfTimestampNow() )
+			);
+		return $messageBody;
 	}
 
 	/**

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,7 +1,9 @@
 <?php
 /**
  * Internationalisation file for the extension New User Email Notification
- * @addtogroup Extensions
+ *
+ * @file
+ * @ingroup Extensions
  * @author Rob Church <robchur at gmail.com>
  */
 
@@ -21,11 +23,12 @@
 /** Message documentation (Message documentation)
  * @author Purodha
  * @author Siebrand
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
 	'newusernotifsubj' => 'This message contains the subject line for the email.
 $1 is replaced with the wiki site name.',
-	'newusernotif-desc' => 'Shown in [[Special:Version]] as a short description of this extension. Do not translate links.',
+	'newusernotif-desc' => '{{desc}}',
 	'newusernotifbody' => "This file contains the body text for the e-mail.
 * $1 is replaced with the username of the recipient;
 * $2 is replaced with the username of the new user account;
@@ -35,7 +38,7 @@
 * $6 (optional) is replaced with the time of the account's creation.",
 );
 
-/** Old English (Anglo-Saxon)
+/** Old English (Ænglisc)
  * @author Wōdenhelm
  */
 $messages['ang'] = array(
@@ -67,6 +70,17 @@
 حساب يوزر  جديد، $2، إتفتح على $3 فى $4.',
 );
 
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'newusernotifsubj' => 'Avisu de nuevu usuariu pa $1',
+	'newusernotif-desc' => "Unvia un avisu per corréu electrónicu cuando se creen cuentes d'usuariu",
+	'newusernotifbody' => "Hola $1:
+
+Se creó una nueva cuenta d'usuariu, $2, en $3 el $5 a les $6.",
+);
+
 /** Kotava (Kotava)
  * @author Wikimistusik
  */
@@ -77,7 +91,28 @@
 $2 warzafa favesikpata su zo redur koe $3 ko $4.',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'newusernotifsubj' => 'Яңы $1 ҡатнашыусыһы тураһында белдереү',
+	'newusernotif-desc' => 'Яңы иҫәп яҙмалары булдырылған ваҡытта электрон почта аша белдереү ебәрә',
+	'newusernotifbody' => 'Сәләм, $1.
+
+$3 проектында $4 яңы иҫәп яҙмаһы, $2, булдырылды.',
+);
+
+/** Bavarian (Boarisch)
+ * @author Man77
+ */
+$messages['bar'] = array(
+	'newusernotif-desc' => 'Vasendt E-Post-Benåchrichtigungen, wãun a neichs Benutzakonto ãnglegt wiad',
+	'newusernotifbody' => 'Seavas $1!
+
+Am $5 is um $6 auf $3 a neichs Benutzakonto ãnglegt woan: $2.',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  */
@@ -100,6 +135,17 @@
 В $3 беше регистрирана нова потребителска сметка, $2, на $4.',
 );
 
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'newusernotifsubj' => 'Kemenn un implijer nevez evit $1',
+	'newusernotif-desc' => "Kas ur c'hemenn dre bostel pa vez krouet kontoù implijer",
+	'newusernotifbody' => 'Salud $1,
+
+Ur gont implijer nevez, $2, zo bet krouet war $3 da $4.',
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
@@ -145,6 +191,18 @@
 Konto nowego wužywarja, $2, jo se załožyło $4 na $3 .',
 );
 
+/** Greek (Ελληνικά)
+ * @author Omnipaedista
+ * @author ZaDiak
+ */
+$messages['el'] = array(
+	'newusernotifsubj' => 'Νέα ειδοποίηση χρήστη για τον $1',
+	'newusernotif-desc' => 'Αποστέλλει ειδοποίηση μέσω e-mail όταν δημιουργούνται λογαριασμοί χρηστών',
+	'newusernotifbody' => 'Γεια $1,
+
+Ένας νέος λογαριασμός, $2, δημιουργήθηκε στο $3 στις $4.',
+);
+
 /** Esperanto (Esperanto)
  * @author Yekrats
  */
@@ -166,6 +224,18 @@
 Ha sido creada una nueva cuenta de usuario, $2, en $3 a las $4',
 );
 
+/** Estonian (Eesti)
+ * @author Avjoska
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'newusernotifbody' => 'Tere, $1!
+
+Võrgukohas $3 loodi uus kasutajakonto $2.
+
+Konto loomise aeg: $4',
+);
+
 /** Finnish (Suomi)
  * @author Jaakonam
  * @author Nike
@@ -189,6 +259,13 @@
 Un nouveau compte utilisateur, $2, a été créé sur $3 le $4.',
 );
 
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'newusernotifsubj' => 'Notificacion a un novél usanciér por $1',
+);
+
 /** Irish (Gaeilge)
  * @author Alison
  */
@@ -205,9 +282,9 @@
 $messages['gl'] = array(
 	'newusernotifsubj' => 'Notificación de novo usuario para $1',
 	'newusernotif-desc' => 'Envía unha notificación por correo electrónico cando se crean contas de usuario',
-	'newusernotifbody' => 'Ola $1,
+	'newusernotifbody' => 'Ola $1:
 
-Unha nova conta de usuario, $2, foi creada sobre $3 en $4.',
+Creouse unha nova conta de usuario, chamada $2, en $3 o $5 ás $6.',
 );
 
 /** Swiss German (Alemannisch)
@@ -288,6 +365,17 @@
 Un nove conto de usator, $2, ha essite create in $3 le $4.',
 );
 
+/** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ */
+$messages['id'] = array(
+	'newusernotifsubj' => 'Pemberitahuan pengguna baru untuk $1',
+	'newusernotif-desc' => 'Mengirimkan pemberitahuan lewat surel pada saat akun pengguna dibuat',
+	'newusernotifbody' => 'Halo $1,
+
+Sebuah akun pengguna baru, $2, telah dibuat di $3 pada $4.',
+);
+
 /** Italian (Italiano)
  * @author Darth Kule
  */
@@ -333,11 +421,11 @@
 គណនី​របស់​អ្នកប្រើប្រាស់ថ្មី, $2, បានត្រូវបង្កើត លើ $3 នៅ $4 ហើយ ។',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
-	'newusernotifsubj' => 'Nohresch övver Ding neu Aanmeldung op $1',
+	'newusernotifsubj' => 'Nohreesch övver Ding neu Aanmeldung op $1',
 	'newusernotif-desc' => 'Scheck en <i lang="en">e-mail</i> eruß, wann en neu Aanmeldung för ene neue Metmaacher kütt.',
 	'newusernotifbody' => 'Jooden Daach $1,
 
@@ -345,26 +433,48 @@
 es aam $5 öm $6 Uhr en de $3 neu aanjemeldt woode.',
 );
 
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'newusernotifbody' => 'Silav $1,
+
+Hesabekî nû, $2, li ser $3 di $4 de çêbû.',
+);
+
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
-	'newusernotifsubj' => 'Informatioun iwwer e neie Benotzer op $1',
+	'newusernotifsubj' => 'Informatioun iwwer en neie Benotzer op $1',
 	'newusernotif-desc' => 'Schéckt eng Informatioun per e-Mail wann e neie Benotzerkont opgemaach gëtt',
 	'newusernotifbody' => 'Bonjour $1,
 
-E neie Benotzerkont, $2, gouf op $3 de(n) $4 opgemaach.',
+En neie Benotzerkont, $2, gouf op $3 de(n) $4 opgemaach.',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'newusernotifsubj' => 'Известување за нов корисник на $1',
+	'newusernotif-desc' => 'Испраќа известувања по е-пошта при создавање на кориснички сметки',
+	'newusernotifbody' => 'Здраво $1,
+
+На $3 е создадена е нова корисничка сметка по име $2 во $4.',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
 	'newusernotifsubj' => '$1 സം‌രംഭത്തിനു വേണ്ടിയുള്ള ഉപയോക്തൃഅറിയിപ്പ് സംവിധാനം.',
-	'newusernotif-desc' => 'ഉപഭോക്തൃഅക്കൗണ്ടുകള്‍ ഉണ്ടാക്കി കഴിയുമ്പോള്‍ ഇമെയില്‍ വിജ്ഞാപനം അയക്കുന്നു',
+	'newusernotif-desc' => 'ഉപയോക്തൃ അംഗത്വങ്ങൾ ഉണ്ടാക്കി കഴിയുമ്പോൾ ഇമെയിൽ വിജ്ഞാപനം അയക്കുന്നു',
 	'newusernotifbody' => 'പ്രിയ $1,
 
-$2 എന്ന ഒരു പുതിയ ഉപയോക്തൃഅക്കൗണ്ട്, $3 സം‌രംഭത്തില്‍ $4നു  സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു.',
+$2 എന്ന ഒരു പുതിയ ഉപയോക്തൃഅംഗത്വം, $3 സം‌രംഭത്തിൽ $4നു  സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു.',
 );
 
 /** Marathi (मराठी)
@@ -378,6 +488,17 @@
 $3 वर एक नवीन सदस्य नोंदणी, $2, $4 ला झालेली आहे.',
 );
 
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ */
+$messages['ms'] = array(
+	'newusernotifsubj' => 'Pemberitahuan pengguna baru untuk $1',
+	'newusernotif-desc' => 'Menghantar e-mel pemberitahuan apabila akaun pengguna dibuka',
+	'newusernotifbody' => 'Apa khabar $1,
+
+Satu akaun pengguna baru, $2, telah dibuka di $3 pada $4.',
+);
+
 /** Nahuatl (Nāhuatl)
  * @author Fluence
  */
@@ -413,7 +534,7 @@
 /** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
  * @author Jon Harald Søby
  */
-$messages['no'] = array(
+$messages['nb'] = array(
 	'newusernotifsubj' => 'Beskjed om ny bruker for $1',
 	'newusernotif-desc' => 'Sender beskjed på e-post når kontoer opprettes',
 	'newusernotifbody' => 'Hei, $1. En ny brukerkonto, $2, ble opprettet på $3 $4.',
@@ -428,19 +549,32 @@
 	'newusernotifbody' => "Adissiatz $1, Un compte novèl d'utilizaire, $2, es estat creat sus $3 lo $4.",
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'newusernotifbody' => 'Haiya $1,
+
+uff $3 iss am $5, $6 Uhr en neier Yuuser, $2, komme.',
+);
+
 /** Polish (Polski)
  * @author Derbeth
+ * @author Sp5uhe
  */
 $messages['pl'] = array(
 	'newusernotifsubj' => 'Powiadamianie użytkownika $1 o nowych użytkownikach',
+	'newusernotif-desc' => 'Wysyła powiadomienie e–mail o utworzeniu nowego konta użytkownika',
 	'newusernotifbody' => 'Witaj $1, nowe konto użytkownika, $2, zostało stworzone w dniu $3 o $4.',
 );
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
 	'newusernotifsubj' => "Notìfica d'utent neuv për $1",
+	'newusernotif-desc' => "A manda n'e-mail ëd notìfica quand che ij cont utent a son creà",
 	'newusernotifbody' => "Bondì $1, un neuv utent, $2, a l'é stait creà ansima a $3 dël $4.",
 );
 
@@ -448,18 +582,19 @@
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
-	'newusernotifsubj' => 'د $1 لپاره د نوي کارونکي يادونه',
+	'newusernotifsubj' => 'د $1 لپاره د نوي کارن يادونه',
 	'newusernotifbody' => '$1، سلامونه!
 
-د $2 په نوم يو نوی کارن-حساب په $4 نېټه $3 کې جوړ شوی.',
+د $2 په نوم يو نوی ګڼون په $4 نېټه $3 کې جوړ شوی.',
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
 	'newusernotifsubj' => 'Nova Notificação de Utilizador para $1',
-	'newusernotif-desc' => 'Envia uma notificação por e-mail quando uma conta de utilizador é criada',
+	'newusernotif-desc' => 'Envia notificações por correio electrónico quando são criadas contas de utilizador',
 	'newusernotifbody' => 'Olá, $1,
 
 Uma nova conta de utilizador, $2, foi criada em $3 em $4.',
@@ -477,6 +612,26 @@
 Uma nova conta de utilizador, $2, foi criada em $3 em $4.',
 );
 
+/** Romanian (Română)
+ * @author Stelistcristi
+ */
+$messages['ro'] = array(
+	'newusernotifbody' => 'Salut $1,
+
+Un nou cont de utilizator, $2, a fost creat pe $3 la $4.',
+);
+
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'newusernotifsubj' => "Notifiche de 'n'utende nuève pe $1",
+	'newusernotif-desc' => "Manne 'na mail de notifiche quanne avènene ccrejate le cunde utende",
+	'newusernotifbody' => "Cià $1,
+
+'Nu cunde utende nuève, $2, ha state ccrejate sus a $3 'u $4.",
+);
+
 /** Russian (Русский)
  * @author Александр Сигачёв
  */
@@ -499,20 +654,33 @@
 $3 na $4 bol vytvorený nový používateľský účet $2.',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Rancher
  * @author Sasa Stefanovic
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
 	'newusernotifsubj' => 'Нови корисник за $1',
+	'newusernotif-desc' => 'Шаље обавештења путем е-поште када се нови налог направи',
 	'newusernotifbody' => 'Здраво $1
 Нови кориснички налог, $2, је направљен на $3 у $4.',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'newusernotifsubj' => 'Novi korisnik za $1',
+	'newusernotif-desc' => 'Šalje mejl obaveštenja kada se novi nalog napravi',
+	'newusernotifbody' => 'Zdravo $1
+Novi korisnički nalog, $2, je napravljen na $3 u $4.',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'newusernotifsubj' => 'Bescheedtällen foar $1 uur ju Iengjuchtenge fon n näi Benutserkonto',
+	'newusernotifsubj' => 'Beskeedtällen foar $1 uur ju Iengjuchtenge fon n näi Benutserkonto',
 	'newusernotifbody' => 'Hallo $1,
 
 N näi Benutserkonto, $2, wuude ap n $4 ap $3 anlaid.',
@@ -541,9 +709,12 @@
 );
 
 /** Telugu (తెలుగు)
+ * @author Ravichandra
  * @author Veeven
  */
 $messages['te'] = array(
+	'newusernotifsubj' => '$1 కోసం కొత్తవాడుకరి నోటిఫికేషన్',
+	'newusernotif-desc' => 'వాడుకరి ఖాతాలను సృష్టించినప్పుడు ఈ-మెయిలు గమనింపులు పంపుతుంది',
 	'newusernotifbody' => 'హలో $1,
 
 $3లో $2 అనే కొత్త వాడుకరి ఖాతాని $4కి సృష్టించాం.',
@@ -560,7 +731,7 @@
 uza-na'in foun ida, $2, naregistrar tiha iha $3 iha loron $4.",
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -571,6 +742,17 @@
 Ҳисоби корбарии ҷадид, $2, дар $3 дар $4 эҷод шуд.',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'newusernotifsubj' => 'Ogohsoziji korbariji çadid baroi $1',
+	'newusernotif-desc' => 'Dar holat eçod şudani hisobhoi korbarī pajomi ogohsozī tariqi poctai elektronī bifirist.',
+	'newusernotifbody' => 'Salom $1,
+
+Hisobi korbariji çadid, $2, dar $3 dar $4 eçod şud.',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -594,6 +776,16 @@
 Yeni kullanıcı hesabı, $2,$3 üzerinde $4'te oluşturuldu.",
 );
 
+/** Ukrainian (Українська)
+ * @author Alex Khimich
+ */
+$messages['uk'] = array(
+	'newusernotifsubj' => 'Повідомлення про нового користувача для $1',
+	'newusernotif-desc' => 'Відправляє повідомлення по e-mail, коли створюються нові облікові записи користувачів',
+	'newusernotifbody' => 'Вітаємо, $1!
+В проекті $3 в $4 був створений обліковий запис — $2.',
+);
+
 /** Vèneto (Vèneto)
  * @author Candalua
  */
@@ -627,7 +819,7 @@
 Gebanakal nulik: $2, pejafon su $3 tü $4.',
 );
 
-/** Yue (粵語) */
+/** Cantonese (粵語) */
 $messages['yue'] = array(
 	'newusernotifsubj' => '$1嘅新用戶通知',
 	'newusernotifbody' => '你好 $1,
@@ -637,20 +829,25 @@
 
 /** Simplified Chinese (‪中文(简体)‬)
  * @author Gaoxuewei
+ * @author Xiaomingyan
  */
 $messages['zh-hans'] = array(
 	'newusernotifsubj' => '$1的新用户通知',
-	'newusernotif-desc' => '当用户创建时,发送邮件确认电子邮件地址',
-	'newusernotifbody' => '你好 $1,
+	'newusernotif-desc' => '当用户账户创建时发送电子邮件通知',
+	'newusernotifbody' => '你好$1,
 
-一个新的用户账号$2,已经在$4于$3创建。',
+一个新账户$2已于$4在$3创建。',
 );
 
-/** Traditional Chinese (‪中文(繁體)‬) */
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Liangent
+ * @author Mark85296341
+ */
 $messages['zh-hant'] = array(
-	'newusernotifsubj' => '$1的新用戶通知',
+	'newusernotifsubj' => '$1 的新用戶通知',
+	'newusernotif-desc' => '當用戶建立時,發送郵件確認電子郵件地址',
 	'newusernotifbody' => '你好 $1,
 
-一個新的用戶帳號$2,已經在$4於$3創建。',
+一個新的用戶帳號 $2,已經在 $4 於 $3 建立。',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewUserNotif/NewUserNotif.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -5,18 +5,19 @@
 /**
  * Extension to provide customisable email notification of new user creation
  *
+ * @file
  * @author Rob Church <robchur at gmail.com>
- * @addtogroup Extensions
+ * @ingroup Extensions
  * @copyright © 2006 Rob Church
  * @license GNU General Public Licence 2.0 or later
  */
 
 $wgExtensionCredits['other'][] = array(
+	'path' => __FILE__,
 	'name'           => 'New User Email Notification',
-	'version'        => '1.5.1',
+	'version'        => '1.5.2',
 	'author'         => 'Rob Church',
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:New_User_Email_Notification',
-	'description'    => 'Sends email notification when user accounts are created',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:New_User_Email_Notification',
 	'descriptionmsg' => 'newusernotif-desc',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.alias.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,181 +2,293 @@
 /**
  * Aliases for Special:NewestPages
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  */
 
-$aliases = array();
+$specialPageAliases = array();
 
-/** English
- * @author Jon Harald Søby
- */
-$aliases['en'] = array(
-	'NewestPages'            => array('NewestPages')
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'NewestPages' => array( 'NewestPages' ),
 );
 
-/** Arabic (العربية)
- * @author Meno25
- */
-$aliases['ar'] = array(
-	'NewestPages' => array( 'أجدد_الصفحات' ),
+/** Afrikaans (Afrikaans) */
+$specialPageAliases['af'] = array(
+	'NewestPages' => array( 'NuutsteBladsye' ),
 );
 
-/** Egyptian Spoken Arabic (مصرى)
- * @author Meno25
- */
-$aliases['arz'] = array(
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
 	'NewestPages' => array( 'أجدد_الصفحات' ),
 );
 
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'NewestPages' => array( 'اجدد_الصفح' ),
+);
+
+/** Bulgarian (Български) */
+$specialPageAliases['bg'] = array(
+	'NewestPages' => array( 'Най-нови_страници' ),
+);
+
+/** Breton (Brezhoneg) */
+$specialPageAliases['br'] = array(
+	'NewestPages' => array( 'Pajennoù^Nevesañ' ),
+);
+
 /** Bosnian (Bosanski) */
-$aliases['bs'] = array(
+$specialPageAliases['bs'] = array(
 	'NewestPages' => array( 'NajnovijeStranice' ),
 );
 
+/** Danish (Dansk) */
+$specialPageAliases['da'] = array(
+	'NewestPages' => array( 'Nyeste_sider' ),
+);
+
 /** German (Deutsch) */
-$aliases['de'] = array(
-	'NewestPages' => array( 'Neueste Seiten' ),
+$specialPageAliases['de'] = array(
+	'NewestPages' => array( 'Neueste_Seiten' ),
 );
 
 /** Lower Sorbian (Dolnoserbski) */
-$aliases['dsb'] = array(
-	'NewestPages' => array( 'Nejnowše boki' ),
+$specialPageAliases['dsb'] = array(
+	'NewestPages' => array( 'Nejnowše_boki' ),
 );
 
 /** Greek (Ελληνικά) */
-$aliases['el'] = array(
+$specialPageAliases['el'] = array(
 	'NewestPages' => array( 'ΝεότερεςΣελίδες' ),
 );
 
 /** Persian (فارسی) */
-$aliases['fa'] = array(
+$specialPageAliases['fa'] = array(
 	'NewestPages' => array( 'تازه‌ترین_صفحه‌ها' ),
 );
 
 /** Finnish (Suomi) */
-$aliases['fi'] = array(
-	'NewestPages' => array( 'Uusimmat sivut' ),
+$specialPageAliases['fi'] = array(
+	'NewestPages' => array( 'Uusimmat_sivut' ),
 );
 
+/** French (Français) */
+$specialPageAliases['fr'] = array(
+	'NewestPages' => array( 'Pages_les_plus_récentes', 'PagesLesPlusRécentes' ),
+);
+
+/** Franco-Provençal (Arpetan) */
+$specialPageAliases['frp'] = array(
+	'NewestPages' => array( 'Pâges_les_ples_novèles', 'PâgesLesPlesNovèles' ),
+);
+
 /** Galician (Galego) */
-$aliases['gl'] = array(
-	'NewestPages' => array( 'Páxinas máis novas' ),
+$specialPageAliases['gl'] = array(
+	'NewestPages' => array( 'Páxinas_máis_novas' ),
 );
 
 /** Swiss German (Alemannisch) */
-$aliases['gsw'] = array(
+$specialPageAliases['gsw'] = array(
 	'NewestPages' => array( 'Neijeschti Syte' ),
 );
 
 /** Croatian (Hrvatski) */
-$aliases['hr'] = array(
+$specialPageAliases['hr'] = array(
 	'NewestPages' => array( 'Najnovije_stranice' ),
 );
 
 /** Upper Sorbian (Hornjoserbsce) */
-$aliases['hsb'] = array(
-	'NewestPages' => array( 'Najnowše strony' ),
+$specialPageAliases['hsb'] = array(
+	'NewestPages' => array( 'Najnowše_strony' ),
 );
 
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'NewestPages' => array( 'PajKiPiNouvo' ),
+);
+
 /** Hungarian (Magyar) */
-$aliases['hu'] = array(
-	'NewestPages' => array( 'Legújabb lapok' ),
+$specialPageAliases['hu'] = array(
+	'NewestPages' => array( 'Legújabb_lapok' ),
 );
 
 /** Interlingua (Interlingua) */
-$aliases['ia'] = array(
-	'NewestPages' => array( 'Paginas le plus nove' ),
+$specialPageAliases['ia'] = array(
+	'NewestPages' => array( 'Paginas_le_plus_nove' ),
 );
 
 /** Indonesian (Bahasa Indonesia) */
-$aliases['id'] = array(
-	'NewestPages' => array( 'Halaman terbaru' ),
+$specialPageAliases['id'] = array(
+	'NewestPages' => array( 'Halaman_terbaru', 'HalamanTerbaru' ),
 );
 
+/** Italian (Italiano) */
+$specialPageAliases['it'] = array(
+	'NewestPages' => array( 'PaginePiùNuove' ),
+);
+
 /** Japanese (日本語) */
-$aliases['ja'] = array(
-	'NewestPages' => array( '新規作成されたページ' ),
+$specialPageAliases['ja'] = array(
+	'NewestPages' => array( '最新のページ' ),
 );
 
 /** Khmer (ភាសាខ្មែរ) */
-$aliases['km'] = array(
+$specialPageAliases['km'] = array(
 	'NewestPages' => array( 'ទំព័រថ្មីៗបំផុត' ),
 );
 
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'NewestPages' => array( '새_페이지' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'NewestPages' => array( 'Neueste_Sigge' ),
+);
+
+/** Kurdish (Kurdî) */
+$specialPageAliases['ku'] = array(
+	'NewestPages' => array( 'Rûpelên_nû' ),
+);
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = array(
+	'NewestPages' => array( 'HojasMásNuevas' ),
+);
+
 /** Luxembourgish (Lëtzebuergesch) */
-$aliases['lb'] = array(
-	'NewestPages' => array( 'Neiste Säiten' ),
+$specialPageAliases['lb'] = array(
+	'NewestPages' => array( 'Neiste_Säiten' ),
 );
 
 /** Macedonian (Македонски) */
-$aliases['mk'] = array(
+$specialPageAliases['mk'] = array(
 	'NewestPages' => array( 'НајновиСтраници' ),
 );
 
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'NewestPages' => array( 'പുതുപുത്തൻ‌താളുകൾ' ),
+);
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = array(
+	'NewestPages' => array( 'नवीनतमपाने' ),
+);
+
 /** Maltese (Malti) */
-$aliases['mt'] = array(
+$specialPageAliases['mt'] = array(
 	'NewestPages' => array( 'PaġniRiċenti' ),
 );
 
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$specialPageAliases['nb'] = array(
+	'NewestPages' => array( 'Siste_sider', 'Nyeste_sider' ),
+);
+
 /** Low German (Plattdüütsch) */
-$aliases['nds'] = array(
+$specialPageAliases['nds'] = array(
 	'NewestPages' => array( 'Neeste Sieden' ),
 );
 
 /** Nedersaksisch (Nedersaksisch) */
-$aliases['nds-nl'] = array(
-	'NewestPages' => array( "Niejste_pagina's" ),
+$specialPageAliases['nds-nl'] = array(
+	'NewestPages' => array( 'Niejste_pagina\'s' ),
 );
 
 /** Dutch (Nederlands) */
-$aliases['nl'] = array(
-	'NewestPages' => array( 'NieuwstePaginas', "NieuwstePagina's" ),
+$specialPageAliases['nl'] = array(
+	'NewestPages' => array( 'NieuwstePaginas', 'NieuwstePagina\'s' ),
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$aliases['no'] = array(
-	'NewestPages' => array( 'Siste sider', 'Nyeste sider' ),
+/** Occitan (Occitan) */
+$specialPageAliases['oc'] = array(
+	'NewestPages' => array( 'Paginas_mai_recentas', 'PaginasMaiRecentas' ),
 );
 
+/** Polish (Polski) */
+$specialPageAliases['pl'] = array(
+	'NewestPages' => array( 'Najnowsze_strony' ),
+);
+
 /** Pashto (پښتو) */
-$aliases['ps'] = array(
-	'NewestPages' => array( 'ترټولو نوي مخونه' ),
+$specialPageAliases['ps'] = array(
+	'NewestPages' => array( 'ترټولو_نوي_مخونه' ),
 );
 
+/** Portuguese (Português) */
+$specialPageAliases['pt'] = array(
+	'NewestPages' => array( 'Páginas_mais_recentes' ),
+);
+
 /** Brazilian Portuguese (Português do Brasil) */
-$aliases['pt-br'] = array(
-	'NewestPages' => array( 'Páginas mais novas' ),
+$specialPageAliases['pt-br'] = array(
+	'NewestPages' => array( 'Páginas_mais_novas' ),
 );
 
-/** Sanskrit (संस्कृत) */
-$aliases['sa'] = array(
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = array(
 	'NewestPages' => array( 'अतिनूतनपृष्ठ' ),
 );
 
+/** Sinhala (සිංහල) */
+$specialPageAliases['si'] = array(
+	'NewestPages' => array( 'අලුත්මපිටු' ),
+);
+
+/** Slovak (Slovenčina) */
+$specialPageAliases['sk'] = array(
+	'NewestPages' => array( 'NajnovšieStránky' ),
+);
+
 /** Albanian (Shqip) */
-$aliases['sq'] = array(
-	'NewestPages' => array( 'FaqeteReja' ),
+$specialPageAliases['sq'] = array(
+	'NewestPages' => array( 'FaqetMëTëReja' ),
 );
 
 /** Swedish (Svenska) */
-$aliases['sv'] = array(
-	'NewestPages' => array( 'Nyaste sidor' ),
+$specialPageAliases['sv'] = array(
+	'NewestPages' => array( 'Nyaste_sidor' ),
 );
 
 /** Swahili (Kiswahili) */
-$aliases['sw'] = array(
+$specialPageAliases['sw'] = array(
 	'NewestPages' => array( 'KurasaMpya' ),
 );
 
+/** Telugu (తెలుగు) */
+$specialPageAliases['te'] = array(
+	'NewestPages' => array( 'కొంగొత్తపేజీలు' ),
+);
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = array(
+	'NewestPages' => array( 'หน้าใหม่สุด' ),
+);
+
 /** Tagalog (Tagalog) */
-$aliases['tl'] = array(
+$specialPageAliases['tl'] = array(
 	'NewestPages' => array( 'Pinakabagong mga pahina' ),
 );
 
 /** Turkish (Türkçe) */
-$aliases['tr'] = array(
-	'NewestPages' => array( 'YeniMaddeler' ),
+$specialPageAliases['tr'] = array(
+	'NewestPages' => array( 'EnYeniSayfalar' ),
 );
 
+/** Vèneto (Vèneto) */
+$specialPageAliases['vec'] = array(
+	'NewestPages' => array( 'PaginePiNove' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'NewestPages' => array( '最新页面' ),
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$specialPageAliases['zh-hant'] = array(
+	'NewestPages' => array( '最新頁面' ),
+);
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,7 +1,9 @@
 <?php
 /**
  * Internationalisation file for the NewestPages extension
- * @addtogroup Extensions
+ *
+ * @file
+ * @ingroup Extensions
  * @author Rob Church <robchur at gmail.com>
  * @copyright © 2006 Rob Church
  * @licence GNU General Public Licence 2.0
@@ -14,7 +16,7 @@
  */
 $messages['en'] = array(
 	'newestpages'            => 'Newest pages',
-	'newestpages-desc'       => 'Shows the [[Special:Newestpages|last X pages]] added to the wiki',
+	'newestpages-desc'       => 'Shows the [[Special:NewestPages|last X pages]] added to the wiki',
 	'newestpages-header'     => "'''This page lists the {{PLURAL:$1|newest page|$1 newest pages}} on the wiki.'''",
 	'newestpages-limitlinks' => 'Show up to $1 pages',
 	'newestpages-namespace'  => 'Namespace:',
@@ -30,9 +32,10 @@
  * @author Jon Harald Søby
  * @author Purodha
  * @author Siebrand
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
-	'newestpages-desc' => 'Short description of this extension, shown on [[Special:Version]]. Do not translate or change links.',
+	'newestpages-desc' => '{{desc}}',
 	'newestpages-limitlinks' => '* $1 is a list like "10 | 20 | 30 | 50 |100 | 150"',
 	'newestpages-namespace' => '{{Identical|Namespace}}',
 	'newestpages-submit' => '{{Identical|Go}}',
@@ -51,10 +54,10 @@
  */
 $messages['af'] = array(
 	'newestpages' => 'Nuutste bladsye',
-	'newestpages-desc' => 'Die [[Special:Newestpages|X nuutste bladsye]] in die wiki',
+	'newestpages-desc' => 'Die [[Special:NewestPages|X nuutste bladsye]] in die wiki',
 	'newestpages-namespace' => 'Naamruimte:',
 	'newestpages-none' => 'Geen resultate.',
-	'newestpages-submit' => 'Gaan',
+	'newestpages-submit' => 'Laat waai',
 	'newestpages-showredir' => 'Wys aanstuurbladsye',
 );
 
@@ -65,7 +68,14 @@
 	'newestpages-namespace' => 'ክፍለ-ዊኪ፦',
 );
 
-/** Old English (Anglo-Saxon)
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ */
+$messages['an'] = array(
+	'newestpages-namespace' => 'Espacio de nombres:',
+);
+
+/** Old English (Ænglisc)
  * @author Wōdenhelm
  */
 $messages['ang'] = array(
@@ -80,25 +90,35 @@
  */
 $messages['ar'] = array(
 	'newestpages' => 'أجدد الصفحات',
-	'newestpages-desc' => 'يعرض [[Special:Newestpages|آخر صفحات]] تمت إضافتها إلى الويكي',
-	'newestpages-header' => "'''هذه الصفحة تعرض أجدد {{PLURAL:$1|صفحة|$1 صفحة}} في الويكي.'''",
+	'newestpages-desc' => 'يعرض [[Special:NewestPages|آخر صفحات]] تمت إضافتها إلى الويكي',
+	'newestpages-header' => "'''هذه الصفحة تعرض أحدث {{PLURAL:$1||صفحة|صفحتين|$1 صفحات|$1 صفحة}} في الويكي.'''",
 	'newestpages-limitlinks' => 'اعرض حتى $1 صفحة',
 	'newestpages-namespace' => 'النطاق:',
 	'newestpages-none' => 'لم يتم العثور على مدخلات.',
-	'newestpages-ns-header' => "'''هذه الصفحة تعرض أجدد {{PLURAL:$1|صفحة|$1 صفحة}} في نطاق $2.'''",
-	'newestpages-showing' => 'عرض {{PLURAL:$1|الصفحة|الصفحات $1}} الأجدد:',
+	'newestpages-ns-header' => "'''هذه الصفحة تعرض أحدث {{PLURAL:$1||صفحة|صفحتين|$1 صفحات|$1 صفحة}} في نطاق $2.'''",
+	'newestpages-showing' => 'سرد أحدث {{PLURAL:$1||صفحة|صفحتين|$1 صفحات|$1 صفحة}}:',
 	'newestpages-submit' => 'اذهب',
 	'newestpages-showredir' => 'عرض صفحات التحويل',
 	'newestpages-hideredir' => 'إخفاء صفحات التحويل',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'newestpages-namespace' => 'ܚܩܠܐ:',
+	'newestpages-submit' => 'ܙܠ',
+	'newestpages-showredir' => 'ܚܘܝ ܕ̈ܦܐ ܕܨܘܝܒܐ',
+	'newestpages-hideredir' => 'ܛܫܝ ܕ̈ܦܐ ܕܨܘܝܒܐ',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ghaly
  * @author Meno25
  */
 $messages['arz'] = array(
 	'newestpages' => 'أجدد الصفحات',
-	'newestpages-desc' => 'يعرض [[Special:Newestpages|آخر صفحات]] تمت إضافتها إلى الويكي',
+	'newestpages-desc' => 'يعرض [[Special:NewestPages|آخر صفحات]] تمت إضافتها إلى الويكي',
 	'newestpages-header' => "'''الصفحة دى بتعرض {{PLURAL:$1|صفحة|أجدد $1 صفحة}} فى الويكى.'''",
 	'newestpages-limitlinks' => 'اعرض حتى $1 صفحة',
 	'newestpages-namespace' => 'النطاق:',
@@ -110,6 +130,23 @@
 	'newestpages-hideredir' => 'إخفاء صفحات التحويل',
 );
 
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'newestpages' => 'Páxines más nueves',
+	'newestpages-desc' => 'Amuesa les [[Special:NewestPages|caberes X páxines]] amestaes a la wiki',
+	'newestpages-header' => "'''Esta páxina llista {{PLURAL:$1|la páxina más nueva|les $1 páxines más nueves}} de la wiki.'''",
+	'newestpages-limitlinks' => 'Amosar fasta $1 páxines',
+	'newestpages-namespace' => 'Espaciu de nomes:',
+	'newestpages-none' => "Nun s'alcontró entrada denguna.",
+	'newestpages-ns-header' => "'''Esta páxina llista {{PLURAL:$1|la páxina más nueva|les $1 páxines más nueves}} del espaciu de nomes $2.'''",
+	'newestpages-showing' => 'Llistando {{PLURAL:$1|la páxina más nueva|les $1 páxines más nueves}}:',
+	'newestpages-submit' => 'Dir',
+	'newestpages-showredir' => 'Amosar páxines de redireición',
+	'newestpages-hideredir' => 'Anubrir páxines de redireición',
+);
+
 /** Kotava (Kotava)
  * @author Wikimistusik
  */
@@ -126,6 +163,13 @@
 	'newestpages-hideredir' => 'Palsera va graskan bueem',
 );
 
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ */
+$messages['az'] = array(
+	'newestpages-namespace' => 'Adlar fəzası:',
+);
+
 /** Bikol Central (Bikol Central)
  * @author Filipinayzd
  */
@@ -137,14 +181,14 @@
 	'newestpages-hideredir' => 'Tagôon an mga redirektang páhina',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
  */
 $messages['be-tarask'] = array(
 	'newestpages' => 'Новыя старонкі',
-	'newestpages-desc' => 'Адлюстроўвае [[Special:Newestpages|апошнія X старонак]], дададзеных у {{GRAMMAR:месны|{{SITENAME}}}}',
+	'newestpages-desc' => 'Адлюстроўвае [[Special:NewestPages|апошнія X старонак]], дададзеных у {{GRAMMAR:месны|{{SITENAME}}}}',
 	'newestpages-header' => "'''Гэтая старонка паказвае $1 {{PLURAL:$1|новую старонку|новыя старонкі|новых старонак}} {{GRAMMAR:родны|{{SITENAME}}}}.'''",
 	'newestpages-limitlinks' => 'Паказваць да $1 {{PLURAL:$1|старонкі|старонак|старонак}}',
 	'newestpages-namespace' => 'Прастора назваў:',
@@ -162,24 +206,56 @@
  */
 $messages['bg'] = array(
 	'newestpages' => 'Най-нови страници',
-	'newestpages-desc' => 'Показва [[Special:Newestpages|последните Х страници]], създадени в уикито',
+	'newestpages-desc' => 'Показва [[Special:NewestPages|последните Х страници]], създадени в уикито',
 	'newestpages-header' => "'''Тази страница съдържа списък на {{PLURAL:$1|най-новата страница|най-новите $1 страници}} в уикито.'''",
 	'newestpages-limitlinks' => 'Показване най-много на $1 {{PLURAL:$1|страница|страници}}',
 	'newestpages-namespace' => 'Именно пространство:',
 	'newestpages-none' => 'Няма намерени записи.',
 	'newestpages-ns-header' => "'''Тази страница съдържа списък на {{PLURAL:$1|най-новата страница|най-новите $1 страници}} в именно пространство $2.'''",
 	'newestpages-showing' => 'Показване на {{PLURAL:$1|най-новата страница|най-новите $1 страници}}:',
-	'newestpages-submit' => 'Показване',
+	'newestpages-submit' => 'Отваряне',
 	'newestpages-showredir' => 'Показване на пренасочващите страници',
 	'newestpages-hideredir' => 'Скриване на пренасочващите страници',
 );
 
+/** Bengali (বাংলা)
+ * @author Wikitanvir
+ */
+$messages['bn'] = array(
+	'newestpages' => 'নতুনতম পাতাসমূহ',
+	'newestpages-limitlinks' => '$1টি পর্যন্ত পাতা দেখাও',
+	'newestpages-namespace' => 'নামস্থান:',
+	'newestpages-none' => 'কোনো সংযোজন খুঁজে পাওয়া যায়নি।',
+	'newestpages-submit' => 'চলো',
+	'newestpages-showredir' => 'পুনর্নির্দেশ পাতাগুলো দেখাও',
+	'newestpages-hideredir' => 'পুনর্নির্দেশ পাতাগুলো লুকাও',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fohanno
+ * @author Fulup
+ * @author Y-M D
+ */
+$messages['br'] = array(
+	'newestpages' => 'Pajennoù nevesañ',
+	'newestpages-desc' => 'Diskouez a ra an [[Special:NewestPages|X pajenn ziwezhañ]] bet ouzhpennet war ar wiki.',
+	'newestpages-header' => "'''Rollañ a ra ar bajenn-mañ {{PLURAL:$1|pajenn nevesañ|$1 pajenn nevesañ}} ar wiki.'''",
+	'newestpages-limitlinks' => 'Diskouez betek $1 pajenn',
+	'newestpages-namespace' => 'Esaouenn anv :',
+	'newestpages-none' => 'Pajenn ebet kavet.',
+	'newestpages-ns-header' => "'''Rollañ a ra ar bajenn-mañ ar {{PLURAL:$1|bajenn nevesañ|$1 pajenn nevesañ}} en esaouenn anv $2.'''",
+	'newestpages-showing' => 'Rollañ {{PLURAL:$1|diouzh ar bajenn nevesañ|diouzh ar $1 pajenn nevesañ}} :',
+	'newestpages-submit' => 'Mont',
+	'newestpages-showredir' => 'Diskouez ar pajennoù adkas',
+	'newestpages-hideredir' => 'Kuzhat ar pajennoù adkas',
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
 $messages['bs'] = array(
 	'newestpages' => 'Najnovije stranice',
-	'newestpages-desc' => 'Prikazuje [[Special:Newestpages|zadnjih X stranica]] dodanih na wiki',
+	'newestpages-desc' => 'Prikazuje [[Special:NewestPages|zadnjih X stranica]] dodanih na wiki',
 	'newestpages-header' => "'''Ova stranica prikazuje {{PLURAL:$1|najnoviju stranicu|$1 najnovije stranice|$1 najnovijih stranica}} na wikiju.'''",
 	'newestpages-limitlinks' => 'Prikaži do $1 stranica',
 	'newestpages-namespace' => 'Imenski prostor:',
@@ -193,8 +269,10 @@
 
 /** Catalan (Català)
  * @author SMP
+ * @author Solde
  */
 $messages['ca'] = array(
+	'newestpages' => 'Pàgines més noves',
 	'newestpages-submit' => 'Vés-hi',
 );
 
@@ -205,6 +283,17 @@
 	'newestpages-submit' => 'Hånao',
 );
 
+/** Sorani (کوردی) */
+$messages['ckb'] = array(
+	'newestpages-submit' => 'بڕۆ',
+);
+
+/** Czech (Česky) */
+$messages['cs'] = array(
+	'newestpages-namespace' => 'Jmenný prostor:',
+	'newestpages-submit' => 'Jít na',
+);
+
 /** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
  * @author ОйЛ
  */
@@ -217,7 +306,7 @@
  */
 $messages['cy'] = array(
 	'newestpages' => 'Tudalennau newydd diweddaraf',
-	'newestpages-desc' => "Yn dangos y [[Special:Newestpages|llwyth diweddaraf o dudalennau newydd]] 'u gosodwyd ar y wici",
+	'newestpages-desc' => "Yn dangos y [[Special:NewestPages|llwyth diweddaraf o dudalennau newydd]] 'u gosodwyd ar y wici",
 	'newestpages-header' => "'''Dyma restr o'r {{PLURAL:$1||dudalen|$1 dudalen|$1 tudalen|$1 thudalen|$1 tudalen}} newydd diweddaraf ar y wici.'''",
 	'newestpages-limitlinks' => 'Dangos hyd at $1 o dudalennau',
 	'newestpages-namespace' => 'Parth:',
@@ -237,12 +326,13 @@
 );
 
 /** German (Deutsch)
+ * @author Kghbln
  * @author Markus Klatt
  * @author Raimond Spekking
  */
 $messages['de'] = array(
 	'newestpages' => 'Neueste Seiten',
-	'newestpages-desc' => 'Zeigt die [[Special:Newestpages|neuesten X Seiten]] des Wikis',
+	'newestpages-desc' => 'Ergänzt eine [[Special:NewestPages|Spezialseite]] zur Anzeige einer festzulegenden Anzahl neuer Seiten',
 	'newestpages-header' => "'''Diese Seite listet die {{PLURAL:$1|neueste Seite|$1 neuesten Seiten}} dieses Wikis auf.'''",
 	'newestpages-limitlinks' => 'Zeige $1 Seiten',
 	'newestpages-namespace' => 'Namensraum:',
@@ -260,7 +350,7 @@
  */
 $messages['dsb'] = array(
 	'newestpages' => 'Nejnowše boki',
-	'newestpages-desc' => 'Pokazujo [[Special:Newestpages|nejnowšych X bokow]] wikija',
+	'newestpages-desc' => 'Pokazujo [[Special:NewestPages|nejnowšych X bokow]] wikija',
 	'newestpages-header' => "Toś ten bok nalicujo {{PLURAL:$1|nejnowšy bok|$1 nejnowšej boka|$1 nejnowše boki|$1 nejnowšych bokow}} na toś tom wikiju.'''",
 	'newestpages-limitlinks' => 'Pokaž {{PLURAL:$1|bok|boka|boki}}',
 	'newestpages-namespace' => 'Mjenjowy rum',
@@ -277,32 +367,44 @@
  */
 $messages['ee'] = array(
 	'newestpages' => 'Axa siwo le yeye wu',
-	'newestpages-desc' => 'Efia [[Special:Newestpages|axa X susuewo]] siwo woda ɖe wiki la dzi',
-	'newestpages-header' => "'''This page lists the {{PLURAL:$1|newest page|$1 newest pages}} on the wiki.'''<br />
-'''Axa sia fia {{PLURAL:$1|axa yeyeawu|axa $1 yeyeawu}} le wiki la dzi'''",
+	'newestpages-desc' => 'Efia [[Special:NewestPages|axa X susuewo]] siwo woda ɖe wiki la dzi',
+	'newestpages-header' => "'''Axa sia fia {{PLURAL:$1|axa yeyeawu|axa $1 yeyeawowu}} le wiki la dzi'''",
+	'newestpages-limitlinks' => 'Fia axawo ƒe xexlẽme vaseɖe $1',
+	'newestpages-none' => 'Womekpɔ nuŋɔ̃ŋlɔ̃wo aɖeke o.',
+	'newestpages-showing' => 'Wofia {{PLURAL: $1|axa yeyetɔwu|axa $1 yeyewutɔwo}}:',
+	'newestpages-submit' => 'Yi',
 );
 
 /** Greek (Ελληνικά)
  * @author Consta
+ * @author Crazymadlover
+ * @author ZaDiak
  */
 $messages['el'] = array(
 	'newestpages' => 'Νεώτερες σελίδες',
+	'newestpages-limitlinks' => 'Εμφάνιση μέχρι και $1 σελίδες',
+	'newestpages-namespace' => 'Περιοχή ονομάτων:',
+	'newestpages-none' => 'Δεν βρέθηκαν καθόλου καταχωρήσεις.',
+	'newestpages-showing' => 'Καταγραφή {{PLURAL:$1|νεότερης σελίδας|$1 νεότερων σελίδων}}:',
 	'newestpages-submit' => 'Πηγαίνετε',
+	'newestpages-showredir' => 'Εμφάνιση σελίδων ανακατεύθυνσης',
+	'newestpages-hideredir' => 'Απόκρυψη σελίδων ανακατεύθυνσης',
 );
 
 /** Esperanto (Esperanto)
+ * @author Michawiki
  * @author Tlustulimu
  * @author Yekrats
  */
 $messages['eo'] = array(
 	'newestpages' => 'Plej novaj paĝoj',
-	'newestpages-desc' => 'Montras la [[Special:Newestpages|plej novajn X paĝojn]] aldonitajn al la vikio.',
+	'newestpages-desc' => 'Montras la [[Special:NewestPages|plej novajn X paĝojn]] aldonitajn al la vikio.',
 	'newestpages-header' => "'''Ĉi tiu paĝo montras la plej {{PLURAL:$1|novan paĝon|novajn $1 paĝojn}} en la vikio.'''",
 	'newestpages-limitlinks' => 'Montru ĝis $1 paĝojn',
 	'newestpages-namespace' => 'Nomspaco:',
 	'newestpages-none' => 'Ne estis trovitaj iuj enskribaĵoj',
 	'newestpages-ns-header' => "'''Ĉi tiu paĝo montras la {{PLURAL:$1:plej novan paĝon|$1 plej novajn paĝojn}} en la nomspaco $2.'''",
-	'newestpages-showing' => 'Listigas la $1 plej novajn paĝojn:',
+	'newestpages-showing' => 'Listigas la {{PLURAL:$1|plej novan paĝon|$1 plej novajn paĝojn}}:',
 	'newestpages-submit' => 'Ek',
 	'newestpages-showredir' => 'Montru alidirektajn paĝojn',
 	'newestpages-hideredir' => 'Kaŝu alidirektajn paĝojn',
@@ -316,21 +418,47 @@
  */
 $messages['es'] = array(
 	'newestpages' => 'Páginas más recientes',
+	'newestpages-desc' => 'Muestra las [[Special:NewestPages|últimas X páginas]] agregadas al wiki',
 	'newestpages-header' => "'''Esta página lista las {{PLURAL:$1|página más nueva|$1 páginas más nuevas}} en el wiki.'''",
+	'newestpages-limitlinks' => 'Mostrar hasta $1 páginas',
 	'newestpages-namespace' => 'Espacio de nombres:',
 	'newestpages-none' => 'Ninguna entrada fue encontrada.',
+	'newestpages-ns-header' => "'''esta página lista las {{PLURAL:$1|página más nueva|$1 páginas más nuevas}} en el nombre de espacio $2.'''",
 	'newestpages-showing' => 'Listando {{PLURAL:$1|la página más nueva|$1 Las páginas más nuevas}}:',
 	'newestpages-submit' => 'Ir',
 	'newestpages-showredir' => 'Mostrar página de redirección',
 	'newestpages-hideredir' => 'Esconder páginas de redirección',
 );
 
+/** Estonian (Eesti)
+ * @author Avjoska
+ * @author Hendrik
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'newestpages' => 'Uuemad leheküljed',
+	'newestpages-limitlinks' => 'Näita kuni $1 lehekülge',
+	'newestpages-namespace' => 'Nimeruum:',
+	'newestpages-showredir' => 'Näita ümbersuunamislehekülgi',
+	'newestpages-hideredir' => 'Peida ümbersuunamisleheküljed',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ */
+$messages['eu'] = array(
+	'newestpages' => 'Orrialde berrienak',
+	'newestpages-submit' => 'Joan',
+	'newestpages-showredir' => 'Erakutsi birzuzenketa orrialdeak',
+	'newestpages-hideredir' => 'Ezkutatu birzuzenketa orrialdeak',
+);
+
 /** Persian (فارسی)
  * @author Vahid
  */
 $messages['fa'] = array(
 	'newestpages' => 'جدیدترین صفحه‌ها',
-	'newestpages-desc' => 'نمایش [[Special:Newestpages|آخرین X صفحهٔ]] افزوده شده به ویکی',
+	'newestpages-desc' => 'نمایش [[Special:NewestPages|آخرین X صفحهٔ]] افزوده شده به ویکی',
 );
 
 /** Finnish (Suomi)
@@ -339,7 +467,7 @@
  */
 $messages['fi'] = array(
 	'newestpages' => 'Uusimmat sivut',
-	'newestpages-desc' => 'Näyttää halutun määrän [[Special:Newestpages|viimeisimmistä luoduista sivuista]] wikiin.',
+	'newestpages-desc' => 'Näyttää halutun määrän [[Special:NewestPages|viimeisimmistä luoduista sivuista]] wikiin.',
 	'newestpages-header' => "'''Tällä sivulla on luettelo {{PLURAL:$1|uusimmasta sivusta|$1 uusimmasta sivusta}} tässä wikissä.'''",
 	'newestpages-limitlinks' => 'Näytä enintään $1 sivua',
 	'newestpages-namespace' => 'Nimiavaruus:',
@@ -357,7 +485,7 @@
  */
 $messages['fr'] = array(
 	'newestpages' => 'Pages les plus récentes',
-	'newestpages-desc' => 'Affiche les [[Special:Newestpages|dernières pages]] ajoutées au wiki.',
+	'newestpages-desc' => 'Affiche les [[Special:NewestPages|dernières pages]] ajoutées au wiki.',
 	'newestpages-header' => "'''Cette page liste {{PLURAL:$1|la page la plus récente|les $1 pages les plus récentes}} sur le wiki.'''",
 	'newestpages-limitlinks' => 'Afficher jusqu’à $1 pages',
 	'newestpages-namespace' => 'Espace Wiki :',
@@ -369,6 +497,20 @@
 	'newestpages-hideredir' => 'Cacher les pages de redirection.',
 );
 
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'newestpages' => 'Pâges les ples novèles',
+	'newestpages-limitlinks' => 'Fâre vêre tant qu’a $1 pâges',
+	'newestpages-namespace' => 'Èspâço de noms :',
+	'newestpages-none' => 'Gins d’entrâ trovâ.',
+	'newestpages-showing' => 'Visualisacion de l{{PLURAL:$1|a pâge la ples novèla|es $1 pâges les ples novèles}} :',
+	'newestpages-submit' => 'Lanciér',
+	'newestpages-showredir' => 'Fâre vêre les pâges de redirèccion',
+	'newestpages-hideredir' => 'Cachiér les pâges de redirèccion',
+);
+
 /** Irish (Gaeilge)
  * @author Alison
  */
@@ -383,19 +525,19 @@
  */
 $messages['gl'] = array(
 	'newestpages' => 'Páxinas máis novas',
-	'newestpages-desc' => 'Amosa as [[Special:Newestpages|últimas X páxinas]] engadidas ao wiki',
+	'newestpages-desc' => 'Amosa as [[Special:NewestPages|últimas X páxinas]] engadidas ao wiki',
 	'newestpages-header' => "'''Esta páxina lista {{PLURAL:$1|a páxina máis nova|as $1 páxinas máis novas}} do wiki.'''",
-	'newestpages-limitlinks' => 'Amosar $1 páxinas',
+	'newestpages-limitlinks' => 'Mostrar $1 páxinas',
 	'newestpages-namespace' => 'Espazo de nomes:',
 	'newestpages-none' => 'Ningunhas entradas foron atopadas.',
 	'newestpages-ns-header' => "'''Esta páxina lista {{PLURAL:$1|a páxina máis nova|as $1 páxinas máis novas}} no espazo de nomes $2.'''",
 	'newestpages-showing' => 'Listando {{PLURAL:$1|a páxina máis nova|as $1 páxinas máis novas}}:',
 	'newestpages-submit' => 'Ir',
-	'newestpages-showredir' => 'Amosar páxinas redirixidas',
+	'newestpages-showredir' => 'Mostrar páxinas redirixidas',
 	'newestpages-hideredir' => 'Ocultar páxinas redirixidas',
 );
 
-/** Gothic
+/** Gothic (Gothic)
  * @author Jocke Pirat
  */
 $messages['got'] = array(
@@ -415,7 +557,7 @@
  */
 $messages['gsw'] = array(
 	'newestpages' => 'Nejschti Syte',
-	'newestpages-desc' => 'Zeigt di [[Special:Newestpages|nejschte X Syte]] vum Wiki',
+	'newestpages-desc' => 'Zeigt di [[Special:NewestPages|nejschte X Syte]] vum Wiki',
 	'newestpages-header' => "'''Die Syte lischtet di {{PLURAL:$1|nejscht Syte|$1 nejschte Syte}} vu däm Wiki uf.'''",
 	'newestpages-limitlinks' => 'Zeig $1 Syte',
 	'newestpages-namespace' => 'Namensruum:',
@@ -434,6 +576,11 @@
 	'newestpages-submit' => 'Gow',
 );
 
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'newestpages-namespace' => 'Sararin suna:',
+);
+
 /** Hebrew (עברית)
  * @author Agbad
  * @author Rotemliss
@@ -458,7 +605,7 @@
  */
 $messages['hi'] = array(
 	'newestpages' => 'नवीनतम पन्ने',
-	'newestpages-desc' => 'विकिपर बनाये गये [[Special:Newestpages|आखिरी X पन्ने]] दर्शाता हैं',
+	'newestpages-desc' => 'विकिपर बनाये गये [[Special:NewestPages|आखिरी X पन्ने]] दर्शाता हैं',
 	'newestpages-header' => "'''यह पृष्ठ विकिपर बनाये गये आखिरी $1 पन्नोंकी सूची दर्शाता हैं।'''",
 	'newestpages-limitlinks' => '$1 तक पन्ने दर्शायें',
 	'newestpages-namespace' => 'नामस्थान:',
@@ -479,10 +626,14 @@
 
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
+ * @author Herr Mlinka
  */
 $messages['hr'] = array(
+	'newestpages' => 'Najnovije stranice',
 	'newestpages-namespace' => 'Imenski prostor:',
 	'newestpages-submit' => 'Kreni',
+	'newestpages-showredir' => 'Prikaži preusmjerene stranice',
+	'newestpages-hideredir' => 'Sakrij preusmjerene stranice',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
@@ -490,7 +641,7 @@
  */
 $messages['hsb'] = array(
 	'newestpages' => 'Najnowše strony',
-	'newestpages-desc' => 'Pokazuje [[Special:Newestpages|poslednich X stronow]], kotrež je so wikiju přidało',
+	'newestpages-desc' => 'Pokazuje [[Special:NewestPages|poslednich X stronow]], kotrež je so wikiju přidało',
 	'newestpages-header' => "Tuta strona nalistuje {{PLURAL:$1|najnowšu stronu|$1 najnowšej stronje|$1 najnowše strony|$1 najnowšich stronow}} tutoho wikija.'''",
 	'newestpages-limitlinks' => 'Do $1 stronow pokazać',
 	'newestpages-namespace' => 'Mjenowy rum',
@@ -504,15 +655,18 @@
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Enbéká
+ * @author Glanthor Reviol
  */
 $messages['hu'] = array(
 	'newestpages' => 'Legújabb lapok',
-	'newestpages-header' => "'''Ezen az oldalon a wiki $1 legújabb lapja látható.'''",
+	'newestpages-desc' => 'Megmutatja az [[Special:NewestPages|utolsó X lapot]] a wikin',
+	'newestpages-header' => "'''Ezen az oldalon a wiki {{PLURAL:$1||$1}} legújabb lapja látható.'''",
 	'newestpages-limitlinks' => '$1 oldal megjelenítése',
 	'newestpages-namespace' => 'Névtér:',
 	'newestpages-none' => 'Nincsenek találatok.',
-	'newestpages-ns-header' => "'''Ez az oldal a wiki $1 legújabb lapját listázza a(z) $2 névtérben.'''",
-	'newestpages-showing' => '$1 legújabb lap listázása:',
+	'newestpages-ns-header' => "'''Ez az oldal a wiki {{PLURAL:$1||$1}} legújabb lapját listázza a(z) $2 névtérben.'''",
+	'newestpages-showing' => '{{PLURAL:$1|Legújabb|$1 legújabb}} lap listázása:',
 	'newestpages-submit' => 'Megjelenítés',
 	'newestpages-showredir' => 'Átirányítások mutatása',
 	'newestpages-hideredir' => 'Átirányítások elrejtése',
@@ -523,30 +677,33 @@
  */
 $messages['ia'] = array(
 	'newestpages' => 'Le paginas le plus recente',
-	'newestpages-desc' => 'Monstra le [[Special:Newestpages|ultime X paginas]] addite al wiki',
+	'newestpages-desc' => 'Monstra le [[Special:NewestPages|ultime X paginas]] addite al wiki',
 	'newestpages-header' => "'''Iste pagina lista le {{PLURAL:$1|pagina|$1 paginas}} le plus recente in le wiki.'''",
 	'newestpages-limitlinks' => 'Monstrar ussque a $1 paginas',
 	'newestpages-namespace' => 'Spatio de nomines:',
 	'newestpages-none' => 'Nulle entratas esseva trovate.',
 	'newestpages-ns-header' => "'''Iste pagina lista le {{PLURAL:$1|pagina|$1 paginas}} le plus nove in le spatio de nomines $2.'''",
 	'newestpages-showing' => 'Lista del {{PLURAL:$1|pagina|$1 paginas}} le plus nove:',
-	'newestpages-submit' => 'Ir',
+	'newestpages-submit' => 'Va',
 	'newestpages-showredir' => 'Revelar paginas de redirection',
 	'newestpages-hideredir' => 'Celar paginas de redirection',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
  * @author Ivan Lanin
+ * @author IvanLanin
  */
 $messages['id'] = array(
 	'newestpages' => 'Halaman terbaru',
-	'newestpages-header' => "'''Halaman ini memberikan daftar $1 halaman terbaru di wiki ini.'''",
+	'newestpages-desc' => 'Menampilkan [[Special:NewestPages|X halaman terakhir]] yang ditambahkan ke wiki',
+	'newestpages-header' => "'''Halaman ini menyajikan daftar {{PLURAL:$1|halaman|$1 halaman}} terbaru di wiki ini.'''",
 	'newestpages-limitlinks' => 'Menampilkan sampai $1 halaman',
 	'newestpages-namespace' => 'Ruang nama:',
 	'newestpages-none' => 'Tidak ditemukan entri.',
-	'newestpages-ns-header' => "'''Halaman ini memberikan daftar $1 halaman terbaru di ruang nama $2.'''",
-	'newestpages-showing' => 'Menampilkan $1 halaman terbaru:',
-	'newestpages-submit' => 'Cari',
+	'newestpages-ns-header' => "'''Halaman ini menyajikan daftar {{PLURAL:$1|halaman|$1 halaman}} terbaru di ruang nama $2.'''",
+	'newestpages-showing' => 'Menampilkan {{PLURAL:$1|halaman|$1 halaman}} terbaru:',
+	'newestpages-submit' => 'Tuju ke',
 	'newestpages-showredir' => 'Tampilkan halaman pengalihan',
 	'newestpages-hideredir' => 'Sembunyikan halaman pengalihan',
 );
@@ -580,7 +737,7 @@
  */
 $messages['it'] = array(
 	'newestpages' => 'Pagine più recenti',
-	'newestpages-desc' => 'Mostra le [[Special:Newestpages|ultime X pagine]] aggiunte alla wiki',
+	'newestpages-desc' => 'Mostra le [[Special:NewestPages|ultime X pagine]] aggiunte alla wiki',
 	'newestpages-header' => "'''In questa pagina {{PLURAL:$1|viene elencata la pagina creata|vengono elencate le $1 pagine create}} più di recente nel sito.'''",
 	'newestpages-limitlinks' => 'Mostra fino a $1 pagine',
 	'newestpages-namespace' => 'Namespace:',
@@ -594,13 +751,14 @@
 
 /** Japanese (日本語)
  * @author Fryed-peach
+ * @author 青子守歌
  */
 $messages['ja'] = array(
 	'newestpages' => '新規作成されたページ',
-	'newestpages-desc' => 'ウィキに追加された[[Special:Newestpages|最新のX件のページ]]を表示する',
+	'newestpages-desc' => 'ウィキに追加された[[Special:NewestPages|最新のX件のページ]]を表示する',
 	'newestpages-header' => "'''このページにはウィキ内の{{PLURAL:$1|新規ページ|新規ページ$1件}}が載っています。'''",
 	'newestpages-limitlinks' => '$1 件分を表示する',
-	'newestpages-namespace' => '名前空間:',
+	'newestpages-namespace' => '名前空間:',
 	'newestpages-none' => '該当するものはありませんでした。',
 	'newestpages-ns-header' => "'''このページには$2名前空間の{{PLURAL:$1|新規ページ|新規ページ$1件}}が載っています。'''",
 	'newestpages-showing' => '{{PLURAL:$1|新規ページ|新規ページ$1件}}一覧:',
@@ -623,16 +781,21 @@
 );
 
 /** Georgian (ქართული)
+ * @author BRUTE
  * @author Malafaya
  */
 $messages['ka'] = array(
+	'newestpages' => 'უახლესი გვერდები',
 	'newestpages-namespace' => 'სახელთა სივრცე:',
+	'newestpages-submit' => 'სტატია',
 );
 
 /** Khmer (ភាសាខ្មែរ)
  * @author Chhorran
  * @author Lovekhmer
  * @author Thearith
+ * @author គីមស៊្រុន
+ * @author វ័ណថារិទ្ធ
  */
 $messages['km'] = array(
 	'newestpages' => 'ទំព័រថ្មីៗបំផុត',
@@ -648,6 +811,16 @@
 	'newestpages-hideredir' => 'លាក់ទំព័របញ្ជូនបន្ត',
 );
 
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'newestpages' => 'ಹೊಚ್ಚಹೊಸ ಪುಟಗಳು',
+	'newestpages-submit' => 'ಹೋಗು',
+	'newestpages-showredir' => 'ಪುನರ್ನಿರ್ದೇಶನ ಪುಟಗಳನ್ನು ತೋರಿಸು',
+	'newestpages-hideredir' => 'ಪುನರ್ನಿರ್ದೇಶನ ಪುಟಗಳನ್ನು ಅಡಗಿಸು',
+);
+
 /** Korean (한국어)
  * @author Kwj2772
  */
@@ -669,23 +842,35 @@
 	'newestpages-submit' => 'Agto',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
 	'newestpages' => 'Neuste Sigge',
-	'newestpages-desc' => 'Zeich de [[Special:Newestpages|neuste X Sigge]] em Wiki.',
+	'newestpages-desc' => 'Zeich de [[Special:NewestPages|neuste X Sigge]] em Wiki.',
 	'newestpages-header' => "'''Di Sigg he list {{PLURAL:$1|de neuste Sigg|de $1 neuste Sigge|kein neu Sigge}} em Wiki op.'''",
 	'newestpages-limitlinks' => 'Zeich {{PLURAL:ein Sigg|bes op $1 Sigge|kein Sigg}}:',
 	'newestpages-namespace' => 'Appachtemang:',
 	'newestpages-none' => 'Keine Enndraach jefonge.',
 	'newestpages-ns-header' => "'''Di Sigg he list {{PLURAL:de neuste Sigg|de $1 neuste Sigge|kein neu Sigge}} em Appachtemang $2 op.'''",
 	'newestpages-showing' => 'Zeich {{PLURAL:de neuste Sigg|de $1 neuste Sigge|kein neu Sigge}}:',
-	'newestpages-submit' => 'Loß Jonn!',
+	'newestpages-submit' => 'Lohß Jonn!',
 	'newestpages-showredir' => 'Zeich Ömleidunge',
 	'newestpages-hideredir' => 'Lohß Ömleidunge fott',
 );
 
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'newestpages' => 'Rûpelên herî nû',
+	'newestpages-namespace' => 'Boşahîya nav:',
+	'newestpages-none' => 'Ti gorat nehate dîtin.',
+	'newestpages-submit' => 'Biçe',
+	'newestpages-showredir' => 'Rûpelên redirect nîşan bide',
+	'newestpages-hideredir' => 'Rûpelên redirect veşêre',
+);
+
 /** Latin (Latina)
  * @author SPQRobin
  */
@@ -695,28 +880,36 @@
 );
 
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
-	'newestpages' => 'Neitste Säiten',
-	'newestpages-desc' => 'Weist déi [[Special:Newestpages|läscht X Säiten]] déi op enger Wiki opgemaach goufen',
-	'newestpages-header' => "'''Op dëser Säit {{Plural:$1|steet déi neitste Säit|stinn déi $1 neitste Säite}} vun dëser Wiki.'''",
+	'newestpages' => 'Neiste Säiten',
+	'newestpages-desc' => 'Weist déi [[Special:NewestPages|läscht X Säiten]] déi op enger Wiki opgemaach goufen',
+	'newestpages-header' => "'''Op dëser Säit {{Plural:$1|steet déi neiste Säit|stinn déi $1 neiste Säite}} vun dëser Wiki.'''",
 	'newestpages-limitlinks' => 'Weis bis zu $1 Säiten',
 	'newestpages-namespace' => 'Nummraum:',
 	'newestpages-none' => 'Näischt fonnt.',
-	'newestpages-ns-header' => "'''Op dëser Säit {{PLURAL:$1|steet déi neitste Säit|stinn déi $1 neitste Säiten}} aus dem Nummraum $2.'''",
-	'newestpages-showing' => 'Weis déi {{PLURAL:$1|neitste Säit|$1 neitste Säiten}}:',
+	'newestpages-ns-header' => "'''Op dëser Säit {{PLURAL:$1|steet déi neiste Säit|stinn déi $1 neiste Säiten}} aus dem Nummraum $2.'''",
+	'newestpages-showing' => 'Weis déi {{PLURAL:$1|neiste Säit|$1 neiste Säiten}}:',
 	'newestpages-submit' => 'Sichen',
 	'newestpages-showredir' => 'Weis Redirect-Säiten',
 	'newestpages-hideredir' => 'Verstopp Redirect-Säiten',
 );
 
+/** Ganda (Luganda)
+ * @author Kizito
+ */
+$messages['lg'] = array(
+	'newestpages-namespace' => 'Kuŋaanyizo:',
+);
+
 /** Lithuanian (Lietuvių)
  * @author Hugo.arg
  */
 $messages['lt'] = array(
 	'newestpages' => 'Naujausi puslapiai',
-	'newestpages-desc' => 'Rodo [[Special:Newestpages|paskutiniuosius X puslapius]], pridėtus į wiki',
+	'newestpages-desc' => 'Rodo [[Special:NewestPages|paskutiniuosius X puslapius]], pridėtus į wiki',
 	'newestpages-header' => "'''Šis puslapis rikiuoja $1 naujausius šios wiki puslapius.'''",
 	'newestpages-limitlinks' => 'Rodyti iki $1 puslapių',
 	'newestpages-namespace' => 'Vardų sritis:',
@@ -728,6 +921,30 @@
 	'newestpages-hideredir' => 'Slėpti peradresavimų puslapius',
 );
 
+/** Latgalian (Latgaļu)
+ * @author Dark Eagle
+ */
+$messages['ltg'] = array(
+	'newestpages-namespace' => 'Vuordu pluots:',
+);
+
+/** Latvian (Latviešu)
+ * @author GreenZeb
+ */
+$messages['lv'] = array(
+	'newestpages' => 'Jaunākās lapas',
+	'newestpages-desc' => 'Rāda [[Special:NewestPages|pēdējās X lapas]], kas pievienotas Vikipēidjā',
+	'newestpages-header' => "Šajā lapā ir {{PLURAL:$1|parādīta viki jaunākā lapa| parādītas viki $1 jaunākās lapas}}.'''",
+	'newestpages-limitlinks' => 'Rādīt līdz $1 lapām',
+	'newestpages-namespace' => 'Vārdtelpa:',
+	'newestpages-none' => 'Netika atrasts neviens ieraksts.',
+	'newestpages-ns-header' => "Šajā lapā ir {{PLURAL:$1|parādīta jaunākā lapa| parādītas $1 jaunākās lapas}} $2 vārdtelpā.'''",
+	'newestpages-showing' => 'Rāda {{PLURAL:$1|jaunāko lapu|$1 jaunākās lapas}}:',
+	'newestpages-submit' => 'Atlasīt',
+	'newestpages-showredir' => 'Parādīt pāradresācijas',
+	'newestpages-hideredir' => 'Paslēpt pāradresācijas',
+);
+
 /** Eastern Mari (Олык Марий)
  * @author Сай
  */
@@ -735,29 +952,55 @@
 	'newestpages-namespace' => 'Лӱм-влакын кумдыкышт:',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'newestpages' => 'Најнови страници',
+	'newestpages-desc' => 'Ги прикажува [[Special:NewestPages|последните X страници]] додадени на викито',
+	'newestpages-header' => "'''На оваа страница {{PLURAL:$1|е наведена најновата страница|се наведени $1-те најнови страници}} на викито.'''",
+	'newestpages-limitlinks' => 'Прикажи највеќе $1 страници',
+	'newestpages-namespace' => 'Именски простор:',
+	'newestpages-none' => 'Нема пронајдено записи.',
+	'newestpages-ns-header' => "'''На оваа страница {{PLURAL:$1|е прикажана најновата страница|се прикажани $1-те најнови страници}} во именскиот простор $2.'''",
+	'newestpages-showing' => 'Приказ на {{PLURAL:$1|најновата страница|$1-те најнови страници}}:',
+	'newestpages-submit' => 'Прикажи',
+	'newestpages-showredir' => 'Прикажи пренасочувања',
+	'newestpages-hideredir' => 'Скриј пренасочувања',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'newestpages' => 'ഏറ്റവും പുതിയ താളുകള്‍',
-	'newestpages-desc' => 'വിക്കിയിലേക്കു [[Special:Newestpages|അവസാനമായി ചേര്‍ക്കപ്പെട്ട X താളുകള്‍]] പ്രദര്‍ശിപ്പിക്കുന്നു.',
-	'newestpages-header' => "'''വിക്കിയിലെ ഏറ്റവും പുതിയ $1 താളുകള്‍ ഈ താളില്‍ പ്രദര്‍ശിപ്പിച്ചിരിക്കുന്നു.'''",
-	'newestpages-limitlinks' => '$1 താളുകള്‍ വരെ പ്രദര്‍ശിപ്പിക്കുന്നു',
-	'newestpages-namespace' => 'നേംസ്പേസ്:',
-	'newestpages-none' => 'എന്‍‌ട്രികള്‍ ഒന്നും കണ്ടില്ല.',
-	'newestpages-ns-header' => "'''ഈ താള്‍ $2 നേംസ്പേസിലുള്ള ഏറ്റവും പുതിയ $1 താളുകള്‍ പ്രദര്‍ശിപ്പിക്കുന്നു.'''",
-	'newestpages-showing' => 'ഏറ്റവും പുതിയ $1 താളുകള്‍ പ്രദര്‍ശിപ്പിക്കുന്നു:',
+	'newestpages' => 'ഏറ്റവും പുതിയ താളുകൾ',
+	'newestpages-desc' => 'വിക്കിയിലേക്കു [[Special:NewestPages|അവസാനമായി ചേർക്കപ്പെട്ട X താളുകൾ]] പ്രദർശിപ്പിക്കുന്നു.',
+	'newestpages-header' => "'''വിക്കിയിലെ ഏറ്റവും {{PLURAL:$1|പുതിയ താൾ|പുതിയ $1 താളുകൾ}} ഈ താളിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.'''",
+	'newestpages-limitlinks' => '$1 താളുകൾ വരെ പ്രദർശിപ്പിക്കുന്നു',
+	'newestpages-namespace' => 'നാമമേഖല:',
+	'newestpages-none' => 'എൻ‌ട്രികൾ ഒന്നും കണ്ടില്ല.',
+	'newestpages-ns-header' => "ഈ താൾ $2 നാമമേഖലയിൽ പുതുതായി സൃഷ്ടിക്കപ്പെട്ട {{PLURAL:$1|ഒരു താൾ|$1 താളുകൾ}} പ്രദർശിപ്പിക്കുന്നു.'''",
+	'newestpages-showing' => 'ഏറ്റവും പുതിയ {{PLURAL:$1|താൾ|$1 താളുകൾ}} പ്രദർശിപ്പിക്കുന്നു:',
 	'newestpages-submit' => 'പോകൂ',
-	'newestpages-showredir' => 'തിരിച്ചുവിടല്‍ താളുകള്‍ പ്രദര്‍ശിപ്പിക്കുക',
-	'newestpages-hideredir' => 'തിരിച്ചുവിടല്‍ താളുകള്‍ മറയ്ക്കുക',
+	'newestpages-showredir' => 'തിരിച്ചുവിടൽ താളുകൾ പ്രദർശിപ്പിക്കുക',
+	'newestpages-hideredir' => 'തിരിച്ചുവിടൽ താളുകൾ മറയ്ക്കുക',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'newestpages-namespace' => 'Нэрний зай:',
+	'newestpages-submit' => 'Явах',
+);
+
 /** Marathi (मराठी)
  * @author Kaustubh
  */
 $messages['mr'] = array(
 	'newestpages' => 'नवीनतम पाने',
-	'newestpages-desc' => 'विकिवर वाढविण्यात आलेली [[Special:Newestpages|शेवटची X पाने]] दर्शवितो',
+	'newestpages-desc' => 'विकिवर वाढविण्यात आलेली [[Special:NewestPages|शेवटची X पाने]] दर्शवितो',
 	'newestpages-header' => "'''हे पान विकिवर वाढविण्यात आलेल्या शेवटच्या $1 पानांची यादी देते.'''",
 	'newestpages-limitlinks' => '$1 पर्यंतची पाने दाखवा',
 	'newestpages-namespace' => 'नामविश्व:',
@@ -769,17 +1012,25 @@
 	'newestpages-hideredir' => 'पुनर्निर्देशन पाने लपवा',
 );
 
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ */
+$messages['ms'] = array(
+	'newestpages-submit' => 'Pergi',
+);
+
 /** Maltese (Malti)
  * @author Chrisportelli
  */
 $messages['mt'] = array(
 	'newestpages' => 'Paġni l-aktar riċenti',
-	'newestpages-desc' => 'Turi l-[[Special:Newestpages|aħħar X paġna]] miżjuda fuq il-wiki.',
-	'newestpages-header' => "'''Din il-paġna turi l-$1 paġna ġdida fuq il-wiki.'''",
+	'newestpages-desc' => 'Turi l-[[Special:NewestPages|aħħar X paġna]] miżjuda fuq il-wiki.',
+	'newestpages-header' => "'''Din il-paġna turi l-aktar {{PLURAL:$1|paġna riċenti|$1 paġna riċenti}} fuq il-wiki.'''",
 	'newestpages-limitlinks' => 'Uri sa $1 paġna',
-	'newestpages-namespace' => "Spazju ta' l-isem:",
+	'newestpages-namespace' => 'Spazju tal-isem:',
 	'newestpages-none' => 'Ma nstabet l-ebda paġna.',
-	'newestpages-ns-header' => "'''Din il-paġna telenka l-$1 paġna ġodda fl-ispazju ta' l-isem $2.'''",
+	'newestpages-ns-header' => "'''Din il-paġna telenka l-aktar {{PLURAL:$1|paġna riċenti|$1 paġna riċenti}} fl-ispazju tal-isem $2.'''",
+	'newestpages-showing' => 'Lista tal-{{PLURAL:$1|paġna|$1 paġna}} l-aktar riċenti:',
 	'newestpages-submit' => 'Mur',
 	'newestpages-showredir' => 'Uri r-riindirizzi',
 	'newestpages-hideredir' => 'Aħbi r-riindirizzi',
@@ -790,6 +1041,7 @@
  */
 $messages['myv'] = array(
 	'newestpages-namespace' => 'Лем потмозо:',
+	'newestpages-submit' => 'Адя',
 );
 
 /** Nahuatl (Nāhuatl)
@@ -797,7 +1049,7 @@
  */
 $messages['nah'] = array(
 	'newestpages' => 'Yancuīc zāzaniltin',
-	'newestpages-desc' => 'Tiquinttāz in [[Special:Newestpages|xōcoyōc X zāzaniltin]] huiquipan',
+	'newestpages-desc' => 'Tiquinttāz in [[Special:NewestPages|xōcoyōc X zāzaniltin]] huiquipan',
 	'newestpages-header' => "'''Nicān, in achi yancuīc ahmo {{PLURAL:$1|occē|occequīntīn $1}} zāzanilli huiquipan.'''",
 	'newestpages-limitlinks' => 'Xiquintta huehca ōmpa $1 zāzaniltin',
 	'newestpages-namespace' => 'Tōcātzin:',
@@ -809,12 +1061,30 @@
 	'newestpages-hideredir' => 'Tiquintlātīz tlacuepaliztli zāzaniltin',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ * @author Nghtwlkr
+ */
+$messages['nb'] = array(
+	'newestpages' => 'Nyeste sider',
+	'newestpages-desc' => 'Viser de [[Special:NewestPages|siste X sidene]] som er lagt til på wikien',
+	'newestpages-header' => "'''Denne siden lister opp {{PLURAL:$1|den nyeste siden|de $1 nyeste sidene}} på denne wikien.'''",
+	'newestpages-limitlinks' => 'Vis opptil $1 sider',
+	'newestpages-namespace' => 'Navnerom:',
+	'newestpages-none' => 'Ingenting funnet.',
+	'newestpages-ns-header' => "'''Denne siden lister opp {{PLURAL:$1|den nyeste siden|de $1 nyeste sidene}} i navnerommet $2.'''",
+	'newestpages-showing' => 'Lister opp {{PLURAL:$1|den nyeste siden|de $1 nyeste sidene}}:',
+	'newestpages-submit' => 'Gå',
+	'newestpages-showredir' => 'Vis omdirigeringer',
+	'newestpages-hideredir' => 'Skjul omdirigeringer',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
 $messages['nds'] = array(
 	'newestpages' => 'Ne’este Sieden',
-	'newestpages-desc' => 'Wiest de [[Special:Newestpages|lesten X ne’en Sieden]] op dat Wiki',
+	'newestpages-desc' => 'Wiest de [[Special:NewestPages|lesten X ne’en Sieden]] op dat Wiki',
 	'newestpages-header' => "'''Disse Sied wiest de {{PLURAL:$1|ne’este Sied|$1 ne’esten Sieden}} op dat Wiki.'''",
 	'newestpages-limitlinks' => '$1 Sieden wiesen',
 	'newestpages-namespace' => 'Naamruum:',
@@ -826,13 +1096,26 @@
 	'newestpages-hideredir' => 'Wiederleiden nich wiesen',
 );
 
+/** Nepali (नेपाली)
+ * @author RajeshPandey
+ */
+$messages['ne'] = array(
+	'newestpages' => 'नयाँ पृष्ठहरू',
+	'newestpages-limitlinks' => '$1 वटा पृष्ठहरू देखाउ',
+	'newestpages-namespace' => 'नामस्थान:',
+	'newestpages-none' => 'कुनैपनि प्रविष्ठि पाइएन।',
+	'newestpages-submit' => 'जाउ',
+	'newestpages-showredir' => 'रिडाइरेक्ट पृष्ठहरू देखाउ',
+	'newestpages-hideredir' => 'रिडाइरेक्ट पृष्ठहरू लुकाउ',
+);
+
 /** Dutch (Nederlands)
  * @author SPQRobin
  * @author Siebrand
  */
 $messages['nl'] = array(
 	'newestpages' => "Nieuwe pagina's",
-	'newestpages-desc' => "De [[Special:Newestpages|laatste X nieuwe pagina's]] in de wiki",
+	'newestpages-desc' => "De [[Special:NewestPages|laatste X nieuwe pagina's]] in de wiki",
 	'newestpages-header' => "'''Op deze pagina {{PLURAL:$1|staat de meest recent aangemaakte pagina|staan de $1 meest recent aangemaakte pagina's}} van deze wiki.'''",
 	'newestpages-limitlinks' => "Geeft maximaal $1 pagina's weer",
 	'newestpages-namespace' => 'Naamruimte:',
@@ -850,7 +1133,7 @@
  */
 $messages['nn'] = array(
 	'newestpages' => 'Nyaste sider',
-	'newestpages-desc' => 'Viser dei [[Special:Newestpages|X siste sidene]] som er lagt til på wikien',
+	'newestpages-desc' => 'Viser dei [[Special:NewestPages|X siste sidene]] som er lagt til på wikien',
 	'newestpages-header' => "'''Denne sida listar opp {{PLURAL:$1|den nyaste sida|dei $1 nyaste sidene}} på denne wikien.'''",
 	'newestpages-limitlinks' => 'Vis opptil $1 sider',
 	'newestpages-namespace' => 'Namnerom:',
@@ -862,23 +1145,6 @@
 	'newestpages-hideredir' => 'Gøym omdirigeringar',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'newestpages' => 'Nyeste sider',
-	'newestpages-desc' => 'Viser de [[Special:Newestpages|siste X sidene]] som er lagt til på wikien',
-	'newestpages-header' => "'''Denne siden lister opp de $1 nyeste sidene på denne wikien.'''",
-	'newestpages-limitlinks' => 'Vis opptil $1 sider',
-	'newestpages-namespace' => 'Navnerom:',
-	'newestpages-none' => 'Ingenting funnet.',
-	'newestpages-ns-header' => "'''Denne siden lister opp de $1 nyeste sidene i navnerommet $2.'''",
-	'newestpages-showing' => 'Lister opp de $1 nyeste sidene:s',
-	'newestpages-submit' => 'Gå',
-	'newestpages-showredir' => 'Vis omdirigeringer',
-	'newestpages-hideredir' => 'Skjul omdirigeringer',
-);
-
 /** Northern Sotho (Sesotho sa Leboa)
  * @author Mohau
  */
@@ -891,7 +1157,7 @@
  */
 $messages['oc'] = array(
 	'newestpages' => 'Paginas mai recentas',
-	'newestpages-desc' => 'Aficha las [[Special:Newestpages|darrièras paginas]] apondudas al wiki.',
+	'newestpages-desc' => 'Aficha las [[Special:NewestPages|darrièras paginas]] apondudas al wiki.',
 	'newestpages-header' => "'''Aquesta pagina lista {{PLURAL:$1|la pagina mai recenta|las $1 paginas mai recentas}} sul wiki.'''",
 	'newestpages-limitlinks' => 'Afichar fins a $1 paginas',
 	'newestpages-namespace' => 'Espaci de nom :',
@@ -903,6 +1169,13 @@
 	'newestpages-hideredir' => 'Amagar las paginas de redireccion.',
 );
 
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'newestpages-showing' => '{{PLURAL:$1|newest page|$1 ନଗଦ ପୃଷ୍ଠାସବୁର}} ତାଲିକା ତିଆରି କରୁଛି:',
+);
+
 /** Punjabi (ਪੰਜਾਬੀ)
  * @author Gman124
  */
@@ -910,6 +1183,14 @@
 	'newestpages' => 'ਨਵੇਂ ਲੇਖ',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'newestpages-namespace' => 'Blatznaame:',
+	'newestpages-submit' => 'Uffgucke',
+);
+
 /** Polish (Polski)
  * @author Derbeth
  * @author Leinad
@@ -917,7 +1198,7 @@
  */
 $messages['pl'] = array(
 	'newestpages' => 'Najnowsze strony',
-	'newestpages-desc' => 'Pokazuje [[Special:Newestpages|X stron]] ostatnio dodanych do wiki',
+	'newestpages-desc' => 'Pokazuje [[Special:NewestPages|X stron]] ostatnio dodanych do wiki',
 	'newestpages-header' => "'''Ta strona zawiera {{PLURAL:$1|nazwę najnowszej strony|listę z $1 najnowszymi stronami}} tej wiki.'''",
 	'newestpages-limitlinks' => 'Pokaż do $1 stron',
 	'newestpages-namespace' => 'Przestrzeń nazw:',
@@ -931,15 +1212,17 @@
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
 	'newestpages' => 'Pàgine pì neuve',
-	'newestpages-header' => "'''Ambelessì a-i é la lista dle $1 pàgine pì neuve dla wiki.'''",
+	'newestpages-desc' => "A mosta j'[[Special:NewestPages|ùltime X pàgine]] giontà a la wiki",
+	'newestpages-header' => "'''Sta pàgina-sì a lista {{PLURAL:$1|la pàgina pì neuva|le $1 pàgine pì neuve}} an sla wiki.'''",
 	'newestpages-limitlinks' => 'Smon fin a $1 pàgine',
 	'newestpages-namespace' => 'Spassi nominal:',
 	'newestpages-none' => 'Gnun-a vos trovà.',
-	'newestpages-ns-header' => "'''Ambelessì a-i é la lista dle $1 pàgine pì neuve dlë spassi nominal $2.'''",
-	'newestpages-showing' => 'Lista dle $1 pàgine pì neuve:',
+	'newestpages-ns-header' => "'''Sta pàgina-sì a lista {{PLURAL:$1|la pàgina pì neuva|le $1 pàgine pì neuve}} an slë spassi nominal $2.'''",
+	'newestpages-showing' => 'Lista {{PLURAL:$1|dla pàgina pì neuva|dle $1 pagine pì neuve}}:',
 	'newestpages-submit' => 'Va',
 	'newestpages-showredir' => "Smon j'ardiression",
 	'newestpages-hideredir' => "Stërma j'ardiression",
@@ -956,29 +1239,31 @@
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Lugusto
  * @author Waldir
  */
 $messages['pt'] = array(
-	'newestpages' => 'Páginas novas',
-	'newestpages-desc' => 'Mostra as [[Special:Newestpages|últimas X páginas]] adicionadas ao wiki',
-	'newestpages-header' => "'''Esta página lista {{PLURAL:$1|a página mais recente|as $1 páginas mais recentes}} deste wiki.'''",
-	'newestpages-limitlinks' => 'Exibir até $1 páginas',
+	'newestpages' => 'Páginas mais recentes',
+	'newestpages-desc' => 'Mostra as [[Special:NewestPages|últimas X páginas]] adicionadas à wiki',
+	'newestpages-header' => "'''Esta página lista {{PLURAL:$1|a página mais recente|as $1 páginas mais recentes}} desta wiki.'''",
+	'newestpages-limitlinks' => 'Mostrar até $1 páginas',
 	'newestpages-namespace' => 'Espaço nominal:',
 	'newestpages-none' => 'Não foram encontrados resultados.',
 	'newestpages-ns-header' => "'''Esta página lista {{PLURAL:$1|a página mais recente|as $1 páginas mais recentes}} do espaço nominal $2.'''",
-	'newestpages-showing' => 'Listando {{PLURAL:$1|a página mais recente|as $1 páginas mais recentes}}:',
+	'newestpages-showing' => 'A listar {{PLURAL:$1|a página mais recente|as $1 páginas mais recentes}}:',
 	'newestpages-submit' => 'Ir',
-	'newestpages-showredir' => 'Exibir redireccionamentos',
+	'newestpages-showredir' => 'Mostrar redireccionamentos',
 	'newestpages-hideredir' => 'Ocultar redireccionamentos',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Waldir
  */
 $messages['pt-br'] = array(
-	'newestpages' => 'Páginas novas',
-	'newestpages-desc' => 'Mostra as [[Special:Newestpages|últimas X páginas]] adicionadas ao wiki',
+	'newestpages' => 'Páginas mais recentes',
+	'newestpages-desc' => 'Mostra as [[Special:NewestPages|últimas X páginas]] adicionadas ao wiki',
 	'newestpages-header' => "'''Esta página lista {{PLURAL:$1|a página mais recente|as $1 páginas mais recentes}} deste wiki.'''",
 	'newestpages-limitlinks' => 'Exibir até $1 páginas',
 	'newestpages-namespace' => 'Espaço nominal:',
@@ -1003,14 +1288,16 @@
  */
 $messages['ro'] = array(
 	'newestpages' => 'Cele mai noi pagini',
-	'newestpages-desc' => 'Arată [[Special:Newestpages|ultimele X pagini]] adăugate în wiki',
-	'newestpages-header' => "'''Această pagină listează {{PLURAL:$1|pagina cea mai nouă|$1 cele mai noi pagini}} din wiki.'''",
+	'newestpages-desc' => 'Arată [[Special:NewestPages|ultimele X pagini]] adăugate în wiki',
+	'newestpages-header' => "'''Această pagină afișează {{PLURAL:$1|pagina cea mai nouă|$1 cele mai noi pagini}} din wiki.'''",
 	'newestpages-limitlinks' => 'Arată până la $1 pagini',
-	'newestpages-namespace' => 'Spaţiu de nume:',
+	'newestpages-namespace' => 'Spațiu de nume:',
 	'newestpages-none' => 'Nu au fost găsite intrări.',
-	'newestpages-ns-header' => "'''Această pagină listează {{PLURAL:$1|pagina cea mai nouă|$1 cele mai noi pagini}} din spaţiul de nume $2.'''",
-	'newestpages-showredir' => 'Arată paginile de redirecţionare',
-	'newestpages-hideredir' => 'Ascunde paginile de redirecţionare',
+	'newestpages-ns-header' => "'''Această pagină afișează {{PLURAL:$1|pagina cea mai nouă|$1 cele mai noi pagini}} din spațiul de nume $2.'''",
+	'newestpages-showing' => 'Afișează {{PLURAL:$1|pagină nouă|$1 pagini noi}}:',
+	'newestpages-submit' => 'Du-te',
+	'newestpages-showredir' => 'Arată paginile de redirecționare',
+	'newestpages-hideredir' => 'Ascunde paginile de redirecționare',
 );
 
 /** Tarandíne (Tarandíne)
@@ -1025,7 +1312,7 @@
  */
 $messages['ru'] = array(
 	'newestpages' => 'Новые страницы',
-	'newestpages-desc' => 'Показывает [[Special:Newestpages|последние X страниц]] добавленных в вики',
+	'newestpages-desc' => 'Показывает [[Special:NewestPages|последние X страниц]] добавленных в вики',
 	'newestpages-header' => "'''Эта страница {{PLURAL:$1|является новейшей|входит в список $1 новейших страниц}} этой вики.'''",
 	'newestpages-limitlinks' => 'Показывать до $1 страниц',
 	'newestpages-namespace' => 'Пространство имён:',
@@ -1042,7 +1329,7 @@
  */
 $messages['sk'] = array(
 	'newestpages' => 'Najnovšie stránky',
-	'newestpages-desc' => 'Zobrazuje [[Special:Newestpages|posledných X stránok]] pridaných na wiki',
+	'newestpages-desc' => 'Zobrazuje [[Special:NewestPages|posledných X stránok]] pridaných na wiki',
 	'newestpages-header' => "'''Toto je {{PLURAL:$1|najnovšia stránka|zoznam $1 najnovších stránok}} na wiki.'''",
 	'newestpages-limitlinks' => 'Zobraziť najviac $1 stránok',
 	'newestpages-namespace' => 'Menný priestor:',
@@ -1054,49 +1341,41 @@
 	'newestpages-hideredir' => 'Skryť presmerovacie stránky',
 );
 
-/** Serbian (Српски / Srpski)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Nikola Smolenski
+ * @author Rancher
  * @author Sasa Stefanovic
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
  */
-$messages['sr'] = array(
-	'newestpages' => 'Најновије странице',
-	'newestpages-header' => "'''Ова страница показује $1 најновијих страница на Вики.'''",
-	'newestpages-limitlinks' => 'Прикажи $1 страница',
-	'newestpages-namespace' => 'Именски простор:',
-	'newestpages-none' => 'Није ништа пронађено.',
-	'newestpages-ns-header' => "'''Ова страница показује $1 најновијих страница у $2 именском простору.'''",
-	'newestpages-showing' => 'Приказ $1 најновијих страница:',
-	'newestpages-submit' => 'Иди',
-	'newestpages-showredir' => 'Прикажи странице преусмерења',
-	'newestpages-hideredir' => 'Сакриј странице преусмерења',
-);
-
-/** Serbian Cyrillic ekavian (ћирилица)
- * @author Sasa Stefanovic
- */
 $messages['sr-ec'] = array(
 	'newestpages' => 'Најновије странице',
-	'newestpages-header' => "'''Ова страница показује $1 најновијих страница на Вики.'''",
+	'newestpages-desc' => 'Показује [[Special:NewestPages|последњих X страница]] додатих викију',
+	'newestpages-header' => "'''Ово је списак {{PLURAL:$1|са најновијом страном|$1 најновијих страна}} на овој Вики.'''",
 	'newestpages-limitlinks' => 'Прикажи $1 страница',
 	'newestpages-namespace' => 'Именски простор:',
 	'newestpages-none' => 'Није ништа пронађено.',
-	'newestpages-ns-header' => "'''Ова страница показује $1 најновијих страница у $2 именском простору.'''",
-	'newestpages-showing' => 'Приказ $1 најновијих страница:',
+	'newestpages-ns-header' => "'''Ово је списак {{PLURAL:$1|са најновијом страном|$1 најновијих страна}} на у именском простору $2.'''",
+	'newestpages-showing' => 'Списак {{PLURAL:$1|најновије стране|$1 најновијих страна}}:',
 	'newestpages-submit' => 'Иди',
 	'newestpages-showredir' => 'Прикажи странице преусмерења',
 	'newestpages-hideredir' => 'Сакриј странице преусмерења',
 );
 
-/** latinica (latinica)
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Liangent
+ * @author Michaello
  * @author Sasa Stefanovic
  */
 $messages['sr-el'] = array(
 	'newestpages' => 'Najnovije stranice',
-	'newestpages-header' => "'''Ova stranica pokazuje $1 najnovijih stranica na Viki.'''",
+	'newestpages-desc' => 'Pokazuje [[Special:NewestPages|zadnjih X članaka]] dodatih Vikiju',
+	'newestpages-header' => "'''Ovo je spisak {{PLURAL:$1|sa najnovijom stranom|$1 najnovijih strana}} na ovoj Viki.'''",
 	'newestpages-limitlinks' => 'Prikaži $1 stranica',
 	'newestpages-namespace' => 'Imenski prostor:',
 	'newestpages-none' => 'Nije ništa pronađeno.',
-	'newestpages-ns-header' => "'''Ova stranica pokazuje $1 najnovijih stranica u $2 imenskom prostoru.'''",
-	'newestpages-showing' => 'Prikaz $1 najnovijih stranica:',
+	'newestpages-ns-header' => "'''Ovo je spisak {{PLURAL:$1|sa najnovijom stranom|$1 najnovijih strana}} na u imenskom prostoru $2.'''",
+	'newestpages-showing' => 'Spisak {{PLURAL:$1|najnovije strane|$1 najnovijih strana}}:',
 	'newestpages-submit' => 'Idi',
 	'newestpages-showredir' => 'Prikaži stranice preusmerenja',
 	'newestpages-hideredir' => 'Sakrij stranice preusmerenja',
@@ -1114,12 +1393,12 @@
  */
 $messages['stq'] = array(
 	'newestpages' => 'Näiste Sieden',
-	'newestpages-header' => "'''Disse Siede liestet do $1 näiste Sieden fon dit Wiki ap.'''",
+	'newestpages-header' => "'''Disse Siede liestet {{PLURAL:$1|ju näiste Siede|do $1 näiste Sieden}} fon dit Wiki ap.'''",
 	'newestpages-limitlinks' => 'Wies $1 Sieden',
 	'newestpages-namespace' => 'Noomensruum:',
 	'newestpages-none' => 'Naan Iendraach fuunen.',
-	'newestpages-ns-header' => "'''Disse Siede liestet do $1 näiste Sieden in dän Noomensruum $2 ap.'''",
-	'newestpages-showing' => 'Do $1 näiste Sieden:',
+	'newestpages-ns-header' => "'''Disse Siede liestet {{PLURAL:$1|ju $1 näiste Siede|do $1 näiste Sieden}} in dän Noomensruum $2 ap.'''",
+	'newestpages-showing' => '{{PLURAL:$1|Ju näiste Siede|Do $1 näiste Sieden}}:',
 	'newestpages-submit' => 'Säike (1)',
 	'newestpages-showredir' => 'Wiederlaitengssieden anwiese',
 	'newestpages-hideredir' => 'Wiederlaitengssieden ferstopje.',
@@ -1130,7 +1409,7 @@
  */
 $messages['su'] = array(
 	'newestpages' => 'Kaca-kaca panganyarna',
-	'newestpages-desc' => 'Témbongkeun [[Special:Newestpages|X kaca panungtung]] nu dijieun di wiki',
+	'newestpages-desc' => 'Témbongkeun [[Special:NewestPages|X kaca panungtung]] nu dijieun di wiki',
 	'newestpages-header' => "'''Ieu kaca ngabéréndélkeun $1 kaca panganyarna di wiki.'''",
 	'newestpages-limitlinks' => 'Témbongkeun nepi ka $1 kaca',
 	'newestpages-namespace' => 'Spasi ngaran:',
@@ -1149,7 +1428,7 @@
  */
 $messages['sv'] = array(
 	'newestpages' => 'Nyaste sidor',
-	'newestpages-desc' => 'Visar de [[Special:Newestpages|senaste X sidorna]] som lagts till i wikin',
+	'newestpages-desc' => 'Visar de [[Special:NewestPages|senaste X sidorna]] som lagts till i wikin',
 	'newestpages-header' => "'''Denna sida listar {{PLURAL:$1|den nyaste sidan|de $1 nyaste sidorna}} på wikin.'''",
 	'newestpages-limitlinks' => 'Visa upp till $1 sidor',
 	'newestpages-namespace' => 'Namnrymd:',
@@ -1162,24 +1441,36 @@
 );
 
 /** Tamil (தமிழ்)
+ * @author TRYPPN
  * @author Ulmo
  */
 $messages['ta'] = array(
+	'newestpages' => 'புத்தம்புதிய பக்கங்கள்',
+	'newestpages-desc' => 'விக்கியில் சேர்க்கப்பட்ட [[Special:NewestPages| கடைசி 10 பக்கங்களைக்]]  காட்டுகிறது',
+	'newestpages-header' => "'''இந்த பக்கமானது விக்கியில் உருவான {{PLURAL:$1|புத்தம் புதிய பக்கம்|$1 புத்தம் புதிய பக்கங்களை}} பட்டியலிட்டுக்காட்டுகிறது.'''",
+	'newestpages-limitlinks' => '$1 பக்கம் வரை காட்டவும்',
 	'newestpages-namespace' => 'பெயர்வெளி:',
+	'newestpages-none' => 'எந்தவித உள்ளடக்கமும் காணப்படவில்லை',
+	'newestpages-ns-header' => "'''இந்த பக்கமானது $2 பெயர்வெளியில் உருவான {{PLURAL:$1|புத்தம் புதிய பக்கம்|$1 புத்தம் புதிய பக்கங்களை}} பட்டியலிட்டுக்காட்டுகிறது.'''",
+	'newestpages-showing' => '{{PLURAL:$1|newest page|$1 புதிய பக்கங்கள்}} பற்றிய பட்டியல்:',
+	'newestpages-submit' => 'செல்',
+	'newestpages-showredir' => 'வழிமாற்றுப் பக்கங்களைக் காண்பிக்கவும்',
+	'newestpages-hideredir' => 'வழிமாற்றுப் பக்கங்களை மறைக்கவும்',
 );
 
 /** Telugu (తెలుగు)
+ * @author Kiranmayee
  * @author Veeven
  */
 $messages['te'] = array(
 	'newestpages' => 'కొంగొత్త పేజీలు',
-	'newestpages-desc' => 'వికీలో చేర్చిన [[Special:Newestpages|చివరి X పేజీల]]ను చూపిస్తుంది',
-	'newestpages-header' => "'''ఈ వికీలోని $1 కొంగొత్త పేజీలను ఈ పేజీ చూపిస్తుంది.'''",
+	'newestpages-desc' => 'వికీలో చేర్చిన [[Special:NewestPages|చివరి X పేజీల]]ను చూపిస్తుంది',
+	'newestpages-header' => "'''ఈ వికీలోని {{PLURAL:$1|క్రొత్త పేజిని|$1 క్రొత్త పేజిలను}} ఈ పేజీ చూపిస్తుంది.'''",
 	'newestpages-limitlinks' => '$1 పేజీల వరకు చూపించు',
 	'newestpages-namespace' => 'పేరుబరి:',
 	'newestpages-none' => 'ఏమీ కనబడలేదు.',
-	'newestpages-ns-header' => "'''ఈ పేజీ $2 పేరుబరి లోని $1 కొత్త పేజీల జాబితాని చూపిస్తుంది.'''",
-	'newestpages-showing' => '$1 కొంగొత్త పేజీలను చూపిస్తున్నాం:',
+	'newestpages-ns-header' => "'''ఈ పేజీ $2 పేరుబరి లోని {{PLURAL:$1|క్రొత్త పేజిని|$1 క్రొత్త పేజిలను}} ఈ పేజీ చూపిస్తుంది.'''",
+	'newestpages-showing' => '{{PLURAL:$1|ఒక కొంగొత్త పేజీని|$1 కొంగొత్త పేజీలను}} చూపిస్తున్నాం:',
 	'newestpages-submit' => 'వెళ్ళు',
 	'newestpages-showredir' => 'దారిమార్పు పేజీలను చూపించు',
 	'newestpages-hideredir' => 'దారిమార్పు పేజీలను దాచు',
@@ -1193,7 +1484,7 @@
 	'newestpages-submit' => 'Bá',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -1205,6 +1496,17 @@
 	'newestpages-hideredir' => 'Пинҳон кардани саҳифаҳои масир',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'newestpages' => 'Sahifahoi navtarin',
+	'newestpages-namespace' => 'Fazoinom:',
+	'newestpages-submit' => 'Birav',
+	'newestpages-showredir' => 'Namoişi sahifahoi masir',
+	'newestpages-hideredir' => 'Pinhon kardani sahifahoi masir',
+);
+
 /** Thai (ไทย)
  * @author Octahedron80
  */
@@ -1212,11 +1514,13 @@
 	'newestpages-namespace' => 'เนมสเปซ:',
 );
 
-/** Turkmen (Türkmen)
+/** Turkmen (Türkmençe)
+ * @author Hanberke
  * @author Runningfridgesrule
  */
 $messages['tk'] = array(
 	'newestpages' => 'Iň täze sahypalar',
+	'newestpages-submit' => 'Git',
 );
 
 /** Tagalog (Tagalog)
@@ -1224,7 +1528,7 @@
  */
 $messages['tl'] = array(
 	'newestpages' => 'Pinakabagong mga pahina',
-	'newestpages-desc' => 'Nagpapakita ng [[Special:Newestpages|huling X mga pahina]]ng naidagdag sa wiki',
+	'newestpages-desc' => 'Nagpapakita ng [[Special:NewestPages|huling X mga pahina]]ng naidagdag sa wiki',
 	'newestpages-header' => "'''Nagtatala ang pahinang ito ng {{PLURAL:$1|pinakabagong pahina|$1 pinakabagong mga pahina}} sa ibabaw ng wiki.'''",
 	'newestpages-limitlinks' => 'Magpakita ng hanggang sa $1 mga pahina',
 	'newestpages-namespace' => 'Espasyo ng pangalan:',
@@ -1236,7 +1540,7 @@
 	'newestpages-hideredir' => 'Itago ang mga pahinang ipinanuto/muling itinuro',
 );
 
-/** Tonga (faka-Tonga)
+/** Tongan (lea faka-Tonga)
  * @author Tauʻolunga
  */
 $messages['to'] = array(
@@ -1254,28 +1558,50 @@
 
 /** Turkish (Türkçe)
  * @author Karduelis
+ * @author Srhat
+ * @author Vito Genovese
  */
 $messages['tr'] = array(
 	'newestpages' => 'En yeni sayfalar',
-	'newestpages-namespace' => 'Alan adı',
+	'newestpages-desc' => 'Vikiye eklenen [[Special:NewestPages|son X sayfayı]] gösterir',
+	'newestpages-header' => "'''Bu sayfa, vikideki {{PLURAL:$1|en yeni sayfayı|en yeni $1 sayfayı}} listelemektedir.'''",
+	'newestpages-limitlinks' => '$1 sayfaya kadar göster',
+	'newestpages-namespace' => 'Ad alanı:',
+	'newestpages-none' => 'Girdi bulunamadı.',
+	'newestpages-ns-header' => "'''Bu sayfa, $2 isim alanındaki {{PLURAL:$1|en yeni sayfayı|en yeni $1 sayfayı}} listelemektedir.'''",
+	'newestpages-showing' => '{{PLURAL:$1|En yeni sayfa|En yeni $1 sayfa}} listeleniyor:',
 	'newestpages-submit' => 'Git',
 	'newestpages-showredir' => 'Yönlendirilmiş sayfaları gör',
 	'newestpages-hideredir' => 'Gizli yönlendirme sayfaları',
 );
 
-/** Uighur (Latin) (Uyghurche‎ / ئۇيغۇرچە (Latin))
+/** Uyghur (Arabic script) (ئۇيغۇرچە)
+ * @author Alfredie
+ */
+$messages['ug-arab'] = array(
+	'newestpages-submit' => 'كۆچۈش',
+);
+
+/** Uyghur (Latin script) (Uyghurche‎)
  * @author Jose77
  */
 $messages['ug-latn'] = array(
 	'newestpages-submit' => 'Köchüsh',
 );
 
+/** Ukrainian (Українська)
+ * @author Тест
+ */
+$messages['uk'] = array(
+	'newestpages-namespace' => 'Простір назв:',
+);
+
 /** Vèneto (Vèneto)
  * @author Candalua
  */
 $messages['vec'] = array(
 	'newestpages' => 'Pagine piassè nove',
-	'newestpages-desc' => 'Mostra le [[Special:Newestpages|ultime X pagine]] zontà a la wiki',
+	'newestpages-desc' => 'Mostra le [[Special:NewestPages|ultime X pagine]] zontà a la wiki',
 	'newestpages-header' => "'''Sta pagina la elenca {{PLURAL:$1|la pagina piassè nova|le $1 pagine piassè nove}} su sta wiki.'''",
 	'newestpages-limitlinks' => 'Mostra fin a $1 pagine',
 	'newestpages-namespace' => 'Namespace:',
@@ -1287,12 +1613,23 @@
 	'newestpages-hideredir' => 'Scondi i redirect',
 );
 
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'newestpages' => 'Kaikiš udembad lehtpoled',
+	'newestpages-namespace' => 'Nimiavaruz:',
+	'newestpages-submit' => 'Mäne',
+	'newestpages-showredir' => 'Ozutada läbikosketusiden lehtpoled',
+	'newestpages-hideredir' => 'Peitta läbikosketusiden lehtpoled',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Vinhtantran
  */
 $messages['vi'] = array(
 	'newestpages' => 'Các trang mới nhất',
-	'newestpages-desc' => 'Hiển thị [[Special:Newestpages|X trang cuối cùng]] được thêm vào wiki',
+	'newestpages-desc' => 'Hiển thị [[Special:NewestPages|X trang cuối cùng]] được thêm vào wiki',
 	'newestpages-header' => "'''Trang này liệt kê {{PLURAL:$1|trang mới nhất|$1 trang mới nhất}} trên wiki.'''",
 	'newestpages-limitlinks' => 'Hiển thị tối đa $1 trang',
 	'newestpages-namespace' => 'Không gian:',
@@ -1310,7 +1647,7 @@
  */
 $messages['vo'] = array(
 	'newestpages' => 'Pads nulikün',
-	'newestpages-desc' => 'Jonön [[Special:Newestpages|padis lätik X]] vüke at peläükölis',
+	'newestpages-desc' => 'Jonön [[Special:NewestPages|padis lätik X]] vüke at peläükölis',
 	'newestpages-header' => "'''Su pad at {{PLURAL:$1|palisedon pad nulikün|palisedons pads nulikün $1}} vüka at.'''",
 	'newestpages-limitlinks' => 'Jonön padis jü $1',
 	'newestpages-namespace' => 'Nemaspad:',
@@ -1322,12 +1659,13 @@
 	'newestpages-hideredir' => 'Klänedön lüodükömapadis',
 );
 
-/** Yue (粵語)
+/** Cantonese (粵語)
  * @author Hillgentleman
  * @author Shinjiman
  */
 $messages['yue'] = array(
 	'newestpages' => '新頁',
+	'newestpages-desc' => '顯示[[Special:NewestPages|最近X版]]到個wiki度',
 	'newestpages-header' => "'''呢度列舉成個維基入面最新 $1 頁。'''",
 	'newestpages-limitlinks' => '攤開頂龍 $1 版',
 	'newestpages-namespace' => '空間名:',
@@ -1339,15 +1677,20 @@
 	'newestpages-hideredir' => '摺埋啲跳轉頁',
 );
 
-/** Simplified Chinese (‪中文(简体)‬) */
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Hydra
+ * @author PhiLiP
+ * @author Xiaomingyan
+ */
 $messages['zh-hans'] = array(
 	'newestpages' => '最新页面',
-	'newestpages-header' => "'''本页面列举维基上第$1新的页面。'''",
+	'newestpages-desc' => '显示[[Special:NewestPages|最近X个页面]]到wiki中',
+	'newestpages-header' => "'''本页面列出了本维基$1最新的页面。'''",
 	'newestpages-limitlinks' => '显示$1个页面',
 	'newestpages-namespace' => '名字空间:',
 	'newestpages-none' => '没找到页面。',
-	'newestpages-ns-header' => "'''本页面列举$2名字空间中第$1新的页面。'''",
-	'newestpages-showing' => '正在列举第$1新的页面:',
+	'newestpages-ns-header' => "'''本页面列出了$2名字空间中$1最新的页面。'''",
+	'newestpages-showing' => '正列出$1最新的页面:',
 	'newestpages-submit' => '提交',
 	'newestpages-showredir' => '显示重定向页面',
 	'newestpages-hideredir' => '隐藏重定向页面',
@@ -1355,16 +1698,18 @@
 
 /** Traditional Chinese (‪中文(繁體)‬)
  * @author KilluaZaoldyeck
+ * @author Mark85296341
  * @author Shinjiman
  */
 $messages['zh-hant'] = array(
 	'newestpages' => '最新頁面',
-	'newestpages-header' => "'''本頁列出維基上第$1新的頁面。'''",
-	'newestpages-limitlinks' => '顯示$1個頁面',
+	'newestpages-desc' => '顯示[[Special:NewestPages|最近 X 個頁面]]到 wiki 中',
+	'newestpages-header' => "'''本頁面列出了本維基$1最新的頁面。'''",
+	'newestpages-limitlinks' => '顯示 $1 個頁面',
 	'newestpages-namespace' => '名字空間:',
 	'newestpages-none' => '沒找到頁面。',
-	'newestpages-ns-header' => "'''本頁列出$2名字空間中第$1個新的頁面。'''",
-	'newestpages-showing' => '正在列出第$1個新的頁面:',
+	'newestpages-ns-header' => "'''本頁面列出了$2名字空間中$1最新的頁面。'''",
+	'newestpages-showing' => '正列出$1最新的頁面:',
 	'newestpages-submit' => '提交',
 	'newestpages-showredir' => '顯示重定向頁面',
 	'newestpages-hideredir' => '隱藏重定向頁面',

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.page.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.page.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.page.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -4,7 +4,8 @@
  * Class definition file for the Newest Pages extension
  * This doesn't use recent changes so the items don't expire
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Rob Church <robchur at gmail.com>
  * @copyright © 2006 Rob Church
  * @licence GNU General Public Licence 2.0
@@ -12,37 +13,51 @@
 
 class NewestPages extends IncludableSpecialPage {
 
-	var $limit = NULL;
-	var $namespace = NULL;
-	var $redirects = NULL;
+	var $limit = null;
+	var $namespace = null;
+	var $redirects = null;
 
 	public function __construct() {
-		IncludableSpecialPage::SpecialPage( 'Newestpages', '', true, false, 'default', true );
+		parent::__construct( 'NewestPages', '', true, false, 'default', true );
 	}
 
 	public function execute( $par ) {
-		global $wgRequest, $wgOut, $wgContLang;
+		global $wgRequest, $wgOut, $wgContLang, $wgLang;
 
-		wfLoadExtensionMessages( 'NewestPages' );
-
 		# Decipher input passed to the page
 		$this->decipherParams( $par );
 		$this->setOptions( $wgRequest );
 
-		$dbr =& wfGetDB( DB_SLAVE );
-		$page = $dbr->tableName( 'page' );
-		$nsf = $this->getNsFragment();
-		$redir = $this->redirects ? '' : ' AND page_is_redirect = 0';
-		$res = $dbr->query( "SELECT page_namespace, page_title, page_is_redirect FROM $page WHERE {$nsf}{$redir} ORDER BY page_id DESC LIMIT 0,{$this->limit}" );
+		$dbr = wfGetDB( DB_SLAVE );
+
+		$conds = array();
+		$conds[] = $this->getNsFragment();
+		if ( !$this->redirects ) $conds['page_is_redirect'] = 0;
+		$res = $dbr->select(
+			'page',
+			array(
+				'page_namespace',
+				'page_title',
+				'page_is_redirect'
+			),
+			$conds,
+			__METHOD__,
+			array(
+				'ORDER BY' => 'page_id DESC',
+				'LIMIT' => "{$this->limit}",
+				'OFFSET' => '0',
+			)
+		);
 		$count = $dbr->numRows( $res );
 
 		# Don't show the navigation if we're including the page
 		if( !$this->mIncluding ) {
 			$this->setHeaders();
+			$limit = $wgLang->formatNum( $this->limit );
 			if( $this->namespace > 0 ) {
-				$wgOut->addWikiText( wfMsgExt( 'newestpages-ns-header', array( 'parsemag' ), $this->limit, $wgContLang->getFormattedNsText( $this->namespace ) ) );
+				$wgOut->addWikiMsg( 'newestpages-ns-header', $limit, $wgContLang->getFormattedNsText( $this->namespace ) );
 			} else {
-				$wgOut->addWikiText( wfMsgExt( 'newestpages-header', array( 'parsemag' ), $this->limit ) );
+				$wgOut->addWikiMsg( 'newestpages-header', $limit );
 			}
 			$wgOut->addHTML( $this->makeNamespaceForm() );
 			$wgOut->addHTML( '<p>' . $this->makeLimitLinks() );
@@ -52,15 +67,16 @@
 		if( $count > 0 ) {
 			# Make list
 			if( !$this->mIncluding )
-				$wgOut->addWikiText( wfMsgExt( 'newestpages-showing', array( 'parsemag' ), $count ) );
+				
+				$wgOut->addWikiMsg( 'newestpages-showing', $wgLang->formatNum($count) );
 			$wgOut->addHTML( "<ol>" );
-			while( $row = $dbr->fetchObject( $res ) )
+			foreach ( $res as $row ) {
 				$wgOut->addHTML( $this->makeListItem( $row ) );
+			}
 			$wgOut->addHTML( "</ol>" );
 		} else {
-			$wgOut->addWikiText( wfMsg( 'newestpages-none' ) );
+			$wgOut->addWikiMsg( 'newestpages-none' );
 		}
-		$dbr->freeResult( $res );
 	}
 
 	function setOptions( &$req ) {
@@ -128,7 +144,7 @@
 		$limits = array( 10, 20, 30, 50, 100, 150 );
 		foreach( $limits as $limit ) {
 			if( $limit != $this->limit ) {
-				$links[] = $this->makeSelfLink( $limit, 'limit', $limit );
+				$links[] = $this->makeSelfLink( $wgLang->formatNum($limit), 'limit', $limit );
 			} else {
 				$links[] = (string)$limit;
 			}
@@ -143,8 +159,8 @@
 
 	function makeSelfLink( $label, $oname = false, $oval = false ) {
 		global $wgUser;
-		$skin =& $wgUser->getSkin();
-		$self = Title::makeTitle( NS_SPECIAL, $this->getName() );
+		$skin = $wgUser->getSkin();
+		$self = $this->getTitle();
 		$attr['limit'] = $this->limit;
 		$attr['namespace'] = $this->namespace;
 		if( !$this->redirects )
@@ -157,12 +173,12 @@
 	}
 
 	function makeNamespaceForm() {
-		$self = Title::makeTitle( NS_SPECIAL, $this->getName() );
+		$self = $this->getTitle();
 		$form  = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $self->getLocalUrl() ) );
-		$form .= Xml::label( wfMsg( 'newestpages-namespace' ), 'namespace' ) . ' ';
+		$form .= Xml::label( wfMsg( 'newestpages-namespace' ), 'namespace' ) . ' ';
 		$form .= Xml::namespaceSelector( $this->namespace, 'all' );
-		$form .= Xml::hidden( 'limit', $this->limit );
-		$form .= Xml::hidden( 'redirects', $this->redirects );
+		$form .= Html::Hidden( 'limit', $this->limit );
+		$form .= Html::Hidden( 'redirects', $this->redirects );
 		$form .= Xml::submitButton( wfMsg( 'newestpages-submit' ) ) . '</form>';
 		return $form;
 	}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/NewestPages/NewestPages.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -6,18 +6,19 @@
  * Special page to show the last X pages added to the wiki
  * This doesn't use recent changes so the items don't expire
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Rob Church <robchur at gmail.com>
  * @copyright © 2006 Rob Church
  * @licence GNU General Public Licence 2.0
  */
 
 $wgExtensionCredits['specialpage'][] = array(
+	'path'           => __FILE__,
 	'name'           => 'Newest Pages',
-	'version'        => '1.7',
+	'version'        => '1.9',
 	'author'         => 'Rob Church',
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:Newest_Pages',
-	'description'    => 'Shows the [[Special:Newestpages|last X pages]] added to the wiki',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:Newest_Pages',
 	'descriptionmsg' => 'newestpages-desc',
 );
 
@@ -25,6 +26,6 @@
 
 $dir = dirname(__FILE__) . '/';
 $wgExtensionMessagesFiles['NewestPages'] = $dir . 'NewestPages.i18n.php';
-$wgExtensionAliasesFiles['NewestPages'] = $dir . 'NewestPages.alias.php';
+$wgExtensionMessagesFiles['NewestPagesAlias'] = $dir . 'NewestPages.alias.php';
 $wgAutoloadClasses['NewestPages'] = $dir . 'NewestPages.page.php';
-$wgSpecialPages['Newestpages'] = 'NewestPages';
+$wgSpecialPages['NewestPages'] = 'NewestPages';

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,19 +1,23 @@
 <?php
-/** Internationalization message file for News Extension.
-  * @addtogroup extension
-**/
+/**
+ * Internationalization message file for News Extension.
+ *
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
 $messages['en'] = array(
-	'newsextension-desc' => 'Shows customized recent changes on a wiki pages or as RSS or Atom feed',
+	'newsextension-desc' => 'Shows customized recent changes on a wiki page, or as RSS or Atom feed',
 );
 
 /** Message documentation (Message documentation)
  * @author Purodha
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
-	'newsextension-desc' => 'Short description of this extension, shown on [[Special:Version]]. Do not translate or change links.',
+	'newsextension-desc' => '{{desc}}',
 );
 
 /** Arabic (العربية)
@@ -30,11 +34,25 @@
 	'newsextension-desc' => 'يعرض أحدث تغييرات معدلة فى صفحات الويكى أو كتلقيم آر إس إس أو أتوم.',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) */
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'newsextension-desc' => 'Amuesa cambios recientes personalizaos nuna páxina wiki, o como fluxu RSS o Atom',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬) */
 $messages['be-tarask'] = array(
 	'newsextension-desc' => 'Паказаць налады апошніх зьменаў як старонкі вікі ці у выглядзе RSS ці Atom',
 );
 
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'newsextension-desc' => "Diskouez a ra ar c 'hemmoù personelaat diwezhañ war ur bajenn wiki pe evel ul lanvad RSS pe Atom",
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
@@ -42,6 +60,20 @@
 	'newsextension-desc' => 'Pokazuje prilagođene nedavne izmjene na wiki stranicama ili kao RSS ili atom',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'newsextension-desc' => 'Гойту нисбина могlам керла нисдарш вики-агlонашах йа аса RSS йа Atom',
+);
+
+/** Kashubian (Kaszëbsczi)
+ * @author Kaszeba
+ */
+$messages['csb'] = array(
+	'newsextension-desc' => 'Wëskrzëni nastôwióné przez ce slédné zjinaczi  na starnie wiki, jakno pòwrózczi RSS abò Atom',
+);
+
 /** German (Deutsch)
  * @author Melancholie
  */
@@ -56,6 +88,20 @@
 	'newsextension-desc' => 'Pokazujo pśiměrjone aktualne změny na wikijowych bokach abo ako RSS abo kanal Atom',
 );
 
+/** Greek (Ελληνικά)
+ * @author Omnipaedista
+ */
+$messages['el'] = array(
+	'newsextension-desc' => 'Προβάλλει προσαρμοσμένες πρόσφατες αλλαγές σε μία σελίδα βίκι ή ως ροή RSS ή ως ροή Atom',
+);
+
+/** British English (British English)
+ * @author Reedy
+ */
+$messages['en-gb'] = array(
+	'newsextension-desc' => 'Shows customised recent changes on a wiki page, or as RSS or Atom feed',
+);
+
 /** Esperanto (Esperanto)
  * @author Yekrats
  */
@@ -95,7 +141,7 @@
  * @author Toliño
  */
 $messages['gl'] = array(
-	'newsextension-desc' => 'Amosa uns cambios recentes personalizados nas páxinas dun wiki ou como unha fonte de noticias RSS ou Atom',
+	'newsextension-desc' => 'Amosa uns cambios recentes personalizados nas páxinas dun wiki ou como unha fonte de novas RSS ou Atom',
 );
 
 /** Swiss German (Alemannisch)
@@ -119,6 +165,13 @@
 	'newsextension-desc' => 'विकिके पन्नोंमें हुए बदलाव आरएसएस फीड या ऍटम फीड के रूपमें दर्शाता हैं',
 );
 
+/** Hiligaynon (Ilonggo)
+ * @author Tagimata
+ */
+$messages['hil'] = array(
+	'newsextension-desc' => 'Nagapakita sang kustomized nga bag-o lang gin-islan sa pahina sang wiki, o bilang RSS o Atom feed',
+);
+
 /** Upper Sorbian (Hornjoserbsce)
  * @author Michawiki
  */
@@ -126,6 +179,14 @@
 	'newsextension-desc' => 'Pokazuje přiměrjene aktualne změny na wikijowych stronach abo jako RSS abo kanal Atom',
 );
 
+/** Hungarian (Magyar)
+ * @author Dani
+ * @author Glanthor Reviol
+ */
+$messages['hu'] = array(
+	'newsextension-desc' => 'Testre szabott friss változások a wiki egy lapján, vagy mint RSS/Atom hírcsatorna',
+);
+
 /** Interlingua (Interlingua)
  * @author McDutchie
  */
@@ -133,6 +194,13 @@
 	'newsextension-desc' => 'Monstra modificationes recente in modo personalisate in un pagina wiki o como un syndication RSS o Atom',
 );
 
+/** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ */
+$messages['id'] = array(
+	'newsextension-desc' => 'Tampilkan perubahan terbaru yang dikustomisasi pada sebuah halaman wiki, atau sindikasi RSS atau Atom',
+);
+
 /** Italian (Italiano)
  * @author Darth Kule
  */
@@ -156,7 +224,7 @@
 	'newsextension-desc' => 'បង្ហាញបំលាស់ប្តូរបានសំដៅថ្មីៗលើទំព័រវិគីឬបម្រែបម្រួល RSS ឬ Atom ។',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
@@ -170,6 +238,20 @@
 	'newsextension-desc' => 'Weist déi spezifesch rezent Ännerungen op enger wiki-Säit oder als RSS oder Atom Lëscht',
 );
 
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'newsextension-desc' => "Mampiseho ny fanovàna farany manokana eo amin'ny pejy wiki iray na otra ny topa RSS na Atom.",
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'newsextension-desc' => 'Прикажува лично прилагоден преглед на скорешни промени на вики страница, или како RSS или Atom достава',
+);
+
 /** Marathi (मराठी)
  * @author Kaustubh
  */
@@ -177,6 +259,20 @@
 	'newsextension-desc' => 'एखाद्या विकिवरील पानांमध्ये झालेले अलीकडील बदल आरएसएस फीड किंवा ऍटम फीड च्या स्वरुपात दर्शविते',
 );
 
+/** Malay (Bahasa Melayu)
+ * @author Zamwan
+ */
+$messages['ms'] = array(
+	'newsextension-desc' => 'Paparkan perubahan terkini pada satu laman wiki, atau sebagai RSS atau suapan Atom',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'newsextension-desc' => 'Viser egendefinerte siste endringer på en wikiside, eller en RSS- eller Atom-føde',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -199,20 +295,27 @@
 	'newsextension-desc' => 'Syner eigendefinert siste endringar på ei wikisida eller som RSS- eller Atom-feed.',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'newsextension-desc' => 'Viser egendefinerte siste endringer på en wikiside, eller en RSS- eller Atom-føde',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
-	'newsextension-desc' => 'Mòstra los darrièrs cambiaments especifics sus una pagina wiki o coma un flus RSS o Atom.',
+	'newsextension-desc' => 'Fa veire los darrièrs cambiaments especifics sus una pagina wiki o coma un flux RSS o Atom.',
 );
 
+/** Polish (Polski)
+ * @author Sp5uhe
+ */
+$messages['pl'] = array(
+	'newsextension-desc' => 'Wyświetla dostosowane ostatnie zmiany na stronie wiki, jako kanały RSS lub Atom',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'newsextension-desc' => 'A mosta j\'ùltime modìfiche përsonalisà an dzora a na pàgina wiki, o com "feed" RSS o Atom',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
@@ -248,6 +351,13 @@
 	'newsextension-desc' => 'Показывает настроенный список свежих правок на вики-страницах или ленте RSS или Atom',
 );
 
+/** Sakha (Саха тыла)
+ * @author Kyraha
+ */
+$messages['sah'] = array(
+	'newsextension-desc' => 'Соторутааҕыта оҥоһуллубут уларытыылары биики-сирэйинэн эбэтэр RSS эбэтэр Atom биидинэн көрдөр',
+);
+
 /** Slovak (Slovenčina)
  * @author Helix84
  */
@@ -255,6 +365,19 @@
 	'newsextension-desc' => 'Zobrazuje prispôsobené Posledné úpravy na wiki stránkach alebo ako kanál RSS alebo Atom',
 );
 
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Rancher
+ * @author Михајло Анђелковић
+ */
+$messages['sr-ec'] = array(
+	'newsextension-desc' => 'Приказује прилагођени преглед скорашњих измена на вики-страници, или као RSS или Атом довод',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬) */
+$messages['sr-el'] = array(
+	'newsextension-desc' => 'Prikazuje podesive skorašnje izmene, ili ih prikazuje kao RSS ili atom fid',
+);
+
 /** Sundanese (Basa Sunda)
  * @author Kandar
  */
@@ -276,6 +399,13 @@
 	'newsextension-desc' => 'సరికూర్చిన ఇటీవలి మార్పులని ఒక వికీ పేజీలో కానీ లేదా RSS లేదా ఆటమ్ ఫీడుగానీ చూపిస్తుంది',
 );
 
+/** Thai (ไทย)
+ * @author Passawuth
+ */
+$messages['th'] = array(
+	'newsextension-desc' => 'แสดงรายการปรับปรุงล่าสุดตามที่เลือกบนหน้าวิกิ หรือในรูปแบบ RSS หรือ Atom feed',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -283,6 +413,20 @@
 	'newsextension-desc' => 'Nagpapakita ng ipinasadyang kamakailang mga pagbabago sa isang pahina ng wiki o bilang pakaing RSS o Atom',
 );
 
+/** Turkish (Türkçe)
+ * @author Vito Genovese
+ */
+$messages['tr'] = array(
+	'newsextension-desc' => 'Bir viki sayfasında ya da RSS veya Atom beslemesi olarak özelleştirilmiş son değişiklikleri gösterir',
+);
+
+/** Ukrainian (Українська)
+ * @author Ytsukeng Fyvaprol
+ */
+$messages['uk'] = array(
+	'newsextension-desc' => 'Показує персоналізований список свіжих правок на вікі-сторінках у вигляді стрічки RSS або Atom',
+);
+
 /** Vèneto (Vèneto)
  * @author Candalua
  */
@@ -291,9 +435,24 @@
 );
 
 /** Vietnamese (Tiếng Việt)
+ * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
-	'newsextension-desc' => 'Hiển thị các thay đổi gần đây đã tinh chỉnh trên các trang của một wiki hoặc bằng feed RSS hoặc Atom',
+	'newsextension-desc' => 'Hiển thị các thay đổi gần đây đã tinh chỉnh trên các trang của một wiki hoặc bằng nguồn tin RSS hoặc Atom',
 );
 
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Hzy980512
+ */
+$messages['zh-hans'] = array(
+	'newsextension-desc' => '在页面中显示自定义的最近更改,或作为RSS和Atom发布',
+);
+
+/** Chinese (Hong Kong) (‪中文(香港)‬)
+ * @author Oapbtommy
+ */
+$messages['zh-hk'] = array(
+	'newsextension-desc' => '在 wiki 頁面顯示自訂的最近修改,或 RSS 或 Atom 動態消息',
+);
+

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/News.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,8 +2,8 @@
 /**
  * News extension - shows recent changes on a wiki page.
  *
- * @package MediaWiki
- * @subpackage Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2007 Daniel Kinzler
  * @licence GNU General Public Licence 2.0 or later
@@ -16,12 +16,10 @@
 }
 
 $wgExtensionCredits['other'][] = array( 
+	'path' => __FILE__,
 	'name' => 'News', 
 	'author' => 'Daniel Kinzler, brightbyte.de', 
 	'url' => 'http://mediawiki.org/wiki/Extension:News',
-	'svn-date' => '$LastChangedDate: 2008-11-30 04:15:22 +0100 (Sun, 30 Nov 2008) $',
-	'svn-revision' => '$LastChangedRevision: 44056 $',
-	'description' => 'shows customized recent changes on a wiki pages or as RSS or Atom feed',
 	'descriptionmsg' => 'newsextension-desc',
 );
 
@@ -31,24 +29,23 @@
 $wgNewsFeedURLPattern = false; // pattern for feed-URLs; useful when using rewrites for canonical feed URLs
 $wgNewsFeedUserPattern = false; // pattern to use for the author-field in feed items.
 
-$wgExtensionFunctions[] = "wfNewsExtension";
-
 $wgAutoloadClasses['NewsRenderer'] = dirname( __FILE__ ) . '/NewsRenderer.php';
 $wgAutoloadClasses['NewsFeedPage'] = dirname( __FILE__ ) . '/NewsRenderer.php';
 $wgHooks['ArticleFromTitle'][] = 'wfNewsArticleFromTitle';
 $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'wfNewsSkinTemplateOutputPageBeforeExec';
+$wgHooks['ParserFirstCallInit'][] = 'wfNewsSetHooks';
 
 //FIXME: find a way to override the feed URLs generated by OutputPage::getHeadLinks
 
-function wfNewsExtension() {
-    global $wgParser;
-    $wgParser->setHook( "news", "wfNewsTag" );
-    $wgParser->setHook( "newsfeed", "wfNewsFeedTag" );
-    $wgParser->setHook( "newsfeedlink", "wfNewsFeedLinkTag" );
-    wfLoadExtensionMessages( 'NewsExtension' );
+function wfNewsSetHooks( $parser ) {
+	$parser->setHook( 'news', 'wfNewsTag' );
+	$parser->setHook( 'newsfeed', 'wfNewsFeedTag' );
+	$parser->setHook( 'newsfeedlink', 'wfNewsFeedLinkTag' );
+
+	return true;
 }
 
-function wfNewsTag( $templatetext, $argv, &$parser ) {
+function wfNewsTag( $templatetext, $argv, $parser ) {
     global $wgTitle;
 
     $parser->disableCache(); //TODO: use smart cache & purge...?
@@ -57,7 +54,7 @@
     return $renderer->renderNews();
 }
 
-function wfNewsFeedTag( $templatetext, $argv, &$parser ) {
+function wfNewsFeedTag( $templatetext, $argv, $parser ) {
     global $wgTitle, $wgOut;
 
     $parser->disableCache(); //TODO: use smart cache & purge...?
@@ -74,11 +71,11 @@
     return $html;
 }
 
-function wfNewsFeedLinkTag( $linktext, $argv, &$parser ) {
+function wfNewsFeedLinkTag( $linktext, $argv, $parser ) {
     return NewsRenderer::renderFeedLink($linktext, $argv, $parser);
 }
 
-function wfNewsArticleFromTitle( &$title, &$article ) {
+function wfNewsArticleFromTitle( $title, &$article ) {
     global $wgRequest, $wgFeedClasses, $wgUser, $wgOut;
     $fname = 'extension/News: wfNewsArticleFromTitle';
 
@@ -111,11 +108,11 @@
     return false;
 }
 
-function wfNewsSkinTemplateOutputPageBeforeExec( &$skin, &$tpl ) {
+function wfNewsSkinTemplateOutputPageBeforeExec( $skin, $tpl ) {
     $feeds = $tpl->data['feeds'];
     if (!$feeds) return true;
 
-    $title = $skin->mTitle; //hack...
+    $title = $skin->getTitle(); //hack...
 
     foreach ($feeds as $format => $e) {
         $e['href'] = NewsRenderer::getFeedURL( $title, $format );

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/NewsRenderer.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/NewsRenderer.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/News/NewsRenderer.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,8 +2,8 @@
 /**
  * News renderer for News extension.
  *
- * @package MediaWiki
- * @subpackage Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2007 Daniel Kinzler
  * @licence GNU General Public Licence 2.0 or later
@@ -17,11 +17,6 @@
 define('NEWS_HEAD_LENGTH', 1024 * 2);
 define('NEWS_HEAD_SCAN', 256);
 
-#no need to include, rely on autoloader
-#global $IP;
-#require_once( "$IP/includes/RecentChange.php" );
-#require_once( "$IP/includes/ChangeList.php" );
-
 class NewsRenderer {
 	var $parser;
 	var $skin;
@@ -54,11 +49,11 @@
 	var $pubtrigger; //word to use in summaries to trigger publication
 	var $permalinks; //wether to force permalinks in feeds, even in publication mode
 
-	static function newFromArticle( &$article, &$parser ) {
+	static function newFromArticle( $article, $parser ) {
 		$title = $article->getTitle();
-		$article->getContent(); 
+		$article->getContent();
 		$text = $article->mContent;
-		if (!$text) return NULL;
+		if (!$text) return null;
 
 		$uniq_prefix = "\x07NR-UNIQ";
 		$elements = array( 'nowiki', 'gallery', 'newsfeed');
@@ -71,38 +66,38 @@
 
 			if ($tagName != 'newsfeed') continue;
 			#if (!is_null($id) && (!isset($params['id']) || $params['id'] != $id)) continue;
-			
+
 			return new NewsRenderer( $title, $content, $params, $parser );
 		}
 
-		return NULL;
+		return null;
 	}
 
-	function __construct( $title, $templatetext, $argv, &$parser ) {
+	function __construct( $title, $templatetext, $argv, $parser ) {
 		global $wgContLang, $wgUser;
 
 		$this->title = $title;
 
 		$this->skin = $wgUser->getSkin();
 		$this->parser = $parser;
-	
+
 		$this->templatetext = $templatetext;
 
 		if ( !is_null( $this->templatetext ) ) {
 			$this->templatetext = trim( $this->templatetext );
-			if ( $this->templatetext == '' ) $this->templatetext = NULL;
+			if ( $this->templatetext == '' ) $this->templatetext = null;
 		}
 
 		$this->usetemplate = !is_null( $this->templatetext );
-	
-		$this->templateparser = NULL;
-		$this->templateoptions = NULL;
-	
+
+		$this->templateparser = null;
+		$this->templateoptions = null;
+
 		#$template = @$argv['template'];
-	
+
 		#if ( $this->usetemplate ) {
 			#print "<pre>$templatetitle</pre>";
-	
+
 			$this->templateparser = $parser;
 			#$this->templateparser = clone $parser;
 			#$this->templateparser->setOutputType( OT_HTML );
@@ -110,7 +105,6 @@
 			$this->templateoptions->setEditSection( false );
 			$this->templateoptions->setNumberHeadings( false );
 			$this->templateoptions->setRemoveComments( true );
-			$this->templateoptions->setUseTeX( false );
 			$this->templateoptions->setUseDynamicDates( false );
 			$this->templateoptions->setInterwikiMagic( true ); //strip interlanguage-links
 			$this->templateoptions->setAllowSpecialInclusion( false );
@@ -118,7 +112,7 @@
 			#$this->templatetitle = Title::newFromText( $template, NS_TEMPLATE );
 			#$templatetext = $templateparser->fetchTemplate( $templatetitle );
 			#print "<pre>$templatetext</pre>";
-		
+
 			#$templateoptions->setRemoveComments( true );
 			#$templateoptions->setMaxIncludeSize( self::MAX_INCLUDE_SIZE );
 		#}
@@ -126,7 +120,7 @@
 		if ( !$this->usetemplate ) {
 			$this->changelist = new OldChangesList( $this->skin );
 		}
-	
+
 		#$this->feedId = @$argv['id'];
 
 		$this->prefix = @$argv['prefix'];
@@ -134,8 +128,8 @@
 
 		$this->limit = @$argv['limit'];
 		if ( !$this->limit ) $this->limit = 10;
-		else if ( $this->limit > 100 ) $this->limit = 100;
-	
+		elseif ( $this->limit > 100 ) $this->limit = 100;
+
 		$this->unique = @$argv['unique'];
 		if ( $this->unique === 'false' || $this->unique === 'no' || $this->unique === '0' )
 			$this->unique = false;
@@ -143,68 +137,68 @@
 		$this->namespaces = @$argv['namespaces'];
 		if ( !is_null( $this->namespaces ) ) {
 			$this->namespaces = preg_split('!\s*(\|\s*)+!', trim( $this->namespaces ) );
-	
+
 			foreach ($this->namespaces as $i => $ns) {
 				$ns = $wgContLang->lc($ns);
-	
+
 				if ( $ns === '-' || $ns === '0' || $ns === 'main' || $ns === 'article' ) {
 					$this->namespaces[$i] = 0;
 				} else {
 					$this->namespaces[$i] = MWNamespace::getCanonicalIndex( $ns );
-					if ( $this->namespaces[$i] === false || $this->namespaces[$i] === NULL )
+					if ( $this->namespaces[$i] === false || $this->namespaces[$i] === null )
 						$this->namespaces[$i] = $wgContLang->getNsIndex( $ns );
 				}
-	
-				if ( $this->namespaces[$i] === false || $this->namespaces[$i] === NULL ) 
+
+				if ( $this->namespaces[$i] === false || $this->namespaces[$i] === null )
 					unset( $this->namespaces[$i] );
 			}
 		}
-		
+
 		$this->categories = @$argv['categories'];
 		if ( !is_null( $this->categories ) ) {
 			$this->categories = preg_split('!\s*(\|\s*)+!', trim( $this->categories ) );
-	
+
 			foreach ($this->categories as $i => $n) {
 				$t = Title::makeTitleSafe(NS_CATEGORY, $n);
 				$n = $t->getDBkey();
 				$this->categories[$i] = $n;
 			}
 		}
-	
+
 		$this->pubtrigger = @$argv['trigger'];
 		if ( $this->pubtrigger ) $this->publication = true;
 		else  $this->publication = false;
-	
+
 		$this->permalinks = @$argv['permalinks'];
 		if ( $this->permalinks === 'false' || $this->permalinks === 'no' || $this->permalinks === '0' )
 			$this->permalinks = false;
-	
+
 		$this->nominor = @$argv['nominor'];
 		if ( $this->nominor === 'false' || $this->nominor === 'no' || $this->nominor === '0' )
 			$this->nominor = false;
-	
+
 		$this->nobot = @$argv['nobot'];
 		if ( $this->nobot === 'false' || $this->nobot === 'no' || $this->nobot === '0' )
 			$this->nobot = false;
-	
+
 		$this->noanon = @$argv['noanon'];
 		if ( $this->noanon === 'false' || $this->noanon === 'no' || $this->noanon === '0' )
 			$this->noanon = false;
-	
+
 		$this->notalk = @$argv['notalk'];
 		if ( $this->notalk === 'false' || $this->notalk === 'no' || $this->notalk === '0' )
 			$this->notalk = false;
-	
+
 		$this->onlypatrolled = @$argv['onlypatrolled'];
 		if ( $this->onlypatrolled === 'false' || $this->onlypatrolled === 'no' || $this->onlypatrolled === '0' )
 			$this->onlypatrolled = false;
-	
+
 		$this->onlynew = @$argv['onlynew'];
 		if ( $this->onlynew === 'false' || $this->onlynew === 'no' || $this->onlynew === '0' )
 			$this->onlynew = false;
-	
+
 		$this->types = array( RC_EDIT, RC_NEW );
-	
+
 		/* this doesn't work right
 		if ( $unique ) {
 			$group[] = 'rc_namespace AND rc_title';
@@ -220,7 +214,7 @@
 
 	/*
 	function getCacheKey() {
-		return '@' . get_class($this) . ':' . 
+		return '@' . get_class($this) . ':' .
 			($this->templatetext ? md5($this->templatetext) : $this->templatetext ). '|' .
 			$this->namespaces . '|' .
 			$this->categories . '|' .
@@ -236,13 +230,13 @@
 
 	function query( $dbr, $limit, $offset = 0 ) {
 		list( $trecentchanges, $tpage, $tcategorylinks ) = $dbr->tableNamesN( 'recentchanges', 'page', 'categorylinks' );
-	
+
 		$where = array();
 		$group = array();
 		$select = "$trecentchanges.*";
-	
+
 		$sql = "SELECT $select FROM $trecentchanges ";
-		
+
 		if ( $this->categories ) {
 			$sql .= " JOIN $tpage ON page_namespace = rc_namespace AND page_title = rc_title ";
 			$sql .= " JOIN $tcategorylinks ON cl_from = page_id ";
@@ -250,7 +244,7 @@
 			$where[] = 'cl_to IN ( ' . $dbr->makeList( $this->categories ) . ' )';
 			$group[] = 'rc_id';
 		}
-	
+
 		if ( $this->nominor )  $where[] = 'rc_minor = 0';
 		if ( $this->nobot )  $where[] = 'rc_bot = 0';
 		if ( $this->noanon )  $where[] = 'rc_user > 0';
@@ -263,54 +257,54 @@
 			if ( $this->notalk )  $where[] = 'MOD(rc_namespace, 2) = 0';
 			$where[] = 'rc_namespace >= 0'; #ignore virtual namespaces (logs, mostly)
 		}
-	
-	
+
+
 		$where[] = 'rc_type IN ( ' . $dbr->makeList( $this->types ) . ' )';
-	
+
 		if ( $where ) $sql .= ' WHERE ( ' . implode( ' ) AND ( ', $where ) . ' )';
 		if ( $group ) $sql .= ' GROUP BY ' . implode( ' AND ', $group );
-	
+
 		$sql .= ' ORDER BY rc_timestamp DESC ';
-	
+
 		$sql = $dbr->limitResult( $sql, $limit, $offset );
-	
+
 		$res = $dbr->query( $sql, 'NewsRenderer::query' );
-	
+
 		return $res;
 	}
-	
+
 	function fetchNews( ) {
 		$dbr = wfGetDB( DB_SLAVE );
 		$news = array();
-	
+
 		$remaining = $this->limit;
 		$offset = 0;
 		$ignore = array(); #collect stuff we already have, when in unique mode
-	
+
 		while ( $remaining > 0 ) { #chunk loop for programmatic filter
 			$chunk = $this->unique ? $remaining * 2 : $remaining;
 			$res = $this->query( $dbr, $chunk, $offset );
 			$offset += $chunk;
-		
+
 			$has = false;
 			while ( ( $remaining > 0 ) && ( $row = $dbr->fetchObject($res) ) ) {
 				$has = true;
-	
-				if ( $this->unique && $row->rc_namespace >= 0 ) { 
+
+				if ( $this->unique && $row->rc_namespace >= 0 ) {
 					$k = $row->rc_namespace . ':' . $row->rc_title;
 					if ( isset( $ignore[$k] ) ) continue;
 					$ignore[$k] = true;
 				}
-		
+
 				$news[] = $row;
 				$remaining -= 1;
 			}
-	
+
 			$dbr->freeResult( $res );
-	
-			if ( !$has ) break; #empty result set, stop trying 
+
+			if ( !$has ) break; #empty result set, stop trying
 		}
-		
+
 		return $news;
 	}
 
@@ -320,19 +314,19 @@
 		$news = $this->fetchNews();
 
 		$text = '';
-	
+
 		if ( $this->usetemplate ) {
 			$text .= $this->prefix;
 		}
 		else {
 			$text .= $this->changelist->beginRecentChangesList();
 		}
-	
-		foreach ($news as $row) { 
+
+		foreach ($news as $row) {
 			$t = $this->renderRow( $row );
 			$text .= trim($t) . "\n"; #TODO: handle blank lines at the end sanely. Paragraphs may be desired, but not when using lists.
 		}
-		
+
 		if ( $this->usetemplate ) { #it's wikitext, parse
 			#$output = $this->templateparser->parse( $text, $wgTitle, $this->templateoptions, true );
 			$text .= $this->postfix;
@@ -342,7 +336,7 @@
 			$text .= $this->changelist->endRecentChangesList();
 			$html = $text;
 		}
-	
+
 		return $html;
 	}
 
@@ -359,27 +353,27 @@
 		$news = $this->fetchNews();
 
 		ob_start();
-		$feed->outHeader();	
-		foreach ($news as $row) { 
+		$feed->outHeader();
+		foreach ($news as $row) {
 			$t = $this->renderRow( $row, true );
 			$item = $this->makeFeedItem( $row, $t, true );
 
 			$feed->outItem( $item );
 		}
-		
+
 		$feed->outFooter();
 		$xml = ob_get_contents();
 		ob_end_clean();
 
 		return $xml;
 	}
-	
+
 	function renderFeedPreview( ) {
 		$news = $this->fetchNews();
 
 		$html = '';
 		$html .= '<div class="hfeed"> <!-- using hatom microformat, see http://microformats.org/wiki/hatom -->';
-		foreach ($news as $row) { 
+		foreach ($news as $row) {
 			$t = $this->renderRow( $row, true );
 			$item = $this->makeFeedItem( $row, $t, false );
 			$t = $this->renderFeedItem( $item );
@@ -389,7 +383,7 @@
 
 		return $html;
 	}
-	
+
 	function renderFeedItem( $item ) {
 		global $wgContLang, $wgUser;
 		$sk = $wgUser->getSkin();
@@ -460,7 +454,7 @@
 		}
 
 		$item = new FeedItem( $name,
-					$text, 
+					$text,
 					$url,
 					$row->rc_timestamp,
 					$user,
@@ -490,7 +484,7 @@
 
 		if ( !$usetemplate ) {
 			#$pagelink = $this->skin->makeKnownLinkObj( $title );
-		
+
 			$this->changelist->insertDateHeader($dummy, $row->rc_timestamp); #dummy call to suppress date headers
 			$html = $this->changelist->recentChangesLine( $change );
 
@@ -513,7 +507,7 @@
 
 			$params['type'] = $row->rc_type;
 			$params['user'] = $row->rc_user_text;
-			
+
 			$params['rawtime'] = $row->rc_timestamp;
 			$params['time'] = $wgLang->time( $row->rc_timestamp, true, true );
 			$params['date'] = $wgLang->date( $row->rc_timestamp, true, true );
@@ -532,12 +526,12 @@
 			$params['permalink'] = $permaq ? $title->getFullURL( $permaq ) : '';
 
 			$params['comment'] = str_replace( array( '{{', '}}', '|', '\'' ), array( '{{', '}}', '|', '$#39;' ), wfEscapeWikiText( $row->rc_comment ) );
-			
+
 			if ( stripos($templatetext, '{{{content}}}')!==false || stripos($templatetext, '{{{head}}}')!==false ) {
 				$article = new Article( $title, $row->rc_this_oldid );
-				$t = $article->getContent(); 
+				$t = $article->getContent();
 
-				//TODO: expand variables & templates first, so cut-off applies to effective content, 
+				//TODO: expand variables & templates first, so cut-off applies to effective content,
 				//      and extension tags from templates are stripped properly
 				//      this doesn't work though: $t = $this->templateparser->preprocess( $t, $this->title, new ParserOptions() );
 				//TODO: avoid magic categories, interwiki-links, etc
@@ -553,23 +547,9 @@
 		}
 	}
 
-	static function replaceVariables($parser, $text, $params = NULL, $title = NULL) {
-		global $wgVersion;
-
-		if ( $params === NULL ) $params = array();
+	static function replaceVariables($parser, $text, $params = null, $title = null) {
+		if ( $params === null ) $params = array();
 		$text = $parser->replaceVariables( $text, $params );
-
-		/*
-		if ( version_compare( $wgVersion, "1.12", '<' ) ) {
-		}
-		else {
-			$parser = $GLOBALS['wgParser'];
-
-			$frame = $parser->getPreprocessor()->newCustomFrame($params);
-			$text = $parser->replaceVariables( $text, $frame );
-		}
-		*/
-
 		return $text;
 	}
 
@@ -579,7 +559,7 @@
 
 		$name = $format;
 		if ($name == 'rss') $name = 'RSS 2.0';
-		else if ($name == 'atom') $name = 'Atom 1.0';
+		elseif ($name == 'atom') $name = 'Atom 1.0';
 
 		$mime = "application/$format+xml"; //hack
 		$url = NewsRenderer::getFeedURL($this->title, $format);
@@ -605,18 +585,18 @@
 		else {
 			$q = 'feed=' . urlencode( $format );
 			#if ($feedId) $q .= '&feed=' . urlencode( $feedId );
-	
+
 			$url = $title->getFullUrl($q);
 		}
 
 		return $url;
 	}
 
-	static function renderFeedLink( $text, $argv, &$parser ) {
+	static function renderFeedLink( $text, $argv, $parser ) {
 		$t = @$argv['feed'];
 		if ($t) $t = NewsRenderer::replaceVariables( $parser, $t );
 
-		$title = $t === NULL ? NULL : Title::newFromText($t);
+		$title = $t === null ? null : Title::newFromText($t);
 		if (!$title) $title = $GLOBALS['wgTitle'];
 
 		#$id = @$argv['id'];
@@ -630,8 +610,8 @@
 			$icon = $m[1];
 			$iconright = ( strtolower(trim($m[2])) === 'right' );
 		}
-		
-		$ticon = $icon ? Title::newFromText($icon, NS_IMAGE) : NULL;
+
+		$ticon = $icon ? Title::newFromText($icon, NS_IMAGE) : null;
 		if ( $ticon ) {
 			$image = wfFindFile( $ticon );
 			if ( !$image->exists() ) {
@@ -641,11 +621,11 @@
 			$image = false;
 		}
 
-		$thumb = $image ? $image->getThumbnail(80, 16) : NULL;
+		$thumb = $image ? $image->transform( array( 'width' => 80, 'height' => 16 ), 0 ) : null;
 		if ($image && !$thumb) $thumb = $image;
-		$iconurl = $thumb ? $thumb->getUrl() : NULL;
+		$iconurl = $thumb ? $thumb->getUrl() : null;
 
-		$url = NewsRenderer::getFeedURL($title, $format); 
+		$url = NewsRenderer::getFeedURL($title, $format);
 
 		$ttl = @$argv['title'];
 		if ($ttl) $ttl = NewsRenderer::replaceVariables( $parser, $ttl );
@@ -662,8 +642,8 @@
 		if ($iconurl) {
 			$ic = '<img border="0" src="'.htmlspecialchars($iconurl).'" alt="'.htmlspecialchars($ttl).'" title="'.htmlspecialchars($ttl).'"/>';
 			if ($s === '') $s = $ic;
-			else if ($iconright) $s = "$s $ic";
-			else $s = "$ic $s";
+			elseif ($iconright) $s = "$s $ic";
+			else $s = "$ic $s";
 		}
 
 		$html = '<a href="'.htmlspecialchars($url).'" title="'.htmlspecialchars($ttl).'">'.$s.'</a>';
@@ -684,14 +664,14 @@
 		return $row[0];
 	}
 
-	static function sanitizeWikiText( $text, $parser = NULL ) {
+	static function sanitizeWikiText( $text, $parser = null ) {
 		if ( !$parser ) $parser = $GLOBALS['wgParser'];
 
 		$elements = array_keys( $parser->mTagHooks );
 		$uniq_prefix = "\x07NR-UNIQ";
 
 		$matches = array();
-		$text = $parser->extractTagsAndParams( $elements, $text, $matches, $uniq_prefix );
+		$text = Parser::extractTagsAndParams( $elements, $text, $matches, $uniq_prefix );
 
 		foreach( $matches as $marker => $data ) {
 			list( $element, $content, $params, $tag ) = $data;
@@ -722,7 +702,7 @@
 		return false;
 	}
 
-	static function extractHead( $text, $title = NULL ) {
+	static function extractHead( $text, $title = null ) {
 		$text = trim($text);
 
 		if ( strlen($text) < NEWS_HEAD_LENGTH ) return $text;
@@ -735,7 +715,7 @@
 		if ( $t = NewsRenderer::cutHead($text, array("\r", "\n"), $suffix) ) return $t;
 		if ( $t = NewsRenderer::cutHead($text, array("."), $suffix) ) return $t;
 		if ( $t = NewsRenderer::cutHead($text, array(" ", "\t"), $suffix) ) return $t;
-		
+
 		$text = substr($text, 0, 512) . $suffix;
 		return $text;
 	}
@@ -752,20 +732,20 @@
 	function getCacheKey( ) {
 		//global $wgLang;
 		//NOTE: per-language caching might be needed at some point.
-		//      right now, caching is done for anon users only 
-		//      (the content language might be set individually however, 
+		//      right now, caching is done for anon users only
+		//      (the content language might be set individually however,
 		//      using an extension like LanguageSelector)
-		
+
 		return "@newsfeed:" . urlencode($this->mTitle->getPrefixedDBKey()) . '|' . urlencode($this->mFeedFormat);
 	}
-	
+
 	function view( $usecache = true ) {
 		global $wgUser, $wgOut;
 
 		$fname = 'NewsFeedPage::view';
 		wfDebug("$fname: start\n");
 
-		$note = '';	
+		$note = '';
 
 		$ims = @$_SERVER['HTTP_IF_MODIFIED_SINCE'];
 
@@ -781,12 +761,12 @@
 			}
 		}
 
-		//NOTE: do caching for anon users only, because of user-specific 
+		//NOTE: do caching for anon users only, because of user-specific
 		//      rendering of textual content
 		if ($wgUser->isAnon() && $usecache) {
 			$cachekey = $this->getCacheKey();
 			$ocache = wfGetParserCacheStorage();
-			$e = $ocache ? $ocache->get( $cachekey ) : NULL;
+			$e = $ocache ? $ocache->get( $cachekey ) : null;
 			$note .= ' anon;';
 			$debug = $e ? "got cached" : "no cached";
 			wfDebug( "$fname: ($debug) \n" );
@@ -800,13 +780,13 @@
 				wfDebug( "$fname: logged in, ignoring cache \n" );
 				$note .= ' user;';
 			}
-			
-			$cachekey = NULL;
-			$ocache = NULL;
-			$e = NULL;
+
+			$cachekey = null;
+			$ocache = null;
+			$e = null;
 			$note .= ' user;';
 		}
-		
+
 		$wgOut->disable();
 
 		if ( $e ) {
@@ -831,33 +811,28 @@
 		//TODO: fetch actual news data and check the newest item. re-apply cache checks.
 		//      this would still save the cost of rendering if the data didn't change
 		global $wgParser; //evil global
-		
-		if (!$wgParser->mOptions) { //XXX: ugly hack :(
-			$wgParser->mOptions = new ParserOptions; 
-			$wgParser->setOutputType( OT_HTML );
-			$wgParser->clearState();
-			$wgParser->mTitle = $this->mTitle;
-		}
 
+		$wgParser->startExternalParse( $this->mTitle, new ParserOptions, OT_HTML, true );
+
 		//FIXME: an EXTREMELY ugly hack to force generation of absolute links.
 		//       this is needed because Title::getLocalUrl check wgRequest to see
 		//       if absolute urls are requested, instead of it being a parser option.
 		$_REQUEST['action'] = 'render';
-		
+
 		$renderer = NewsRenderer::newFromArticle( $this, $wgParser );
 		if (!$renderer) {
 			wfDebug( "$fname: no feed found on page: " . $this->mTitle->getPrefixedText() . "\n" );
 			wfHttpError(404, "Not Found", "no feed found on page: " . $this->mTitle->getPrefixedText() ); //TODO: better code & text
 			return;
 		}
-		
+
 		$description = ''; //TODO: grab from article content... but what? and how?
 		$ts = time();
-		
+
 		//this also sends the right headers
 		$xml = $renderer->renderFeed( $this->mFeedFormat, $description );
 		wfDebug( "$fname: rendered feed \n" );
-	
+
 		$e = array( 'xml' => $xml, 'timestamp' => $ts );
 		if ($ocache) {
 			wfDebug( "$fname: caching feed ($cachekey) \n" );

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/PageCSS/PageCSS.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/PageCSS/PageCSS.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/PageCSS/PageCSS.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -3,25 +3,29 @@
 /**
  * A parser hook to add per-page CSS to pages with the <css> tag
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  *
  * @author Ævar Arnfjörð Bjarmason <avarab at gmail.com>
  * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
  */
 
-$wgExtensionFunctions[] = array( 'CssHook', 'setup' );
 $wgExtensionCredits['parserhook'][] = array(
+	'path' => __FILE__,
 	'name' => 'Page CSS',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:PageCSS',
 	'description' => 'Parser hook to add per-page CSS using the <tt><css></tt> tag',
 	'author' => 'Ævar Arnfjörð Bjarmason'
 );
 
+$wgHooks['ParserFirstCallInit'][] = 'CssHook::setup';
+
 class CssHook {
 
-	public static function setup() {
-		global $wgParser;
-		$wgParser->setHook( 'css', array( 'CssHook', 'parse' ) );
+	public static function setup( $parser ) {
+		$parser->setHook( 'css', array( 'CssHook', 'parse' ) );
+		return true;
 	}
 	
 	public static function parse( $content, array $args, Parser $parser ) {
@@ -36,4 +40,4 @@
 		);
 	}
 
-}
\ No newline at end of file
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Convert.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Convert.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Convert.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,907 @@
+<?php
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+	die( 'This file is a MediaWiki extension, it is not a valid entry point' );
+}
+
+class ConvertError extends MWException {
+	public function __construct( $msg /*...*/ ) {
+		$args = func_get_args();
+		array_shift( $args );
+		array_map( 'htmlspecialchars', $args );
+		$this->message = '<strong class="error">' . wfMsgForContent( "pfunc-convert-$msg", $args ) . '</strong>';
+	}
+}
+
+class ConvertParser {
+
+	# A regex which matches the body of the string and the source unit separately
+	const UNITS_REGEX = '/^(.+?)([a-z]+\^?\d?(?:\/\w+\^?\d?)*)$/i';
+
+	# A regex which matches a number
+	const NUM_REGEX = '/\b((?:\+|\-|−|\x{2212})?(\d+(?:\.\d+)?)(?:E(?:\+|\-|−|\x{2212})?\d+)?)\b/iu';
+
+	# A regex *FRAGMENT* which matches SI prefixes
+	const PREFIX_REGEX = '[YZEPTGMkh(da)dcm\x{03BC}\x{00B5}npfazy]?';
+
+	/**
+	 * @var ConvertUnit
+	 */
+	protected $sourceUnit;
+
+	/**
+	 * @var ConvertUnit
+	 */
+	protected $targetUnit;
+
+	# Whether to abbreviate the output unit
+	protected $abbreviate;
+
+	# Whether to link the output unit, if possible
+	protected $link;
+
+	# If set, don't output the unit or format the number
+	protected $raw;
+
+	# What precision to round to.
+	protected $decimalPlaces;
+	protected $significantFigures;
+
+	# What language to display the units in
+	# @var Language
+	protected $language;
+
+	# The last value converted, which will be used for PLURAL evaluation
+	protected $lastValue;
+
+	protected $precision;
+
+	/**
+	 * Reset the parser so it isn't contaminated by the results of previous parses
+	 */
+	public function clearState(){
+		# Make sure we break any references set up in the parameter passing below
+		unset( $this->sourceUnit );
+		unset( $this->targetUnit );
+		$this->sourceUnit = null;
+		$this->targetUnit = null;
+		
+		$this->lastValue
+			= $this->link
+			= $this->precision
+			= $this->abbreviate
+			= $this->raw
+			= $this->significantFigures
+			= $this->decimalPlaces
+			= null;
+
+		$this->language = true; # prompts wfGetLangObj() to use $wgContLang
+	}
+
+	/**
+	 * Evaluate a convert expression
+	 * @param $args Array of the parameters passed to the original tag function
+	 * @return String
+	 * @throws ConvertError
+	 */
+	public function execute( $args ) {
+		$this->clearState();
+		array_shift( $args ); # Dump Parser object
+
+		if( count( $args ) == 0 ){
+			# that was easy
+			return '';
+		}
+		$string = trim( array_shift( $args ) );
+
+		# Process the rest of the args
+		static $magicWords = array(
+			'sourceunit' => null,
+			'targetunit' => null,
+			'linkunit' => null,
+			'decimalplaces' => null,
+			'significantfigures' => null,
+			'abbreviate' => null,
+			'rawsuffix' => null,
+			'language' => null,
+		);
+		if( !is_object( $magicWords ) ){
+			foreach( $magicWords as $key => &$val ){
+				$magicWords[$key] =& MagicWord::get( $key );
+			}
+			# The $magicWords[key]->function() syntax doesn't work, so cast to
+			# object so we can use $magicWords->key->function() instead
+			$magicWords = (object)$magicWords;
+		}
+
+		$n = 0; # Count of unnamed parameters
+		foreach ( $args as $arg ) {
+			$parts = array_map( 'trim', explode( '=', $arg, 2 ) );
+			if ( count( $parts ) == 2 ) {
+				# Found "="
+				if ( $magicWords->sourceunit->matchStartAndRemove( $parts[0] ) ) {
+					if( $magicWords->targetunit->matchStartAndRemove( $parts[1] ) ){
+						$this->targetUnit =& $this->sourceUnit;
+					} else {
+						$this->sourceUnit = new ConvertUnit( $parts[1] );
+					}
+
+				} elseif ( $magicWords->targetunit->matchStartAndRemove( $parts[0] ) ) {
+					if( $magicWords->sourceunit->matchStartAndRemove( $parts[1] ) ){
+						$this->targetUnit =& $this->sourceUnit;
+					} else {
+						$this->targetUnit = new ConvertUnit( $parts[1] );
+					}
+
+				} elseif( $magicWords->decimalplaces->matchStartAndRemove( $parts[0] ) ) {
+					$this->decimalPlaces = intval( $parts[1] );
+
+				} elseif( $magicWords->significantfigures->matchStartAndRemove( $parts[0] ) ) {
+					# It doesn't make any sense to have negative sig-figs
+					if( intval( $parts[1] ) > 0 ){
+						$this->significantFigures = intval( $parts[1] );
+					}
+
+				} elseif( $magicWords->language->matchStartAndRemove( $parts[0] ) ) {
+					# if this is an invalid code we'll get $wgContLang back
+					$this->language = Language::factory( $parts[1] );
+				}
+
+			} elseif( $magicWords->linkunit->matchStartAndRemove( $parts[0] ) ) {
+				$this->link = true;
+
+			} elseif( $magicWords->abbreviate->matchStartAndRemove( $parts[0] ) ) {
+				$this->abbreviate = true;
+
+			} elseif( $magicWords->rawsuffix->matchStartAndRemove( $parts[0] ) ) {
+				$this->raw = true;
+
+			} elseif( $parts[0] != '' && !$n++ && !$this->targetUnit instanceof ConvertUnit ){
+				# First unnamed parameter = output unit
+				$this->targetUnit = new ConvertUnit( $parts[0] );
+			}
+		}
+
+		# Get the source unit, if not already set.  This throws ConvertError on failure
+		if ( !$this->sourceUnit instanceof ConvertUnit ){
+			$this->deduceSourceUnit( $string );
+		} else {
+			# The string has no unit on the end, so it's been trimmed to the end of the
+			# last digit, meaning the unit specified by #sourceunit won't have any space
+			$string .= ' ';
+		}
+
+		# Use the default unit (SI usually)
+		if( !$this->targetUnit instanceof ConvertUnit ){
+			$this->targetUnit = $this->sourceUnit->getDefaultUnit();
+		}
+
+		if( $this->targetUnit->dimension->value != $this->sourceUnit->dimension->value ){
+			throw new ConvertError(
+				'dimensionmismatch',
+				$this->sourceUnit->dimension->getLocalisedName(true),
+				$this->targetUnit->dimension->getLocalisedName(true)
+			);
+		}
+
+		# If the Language hasn't been deliberately specified, get it from the wiki's
+		# content language, but run it through a configurable map first
+		if( $this->language === true ){
+			global $wgContLang, $wgPFUnitLanguageVariants;
+			$code = $wgContLang->getCode();
+			if( isset( $wgPFUnitLanguageVariants[$code] ) ){
+				$this->language = Language::factory( $wgPFUnitLanguageVariants[$code] );
+			} else {
+				# Ok, actually *do* use $wgContLang
+				$this->language = true;
+			}
+		}
+
+		return $this->processString( $string );
+	}
+
+	/**
+	 * Find the unit at the end of the string and load $this->sourceUnit with an appropriate
+	 * ConvertUnit, or throw an exception if the unit is unrecognised.
+	 * @param  $string
+	 */
+	protected function deduceSourceUnit( $string ){
+		# Get the unit from the end of the string
+		$matches = array();
+		preg_match( self::UNITS_REGEX, $string, $matches );
+
+		if( count( $matches ) == 3 ){
+			$this->sourceUnit = new ConvertUnit( $matches[2] );
+		} else {
+			throw new ConvertError( 'nounit' );
+		}
+	}
+
+	/**
+	 * Identify the values to be converted, and convert them
+	 * @param  $string String
+	 * @return String
+	 */
+	protected function processString( $string ){
+		# Replace values
+		$string = preg_replace_callback(
+			self::NUM_REGEX,
+			array( $this, 'convert' ),
+			ltrim( preg_replace( self::UNITS_REGEX, '$1', $string ) )
+		);
+		if( $this->raw ){
+			return trim( $string );
+		} else {
+			return $this->targetUnit->getText(
+				$string,
+				$this->lastValue,
+				$this->link,
+				$this->abbreviate,
+				$this->language
+			);
+		}
+	}
+
+	/**
+	 * Express a value in the $sourceUnit in terms of the $targetUnit, preserving
+	 * an appropriate degree of accuracy.
+	 * @param  $value String
+	 * @return String
+	 */
+	public function convert( $value ){
+		global $wgContLang;
+		$valueFloat = floatval( $value[1] );
+		$newValue = $valueFloat
+			* $this->sourceUnit->getConversion()
+			/ $this->targetUnit->getConversion();
+		if( $this->decimalPlaces !== null && $this->significantFigures !== null ){
+			# round to the required number of decimal places, or the required number
+			# of significant figures, whichever is the least precise
+			$dp = floor( $this->significantFigures - log10( abs( $newValue ) ) ); # Convert SF to DP
+			$newValue = round( $newValue, max( $dp, $this->decimalPlaces ) );
+
+		} elseif( $this->decimalPlaces !== null ){
+			$newValue = round( $newValue, $this->decimalPlaces );
+
+		} elseif( $this->significantFigures !== null ){
+			$dp = floor( $this->significantFigures - log10( abs( $newValue ) ) ); # Convert SF to DP
+			$newValue = round( $newValue, $dp );
+
+		} else {
+			# Need to round to a similar accuracy as the original value.  To do that we
+			# select the accuracy which will as closely as possible preserve the maximum
+			# percentage error in the value.  So 36ft = 36 ± 0.5 ft, so the uncertainty
+			# is ±0.5/36 = ±1.4%.  In metres this is 10.9728 ± 1.4%, or 10.9728 ± 0.154
+			# we take the stance of choosing the limit which is *more* precise than the
+			# original value.
+
+			# Strip sign and exponent
+			$num = preg_replace( self::NUM_REGEX, '$2', $value[1] );
+
+			if( strpos( $num, '.' ) !== false ){
+				# If there is a decimal point, this is the number of digits after it.
+				$dpAfter = strlen( $num ) - strpos( $num, '.' ) - 1;
+				$error = pow( 10, -$dpAfter - 1 ) * 5;
+
+			} elseif( $num == 0 ) {
+				# The logarithms below will be unhappy, and it doesn't actually matter
+				# what error we come up with, zero is still zero
+				$error = 1;
+
+			} else {
+				# Number of digits before the point
+				$dpBefore = floor( log10( abs( $num ) ) );
+
+				# Number of digits if we reverse the string = number
+				# of digits excluding trailing zeros
+				$dpAfter = floor( log10( abs( strrev( $num ) ) ) );
+
+				# How many significant figures to consider numbers like "35000" to have
+				# is a tricky question.  We say 2 here because if people want to ensure
+				# that the zeros are included, they could write it as 3.500E4
+				$error = pow( 10, $dpBefore - $dpAfter - 1 ) * 5;
+			}
+
+			$errorFraction = $error / $num;
+
+			$i = 10;
+			while( $i > -10 && ( round( $newValue, $i - 1 ) != 0 ) &&
+				# Rounding to 10dp avoids floating point errors in exact conversions,
+				# which are on the order of 1E-16
+				( round( 5 * pow( 10, -$i ) / round( $newValue, $i - 1 ), 10 ) <= round( $errorFraction, 10 ) ) )
+			{
+				$i--;
+			}
+
+			$newValue = round( $newValue, $i );
+			# We may need to stick significant zeros back onto the number
+			if( $i > 0 ){
+				if( strpos( $newValue, '.' ) !== false ){
+					$newValue = str_pad( $newValue, $i + strpos( $newValue, '.' ) + 1, '0' );
+				} else {
+					$newValue .= '.' . str_repeat( '0', $i );
+				}
+			}
+		}
+
+		# Store the last value for use in PLURAL later
+		$this->lastValue = $newValue;
+
+		return $this->raw
+			? $newValue
+			: $wgContLang->formatNum( $newValue );
+	}
+
+}
+
+/**
+ * A dimension
+ */
+class ConvertDimension {
+
+	const MASS = 1;          # KILOGRAM
+	const LENGTH = 10;       # METRE
+	const TIME = 100;        # SECOND
+	const TEMPERATURE = 1E3; # KELVIN
+	const QUANTITY = 1E4;    # MOLE
+	const CURRENT = 1E5;     # AMPERE
+	const INTENSITY = 1E6;   # CANDELA
+
+	# fuel efficiencies are ugly and horrible and dimensionally confused, and have the
+	# same dimensions as LENGTH or 1/LENGTH.  But someone wanted to include them... so
+	# we have up to ten dimensions which can be identified by values of this.
+	# 0 = sane unit
+	# 1 = some sort of fuel efficiency
+	const UGLY_HACK_VALUE = 1E7;
+
+	/**
+	 * Dimension constants.  These are the values you'd get if you added the SI
+	 * base units together with the weighting given above, also the output from
+	 * getDimensionHash().  Cool thing is, you can add these together to get new
+	 * compound dimensions.
+	 */
+	const DIM_DIMENSIONLESS = 0; # Numbers etc
+	const DIM_LENGTH        = 10;
+	const DIM_AREA          = 20;
+	const DIM_VOLUME        = 30;
+	const DIM_TIME          = 100;
+	const DIM_TIME_SQ       = 200;
+	const DIM_MASS          = 1;
+	const DIM_TEMPERATURE   = 1000;
+	const DIM_SPEED         = -90;  # LENGTH / TIME
+	const DIM_ACCELERATION  = -190; # LENGTH / TIME_SQ
+	const DIM_FORCE         = -189; # MASS * LENGTH / TIME_SQ
+	const DIM_TORQUE        = -179; # also MASS * AREA / TIME_SQ, but all units are single
+	const DIM_ENERGY        = -179; # MASS * AREA / TIME_SQ, all units are compound
+	const DIM_PRESSURE      = -209; # MASS / ( LENGTH * TIME_SQ )
+	const DIM_POWER         = -79;  # MASS * AREA / TIME
+	const DIM_DENSITY       = -29;  # MASS / VOLUME
+	const DIM_FUELEFFICIENCY_PVE = 10000020; # fuel efficiency in VOLUME / LENGTH
+	const DIM_FUELEFFICIENCY_NVE = 99999990; # fuel efficiency in LENGTH / VOLUME
+
+	# Map of dimension names to message keys. This also serves as a list of what
+	# dimensions will not throw an error when encountered.
+	public static $legalDimensions = array(
+		self::DIM_LENGTH => 'length',
+		self::DIM_AREA => 'area',
+		self::DIM_VOLUME => 'volume',
+		self::DIM_TIME => 'time',
+		self::DIM_TIME_SQ => 'timesquared',
+		self::DIM_MASS => 'mass',
+		self::DIM_TEMPERATURE => 'temperature',
+		self::DIM_SPEED => 'speed',
+		self::DIM_ACCELERATION => 'acceleration',
+		self::DIM_FORCE => 'force',
+		self::DIM_TORQUE => 'torque',
+		self::DIM_ENERGY => 'energy',
+		self::DIM_PRESSURE => 'pressure',
+		self::DIM_POWER => 'power',
+		self::DIM_DENSITY => 'density',
+		self::DIM_FUELEFFICIENCY_PVE => 'fuelefficiencypositive',
+		self::DIM_FUELEFFICIENCY_NVE => 'fuelefficiencynegative',
+	);
+
+	public $value;
+	protected $name;
+
+	/**
+	 * Constructor
+	 * @param  $var ConvertDimension|Int a dimension constant or existing unit
+	 * @param  $var2 ConvertDimension|Int optionally another dimension constant for a compound unit $var/$var2
+	 */
+	public function __construct( $var, $var2=null ){
+		static $legalDimensionsFlip;
+
+		if( is_string( $var ) ){
+			if( $legalDimensionsFlip === null ){
+				$legalDimensionsFlip = array_flip( self::$legalDimensions );
+			}
+			if( isset( $legalDimensionsFlip[$var] ) ){
+				$dim = $legalDimensionsFlip[$var];
+			} else {
+				# Should be unreachable
+				throw new ConvertError( 'unknowndimension' );
+			}
+		} elseif( $var instanceof self ){
+			$dim = $var->value;
+		} else {
+			$dim = intval( $var );
+		}
+
+		if( $var2 === null ){
+			$this->value = $dim;
+			$this->name = $this->compoundName = self::$legalDimensions[$this->value];
+
+		} else {
+			if( is_string( $var2 ) ){
+				if( $legalDimensionsFlip === null ){
+					$legalDimensionsFlip = array_flip( self::$legalDimensions );
+				}
+				if( isset( $legalDimensionsFlip[$var2] ) ){
+					$dim2 = $legalDimensionsFlip[$var2];
+				} else {
+					# Should be unreachable
+					throw new ConvertError( 'unknowndimension' );
+				}
+			} elseif( $var2 instanceof self ){
+				$dim2 = $var2->value;
+			} else {
+				$dim2 = intval( $var2 );
+			}
+
+			$this->value = $dim - $dim2;
+			if( in_array( $this->value, array_keys( self::$legalDimensions ) ) ){
+				$this->name = self::$legalDimensions[$this->value];
+				$this->compoundName = array(
+					self::$legalDimensions[$dim],
+					self::$legalDimensions[$dim2],
+				);
+			} else {
+				# Some combinations of units are fine (carats per bushel is a perfectly good,
+				# if somewhat bizarre, measure of density, for instance).  But others (like
+				# carats per miles-per-gallon) are definitely not.
+				# TODO: this allows compound units like <gigawatthours>/<pascal> as a unit
+				# of volume; is that a good thing or a bad thing?
+				throw new ConvertError( 'invalidcompoundunit', "$var/$var2" );
+			}
+		}
+	}
+
+	/**
+	 * Convert to string.  Magic in PHP 5.1 and above.
+	 * @return String
+	 */
+	public function __toString(){
+		return strval( $this->name );
+	}
+
+	/**
+	 * Get the name, or names, of the dimension
+	 * @param $expandCompound Bool Whether to return a string instead of an array of strings in
+	 *     case of a compound unit
+	 * @return String|Array of String
+	 */
+	public function getName( $expandCompound = false ){
+		return $expandCompound
+			? $this->name
+			: $this->compoundName;
+	}
+
+	/**
+	 * Get the localised name of the dimension.  Output is unescaped
+	 * @return String
+	 */
+	public function getLocalisedName(){
+		return wfMsg( "pfunc-convert-dimension-{$this->name}" );
+	}
+
+}
+
+class ConvertUnit {
+
+	/**
+	 * array(
+	 *     DIMENSION => array(
+	 *         UNIT => array(
+	 *             CONVERSION,
+	 *             REGEX,
+	 *             TAKES_SI_PREFIXES,
+	 *         )
+	 *     )
+	 * )
+	 */
+	protected static $units = array(
+		ConvertDimension::DIM_LENGTH => array(
+			'metre'            => array( 1, 'm', true ),
+			'angstrom'         => array( 0.00000001, '\x{00C5}', false ),
+
+			'mile'             => array( 1609.344, 'mi|miles?', false ),
+			'furlong'          => array( 201.168, 'furlong', false ),
+			'chain'            => array( 20.1168 , 'chain', false ),
+			'rod'              => array( 5.0292, 'rod|pole|perch', false ),
+			'fathom'           => array( 1.8288, 'fathom', false ),
+			'yard'             => array( 0.9144, 'yards?|yd', false ),
+			'foot'             => array( 0.3048, 'foot|feet|ft', false ),
+			'hand'             => array( 0.1016, 'hands?', false ),
+			'inch'             => array( 0.0254, 'inch|inches|in', false ),
+
+			'nauticalmile'     => array( 1852, 'nauticalmiles?|nmi', false ),
+			'nauticalmileuk'   => array( 1853.184, 'old[Uu][Kk]nmi|[Bb]rnmi|admi', false ),
+			'nauticalmileus'   => array( 1853.24496, 'old[Uu][Ss]nmi', false ),
+
+			'parsec'           => array( 3.0856775813057E16, 'parsecs?|pc', true ),
+			'lightyear'        => array( 9.4607304725808E15, 'lightyears?|ly', true ),
+			'astronomicalunit' => array( 149597870700, 'astronomicalunits?|AU|au', false ),
+		),
+
+		ConvertDimension::DIM_AREA => array(
+			'squarekilometre'    => array( 1E6, 'km2|km\^2', false ),
+			'squaremetre'        => array( 1, 'm2|m\^2', false ),
+			'squarecentimetre'   => array( 1E-4, 'cm2|cm\^2', false ),
+			'squaremillimetre'   => array( 1E-6, 'mm2|mm\^2', false ),
+			'hectare'            => array( 1E4, 'hectares?|ha', false ),
+
+			'squaremile'         => array( 2589988.110336, 'sqmi|mi2|mi\^2', false ),
+			'acre'               => array( 4046.856422, 'acres?', false ),
+			'squareyard'         => array( 0.83612736, 'sqyd|yd2|yd\^2', false ),
+			'squarefoot'         => array( 0.09290304, 'sqft|ft2|ft\^2', false ),
+			'squareinch'         => array( 0.00064516, 'sqin|in2|in\^2', false ),
+
+			'squarenauticalmile' => array( 3429904, 'sqnmi|nmi2|nmi\^2', false ),
+			'dunam'              => array( 1000, 'dunam', false ),
+			'tsubo'              => array( 3.305785, 'tsubo', false ),
+		),
+
+		ConvertDimension::DIM_VOLUME => array(
+			'cubicmetre'      => array( 1, 'm3|m\^3', false ),
+			'cubiccentimetre' => array( 1E-6, 'cm3|cm\^3', false ),
+			'cubicmillimetre' => array( 1E-9, 'mm3|mm\^3', false ),
+			'litre'           => array( 1E-3 , 'l', true ),
+
+			'cubicyard'       => array( 0.764554857984, 'cuyd|yd3|yd\^3', false ),
+			'cubicfoot'       => array( 0.028316846592, 'cuft|ft3|ft\^3', false ),
+			'cubicinch'       => array( 0.000016387064, 'cuin|in3|in\^3', false ),
+			'barrel'          => array( 0.16365924, 'bbl|barrels?|impbbl', false ),
+			'bushel'          => array( 0.03636872, 'bsh|bushels?|impbsh', false ),
+			'gallon'          => array( 0.00454609, 'gal|gallons?|impgal', false ),
+			'quart'           => array( 0.0011365225, 'qt|quarts?|impqt', false ),
+			'pint'            => array( 0.00056826125, 'pt|pints?|imppt', false ),
+			'fluidounce'      => array( 0.0000284130625, 'floz|impfloz', false ),
+
+			'barrelus'        => array( 0.119240471196, 'usbbl', false ),
+			'barreloil'       => array( 0.158987294928, 'oilbbl', false ),
+			'barrelbeer'      => array( 0.117347765304, 'beerbbl', false ),
+			'usgallon'        => array( 0.003785411784, 'usgal', false ),
+			'usquart'         => array( 0.000946352946, 'usqt', false ),
+			'uspint'          => array( 0.000473176473, 'uspt', false ),
+			'usfluidounce'    => array( 0.0000295735295625, 'usfloz', false ),
+			'usdrybarrel'     => array( 0.11562819898508, 'usdrybbl', false ),
+			'usbushel'        => array( 0.03523907016688, 'usbsh', false ),
+			'usdrygallon'     => array( 0.00440488377086, 'usdrygal', false ),
+			'usdryquart'      => array( 0.001101220942715, 'usdryqt', false ),
+			'usdrypint'       => array( 0.0005506104713575, 'usdrypt', false ),
+		),
+
+		ConvertDimension::DIM_TIME => array(
+			'year'   => array( 31557600, 'yr', true ),
+			'day'    => array( 86400, 'd|days?', false ),
+			'hour'   => array( 3600, 'hours?|hr|h', false ),
+			'minute' => array( 60, 'minutes?|mins?', false ),
+			'second' => array( 1, 's', false ),
+		),
+
+		ConvertDimension::DIM_SPEED => array(
+			'knot' => array( 0.514444444, 'knot|kn', false ),
+			'speedoflight' => array( 2.9979E8, 'c', false ),
+		),
+
+		ConvertDimension::DIM_PRESSURE => array(
+			'pascal'            => array( 1, 'Pa', true ),
+
+			'bar'               => array( 100000, 'bar', false ),
+			'decibar'           => array( 10000, 'dbar', false ),
+			'millibar'          => array( 100 , 'mbar|mb', false ),
+			'kilobarye'         => array( 100, 'kba', false ),
+			'barye'             => array( 0.1, 'ba', false ),
+			
+			'atmosphere'        => array( 101325, 'atm|atmospheres?', false ),
+			'torr'              => array( 133.32237, 'torr', false ),
+			'mmhg'              => array( 133.322387415, 'mmHg', false ),
+			'inhg'              => array( 3386.38864034, 'inHg', false ),
+			'psi'               => array( 6894.757293, 'psi', false ),
+		),
+		# TODO: other dimensions as needed
+	);
+
+	/**
+	 * array(
+	 *     PREFIX => array(
+	 *         CONVERSION,
+	 *         REGEX,
+	 *     )
+	 * )
+	 * They're out of order because this is the order in which they are tested, and
+	 * some prefixes are much more likely to occur than others
+	 */
+	protected static $prefixes = array(
+		'kilo'  => array( 1E3,  'k' ),
+		'milli' => array( 1E-3, 'm' ),
+		'centi' => array( 1E-2, 'c' ),
+		'giga'  => array( 1E9,  'G' ),
+		'micro' => array( 1E-6, '(?:\x{03BC}|\x{00B5})' ), # There are two similar mu characters
+		'mega'  => array( 1E6,  'M' ),
+		'nano'  => array( 1E-9, 'n' ),
+		'hecto' => array( 1E2,  'h' ),
+		'deca'  => array( 1E1,  'da' ),
+		'deci'  => array( 1E-1, 'd' ),
+		'yotta' => array( 1E24, 'Y' ),
+		'zetta' => array( 1E21, 'Z' ),
+		'exa'   => array( 1E18, 'E' ),
+		'peta'  => array( 1E15, 'P' ),
+		'tera'  => array( 1E12, 'T' ),
+		'pico'  => array( 1E-12, 'p' ),
+		'femto' => array( 1E-15, 'f' ),
+		'atto'  => array( 1E-18, 'a' ),
+		'zepto' => array( 1E-21, 'z' ),
+		'yocto' => array( 1E-24, 'y' ),
+	);
+
+	# Default units for each dimension
+	# TODO: this should ideally be localisable
+	protected static $defaultUnit = array(
+		ConvertDimension::DIM_LENGTH => 'metre',
+		ConvertDimension::DIM_AREA => 'squaremetre',
+		ConvertDimension::DIM_VOLUME => 'cubicmetre',
+		ConvertDimension::DIM_TIME => 'second',
+		ConvertDimension::DIM_SPEED => 'metre/second',
+		ConvertDimension::DIM_PRESSURE => 'pascal',
+	);
+
+	# An array of preprocessing conversions to apply to units
+	protected static $unitConversions = array(
+		'/^mph$/u' => 'mi/h',
+	);
+
+	# Map of UNIT => DIMENSION, created on construct
+	protected static $dimensionMap = false;
+
+	/***************** MEMBER VARIABLES *****************/
+
+	/**
+	 * @var ConvertDimension
+	 */
+	public $dimension;
+
+	# What number you need to multiply this unit by to get the equivalent
+	# value in SI base units
+	protected $conversion = 1;
+
+	# A regex which matches the unit
+	protected $regex;
+
+	# The name of the unit (key into $units[$dimension] above
+	protected $unitName;
+
+	# The SI prefix, if applicable
+	protected $prefix = null;
+
+	/***************** MEMBER FUNCTIONS *****************/
+
+	/**
+	 * Constructor
+	 * @param  $rawUnit String
+	 */
+	public function __construct( $rawUnit ){
+		if( self::$dimensionMap === false ){
+			self::$dimensionMap = array();
+			foreach( self::$units as $dimension => $arr ){
+				foreach( $arr as $unit => $val ){
+					self::$dimensionMap[$unit] = $dimension;
+				}
+			}
+		}
+
+		$this->parseUnit( $rawUnit );
+	}
+
+	/**
+	 * Parse a raw unit string, and populate member variables
+	 * @param  $rawUnit String
+	 */
+	protected function parseUnit( $rawUnit ){
+
+		# Do mappings like 'mph' --> 'mi/h'
+		$rawUnit = preg_replace(
+			array_keys( self::$unitConversions ),
+			array_values( self::$unitConversions ),
+			$rawUnit
+		);
+
+		$parts = explode( '/', $rawUnit );
+		array_map( 'trim', $parts );
+		if( count( $parts ) == 1 ){
+			# Single unit
+			foreach( self::$units as $dimension => $units ){
+				foreach( $units as $unit => $data ){
+					if( $rawUnit == $unit
+						|| ( !$data[2] && preg_match( "/^({$data[1]})$/u", $parts[0] ) )
+						|| (  $data[2] && preg_match( "/^(" . ConvertParser::PREFIX_REGEX . ")(" . $data[1] . ")$/u", $parts[0] ) ) )
+					{
+						$this->dimension = new ConvertDimension( self::$dimensionMap[$unit] );
+						$this->conversion = $data[0];
+						$this->regex = $data[1];
+						$this->unitName = $unit;
+
+						# Grab the SI prefix, if it's allowed and there is one
+						if( $data[2] && !preg_match( "/^({$data[1]})$/u", $parts[0] ) ){
+							foreach( self::$prefixes as $prefix => $pdata ){
+								if( preg_match( "/^({$pdata[1]})({$data[1]})$/u", $parts[0] ) ){
+									$this->prefix = $prefix;
+									break;
+								}
+							}
+						}
+
+						return;
+					}
+				}
+			}
+
+			# Unknown unit
+			throw new ConvertError( 'unknownunit', $rawUnit );
+
+		} elseif( count( $parts ) == 2 ){
+			# Compound unit.
+			$top = new self( $parts[0] );
+			$bottom = new self( $parts[1] );
+			$this->dimension = new ConvertDimension( $top->dimension, $bottom->dimension );
+			$this->conversion = $top->conversion / $bottom->conversion;
+			$this->regex = "(?:{$top->regex})/(?:{$bottom->regex})";
+			$this->unitName = array( $top->unitName, $bottom->unitName );
+			$this->prefix = array( $top->prefix, $bottom->prefix );
+			return;
+
+		} else {
+			# Whaaat?  Too many parts
+			throw new ConvertError( 'doublecompoundunit', $rawUnit );
+		}
+	}
+
+	/**
+	 * Get the mathematical factor which will convert a measurement in this unit into a
+	 * measurement in the SI base unit for the dimension
+	 * @return double
+	 */
+	public function getConversion(){
+		return $this->conversion * $this->getPrefixConversion();
+	}
+
+	/**
+	 * Get the conversion factor associated with the prefix(es) in the unit
+	 * @return double
+	 */
+	public function getPrefixConversion(){
+		if( !$this->prefix ){
+			return 1;
+		} elseif( is_array( $this->prefix ) ){
+			$x = $this->prefix[0] !== null
+				? self::$prefixes[$this->prefix[0]][0]
+				: 1;
+			if( $this->prefix[1] !== null ){
+				$x *= self::$prefixes[$this->prefix[1]][0];
+			}
+			return $x;
+		} else {
+			return self::$prefixes[$this->prefix][0];
+		}
+	}
+
+	/**
+	 * Get a regular expression which will match keywords for this unit
+	 * @return String
+	 */
+	public function getRegex(){
+		return $this->regex;
+	}
+
+	/**
+	 * Get the text of the unit
+	 * @param $string String Original text, with the number converted
+	 * @param $value String number for PLURAL support
+	 * @param $link Bool
+	 * @param $abbreviate Bool
+	 * @param $language Language
+	 * @return String
+	 */
+	public function getText( $string, $value, $link=false, $abbreviate=false, $language=null ){
+		global $wgContLang;
+		$value = $wgContLang->formatNum( $value );
+
+		if( !is_array( $this->unitName ) ){
+			$msgText = $this->getTextFromMessage(
+				$this->dimension->getName(),
+				$this->unitName,
+				$this->prefix,
+				$string, $value, $link, $abbreviate, $language
+			);
+
+		} elseif( !wfEmptyMsg( "pfunc-convert-unit-{$this->dimension->getName(true)}-{$this->unitName[0]}-{$this->unitName[1]}" ) ){
+			# A wiki has created, say, [[MediaWiki:pfunc-convert-unit-speed-metres-second]]
+			# so they can have it display "<metres per second>" rather than
+			# "<metres>/<second>"
+			$msgText = $this->getTextFromMessage(
+				$this->dimension->getName(true),
+				"{$this->unitName[0]}-{$this->unitName[1]}",
+				$this->prefix, # This will probably be rubbish, but it's the wiki users' problem, not ours
+				$string, $value, $link, $abbreviate, $language
+			);
+
+		} else {
+			$dimensionNames = $this->dimension->getName();
+			$msgText = $this->getTextFromMessage(
+				$dimensionNames[0],
+				$this->unitName[0],
+				$this->prefix[0],
+				$string, $value, $link, $abbreviate, $language
+			);
+			$msg2Text = $this->getTextFromMessage(
+				$dimensionNames[1],
+				$this->unitName[1],
+				$this->prefix[1],
+				'',
+				1, # Singular for denominator
+				$link, $abbreviate, $language
+			);
+			$msgText = "$msgText/$msg2Text";
+		}
+
+		return trim( $msgText );
+	}
+
+	/**
+	 * Retrieve the unit text from actual messages
+	 * @param  $dimension String
+	 * @param  $unit String
+	 * @param  $prefix String
+	 * @param  $string String
+	 * @param  $number String the actual value (for {{PLURAL}} etc)
+	 * @param  $link Bool
+	 * @param  $abbreviate Bool
+	 * @param  $language Language|Bool|null
+	 * @return String
+	 */
+	protected function getTextFromMessage( $dimension, $unit, $prefix, $string, $number, $link, $abbreviate, $language ){
+		$abbr = $abbreviate ? '-abbr' : '';
+		$prefix = $prefix === null
+			? ''
+			: wfMsgExt( "pfunc-convert-prefix-$prefix$abbr", array( 'parsemag', 'language' => $language ) );
+
+		$text = wfMsgExt(
+			"pfunc-convert-unit-$dimension-$unit$abbr",
+			array( 'parsemag', 'language' => $language ),
+			$string,
+			$number,
+			$prefix
+		);
+
+		if( $link && !wfEmptyMsg( "pfunc-convert-unit-$dimension-$unit-link" ) ){
+			$title = Title::newFromText(
+				wfMsgForContentNoTrans( "pfunc-convert-unit-$dimension-$unit-link" ),
+				$prefix
+			);
+			if( $title instanceof Title ){
+				$text = "[[{$title->getFullText()}|$text]]";
+			}
+		}
+		
+		return $text;
+	}
+
+	/**
+	 * Get the default (usually SI) unit associated with this particular dimension
+	 * @return ConvertUnit
+	 */
+	public function getDefaultUnit(){
+		return new ConvertUnit( self::$defaultUnit[$this->dimension->value] );
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Expr.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Expr.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/Expr.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -46,9 +46,8 @@
 define( 'EXPR_POW', 35 );
 define( 'EXPR_PI', 36 );
 
-class ExprError extends Exception {
-	public function __construct($msg, $parameter = ''){
-		wfLoadExtensionMessages( 'ParserFunctions' );
+class ExprError extends MWException {
+	public function __construct( $msg, $parameter = '' ) {
 		$this->message = '<strong class="error">' . wfMsgForContent( "pfunc_expr_$msg", htmlspecialchars( $parameter ) ) . '</strong>';
 	}
 }
@@ -158,6 +157,8 @@
 	 * The algorithm here is based on the infix to RPN algorithm given in
 	 * http://montcs.bloomu.edu/~bobmon/Information/RPN/infix2rpn.shtml
 	 * It's essentially the same as Dijkstra's shunting yard algorithm.
+	 * @param $expr string
+	 * @return string
 	 */
 	function doExpression( $expr ) {
 		$operands = array();
@@ -173,7 +174,7 @@
 
 		while ( $p < $end ) {
 			if ( count( $operands ) > $this->maxStackSize || count( $operators ) > $this->maxStackSize ) {
-				throw new ExprError('stack_exhausted');
+				throw new ExprError( 'stack_exhausted' );
 			}
 			$char = $expr[$p];
 			$char2 = substr( $expr, $p, 2 );
@@ -191,7 +192,7 @@
 			} elseif ( false !== strpos( EXPR_NUMBER_CLASS, $char ) ) {
 				// Number
 				if ( $expecting != 'expression' ) {
-					throw new ExprError('unexpected_number');
+					throw new ExprError( 'unexpected_number' );
 				}
 
 				// Find the rest of it
@@ -207,14 +208,14 @@
 				$remaining = substr( $expr, $p );
 				if ( !preg_match( '/^[A-Za-z]*/', $remaining, $matches ) ) {
 					// This should be unreachable
-					throw new ExprError('preg_match_failure');
+					throw new ExprError( 'preg_match_failure' );
 				}
 				$word = strtolower( $matches[0] );
 				$p += strlen( $word );
 
 				// Interpret the word
-				if ( !isset( $this->words[$word] ) ){
-					throw new ExprError('unrecognised_word', $word);
+				if ( !isset( $this->words[$word] ) ) {
+					throw new ExprError( 'unrecognised_word', $word );
 				}
 				$op = $this->words[$word];
 				switch( $op ) {
@@ -223,7 +224,7 @@
 					if ( $expecting != 'expression' ) {
 						continue;
 					}
-					$operands[] = exp(1);
+					$operands[] = exp( 1 );
 					$expecting = 'operator';
 					continue 2;
 				case EXPR_PI:
@@ -274,7 +275,7 @@
 			}
 
 			// Finally the single-character operators
-			
+
 			elseif ( $char == '+' ) {
 				++$p;
 				if ( $expecting == 'expression' ) {
@@ -309,7 +310,7 @@
 				++$p;
 			} elseif ( $char == '(' )  {
 				if ( $expecting == 'operator' ) {
-					throw new ExprError('unexpected_operator', '(');
+					throw new ExprError( 'unexpected_operator', '(' );
 				}
 				$operators[] = EXPR_OPEN;
 				++$p;
@@ -324,7 +325,7 @@
 				if ( $lastOp ) {
 					array_pop( $operators );
 				} else {
-					throw new ExprError('unexpected_closing_bracket');
+					throw new ExprError( 'unexpected_closing_bracket' );
 				}
 				$expecting = 'operator';
 				++$p;
@@ -342,12 +343,12 @@
 				$op = EXPR_GREATER;
 				++$p;
 			} else {
-				throw new ExprError('unrecognised_punctuation', UtfNormal::cleanUp( $char ));
+				throw new ExprError( 'unrecognised_punctuation', UtfNormal::cleanUp( $char ) );
 			}
 
 			// Binary operator processing
 			if ( $expecting == 'expression' ) {
-				throw new ExprError('unexpected_operator', $name);
+				throw new ExprError( 'unexpected_operator', $name );
 			}
 
 			// Shunting yard magic
@@ -364,7 +365,7 @@
 		// Finish off the operator array
 		while ( $op = array_pop( $operators ) ) {
 			if ( $op == EXPR_OPEN ) {
-				throw new ExprError('unclosed_bracket');
+				throw new ExprError( 'unclosed_bracket' );
 			}
 			$this->doOperation( $op, $operands );
 		}
@@ -372,185 +373,264 @@
 		return implode( "<br />\n", $operands );
 	}
 
+	/**
+	 * @param $op int
+	 * @param $stack array
+	 * @throws ExprError
+	 */
 	function doOperation( $op, &$stack ) {
 		switch ( $op ) {
 			case EXPR_NEGATIVE:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
 				$stack[] = -$arg;
 				break;
 			case EXPR_POSITIVE:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				break;
 			case EXPR_TIMES:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = $left * $right;
 					break;
 			case EXPR_DIVIDE:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
-				if ( $right == 0 ) throw new ExprError('division_by_zero', $this->names[$op]);
+				if ( $right == 0 ) {
+					throw new ExprError( 'division_by_zero', $this->names[$op] );
+				}
 				$stack[] = $left / $right;
 				break;
 			case EXPR_MOD:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
-				if ( $right == 0 ) throw new ExprError('division_by_zero', $this->names[$op]);
+				if ( $right == 0 ) {
+					throw new ExprError( 'division_by_zero', $this->names[$op] );
+				}
 				$stack[] = $left % $right;
 				break;
 			case EXPR_PLUS:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = $left + $right;
 				break;
 			case EXPR_MINUS:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = $left - $right;
 				break;
 			case EXPR_AND:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left && $right ) ? 1 : 0;
 				break;
 			case EXPR_OR:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left || $right ) ? 1 : 0;
 				break;
 			case EXPR_EQUALITY:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left == $right ) ? 1 : 0;
 				break;
 			case EXPR_NOT:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = (!$arg) ? 1 : 0;
+				$stack[] = ( !$arg ) ? 1 : 0;
 				break;
 			case EXPR_ROUND:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$digits = intval( array_pop( $stack ) );
 				$value = array_pop( $stack );
 				$stack[] = round( $value, $digits );
 				break;
 			case EXPR_LESS:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left < $right ) ? 1 : 0;
 				break;
 			case EXPR_GREATER:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left > $right ) ? 1 : 0;
 				break;
 			case EXPR_LESSEQ:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left <= $right ) ? 1 : 0;
 				break;
 			case EXPR_GREATEREQ:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left >= $right ) ? 1 : 0;
 				break;
 			case EXPR_NOTEQ:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
 				$stack[] = ( $left != $right ) ? 1 : 0;
 				break;
 			case EXPR_EXPONENT:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
-				$stack[] = $left * pow(10,$right);
+				$stack[] = $left * pow( 10, $right );
 				break;
 			case EXPR_SINE:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = sin($arg);
+				$stack[] = sin( $arg );
 				break;
 			case EXPR_COSINE:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = cos($arg);
+				$stack[] = cos( $arg );
 				break;
 			case EXPR_TANGENS:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = tan($arg);
+				$stack[] = tan( $arg );
 				break;
 			case EXPR_ARCSINE:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				if ( $arg < -1 || $arg > 1 ) throw new ExprError('invalid_argument', $this->names[$op] );
-				$stack[] = asin($arg);
+				if ( $arg < -1 || $arg > 1 ) {
+					throw new ExprError( 'invalid_argument', $this->names[$op] );
+				}
+				$stack[] = asin( $arg );
 				break;
 			case EXPR_ARCCOS:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				if ( $arg < -1 || $arg > 1 ) throw new ExprError('invalid_argument', $this->names[$op] );
-				$stack[] = acos($arg);
+				if ( $arg < -1 || $arg > 1 ) {
+					throw new ExprError( 'invalid_argument', $this->names[$op] );
+				}
+				$stack[] = acos( $arg );
 				break;
 			case EXPR_ARCTAN:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = atan($arg);
+				$stack[] = atan( $arg );
 				break;
 			case EXPR_EXP:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = exp($arg);
+				$stack[] = exp( $arg );
 				break;
 			case EXPR_LN:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				if ( $arg <= 0 ) throw new ExprError('invalid_argument_ln', $this->names[$op]);
-				$stack[] = log($arg);
+				if ( $arg <= 0 ) {
+					throw new ExprError( 'invalid_argument_ln', $this->names[$op] );
+				}
+				$stack[] = log( $arg );
 				break;
 			case EXPR_ABS:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = abs($arg);
+				$stack[] = abs( $arg );
 				break;
 			case EXPR_FLOOR:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = floor($arg);
+				$stack[] = floor( $arg );
 				break;
 			case EXPR_TRUNC:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
 				$stack[] = (int)$arg;
 				break;
 			case EXPR_CEIL:
-				if ( count( $stack ) < 1 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 1 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$arg = array_pop( $stack );
-				$stack[] = ceil($arg);
+				$stack[] = ceil( $arg );
 				break;
 			case EXPR_POW:
-				if ( count( $stack ) < 2 ) throw new ExprError('missing_operand', $this->names[$op]);
+				if ( count( $stack ) < 2 ) {
+					throw new ExprError( 'missing_operand', $this->names[$op] );
+				}
 				$right = array_pop( $stack );
 				$left = array_pop( $stack );
-				if ( false === ($stack[] = pow($left, $right)) ) throw new ExprError('division_by_zero', $this->names[$op]);
+				if ( false === ( $stack[] = pow( $left, $right ) ) ) {
+					throw new ExprError( 'division_by_zero', $this->names[$op] );
+				}
 				break;
 			default:
 				// Should be impossible to reach here.
-				throw new ExprError('unknown_error');
+				throw new ExprError( 'unknown_error' );
 		}
 	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.magic.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.magic.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.magic.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,104 +1,566 @@
 <?php
 
+$magicWords = array();
+
 /**
- * Get translated magic words, if available
- *
- * @param string $lang Language code
- * @return array
+ * English
  */
-function efParserFunctionsWords( $lang ) {
-	$words = array();
 
-	/**
-	 * English
-	 */
-	$words['en'] = array(
-		'expr'       => array( 0, 'expr' ),
-		'if'         => array( 0, 'if' ),
-		'ifeq'       => array( 0, 'ifeq' ),
-		'ifexpr'     => array( 0, 'ifexpr' ),
-		'iferror'    => array( 0, 'iferror' ),
-		'switch'     => array( 0, 'switch' ),
-		'default'    => array( 0, '#default' ),
-		'ifexist'    => array( 0, 'ifexist' ),
-		'time'       => array( 0, 'time' ),
-		'timel'      => array( 0, 'timel' ),
-		'rel2abs'    => array( 0, 'rel2abs' ),
-		'titleparts' => array( 0, 'titleparts' ),
-	);
+$magicWords = array();
 
-	/**
-	 * Farsi-Persian
-	 */
-	$words['fa'] = array(
-		'expr' 		 => array( 0, 'حساب',         'expr' ),
-		'if' 		 => array( 0, 'اگر',          'if' ),
-		'ifeq' 		 => array( 0, 'اگرمساوی',     'ifeq' ),
-		'ifexpr' 	 => array( 0, 'اگرحساب',      'ifexpr' ),
-		'iferror'    => array( 0, 'اگرخطا',       'iferror' ),
-		'switch' 	 => array( 0, 'گزینه',        'switch' ),
-		'default' 	 => array( 0, '#پیش‌فرض',      '#default' ),
-		'ifexist' 	 => array( 0, 'اگرموجود',     'ifexist' ),
-		'time' 		 => array( 0, 'زمان',         'time' ),
-		'timel'      => array( 0, 'زمان‌بلند',     'timel' ),
-		'rel2abs' 	 => array( 0, 'نسبی‌به‌مطلق',   'rel2abs' ),
-		'titleparts' => array( 0, 'پاره‌عنوان',    'titleparts' ),
-	);
+/** English (English) */
+$magicWords['en'] = array(
+	'expr' => array( 0, 'expr' ),
+	'if' => array( 0, 'if' ),
+	'ifeq' => array( 0, 'ifeq' ),
+	'ifexpr' => array( 0, 'ifexpr' ),
+	'iferror' => array( 0, 'iferror' ),
+	'switch' => array( 0, 'switch' ),
+	'default' => array( 0, '#default' ),
+	'ifexist' => array( 0, 'ifexist' ),
+	'time' => array( 0, 'time' ),
+	'timel' => array( 0, 'timel' ),
+	'rel2abs' => array( 0, 'rel2abs' ),
+	'titleparts' => array( 0, 'titleparts' ),
+	'convert' => array( 0, 'convert' ),
+	'sourceunit' => array( 0, '#sourceunit' ),
+	'targetunit' => array( 0, '#targetunit' ),
+	'linkunit' => array( 0, '#linkunit' ),
+	'decimalplaces' => array( 0, '#dp' ),
+	'significantfigures' => array( 0, '#sf' ),
+	'abbreviate' => array( 0, '#abbreviate' ),
+	'language' => array( 0, '#language' ),
+	'len' => array( 0, 'len' ),
+	'pos' => array( 0, 'pos' ),
+	'rpos' => array( 0, 'rpos' ),
+	'sub' => array( 0, 'sub' ),
+	'count' => array( 0, 'count' ),
+	'replace' => array( 0, 'replace' ),
+	'explode' => array( 0, 'explode' ),
+	'urldecode' => array( 0, 'urldecode' ),
+);
 
-	/**
-	 * Hebrew
-	 */
-	$words['he'] = array(
-		'expr'       => array( 0, 'חשב',         'expr' ),
-		'if'         => array( 0, 'תנאי',        'if' ),
-		'ifeq'       => array( 0, 'שווה',        'ifeq' ),
-		'ifexpr'     => array( 0, 'חשב תנאי',    'ifexpr' ),
-		'iferror'    => array( 0, 'תנאי שגיאה',  'iferror' ),
-		'switch'     => array( 0, 'בחר',         'switch' ),
-		'default'    => array( 0, '#ברירת מחדל', '#default' ),
-		'ifexist'    => array( 0, 'קיים',        'ifexist' ),
-		'time'       => array( 0, 'זמן',         'time' ),
-		'timel'      => array( 0, 'זמןמ',        'timel' ),
-		'rel2abs'    => array( 0, 'יחסי למוחלט', 'rel2abs' ),
-		'titleparts' => array( 0, 'חלק בכותרת',  'titleparts' ),
-	);
+/** Arabic (العربية) */
+$magicWords['ar'] = array(
+	'expr' => array( 0, 'تعبير' ),
+	'if' => array( 0, 'لو' ),
+	'ifeq' => array( 0, 'لومعادلة' ),
+	'ifexpr' => array( 0, 'لوتعبير' ),
+	'iferror' => array( 0, 'لوخطأ' ),
+	'switch' => array( 0, 'تبديل' ),
+	'default' => array( 0, '#افتراضي' ),
+	'ifexist' => array( 0, 'لوموجود' ),
+	'time' => array( 0, 'وقت' ),
+	'timel' => array( 0, 'تيمل' ),
+	'rel2abs' => array( 0, 'ريلتوآبس' ),
+	'titleparts' => array( 0, 'أجزاء_العنوان' ),
+	'language' => array( 0, '#لغة:' ),
+	'len' => array( 0, 'لين' ),
+	'pos' => array( 0, 'بوس' ),
+	'rpos' => array( 0, 'آربوس' ),
+	'sub' => array( 0, 'متفرع' ),
+	'count' => array( 0, 'عدد' ),
+	'replace' => array( 0, 'استبدال' ),
+	'explode' => array( 0, 'انفجار' ),
+	'urldecode' => array( 0, 'فك_مسار' ),
+);
 
-	/**
-	 * Indonesian
-	 */
-	$words['id'] = array(
-		'expr'       => array( 0, 'hitung',       'expr' ),
-		'if'         => array( 0, 'jika',         'if' ),
-		'ifeq'       => array( 0, 'jikasama',     'ifeq' ),
-		'ifexpr'     => array( 0, 'jikahitung',   'ifexpr' ),
-		'iferror'    => array( 0, 'jikasalah',   'iferror' ),
-		'switch'     => array( 0, 'pilih',        'switch' ),
-		'default'    => array( 0, '#baku',        '#default' ),
-		'ifexist'    => array( 0, 'jikaada',      'ifexist' ),
-		'time'       => array( 0, 'waktu',        'time' ),
-		'timel'      => array( 0, 'waktu1',       'timel' ),
-		'rel2abs'    => array( 0, 'rel2abs' ),
-		'titleparts' => array( 0, 'bagianjudul',  'titleparts' ),
-	);
+/** Aramaic (ܐܪܡܝܐ) */
+$magicWords['arc'] = array(
+	'language' => array( 0, '#ܠܫܢܐ:' ),
+);
 
-	/**
-	 * Yiddish
-	 */
-	$words['yi'] = array(
-		'expr'       => array( 0, 'רעכן',    'expr' ),
-		'if'         => array( 0, 'תנאי',    'if' ),
-		'ifeq'       => array( 0, 'גלייך',   'ifeq' ),
-		'ifexpr'     => array( 0, 'אויברעכן', 'ifexpr' ),
-		'switch'     => array( 0, 'קלייב',   'switch' ),
-		'default'    => array( 0, '#גרונט',  '#default' ),
-		'ifexist'    => array( 0, 'עקזיסט',  'ifexist' ),
-		'time'       => array( 0, 'צייט',    'time' ),
-		'timel'      => array( 0, 'צייטל',   'timel' ),
-	);
+/** Egyptian Spoken Arabic (مصرى) */
+$magicWords['arz'] = array(
+	'expr' => array( 0, 'تعبير', 'expr' ),
+	'if' => array( 0, 'لو', 'if' ),
+	'ifeq' => array( 0, 'لومعادلة', 'ifeq' ),
+	'ifexpr' => array( 0, 'لوتعبير', 'ifexpr' ),
+	'iferror' => array( 0, 'لوخطأ', 'iferror' ),
+	'switch' => array( 0, 'تبديل', 'switch' ),
+	'default' => array( 0, '#افتراضي', '#default' ),
+	'ifexist' => array( 0, 'لوموجود', 'ifexist' ),
+	'time' => array( 0, 'وقت', 'time' ),
+	'timel' => array( 0, 'تيمل', 'timel' ),
+	'rel2abs' => array( 0, 'ريلتوآبس', 'rel2abs' ),
+	'titleparts' => array( 0, 'أجزاء_العنوان', 'titleparts' ),
+	'len' => array( 0, 'لين', 'len' ),
+	'pos' => array( 0, 'بوس', 'pos' ),
+	'rpos' => array( 0, 'آربوس', 'rpos' ),
+	'sub' => array( 0, 'متفرع', 'sub' ),
+	'count' => array( 0, 'عدد', 'count' ),
+	'replace' => array( 0, 'استبدال', 'replace' ),
+	'explode' => array( 0, 'انفجار', 'explode' ),
+);
 
-	# English is used as a fallback, and the English synonyms are
-	# used if a translation has not been provided for a given word
-	return ( $lang == 'en' || !isset( $words[$lang] ) )
-		? $words['en']
-		: array_merge( $words['en'], $words[$lang] );
-}
+/** Breton (Brezhoneg) */
+$magicWords['br'] = array(
+	'time' => array( 0, 'amzer' ),
+	'convert' => array( 0, 'amdreiñ' ),
+	'count' => array( 0, 'kontañ' ),
+	'replace' => array( 0, 'erlec\'hiañ' ),
+);
+
+/** Bosnian (Bosanski) */
+$magicWords['bs'] = array(
+	'language' => array( 0, '#JEZIK:' ),
+);
+
+/** Chechen (Нохчийн) */
+$magicWords['ce'] = array(
+	'time' => array( 0, 'хан', 'time' ),
+	'replace' => array( 0, 'хийцарна', 'замена', 'replace' ),
+);
+
+/** Czech (Česky) */
+$magicWords['cs'] = array(
+	'expr' => array( 0, 'výraz', 'expr' ),
+	'if' => array( 0, 'když', 'if' ),
+	'ifexist' => array( 0, 'kdyžexist', 'ifexist' ),
+	'time' => array( 0, 'čas', 'time' ),
+	'len' => array( 0, 'délka', 'len' ),
+	'count' => array( 0, 'počet', 'count' ),
+	'replace' => array( 0, 'nahradit', 'replace' ),
+);
+
+/** Esperanto (Esperanto) */
+$magicWords['eo'] = array(
+	'expr' => array( 0, 'espr', 'esprimo' ),
+	'if' => array( 0, 'se' ),
+	'ifeq' => array( 0, 'seekv', 'seekvacio' ),
+	'ifexpr' => array( 0, 'seespr', 'seeksprimo' ),
+	'iferror' => array( 0, 'seeraras' ),
+	'switch' => array( 0, 'ŝaltu', 'ŝalti', 'sxaltu', 'sxalti' ),
+	'default' => array( 0, '#defaŭlte', '#defauxlte' ),
+	'ifexist' => array( 0, 'seekzistas' ),
+	'time' => array( 0, 'tempo' ),
+	'timel' => array( 0, 'tempoo' ),
+	'language' => array( 0, '#LINGVO:' ),
+);
+
+/** Spanish (Español) */
+$magicWords['es'] = array(
+	'if' => array( 0, 'si', 'if' ),
+	'ifexpr' => array( 0, 'siexpr', 'ifexpr' ),
+	'iferror' => array( 0, 'sierror', 'iferror' ),
+	'switch' => array( 0, 'según', 'switch' ),
+	'ifexist' => array( 0, 'siexiste', 'ifexist' ),
+	'time' => array( 0, 'tiempo', 'time' ),
+	'len' => array( 0, 'long', 'longitud', 'len' ),
+	'replace' => array( 0, 'reemplazar', 'replace' ),
+	'explode' => array( 0, 'separar', 'explode' ),
+);
+
+/** Estonian (Eesti) */
+$magicWords['et'] = array(
+	'language' => array( 0, '#KEEL:' ),
+);
+
+/** Persian (فارسی) */
+$magicWords['fa'] = array(
+	'expr' => array( 0, 'حساب' ),
+	'if' => array( 0, 'اگر' ),
+	'ifeq' => array( 0, 'اگرمساوی' ),
+	'ifexpr' => array( 0, 'اگرحساب' ),
+	'iferror' => array( 0, 'اگرخطا' ),
+	'switch' => array( 0, 'گزینه' ),
+	'default' => array( 0, '#پیش‌فرض' ),
+	'ifexist' => array( 0, 'اگرموجود' ),
+	'time' => array( 0, 'زمان' ),
+	'timel' => array( 0, 'زمان‌بلند' ),
+	'rel2abs' => array( 0, 'نسبی‌به‌مطلق' ),
+	'titleparts' => array( 0, 'پاره‌عنوان' ),
+	'language' => array( 0, '#زبان' ),
+	'len' => array( 0, 'طول' ),
+	'pos' => array( 0, 'جا' ),
+	'rpos' => array( 0, 'جار' ),
+	'sub' => array( 0, 'تکه' ),
+	'count' => array( 0, 'شمار' ),
+	'replace' => array( 0, 'جایگزین' ),
+	'explode' => array( 0, 'گسترش' ),
+	'urldecode' => array( 0, 'نشانی‌بی‌کد' ),
+);
+
+/** Finnish (Suomi) */
+$magicWords['fi'] = array(
+	'language' => array( 0, '#KIELI:' ),
+);
+
+/** Galician (Galego) */
+$magicWords['gl'] = array(
+	'language' => array( 0, '#LINGUA:', '#IDIOMA:' ),
+);
+
+/** Hebrew (עברית) */
+$magicWords['he'] = array(
+	'expr' => array( 0, 'חשב', 'expr' ),
+	'if' => array( 0, 'תנאי', 'if' ),
+	'ifeq' => array( 0, 'שווה', 'ifeq' ),
+	'ifexpr' => array( 0, 'חשב תנאי', 'ifexpr' ),
+	'iferror' => array( 0, 'תנאי שגיאה', 'iferror' ),
+	'switch' => array( 0, 'בחר', 'switch' ),
+	'default' => array( 0, '#ברירת מחדל', '#default' ),
+	'ifexist' => array( 0, 'קיים', 'ifexist' ),
+	'time' => array( 0, 'זמן', 'time' ),
+	'timel' => array( 0, 'זמןמ', 'timel' ),
+	'rel2abs' => array( 0, 'יחסי למוחלט', 'rel2abs' ),
+	'titleparts' => array( 0, 'חלק בכותרת', 'titleparts' ),
+);
+
+/** Hungarian (Magyar) */
+$magicWords['hu'] = array(
+	'expr' => array( 0, 'kif', 'expr' ),
+	'if' => array( 0, 'ha', 'if' ),
+	'ifeq' => array( 0, 'haegyenlő', 'ifeq' ),
+	'ifexpr' => array( 0, 'hakif', 'ifexpr' ),
+	'iferror' => array( 0, 'hahibás', 'iferror' ),
+	'default' => array( 0, '#alapértelmezett', '#default' ),
+	'ifexist' => array( 0, 'halétezik', 'ifexist' ),
+	'time' => array( 0, 'idő', 'time' ),
+	'len' => array( 0, 'hossz', 'len' ),
+	'pos' => array( 0, 'pozíció', 'pos' ),
+	'rpos' => array( 0, 'jpozíció', 'rpos' ),
+);
+
+/** Indonesian (Bahasa Indonesia) */
+$magicWords['id'] = array(
+	'expr' => array( 0, 'hitung', 'expr' ),
+	'if' => array( 0, 'jika', 'if' ),
+	'ifeq' => array( 0, 'jikasama', 'ifeq' ),
+	'ifexpr' => array( 0, 'jikahitung', 'ifexpr' ),
+	'iferror' => array( 0, 'jikasalah', 'iferror' ),
+	'switch' => array( 0, 'pilih', 'switch' ),
+	'default' => array( 0, '#baku', '#default' ),
+	'ifexist' => array( 0, 'jikaada', 'ifexist' ),
+	'time' => array( 0, 'waktu', 'time' ),
+	'timel' => array( 0, 'waktu1', 'timel' ),
+	'titleparts' => array( 0, 'bagianjudul', 'titleparts' ),
+);
+
+/** Igbo (Igbo) */
+$magicWords['ig'] = array(
+	'if' => array( 0, 'ȯ_bú', 'if' ),
+	'time' => array( 0, 'ógè', 'time' ),
+	'timel' => array( 0, 'ógèl', 'timel' ),
+);
+
+/** Italian (Italiano) */
+$magicWords['it'] = array(
+	'ifexist' => array( 0, 'ifexist' ),
+	'language' => array( 0, '#LINGUA' ),
+);
+
+/** Japanese (日本語) */
+$magicWords['ja'] = array(
+	'expr' => array( 0, '式' ),
+	'if' => array( 0, 'もし' ),
+	'ifeq' => array( 0, 'もし等しい' ),
+	'ifexpr' => array( 0, 'もし式' ),
+	'iferror' => array( 0, 'もしエラー' ),
+	'switch' => array( 0, '切り替え' ),
+	'default' => array( 0, '#既定' ),
+	'ifexist' => array( 0, 'もし存在' ),
+	'time' => array( 0, '時間' ),
+	'timel' => array( 0, '時間地方' ),
+	'rel2abs' => array( 0, '参照から絶対' ),
+	'titleparts' => array( 0, 'タイトル部分' ),
+	'language' => array( 0, '#言語:', '#言語:' ),
+	'len' => array( 0, '長さ' ),
+	'pos' => array( 0, '位置' ),
+	'rpos' => array( 0, '最後の位置' ),
+	'sub' => array( 0, '切り取り' ),
+	'count' => array( 0, '回数' ),
+	'replace' => array( 0, '置き換え' ),
+	'explode' => array( 0, '分割' ),
+	'urldecode' => array( 0, 'URLデコード' ),
+);
+
+/** Khmer (ភាសាខ្មែរ) */
+$magicWords['km'] = array(
+	'language' => array( 0, '#ភាសា:' ),
+);
+
+/** Korean (한국어) */
+$magicWords['ko'] = array(
+	'expr' => array( 0, '수식' ),
+	'switch' => array( 0, '스위치' ),
+	'default' => array( 0, '#기본값' ),
+	'time' => array( 0, '시간' ),
+	'timel' => array( 0, '지역시간' ),
+	'language' => array( 0, '#언어:' ),
+	'len' => array( 0, '길이' ),
+	'count' => array( 0, '개수' ),
+	'replace' => array( 0, '교체' ),
+	'explode' => array( 0, '분리' ),
+	'urldecode' => array( 0, '주소디코딩:' ),
+);
+
+/** ‪Kurdî (latînî)‬ (‪Kurdî (latînî)‬) */
+$magicWords['ku-latn'] = array(
+	'len' => array( 0, '#ziman' ),
+);
+
+/** Ladino (Ladino) */
+$magicWords['lad'] = array(
+	'switch' => array( 0, 'asegún', 'según', 'switch' ),
+);
+
+/** Malagasy (Malagasy) */
+$magicWords['mg'] = array(
+	'if' => array( 0, 'raha', 'if' ),
+	'ifeq' => array( 0, 'rahamitovy', 'ifeq' ),
+	'ifexpr' => array( 0, 'rahamarina', 'ifexpr' ),
+	'iferror' => array( 0, 'rahadiso', 'iferror' ),
+	'default' => array( 0, '#tsipalotra', '#default' ),
+	'ifexist' => array( 0, 'rahamisy', 'ifexist' ),
+	'time' => array( 0, 'lera', 'time' ),
+);
+
+/** Macedonian (Македонски) */
+$magicWords['mk'] = array(
+	'expr' => array( 0, 'израз' ),
+	'if' => array( 0, 'ако' ),
+	'ifeq' => array( 0, 'акоисто' ),
+	'ifexpr' => array( 0, 'акоизраз' ),
+	'iferror' => array( 0, 'акогрешка' ),
+	'switch' => array( 0, 'префрли' ),
+	'default' => array( 0, '#поосновно' ),
+	'ifexist' => array( 0, 'акопостои' ),
+	'time' => array( 0, 'време' ),
+	'timel' => array( 0, 'времел' ),
+	'rel2abs' => array( 0, 'релдоапс' ),
+	'titleparts' => array( 0, 'насловделови' ),
+	'convert' => array( 0, 'претвори' ),
+	'sourceunit' => array( 0, '#изворнаединица' ),
+	'targetunit' => array( 0, '#целнаединица' ),
+	'linkunit' => array( 0, '#врскаединица' ),
+	'abbreviate' => array( 0, '#скрати' ),
+	'len' => array( 0, 'долж' ),
+	'pos' => array( 0, 'пол' ),
+	'rpos' => array( 0, 'впол' ),
+	'sub' => array( 0, 'зам' ),
+	'count' => array( 0, 'сметај' ),
+	'replace' => array( 0, 'замени' ),
+	'explode' => array( 0, 'разложи' ),
+	'urldecode' => array( 0, 'urlдекод' ),
+);
+
+/** Malayalam (മലയാളം) */
+$magicWords['ml'] = array(
+	'if' => array( 0, 'എങ്കിൽ' ),
+	'ifeq' => array( 0, 'സമെമെങ്കിൽ' ),
+	'ifexpr' => array( 0, 'എക്സ്പ്രെഷനെങ്കിൽ' ),
+	'iferror' => array( 0, 'പിഴവെങ്കിൽ' ),
+	'switch' => array( 0, 'മാറ്റുക' ),
+	'default' => array( 0, '#സ്വതവേ' ),
+	'ifexist' => array( 0, 'ഉണ്ടെങ്കിൽ' ),
+	'time' => array( 0, 'സമയം' ),
+	'timel' => array( 0, 'സമയം|' ),
+	'language' => array( 0, '#ഭാഷ:' ),
+	'sub' => array( 0, 'ഉപം' ),
+	'count' => array( 0, 'എണ്ണുക' ),
+	'replace' => array( 0, 'മാറ്റിച്ചേർക്കുക' ),
+	'explode' => array( 0, 'വിസ്ഫോടനം' ),
+);
+
+/** Marathi (मराठी) */
+$magicWords['mr'] = array(
+	'expr' => array( 0, 'करण', 'expr' ),
+	'if' => array( 0, 'जर', 'इफ', 'if' ),
+	'ifeq' => array( 0, 'जरसम', 'ifeq' ),
+	'ifexpr' => array( 0, 'जरकरण', 'ifexpr' ),
+	'iferror' => array( 0, 'जरत्रुटी', 'iferror' ),
+	'switch' => array( 0, 'कळ', 'सांगकळ', 'असेलतरसांग', 'असलेतरसांग', 'स्वीच', 'switch' ),
+	'default' => array( 0, '#अविचल', '#default' ),
+	'ifexist' => array( 0, 'जरअसेल', 'जरआहे', 'ifexist' ),
+	'time' => array( 0, 'वेळ', 'time' ),
+	'timel' => array( 0, 'वेळस्था', 'timel' ),
+	'titleparts' => array( 0, 'शीर्षकखंड', 'टाइटलपार्ट्स', 'titleparts' ),
+	'len' => array( 0, 'लांबी', 'len' ),
+	'pos' => array( 0, 'स्थशोध', 'pos' ),
+	'rpos' => array( 0, 'माग्चास्थशोध', 'rpos' ),
+	'sub' => array( 0, 'उप', 'sub' ),
+	'count' => array( 0, 'मोज', 'मोजा', 'count' ),
+	'replace' => array( 0, 'नेबदल', 'रिप्लेस', 'replace' ),
+	'explode' => array( 0, 'एकफोड', 'explode' ),
+);
+
+/** Erzya (Эрзянь) */
+$magicWords['myv'] = array(
+	'language' => array( 0, '#КЕЛЕСЬ:' ),
+);
+
+/** Nedersaksisch (Nedersaksisch) */
+$magicWords['nds-nl'] = array(
+	'if' => array( 0, 'as', 'als', 'if' ),
+	'ifeq' => array( 0, 'asgelieke', 'alsgelijk', 'ifeq' ),
+	'ifexpr' => array( 0, 'asexpressie', 'alsexpressie', 'ifexpr' ),
+	'iferror' => array( 0, 'asfout', 'alsfout', 'iferror' ),
+	'default' => array( 0, '#standard', '#standaard', '#default' ),
+	'ifexist' => array( 0, 'asbesteet', 'alsbestaat', 'ifexist' ),
+	'time' => array( 0, 'tied', 'tijd', 'time' ),
+	'timel' => array( 0, 'tiedl', 'tijdl', 'timel' ),
+	'rel2abs' => array( 0, 'relatiefnaorabseluut', 'relatiefnaarabsoluut', 'rel2abs' ),
+);
+
+/** Dutch (Nederlands) */
+$magicWords['nl'] = array(
+	'expr' => array( 0, 'expressie' ),
+	'if' => array( 0, 'als' ),
+	'ifeq' => array( 0, 'alsgelijk' ),
+	'ifexpr' => array( 0, 'alsexpressie' ),
+	'iferror' => array( 0, 'alsfout' ),
+	'switch' => array( 0, 'schakelen' ),
+	'default' => array( 0, '#standaard' ),
+	'ifexist' => array( 0, 'alsbestaat' ),
+	'time' => array( 0, 'tijd' ),
+	'timel' => array( 0, 'tijdl' ),
+	'rel2abs' => array( 0, 'relatiefnaarabsoluut' ),
+	'titleparts' => array( 0, 'paginanaamdelen' ),
+	'convert' => array( 0, 'converteren' ),
+	'sourceunit' => array( 0, '#broneenheid' ),
+	'targetunit' => array( 0, '#doeleenheid' ),
+	'linkunit' => array( 0, '#verbindingseenheid' ),
+	'abbreviate' => array( 0, '#afkorten' ),
+	'language' => array( 0, '#TAAL:' ),
+	'count' => array( 0, 'telling' ),
+	'replace' => array( 0, 'vervangen' ),
+	'explode' => array( 0, 'exploderen' ),
+	'urldecode' => array( 0, 'urldecoderen' ),
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬) */
+$magicWords['nn'] = array(
+	'expr' => array( 0, 'uttrykk', 'expr' ),
+	'if' => array( 0, 'om', 'if' ),
+	'ifeq' => array( 0, 'omlik', 'ifeq' ),
+	'ifexpr' => array( 0, 'omuttrykk', 'ifexpr' ),
+	'iferror' => array( 0, 'omfeil', 'iferror' ),
+	'switch' => array( 0, 'byt', 'switch' ),
+	'ifexist' => array( 0, 'omfinst', 'ifexist' ),
+	'time' => array( 0, 'tid', 'time' ),
+	'timel' => array( 0, 'tidl', 'timel' ),
+	'rel2abs' => array( 0, 'reltilabs', 'rel2abs' ),
+	'titleparts' => array( 0, 'titteldelar', 'titleparts' ),
+	'len' => array( 0, 'lengd', 'len' ),
+	'replace' => array( 0, 'erstatt', 'replace' ),
+);
+
+/** Oriya (ଓଡ଼ିଆ) */
+$magicWords['or'] = array(
+	'time' => array( 0, 'ସମୟ' ),
+	'convert' => array( 0, 'ବଦଳାଇବା' ),
+);
+
+/** Polish (Polski) */
+$magicWords['pl'] = array(
+	'language' => array( 0, '#JĘZYK:' ),
+);
+
+/** Pashto (پښتو) */
+$magicWords['ps'] = array(
+	'if' => array( 0, 'که', 'if' ),
+	'time' => array( 0, 'وخت', 'time' ),
+	'count' => array( 0, 'شمېرل', 'count' ),
+);
+
+/** Portuguese (Português) */
+$magicWords['pt'] = array(
+	'if' => array( 0, 'se', 'if' ),
+	'ifeq' => array( 0, 'seigual', 'ifeq' ),
+	'ifexpr' => array( 0, 'seexpr', 'ifexpr' ),
+	'iferror' => array( 0, 'seerro', 'iferror' ),
+	'default' => array( 0, '#padrão', '#padrao', '#default' ),
+	'ifexist' => array( 0, 'seexiste', 'ifexist' ),
+	'titleparts' => array( 0, 'partesdotítulo', 'partesdotitulo', 'titleparts' ),
+	'len' => array( 0, 'comprimento', 'len' ),
+);
+
+/** Russian (Русский) */
+$magicWords['ru'] = array(
+	'replace' => array( 0, 'замена' ),
+);
+
+/** Albanian (Shqip) */
+$magicWords['sq'] = array(
+	'language' => array( 0, '#GJUHA:' ),
+);
+
+/** Serbian Cyrillic ekavian (‪Српски (ћирилица)‬) */
+$magicWords['sr-ec'] = array(
+	'default' => array( 0, '#подразумевано' ),
+	'time' => array( 0, 'време' ),
+	'convert' => array( 0, 'претвори' ),
+	'sourceunit' => array( 0, '#изворнајединица', '#изворна_јединица' ),
+	'targetunit' => array( 0, '#крајњајединица', '#крајња_јединица' ),
+	'linkunit' => array( 0, '#везајединице', '#веза_јединице' ),
+	'abbreviate' => array( 0, '#скрати' ),
+	'pos' => array( 0, 'поз' ),
+	'count' => array( 0, 'број' ),
+	'replace' => array( 0, 'замени' ),
+);
+
+/** Swedish (Svenska) */
+$magicWords['sv'] = array(
+	'expr' => array( 0, 'utr', 'expr' ),
+	'if' => array( 0, 'om', 'if' ),
+	'ifeq' => array( 0, 'omlika', 'ifeq' ),
+	'ifexpr' => array( 0, 'omutr', 'ifexpr' ),
+	'iferror' => array( 0, 'omfel', 'iferror' ),
+	'switch' => array( 0, 'växel', 'switch' ),
+	'default' => array( 0, '#standard', '#default' ),
+	'ifexist' => array( 0, 'omfinns', 'ifexist' ),
+	'time' => array( 0, 'tid', 'time' ),
+	'timel' => array( 0, 'tidl', 'timel' ),
+	'replace' => array( 0, 'ersätt', 'replace' ),
+	'explode' => array( 0, 'explodera', 'explode' ),
+);
+
+/** Tamil (தமிழ்) */
+$magicWords['ta'] = array(
+	'count' => array( 0, 'எண்ணிக்கை' ),
+);
+
+/** Turkish (Türkçe) */
+$magicWords['tr'] = array(
+	'expr' => array( 0, 'işlem', 'islem', 'ifade' ),
+	'if' => array( 0, 'eğer', 'eger' ),
+	'switch' => array( 0, 'değiştir', 'degistir' ),
+	'default' => array( 0, '#vas' ),
+);
+
+/** Татарча (Татарча) */
+$magicWords['tt-cyrl'] = array(
+	'language' => array( 0, '#ТЕЛ:' ),
+);
+
+/** Ukrainian (Українська) */
+$magicWords['uk'] = array(
+	'expr' => array( 0, 'вираз', 'expr' ),
+	'if' => array( 0, 'якщо', 'if' ),
+	'ifeq' => array( 0, 'якщорівні', 'рівні', 'ifeq' ),
+	'ifexpr' => array( 0, 'якщовираз', 'ifexpr' ),
+	'iferror' => array( 0, 'якщопомилка', 'iferror' ),
+	'switch' => array( 0, 'вибірка', 'switch' ),
+	'default' => array( 0, '#інакше', '#default' ),
+	'ifexist' => array( 0, 'якщоіснує', 'ifexist' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$magicWords['vi'] = array(
+	'expr' => array( 0, 'côngthức' ),
+	'language' => array( 0, '#NGÔNNGỮ:' ),
+);
+
+/** Yiddish (ייִדיש) */
+$magicWords['yi'] = array(
+	'expr' => array( 0, 'רעכן' ),
+	'if' => array( 0, 'תנאי' ),
+	'ifeq' => array( 0, 'גלייך' ),
+	'ifexpr' => array( 0, 'אויברעכן' ),
+	'switch' => array( 0, 'קלייב' ),
+	'default' => array( 0, '#גרונט' ),
+	'ifexist' => array( 0, 'עקזיסט' ),
+	'time' => array( 0, 'צייט' ),
+	'timel' => array( 0, 'צייטל' ),
+);

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,39 +2,284 @@
 /**
  * Internationalisation file for extension ParserFunctions.
  *
- * @addtogroup Extensions
-*/
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
 $messages['en'] = array(
 	'pfunc_desc'                            => 'Enhance parser with logical functions',
-	'pfunc_time_error'                      => 'Error: invalid time',
-	'pfunc_time_too_long'                   => 'Error: too many #time calls',
-	'pfunc_rel2abs_invalid_depth'           => 'Error: Invalid depth in path: "$1" (tried to access a node above the root node)',
-	'pfunc_expr_stack_exhausted'            => 'Expression error: Stack exhausted',
-	'pfunc_expr_unexpected_number'          => 'Expression error: Unexpected number',
-	'pfunc_expr_preg_match_failure'         => 'Expression error: Unexpected preg_match failure',
-	'pfunc_expr_unrecognised_word'          => 'Expression error: Unrecognised word "$1"',
-	'pfunc_expr_unexpected_operator'        => 'Expression error: Unexpected $1 operator',
-	'pfunc_expr_missing_operand'            => 'Expression error: Missing operand for $1',
-	'pfunc_expr_unexpected_closing_bracket' => 'Expression error: Unexpected closing bracket',
-	'pfunc_expr_unrecognised_punctuation'   => 'Expression error: Unrecognised punctuation character "$1"',
-	'pfunc_expr_unclosed_bracket'           => 'Expression error: Unclosed bracket',
-	'pfunc_expr_division_by_zero'           => 'Division by zero',
-	'pfunc_expr_invalid_argument'           => 'Invalid argument for $1: < -1 or > 1',
-	'pfunc_expr_invalid_argument_ln'        => 'Invalid argument for ln: <= 0',
-	'pfunc_expr_unknown_error'              => 'Expression error: Unknown error ($1)',
-	'pfunc_expr_not_a_number'               => 'In $1: result is not a number',
+	'pfunc_time_error'                      => 'Error: Invalid time.',
+	'pfunc_time_too_long'                   => 'Error: Too many #time calls.',
+	'pfunc_time_too_big'                    => 'Error: #time only supports years up to 9999.',
+	'pfunc_rel2abs_invalid_depth'           => 'Error: Invalid depth in path: "$1" (tried to access a node above the root node).',
+	'pfunc_expr_stack_exhausted'            => 'Expression error: Stack exhausted.',
+	'pfunc_expr_unexpected_number'          => 'Expression error: Unexpected number.',
+	'pfunc_expr_preg_match_failure'         => 'Expression error: Unexpected preg_match failure.',
+	'pfunc_expr_unrecognised_word'          => 'Expression error: Unrecognised word "$1".',
+	'pfunc_expr_unexpected_operator'        => 'Expression error: Unexpected $1 operator.',
+	'pfunc_expr_missing_operand'            => 'Expression error: Missing operand for $1.',
+	'pfunc_expr_unexpected_closing_bracket' => 'Expression error: Unexpected closing bracket.',
+	'pfunc_expr_unrecognised_punctuation'   => 'Expression error: Unrecognised punctuation character "$1".',
+	'pfunc_expr_unclosed_bracket'           => 'Expression error: Unclosed bracket.',
+	'pfunc_expr_division_by_zero'           => 'Division by zero.',
+	'pfunc_expr_invalid_argument'           => 'Invalid argument for $1: < -1 or > 1.',
+	'pfunc_expr_invalid_argument_ln'        => 'Invalid argument for ln: <= 0.',
+	'pfunc_expr_unknown_error'              => 'Expression error: Unknown error ($1).',
+	'pfunc_expr_not_a_number'               => 'In $1: Result is not a number.',
+	'pfunc_string_too_long'                 => 'Error: String exceeds $1 character limit.',
+	'pfunc-convert-dimensionmismatch'       => 'Error: Cannot convert between units of "$1" and "$2".',
+	'pfunc-convert-unknownunit'             => 'Error: Unknown unit "$1".',
+	'pfunc-convert-unknowndimension'        => 'Error: Unknown dimension "$1".',
+	'pfunc-convert-invalidcompoundunit'     => 'Error: Invalid compound unit "$1".',
+	'pfunc-convert-nounit'                  => 'Error: No source unit given.',
+	'pfunc-convert-doublecompoundunit'      => 'Error: Cannot parse double compound units like "$1".',
+
+	# DIMENSION NAMES
+	'pfunc-convert-dimension-length'                 => 'length',
+	'pfunc-convert-dimension-area'                   => 'area',
+	'pfunc-convert-dimension-volume'                 => 'volume',
+	'pfunc-convert-dimension-time'                   => 'time',
+	'pfunc-convert-dimension-timesquared'            => 'time<sup>2</sup>',
+	'pfunc-convert-dimension-mass'                   => 'mass',
+	'pfunc-convert-dimension-speed'                  => 'speed',
+	'pfunc-convert-dimension-temperature'            => 'temperature',
+	'pfunc-convert-dimension-acceleration'           => 'acceleration',
+	'pfunc-convert-dimension-force'                  => 'force',
+	'pfunc-convert-dimension-torque'                 => 'torque',
+	'pfunc-convert-dimension-energy'                 => 'energy',
+	'pfunc-convert-dimension-power'                  => 'power',
+	'pfunc-convert-dimension-pressure'               => 'pressure',
+	'pfunc-convert-dimension-density'                => 'density',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'fuelefficiencypositive',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'fuelefficiencynegative',
+
+	# SI PREFIXES
+
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa'   => 'exa',
+	'pfunc-convert-prefix-peta'  => 'peta',
+	'pfunc-convert-prefix-tera'  => 'tera',
+	'pfunc-convert-prefix-giga'  => 'giga',
+	'pfunc-convert-prefix-mega'  => 'mega',
+	'pfunc-convert-prefix-kilo'  => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hecto',
+	'pfunc-convert-prefix-deca'  => 'deca',
+	'pfunc-convert-prefix-deci'  => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli'  => 'milli',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano'  => 'nano',
+	'pfunc-convert-prefix-pico'  => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto'  => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yocto', 
+	
+	'pfunc-convert-prefix-yotta-abbr' => 'Y',
+	'pfunc-convert-prefix-zetta-abbr' => 'Z',
+	'pfunc-convert-prefix-exa-abbr'   => 'E',
+	'pfunc-convert-prefix-peta-abbr'  => 'P',
+	'pfunc-convert-prefix-tera-abbr'  => 'T',
+	'pfunc-convert-prefix-giga-abbr'  => 'G',
+	'pfunc-convert-prefix-mega-abbr'  => 'M',
+	'pfunc-convert-prefix-kilo-abbr'  => 'k',
+	'pfunc-convert-prefix-hecto-abbr' => 'h',
+	'pfunc-convert-prefix-deca-abbr'  => 'da',
+	'pfunc-convert-prefix-deci-abbr'  => 'd',
+	'pfunc-convert-prefix-centi-abbr' => 'c',
+	'pfunc-convert-prefix-milli-abbr'  => 'm',
+	'pfunc-convert-prefix-micro-abbr' => 'μ',
+	'pfunc-convert-prefix-nano-abbr'  => 'n',
+	'pfunc-convert-prefix-pico-abbr'  => 'p',
+	'pfunc-convert-prefix-femto-abbr' => 'f',
+	'pfunc-convert-prefix-atto-abbr'  => 'a',
+	'pfunc-convert-prefix-zepto-abbr' => 'z',
+	'pfunc-convert-prefix-yocto-abbr' => 'y',
+
+	# LENGTH
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3meter|$3meters}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angstrom|angstroms}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|mile|miles}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlongs}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|chain|chains}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|rod|rods}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|fathom|fathoms}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|yard|yards}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|foot|feet}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|hand|hands}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|inch|inches}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|nautical mile|nautical miles}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|nautical mile (pre-1970 British)|nautical miles (pre-1970 British)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|nautical mile (pre-1954 US)|nautical miles (pre-1954 US)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsec|$3parsecs}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3lightyear|$3lightyears}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomical unit|astronomical units}}',
+
+	'pfunc-convert-unit-length-metre-abbr' => '$1$3m',
+	'pfunc-convert-unit-length-angstrom-abbr' => '$1Å',
+	'pfunc-convert-unit-length-mile-abbr' => '$1mi',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1chain',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1fathom',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1nmi (Brit)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1nmi (pre-1954 US)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3ly',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1AU',
+
+	# AREA #
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|square kilometer|square kilometers}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|square meter|square meters}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|square centimeter|square centimeters}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|square millimeter|square millimeters}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hectare|hectares}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|square mile|square miles}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|acre|acres}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|square yard|square yards}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|square foot|square feet}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|square inch|square inches}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|square nautical mile|square nautical miles}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunams}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsubo}}',
+
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1sq mi',
+	'pfunc-convert-unit-area-acre-abbr' => '$1acre',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1sq yd',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1sq ft',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1sq in',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1sq nmi',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+
+	# TIME #
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|second|seconds}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3year|$3years}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|day|days}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|hour|hours}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minute|minutes}}',
+
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3yr',
+	'pfunc-convert-unit-time-day-abbr' => '$1day',
+	'pfunc-convert-unit-time-hour-abbr' => '$1hr',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	
+	# VOLUME #
+	'pfunc-convert-unit-volume-cubicmetre'      => '$1{{PLURAL:$2|cubic meter|cubic meters}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|cubic centimeter|cubic centimeters}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|cubic millimeter|cubic millimeters}}',
+	'pfunc-convert-unit-volume-kilolitre'       => '$1{{PLURAL:$2|kiloliter|kiloliters}}',
+	'pfunc-convert-unit-volume-litre'           => '$1{{PLURAL:$2|liter|liters}}',
+	'pfunc-convert-unit-volume-centilitre'      => '$1{{PLURAL:$2|centiliter|centiliters}}',
+	'pfunc-convert-unit-volume-millilitre'      => '$1{{PLURAL:$2|milliliter|milliliters}}',
+	'pfunc-convert-unit-volume-cubicyard'       => '$1{{PLURAL:$2|cubic yard|cubic yards}}',
+	'pfunc-convert-unit-volume-cubicfoot'       => '$1{{PLURAL:$2|cubic foot|cubic feet}}',
+	'pfunc-convert-unit-volume-cubicinch'       => '$1{{PLURAL:$2|cubic inch|cubic inches}}',
+	'pfunc-convert-unit-volume-barrel'          => '$1{{PLURAL:$2|barrel|barrels}}',
+	'pfunc-convert-unit-volume-bushel'          => '$1{{PLURAL:$2|bushel|bushels}}',
+	'pfunc-convert-unit-volume-gallon'          => '$1{{PLURAL:$2|gallon|gallons}}',
+	'pfunc-convert-unit-volume-quart'           => '$1{{PLURAL:$2|quart|quarts}}',
+	'pfunc-convert-unit-volume-pint'            => '$1{{PLURAL:$2|pint|pints}}',
+	'pfunc-convert-unit-volume-fluidounce'      => '$1{{PLURAL:$2|fluid ounce|fluid ounces}}',
+	'pfunc-convert-unit-volume-barrelus'        => '$1{{PLURAL:$2|US barrel|US barrels}}',
+	'pfunc-convert-unit-volume-barreloil'       => '$1{{PLURAL:$2|barrel|barrel}}',
+	'pfunc-convert-unit-volume-barrelbeer'      => '$1{{PLURAL:$2|barrel|barrel}}',
+	'pfunc-convert-unit-volume-usgallon'        => '$1{{PLURAL:$2|US gallon|US gallons}}',
+	'pfunc-convert-unit-volume-usquart'         => '$1{{PLURAL:$2|US quart|US quarts}}',
+	'pfunc-convert-unit-volume-uspint'          => '$1{{PLURAL:$2|US pint|US pints}}',
+	'pfunc-convert-unit-volume-usfluidounce'    => '$1{{PLURAL:$2|US fluid ounce|US fluid ounces}}',
+	'pfunc-convert-unit-volume-usdrybarrel'     => '$1{{PLURAL:$2|US dry barrel|US dry barrels}}',
+	'pfunc-convert-unit-volume-usbushel'        => '$1{{PLURAL:$2|US bushel|US bushels}}',
+	'pfunc-convert-unit-volume-usdrygallon'     => '$1{{PLURAL:$2|US dry gallon|US dry gallons}}',
+	'pfunc-convert-unit-volume-usdryquart'      => '$1{{PLURAL:$2|US dry quart|US dry quarts}}',
+	'pfunc-convert-unit-volume-usdrypint'       => '$1{{PLURAL:$2|US dry pint|US dry pints}}',
+
+	'pfunc-convert-unit-volume-cubicmetre-abbr'      => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr'           => '$1$3l',
+	'pfunc-convert-unit-volume-cubicyard-abbr'       => '$1cu yd',
+	'pfunc-convert-unit-volume-cubicfoot-abbr'       => '$1cu ft',
+	'pfunc-convert-unit-volume-cubicinch-abbr'       => '$1cu in',
+	'pfunc-convert-unit-volume-barrel-abbr'          => '$1bbl',
+	'pfunc-convert-unit-volume-bushel-abbr'          => '$1bsh',
+	'pfunc-convert-unit-volume-gallon-abbr'          => '$1gal',
+	'pfunc-convert-unit-volume-quart-abbr'           => '$1qt',
+	'pfunc-convert-unit-volume-pint-abbr'            => '$1pt',
+	'pfunc-convert-unit-volume-fluidounce-abbr'      => '$1fl oz',
+	'pfunc-convert-unit-volume-barrelus-abbr'        => '$1US bbl',
+	'pfunc-convert-unit-volume-barreloil-abbr'       => '$1bbl',
+	'pfunc-convert-unit-volume-barrelbeer-abbr'      => '$1bbl',
+	'pfunc-convert-unit-volume-usgallon-abbr'        => '$1US gal',
+	'pfunc-convert-unit-volume-usquart-abbr'         => '$1US qt',
+	'pfunc-convert-unit-volume-uspint-abbr'          => '$1US pt',
+	'pfunc-convert-unit-volume-usfluidounce-abbr'    => '$1US fl oz',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr'     => '$1US bbl',
+	'pfunc-convert-unit-volume-usbushel-abbr'        => '$1US bsh',
+	'pfunc-convert-unit-volume-usdrygallon-abbr'     => '$1US dry gal',
+	'pfunc-convert-unit-volume-usdryquart-abbr'      => '$1US dry qt',
+	'pfunc-convert-unit-volume-usdrypint-abbr'       => '$1US dry pt',
+
+	# SPEED
+	'pfunc-convert-unit-speed-mile-hour'             => '$1miles per hour',
+	'pfunc-convert-unit-speed-speedoflight'          => '$1c',
+
+	'pfunc-convert-unit-speed-mile-hour-abbr'        => '$1mph',
+	'pfunc-convert-unit-speed-speedoflight-abbr'     => '$1c',
+	
+	# PRESSURE
+	'pfunc-convert-unit-pressure-pascal'            => '$1{{PLURAL:$2|$3pascal|$3pascals}}',
+	'pfunc-convert-unit-pressure-bar'               => '$1bar',
+	'pfunc-convert-unit-pressure-decibar'           => '$1decibar',
+	'pfunc-convert-unit-pressure-millibar'          => '$1millibar',
+	'pfunc-convert-unit-pressure-kilobarye'         => '$1kilobarye',
+	'pfunc-convert-unit-pressure-barye'             => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere'        => '$1{{PLURAL:$2|atmosphere|atmospheres}}',
+	'pfunc-convert-unit-pressure-torr'              => '$1{{PLURAL:$2|Torr|Torr}}',
+	'pfunc-convert-unit-pressure-mmhg'              => '$1{{PLURAL:$2|millimeter of mercury|millimeters of mercury}}',
+	'pfunc-convert-unit-pressure-inhg'              => '$1{{PLURAL:$2|inch of mercury|inches of mercury}}',
+	'pfunc-convert-unit-pressure-psi'               => '$1{{PLURAL:$2|pound per square-inch|pounds per square-inch}}',
+
+	'pfunc-convert-unit-pressure-pascal-abbr'            => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr'               => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr'           => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr'          => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr'         => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr'             => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr'        => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr'              => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr'              => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr'              => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr'               => '$1psi',
 );
 
 /** Message documentation (Message documentation)
  * @author Jon Harald Søby
+ * @author Kghbln
  * @author Meno25
+ * @author Siebrand
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
-	'pfunc_desc' => 'Short description of the ParserFunctions extension, shown on [[Special:Version]].',
+	'pfunc_desc' => '{{desc}}',
 	'pfunc_expr_division_by_zero' => '{{Identical|Divizion by zero}}',
+	'pfunc_string_too_long' => 'PLURAL is supported for $1.',
+	'pfunc-convert-unit-length-parsec-abbr' => 'The $3 is directly connected to the abbreviated unit to hold abbreviations like "kilo", "milli", "pico", etc.',
+	'pfunc-convert-unit-length-lightyear-abbr' => 'The $3 is directly connected to the abbreviated unit to hold abbreviations like "kilo", "milli", "pico", etc.',
 );
 
 /** Afrikaans (Afrikaans)
@@ -59,39 +304,54 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ongeldige argument vir ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Fout in uitdrukking: onbekende fout ($1)',
 	'pfunc_expr_not_a_number' => "In $1: resultaat is nie 'n getal nie",
+	'pfunc_string_too_long' => 'Fout: String oorskry $1 karakter limiet',
 );
 
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'pfunc_desc' => 'Enhance parser me funksione logjike',
+	'pfunc_time_error' => 'Gabim: koha e pavlefshme',
+	'pfunc_time_too_long' => 'Gabim: kohë shumë # thirrjet',
+	'pfunc_rel2abs_invalid_depth' => 'Gabim: thellësia e pavlefshme në rrugën: "$1" (u përpoq për të hyrë në një nyjë mbi nyjen e rrënjë)',
+	'pfunc_expr_stack_exhausted' => 'gabim Shprehja: qipi rraskapitur',
+	'pfunc_expr_unexpected_number' => 'gabim Shprehja: Numri i papritur',
+);
+
 /** Aragonese (Aragonés)
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'pfunc_desc' => 'Amillorar o parseyador con funzions lochicas',
+	'pfunc_desc' => 'Amillorar o parseyador con funcions lochicas',
 	'pfunc_time_error' => 'Error: tiempo incorreuto',
 	'pfunc_time_too_long' => 'Error: masiadas cridas #time',
-	'pfunc_rel2abs_invalid_depth' => 'Error: Fondura incorreuta en o camín: "$1" (ha prebato d\'azeder ta un nodo por denzima d\'o nodo radiz)',
-	'pfunc_expr_stack_exhausted' => "Error d'espresión: Pila acotolada",
-	'pfunc_expr_unexpected_number' => "Error d'espresión: numbero no asperato",
-	'pfunc_expr_preg_match_failure' => "Error d'espresión: fallo de preg_match no asperato",
-	'pfunc_expr_unrecognised_word' => 'Error d\'espresión: palabra "$1" no reconoixita',
-	'pfunc_expr_unexpected_operator' => "Error d'espresión: operador $1 no asperato",
-	'pfunc_expr_missing_operand' => "Error d'espresión: á $1 li falta un operando",
-	'pfunc_expr_unexpected_closing_bracket' => "Error d'espresión: zarradura d'o gafet no asperata",
-	'pfunc_expr_unrecognised_punctuation' => 'Error d\'espresión: caráuter de puntuazión "$1" no reconoixito',
-	'pfunc_expr_unclosed_bracket' => "Error d'espresión: gafet sin zarrar",
-	'pfunc_expr_division_by_zero' => 'Dibisión por zero',
+	'pfunc_rel2abs_invalid_depth' => 'Error: Fondura incorreuta en o camín: "$1" (ha prebato d\'acceder ta un nodo por dencima d\'o nodo radiz)',
+	'pfunc_expr_stack_exhausted' => "Error d'expresión: Pila acotolada",
+	'pfunc_expr_unexpected_number' => "Error d'expresión: numero no asperato",
+	'pfunc_expr_preg_match_failure' => "Error d'expresión: fallo de preg_match no asperato",
+	'pfunc_expr_unrecognised_word' => 'Error d\'expresión: parola "$1" no reconoixita',
+	'pfunc_expr_unexpected_operator' => "Error d'expresión: operador $1 no asperato",
+	'pfunc_expr_missing_operand' => "Error d'expresión: a $1 li falta un operando",
+	'pfunc_expr_unexpected_closing_bracket' => "Error d'expresión: zarradura d'o gafet no asperata",
+	'pfunc_expr_unrecognised_punctuation' => 'Error d\'expresión: carácter de puntuación "$1" no reconoixito',
+	'pfunc_expr_unclosed_bracket' => "Error d'expresión: gafet sin zarrar",
+	'pfunc_expr_division_by_zero' => 'División por zero',
 	'pfunc_expr_invalid_argument' => 'Argumento no conforme ta $1: < -1 u > 1',
 	'pfunc_expr_invalid_argument_ln' => 'Argumento no conforme ta ln: <=0',
-	'pfunc_expr_unknown_error' => "Error d'espresión: error esconoixito ($1)",
+	'pfunc_expr_unknown_error' => "Error d'expresión: error esconoixito ($1)",
 	'pfunc_expr_not_a_number' => 'En $1: o resultau no ye un numero',
 );
 
 /** Arabic (العربية)
+ * @author Aiman titi
  * @author Meno25
  */
 $messages['ar'] = array(
 	'pfunc_desc' => 'محلل ممدد بدوال منطقية',
 	'pfunc_time_error' => 'خطأ: زمن غير صحيح',
 	'pfunc_time_too_long' => 'خطأ: استدعاءات #time كثيرة جدا',
+	'pfunc_time_too_big' => 'خطأ : # الوقت يدعم فقط حتى 9999 سنة',
 	'pfunc_rel2abs_invalid_depth' => 'خطأ: عمق غير صحيح في المسار: "$1" (حاول دخول عقدة فوق العقدة الجذرية)',
 	'pfunc_expr_stack_exhausted' => 'خطأ في التعبير: ستاك مجهد',
 	'pfunc_expr_unexpected_number' => 'خطأ في التعبير: رقم غير متوقع',
@@ -107,8 +367,16 @@
 	'pfunc_expr_invalid_argument_ln' => 'مدخلة غير صحيحة ل ln: <= 0',
 	'pfunc_expr_unknown_error' => 'خطأ في التعبير: خطأ غير معروف ($1)',
 	'pfunc_expr_not_a_number' => 'في $1: النتيجة ليست رقما',
+	'pfunc_string_too_long' => 'خطأ: السلسلة تتجاوز الحد $1 حرف',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'pfunc_time_error' => 'ܦܘܕܐ: ܥܕܢܐ ܠܐ ܬܪܝܨܬܐ',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ghaly
  * @author Meno25
@@ -144,6 +412,7 @@
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
 	'pfunc_desc' => "Ameyora l'análisis sintáuticu con funciones llóxiques",
@@ -164,8 +433,89 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumentu non válidu pa ln: <= 0',
 	'pfunc_expr_unknown_error' => "Error d'espresión: Error desconocíu ($1)",
 	'pfunc_expr_not_a_number' => 'En $1: el resultáu nun ye un númberu',
+	'pfunc_string_too_long' => 'Error: la cadena pasa la llende de $1 caráuteres',
+	'pfunc-convert-unit-length-metre' => '{{PLURAL:$1|$2metru|$2metros}}',
+	'pfunc-convert-unit-length-angstrom' => '{{PLURAL:$1|angstrom|angstroms}}',
+	'pfunc-convert-unit-length-mile' => '{{PLURAL:$1|milla|milles}}',
+	'pfunc-convert-unit-length-yard' => '{{PLURAL:$1|yarda|yardes}}',
+	'pfunc-convert-unit-length-foot' => '{{PLURAL:$1|pie|pies}}',
+	'pfunc-convert-unit-area-squarekilometre' => '{{PLURAL:$1|quilómetru cuadráu|quilómetros cuadraos}}',
+	'pfunc-convert-unit-area-squaremetre' => '{{PLURAL:$1|metru cuadráu|metros cuadraos}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => 'km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => 'm<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => 'cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => 'mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => 'ha',
+	'pfunc-convert-unit-time-second' => '{{PLURAL:$1|segundu|segundos}}',
+	'pfunc-convert-unit-time-year' => '{{PLURAL:$1|$2añu|$2años}}',
+	'pfunc-convert-unit-time-day' => '{{PLURAL:$1|día|díes}}',
+	'pfunc-convert-unit-time-hour' => '{{PLURAL:$1|hora|hores}}',
+	'pfunc-convert-unit-time-minute' => '{{PLURAL:$1|minutu|minutos}}',
+	'pfunc-convert-unit-time-second-abbr' => 's',
+	'pfunc-convert-unit-time-year-abbr' => '$2añ',
+	'pfunc-convert-unit-time-day-abbr' => 'día',
+	'pfunc-convert-unit-time-hour-abbr' => 'h',
+	'pfunc-convert-unit-time-minute-abbr' => 'min',
+	'pfunc-convert-unit-volume-cubicmetre' => '{{PLURAL:$1|metru cúbicu|metros cúbicos}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '{{PLURAL:$1|centímetru cúbicu|centímetros cúbicos}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '{{PLURAL:$1|milímetru cúbicu|milímetros cúbicos}}',
+	'pfunc-convert-unit-volume-kilolitre' => '{{PLURAL:$1|kilollitru|kilollitros}}',
+	'pfunc-convert-unit-volume-litre' => '{{PLURAL:$1|llitru|llitros}}',
+	'pfunc-convert-unit-volume-centilitre' => '{{PLURAL:$1|centillitru|centillitros}}',
+	'pfunc-convert-unit-volume-millilitre' => '{{PLURAL:$1|milillitru|milillitros}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => 'm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => 'cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => 'mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$2l',
+	'pfunc-convert-unit-speed-mile-hour' => 'milles por hora',
+	'pfunc-convert-unit-pressure-pascal' => '{{PLURAL:$1|$2pascal|$2pascales}}',
+	'pfunc-convert-unit-pressure-bar' => 'bar',
+	'pfunc-convert-unit-pressure-decibar' => 'decibar',
+	'pfunc-convert-unit-pressure-millibar' => 'milibar',
+	'pfunc-convert-unit-pressure-kilobarye' => 'kilobario',
+	'pfunc-convert-unit-pressure-barye' => 'bario',
+	'pfunc-convert-unit-pressure-atmosphere' => '{{PLURAL:$1|atmósfera|atmósferes}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$2Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => 'bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => 'dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => 'mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => 'kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => 'Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => 'atm',
 );
 
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ */
+$messages['az'] = array(
+	'pfunc_time_error' => 'Xəta: yanlış zaman',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'pfunc_desc' => 'Логик функциялар менән яҡшыртылған уҡыу ҡоралы',
+	'pfunc_time_error' => 'Хата: ваҡыт дөрөҫ түгел',
+	'pfunc_time_too_long' => 'Хата: #time функцияһы бигерәк күп саҡырылған',
+	'pfunc_rel2abs_invalid_depth' => 'Хата: "$1" юлының тәрәнлеге дөрөҫ түгел (тәүге төйөндән өҫтәрәк торған төйөндө асырға тырышыу)',
+	'pfunc_expr_stack_exhausted' => 'Аңлатма хатаһы: Стек тулған',
+	'pfunc_expr_unexpected_number' => 'Аңлатма хатаһы: Көтөлмәгән һан',
+	'pfunc_expr_preg_match_failure' => 'Аңлатма хатаһы: Көтөлмәгән preg_match хатаһы',
+	'pfunc_expr_unrecognised_word' => 'Аңлатма хатаһы: Танылмаған "$1" һүҙе',
+	'pfunc_expr_unexpected_operator' => 'Аңлатма хатаһы: Көтөлмәгән $1 операторы',
+	'pfunc_expr_missing_operand' => 'Аңлатма хатаһы: $1 аңлатмаһы өсөн операнд етмәй',
+	'pfunc_expr_unexpected_closing_bracket' => 'Аңлатма хатаһы: Көтөлмәгән ябыу йәйәһе',
+	'pfunc_expr_unrecognised_punctuation' => 'Аңлатма хатаһы: Танылмаған "$1" тыныш билдәһе',
+	'pfunc_expr_unclosed_bracket' => 'Аңлатма хатаһы: Ябылмаған йәйә',
+	'pfunc_expr_division_by_zero' => 'Нулгә бүлеү хатаһы',
+	'pfunc_expr_invalid_argument' => '$1 өсөн аргумент дөрөҫ түгел: < -1 йәки > 1',
+	'pfunc_expr_invalid_argument_ln' => 'ln өсөн аргумент дөрөҫ түгел: <= 0',
+	'pfunc_expr_unknown_error' => 'Аңлатма хатаһы: Билдәһеҙ хата ($1)',
+	'pfunc_expr_not_a_number' => '$1: һөҙөмтә — һан түгел',
+	'pfunc_string_too_long' => 'Хата: Юл оҙонлоғо билдәләнгән сиктән — $1 хәрефтән — ашҡан',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
@@ -190,7 +540,7 @@
 	'pfunc_expr_not_a_number' => 'ته $1: نتیجه یک عددی نهنت',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
@@ -199,6 +549,7 @@
 	'pfunc_desc' => 'Палепшаны парсэр зь лягічнымі функцыямі',
 	'pfunc_time_error' => 'Памылка: няслушны час',
 	'pfunc_time_too_long' => 'Памылка: зашмат выклікаў функцыі #time',
+	'pfunc_time_too_big' => 'Памылка: #time падтрымлівае гады толькі ў дыяпазоне да 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Памылка: няслушная глыбіня шляху: «$1» (спроба доступу да вузла, які знаходзіцца вышэй карэннага)',
 	'pfunc_expr_stack_exhausted' => 'Памылка выразу: стэк перапоўнены',
 	'pfunc_expr_unexpected_number' => 'Памылка выразу: нечаканая лічба',
@@ -214,6 +565,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Памылковы аргумэнт для ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Памылка выразу: невядомая памылка ($1)',
 	'pfunc_expr_not_a_number' => 'У $1: вынік не зьяўляецца лічбай',
+	'pfunc_string_too_long' => 'Памылка: у радку перавышаны ліміт $1 {{PLURAL:$1|сымбаль|сымбалі|сымбаляў}}',
 );
 
 /** Bulgarian (Български)
@@ -221,7 +573,7 @@
  * @author Spiritia
  */
 $messages['bg'] = array(
-	'pfunc_desc' => 'Подобрвяване на парсера с логически функции',
+	'pfunc_desc' => 'Подобряване на парсера с логически функции',
 	'pfunc_time_error' => 'Грешка: невалидно време',
 	'pfunc_time_too_long' => 'Грешка: Твърде много извиквания на #time',
 	'pfunc_rel2abs_invalid_depth' => 'Грешка: Невалидна дълбочина в път: "$1" (опит за достъп на възел над корена)',
@@ -239,6 +591,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Невалиден аргумент за ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Грешка в записа: Неразпозната грешка ($1)',
 	'pfunc_expr_not_a_number' => 'В $1: резултатът не е число',
+	'pfunc_string_too_long' => 'Грешка: Низът превишава лимита от $1 знака',
 );
 
 /** Bengali (বাংলা)
@@ -270,9 +623,10 @@
  * @author Fulup
  */
 $messages['br'] = array(
-	'pfunc_desc' => "Barrekaat a ra ar parser gant arc'hwelioù poellek.",
+	'pfunc_desc' => "Gwellaat a ra ar parser gant arc'hwelioù poellek",
 	'pfunc_time_error' => 'Fazi : pad direizh',
 	'pfunc_time_too_long' => 'Fazi : betek re eo bet galvet #time',
+	'pfunc_time_too_big' => 'Fazi: #time ne skor nemet bloazioù betek 9999',
 	'pfunc_rel2abs_invalid_depth' => "Fazi : Donder direizh evit an hent : \"\$1\" (klasket ez eus bet mont d'ul live a-us d'ar c'havlec'h-mamm)",
 	'pfunc_expr_stack_exhausted' => 'Kemennad faziek : pil riñset',
 	'pfunc_expr_unexpected_number' => "Kemennad faziek : niver dic'hortoz",
@@ -288,6 +642,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Talvoudenn direizh evit ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Kemennad faziek : Fazi dianav ($1)',
 	'pfunc_expr_not_a_number' => "E $1: An disoc'h n'eo ket un niver",
+	'pfunc_string_too_long' => "Fazi : Dreist d'ar vevenn uhelañ a $1 arouezenn eo an neudennad",
 );
 
 /** Bosnian (Bosanski)
@@ -298,6 +653,7 @@
 	'pfunc_desc' => 'Povisi parser sa logičnim funkcijama',
 	'pfunc_time_error' => 'Greška: vrijeme nije valjano',
 	'pfunc_time_too_long' => 'Greška: previše poziva funkcije #time',
+	'pfunc_time_too_big' => 'Greška: #time samo podržava godine do 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Graška: Nevrijedeća dubina u putu: "$1" (pokušaj dolaska na nula tačku iza korijenske nula tačke)',
 	'pfunc_expr_stack_exhausted' => 'Greška izraza: Stok potrošen',
 	'pfunc_expr_unexpected_number' => 'Greška izraza: Neočekivani broj',
@@ -313,13 +669,16 @@
 	'pfunc_expr_invalid_argument_ln' => 'Nevažeći argument za ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Razvojna greška: Nepoznata greška ($1)',
 	'pfunc_expr_not_a_number' => 'u $1: rezultat nije broj',
+	'pfunc_string_too_long' => 'Greška: Niz prelazi limit od $1 znakova',
 );
 
 /** Catalan (Català)
  * @author Jordi Roqué
+ * @author Qllach
  * @author SMP
  */
 $messages['ca'] = array(
+	'pfunc_desc' => 'Millora el processat amb funcions lògiques',
 	'pfunc_time_error' => 'Error: temps invàlid',
 	'pfunc_time_too_long' => 'Error: massa crides #time',
 	'pfunc_rel2abs_invalid_depth' => "Error: Adreça invàlida al directori: «$1» (s'intentava accedir a un node superior de l'arrel)",
@@ -337,18 +696,30 @@
 	'pfunc_expr_invalid_argument_ln' => 'Valor no vàlid per a ln: <= 0',
 	'pfunc_expr_unknown_error' => "Error de l'expressió: Desconegut ($1)",
 	'pfunc_expr_not_a_number' => 'A $1: el resultat no és un nombre',
+	'pfunc_string_too_long' => 'Error: La cadena és $1 caràcters massa llarga',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'pfunc_time_error' => 'Гlалато: хан нийса яц',
+	'pfunc_expr_stack_exhausted' => 'Яздарехь гlалат ду: хьаладуьззина татол',
+	'pfunc_expr_unrecognised_word' => 'Яздарехь гlалат ду: дойзуш доцу дош «$1»',
+);
+
 /** Czech (Česky)
  * @author Danny B.
  * @author Li-sung
  * @author Matěj Grabovský
+ * @author Mormegil
  * @author Sp5uhe
  */
 $messages['cs'] = array(
 	'pfunc_desc' => 'Rozšíření parseru o logické funkce',
 	'pfunc_time_error' => 'Chyba: neplatný čas',
 	'pfunc_time_too_long' => 'Chyba: příliš mnoho volání #time',
+	'pfunc_time_too_big' => 'Chyba: #time nepodporuje roky nad 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Chyba: Neplatná hloubka v cestě: "$1" (pokus o přístup do uzlu vyššího než kořen)',
 	'pfunc_expr_stack_exhausted' => 'Chyba ve výrazu: Zásobník plně obsazen',
 	'pfunc_expr_unexpected_number' => 'Chyba ve výrazu: Očekáváno číslo',
@@ -364,16 +735,84 @@
 	'pfunc_expr_invalid_argument_ln' => 'Neplatný argument pro ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Chyba ve výrazu: Neznámá chyba ($1)',
 	'pfunc_expr_not_a_number' => 'V $1: výsledkem není číslo',
+	'pfunc_string_too_long' => 'Chyba: Řetězec je delší než $1 {{PLURAL:$1|znak|znaky|znaků}}, což je limit',
+	'pfunc-convert-dimensionmismatch' => 'Chyba: Nelze převést mezi jednotkami „$1“ a „$2“.',
+	'pfunc-convert-unknownunit' => 'Chyba: Neznámá jednotka „$1“.',
+	'pfunc-convert-unknowndimension' => 'Chyba: Neznámý rozměr „$1“',
+	'pfunc-convert-invalidcompoundunit' => 'Chyba: Neplatná složená jednotka „$1“.',
+	'pfunc-convert-nounit' => 'Chyba: Nebyla zadána zdrojová jednotka.',
+	'pfunc-convert-doublecompoundunit' => 'Chyba: Nelze zpracovat dvojitě složené jednotky, jako je „$1“.',
+	'pfunc-convert-dimension-length' => 'délka',
+	'pfunc-convert-dimension-area' => 'plocha',
+	'pfunc-convert-dimension-volume' => 'objem',
+	'pfunc-convert-dimension-time' => 'čas',
+	'pfunc-convert-dimension-timesquared' => 'čas²',
+	'pfunc-convert-dimension-mass' => 'hmotnost',
+	'pfunc-convert-dimension-speed' => 'rychlost',
+	'pfunc-convert-dimension-temperature' => 'teplota',
+	'pfunc-convert-dimension-acceleration' => 'zrychlení',
+	'pfunc-convert-dimension-force' => 'síla',
+	'pfunc-convert-dimension-torque' => 'točivý moment',
+	'pfunc-convert-dimension-energy' => 'energie',
+	'pfunc-convert-dimension-power' => 'výkon',
+	'pfunc-convert-dimension-pressure' => 'tlak',
+	'pfunc-convert-dimension-density' => 'hustota',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'spotřeba',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hekto',
+	'pfunc-convert-prefix-deca' => 'deka',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'mikro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'piko',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yokto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3metr|$3metry|$3metrů}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|míle|míle|mil}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|stopa|stopy|stop}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|palec|palce|palců}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsek|$3parseky|$3parseků}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomická jednotka|astronomické jednotky|astronomických jednotek}}',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|kilometr čtvereční|kilometry čtvereční|kilometrů čtverečních}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hektar|hektary|hektarů}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|akr|akry|akrů}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|čtvereční stopa|čtvereční stopy|čtverečních stop}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|čtvereční palec|čtvereční palce|čtverečních palců}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km²',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m²',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm²',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm²',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m³',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm³',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3l',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3pascal|$3pascaly|$3pascalů}}',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosféra|atmosféry|atmosfér}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|torr|torry|torrů}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
 );
 
 /** Danish (Dansk)
  * @author Byrial
  * @author Morten LJ
+ * @author Peter Alberti
  */
 $messages['da'] = array(
 	'pfunc_desc' => 'Udvider parser med logiske funktioner',
 	'pfunc_time_error' => 'Fejl: Ugyldig tid',
-	'pfunc_time_too_long' => 'Felj: for mange kald af #time',
+	'pfunc_time_too_long' => 'Fejl: for mange kald af #time',
+	'pfunc_time_too_big' => 'Fejl: #time understøtter kun årstal frem til 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Fejl: Ugyldig dybde i sti: "$1" (prøvede at tilgå en knude over rodknuden)',
 	'pfunc_expr_stack_exhausted' => 'Udtryksfejl: Stak tømt',
 	'pfunc_expr_unexpected_number' => 'Fejl: Uventet tal',
@@ -389,30 +828,228 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ugyldigt argument for ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Udtryksfejl: Ukendt fejl ($1)',
 	'pfunc_expr_not_a_number' => 'I $1: Resultatet er ikke et tal',
+	'pfunc_string_too_long' => 'Fejl: Strengen overskrider grænsen på $1 tegn',
 );
 
 /** German (Deutsch)
+ * @author Kghbln
+ * @author LWChris
+ * @author Metalhead64
  * @author Raimond Spekking
+ * @author Rentenirer
+ * @author Rillke
  */
 $messages['de'] = array(
 	'pfunc_desc' => 'Erweitert den Parser um logische Funktionen',
-	'pfunc_time_error' => 'Fehler: ungültige Zeitangabe',
-	'pfunc_time_too_long' => 'Fehler: zu viele #time-Aufrufe',
-	'pfunc_rel2abs_invalid_depth' => 'Fehler: ungültige Tiefe in Pfad: „$1“ (Versuch, auf einen Knotenpunkt oberhalb des Hauptknotenpunktes zuzugreifen)',
+	'pfunc_time_error' => 'Fehler: Ungültige Zeitangabe',
+	'pfunc_time_too_long' => 'Fehler: Zu viele #time-Aufrufe',
+	'pfunc_time_too_big' => 'Fehler: #time unterstützt nur Jahre bis 9999',
+	'pfunc_rel2abs_invalid_depth' => 'Fehler: Ungültige Pfadtiefe: „$1“ (Zugriff auf einen Knotenpunkt oberhalb des Hauptknotenpunktes ist empfohlen)',
 	'pfunc_expr_stack_exhausted' => 'Expression-Fehler: Stacküberlauf',
 	'pfunc_expr_unexpected_number' => 'Expression-Fehler: Unerwartete Zahl',
 	'pfunc_expr_preg_match_failure' => 'Expression-Fehler: Unerwartete „preg_match“-Fehlfunktion',
 	'pfunc_expr_unrecognised_word' => 'Expression-Fehler: Unerkanntes Wort „$1“',
-	'pfunc_expr_unexpected_operator' => 'Expression-Fehler: Unerwarteter Operator: <tt>$1</tt>',
+	'pfunc_expr_unexpected_operator' => 'Expression-Fehler: Unerwarteter Operator <tt>$1</tt>',
 	'pfunc_expr_missing_operand' => 'Expression-Fehler: Fehlender Operand für <tt>$1</tt>',
 	'pfunc_expr_unexpected_closing_bracket' => 'Expression-Fehler: Unerwartete schließende eckige Klammer',
 	'pfunc_expr_unrecognised_punctuation' => 'Expression-Fehler: Unerkanntes Satzzeichen „$1“',
 	'pfunc_expr_unclosed_bracket' => 'Expression-Fehler: Nicht geschlossene eckige Klammer',
-	'pfunc_expr_division_by_zero' => 'Expression-Fehler: Division durch Null',
+	'pfunc_expr_division_by_zero' => 'Division durch Null',
 	'pfunc_expr_invalid_argument' => 'Ungültiges Argument für $1: < -1 oder > 1',
 	'pfunc_expr_invalid_argument_ln' => 'Ungültiges Argument für ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Expression-Fehler: Unbekannter Fehler ($1)',
-	'pfunc_expr_not_a_number' => 'Expression-Fehler: In $1: Ergebnis ist keine Zahl',
+	'pfunc_expr_not_a_number' => 'In $1: Ergebnis ist keine Zahl',
+	'pfunc_string_too_long' => 'Fehler: Zeichenkette überschreitet Zeichenlimit von $1',
+	'pfunc-convert-dimensionmismatch' => 'Fehler: Die Einheiten „$1“ und „$2“ sind nicht untereinander konvertierbar',
+	'pfunc-convert-unknownunit' => 'Fehler: Unbekannte Einheit „$1“',
+	'pfunc-convert-unknowndimension' => 'Fehler: Unbekannte Dimension „$1“',
+	'pfunc-convert-invalidcompoundunit' => 'Fehler: Ungültige Einheitenkombination „$1“',
+	'pfunc-convert-nounit' => 'Fehler: Ausgangseinheit fehlt',
+	'pfunc-convert-doublecompoundunit' => 'Fehler: Doppelte Einheitenkombinationen wie „$1“ können nicht verarbeitet werden',
+	'pfunc-convert-dimension-length' => 'Länge',
+	'pfunc-convert-dimension-area' => 'Fläche',
+	'pfunc-convert-dimension-volume' => 'Volumen',
+	'pfunc-convert-dimension-time' => 'Zeit',
+	'pfunc-convert-dimension-timesquared' => 'Zeit<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'Masse',
+	'pfunc-convert-dimension-speed' => 'Geschwindigkeit',
+	'pfunc-convert-dimension-temperature' => 'Temperatur',
+	'pfunc-convert-dimension-acceleration' => 'Beschleunigung',
+	'pfunc-convert-dimension-force' => 'Kraft',
+	'pfunc-convert-dimension-torque' => 'Drehmoment',
+	'pfunc-convert-dimension-energy' => 'Energie',
+	'pfunc-convert-dimension-power' => 'Leistung',
+	'pfunc-convert-dimension-pressure' => 'Druck',
+	'pfunc-convert-dimension-density' => 'Dichte',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'Positive Kraftstoffeffizienz',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'Negative Kraftstoffeffizienz',
+	'pfunc-convert-prefix-yotta' => 'Yotta',
+	'pfunc-convert-prefix-zetta' => 'Zetta',
+	'pfunc-convert-prefix-exa' => 'Exa',
+	'pfunc-convert-prefix-peta' => 'Peta',
+	'pfunc-convert-prefix-tera' => 'Tera',
+	'pfunc-convert-prefix-giga' => 'Giga',
+	'pfunc-convert-prefix-mega' => 'Mega',
+	'pfunc-convert-prefix-kilo' => 'Kilo',
+	'pfunc-convert-prefix-hecto' => 'Hekto',
+	'pfunc-convert-prefix-deca' => 'Deka',
+	'pfunc-convert-prefix-deci' => 'Dezi',
+	'pfunc-convert-prefix-centi' => 'Zenti',
+	'pfunc-convert-prefix-milli' => 'Milli',
+	'pfunc-convert-prefix-micro' => 'Mikro',
+	'pfunc-convert-prefix-nano' => 'Nano',
+	'pfunc-convert-prefix-pico' => 'Piko',
+	'pfunc-convert-prefix-femto' => 'Femto',
+	'pfunc-convert-prefix-atto' => 'Atto',
+	'pfunc-convert-prefix-zepto' => 'Zepto',
+	'pfunc-convert-prefix-yocto' => 'Yokto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|Meter|Meter}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|Ångström|Ångström}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|Meile|Meilen}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|Furlong|Furlong}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|Chain|Chain}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|Rute|Ruten}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|Fathom|Fathom}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|Yard|Yard}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|Fuß|Fuß}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|Hand|Hand}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|Zoll|Zoll}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|Seemeile|Seemeilen}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|britische Seemeile (vor 1970)|britische Seemeilen (vor 1970)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|US-Seemeile (vor 1954)|US-Seemeilen (vor 1954)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsec|$3parsec}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3 Lichtjahr|$3 Lichtjahre}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomische Einheit|astronomische Einheiten}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1Chain',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1Faden',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1″',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1nmi (Brit)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1nmi (US, vor 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3lj',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1AE',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|Quadratkilometer|Quadratkilometer}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|Quadratmeter|Quadratmeter}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|Quadratzentimeter|Quadratzentimeter}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|Quadratmillimeter|Quadratmillimeter}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|Hektar|Hektar}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|Quadratmeile|Quadratmeilen}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|Acre|Acre}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|Quadratyard|Quadratyard}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|Quadratfuß|Quadratfuß}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|Quadratzoll|Quadratzoll}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|Quadratseemeilen|Quadratseemeilen}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|Dunam|Dunam}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|Tsubo|Tsubo}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1mi²',
+	'pfunc-convert-unit-area-acre-abbr' => '$1acre',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1yd²',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1ft²',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1inch²',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1sm<sup>2</sup>',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|Sekunde|Sekunden}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3 Jahr|$3 Jahre}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|Tag|Tage}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|Stunde|Stunden}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|Minute|Minuten}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1sek',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3a',
+	'pfunc-convert-unit-time-day-abbr' => '$1d',
+	'pfunc-convert-unit-time-hour-abbr' => '$1h',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|Kubikmeter|Kubikmeter}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|Kubikzentimeter|Kubikzentimeter}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|Kubikmillimeter|Kubikmillimeter}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|Kiloliter|Kiloliter}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|Liter|Liter}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|Zentiliter|Zentiliter}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|Milliliter|Milliliter}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|Kubikyard|Kubikyard}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|Kubikfuß|Kubikfuß}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|Kubikzoll|Kubikzoll}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|Barrel|Barrel}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|Bushel|Bushel}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|Gallone|Gallonen}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|Quart|Quart}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|Pinte|Pinten}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|Flüssigunze|Flüssigunzen}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|US-Barrel|US-Barrel}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|Barrel|Barrel}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|Barrel|Barrel}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|US-Gallone|US-Gallonen}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|US-Quart|US-Quart}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|US-Pinte|US-Pinten}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|US-Flüssigunze|US-Flüssigunzen}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|US-Trockenbarrel|US-Trockenbarrel}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|US-Bushel|US-Bushel}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|US-Trockengallone|US-Trockengallonen}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|US-Trockenquart|US-Trockenquart}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|US-Trockenpinte|US-Trockenpinten}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3 l',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1yd<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1ft<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1in<sup>3</sup>',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1bbl.',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1bsh.',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal.',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1qt.',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1pt.',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1fl.oz.',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1US bbl.',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1bbl.',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1bbl.',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1US gal.',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1US qt.',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1US pt.',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1US fl.oz.',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1US bbl.',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1US bsh.',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1US dry gal.',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1US dry qt.',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1US dry pt.',
+	'pfunc-convert-unit-speed-mile-hour' => '$1Meilen pro Stunde',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1mph',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3 Pascal|$3 Pascal}}',
+	'pfunc-convert-unit-pressure-bar' => '$1Bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1Dezibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1Millibar',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1Kilobarye',
+	'pfunc-convert-unit-pressure-barye' => '$1Barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|Atmosphäre|Atmosphären}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|Torr|Torr}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|Millimeter-Quecksilbersäule|Millimeter-Quecksilbersäule}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|Zoll Quecksilber|Zoll Quecksilber}}',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|Pfund pro Quadratzoll|Pfund pro Quadratzoll}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3 Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1Bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Swiss High German (Schweizer Hochdeutsch)
@@ -422,6 +1059,31 @@
 	'pfunc_expr_unexpected_closing_bracket' => 'Expression-Fehler: Unerwartete schliessende eckige Klammer',
 );
 
+/** Zazaki (Zazaki)
+ * @author Aspar
+ */
+$messages['diq'] = array(
+	'pfunc_desc' => 'Enhance parser with logical functions',
+	'pfunc_time_error' => 'xeta: zemano nemeqbul',
+	'pfunc_time_too_long' => 'xeta:zaf zêd mesajê #timeyi',
+	'pfunc_rel2abs_invalid_depth' => 'Hata: Yolda geçersiz derinlik: "$1" (kök düğümünün üstünde bir düğüme erişmeye çalıştı)',
+	'pfunc_expr_stack_exhausted' => 'xetaya ifadeyi: stack qediya',
+	'pfunc_expr_unexpected_number' => 'xetaya ifadeyi: amaro bêtexmin',
+	'pfunc_expr_preg_match_failure' => 'xetaya ifadeyi: arızaya preg_matchi yo bêtexmin',
+	'pfunc_expr_unrecognised_word' => 'xetaya ifadeyi: çekuya "$1"i nêşinasiyeno',
+	'pfunc_expr_unexpected_operator' => 'xetaya ifadeyi: operatorê $1i yo bêtexmin',
+	'pfunc_expr_missing_operand' => 'xetaya ifadeyi: qey $1i termo kêm',
+	'pfunc_expr_unexpected_closing_bracket' => 'xetaya ifadeyi: parantez bıqefelno bêtexmin',
+	'pfunc_expr_unrecognised_punctuation' => 'xetaya ifadeyi: karakterê noqtakerdışê "$1"i yo ke nêşınasiyeno',
+	'pfunc_expr_unclosed_bracket' => 'xetaya ifadeyi: parantezo nêqefelnaye',
+	'pfunc_expr_division_by_zero' => 'pê sıfır teqsim ker',
+	'pfunc_expr_invalid_argument' => 'Invalid argument for $1: < -1 or > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Invalid argument for ln: <= 0',
+	'pfunc_expr_unknown_error' => 'xetaya ifadeyi: neticeya ke nêzaniyena ($1)',
+	'pfunc_expr_not_a_number' => '$1 de: netice yew amar niyo',
+	'pfunc_string_too_long' => 'xeta: rêze heddê karakteri yo $1i veciyaya',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
@@ -444,11 +1106,13 @@
 	'pfunc_expr_invalid_argument_ln' => 'Njepłaśiwy argument za ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Wurazowa zmólka: Njeznata zmólka ($1)',
 	'pfunc_expr_not_a_number' => 'W $1: wuslědk njejo licba',
+	'pfunc_string_too_long' => 'Zmólka: Znamješkowy rěd pśekčaca limit $1 znamješkow',
 );
 
 /** Greek (Ελληνικά)
  * @author Consta
  * @author Dead3y3
+ * @author Omnipaedista
  * @author Απεργός
  */
 $messages['el'] = array(
@@ -470,16 +1134,33 @@
 	'pfunc_expr_invalid_argument_ln' => 'Άκυρη παράμετρος για το ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Σφάλμα έκφρασης: Άγνωστο σφάλμα ($1)',
 	'pfunc_expr_not_a_number' => 'Στο $1: το αποτέλεσμα δεν είναι αριθμός',
+	'pfunc_string_too_long' => 'Σφάλμα: ο ορμαθός υπερβαίνει $1 το όριο χαρακτήρων',
 );
 
+/** British English (British English)
+ * @author Happy-melon
+ */
+$messages['en-gb'] = array(
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3metre|$3metres}}',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|square kilometre|square kilometres}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|square metre|square metres}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|square centimetre|square centimetres}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|square millimetre|square millimetres}}',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|cubic metre|cubic metres}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|cubic centimetre|cubic centimetres}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|cubic millimetre|cubic millimetres}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|$3litre|$3litres}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|millimetre of mercury|millimetres of mercury}}',
+);
+
 /** Esperanto (Esperanto)
  * @author Yekrats
  */
 $messages['eo'] = array(
 	'pfunc_desc' => 'Etendi sintaksan analizilon kun logikaj funkcioj',
-	'pfunc_time_error' => 'Eraro: nevalida tempo',
+	'pfunc_time_error' => 'Eraro: malvalida tempo',
 	'pfunc_time_too_long' => "Eraro: tro da vokoj ''#time''",
-	'pfunc_rel2abs_invalid_depth' => 'Eraro: Nevalida profundo en vojo: "$1" (provis atingi nodon super la radika nodo)',
+	'pfunc_rel2abs_invalid_depth' => 'Eraro: Malvalida profundo en vojo: "$1" (provis atingi nodon super la radika nodo)',
 	'pfunc_expr_stack_exhausted' => 'Esprima eraro: Stako estis malplenigita',
 	'pfunc_expr_unexpected_number' => 'Esprima eraro: Neatendita numeralo',
 	'pfunc_expr_preg_match_failure' => 'Esprima eraro: Neatendita preg_match malsukceso',
@@ -490,13 +1171,15 @@
 	'pfunc_expr_unrecognised_punctuation' => 'Esprima eraro: Nekonata interpunkcia simbolo "$1"',
 	'pfunc_expr_unclosed_bracket' => 'Esprima eraro: Malferma krampo',
 	'pfunc_expr_division_by_zero' => 'Divido per nulo',
-	'pfunc_expr_invalid_argument' => 'Nevalida argumento por $1: < -1 or > 1',
-	'pfunc_expr_invalid_argument_ln' => 'Nevalida argumento por ln: <= 0',
+	'pfunc_expr_invalid_argument' => 'Malvalida argumento por $1: < -1 or > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Malvalida argumento por ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Esprima eraro: Nekonata eraro ($1)',
 	'pfunc_expr_not_a_number' => 'En $1: rezulto ne estas nombro',
+	'pfunc_string_too_long' => 'Eraro: Ĉeno preterpasas signo-limon $1',
 );
 
 /** Spanish (Español)
+ * @author Crazymadlover
  * @author Muro de Aguas
  * @author Remember the dot
  * @author Sanbec
@@ -520,22 +1203,51 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumento incorrecto para ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Error con la expresión: Error desconocido ($1)',
 	'pfunc_expr_not_a_number' => 'En $1: el resultado no es un número',
+	'pfunc_string_too_long' => 'Error: la cadena excede el límite de $1 caracteres',
 );
 
-/** Basque (Euskara) */
+/** Estonian (Eesti)
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'pfunc_desc' => 'Laiendab parserit loogiliste funktsioonidega.',
+	'pfunc_time_error' => 'Tõrge: Vigane aeg',
+	'pfunc_expr_division_by_zero' => 'Nulliga jagamine',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ * @author Kobazulo
+ */
 $messages['eu'] = array(
 	'pfunc_time_error' => 'Errorea: baliogabeko ordua',
 	'pfunc_time_too_long' => 'Errorea: #time dei gehiegi',
+	'pfunc_time_too_big' => 'Errorea: #time funtzioak 9999 urtera arte funtzionatzen du bakarrik',
 	'pfunc_rel2abs_invalid_depth' => 'Errorea: Baliogabeko sakonera fitxategi bidean: "$1" (root puntutik gora sartzen saiatu da)',
+	'pfunc_expr_unexpected_number' => 'Adierazpen errorea: Ustekabeko zenbakia',
+	'pfunc_expr_unrecognised_word' => 'Adierazpen errorea: Hitz ezezaguna "$1"',
+	'pfunc_expr_unexpected_operator' => 'Adierazpen errorea: Ustekabeko $1 eragilea',
+	'pfunc_expr_unexpected_closing_bracket' => 'Adierazpen errorea: Ustekabeko kortxete itxiera',
+	'pfunc_expr_unrecognised_punctuation' => 'Adierazpen errorea: puntuazio karaktere ezezaguna "$1"',
+	'pfunc_expr_unclosed_bracket' => 'Adierazpen errorea: Itxi gabeko kortxetea',
+	'pfunc_expr_division_by_zero' => 'Zeroz zatitu',
+	'pfunc_expr_invalid_argument' => 'Argumentu okerra ondorengoarentzat: $1: < -1 edo > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Argumentu okerra ondorengoarentzat: ln: <= 0',
+	'pfunc_expr_unknown_error' => 'Adierazpen errorea: errore ezezaguna ($1)',
+	'pfunc_expr_not_a_number' => '$1-(e)n: emaitza ez da zenbaki bat',
+	'pfunc_string_too_long' => 'Errorea: hitzak $1 karaktereko muga gainditzen du',
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
+ * @author Wayiran
  */
 $messages['fa'] = array(
 	'pfunc_desc' => 'به تجزیه‌گر، دستورهای منطقی می‌افزاید',
 	'pfunc_time_error' => 'خطا: زمان غیرمجاز',
 	'pfunc_time_too_long' => 'خطا: فراخوانی بیش از حد #time',
+	'pfunc_time_too_big' => 'خطا: <span style="direction: ltr; unicode-bidi: bidi-override;">#time</span> تا سال ۹۹۹۹ را فقط حمایت می‌کند.',
 	'pfunc_rel2abs_invalid_depth' => 'خطا: عمق غیر مجاز در نشانی «$1» (تلاش برای دسترسی به یک نشانی فراتر از نشانی ریشه)',
 	'pfunc_expr_stack_exhausted' => 'خطای عبارت: پشته از دست رفته',
 	'pfunc_expr_unexpected_number' => 'خطای عبارت: عدد دور از انتظار',
@@ -551,10 +1263,12 @@
 	'pfunc_expr_invalid_argument_ln' => 'پارامتر غیر مجاز برای لگاریتم طبیعی: <= صفر',
 	'pfunc_expr_unknown_error' => 'خطای عبارت: خطای ناشناخته ($1)',
 	'pfunc_expr_not_a_number' => 'در $1: نتیجه عدد نیست',
+	'pfunc_string_too_long' => 'خطا: رشته از محدودیت نویسه‌ای $1 تجاوز می‌کند',
 );
 
 /** Finnish (Suomi)
  * @author Agony
+ * @author Cimon Avaro
  * @author Nike
  */
 $messages['fi'] = array(
@@ -576,85 +1290,529 @@
 	'pfunc_expr_invalid_argument_ln' => 'Virheellinen arvo funktiolle ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Virhe lausekkeessa: tuntematon virhe ($1)',
 	'pfunc_expr_not_a_number' => 'Lausekkeessa $1: tulos ei ole luku',
+	'pfunc_string_too_long' => 'Virhe: Merkkijono ylittää $1 merkin ylärajan',
 );
 
 /** French (Français)
  * @author Crochet.david
+ * @author Gomoko
  * @author Grondin
+ * @author Hashar
  * @author IAlex
+ * @author Od1n
  * @author Sherbrooke
  * @author Urhixidur
  * @author Verdy p
  */
 $messages['fr'] = array(
 	'pfunc_desc' => 'Améliore le parseur avec des fonctions logiques',
-	'pfunc_time_error' => 'Erreur : durée invalide',
-	'pfunc_time_too_long' => 'Erreur : appels trop nombreux à <code>#time</code>',
-	'pfunc_rel2abs_invalid_depth' => 'Erreur: profondeur invalide dans le chemin « $1 » (a essayé d’accéder à un niveau au-dessus du nœud racine)',
-	'pfunc_expr_stack_exhausted' => 'Erreur d’expression : pile épuisée',
-	'pfunc_expr_unexpected_number' => 'Erreur d’expression : nombre inattendu',
-	'pfunc_expr_preg_match_failure' => 'Erreur d’expression : échec inattendu de <code>preg_match</code>',
-	'pfunc_expr_unrecognised_word' => 'Erreur d’expression : mot « $1 » non reconnu',
-	'pfunc_expr_unexpected_operator' => "Erreur d’expression : opérateur '''$1''' inattendu",
-	'pfunc_expr_missing_operand' => "Erreur d’expression : opérande manquant pour '''$1'''",
-	'pfunc_expr_unexpected_closing_bracket' => 'Erreur d’expression : parenthèse fermante inattendue',
-	'pfunc_expr_unrecognised_punctuation' => 'Erreur d’expression : caractère de ponctuation « $1 » non reconnu',
-	'pfunc_expr_unclosed_bracket' => 'Erreur d’expression : parenthèse non fermée',
-	'pfunc_expr_division_by_zero' => 'Division par zéro',
-	'pfunc_expr_invalid_argument' => "Argument incorrect pour '''$1''' : < -1 ou > 1",
-	'pfunc_expr_invalid_argument_ln' => "Argument incorrect pour '''ln''' : ≤ 0",
-	'pfunc_expr_unknown_error' => 'Erreur d’expression : erreur inconnue ($1)',
-	'pfunc_expr_not_a_number' => 'Dans $1 : le résultat n’est pas un nombre',
+	'pfunc_time_error' => 'Erreur : durée invalide.',
+	'pfunc_time_too_long' => 'Erreur : appels trop nombreux à <code>#time</code>.',
+	'pfunc_time_too_big' => 'Erreur : #time prend uniquement en charge des années jusqu’à 9999.',
+	'pfunc_rel2abs_invalid_depth' => 'Erreur : profondeur invalide dans le chemin « $1 » (a essayé d’accéder à un niveau au-dessus du nœud racine).',
+	'pfunc_expr_stack_exhausted' => 'Erreur d’expression : pile épuisée.',
+	'pfunc_expr_unexpected_number' => 'Erreur d’expression : nombre inattendu.',
+	'pfunc_expr_preg_match_failure' => 'Erreur d’expression : échec inattendu de <code>preg_match</code>.',
+	'pfunc_expr_unrecognised_word' => 'Erreur d’expression : mot « $1 » non reconnu.',
+	'pfunc_expr_unexpected_operator' => "Erreur d’expression : opérateur '''$1''' inattendu.",
+	'pfunc_expr_missing_operand' => "Erreur d’expression : opérande manquant pour '''$1'''.",
+	'pfunc_expr_unexpected_closing_bracket' => 'Erreur d’expression : parenthèse fermante inattendue.',
+	'pfunc_expr_unrecognised_punctuation' => 'Erreur d’expression : caractère de ponctuation « $1 » non reconnu.',
+	'pfunc_expr_unclosed_bracket' => 'Erreur d’expression : parenthèse non fermée.',
+	'pfunc_expr_division_by_zero' => 'Division par zéro.',
+	'pfunc_expr_invalid_argument' => "Paramètre incorrect pour '''$1''' : < -1 ou > 1.",
+	'pfunc_expr_invalid_argument_ln' => "Paramètre incorrect pour '''ln''' : ≤ 0.",
+	'pfunc_expr_unknown_error' => 'Erreur d’expression : erreur inconnue ($1).',
+	'pfunc_expr_not_a_number' => 'Dans $1 : le résultat n’est pas un nombre.',
+	'pfunc_string_too_long' => 'Erreur : La chaîne dépasse la limite maximale de $1 caractère{{PLURAL:$1||s}}.',
+	'pfunc-convert-dimensionmismatch' => 'Erreur: Impossible de faire une conversion entre les unités de "$1" et "$2".',
+	'pfunc-convert-unknownunit' => 'Erreur : "$1" est une unité inconnue.',
+	'pfunc-convert-unknowndimension' => 'Erreur : "$1" est une dimension inconnue.',
+	'pfunc-convert-invalidcompoundunit' => 'Erreur: Unité composée "$1" invalide.',
+	'pfunc-convert-nounit' => 'Erreur: Aucune unité source fournie.',
+	'pfunc-convert-doublecompoundunit' => 'Erreur: Impossible d\'analyser des unités doublement composées comme "$1".',
+	'pfunc-convert-dimension-length' => 'longueur',
+	'pfunc-convert-dimension-area' => 'aire',
+	'pfunc-convert-dimension-volume' => 'volume',
+	'pfunc-convert-dimension-time' => 'temps',
+	'pfunc-convert-dimension-timesquared' => 'temps<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'masse',
+	'pfunc-convert-dimension-speed' => 'vitesse',
+	'pfunc-convert-dimension-temperature' => 'température',
+	'pfunc-convert-dimension-acceleration' => 'accélération',
+	'pfunc-convert-dimension-force' => 'force',
+	'pfunc-convert-dimension-torque' => 'couple',
+	'pfunc-convert-dimension-energy' => 'énergie',
+	'pfunc-convert-dimension-power' => 'puissance',
+	'pfunc-convert-dimension-pressure' => 'pression',
+	'pfunc-convert-dimension-density' => 'densité',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'fuelefficiencypositive',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'fuelefficiencynegative',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hecto',
+	'pfunc-convert-prefix-deca' => 'deca',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yocto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3 mètre|$3 mètres}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angström|angströms}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|mile|miles}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlongs}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|chaîne|chaînes}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|tige|tiges}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|brasse|brasses}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|yard|yards}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|pied|pieds}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|main|mains}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|pouce|pouces}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|mile nautique|miles nautiques}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|mile nautique (britannique, avant 1970)|miles nautiques (britanniques, avant 1970)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|mile nautique (États-Unis, avant 1954)|miles nautiques (États-Unis, avant 1954)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsec|$3parsecs}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3 année-lumière|$3 années-lumière}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|unité astronomique|unités astronomiques}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1chaîne',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1brasse',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1nmi (Brit.)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1nmi (États-Unis avant 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3 pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3 ly',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1AU',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|kilomètre carré|kilomètres carrés}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|mètre carré|mètres carrés}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|centimètre carré|centimètres carrés}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|millimètre carré|millimètres carrés}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hectare|hectares}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|mile carré|miles carrés}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|acre|acres}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|yard carré|yards carrés}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|pied carré|pieds carrés}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|pouce carré|pouces carrés}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|mile nautique carré|miles nautiques carrés}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunams}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsubos}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1mi^2',
+	'pfunc-convert-unit-area-acre-abbr' => '$1acre',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1yd^2',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1ft^2',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1in^2',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1nmi^2',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|seconde|secondes}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3 an|$3 ans}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|jour|jours}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|heure|heures}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minute|minutes}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3an',
+	'pfunc-convert-unit-time-day-abbr' => '$1j',
+	'pfunc-convert-unit-time-hour-abbr' => '$1h',
+	'pfunc-convert-unit-time-minute-abbr' => '$1m',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|mètre cube|mètres cubes}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|centimètre cube|centimètres cubes}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|millimètre cube|millimètres cubes}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|kilolitre|kilolitres}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|litre|litres}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|centilitre|centilitres}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|millilitre|millilitres}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|yard cube|yards cubes}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|pied cube|pieds cubes}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|pouce cube|pouces cubes}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|baril|barils}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|boisseau|boisseaux}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|gallon|gallons}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|litre|litres}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|pinte|pintes}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|once liquide|onces liquides}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|baril US|barils US}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|baril|barils}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|baril|barils}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|gallon US|gallons US}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|litre US|litres US}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|pinte US|pintes US}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|once liquide US|onces liquides US}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|baril sec US|barils secs US}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|boisseau US|boisseaux US}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|gallon sec US|gallons secs US}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|litre sec US|litres secs US}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|pinte sèche US|pintes sèches US}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3l',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1yd^3',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1ft^3',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1in^3',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1bsh',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1qt',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1pt',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1fl oz',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1US bbl',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1US gal',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1US qt',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1US pt',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1US fl oz',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1US bbl',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1US bsh',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1US gal sec',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1US qt sec',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1US pt sec',
+	'pfunc-convert-unit-speed-mile-hour' => '$1miles par heure',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1m/h',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3 pascal|$3 pascals}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1decibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1millibar',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilobar',
+	'pfunc-convert-unit-pressure-barye' => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosphère|atmosphères}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|torr|torrs}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|millimètre de mercure|millimètres de mercure}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|pouce de mercure|pouces de mercure}}',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|livre par pouce carré|livres par pouce carré}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3 Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Franco-Provençal (Arpetan)
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'pfunc_desc' => 'Ôgmente lo parsor avouéc des fonccions logiques.',
-	'pfunc_time_error' => 'Èrror : durâ envalida',
-	'pfunc_time_too_long' => 'Èrror : parsèr #time apelâ trop de côps',
-	'pfunc_rel2abs_invalid_depth' => 'Èrror : nivô de rèpèrtouèro envalido dens lo chemin : « $1 » (at tâchiê d’arrevar a un nivô en-dessus du rèpèrtouèro racena)',
-	'pfunc_expr_stack_exhausted' => 'Èxprèssion fôssa : pila èpouesiê',
-	'pfunc_expr_unexpected_number' => 'Èxprèssion fôssa : nombro emprèvu',
-	'pfunc_expr_preg_match_failure' => 'Èxprèssion fôssa : falyita emprèvua por <code>preg_match</code>',
-	'pfunc_expr_unrecognised_word' => "Èrror d’èxprèssion : lo mot '''$1''' est pas recognu",
-	'pfunc_expr_unexpected_operator' => "Èrror d’èxprèssion : l’opèrator '''$1''' est pas recognu",
-	'pfunc_expr_missing_operand' => "Èrror d’èxprèssion : l’opèranda '''$1''' est pas recognua",
+	'pfunc_desc' => 'Mèlyore lo parsor avouéc des fonccions logiques.',
+	'pfunc_time_error' => 'Èrror : temps envalido',
+	'pfunc_time_too_long' => 'Èrror : trop grant nombro d’apèls a <code>#time</code>',
+	'pfunc_rel2abs_invalid_depth' => 'Èrror : provondior envalida dens lo chemin « $1 » (at tâchiê d’arrevar a un nivél en-dessus du nuod racena)',
+	'pfunc_expr_stack_exhausted' => 'Èrror d’èxprèssion : pila èpouesiê',
+	'pfunc_expr_unexpected_number' => 'Èrror d’èxprèssion : nombro emprèvu',
+	'pfunc_expr_preg_match_failure' => 'Èrror d’èxprèssion : falyita emprèvua de <code>preg_match</code>',
+	'pfunc_expr_unrecognised_word' => 'Èrror d’èxprèssion : mot « $1 » pas recognu',
+	'pfunc_expr_unexpected_operator' => 'Èrror d’èxprèssion : opèrator « $1 » emprèvu',
+	'pfunc_expr_missing_operand' => 'Èrror d’èxprèssion : opèrando manquent por « $1 »',
 	'pfunc_expr_unexpected_closing_bracket' => 'Èrror d’èxprèssion : parentèsa cllosenta emprèvua',
 	'pfunc_expr_unrecognised_punctuation' => 'Èrror d’èxprèssion : caractèro de ponctuacion « $1 » pas recognu',
 	'pfunc_expr_unclosed_bracket' => 'Èrror d’èxprèssion : parentèsa pas cllôsa',
 	'pfunc_expr_division_by_zero' => 'Division per zérô',
+	'pfunc_expr_invalid_argument' => 'Argument fôx por « $1 » : < -1 ou ben > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Argument fôx por « ln » : ≤ 0',
 	'pfunc_expr_unknown_error' => 'Èrror d’èxprèssion : èrror encognua ($1)',
 	'pfunc_expr_not_a_number' => 'Dens $1 : lo rèsultat est pas un nombro',
+	'pfunc_string_too_long' => 'Èrror : la chêna dèpâsse la limita d’amont de $1 caractèro{{PLURAL:$1||s}}',
+	'pfunc-convert-unknownunit' => 'Èrror : « $1 » est una unitât encognua.',
+	'pfunc-convert-unknowndimension' => 'Èrror : « $1 » est una dimension encognua.',
+	'pfunc-convert-dimension-length' => 'longior',
+	'pfunc-convert-dimension-area' => 'surface',
+	'pfunc-convert-dimension-volume' => 'cubâjo',
+	'pfunc-convert-dimension-time' => 'temps',
+	'pfunc-convert-dimension-timesquared' => 'temps<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'massa',
+	'pfunc-convert-dimension-speed' => 'vitèsse',
+	'pfunc-convert-dimension-temperature' => 'tempèratura',
+	'pfunc-convert-dimension-acceleration' => 'accèlèracion',
+	'pfunc-convert-dimension-force' => 'fôrce',
+	'pfunc-convert-dimension-torque' => 'cobla',
+	'pfunc-convert-dimension-energy' => 'nèrf',
+	'pfunc-convert-dimension-power' => 'pouessience',
+	'pfunc-convert-dimension-pressure' => 'prèssion',
+	'pfunc-convert-dimension-density' => 'densitât',
+	'pfunc-convert-prefix-yotta' => 'yota',
+	'pfunc-convert-prefix-zetta' => 'zèta',
+	'pfunc-convert-prefix-exa' => 'ègza',
+	'pfunc-convert-prefix-peta' => 'pèta',
+	'pfunc-convert-prefix-tera' => 'tèra',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mèga',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hècto',
+	'pfunc-convert-prefix-deca' => 'dèca',
+	'pfunc-convert-prefix-deci' => 'dèci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'ato',
+	'pfunc-convert-prefix-zepto' => 'zèpto',
+	'pfunc-convert-prefix-yocto' => 'yocto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1$3mètre{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-angstrom' => '$1ångström{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-mile' => '$1mile{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-furlong' => '$1furlong{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-chain' => '$1chên{{PLURAL:$2|a|es}}',
+	'pfunc-convert-unit-length-rod' => '$1pèrche{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-fathom' => '$1braciê{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-yard' => '$1vèrge{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-foot' => '$1pied{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-hand' => '$1man{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-inch' => '$1pôjo{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|mile marin|miles marins}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|mile marin (prè-1970 britanico)|miles marins (prè-1970 britanicos)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|mile marin (prè-1954 des Ètats-Unis)|miles marins (prè-1954 des Ètats-Unis)}}',
+	'pfunc-convert-unit-length-parsec' => '$1$3parsec{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3an|$3ans}}-lumiére',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|unitât astronomica|unitâts astronomiques}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1chêna',
+	'pfunc-convert-unit-length-rod-abbr' => '$1pèrche',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1braciê',
+	'pfunc-convert-unit-length-yard-abbr' => '$1vg',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1po',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3al',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1UA',
+	'pfunc-convert-unit-area-hectare' => '$1hèctâre{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|mile carrâ|miles carrâs}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|vèrge carrâ|vèrges carrâs}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|pôjo carrâ|pôjos carrâs}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1mi<sup>2</sup>',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1vg<sup>2</sup>',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1po<sup>2</sup>',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1nmi<sup>2</sup>',
+	'pfunc-convert-unit-time-second' => '$1second{{PLURAL:$2|a|es}}',
+	'pfunc-convert-unit-time-year' => '$1$3an{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-time-day' => '$1jorn{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-time-hour' => '$1hor{{PLURAL:$2|a|es}}',
+	'pfunc-convert-unit-time-minute' => '$1menut{{PLURAL:$2|a|es}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3a',
+	'pfunc-convert-unit-time-day-abbr' => '$1j',
+	'pfunc-convert-unit-time-hour-abbr' => '$1h',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3l',
+	'pfunc-convert-unit-speed-mile-hour' => '$1miles per hora',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1mph',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3pascâl|$3pascâls}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1dècibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1milibar',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilobarye',
+	'pfunc-convert-unit-pressure-barye' => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1atmosfér{{PLURAL:$2|a|es}}',
+	'pfunc-convert-unit-pressure-torr' => '$1torr{{PLURAL:$2||s}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1milimètre{{PLURAL:$2||s}} de mèrcure',
+	'pfunc-convert-unit-pressure-inhg' => '$1pôjo{{PLURAL:$2||s}} de mèrcure',
+	'pfunc-convert-unit-pressure-psi' => '$1livr{{PLURAL:$2|a|es}} per pôjo carrâ',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Galician (Galego)
  * @author Alma
+ * @author Elisardojm
  * @author Toliño
  * @author Xosé
  */
 $messages['gl'] = array(
 	'pfunc_desc' => 'Mellora o analizador con funcións lóxicas',
-	'pfunc_time_error' => 'Erro: hora non válida',
-	'pfunc_time_too_long' => 'Erro: demasiadas chamadas #time',
-	'pfunc_rel2abs_invalid_depth' => 'Erro: profundidade da ruta non válida: "$1" (tentouse acceder a un nodo por riba do nodo raíz)',
-	'pfunc_expr_stack_exhausted' => 'Erro de expresión: pila esgotada',
-	'pfunc_expr_unexpected_number' => 'Erro de expresión: número inesperado',
-	'pfunc_expr_preg_match_failure' => 'Erro de expresión: fallo de preg_match inesperado',
-	'pfunc_expr_unrecognised_word' => 'Erro de expresión: palabra descoñecida "$1"',
-	'pfunc_expr_unexpected_operator' => 'Erro de expresión: operador "$1" inesperado',
-	'pfunc_expr_missing_operand' => 'Erro de expresión: falta un operador para $1',
-	'pfunc_expr_unexpected_closing_bracket' => 'Erro de expresión: corchete de peche inesperado',
-	'pfunc_expr_unrecognised_punctuation' => 'Erro de expresión: signo de puntuación descoñecido "$1"',
-	'pfunc_expr_unclosed_bracket' => 'Erro de expresión: paréntese sen pechar',
-	'pfunc_expr_division_by_zero' => 'División por cero',
-	'pfunc_expr_invalid_argument' => 'Argumento inválido para $1: < -1 ou > 1',
-	'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0',
-	'pfunc_expr_unknown_error' => 'Erro de expresión: erro descoñecido ($1)',
-	'pfunc_expr_not_a_number' => 'En $1: o resultado non é un número',
+	'pfunc_time_error' => 'Erro: Hora non válida.',
+	'pfunc_time_too_long' => 'Erro: Demasiadas chamadas #time.',
+	'pfunc_time_too_big' => 'Erro: #time só permite anos ata o 9999.',
+	'pfunc_rel2abs_invalid_depth' => 'Erro: Profundidade da ruta non válida: "$1" (intentouse acceder a un nodo por riba do nodo raíz).',
+	'pfunc_expr_stack_exhausted' => 'Erro de expresión: Pila esgotada.',
+	'pfunc_expr_unexpected_number' => 'Erro de expresión: Número inesperado.',
+	'pfunc_expr_preg_match_failure' => 'Erro de expresión: Fallo de preg_match inesperado.',
+	'pfunc_expr_unrecognised_word' => 'Erro de expresión: Descoñécese a palabra "$1".',
+	'pfunc_expr_unexpected_operator' => 'Erro de expresión: Operador "$1" inesperado.',
+	'pfunc_expr_missing_operand' => 'Erro de expresión: Falta un operador para $1.',
+	'pfunc_expr_unexpected_closing_bracket' => 'Erro de expresión: Corchete de peche inesperado.',
+	'pfunc_expr_unrecognised_punctuation' => 'Erro de expresión: Descoñécese o signo de puntuación "$1".',
+	'pfunc_expr_unclosed_bracket' => 'Erro de expresión: Paréntese sen pechar.',
+	'pfunc_expr_division_by_zero' => 'División por cero.',
+	'pfunc_expr_invalid_argument' => 'Argumento inválido para $1: < -1 ou > 1.',
+	'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0.',
+	'pfunc_expr_unknown_error' => 'Erro de expresión: Erro descoñecido ($1).',
+	'pfunc_expr_not_a_number' => 'En $1: O resultado non é un número.',
+	'pfunc_string_too_long' => 'Erro: A cadea excede o límite de $1 caracteres.',
+	'pfunc-convert-dimensionmismatch' => 'Erro: Non se pode converter entre as unidades "$1" e "$2".',
+	'pfunc-convert-unknownunit' => 'Erro: Descoñécese a unidade "$1".',
+	'pfunc-convert-unknowndimension' => 'Erro: Descoñécese a dimensión "$1".',
+	'pfunc-convert-invalidcompoundunit' => 'Erro: A unidade composta "$1" é inválida.',
+	'pfunc-convert-nounit' => 'Erro: Non se deu ningunha unidade de orixe.',
+	'pfunc-convert-doublecompoundunit' => 'Erro: Non se poden analizar as unidades compostas dobres como "$1".',
+	'pfunc-convert-dimension-length' => 'lonxitude',
+	'pfunc-convert-dimension-area' => 'área',
+	'pfunc-convert-dimension-volume' => 'volume',
+	'pfunc-convert-dimension-time' => 'tempo',
+	'pfunc-convert-dimension-timesquared' => 'tempo<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'masa',
+	'pfunc-convert-dimension-speed' => 'velocidade',
+	'pfunc-convert-dimension-temperature' => 'temperatura',
+	'pfunc-convert-dimension-acceleration' => 'aceleración',
+	'pfunc-convert-dimension-force' => 'forza',
+	'pfunc-convert-dimension-torque' => 'torque',
+	'pfunc-convert-dimension-energy' => 'enerxía',
+	'pfunc-convert-dimension-power' => 'potencia',
+	'pfunc-convert-dimension-pressure' => 'presión',
+	'pfunc-convert-dimension-density' => 'densidade',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'xiga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'quilo',
+	'pfunc-convert-prefix-hecto' => 'hecto',
+	'pfunc-convert-prefix-deca' => 'deca',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yocto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3metro|$3metros}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angstrom|angstroms}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|milla|millas}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlongs}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|cadea|cadeas}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|rod|rods}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|braza|brazas}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|iarda|iardas}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|pé|pés}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|palmo|palmos}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|polgada|polgadas}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|milla náutica|millas náuticas}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsec|$3parsecs}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3ano luz|$3anos luz}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|unidade astronómica|unidades astronómicas}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1cadea',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rod',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1braza',
+	'pfunc-convert-unit-length-yard-abbr' => '$1iarda',
+	'pfunc-convert-unit-length-foot-abbr' => '$1pé',
+	'pfunc-convert-unit-length-hand-abbr' => '$1palmo',
+	'pfunc-convert-unit-length-inch-abbr' => '$1polgada',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1milla náutica',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3parsec',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3ano luz',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1UA',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|quilómetro cadrado|quilómetros cadrados}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|metro cadrado|metros cadrados}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|centímetro cadrado|centímetros cadrados}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|milímetro cadrado|milímetros cadrados}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hectárea|hectáreas}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|segundo|segundos}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3ano|$3anos}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|día|días}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|hora|horas}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minuto|minutos}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3ano',
+	'pfunc-convert-unit-time-day-abbr' => '$1día',
+	'pfunc-convert-unit-time-hour-abbr' => '$1h',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|metro cúbico|metros cúbicos}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|centímetro cúbico|centímetros cúbicos}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|milímetro cúbico|milímetros cúbicos}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|quilolitro|quilolitros}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|litro|litros}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|centilitro|centilitros}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|mililitro|mililitros}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3L',
+	'pfunc-convert-unit-speed-mile-hour' => '$1millas por hora',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3pascal|$3pascais}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1decibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1milibar',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosfera|atmosferas}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|milímetro de mercurio|milímetros de mercurio}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
 );
 
+/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
+ * @author Omnipaedista
+ */
+$messages['grc'] = array(
+	'pfunc_expr_division_by_zero' => 'Διαίρεσις διὰ τοῦ μηδενός',
+);
+
 /** Swiss German (Alemannisch)
  * @author Als-Holder
  */
@@ -662,6 +1820,7 @@
 	'pfunc_desc' => 'Erwyteret dr Parser um logischi Funktione',
 	'pfunc_time_error' => 'Fähler: uugiltigi Zytaagab',
 	'pfunc_time_too_long' => 'Fähler: z vyyl #time-Ufruef',
+	'pfunc_time_too_big' => 'Fähler: #time unterstitzt nume Johr bis 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Fähler: uugültigi Tiefi im Pfad: „$1“ (Versuech, uf e Chnotepunkt oberhalb vum Hauptchnotepunkt zuezgryfe)',
 	'pfunc_expr_stack_exhausted' => 'Expression-Fähler: Stackiberlauf',
 	'pfunc_expr_unexpected_number' => 'Expression-Fähler: Nit erwarteti Zahl',
@@ -677,13 +1836,17 @@
 	'pfunc_expr_invalid_argument_ln' => 'Nit giltig Argument fir ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Expression-Fähler: Nit bekannte Fehler ($1)',
 	'pfunc_expr_not_a_number' => 'Expression-Fähler: In $1: Ergebnis isch kei Zahl',
+	'pfunc_string_too_long' => 'Fähler: d Zeichechette het meh wie di zuelässig Zahl vu $1 Zeiche',
 );
 
-/** Hebrew (עברית) */
+/** Hebrew (עברית)
+ * @author Amire80
+ */
 $messages['he'] = array(
 	'pfunc_desc' => 'הוספת פונקציות לוגיות למפענח',
 	'pfunc_time_error' => 'שגיאה: זמן שגוי',
 	'pfunc_time_too_long' => 'שגיאה: שימוש ב"#זמן" פעמים רבות מדי',
+	'pfunc_time_too_big' => 'שגיאה: #זמן תומכת רק בשנים עד 9999',
 	'pfunc_rel2abs_invalid_depth' => 'שגיאה: עומק שגוי בנתיב: "$1" (ניסיון כניסה לצומת מעל צומת השורש)',
 	'pfunc_expr_stack_exhausted' => 'שגיאה בביטוי: המחסנית מלאה',
 	'pfunc_expr_unexpected_number' => 'שגיאה בביטוי: מספר בלתי צפוי',
@@ -699,6 +1862,123 @@
 	'pfunc_expr_invalid_argument_ln' => 'ארגומנט בלתי תקין לפונקציה ln: <= 0',
 	'pfunc_expr_unknown_error' => 'שגיאה בביטוי: שגיאה בלתי ידועה ($1)',
 	'pfunc_expr_not_a_number' => 'התוצאה של $1 אינה מספר',
+	'pfunc_string_too_long' => 'שגיאה: המחרוזת עוברת את גבול התווים המותר, $1',
+	'pfunc-convert-dimensionmismatch' => 'שגיאה: לא ניתן להמיר בין יחידות של "$1" ושל "$2".',
+	'pfunc-convert-unknownunit' => 'שגיאה: יחידה לא ידועה "$1".',
+	'pfunc-convert-unknowndimension' => 'שגיאה: ממד לא ידוע "$1".',
+	'pfunc-convert-invalidcompoundunit' => 'שגיאה: יחידה מורכבת לא ידועה "$1".',
+	'pfunc-convert-nounit' => 'שגיאה: לא ניתנה יחידה התחלתית.',
+	'pfunc-convert-doublecompoundunit' => 'שגיאה: לא ניתן לפענח יחידות מורכבות כפולות כמו "$1".',
+	'pfunc-convert-dimension-length' => 'אורך',
+	'pfunc-convert-dimension-area' => 'שטח',
+	'pfunc-convert-dimension-volume' => 'נפח',
+	'pfunc-convert-dimension-time' => 'זמן',
+	'pfunc-convert-dimension-timesquared' => 'זמן<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'מסה',
+	'pfunc-convert-dimension-speed' => 'מהירות',
+	'pfunc-convert-dimension-temperature' => 'חום',
+	'pfunc-convert-dimension-acceleration' => 'תאוצה',
+	'pfunc-convert-dimension-force' => 'כוח',
+	'pfunc-convert-dimension-torque' => 'מומנט הסיבוב',
+	'pfunc-convert-dimension-energy' => 'אנרגיה',
+	'pfunc-convert-dimension-power' => 'הספק',
+	'pfunc-convert-dimension-pressure' => 'לחץ',
+	'pfunc-convert-dimension-density' => 'צפיפות',
+	'pfunc-convert-prefix-yotta' => 'יוטא',
+	'pfunc-convert-prefix-zetta' => 'זטא',
+	'pfunc-convert-prefix-exa' => 'אקסה',
+	'pfunc-convert-prefix-peta' => 'פטה',
+	'pfunc-convert-prefix-tera' => 'טרה',
+	'pfunc-convert-prefix-giga' => 'גיגה',
+	'pfunc-convert-prefix-mega' => 'מגה',
+	'pfunc-convert-prefix-kilo' => 'קילו',
+	'pfunc-convert-prefix-hecto' => 'הקטו',
+	'pfunc-convert-prefix-deca' => 'דקה',
+	'pfunc-convert-prefix-deci' => 'דצי',
+	'pfunc-convert-prefix-centi' => 'סנטי',
+	'pfunc-convert-prefix-milli' => 'מילי',
+	'pfunc-convert-prefix-micro' => 'מיקרו',
+	'pfunc-convert-prefix-nano' => 'ננו',
+	'pfunc-convert-prefix-pico' => 'פיקו',
+	'pfunc-convert-prefix-femto' => 'פמטו',
+	'pfunc-convert-prefix-atto' => 'אטו',
+	'pfunc-convert-prefix-zepto' => 'זפטו',
+	'pfunc-convert-prefix-yocto' => 'יוקטו',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1פרלונג',
+	'pfunc-convert-unit-length-chain-abbr' => '$1שלשלת',
+	'pfunc-convert-unit-length-rod-abbr' => '$1מַטֶּה',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1פאתום',
+	'pfunc-convert-unit-length-yard-abbr' => '$1יארד',
+	'pfunc-convert-unit-length-foot-abbr' => '$1רגל',
+	'pfunc-convert-unit-length-hand-abbr' => '$1כף־יד',
+	'pfunc-convert-unit-length-inch-abbr' => '$1אינץ׳',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1מיל ימי',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1מיל ימי (אנגלי)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1מיל ימי (ארה״ב לפני 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3 פארסק',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3 שנות אור',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1יחידה אסטרונומית',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1קמ״ר',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1מ״ר',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1סמ״ר',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1ממ״ר',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1הקטאר',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1מיל רבוע',
+	'pfunc-convert-unit-area-acre-abbr' => '$1אקר',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1יארד רבוע',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1רגל רבועה',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1אינץ׳ רבוע',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1מיל ימי רבוע',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1דונם',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1צובו',
+	'pfunc-convert-unit-time-second-abbr' => '$1שנייה',
+	'pfunc-convert-unit-time-day-abbr' => '$1יום',
+	'pfunc-convert-unit-time-hour-abbr' => '$1שעה',
+	'pfunc-convert-unit-time-minute-abbr' => '$1דקה',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1מטר מעוקב',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1ס״מ מעוקב',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1מ״מ מעוקב',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3 ל׳',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1יארד מעוקב',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1רגל מעוקבת',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1אינץ׳ מעוקב',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1חבית',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1בושל',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1גלון',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1קווארטה',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1פיינט',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1אונקייה',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1חבית אמריקאית',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1חבית',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1חבית',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1גלון אמריקאי',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1קווארטה אמריקאית',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1פיינט אמריקאי',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1אונקייה אמריקאית',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1חבית אמריקאית',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1בושל אמריקאי',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1גלון יבש אמריקאי',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1קווארטה יבשה אמריקאית',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1פיינט יבש אמריקאי',
+	'pfunc-convert-unit-speed-mile-hour' => '$1מיל לשעה',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1מיל לשעה',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-bar' => '$1בר',
+	'pfunc-convert-unit-pressure-decibar' => '$1דציבר',
+	'pfunc-convert-unit-pressure-millibar' => '$1מיליבר',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1קילובָּרְיֶה',
+	'pfunc-convert-unit-pressure-barye' => '$1בָּרְיֶה',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1בר',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1דציבר',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1מיליבר',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1קילובָּרְיֶה',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1בָּרְיֶה',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1אטמ׳',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1טור',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1מ״מ כספית',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1אינץ׳ כספית',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Hindi (हिन्दी)
@@ -729,6 +2009,7 @@
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
  * @author Dnik
+ * @author Ex13
  * @author SpeedyGonsales
  */
 $messages['hr'] = array(
@@ -750,6 +2031,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Nevaljani argument za ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Greška u predlošku: Nepoznata greška ($1)',
 	'pfunc_expr_not_a_number' => 'U $1: rezultat nije broj',
+	'pfunc_string_too_long' => 'Greška: Niz prelazi ograničenje od $1 znakova',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
@@ -774,6 +2056,52 @@
 	'pfunc_expr_invalid_argument_ln' => 'Njepłaćiwy argument za ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Wurazowy zmylk: Njeznaty zmylk ($1)',
 	'pfunc_expr_not_a_number' => 'W $1: Wuslědk ličba njeje',
+	'pfunc_string_too_long' => 'Zmylk: Znamješkowy slěd překročuje limit $1 znamješkow',
+	'pfunc-convert-dimensionmismatch' => 'Zmylk: Konwertowanje mjez "$1" a "$2" njemóžno',
+	'pfunc-convert-unknownunit' => 'Zmylk: Njeznata jednotka "$1"',
+	'pfunc-convert-unknowndimension' => 'Zmylk: Njeznata dimensija "$1"',
+	'pfunc-convert-nounit' => 'Zmylk: žórłowa jednotka faluje',
+	'pfunc-convert-dimension-length' => 'Dołhosć',
+	'pfunc-convert-dimension-area' => 'přestrjeń',
+	'pfunc-convert-dimension-volume' => 'wolumen',
+	'pfunc-convert-dimension-time' => 'čas',
+	'pfunc-convert-dimension-timesquared' => 'čas <sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'Masa',
+	'pfunc-convert-dimension-speed' => 'spěšnosć',
+	'pfunc-convert-dimension-temperature' => 'temperatura',
+	'pfunc-convert-dimension-acceleration' => 'pospěšenje',
+	'pfunc-convert-dimension-force' => 'móc',
+	'pfunc-convert-dimension-torque' => 'wjertny moment',
+	'pfunc-convert-dimension-energy' => 'energija',
+	'pfunc-convert-dimension-power' => 'wukon',
+	'pfunc-convert-dimension-pressure' => 'ćišć',
+	'pfunc-convert-dimension-density' => 'hustota',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'Pozitiwna ćěriwowa eficienca',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'Negatiwna ćěriwowa eficienca',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|meter|metraj|metry|metrow}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomiska jednotka|astronomiskej jednotce|astronomiske jednotki|astronomiskich jednotkow}}',
+	'pfunc-convert-unit-length-metre-abbr' => '$1m',
+	'pfunc-convert-unit-length-angstrom-abbr' => '$1Å',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1sm<sup>2</sup>',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|sekunda|sekundźe|sekundy|sekundow}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|lěto|lěće|lěta|lět}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|dźeń|dnjej|dny|dnjow}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|hodźina|hodźinje|hodźiny|hodźin}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|mjeńšina|mjeńšinje|mjeńšiny|mjeńšin}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1lěto',
+	'pfunc-convert-unit-time-day-abbr' => '$1dźeń',
+	'pfunc-convert-unit-time-hour-abbr' => '$1hodź.',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1l',
 );
 
 /** Hungarian (Magyar)
@@ -783,6 +2111,7 @@
 	'pfunc_desc' => 'Az értelmező kiegészítése logikai funkciókkal',
 	'pfunc_time_error' => 'Hiba: érvénytelen idő',
 	'pfunc_time_too_long' => 'Hiba: a #time túl sokszor lett meghívva',
+	'pfunc_time_too_big' => 'Hiba: a #time csak 9999-ig támogatja az éveket',
 	'pfunc_rel2abs_invalid_depth' => 'Hiba: nem megfelelő a mélység az elérési útban: „$1” (egy olyan csomópontot akartál elérni, amely a gyökércsomópont felett van)',
 	'pfunc_expr_stack_exhausted' => 'Hiba a kifejezésben: a verem kiürült',
 	'pfunc_expr_unexpected_number' => 'Hiba a kifejezésben: nem várt szám',
@@ -798,6 +2127,51 @@
 	'pfunc_expr_invalid_argument_ln' => 'Az ln érvénytelen paramétert kapott: <= 0',
 	'pfunc_expr_unknown_error' => 'Hiba a kifejezésben: ismeretlen hiba ($1)',
 	'pfunc_expr_not_a_number' => '$1: az eredmény nem szám',
+	'pfunc_string_too_long' => 'Hiba: a sztring túllépte a(z) $1 karakteres határt',
+	'pfunc-convert-dimensionmismatch' => 'Hiba: „$1” és „$2” mértékegységek között nem lehet átváltani.',
+	'pfunc-convert-unknownunit' => 'Hiba: ismeretlen mértékegység: „$1”',
+	'pfunc-convert-nounit' => 'Hiba: nincs megadva a forrásmértékegység.',
+	'pfunc-convert-dimension-length' => 'hossz',
+	'pfunc-convert-dimension-area' => 'terület',
+	'pfunc-convert-dimension-volume' => 'térfogat',
+	'pfunc-convert-dimension-time' => 'idő',
+	'pfunc-convert-dimension-timesquared' => 'idő<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'tömeg',
+	'pfunc-convert-dimension-speed' => 'sebesség',
+	'pfunc-convert-dimension-temperature' => 'hőmérséklet',
+	'pfunc-convert-dimension-acceleration' => 'gyorsulás',
+	'pfunc-convert-dimension-force' => 'erő',
+	'pfunc-convert-dimension-torque' => 'nyomaték',
+	'pfunc-convert-dimension-energy' => 'energia',
+	'pfunc-convert-dimension-pressure' => 'nyomás',
+	'pfunc-convert-dimension-density' => 'sűrűség',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hekto',
+	'pfunc-convert-prefix-deca' => 'deka',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'milli',
+	'pfunc-convert-prefix-micro' => 'mikro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'piko',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yokto',
+	'pfunc-convert-unit-length-metre' => '$1$3méter',
+	'pfunc-convert-unit-length-mile' => '$1mérföld',
+	'pfunc-convert-unit-length-foot' => '$1láb',
+	'pfunc-convert-unit-length-nauticalmile' => '$1tengeri mérföld',
+	'pfunc-convert-unit-length-lightyear' => '$1$3fényév',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1csillagászati egység',
+	'pfunc-convert-unit-area-hectare' => '$1hektár',
 );
 
 /** Interlingua (Interlingua)
@@ -807,6 +2181,7 @@
 	'pfunc_desc' => 'Meliorar le analysator syntactic con functiones logic',
 	'pfunc_time_error' => 'Error: tempore invalide',
 	'pfunc_time_too_long' => 'Error: troppo de appellos a #time',
+	'pfunc_time_too_big' => 'Error: #time supporta solmente annos usque a 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Error: Profunditate invalide in cammino: "$1" (essayava acceder a un nodo superior al radice)',
 	'pfunc_expr_stack_exhausted' => 'Error in expression: Pila exhaurite',
 	'pfunc_expr_unexpected_number' => 'Error in expression: Numero non expectate',
@@ -822,6 +2197,56 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumento invalide pro ln: ≤ 0',
 	'pfunc_expr_unknown_error' => 'Error de expression: Error incognite ($1)',
 	'pfunc_expr_not_a_number' => 'In $1: le resultato non es un numero',
+	'pfunc_string_too_long' => 'Error: Le catena excede le limite de $1 {{PLURAL:$1|character|characteres}}',
+	'pfunc-convert-dimensionmismatch' => 'Error: Impossibile converter inter unitates de "$1" e "$2".',
+	'pfunc-convert-unknownunit' => 'Error: Unitate "$1" incognite.',
+	'pfunc-convert-unknowndimension' => 'Error: Dimension "$1" incognite.',
+	'pfunc-convert-invalidcompoundunit' => 'Error: Unitate composite "$1" invalide.',
+	'pfunc-convert-nounit' => 'Error: Nulle unitate de origine specificate.',
+	'pfunc-convert-doublecompoundunit' => 'Error: Non pote processar unitates composite duplice como "$1".',
+	'pfunc-convert-dimension-length' => 'longitude',
+	'pfunc-convert-dimension-area' => 'area',
+	'pfunc-convert-dimension-volume' => 'volumine',
+	'pfunc-convert-dimension-time' => 'tempore',
+	'pfunc-convert-dimension-timesquared' => 'tempore<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'massa',
+	'pfunc-convert-dimension-speed' => 'velocitate',
+	'pfunc-convert-dimension-temperature' => 'temperatura',
+	'pfunc-convert-dimension-acceleration' => 'acceleration',
+	'pfunc-convert-dimension-force' => 'fortia',
+	'pfunc-convert-dimension-torque' => 'torsion',
+	'pfunc-convert-dimension-energy' => 'energia',
+	'pfunc-convert-dimension-power' => 'potentia',
+	'pfunc-convert-dimension-pressure' => 'pression',
+	'pfunc-convert-dimension-density' => 'densitate',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'efficientiaenergeticpositive',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'efficientiaenergeticnegative',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hecto',
+	'pfunc-convert-prefix-deca' => 'deca',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'milli',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yocto',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3metro|$3metros}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|ångström|ångströmes}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|millia|millias}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlongs}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|catena|catenas}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|pertica|perticas}}',
 );
 
 /** Indonesian (Bahasa Indonesia)
@@ -833,6 +2258,7 @@
 	'pfunc_desc' => 'Mengembangkan parser dengan fungsi logis',
 	'pfunc_time_error' => 'Kesalahan: waktu tidak valid',
 	'pfunc_time_too_long' => 'Kesalahan: Pemanggilan #time terlalu banyak',
+	'pfunc_time_too_big' => 'Galat: #time hanya mendukung tahun hingga 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Kesalahan: Kedalaman path tidak valid: "$1" (mencoba mengakses simpul di atas simpul akar)',
 	'pfunc_expr_stack_exhausted' => 'Kesalahan ekspresi: Stack habis',
 	'pfunc_expr_unexpected_number' => 'Kesalahan ekspresi: Angka yang tak terduga',
@@ -848,6 +2274,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumen tidak berlaku untuk ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Kesalahan ekspresi: Kesalahan tak dikenal ($1)',
 	'pfunc_expr_not_a_number' => 'Pada $1: hasilnya bukan angka',
+	'pfunc_string_too_long' => 'Kesalahan: String melebihi limit $1 karakter',
 );
 
 /** Ido (Ido)
@@ -859,6 +2286,7 @@
 );
 
 /** Italian (Italiano)
+ * @author Beta16
  * @author BrokenArrow
  * @author Darth Kule
  * @author Pietrodn
@@ -867,6 +2295,7 @@
 	'pfunc_desc' => 'Aggiunge al parser una serie di funzioni logiche',
 	'pfunc_time_error' => 'Errore: orario non valido',
 	'pfunc_time_too_long' => 'Errore: troppe chiamate a #time',
+	'pfunc_time_too_big' => "Errore: #time supporta solo fino all'anno 9999",
 	'pfunc_rel2abs_invalid_depth' => 'Errore: profondità non valida nel percorso "$1" (si è tentato di accedere a un nodo superiore alla radice)',
 	'pfunc_expr_stack_exhausted' => "Errore nell'espressione: stack esaurito",
 	'pfunc_expr_unexpected_number' => "Errore nell'espressione: numero inatteso",
@@ -882,31 +2311,104 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argomento non valido per ln: <= 0',
 	'pfunc_expr_unknown_error' => "Errore nell'espressione: errore sconosciuto ($1)",
 	'pfunc_expr_not_a_number' => 'In $1: il risultato non è un numero',
+	'pfunc_string_too_long' => 'Errore: la stringa supera il limite di $1 {{PLURAL:$1|carattere|caratteri}}',
+	'pfunc-convert-unknownunit' => 'Errore: Unità sconosciuta "$1".',
+	'pfunc-convert-unknowndimension' => 'Errore: Dimensione sconosciuta "$1".',
+	'pfunc-convert-dimension-length' => 'lunghezza',
+	'pfunc-convert-dimension-area' => 'area',
+	'pfunc-convert-dimension-volume' => 'volume',
+	'pfunc-convert-dimension-time' => 'tempo',
+	'pfunc-convert-dimension-timesquared' => 'tempo<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'massa',
+	'pfunc-convert-dimension-speed' => 'velocità',
+	'pfunc-convert-dimension-temperature' => 'temperatura',
+	'pfunc-convert-dimension-acceleration' => 'accelerazione',
+	'pfunc-convert-dimension-force' => 'forza',
+	'pfunc-convert-dimension-torque' => 'coppia',
+	'pfunc-convert-dimension-energy' => 'energia',
+	'pfunc-convert-dimension-power' => 'potenza',
+	'pfunc-convert-dimension-pressure' => 'pressione',
+	'pfunc-convert-dimension-density' => 'densità',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-hecto' => 'etto',
+	'pfunc-convert-prefix-deca' => 'deca',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'milli',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yocto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3metro|$3metri}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|piede|piedi}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|pollice|pollici}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3anno luce|$3anni luce}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|secondo|secondi}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3anno|$3anni}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|giorno|giorni}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|ora|ore}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minuto|minuti}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|metro cubo|metri cubi}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|litro|litri}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-millibar' => '$1millibar',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|millimetro di mercurio|millimetri di mercurio}}',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
 );
 
 /** Japanese (日本語)
  * @author Aotake
+ * @author Fryed-peach
  * @author JtFuruhata
+ * @author Ohgi
+ * @author 青子守歌
  */
 $messages['ja'] = array(
 	'pfunc_desc' => 'パーサーに論理関数を追加して拡張する',
 	'pfunc_time_error' => 'エラー: 時刻が不正です',
 	'pfunc_time_too_long' => 'エラー: #time 呼び出しが多すぎます',
-	'pfunc_rel2abs_invalid_depth' => 'エラー: パス "$1" の階層が不正です(ルート階層からのアクセスをお試しください)',
+	'pfunc_time_too_big' => 'エラー: #timeは最大で9999年までです。',
+	'pfunc_rel2abs_invalid_depth' => 'エラー: パス "$1" の階層が不正です(ルート階層からのアクセスをお試しください)',
 	'pfunc_expr_stack_exhausted' => '構文エラー: スタックが空です',
 	'pfunc_expr_unexpected_number' => '構文エラー: 予期せぬ数字です',
 	'pfunc_expr_preg_match_failure' => '構文エラー: 予期せぬ形で preg_match に失敗しました',
 	'pfunc_expr_unrecognised_word' => '構文エラー: "$1" は認識できません',
 	'pfunc_expr_unexpected_operator' => '構文エラー: 予期せぬ演算子 $1 があります',
-	'pfunc_expr_missing_operand' => '構文エラー: $1 のオペランドがありません',
+	'pfunc_expr_missing_operand' => '構文エラー: $1 の演算対象がありません',
 	'pfunc_expr_unexpected_closing_bracket' => '構文エラー: 予期せぬ閉じ括弧です',
 	'pfunc_expr_unrecognised_punctuation' => '構文エラー: 認識できない区切り文字 "$1" があります',
 	'pfunc_expr_unclosed_bracket' => '構文エラー: 括弧が閉じられていません',
 	'pfunc_expr_division_by_zero' => '0で除算しました',
 	'pfunc_expr_invalid_argument' => '$1の引数が無効です: < -1 または > 1',
 	'pfunc_expr_invalid_argument_ln' => 'ln の引数が無効です: <= 0',
-	'pfunc_expr_unknown_error' => '構文エラー: 予期せぬエラー($1)',
+	'pfunc_expr_unknown_error' => '構文エラー: 予期せぬエラー($1)',
 	'pfunc_expr_not_a_number' => '$1: 結果が数字ではありません',
+	'pfunc_string_too_long' => 'エラー: 文字列が文字数制限 $1 を超えました',
 );
 
 /** Javanese (Basa Jawa)
@@ -933,6 +2435,19 @@
 	'pfunc_expr_not_a_number' => 'Ing $1: pituwasé dudu angka',
 );
 
+/** Georgian (ქართული)
+ * @author BRUTE
+ * @author Dawid Deutschland
+ */
+$messages['ka'] = array(
+	'pfunc_time_error' => 'შეცდომა: არასწორი დრო',
+	'pfunc_expr_division_by_zero' => 'გაყოფა ნულით',
+	'pfunc_expr_invalid_argument' => 'მცდარი არგუმენტი $1: < -1 ან > 1',
+	'pfunc_expr_invalid_argument_ln' => 'მცდარი არგუმენტი ln: <= 0',
+	'pfunc_expr_not_a_number' => '$1: შედექში ციფრი არაა',
+	'pfunc_string_too_long' => 'შეცდომა: სტრიქონის ზომა აღემატება $1 სიმბოლოს ლიმიტს',
+);
+
 /** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
 $messages['kk-arab'] = array(
 	'pfunc_time_error' => 'قاتە: جارامسىز ۋاقىت',
@@ -1002,28 +2517,44 @@
 );
 
 /** Korean (한국어)
+ * @author Klutzy
  * @author Kwj2772
  * @author ToePeu
+ * @author Yknok29
  */
 $messages['ko'] = array(
+	'pfunc_desc' => '파서에 논리 함수를 추가',
 	'pfunc_time_error' => '오류: 시간이 잘못되었습니다.',
 	'pfunc_time_too_long' => '오류: #time을 너무 많이 썼습니다.',
+	'pfunc_time_too_big' => '오류: #time 함수는 9999년까지만을 지원합니다.',
+	'pfunc_rel2abs_invalid_depth' => '오류: 경로 구조가 잘못되었습니다: "$1" (루트 노드 위의 노드에 접속을 시도했습니다)',
+	'pfunc_expr_stack_exhausted' => '표현 오류: 스택이 비어 있습니다.',
+	'pfunc_expr_unexpected_number' => '표현식 오류: 예상치 못한 값',
+	'pfunc_expr_preg_match_failure' => '표현식 오류: 예상치 못한 preg_match 오류',
+	'pfunc_expr_unrecognised_word' => '표현식 오류: 알 수 없는 단어 ‘$1’',
+	'pfunc_expr_unexpected_operator' => '표현 오류: 잘못된 $1 연산자',
 	'pfunc_expr_missing_operand' => '표현 오류: $1의 피연산자가 없습니다.',
 	'pfunc_expr_unexpected_closing_bracket' => '표현 오류: 예상치 못한 괄호 닫기',
+	'pfunc_expr_unrecognised_punctuation' => '표현 오류: 알 수 없는 문자 "$1"',
 	'pfunc_expr_unclosed_bracket' => '표현 오류: 괄호를 닫지 않았습니다.',
 	'pfunc_expr_division_by_zero' => '0으로 나눔',
+	'pfunc_expr_invalid_argument' => '$1 함수의 변수가 잘못되었습니다: < -1 또는 > 1',
+	'pfunc_expr_invalid_argument_ln' => '자연로그의 진수가 잘못되었습니다: <= 0',
 	'pfunc_expr_unknown_error' => '표현 오류: 알려지지 않은 오류 ($1)',
 	'pfunc_expr_not_a_number' => '$1: 결과가 숫자가 아닙니다.',
+	'pfunc_string_too_long' => '오류: $1자 제한을 초과하였습니다.',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
+ * @author Rentenirer
  */
 $messages['ksh'] = array(
 	'pfunc_desc' => 'Deit em Wiki Funxione för Entscheidunge un esu dobei.',
 	'pfunc_time_error' => 'Fähler: Onjöltijje Zick.',
 	'pfunc_time_too_long' => 'Fähler: <code>#time</code> weed zo öff jebruch.',
-	'pfunc_rel2abs_invalid_depth' => 'Fähler: Zo fill „retuur“ em Pad „$1“ — mer wöre för der Aanfang zeröck jejange.',
+	'pfunc_time_too_big' => 'Ene Fähleres opjefalle: <code lang="en">#time</code> kann bloß bes nohm Johr 9999 jonn.',
+	'pfunc_rel2abs_invalid_depth' => 'Fähler: Zo fill „retuur“ em Pahdt „$1“ — mer wöre wigger wi för der Aanfang zeröck jejange.',
 	'pfunc_expr_stack_exhausted' => 'Fähler en enem Ußdrock: Dä löht der <i lang="en">stack</i> övverloufe.',
 	'pfunc_expr_unexpected_number' => 'Fähler en enem Ußdrock: En Zahl dom_mer nit äwaade.',
 	'pfunc_expr_preg_match_failure' => 'Fähler en enem Ußdrock: Esu ene Fähler en „<i lang="en">preg_match</i>“ dum_mer nit äwade.',
@@ -1038,6 +2569,39 @@
 	'pfunc_expr_invalid_argument_ln' => 'Fähler: Dä Parrameeter för <code>ln</code> moß 0 udder kleiner wi 0 sin.',
 	'pfunc_expr_unknown_error' => 'Fähler en enem Ußdrock: Unbikannt ($1)',
 	'pfunc_expr_not_a_number' => 'Fähler en enem Ußdrock: En <code>$1</code> es dat wat erus kütt kein Zahl.',
+	'pfunc_string_too_long' => 'Fähler en enem Ußdrock: En Zeijshereih es länger wi $1 Zeijshe.',
+	'pfunc-convert-dimension-length' => 'Längemohß',
+	'pfunc-convert-dimension-area' => 'Flächemohß',
+	'pfunc-convert-dimension-volume' => 'Hohlmohß',
+	'pfunc-convert-dimension-time' => 'Ziggmohß',
+	'pfunc-convert-dimension-timesquared' => 'Zigg<sup>2</sup>-Mohß',
+	'pfunc-convert-dimension-mass' => 'Mohß för de  Mass',
+	'pfunc-convert-dimension-speed' => 'Jeschwendechkeit',
+	'pfunc-convert-dimension-pressure' => 'Drock',
+	'pfunc-convert-prefix-yotta' => 'Yotta',
+	'pfunc-convert-prefix-zetta' => 'Zetta',
+	'pfunc-convert-prefix-exa' => 'Exa',
+	'pfunc-convert-prefix-tera' => 'Tera',
+	'pfunc-convert-prefix-giga' => 'Giga',
+	'pfunc-convert-prefix-mega' => 'Mega',
+	'pfunc-convert-prefix-kilo' => 'Killo',
+	'pfunc-convert-prefix-hecto' => 'Häkto',
+	'pfunc-convert-prefix-deca' => 'Dekka',
+	'pfunc-convert-prefix-deci' => 'Dezi',
+	'pfunc-convert-prefix-centi' => 'Cänti',
+	'pfunc-convert-prefix-milli' => 'Milli',
+	'pfunc-convert-prefix-micro' => 'Mikro',
+	'pfunc-convert-prefix-nano' => 'Nanno',
+	'pfunc-convert-prefix-pico' => 'Picko',
+	'pfunc-convert-prefix-femto' => 'Fämto',
+	'pfunc-convert-prefix-atto' => 'Atto',
+	'pfunc-convert-prefix-zepto' => 'Zäpto',
+	'pfunc-convert-prefix-yocto' => 'Jokto',
+	'pfunc-convert-unit-length-metre' => '$1Meeter',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|Meil|Meile|Meile}}',
+	'pfunc-convert-unit-area-squarekilometre' => '$1Quadraatkillomeetere',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m²',
 );
 
 /** Luxembourgish (Lëtzebuergesch)
@@ -1047,16 +2611,61 @@
 	'pfunc_desc' => 'Erweidert Parser mat logesche Fonctiounen',
 	'pfunc_time_error' => 'Feeler: ongëlteg Zäit',
 	'pfunc_time_too_long' => 'Feeler: ze dacks #time opgeruff',
+	'pfunc_time_too_big' => 'Feeler: #time ënnerstëtzt nëmme Jore bis 9999',
+	'pfunc_expr_stack_exhausted' => 'Expressiouns-Feeler: Stack iwwergelaf',
 	'pfunc_expr_unexpected_number' => 'Expressiouns-Feeler: Onerwarten Zuel',
 	'pfunc_expr_unrecognised_word' => 'Expressiouns-Feeler: Onerkantent Wuert "$1"',
+	'pfunc_expr_unexpected_operator' => 'Expression-Feeler: Onerwarten Operateur: <tt>$1</tt>',
+	'pfunc_expr_missing_operand' => 'Expression-Feeler: Et feelt en Operand fir <tt>$1</tt>',
 	'pfunc_expr_unexpected_closing_bracket' => 'Expressiouns-Feeler: Onerwarte Klammer déi zougemaach gëtt',
-	'pfunc_expr_unrecognised_punctuation' => 'Expressiouns-Feeler: D\'Satzzeechen "$1" gouf net erkannt',
+	'pfunc_expr_unrecognised_punctuation' => 'Expressiouns-Feeler: D\'Sazzeechen "$1" gouf net erkannt',
 	'pfunc_expr_unclosed_bracket' => 'Expressiouns-Feeler: Eckeg Klammer net zougemaach',
 	'pfunc_expr_division_by_zero' => 'Divisioun duerch Null',
-	'pfunc_expr_invalid_argument' => 'Ongëlteg Wert fir $1: < -1 oder > 1',
-	'pfunc_expr_invalid_argument_ln' => 'Ongëltege Wert fir ln: <= 0',
+	'pfunc_expr_invalid_argument' => 'Ongültege Wäert fir $1: < -1 oder > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Ongültege Wäert fir ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Expression-Feeler: Onbekannte Feeler ($1)',
 	'pfunc_expr_not_a_number' => "An $1: D'Resultat ass keng Zuel",
+	'pfunc_string_too_long' => "Feeler: D'Zeecheketten ass méi laang wéi d'Limit vu(n) $1 Zeechen",
+	'pfunc-convert-dimensionmismatch' => 'Feeler: Et kann net vun der Eenheet "$1" an d\'Eenheet "$2" konvertéiert ginn',
+	'pfunc-convert-unknownunit' => 'Feeler: Onbekannten Eenheet "$1".',
+	'pfunc-convert-unknowndimension' => 'Feeler: Onbekannten Dimensioun "$1".',
+	'pfunc-convert-dimension-length' => 'Längt',
+	'pfunc-convert-dimension-area' => 'Fläch',
+	'pfunc-convert-dimension-volume' => 'Volume',
+	'pfunc-convert-dimension-time' => 'Zäit',
+	'pfunc-convert-dimension-mass' => 'Mass',
+	'pfunc-convert-dimension-speed' => 'Vitesse',
+	'pfunc-convert-dimension-temperature' => 'Temperatur',
+	'pfunc-convert-dimension-acceleration' => 'Beschleunegung',
+	'pfunc-convert-dimension-force' => 'Kraaft',
+	'pfunc-convert-dimension-torque' => 'Dréimoment',
+	'pfunc-convert-dimension-energy' => 'Energie',
+	'pfunc-convert-dimension-power' => 'Leeschtung',
+	'pfunc-convert-dimension-pressure' => 'Drock',
+	'pfunc-convert-dimension-density' => 'Densitéit',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|Meter|Meter}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|Meil|Meilen}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|Fouss|Féiss}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|nautesch Meil|nautesch Meilen}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3 Liichtjoer|$3 Liichtjoer}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomesch Eenheet|astronomesch Eenheeten}}',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|Quadratkilometer|Quadratkilometer}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|Quadratmeter|Quadratmeter}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|Quadratzentimeter|Quadratzentimeter}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|Quadratmillimeter|Quadratmillimeter}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|Hektar|Hektar}}',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|Sekonn|Sekonnen}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|Joer|Joer}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|Dag|Deeg}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|Stonn|Stonnen}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|Minutt|Minutten}}',
+	'pfunc-convert-unit-time-day-abbr' => '$1Dag',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|Kubikmeter|Kubikmeter}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|Fudder|Fudder}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|Liter|Liter}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|Milliliter|Milliliter}}',
+	'pfunc-convert-unit-speed-mile-hour' => '$1Meile pro Stonn',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|Atmosphäre|Atmosphären}}',
 );
 
 /** Limburgish (Limburgs)
@@ -1082,6 +2691,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ongeldige paramaeter veur ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Fout in oetdrukking: ónbekindje fout ($1)',
 	'pfunc_expr_not_a_number' => 'In $1: rezultaot is gein getal',
+	'pfunc_string_too_long' => 'Fout: De teks is lenger es de limiet van $1 {{PLURAL:$1|teike|teikes}}',
 );
 
 /** Lithuanian (Lietuvių)
@@ -1091,51 +2701,407 @@
 	'pfunc_time_error' => 'Klaida: neteisingas laikas',
 );
 
+/** Latvian (Latviešu)
+ * @author Papuass
+ */
+$messages['lv'] = array(
+	'pfunc_time_error' => 'Kļūda: nederīgs laiks',
+	'pfunc_time_too_long' => 'Kļūda: pārāk daudz #time izsaukumu',
+	'pfunc_expr_division_by_zero' => 'Dalīšana ar nulli',
+);
+
 /** Macedonian (Македонски)
+ * @author Bjankuloski06
  * @author Brest
  */
 $messages['mk'] = array(
-	'pfunc_desc' => 'Проширување на парсерот со логички функции',
-	'pfunc_time_error' => 'Грешка: погрешен фомат за време',
-	'pfunc_time_too_long' => 'Грешка: премногу #time повикувања',
-	'pfunc_rel2abs_invalid_depth' => 'Грешка: Невалидна длабочина во патеката: "$1" (обид за пристап до чвор над root чворот)',
-	'pfunc_expr_stack_exhausted' => 'Грешка во изразот: Стекот е преполн',
+	'pfunc_desc' => 'Проширување на можностите на парсерот со логички функции',
+	'pfunc_time_error' => 'Грешка: погрешен формат за време',
+	'pfunc_time_too_long' => 'Грешка: премногу повикувања на функцијата #time',
+	'pfunc_time_too_big' => 'Грешка: #time поддржува само години до 9999',
+	'pfunc_rel2abs_invalid_depth' => 'Грешка: Неважечка длабочина во патеката: „$1“ (обид за пристап до јазол кој се наоѓа повисоко од коренитиот)',
+	'pfunc_expr_stack_exhausted' => 'Грешка во изразот: Складот е преполн',
 	'pfunc_expr_unexpected_number' => 'Грешка во изразот: Неочекуван број',
-	'pfunc_expr_preg_match_failure' => 'Грешка во изразот: Неочекувана preg_match грешка',
-	'pfunc_expr_unrecognised_word' => 'Грешка во изразот: Непознат збор "$1"',
-	'pfunc_expr_unexpected_operator' => 'Грешка во изразот: Неочекуван $1 оператор',
-	'pfunc_expr_missing_operand' => 'Грешка во изразот: Недостасува оперант за $1',
+	'pfunc_expr_preg_match_failure' => 'Грешка во изразот: Неочекуван проблем со preg_match',
+	'pfunc_expr_unrecognised_word' => 'Грешка во изразот: Непрепознаен збор „$1“',
+	'pfunc_expr_unexpected_operator' => 'Грешка во изразот: Неочекуван оператор $1',
+	'pfunc_expr_missing_operand' => 'Грешка во изразот: Недостасува операнд за $1',
 	'pfunc_expr_unexpected_closing_bracket' => 'Грешка во изразот: Неочекувано затворање на заграда',
-	'pfunc_expr_unrecognised_punctuation' => 'Грешка во изразот: Непознат пункциски знак "$1"',
+	'pfunc_expr_unrecognised_punctuation' => 'Грешка во изразот: Непрепознаен интерпункциски знак „$1“',
 	'pfunc_expr_unclosed_bracket' => 'Грешка во изразот: Незатворена заграда',
 	'pfunc_expr_division_by_zero' => 'Делење со нула',
-	'pfunc_expr_invalid_argument' => 'Невалиден аргумент за $1: < -1 или > 1',
-	'pfunc_expr_invalid_argument_ln' => 'Невалиден аргумент за ln: <= 0',
+	'pfunc_expr_invalid_argument' => 'Неважечки аргумент за $1: < -1 или > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Неважечки аргумент за ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Грешка во изразот: Непозната грешка ($1)',
 	'pfunc_expr_not_a_number' => 'Во $1: резултатот не е број',
+	'pfunc_string_too_long' => 'Грешка: низата го надминува ограничувањето од $1 знаци',
+	'pfunc-convert-dimensionmismatch' => 'Грешка: претворањето од единицата „$1“ во единицата „$2“ е невозможно',
+	'pfunc-convert-unknownunit' => 'Грешка: непозната единица „$1“',
+	'pfunc-convert-unknowndimension' => 'Грешка: непозната димензија „$1“',
+	'pfunc-convert-invalidcompoundunit' => 'Грешка: неважечка мешовита единица „$1“',
+	'pfunc-convert-nounit' => 'Грешка: нема наведено изворна единица',
+	'pfunc-convert-doublecompoundunit' => 'Грешка: не можам да парсирам двојни мешовити единици како „$1“',
+	'pfunc-convert-dimension-length' => 'должина',
+	'pfunc-convert-dimension-area' => 'плоштина',
+	'pfunc-convert-dimension-volume' => 'волумен',
+	'pfunc-convert-dimension-time' => 'време',
+	'pfunc-convert-dimension-timesquared' => 'време<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'маса',
+	'pfunc-convert-dimension-speed' => 'брзина',
+	'pfunc-convert-dimension-temperature' => 'температура',
+	'pfunc-convert-dimension-acceleration' => 'забрзување',
+	'pfunc-convert-dimension-force' => 'сила',
+	'pfunc-convert-dimension-torque' => 'момент на сила',
+	'pfunc-convert-dimension-energy' => 'енергија',
+	'pfunc-convert-dimension-power' => 'моќ',
+	'pfunc-convert-dimension-pressure' => 'притисок',
+	'pfunc-convert-dimension-density' => 'густина',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'позитивна горивна ефикасност',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'негативна горивна ефикасност',
+	'pfunc-convert-prefix-yotta' => 'јота',
+	'pfunc-convert-prefix-zetta' => 'зета',
+	'pfunc-convert-prefix-exa' => 'екса',
+	'pfunc-convert-prefix-peta' => 'пета',
+	'pfunc-convert-prefix-tera' => 'тера',
+	'pfunc-convert-prefix-giga' => 'гига',
+	'pfunc-convert-prefix-mega' => 'мега',
+	'pfunc-convert-prefix-kilo' => 'кило',
+	'pfunc-convert-prefix-hecto' => 'хекто',
+	'pfunc-convert-prefix-deca' => 'дека',
+	'pfunc-convert-prefix-deci' => 'деци',
+	'pfunc-convert-prefix-centi' => 'санти',
+	'pfunc-convert-prefix-milli' => 'мили',
+	'pfunc-convert-prefix-micro' => 'микро',
+	'pfunc-convert-prefix-nano' => 'нано',
+	'pfunc-convert-prefix-pico' => 'пико',
+	'pfunc-convert-prefix-femto' => 'фемто',
+	'pfunc-convert-prefix-atto' => 'ато',
+	'pfunc-convert-prefix-zepto' => 'зепто',
+	'pfunc-convert-prefix-yocto' => 'јокто',
+	'pfunc-convert-prefix-yotta-abbr' => 'Ј',
+	'pfunc-convert-prefix-zetta-abbr' => 'З',
+	'pfunc-convert-prefix-exa-abbr' => 'Е',
+	'pfunc-convert-prefix-peta-abbr' => 'П',
+	'pfunc-convert-prefix-tera-abbr' => 'Т',
+	'pfunc-convert-prefix-giga-abbr' => 'Г',
+	'pfunc-convert-prefix-mega-abbr' => 'М',
+	'pfunc-convert-prefix-kilo-abbr' => 'к',
+	'pfunc-convert-prefix-hecto-abbr' => 'х',
+	'pfunc-convert-prefix-deca-abbr' => 'да',
+	'pfunc-convert-prefix-deci-abbr' => 'д',
+	'pfunc-convert-prefix-centi-abbr' => 'с',
+	'pfunc-convert-prefix-milli-abbr' => 'м',
+	'pfunc-convert-prefix-micro-abbr' => 'μ',
+	'pfunc-convert-prefix-nano-abbr' => 'н',
+	'pfunc-convert-prefix-pico-abbr' => 'п',
+	'pfunc-convert-prefix-femto-abbr' => 'ф',
+	'pfunc-convert-prefix-atto-abbr' => 'а',
+	'pfunc-convert-prefix-zepto-abbr' => 'з',
+	'pfunc-convert-prefix-yocto-abbr' => 'ј',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|метар|метри}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|ангстрем|ангстреми}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|милја|милји}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|фурлонг|фурлонзи}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|ланец|ланци}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|прачка|прачки}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|фатом|фатоми}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|јарда|јарди}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|стапка|стапки}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|дланка|дланки}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|инч|инчи}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|наутичка милја|наутички милји}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|наутичка милја (британска, пред 1970)|наутички милји (британска, пред 1970)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{PLURAL:$2|наутичка милја (американска, пред 1954)|наутички милји (американски, пред 1954)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3 парсек|$3 парсеци}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|светлосна година|светлосни години}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|астрономска единица|астрономски единици}}',
+	'pfunc-convert-unit-length-metre-abbr' => '$1$3 м',
+	'pfunc-convert-unit-length-mile-abbr' => '$1ми',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1фурлонг',
+	'pfunc-convert-unit-length-chain-abbr' => '$1ланец',
+	'pfunc-convert-unit-length-rod-abbr' => '$1пр',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1фатом',
+	'pfunc-convert-unit-length-yard-abbr' => '$1јд',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ст',
+	'pfunc-convert-unit-length-hand-abbr' => '$1дл',
+	'pfunc-convert-unit-length-inch-abbr' => '$1ин',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1нми',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1нми (брит)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1нми (амер. пред 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3 пс',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3 сг',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1ae',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|квадратен километар|квадратни километри}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|квадратен метар|квадратни метри}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|квадратен сантиметар|квадратни сантиметри}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|квадратен милиметар|квадратни милиметри}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|хектар|хектари}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|квадратна милја|квадратни милји}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|акр|акри}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|квадратна јарда|квадратни јарди}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|квадратна стапка|квадратни стапки}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|квадратен инч|квадратни инчи}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|квадратна наутичка милја|квадратни наутички милји}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|дунум|дунуми}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|цубо|цуба}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1км<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1м<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1см<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1мм<msup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ха',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1ми<sup>2</sup>',
+	'pfunc-convert-unit-area-acre-abbr' => '$1акр',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1јд<sup>2</sup>',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1ст<sup>2</sup>',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1ин<sup>2</sup>',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1нми<sup>2</sup>',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1дунум',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1цубо',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|секунда|секунди}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|година|години}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|ден|дена}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|час|часа}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|минута|минути}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1с',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3 г',
+	'pfunc-convert-unit-time-day-abbr' => '$1ден',
+	'pfunc-convert-unit-time-hour-abbr' => '$1ч',
+	'pfunc-convert-unit-time-minute-abbr' => '$1мин',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|кубен метар|кубни метри}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|кубен сантиметар|кубни сантиметри}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|кубен милиметар|кубни милиметри}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|килолитар|килолитри}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|литар|литри}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|центилитар|центилитри}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|милилитар|милилитри}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|кубна јарда|кубни јарди}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|кубна стапка|кубни стапки}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|кубен инч|кубни инчи}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|барел|барели}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|бушел|бушели}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|галон|галони}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|кварта|кварти}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|пинта|пинти}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|течна унца|течни унци}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|американски барел|американски барели}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|барел|барели}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|барел|барели}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|американски галон|американски галони}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|американска кварта|американски кварти}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|американска пинта|американски пинти}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|американска течна унца|американски течни унци}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|американски сув барел|американски суви барели}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|американски бушел|американски бушели}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|американски сув галон|американски суви галони}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|американска сува кварта|американски суви кварти}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|американска сува пинта|американски суви пинти}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1м<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1см<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1мм<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3 л',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1јд<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1ст<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1ин<sup>3</sup>',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1ббл',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1бш',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1гал',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1кт',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1пт',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1тч уц',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1ббл (САД)',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1ббл',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1ббл',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1гал (САД)',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1кт (САД)',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1пт (САД)',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1тч уц (САД)',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1ббл (САД)',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1бш (САД)',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1сув гал (САД)',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1сув кт (САД)',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1сув пт (САД)',
+	'pfunc-convert-unit-speed-mile-hour' => '$1милји на час',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1ми/ч',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|паскал|паскали}}',
+	'pfunc-convert-unit-pressure-bar' => '$1бар',
+	'pfunc-convert-unit-pressure-decibar' => '$1децибар',
+	'pfunc-convert-unit-pressure-millibar' => '$1милибар',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1килобарија',
+	'pfunc-convert-unit-pressure-barye' => '$1барија',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|атмосфера|атмосфери}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|тор|тора}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|милиметар живин столб|милиметри живин столб}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|инч живин столб|инчи живин столб}}',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|фунта на квадратен инч|фунти на квадратен инч}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3 Па',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1бар',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1дбар',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1мбар',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1кБа',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ба',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1атм',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1тор',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1ммHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1инHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'pfunc_desc' => 'ലോഗിക്കല്‍ ഫങ്ഷന്‍സ് ഉപയോഗിച്ച് പാര്‍സര്‍  എന്‍‌ഹാന്‍സ് ചെയ്യുക',
+	'pfunc_desc' => 'ലോജിക്കൽ ഫങ്ഷൻസ് ഉപയോഗിച്ച് പാർസർ വിപുലപ്പെടുത്തുക',
 	'pfunc_time_error' => 'പിഴവ്:അസാധുവായ സമയം',
-	'pfunc_time_too_long' => 'പിഴവ്: വളരെയധികം #സമയ കാളുകള്‍',
-	'pfunc_expr_unexpected_number' => 'Expression error: പ്രതീക്ഷിക്കാത്ത സംഖ്യ',
-	'pfunc_expr_unrecognised_word' => 'Expression error: "$1" എന്ന തിരിച്ചറിയാന്‍ സാധിക്കാഞ്ഞ വാക്ക്',
+	'pfunc_time_too_long' => 'പിഴവ്: വളരെയധികം #സമയ കാളുകൾ',
+	'pfunc_time_too_big' => 'പിഴവ്: 9999 വരെയുള്ള വർഷങ്ങൾ മാത്രമേ #time പിന്തുണയ്ക്കുന്നുള്ളു',
+	'pfunc_rel2abs_invalid_depth' => 'പിഴവ്: പഥത്തിൽ അസാധുവായ ആഴം: "$1" (റൂട്ട് തലത്തിനും മുകളിലുള്ള തലം എടുക്കാനുള്ള ശ്രമം)',
+	'pfunc_expr_stack_exhausted' => 'എക്സ്‌പ്രെഷൻ പിഴവ്: സ്റ്റാക്ക് പുറന്തള്ളിയിരിക്കുന്നു',
+	'pfunc_expr_unexpected_number' => 'പ്രയോഗരീതിയിൽ പിഴവ്: പ്രതീക്ഷിക്കാത്ത സംഖ്യ',
+	'pfunc_expr_preg_match_failure' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അപ്രതീക്ഷിതമായ preg_match പരാജയം',
+	'pfunc_expr_unrecognised_word' => 'പ്രയോഗരീതിയിൽ പിഴവ്: "$1" എന്ന തിരിച്ചറിയാൻ സാധിക്കാഞ്ഞ വാക്ക്',
+	'pfunc_expr_unexpected_operator' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അപ്രതീക്ഷിതമായ $1 ഓപ്പറേറ്റർ',
+	'pfunc_expr_missing_operand' => 'എക്സ്പ്രെഷൻ പിഴവ്: $1 എന്നതിനുള്ള പ്രവർത്തനഘടകം നൽകിയിട്ടില്ല',
+	'pfunc_expr_unexpected_closing_bracket' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അപ്രതീക്ഷിതമായി കോഷ്ഠകം അടച്ചിരിക്കുന്നു',
+	'pfunc_expr_unrecognised_punctuation' => 'പ്രയോഗരീതിയിൽ പിഴവ്: തിരിച്ചറിയാൻ കഴിയാത്ത വിരാമചിഹ്നം "$1"',
+	'pfunc_expr_unclosed_bracket' => 'പ്രയോഗരീതിയിൽ പിഴവ്: അടയ്ക്കാത്ത കോഷ്ഠകം',
 	'pfunc_expr_division_by_zero' => 'പൂജ്യം കൊണ്ടുള്ള ഹരണം',
-	'pfunc_expr_unknown_error' => 'Expression error: കാരണം അജ്ഞാതമായ പിഴവ് ($1)',
-	'pfunc_expr_not_a_number' => '$1ല്‍: ഫലം ഒരു സംഖ്യയല്ല',
+	'pfunc_expr_invalid_argument' => '$1:< -1 അല്ലെങ്കിൽ > 1 എന്നതിനു നൽകിയ അസാധുവായ ആർഗ്യുമെന്റ്',
+	'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 എന്നതിനു നൽകിയ അസാധുവായ ആർഗ്യുമെന്റ്',
+	'pfunc_expr_unknown_error' => 'പ്രയോഗരീതിയിൽ പിഴവ്: കാരണം അജ്ഞാതമായ പിഴവ് ($1)',
+	'pfunc_expr_not_a_number' => '$1-ൽ: ഫലം ഒരു സംഖ്യയല്ല',
+	'pfunc_string_too_long' => 'പിഴവ്: പദം ലിപികളുടെ പരിധിയായ $1 അതിലംഘിക്കുന്നു',
+	'pfunc-convert-dimensionmismatch' => 'പിഴവ്: "$1", "$2" എന്നീ ഏകകങ്ങൾ തമ്മിൽ പരിവർത്തിപ്പിക്കാനാവില്ല.',
+	'pfunc-convert-unknownunit' => 'പിഴവ്: അപരിചിതമായ ഏകകം "$1".',
+	'pfunc-convert-unknowndimension' => 'പിഴവ്: അപരിചിതമായ പരിമാണം "$1".',
+	'pfunc-convert-invalidcompoundunit' => 'പിഴവ്: അസാധുവായ സംയുക്ത ഏകകം "$1".',
+	'pfunc-convert-nounit' => 'പിഴവ്: സ്രോതസ്സ് ഏകകം നൽകിയിട്ടില്ല.',
+	'pfunc-convert-dimension-length' => 'നീളം',
+	'pfunc-convert-dimension-area' => 'വിസ്തീർണ്ണം',
+	'pfunc-convert-dimension-volume' => 'വ്യാപ്തം',
+	'pfunc-convert-dimension-time' => 'സമയം',
+	'pfunc-convert-dimension-timesquared' => 'സമയം<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'പിണ്ഡം',
+	'pfunc-convert-dimension-speed' => 'വേഗം',
+	'pfunc-convert-dimension-temperature' => 'താപനില',
+	'pfunc-convert-dimension-acceleration' => 'ത്വരണം',
+	'pfunc-convert-dimension-force' => 'ബലം',
+	'pfunc-convert-dimension-torque' => 'ടോർക്ക്',
+	'pfunc-convert-dimension-energy' => 'ഊർജ്ജം',
+	'pfunc-convert-dimension-power' => 'ശക്തി',
+	'pfunc-convert-dimension-pressure' => 'മർദ്ദം',
+	'pfunc-convert-dimension-density' => 'സാന്ദ്രത',
+	'pfunc-convert-prefix-yotta' => 'യോട്ട',
+	'pfunc-convert-prefix-zetta' => 'സീറ്റ',
+	'pfunc-convert-prefix-exa' => 'എക്സാ',
+	'pfunc-convert-prefix-peta' => 'പെറ്റാ',
+	'pfunc-convert-prefix-tera' => 'ടെറാ',
+	'pfunc-convert-prefix-giga' => 'ഗിഗാ',
+	'pfunc-convert-prefix-mega' => 'മെഗാ',
+	'pfunc-convert-prefix-kilo' => 'കിലോ',
+	'pfunc-convert-prefix-hecto' => 'ഹെക്ടോ',
+	'pfunc-convert-prefix-deca' => 'ഡെക്കാ',
+	'pfunc-convert-prefix-deci' => 'ഡെസി',
+	'pfunc-convert-prefix-centi' => 'സെന്റി',
+	'pfunc-convert-prefix-milli' => 'മില്ലി',
+	'pfunc-convert-prefix-micro' => 'മൈക്രോ',
+	'pfunc-convert-prefix-nano' => 'നാനോ',
+	'pfunc-convert-prefix-pico' => 'പൈകോ',
+	'pfunc-convert-prefix-femto' => 'ഫെംറ്റോ',
+	'pfunc-convert-prefix-atto' => 'അറ്റോ',
+	'pfunc-convert-prefix-zepto' => 'സെപ്റ്റോ',
+	'pfunc-convert-prefix-yocto' => 'യോക്റ്റോ',
+	'pfunc-convert-prefix-milli-abbr' => 'മി.',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3മീറ്റർ|$3 മീറ്ററുകൾ}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|ആംസ്ട്രോം|ആംസ്ട്രോം}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|മൈൽ|മൈൽ}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|ഗജം|ഗജം}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|അടി|അടി}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|ഇഞ്ച്|ഇഞ്ച്}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|നോട്ടിക്കൽ മൈൽ|നോട്ടിക്കൽ മൈൽ}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3പാർസെക്|$3പാർസെക്}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3പ്രകാശവർഷം|$3പ്രകാശവർഷങ്ങൾ}}',
+	'pfunc-convert-unit-length-yard-abbr' => '$1ഗജം',
+	'pfunc-convert-unit-length-foot-abbr' => '$1അടി',
+	'pfunc-convert-unit-length-inch-abbr' => '$1ഇഞ്ച്',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3പാ.സെ.',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3പ്ര.വ.',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|ചതുരശ്ര കിലോമീറ്റർ|ചതുരശ്ര കിലോമീറ്റർ}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|ചതുരശ്ര മീറ്റർ|ചതുരശ്ര മീറ്റർ}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|ചതുരശ്ര സെന്റീമീറ്റർ|ചതുരശ്ര സെന്റീമീറ്റർ}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|ചതുരശ്ര മില്ലിമീറ്റർ|ചതുരശ്ര മില്ലിമീറ്റർ}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|ഹെക്ടർ|ഹെക്ടർ}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|ചതുരശ്ര മൈൽ|ചതുരശ്ര മൈൽ}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|ഏക്കർ|ഏക്കർ}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|ചതുരശ്ര ഗജം|ചതുരശ്ര ഗജം}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|ചതുരശ്ര അടി|ചതുരശ്ര അടി}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|ചതുരശ്ര ഇഞ്ച്|ചതുരശ്ര ഇഞ്ച്}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|ചതുരശ്ര നോട്ടിക്കൽ മൈൽ|ചതുരശ്ര നോട്ടിക്കൽ മൈൽ}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1കി.മീ.<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1മീ.<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1സെ.മീ.<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1മി.മീ.<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ഹെ.',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1ചതു.മൈൽ',
+	'pfunc-convert-unit-area-acre-abbr' => '$1ഏക്കർ',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1ചതു.വാര',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1ചതു.അടി',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1ചതു.ഇഞ്ച്',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|സെക്കന്റ്|സെക്കന്റ്}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|ഒരു വർഷം|$3 വർഷം}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|ദിവസം|ദിവസം}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|മണിക്കൂർ|മണിക്കൂർ}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|മിനിറ്റ്|മിനിറ്റ്}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1സെ.',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3വർഷം',
+	'pfunc-convert-unit-time-day-abbr' => '$1ദിവസം',
+	'pfunc-convert-unit-time-hour-abbr' => '$1മണി.',
+	'pfunc-convert-unit-time-minute-abbr' => '$1മിനി.',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|ഘന മീറ്റർ|ഘന മീറ്റർ}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|ഘന സെന്റീമീറ്റർ|ഘന സെന്റീമീറ്റർ}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|ഘന മില്ലീമീറ്റർ|ഘന മില്ലീമീറ്റർ}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|കിലോലിറ്റർ|കിലോലിറ്റർ}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|ലിറ്റർ|ലിറ്റർ}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|സെന്റിലിറ്റർ|സെന്റിലിറ്റർ}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|മില്ലിലിറ്റർ|മില്ലിലിറ്റർ}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|ഘന ഗജം|ഘന ഗജം}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|ഘന അടി|ഘന അടി}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|ഘന ഇഞ്ച്|ഘന ഇഞ്ച്}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|ബാരൽ|ബാരൽ}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|ബാരൽ|ബാരൽ}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|ബാരൽ|ബാരൽ}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1മീ.<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1സെ.മീ.<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1മി.മീ.<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3ലി.',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1ഘന ഗജം',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1ഘ. അടി.',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1ഘ. ഇഞ്ച്.',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1ബാരൽ',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1ഗാലൺ',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1ബാരൽ',
+	'pfunc-convert-unit-speed-mile-hour' => '$1മൈൽ/മണിക്കൂർ',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1മൈ./മണി.',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3പാസ്കൽ|$3പാസ്കൽ}}',
+	'pfunc-convert-unit-pressure-bar' => '$1ബാർ',
+	'pfunc-convert-unit-pressure-decibar' => '$1ഡെസിബാർ',
+	'pfunc-convert-unit-pressure-millibar' => '$1മില്ലിബാർ',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|രസം മില്ലിമീറ്ററിൽ|രസം മില്ലിമീറ്ററിൽ}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|രസം ഇഞ്ചിൽ|രസം ഇഞ്ചിൽ}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3പാസ്ക.',
 );
 
 /** Marathi (मराठी)
+ * @author Htt
  * @author Kaustubh
  */
 $messages['mr'] = array(
 	'pfunc_desc' => 'तार्किक कार्ये वापरून पार्सर वाढवा',
 	'pfunc_time_error' => 'त्रुटी: चुकीचा वेळ',
 	'pfunc_time_too_long' => 'त्रुटी: खूप जास्त #time कॉल्स',
+	'pfunc_time_too_big' => 'चूक: #वेळ फक्त ९९९९ सालापर्यंतच्या वर्षांना समर्थन देते',
 	'pfunc_rel2abs_invalid_depth' => 'त्रुटी: मार्गामध्ये चुकीची गहनता: "$1" (रूट नोडच्या वरील नोड शोधायचा प्रयत्न केला)',
 	'pfunc_expr_stack_exhausted' => 'एक्स्प्रेशन त्रुटी: स्टॅक संपला',
 	'pfunc_expr_unexpected_number' => 'एक्स्प्रेशन त्रुटी: अनपेक्षित क्रमांक',
@@ -1154,6 +3120,8 @@
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
  * @author Aviator
  * @author Kurniasan
  */
@@ -1161,6 +3129,7 @@
 	'pfunc_desc' => 'Meningkatkan penghurai dengan fungsi-fungsi logik',
 	'pfunc_time_error' => 'Ralat: waktu tidak sah',
 	'pfunc_time_too_long' => 'Ralat: terlalu banyak panggilan #time',
+	'pfunc_time_too_big' => 'Ralat: #time hanya menyokong tahun sehingga 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Ralat: Kedalaman tidak sah dalam laluan: "$1" (cubaan mencapai nod di atas nod induk)',
 	'pfunc_expr_stack_exhausted' => 'Ralat ungkapan: Tindanan tuntas',
 	'pfunc_expr_unexpected_number' => 'Ralat ungkapan: Nombor tidak dijangka',
@@ -1176,6 +3145,197 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumen bagi ln tidak sah: <= 0',
 	'pfunc_expr_unknown_error' => 'Ralat ungkapan: Ralat tidak diketahui ($1)',
 	'pfunc_expr_not_a_number' => 'Dalam $1: hasil bukan nombor',
+	'pfunc_string_too_long' => 'Ralat: Rentetan melampaui batas aksara $1',
+	'pfunc-convert-dimensionmismatch' => 'Ralat: Tidak boleh menukar antara unit-unit "$1" dan "$2".',
+	'pfunc-convert-unknownunit' => 'Ralat: Unit "$1" tidak dikenali.',
+	'pfunc-convert-unknowndimension' => 'Ralat: Matra "$1" tidak dikenali.',
+	'pfunc-convert-invalidcompoundunit' => 'Ralat: Unit majmuk "$1" tidak sah.',
+	'pfunc-convert-nounit' => 'Ralat: Tiada unit sumber yang diberikan.',
+	'pfunc-convert-doublecompoundunit' => 'Ralat: Unit majmuk berganda seperti "$1" tidak boleh dihuraikan.',
+	'pfunc-convert-dimension-length' => 'panjang',
+	'pfunc-convert-dimension-area' => 'luas',
+	'pfunc-convert-dimension-volume' => 'isipadu',
+	'pfunc-convert-dimension-time' => 'masa',
+	'pfunc-convert-dimension-timesquared' => 'masa<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'jisim',
+	'pfunc-convert-dimension-speed' => 'kelajuan',
+	'pfunc-convert-dimension-temperature' => 'suhu',
+	'pfunc-convert-dimension-acceleration' => 'pecutan',
+	'pfunc-convert-dimension-force' => 'daya',
+	'pfunc-convert-dimension-torque' => 'tork',
+	'pfunc-convert-dimension-energy' => 'tenaga',
+	'pfunc-convert-dimension-power' => 'kuasa',
+	'pfunc-convert-dimension-pressure' => 'tekanan',
+	'pfunc-convert-dimension-density' => 'ketumpatan',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'kecekapanbahanapipositif',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'kecekapanbahanapinegatif',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'eksa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hekto',
+	'pfunc-convert-prefix-deca' => 'deka',
+	'pfunc-convert-prefix-deci' => 'desi',
+	'pfunc-convert-prefix-centi' => 'senti',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'mikro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'piko',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yokto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3meter|$3meter}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angstrom|angstrom}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|batu|batu}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlong}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|rantai|rantai}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|pol|pol}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|fatom|fatom}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|ela|ela}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|kaki|kaki}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|tangan|tangan}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|inci|inci}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|batu nautika|batu nautika}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|batu nautika (British pra-1970)|batu nautika (British pra-1970)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|batu nautika (AS pra-1954)|batu nautika (AS pra-1954)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsek|$3parsek}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3tahun cahaya|$3tahun cahaya}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|unit astronomi|unit astronomi}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1rantai',
+	'pfunc-convert-unit-length-rod-abbr' => '$1pol',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1fatom',
+	'pfunc-convert-unit-length-yard-abbr' => '$1ela',
+	'pfunc-convert-unit-length-foot-abbr' => '$1kaki',
+	'pfunc-convert-unit-length-hand-abbr' => '$1tgn',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1batu n',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1batu n (Brit)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1batu n (AS pra-1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3tc',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1AU',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|kilometer persegi|kilometer persegi}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|meter persegi|meter persegi}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|sentimeter persegi|sentimeter persegi}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|milimeter persegi|milimeter persegi}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hektar|hektar}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|batu persegi|batu persegi}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|ekar|ekar}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|ela persegi|ela persegi}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|kaki persegi|kaki persegi}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|inci persegi|inci persegi}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|batu nautika persegi|batu nautika persegi}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunam}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsubo}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1batu<sup>2</sup>',
+	'pfunc-convert-unit-area-acre-abbr' => '$1ekar',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1ela<sup>2</sup>',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1kaki<sup>2</sup>',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1inci<sup>2</sup>',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1batu n<sup>2</sup>',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL: $2|saat|saat}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL: $2|$3tahun|$3tahun}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|hari|hari}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|jam|jam}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minit|minit}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3thn',
+	'pfunc-convert-unit-time-day-abbr' => '$1hari',
+	'pfunc-convert-unit-time-hour-abbr' => '$1jam',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|meter padu|meter padu}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|sentimeter padu|sentimeter padu}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|milimeter padu|milimeter padu}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|kilolite|kiloliter}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|liter|liter}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|sentiliter|sentiliter}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|mililiter|mililiter}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|ela padu|ela padu}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|kaki padu|kaki padu}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|inci padu|inci padu}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|tong|tong}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|busyel|busyel}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|gelen|gelen}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|kuart|kuart}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|pain|pain}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|auns bendalir|auns bendalir}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|tong AS|tong AS}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|tong|tong}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|tong|tong}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|gelen AS|gelen AS}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|kuart AS|kuart AS}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|pain AS|pain AS}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|auns bendalir AS|auns bendalir AS}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|tong kering AS|tong kering AS}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|busyel AS|busyel AS}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|gelen kering AS|gelen kering AS}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|kuart kering AS|kuart kering AS}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|pain kering AS|pain kering AS}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3l',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1ela<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1kaki<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1inci<sup>3</sup>',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1tong',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1bsh',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1qt',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1pt',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1fl oz',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1tong AS',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1tong',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1tong',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1gal AS',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1qt AS',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1pt AS',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1fl oz AS',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1tong AS',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1bsh AS',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1gal kering AS',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1qt kering AS',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1pt kering AS',
+	'pfunc-convert-unit-speed-mile-hour' => '$1batu sejam',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1bsj',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3pascal|$3pascal}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1desibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1milibar',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilobarye',
+	'pfunc-convert-unit-pressure-barye' => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosfera|atmosfera}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|Torr|Torr}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|milimeter raksa|milimeter raksa}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|inci raksa|inci raksa}}',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|paun seinci persegi|paun seinci persegi}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Erzya (Эрзянь)
@@ -1183,6 +3343,8 @@
  */
 $messages['myv'] = array(
 	'pfunc_time_error' => 'Ильведевксэсь: амаштовикс шкась',
+	'pfunc_expr_stack_exhausted' => 'Ёвтавкссонть ильведевкс: стекесь тыц пешксе',
+	'pfunc_expr_division_by_zero' => 'Нольсэ йавома',
 );
 
 /** Nahuatl (Nāhuatl)
@@ -1231,6 +3393,7 @@
 	'pfunc_desc' => 'Verrijkt de parser met logische functies',
 	'pfunc_time_error' => 'Fout: ongeldige tijd',
 	'pfunc_time_too_long' => 'Fout: #time te vaak aangeroepen',
+	'pfunc_time_too_big' => 'Fout: #time ondersteunt jaren tot maximaal 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Fout: ongeldige diepte in pad: "$1" (probeerde een node boven de stamnode aan te roepen)',
 	'pfunc_expr_stack_exhausted' => 'Fout in uitdrukking: stack uitgeput',
 	'pfunc_expr_unexpected_number' => 'Fout in uitdrukking: onverwacht getal',
@@ -1246,11 +3409,203 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ongeldige parameter voor ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Fout in uitdrukking: onbekende fout ($1)',
 	'pfunc_expr_not_a_number' => 'In $1: resultaat is geen getal',
+	'pfunc_string_too_long' => 'Fout: De tekst is langer dan de limiet van $1 {{PLURAL:$1|karakter|karakters}}',
+	'pfunc-convert-dimensionmismatch' => 'Fout: het is niet mogelijk te converteren tussen de eenheden van "$1" en "$2".',
+	'pfunc-convert-unknownunit' => 'Fout: onbekende eenheid "$1".',
+	'pfunc-convert-unknowndimension' => 'Fout: Onbekende afmeting "$1".',
+	'pfunc-convert-invalidcompoundunit' => 'Fout: Ongeldige samengestelde eenheid "$1".',
+	'pfunc-convert-nounit' => 'Fout: Geen broneenheid opgegeven.',
+	'pfunc-convert-doublecompoundunit' => 'Fout: het is niet mogelijk samengestelde eenheden zoals "$1" te verwerken.',
+	'pfunc-convert-dimension-length' => 'lengte',
+	'pfunc-convert-dimension-area' => 'oppervlakte',
+	'pfunc-convert-dimension-volume' => 'inhoud',
+	'pfunc-convert-dimension-time' => 'tijd',
+	'pfunc-convert-dimension-timesquared' => 'tijd<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'massa',
+	'pfunc-convert-dimension-speed' => 'snelheid',
+	'pfunc-convert-dimension-temperature' => 'temperatuur',
+	'pfunc-convert-dimension-acceleration' => 'versnelling',
+	'pfunc-convert-dimension-force' => 'kracht',
+	'pfunc-convert-dimension-torque' => 'koppel',
+	'pfunc-convert-dimension-energy' => 'energie',
+	'pfunc-convert-dimension-power' => 'vermogen',
+	'pfunc-convert-dimension-pressure' => 'druk',
+	'pfunc-convert-dimension-density' => 'dichtheid',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'brandstofefficientiepositief',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'brandstofefficientienegatief',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hecto',
+	'pfunc-convert-prefix-deca' => 'deca',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'milli',
+	'pfunc-convert-prefix-micro' => 'micro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'pico',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yocto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|meter|meter}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angstrom|angstrom}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|mijl|mijl}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlong}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|chain|chains}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|roede|roede}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|vadem|vadem}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|yard|yards}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|voet|voet}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|hand|handen}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|inch|inches}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|nautische mijl|nautische mijlen}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|nautische mijl (Brits, voor 1970)|nautische mijlen (Brits, voor 1970)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|nautische mijl (VS, voor 1954)|nautische mijlen (VS, voor 1954)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3 parsec|$3 parsecs}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3 lichtjaar|$3 lichtjaren}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomische eenheid|astronomische eenheden}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1chain',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1fath',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1NM',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1MN (Brits)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1MN (VS voor 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3lj',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1AE',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|vierkante kilometer|vierkante kilometer}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|vierkante meter|vierkante meter}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|vierkante centimeter|vierkante centimeter}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|vierkante millimeter|vierkante millimeter}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hectare|hectare}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|vierkante mijl|vierkante mijl}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|acre|acres}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|vierkante yard|vierkante yards}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|voerkante foot|vierkante foot}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|vierkante inch|vierkante inches}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|vierkante nautische mijl|vierkante nautische mijlen}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunams}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsubo}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1sq mi',
+	'pfunc-convert-unit-area-acre-abbr' => '$1acre',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1sq yd',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1sq ft',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1sq in',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1vierkante mijl',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|seconde|seconden}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3jaar|$3jaren}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|dag|dagen}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|uur|uur}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minuut|minuten}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1sec.',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3jaar',
+	'pfunc-convert-unit-time-day-abbr' => '$1dag',
+	'pfunc-convert-unit-time-hour-abbr' => '$1uur',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2| kubieke meter|kubieke meter}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|kubieke centimeter|kubieke centimeter}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|kubieke millimeter|kubieke millimeter}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|kiloliter|kiloliter}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|liter|liter}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|centiliters|centiliter}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|milliliter|milliliter}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|kubieke yard|kubieke yard}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|kubieke voet|kubieke voet}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|kubieke inch|kubieke inch}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|vat|vaten}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|bushel|bushels}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|gallon|gallon}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|quart|quart}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|pint|pints}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|fluid ounce|fluid ounces}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|VS-vat|VS-vaten}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|vat|vaten}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|vat|vaten}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|VS-gallon|VS-gallon}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|VS-quart|VS-quart}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|VS-pint|VS-pints}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|VS-fluid ounce|VS-fluid ounces}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|VS-droog vat|VS-droge vaten}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|VS-bushel|VS-bushels}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|VS-droge gallon|VS-droge gallon}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|VS-droge quart|VS-droge quart}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|VS-droge pint|VS-droge pints}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1l',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1yd<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1ft<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1in<sup>3</sup>',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1bsh',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1qt',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1pt',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1fl.oz.',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1VS bbl',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1VS gal',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1VS qt',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1VS pt',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1VS fl.oz.',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1VS bbl',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1VS bsh',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1VS drg.gal',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1VS drg.qt',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1VS drg.pt',
+	'pfunc-convert-unit-speed-mile-hour' => '$1mijl per uur',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1mpu',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3pascal|$3pascal}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1decibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1millibar',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilobarn',
+	'pfunc-convert-unit-pressure-barye' => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosfeer|atmosfeer}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|Torr|Torr}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|millimeter kwik|millimeter kwik}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|duim kwik|duimen kwik}}',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|pond per vierkante inch|pond per vierkante inch}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
  * @author Eirik
  * @author Frokor
+ * @author Gunnernett
  * @author Harald Khan
  */
 $messages['nn'] = array(
@@ -1272,15 +3627,19 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ugyldig argument for ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Feil i uttrykket: Ukjend feil ($1)',
 	'pfunc_expr_not_a_number' => 'Resultatet i $1 er ikkje eit tal',
+	'pfunc_string_too_long' => 'Feil: Strengen går over grensa på $1 teikn',
 );
 
 /** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Event
  * @author Jon Harald Søby
+ * @author Laaknor
  */
-$messages['no'] = array(
+$messages['nb'] = array(
 	'pfunc_desc' => 'Utvid parser med logiske funksjoner',
 	'pfunc_time_error' => 'Feil: ugyldig tid',
 	'pfunc_time_too_long' => 'Feil: #time brukt for mange ganger',
+	'pfunc_time_too_big' => 'Feil: #time støtter kun år opp til 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Feil: Ugyldig dybde i sti: «$1» (prøvde å få tilgang til en node over rotnoden)',
 	'pfunc_expr_stack_exhausted' => 'Uttrykksfeil: Stakk utbrukt',
 	'pfunc_expr_unexpected_number' => 'Uttrykksfeil: Uventet nummer',
@@ -1296,6 +3655,13 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ugyldig argument for ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Uttrykksfeil: Ukjent feil ($1)',
 	'pfunc_expr_not_a_number' => 'I $1: resultat er ikke et tall',
+	'pfunc_string_too_long' => 'Feil: Strengen går over grensen på $1 tegn',
+	'pfunc-convert-unit-pressure-bar' => 'bar',
+	'pfunc-convert-unit-pressure-decibar' => 'decibar',
+	'pfunc-convert-unit-pressure-millibar' => 'millibar',
+	'pfunc-convert-unit-pressure-atmosphere' => '{{PLURAL:$1|atmosfære|atmosfærer}',
+	'pfunc-convert-unit-pressure-torr' => '{{PLURAL:$1|Torr|Torr}}',
+	'pfunc-convert-unit-pressure-mmhg' => '{{PLURAL:$1|mmHg|mmHg}}',
 );
 
 /** Occitan (Occitan)
@@ -1310,7 +3676,7 @@
 	'pfunc_expr_unexpected_number' => 'Expression erronèa : nombre pas esperat',
 	'pfunc_expr_preg_match_failure' => 'Expression erronèa : una expression pas compresa a pas capitat',
 	'pfunc_expr_unrecognised_word' => "Error d'expression : lo mot '''$1''' es pas reconegut",
-	'pfunc_expr_unexpected_operator' => "Error d'expression : l'operator '''$1''' es pas reconegut",
+	'pfunc_expr_unexpected_operator' => "Error d'expression : l'operador '''$1''' es pas reconegut",
 	'pfunc_expr_missing_operand' => "Error d'expression : l'operanda '''$1''' es pas reconeguda",
 	'pfunc_expr_unexpected_closing_bracket' => "Error d'expression : parentèsi tampanta pas prevista",
 	'pfunc_expr_unrecognised_punctuation' => "Error d'expression : caractèr de ponctuacion « $1 » pas reconegut",
@@ -1320,17 +3686,21 @@
 	'pfunc_expr_invalid_argument_ln' => 'Valor incorrècta per ln : ≤ 0',
 	'pfunc_expr_unknown_error' => "Error d'expression : error desconeguda ($1)",
 	'pfunc_expr_not_a_number' => 'Dins $1 : lo resultat es pas un nombre',
+	'pfunc_string_too_long' => 'Error : La cadena depassa lo limit maximal de $1 caractèr{{PLURAL:$1||s}}',
 );
 
 /** Polish (Polski)
  * @author Derbeth
+ * @author Grzechooo
  * @author Sp5uhe
+ * @author Woytecr
  */
 $messages['pl'] = array(
 	'pfunc_desc' => 'Rozszerza analizator składni o funkcje logiczne',
 	'pfunc_time_error' => 'Błąd – niepoprawny czas',
 	'pfunc_time_too_long' => 'Błąd – zbyt wiele wywołań funkcji #time',
-	'pfunc_rel2abs_invalid_depth' => 'Błąd – nieprawidłowa głębokość w ścieżce: „$1” (próba dostępu do węzła powyżej korzenia)',
+	'pfunc_time_too_big' => 'Błąd – rok w #time nie może być większy niż 9999',
+	'pfunc_rel2abs_invalid_depth' => 'Błąd – nieprawidłowa głębokość w ścieżce „$1” (próba dostępu do węzła powyżej korzenia)',
 	'pfunc_expr_stack_exhausted' => 'Błąd w wyrażeniu – stos wyczerpany',
 	'pfunc_expr_unexpected_number' => 'Błąd w wyrażeniu – nieoczekiwana liczba',
 	'pfunc_expr_preg_match_failure' => 'Błąd w wyrażeniu – nieoczekiwany błąd preg_match',
@@ -1344,32 +3714,322 @@
 	'pfunc_expr_invalid_argument' => 'Nieprawidłowy argument funkcji $1 – mniejszy od -1 lub większy od 1',
 	'pfunc_expr_invalid_argument_ln' => 'Nieprawidłowy argument funkcji ln – mniejszy lub równy 0',
 	'pfunc_expr_unknown_error' => 'Błąd w wyrażeniu – nieznany błąd ($1)',
-	'pfunc_expr_not_a_number' => 'W $1: wynik nie jest liczbą',
+	'pfunc_expr_not_a_number' => 'W $1 – wynik nie jest liczbą',
+	'pfunc_string_too_long' => 'Błąd – długość ciągu znaków przekracza dopuszczalne $1',
+	'pfunc-convert-dimensionmismatch' => 'Błąd – nie można konwertować pomiędzy jednostkami „$1” i „$2”',
+	'pfunc-convert-unknownunit' => 'Błąd – nieznana jednostka „$1”',
+	'pfunc-convert-unknowndimension' => 'Błąd – nieznana jednostka „$1”',
+	'pfunc-convert-invalidcompoundunit' => 'Błąd – nieprawidłowa jednostka złożona „$1”',
+	'pfunc-convert-nounit' => 'Błąd – brak jednostki źródłowej',
+	'pfunc-convert-doublecompoundunit' => 'Błąd – nie można przetworzyć jednostki podwójnie złożonej jak „$1”',
+	'pfunc-convert-dimension-length' => 'długość',
+	'pfunc-convert-dimension-area' => 'powierzchnia',
+	'pfunc-convert-dimension-volume' => 'objętość',
+	'pfunc-convert-dimension-time' => 'czas',
+	'pfunc-convert-dimension-timesquared' => 'czas<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'masa',
+	'pfunc-convert-dimension-speed' => 'prędkość',
+	'pfunc-convert-dimension-temperature' => 'temperatura',
+	'pfunc-convert-dimension-acceleration' => 'przyspieszenie',
+	'pfunc-convert-dimension-force' => 'siła',
+	'pfunc-convert-dimension-torque' => 'moment obrotowy',
+	'pfunc-convert-dimension-energy' => 'energia',
+	'pfunc-convert-dimension-power' => 'moc',
+	'pfunc-convert-dimension-pressure' => 'ciśnienie',
+	'pfunc-convert-dimension-density' => 'gęstość',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'bezwzględne zużycie paliwa',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'nieprawidłowe zużycie paliwa',
+	'pfunc-convert-prefix-yotta' => 'jotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'eksa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hekto',
+	'pfunc-convert-prefix-deca' => 'deka',
+	'pfunc-convert-prefix-deci' => 'decy',
+	'pfunc-convert-prefix-centi' => 'centy',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'mikro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'piko',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'jokto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3 metr|$3 metry|$3 metrów}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angstrem|angstremy|angstremów}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|mila|mile|mil}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlongi|furlongów}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|łańcuch|łańcuchy|łańcuchów}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|pręt|pręty|prętów}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|sążeń|sążnie|sążni}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|jard|jardy|jardów}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|stopa|stopy|stóp}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|dłoń|dłonie|dłoni}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|cal|cale|cali}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|mila morska|mile morskie|mil morskich}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|mila morska brytyjska|mile morskie brytyjskie|mil morskich brytyjskich}} sprzed 1970 roku',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|mila morska amerykańska|mile morskie amerykańskie|mil morskich amerykańskich}} sprzed 1954 roku',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3 parsek|$3 parseki|$3 parseków}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3 rok świetlny|$3 lata świetlne|$3 lat świetlnych}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|jednostka astronomiczna|jednostki astronomiczne|jednostek astronomicznych}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1łańcuch',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1sążeń',
+	'pfunc-convert-unit-length-yard-abbr' => '$1jard',
+	'pfunc-convert-unit-length-foot-abbr' => '$1stopa',
+	'pfunc-convert-unit-length-hand-abbr' => '$1dłoń',
+	'pfunc-convert-unit-length-inch-abbr' => '$1cal',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1INM',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1angielska mila morska',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1amerykańska mila morska sprzed 1954 roku',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3 pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3 lat świetlnych',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1j.a.',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|kilometr kwadratowy|kilometry kwadratowe|kilometrów kwadratowych}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|metr kwadratowy|metry kwadratowe|metrów kwadratowych}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|centymetr kwadratowy|centymetry kwadratowe|centymetrów kwadratowych}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|milimetr kwadratowy|milimetry kwadratowe|milimetrów kwadratowych}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hektar|hektary|hektarów}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|mila kwadratowa|mile kwadratowe|mil kwadratowych}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|akr|akry|akrów}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|jard kwadratowy|jardy kwadratowe|jardów kwadratowych}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|stopa kwadratowa|stopy kwadratowe|stóp kwadratowych}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|cal kwadratowy|cale kwadratowe|cali kwadratowych}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|mila morska kwadratowa|mile morskie kwadratowe|mil morskich kwadratowych}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunamy|dunamów}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsubo|tsubo}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1mila<sup>2</sup>',
+	'pfunc-convert-unit-area-acre-abbr' => '$1akr',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1jard<sup>2</sup>',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1stopa<sup>2</sup>',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1cal<sup>2</sup>',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1mila morska<sup>2</sup>',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|sekunda|sekundy|sekund}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3 rok|$3 lata|$3 lat}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|dzień|dni}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|godzina|godziny|godzin}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minuta|minuty|minut}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3 jard',
+	'pfunc-convert-unit-time-day-abbr' => '$1doba',
+	'pfunc-convert-unit-time-hour-abbr' => '$1h',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|metr sześcienny|metry sześcienne|metrów sześciennych}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|centymetr sześcienny|centymetry sześcienne|centymetrów sześciennych}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|milimetr sześcienny|milimetry sześcienne|milimetrów sześciennych}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|tysiąc litrów|tysiące litrów|tysięcy litrów}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|litr|litry|litrów}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|dziesiąta część|dziesiąte części|dziesiątych części}} litra',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|mililitr|mililitry|mililitrów}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|jard|jardów}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3 l',
+	'pfunc-convert-unit-speed-mile-hour' => '$1mil na godzinę',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3paskal|$3paskali}}',
+	'pfunc-convert-unit-pressure-bar' => '$1barów',
+	'pfunc-convert-unit-pressure-decibar' => '$1decybarów',
+	'pfunc-convert-unit-pressure-millibar' => '$1millibarów',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilobarów',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosfera|atmosfer}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|milimtr słupka rtęci|milimetrów słupka rtęci}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|cal słupka rtęci|cali słupka rtęci}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar.',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
 );
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
+	'pfunc_desc' => 'Mijora ël parse con funsion lògiche',
 	'pfunc_time_error' => 'Eror: temp nen bon',
 	'pfunc_time_too_long' => 'Eror: #time a ven ciamà tròpe vire',
+	'pfunc_time_too_big' => 'Eror: #time a përmëtt mach agn fin al 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Eror: profondità nen bon-a ant ël përcors: "$1" (a l\'é provasse a ciamé un grop dzora a la rèis)',
+	'pfunc_expr_stack_exhausted' => "Eror ëd l'espression: stach esaurìa",
+	'pfunc_expr_unexpected_number' => "Eror ëd l'espression: nùmer pa spetà",
+	'pfunc_expr_preg_match_failure' => "Eror ëd l'espression: eror pa spetà an preg_match",
+	'pfunc_expr_unrecognised_word' => 'Eror ëd l\'espression: paròla "$1" pa arconossùa',
+	'pfunc_expr_unexpected_operator' => "Eror ëd l'espression: operator $1 pa spetà",
+	'pfunc_expr_missing_operand' => "Eror ëd l'espression: Operand për $1 mancant",
+	'pfunc_expr_unexpected_closing_bracket' => "Eror ëd l'espression: paréntesi pa sarà",
+	'pfunc_expr_unrecognised_punctuation' => 'Eror ëd l\'espression: caràter ëd puntegiadura "$1" pa arconossù',
+	'pfunc_expr_unclosed_bracket' => "Eror ëd l'espression: paréntesi pa sarà",
+	'pfunc_expr_division_by_zero' => 'Division për zero',
+	'pfunc_expr_invalid_argument' => 'Argoment pa bon për $1: < -1 o > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Argoment pa bon për ln: <= 0',
+	'pfunc_expr_unknown_error' => "Eror ëd l'espression: Eror pa conossù ($1)",
+	'pfunc_expr_not_a_number' => "An $1: l'arzultà a l'é pa un nùmer",
+	'pfunc_string_too_long' => 'Eror: la stringa a passa ël lìmit ëd $1 caràter',
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'pfunc_time_error' => 'غلطی: ویلہ ٹھیک نئیں۔',
+	'pfunc_time_too_long' => 'غلطی: بعوت ساریاں # کالاں',
+	'pfunc-convert-dimension-length' => 'لمبائی',
+	'pfunc-convert-dimension-area' => 'تھاں',
+	'pfunc-convert-dimension-volume' => 'والیوم',
+	'pfunc-convert-dimension-time' => 'ویلہ',
+	'pfunc-convert-dimension-timesquared' => 'واری<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'ماس',
+	'pfunc-convert-dimension-speed' => 'دوڑ',
+	'pfunc-convert-dimension-temperature' => 'گرمی ناپ',
+	'pfunc-convert-dimension-acceleration' => 'سدی دوڑ',
+	'pfunc-convert-dimension-force' => 'زور',
+	'pfunc-convert-dimension-torque' => 'ٹارک',
+	'pfunc-convert-dimension-energy' => 'انرجی',
+	'pfunc-convert-dimension-power' => 'پاور',
+	'pfunc-convert-dimension-pressure' => 'دبآ',
+	'pfunc-convert-dimension-density' => 'گوڑا',
+	'pfunc-convert-prefix-yotta' => 'یوٹا',
+	'pfunc-convert-prefix-zetta' => 'زیٹا',
+	'pfunc-convert-prefix-exa' => 'ایکسا',
+	'pfunc-convert-prefix-peta' => 'پیٹا',
+	'pfunc-convert-prefix-tera' => 'ٹیرا',
+	'pfunc-convert-prefix-giga' => 'گیگا',
+	'pfunc-convert-prefix-mega' => 'میگا',
+	'pfunc-convert-prefix-kilo' => 'کلو',
+	'pfunc-convert-prefix-hecto' => 'ہیکٹو',
+	'pfunc-convert-prefix-deca' => 'ڈیکا',
+	'pfunc-convert-prefix-deci' => 'ڈیسی',
+	'pfunc-convert-prefix-centi' => 'سنٹی',
+	'pfunc-convert-prefix-milli' => 'ملی',
+	'pfunc-convert-prefix-micro' => 'مائکرو',
+	'pfunc-convert-prefix-nano' => 'نینو',
+	'pfunc-convert-prefix-pico' => 'پکو',
+	'pfunc-convert-prefix-femto' => 'فمٹو',
+	'pfunc-convert-prefix-atto' => 'اٹو',
+	'pfunc-convert-prefix-zepto' => 'زپٹو',
+	'pfunc-convert-prefix-yocto' => 'یوکٹو',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3میٹر}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1فرلانگ',
+	'pfunc-convert-unit-length-chain-abbr' => '$1زنجیر',
+	'pfunc-convert-unit-length-rod-abbr' => '$1رداس',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1فیدم',
+	'pfunc-convert-unit-length-yard-abbr' => '$1گز',
+	'pfunc-convert-unit-length-foot-abbr' => '$1فٹ',
+	'pfunc-convert-unit-length-hand-abbr' => '$1کینٹہ',
+	'pfunc-convert-unit-length-inch-abbr' => '$1انچ',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1سمندری میل',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1سمندری میل (برطانیہ)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1سمندری میل (امریکہ 1954 توں پہلے)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3کمپیوٹر',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3ly',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1اسمانی ناپ',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|مربع کلومیٹر|مربع کلومیٹر}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|مربع میٹر|مربع میٹر}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|مربع سینٹیمیٹر|مربع سینٹیمیٹر}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|مربع میلیمیٹر|مربع میلیمیٹر}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|ہیکٹر|ہیکٹر}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|مربع میلیمیٹر|مربع میل}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|ایکڑ|ایکڑ}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|مربع گز|مربع گز}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|مربع فٹ|مربع فٹ}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|مربع انچ|مربع انچ}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|مربع سمندری میل|مربع سمندری میل}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|ڈنام|ڈنام}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|زوبو|زوبو}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1کلومیٹر<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ہیکٹر',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1مربع میل',
+	'pfunc-convert-unit-area-acre-abbr' => '$1ایکڑ',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1مربع گز',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1مربع فٹ',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1مربع انچ',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1مربع سمندری میل',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1دونام',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1سوبو',
+	'pfunc-convert-unit-time-second' => '$1$2 {{PLURAL:$2|سکنٹ|سکنٹاں}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3ورہ|$3ورے}}',
+	'pfunc-convert-unit-time-day' => '$1 {{PLURAL:$2|دن|دناں}}',
+	'pfunc-convert-unit-time-hour' => '$1 {{PLURAL:$2|کینٹا|کینٹے}}',
+	'pfunc-convert-unit-time-minute' => '$1 {{PLURAL:$2|منٹ|منٹاں}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1سکنث',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3ورہ',
+	'pfunc-convert-unit-time-day-abbr' => '$1دیاڑھ',
+	'pfunc-convert-unit-time-hour-abbr' => '$1کینٹہ',
+	'pfunc-convert-unit-time-minute-abbr' => '$1منٹ',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|مربع میٹر|مربع میٹر}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|مربع سینٹیمیٹر|مربع سینٹیمیٹر}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|مربع میلیمیٹر|مربع میلیمیٹر}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|کلولٹر|کلولٹر}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|لٹر|لٹر}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|سینٹیلٹر}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|ملیلٹر}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|مربع گز}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|مربع فٹ}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|مربع انچ}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|بیرل}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|بشل}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|گیلن}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|کوارٹز}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|پنٹ}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|پانیسر اونس}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|بیرل}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|بیرل}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|بیرل}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|گیلن}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|کوارٹز}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|پنٹ}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|پانیسر اونس}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|بیرل}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|بشل}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|گیلن}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|کوارٹز}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|پنٹ}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1سینٹی میٹر<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1ملی میٹر<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3ly',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1مربع گز',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1مربع فٹ',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1مکعب انچ',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1bbl',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
 	'pfunc_time_error' => 'ستونزه: ناسم وخت',
+	'pfunc_expr_division_by_zero' => 'وېش په صفر',
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'pfunc_desc' => 'Melhora o analisador "parser" com funções lógicas',
+	'pfunc_desc' => 'Adiciona funções lógicas ao analisador sintáctico',
 	'pfunc_time_error' => 'Erro: tempo inválido',
 	'pfunc_time_too_long' => 'Erro: demasiadas chamadas a #time',
+	'pfunc_time_too_big' => 'Erro: #time só lida com anos até 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Erro: Profundidade inválida no caminho: "$1" (foi tentado o acesso a um nó acima do nó raiz)',
 	'pfunc_expr_stack_exhausted' => 'Erro de expressão: Pilha esgotada',
 	'pfunc_expr_unexpected_number' => 'Erro de expressão: Número inesperado',
@@ -1378,22 +4038,25 @@
 	'pfunc_expr_unexpected_operator' => 'Erro de expressão: Operador $1 inesperado',
 	'pfunc_expr_missing_operand' => 'Erro de expressão: Falta operando para $1',
 	'pfunc_expr_unexpected_closing_bracket' => 'Erro de expressão: Parêntese de fecho inesperado',
-	'pfunc_expr_unrecognised_punctuation' => 'Erro de expressão: Caracter de pontuação "$1" não reconhecido',
+	'pfunc_expr_unrecognised_punctuation' => 'Erro de expressão: Carácter de pontuação "$1" não reconhecido',
 	'pfunc_expr_unclosed_bracket' => 'Erro de expressão: Parêntese não fechado',
 	'pfunc_expr_division_by_zero' => 'Divisão por zero',
 	'pfunc_expr_invalid_argument' => 'Argumento inválido para $1: < -1 or > 1',
 	'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Erro de expressão: Erro desconhecido ($1)',
 	'pfunc_expr_not_a_number' => 'Em $1: resultado não é um número',
+	'pfunc_string_too_long' => 'Erro: Texto excede o limite de $1 caracteres',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Giro720
  */
 $messages['pt-br'] = array(
 	'pfunc_desc' => 'Melhora o analisador (parser) com funções lógicas',
 	'pfunc_time_error' => 'Erro: tempo inválido',
 	'pfunc_time_too_long' => 'Erro: muitas chamadas a #time',
+	'pfunc_time_too_big' => 'Erro: #time só lida com anos até 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Erro: Profundidade inválida no caminho: "$1" (foi tentado o acesso a um nó acima do nó raiz)',
 	'pfunc_expr_stack_exhausted' => 'Erro de expressão: Pilha esgotada',
 	'pfunc_expr_unexpected_number' => 'Erro de expressão: Número inesperado',
@@ -1409,45 +4072,121 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumento inválido para ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Erro de expressão: Erro desconhecido ($1)',
 	'pfunc_expr_not_a_number' => 'Em $1: resultado não é um número',
+	'pfunc_string_too_long' => 'Erro: cadeia de caracteres excede o limite de $1 caracteres',
+	'pfunc-convert-unit-length-metre' => '{{PLURAL:$1| $2 metros | $2 metros}}',
+	'pfunc-convert-unit-length-angstrom' => '{{PLURAL:$1| ångström | ångströms}}',
+	'pfunc-convert-unit-length-mile' => '{{PLURAL:$1|milhas| milhas}}',
+	'pfunc-convert-unit-length-furlong' => '{{PLURAL:$1| furlong | estádios}}',
+	'pfunc-convert-unit-length-chain' => '{{PLURAL:$1| corrente | correntes}}',
+	'pfunc-convert-unit-length-rod' => '{{PLURAL:$1| vara | varas}}',
+	'pfunc-convert-unit-length-fathom' => '{{PLURAL:$1| fathom | braças}}',
+	'pfunc-convert-unit-length-yard' => '{{PLURAL:$1|jarda|jardas}}',
+	'pfunc-convert-unit-length-foot' => '{{PLURAL:$1| pé | pés}}',
+	'pfunc-convert-unit-length-hand' => '{{PLURAL:$1| mão | mãos}}',
+	'pfunc-convert-unit-length-inch' => '{{PLURAL:$1| polegada | polegadas}}',
+	'pfunc-convert-unit-length-nauticalmile' => '{{PLURAL:$1| milha náutica | milhas náuticas}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '{{PLURAL:$1| milhas náuticas (pré-1970 britânico) | milhas náuticas (pré-1970 britânico)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '{{PLURAL:$1| milhas náuticas (pré-1954 dos EUA) | milhas náuticas (pré-1954 dos EUA)}}',
+	'pfunc-convert-unit-length-parsec' => '{{PLURAL:$1| $2 parsec | $2 parsecs}}',
+	'pfunc-convert-unit-length-lightyear' => '{{PLURAL:$1| $2 ano-luz | $2 anos-luz}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '{{PLURAL:$1| unidade astronômica | UA}}',
+	'pfunc-convert-unit-length-furlong-abbr' => 'furlong',
+	'pfunc-convert-unit-length-chain-abbr' => 'corrente',
+	'pfunc-convert-unit-length-rod-abbr' => 'rd',
+	'pfunc-convert-unit-length-fathom-abbr' => 'fathom',
+	'pfunc-convert-unit-length-yard-abbr' => 'yd',
+	'pfunc-convert-unit-length-foot-abbr' => 'ft',
 );
 
+/** Quechua (Runa Simi)
+ * @author AlimanRuna
+ */
+$messages['qu'] = array(
+	'pfunc_desc' => 'Parser nisqata sullwa ruranakunawan allinchay',
+	'pfunc_time_error' => 'Pantasqa: Pachaqa manam allinchu',
+	'pfunc_time_too_long' => 'Pantasqa: nisyu "#time" (pacha)',
+	'pfunc_time_too_big' => "Pantasqa: #time nisqaqa 9999 watallakamam watakunata q'imin",
+	'pfunc_rel2abs_invalid_depth' => 'Pantasqa: ñanpa ukhu kayninqa manam allinchu: "$1" (saphi khipu hawanpi kaq khiputam aypayta munaspa)',
+	'pfunc_expr_stack_exhausted' => 'Rikuchikuypi pantasqa: Nisyu tawqa',
+	'pfunc_expr_unexpected_number' => 'Rikuchikuypi pantasqa: Mana suyakusqa yupay',
+	'pfunc_expr_preg_match_failure' => 'Rikuchikuypi pantasqa: Mana suyakusqa preg_match alqa',
+	'pfunc_expr_unrecognised_word' => 'Rikuchikuypi pantasqa: Mana riqsisqa rima "$1"',
+	'pfunc_expr_unexpected_operator' => 'Rikuchikuypi pantasqa: Mana suyakusqa ruraq "$1"',
+	'pfunc_expr_missing_operand' => 'Rikuchikuypi pantasqa: Manam kanchu $1-paq ruraq',
+	'pfunc_expr_unexpected_closing_bracket' => "Rikuchikuypi pantasqa: Nisyu wichq'aq qinchaq",
+	'pfunc_expr_unrecognised_punctuation' => 'Rikuchikuypi pantasqa: Mana riqsisqa qillqa unancha "$1"',
+	'pfunc_expr_unclosed_bracket' => "Rikuchikuypi pantasqa: Manam kanchu wichq'aq qinchaq",
+	'pfunc_expr_division_by_zero' => "Ch'usaqwan rakisqa",
+	'pfunc_expr_invalid_argument' => '$1-paq mana allin ninakuy: : < -1 icha > 1',
+	'pfunc_expr_invalid_argument_ln' => 'ln-paq mana allin ninakuy: <= 0',
+	'pfunc_expr_unknown_error' => 'Rikuchikuypi pantasqa: Mana riqsisqa pantasqa ($1)',
+	'pfunc_expr_not_a_number' => '$1-pi: lluqsiyninqa manam yupaychu',
+	'pfunc_string_too_long' => 'Pantasqa: Qillqa tiwlliqa $1 sanampa saywatam llallin',
+);
+
 /** Romanian (Română)
  * @author KlaudiuMihaila
+ * @author Minisarm
+ * @author Stelistcristi
  */
 $messages['ro'] = array(
+	'pfunc_desc' => 'Îmbunătățește parserul cu funcții logice',
 	'pfunc_time_error' => 'Eroare: timp incorect',
 	'pfunc_time_too_long' => 'Eroare: prea multe apeluri #time',
-	'pfunc_rel2abs_invalid_depth' => 'Eroare: adâncime incorectă în cale: "$1" (încercat accesarea unui nod deasupra nodului rădăcină)',
-	'pfunc_expr_unexpected_number' => 'Eroare de expresie: număr neaşteptat',
-	'pfunc_expr_preg_match_failure' => 'Eroare de expresie: eşuare preg_match neaşteptată',
-	'pfunc_expr_unrecognised_word' => 'Eroare de expresie: "$1" este cuvânt necunoscut',
-	'pfunc_expr_unexpected_operator' => 'Eroare de expresie: operator $1 neaşteptat',
+	'pfunc_time_too_big' => 'Eroare: #time acceptă doar ani până la 9999',
+	'pfunc_rel2abs_invalid_depth' => 'Eroare: adâncime incorectă în cale: „$1” (încercat accesarea unui nod deasupra nodului rădăcină)',
+	'pfunc_expr_stack_exhausted' => 'Eroare de expresie: stivă epuizată',
+	'pfunc_expr_unexpected_number' => 'Eroare de expresie: număr neașteptat',
+	'pfunc_expr_preg_match_failure' => 'Eroare de expresie: eșuare preg_match neașteptată',
+	'pfunc_expr_unrecognised_word' => 'Eroare de expresie: „$1” este un cuvânt nerecunoscut',
+	'pfunc_expr_unexpected_operator' => 'Eroare de expresie: operator $1 neașteptat',
 	'pfunc_expr_missing_operand' => 'Eroare de expresie: operand lipsă pentru $1',
-	'pfunc_expr_unexpected_closing_bracket' => 'Eroare de expresie: paranteză închisă neaşteptată',
-	'pfunc_expr_unrecognised_punctuation' => 'Eroare de expresie: caracter de punctuaţie "$1" necunoscut',
+	'pfunc_expr_unexpected_closing_bracket' => 'Eroare de expresie: paranteză închisă neașteptată',
+	'pfunc_expr_unrecognised_punctuation' => 'Eroare de expresie: caracter de punctuație „$1” necunoscut',
 	'pfunc_expr_unclosed_bracket' => 'Eroare de expresie: paranteză neînchisă',
-	'pfunc_expr_division_by_zero' => 'Împărţire la zero',
+	'pfunc_expr_division_by_zero' => 'Împărțire la zero',
 	'pfunc_expr_invalid_argument' => 'Argument incorect pentru $1: < -1 sau > 1',
 	'pfunc_expr_invalid_argument_ln' => 'Argument incorect pentru ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Eroare de expresie: eroare necunoscută ($1)',
 	'pfunc_expr_not_a_number' => 'În $1: rezultatul nu este un număr',
+	'pfunc_string_too_long' => 'Eroare: șirul depășește limita de caractere de $1',
 );
 
 /** Tarandíne (Tarandíne)
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
+	'pfunc_desc' => "L'analizzatore avanzate cu le funziune loggeche",
 	'pfunc_time_error' => 'Errore: Orarie invalide',
+	'pfunc_time_too_long' => 'Errore: stonne troppe #time chiamate',
+	'pfunc_time_too_big' => "Errore: #time vole sulamende valore de anne 'mbonde a 9999",
+	'pfunc_rel2abs_invalid_depth' => "Errore: Profondità invalide jndr'à 'u percorse: \"\$1\" (s'à pruvate a pigghià 'nu node sus a 'u node radice)",
+	'pfunc_expr_stack_exhausted' => 'Espressione in errore: Stack anghiute',
+	'pfunc_expr_unexpected_number' => 'Espressione in errore: Numere inaspettate',
+	'pfunc_expr_preg_match_failure' => 'Espressione in errore: preg_match inaspettate e fallite',
+	'pfunc_expr_unrecognised_word' => 'Espressione in errore: Parola scanusciute "$1"',
+	'pfunc_expr_unexpected_operator' => 'Espressione in errore: Operatore $1 inaspettate',
+	'pfunc_expr_missing_operand' => 'Espressione in errore: Operande zumbate pe $1',
+	'pfunc_expr_unexpected_closing_bracket' => "Espressione in errore: Non g'onne state achiuse le parendesi",
+	'pfunc_expr_unrecognised_punctuation' => 'Espressione in errore: Carattere de punde "$1" scanusciute',
+	'pfunc_expr_unclosed_bracket' => 'Espressione in errore: Parendesi non achiuse',
 	'pfunc_expr_division_by_zero' => 'Divisione pe zero',
+	'pfunc_expr_invalid_argument' => 'Argomende invalide pe $1: < -1 o > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Argomende invalide pe ln: <= 0',
+	'pfunc_expr_unknown_error' => 'Espressione in errore: Errore scanusciute ($1)',
+	'pfunc_expr_not_a_number' => "In $1: 'u resultate non g'è 'nu numere",
+	'pfunc_string_too_long' => "Errore: 'A stringhe supranesce 'u limite de $1 carattere",
 );
 
 /** Russian (Русский)
+ * @author G0rn
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
 	'pfunc_desc' => 'Улучшенный синтаксический анализатор с логическими функциями',
 	'pfunc_time_error' => 'Ошибка: неправильное время',
 	'pfunc_time_too_long' => 'Ошибка: слишком много вызовов функции #time',
+	'pfunc_time_too_big' => 'Ошибка. Параметр #time не может превышать 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Ошибка: ошибочная глубина пути: «$1» (попытка доступа к узлу, находящемуся выше, чем корневой)',
 	'pfunc_expr_stack_exhausted' => 'Ошибка выражения: переполнение стека',
 	'pfunc_expr_unexpected_number' => 'Ошибка выражения: неожидаемое число',
@@ -1463,15 +4202,232 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ошибочный аргумент ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Ошибка выражения: неизвестная ошибка ($1)',
 	'pfunc_expr_not_a_number' => 'В $1: результат не является числом',
+	'pfunc_string_too_long' => 'Ошибка: строка превышает ограничение в $1 символов',
+	'pfunc-convert-dimensionmismatch' => 'Ошибка. Не удается преобразовать единицы измерения «$1» и «$2».',
+	'pfunc-convert-unknownunit' => 'Ошибка. Неизвестная единица «$1».',
+	'pfunc-convert-unknowndimension' => 'Ошибка. Неизвестная размерность «$1».',
+	'pfunc-convert-invalidcompoundunit' => 'Ошибка. Недопустимая составная единица «$1».',
+	'pfunc-convert-nounit' => 'Ошибка. Не указана исходная единица.',
+	'pfunc-convert-doublecompoundunit' => 'Ошибка. Невозможно разобрать двойные составные единицы вида «$1».',
+	'pfunc-convert-dimension-length' => 'длина',
+	'pfunc-convert-dimension-area' => 'площадь',
+	'pfunc-convert-dimension-volume' => 'объём',
+	'pfunc-convert-dimension-time' => 'время',
+	'pfunc-convert-dimension-timesquared' => 'время<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'масса',
+	'pfunc-convert-dimension-speed' => 'скорость',
+	'pfunc-convert-dimension-temperature' => 'температура',
+	'pfunc-convert-dimension-acceleration' => 'ускорение',
+	'pfunc-convert-dimension-force' => 'сила',
+	'pfunc-convert-dimension-torque' => 'крутящий момент',
+	'pfunc-convert-dimension-energy' => 'энергия',
+	'pfunc-convert-dimension-power' => 'мощность',
+	'pfunc-convert-dimension-pressure' => 'давление',
+	'pfunc-convert-dimension-density' => 'плотность',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'позитивная топливная эффективность',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'негативная топливная эффективность',
+	'pfunc-convert-prefix-yotta' => 'йотта',
+	'pfunc-convert-prefix-zetta' => 'зетта',
+	'pfunc-convert-prefix-exa' => 'экса',
+	'pfunc-convert-prefix-peta' => 'пета',
+	'pfunc-convert-prefix-tera' => 'тера',
+	'pfunc-convert-prefix-giga' => 'гига',
+	'pfunc-convert-prefix-mega' => 'мега',
+	'pfunc-convert-prefix-kilo' => 'кило',
+	'pfunc-convert-prefix-hecto' => 'гекто',
+	'pfunc-convert-prefix-deca' => 'дека',
+	'pfunc-convert-prefix-deci' => 'деци',
+	'pfunc-convert-prefix-centi' => 'санти',
+	'pfunc-convert-prefix-milli' => 'милли',
+	'pfunc-convert-prefix-micro' => 'микро',
+	'pfunc-convert-prefix-nano' => 'нано',
+	'pfunc-convert-prefix-pico' => 'пико',
+	'pfunc-convert-prefix-femto' => 'фемто',
+	'pfunc-convert-prefix-atto' => 'атто',
+	'pfunc-convert-prefix-zepto' => 'зепто',
+	'pfunc-convert-prefix-yocto' => 'йокто',
+	'pfunc-convert-prefix-milli-abbr' => 'м',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3метр|$3метра|$3метров}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|ангстрем|ангстрема|ангстрем}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|миля|мили|миль}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|фурлонг|фурлонга|фурлонгов}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|чейн|чейна|чейнов}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|род|рода|родов}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|фатом|фатома|фатомов}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|ярд|ярда|ярдов}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|фут|фута|футов}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|хэнд|хэнда|хэндов}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|дюйм|дюйма|дюймов}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|морская миля|морские мили|морских милей}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|морская миля (британская до 1970)|морские мили (британских до 1970)|морских миль (британских до 1970)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|морская миля (США до 1970)|морские мили (США до 1970)|морских миль (США до 1970)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3парсек|$3парсека|$3парсек}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3 световой год|$3 световых года|$3 световых лет}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|астрономическая единица|астрономические единицы|астрономических единиц}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1фурлонг',
+	'pfunc-convert-unit-length-chain-abbr' => '$1чейн',
+	'pfunc-convert-unit-length-rod-abbr' => '$1род',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1фатом',
+	'pfunc-convert-unit-length-yard-abbr' => '$1ярд',
+	'pfunc-convert-unit-length-foot-abbr' => '$1фут',
+	'pfunc-convert-unit-length-hand-abbr' => '$1хэнд',
+	'pfunc-convert-unit-length-inch-abbr' => '$1дюйм',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1морская миля',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1брит. морская миля',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1морская миля (США до 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3 пк',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3 св. г.',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1а. е.',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|квадратный километр|квадратных километра|квадратных километров}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|квадратный метр|квадратных метра|квадратных метров}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|квадратный сантиметр|квадратных сантиметра|квадратных сантиметров}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|квадратный миллиметр|квадратных миллиметра|квадратных миллиметров}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|гектар|гектара|гектар}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|квадратная миля|квадратных мили|квадратных миль}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|акр|акра|акров}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|квадратный ярд|квадратных ярда|квадратных ярдов}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|квадратный фут|квадратных фута|квадратных футов}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|квадратный дюйм|квадратных дюйма|квадратных дюймов}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|квадратная морская миля|квадратные морские мили|квадратных морских миль}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|дунам|дунама|дунамов}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|цубо|цубо|цубо}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1км<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1м<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1см<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1мм<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1га',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1кв. ми',
+	'pfunc-convert-unit-area-acre-abbr' => '$1акр',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1кв. ярд',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1кв. м',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1кв. дюйм',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1кв. м. ми',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1дунам',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1цубо',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|секунда|секунды|секунд}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3год|$3года|$3лет}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|день|дня|дней}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|час|часа|часов}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|минута|минуты|минут}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1с',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3 г',
+	'pfunc-convert-unit-time-day-abbr' => '$1дн',
+	'pfunc-convert-unit-time-hour-abbr' => '$1ч.',
+	'pfunc-convert-unit-time-minute-abbr' => '$1м.',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|кубический метр|кубических метра|кубических метров}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|кубический сантиметр|кубических сантиметра|кубических сантиметров}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|кубический миллиметр|кубических миллиметра|кубических миллиметров}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|килолитр|килолитра|килолитров}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|литр|литра|литров}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|сантилитр|сантилитра|сантилитров}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|миллилитр|миллилитра|миллилитров}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|кубический ярд|кубических ярда|кубических ярдов}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|кубический фут|кубических фута|кубических футов}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|кубический дюйм|кубических дюйма|кубических дюймов}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|баррель|барреля|баррелей}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|бушель|бушеля|бушелей}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|галлон|галлона|галлонов}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|кварта|кварты|кварт}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|пинта|пинты|пинт}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|жидкая унция|жидких унции|жидких унций}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|баррель США|барреля США|баррелей США}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|баррель|барреля|баррелей}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|баррель|барреля|баррелей}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|галлон США|галлона США|галлонов США}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|кварта США|кварты США|кварт США}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|пинта США|пинты США|пинт США}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|жидкая унция США|жидких унции США|жидких унций США}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|сухой баррель США|сухих барреля США|сухих баррелей США}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|бушель США|бушеля США|бушелей США}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|сухой галлон США|сухих галлона США|сухих галлонов США}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|сухая кварта США|сухие кварты США|сухих кварт США}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|сухая пинта США|сухих пинты США|сухих пинт США}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1м<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1см<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1мм<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3 л',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1куб. ярд',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1куб. фут',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1куб. дюйм',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1бр.',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1бш.',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1гал.',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1кв.',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1пт.',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1жид. унц.',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1бр. США',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1бр.',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1бр.',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1гал. США',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1кт. США',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1пт. США',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1жид. унц. США',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1бр. США',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1вш. США',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1сух. гал. США',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1сух. кт. США',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1сух. пт. США',
+	'pfunc-convert-unit-speed-mile-hour' => '$1миль/час',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1миль/ч',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3паскаль|$3паскаля|$3паскалей}}',
+	'pfunc-convert-unit-pressure-bar' => '$1бар',
+	'pfunc-convert-unit-pressure-decibar' => '$1децибар',
+	'pfunc-convert-unit-pressure-millibar' => '$1миллибар',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1килобария',
+	'pfunc-convert-unit-pressure-barye' => '$1бария',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|атмосфера|атмосферы|атмосфер}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|торр|торра|торр}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|миллиметр ртутного столба|миллиметра ртутного столба|миллиметров ртутного столба}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|дюйм ртутного столба|дюйма ртутного столба|дюймов ртутного столба}}',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|фунт на квадратный дюйм|фунта на квадратный дюйм|фунтов на квадратный дюйм}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Па',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1бар',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1дбар',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1мбар',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1КБа',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ба',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1атм',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1торр',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1мм рт. ст.',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1дюйм. рт. ст.',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1фунт. на кв. дюйм',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'pfunc_desc' => 'Росшырїня парсера о лоґічны функції',
+	'pfunc_time_error' => 'Хына: неплатный час',
+	'pfunc_time_too_long' => 'Хыба: дуже много кликаня #time',
+	'pfunc_rel2abs_invalid_depth' => 'Хыба: Неплатна глубка в стежцї: "$1" (проба  о приступ до узла высшого як корїнь)',
+	'pfunc_expr_stack_exhausted' => 'Хыба выразу: Засобник переповненый',
+	'pfunc_expr_unexpected_number' => 'Хыба выразу: Чекане чісло',
+	'pfunc_expr_preg_match_failure' => 'Хыба выразу: Нечекана хыба функції preg_match',
+	'pfunc_expr_unrecognised_word' => 'Хыба выразу: Нерозпознане слово „$1“',
+	'pfunc_expr_unexpected_operator' => 'Хыба выразу: Нечеканый оператор: $1',
+	'pfunc_expr_missing_operand' => 'Хыба выразу: Хыбить операнд про $1',
+	'pfunc_expr_unexpected_closing_bracket' => 'Хыба выразу: Нечекана заперача заперка',
+	'pfunc_expr_unrecognised_punctuation' => 'Хыба выразу: Нерозпознаный роздїловый знак „$1“',
+	'pfunc_expr_unclosed_bracket' => 'Хыба ыразу: Незаперты заперкы',
+	'pfunc_expr_division_by_zero' => 'Дїлїня нулов',
+	'pfunc_expr_invalid_argument' => 'Неправилный арґумент про $1: < -1 або > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Неправилный арґумент про ln: <= 0',
+	'pfunc_expr_unknown_error' => 'Хыба выразу: Незнама хыба ($1)',
+	'pfunc_expr_not_a_number' => 'У $1: резултат не є чісло',
+	'pfunc_string_too_long' => 'Хыба: Ланц є довшый як $1 {{PLURAL:$1|знак|знакы|знаків}}, што є ліміт',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
 	'pfunc_desc' => 'Логическай функциялаах тупсарыллыбыт синтаксическай анализатор',
 	'pfunc_time_error' => 'Алҕас: сыыһа кэм',
 	'pfunc_time_too_long' => 'Алҕас: #time функция наһаа элбэхтик хатыламмыт',
+	'pfunc_time_too_big' => 'Алҕас: #time  9999-у ааһыа суохтаах',
 	'pfunc_rel2abs_invalid_depth' => 'Алҕас: ошибочная глубина пути: «$1» (попытка доступа к узлу, находящемуся выше, чем корневой)',
 	'pfunc_expr_stack_exhausted' => 'Ошибка выражения: переполнение стека',
 	'pfunc_expr_unexpected_number' => 'Алҕас: кэтэһиллибэтэх чыыһыла',
@@ -1487,9 +4443,11 @@
 	'pfunc_expr_invalid_argument_ln' => 'ln аргумена сыыһалаах: <= 0',
 	'pfunc_expr_unknown_error' => 'Expression error (ошибка выражения): Биллибэт алҕас ($1)',
 	'pfunc_expr_not_a_number' => '$1 иһигэр: эппиэтэ чыыһыла буолбатах',
+	'pfunc_string_too_long' => 'Алҕас: Устуруока уһуна $1 бэлиэннэн хааччахха баппат',
 );
 
 /** Sicilian (Sicilianu)
+ * @author Melos
  * @author Santu
  */
 $messages['scn'] = array(
@@ -1511,9 +4469,11 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argumentu non vàlidu pi ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Sbàgghiu nti la sprissioni: sbàgghiu scanusciutu ($1)',
 	'pfunc_expr_not_a_number' => 'Nti $1: lu risurtatu nun è nu nùmmiru',
+	'pfunc_string_too_long' => 'Erruri: la stringa supira lu limiti di $1 carattiri',
 );
 
 /** Sinhala (සිංහල)
+ * @author Budhajeewa
  * @author නන්දිමිතුරු
  */
 $messages['si'] = array(
@@ -1523,6 +4483,7 @@
 	'pfunc_rel2abs_invalid_depth' => 'දෝෂය: පෙතෙහි ගැඹුර අනීතිකයි: "$1" (මූල මංසලට ඉහළ මංසලක් ප්‍රවේශනයට උත්සාහ දැරිණි)',
 	'pfunc_expr_stack_exhausted' => 'ප්‍රකාශන දෝෂය: ඇසිරුම හිස්ව පැවතිණි',
 	'pfunc_expr_unexpected_number' => 'ප්‍රකාශන දෝෂය: අනපේක්‍ෂිත සංඛ්‍යාව',
+	'pfunc_expr_preg_match_failure' => 'ප්‍රකාශන දෝෂය: බලාපොරොත්තු නොවූ preg_match ඇණහිටුම',
 	'pfunc_expr_unrecognised_word' => 'ප්‍රකාශන දෝෂය: හඳුනානොගත් වදන "$1"',
 	'pfunc_expr_unexpected_operator' => 'ප්‍රකාශන දෝෂය: අනපේක්‍ෂිත $1 මෙහෙයුම්කාරකය',
 	'pfunc_expr_missing_operand' => 'ප්‍රකාශන දෝෂය: $1 සඳහා අස්ථානගත ප්‍රවර්ත්‍යය',
@@ -1534,6 +4495,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 සඳහා අනීතික විස්තාරකය',
 	'pfunc_expr_unknown_error' => 'ප්‍රකාශන දෝෂය: අඥාත දෝෂය ($1)',
 	'pfunc_expr_not_a_number' => '$1: හි ප්‍රතිඵලය සංඛ්‍යාවක් නොවේ',
+	'pfunc_string_too_long' => 'Error: වදන් පෙළ අකුරු $1 සීමාව ඉක්මවයි',
 );
 
 /** Slovak (Slovenčina)
@@ -1558,13 +4520,261 @@
 	'pfunc_expr_invalid_argument_ln' => 'Neplatný argument pre ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Chyba výrazu: Neznáma chyba ($1)',
 	'pfunc_expr_not_a_number' => 'V $1: výsledok nie je číslo',
+	'pfunc_string_too_long' => 'Chyba: Reťazec prekračuje limit $1 znakov',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'pfunc_desc' => 'Izboljša razčlenjevalnik z logičnimi funkcijami',
+	'pfunc_time_error' => 'Napaka: neveljaven čas',
+	'pfunc_time_too_long' => 'Napaka: preveč klicev #time',
+	'pfunc_time_too_big' => 'Napaka: #time podpira samo leta do 9999',
+	'pfunc_rel2abs_invalid_depth' => 'Napaka: Neveljavna globina poti: »$1« (poskus dostopanja do vozlišča višjega od korenskega vozlišča)',
+	'pfunc_expr_stack_exhausted' => 'Napaka v izrazu: Sklad je izčrpan',
+	'pfunc_expr_unexpected_number' => 'Napaka v izrazu: Nepričakovani število',
+	'pfunc_expr_preg_match_failure' => 'Napaka v izrazu: Nepričakovan neuspeh preg_match',
+	'pfunc_expr_unrecognised_word' => 'Napaka v izrazu: Neprepoznana beseda »$1«',
+	'pfunc_expr_unexpected_operator' => 'Napaka v izrazu: Nepričakovan operator $1',
+	'pfunc_expr_missing_operand' => 'Napaka v izrazu: Manjkajoč operand za $1',
+	'pfunc_expr_unexpected_closing_bracket' => 'Napaka v izrazu: Nepričakovan zaključni oklepaj',
+	'pfunc_expr_unrecognised_punctuation' => 'Napaka v izrazu: Nepričakovan znak za ločilo »$1«',
+	'pfunc_expr_unclosed_bracket' => 'Napaka v izrazu: Nezaprti oklepaj',
+	'pfunc_expr_division_by_zero' => 'Deljenje z ničlo',
+	'pfunc_expr_invalid_argument' => 'Napačen argument za $1: < -1 ali > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Napačen argument za ln: <= 0',
+	'pfunc_expr_unknown_error' => 'Napaka v izrazu: Neznana napaka ($1)',
+	'pfunc_expr_not_a_number' => 'V $1: rezultat ni število',
+	'pfunc_string_too_long' => 'Napaka: Niz presega omejitev $1 {{PLURAL:$1|znaka|znakov}}',
+	'pfunc-convert-dimensionmismatch' => 'Napaka: Ne morem pretvoriti med enotama »$1« in »$2«.',
+	'pfunc-convert-unknownunit' => 'Napaka: Neznana enota »$1«.',
+	'pfunc-convert-unknowndimension' => 'Napaka: Neznana razsežnost »$1«.',
+	'pfunc-convert-invalidcompoundunit' => 'Napaka: Neveljavna sestavljena enota »$1«.',
+	'pfunc-convert-nounit' => 'Napaka: Izvirna enota ni podana.',
+	'pfunc-convert-doublecompoundunit' => 'Napaka: Ne morem razčleniti dvojne sestavljene enote, kot je »$1«.',
+	'pfunc-convert-dimension-length' => 'dolžina',
+	'pfunc-convert-dimension-area' => 'ploščina',
+	'pfunc-convert-dimension-volume' => 'prostornina',
+	'pfunc-convert-dimension-time' => 'čas',
+	'pfunc-convert-dimension-timesquared' => 'čas<sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'masa',
+	'pfunc-convert-dimension-speed' => 'hitrost',
+	'pfunc-convert-dimension-temperature' => 'temperatura',
+	'pfunc-convert-dimension-acceleration' => 'pospešek',
+	'pfunc-convert-dimension-force' => 'sila',
+	'pfunc-convert-dimension-torque' => 'navor',
+	'pfunc-convert-dimension-energy' => 'energija',
+	'pfunc-convert-dimension-power' => 'moč',
+	'pfunc-convert-dimension-pressure' => 'tlak',
+	'pfunc-convert-dimension-density' => 'gostota',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'pozitivna učinkovitost goriva',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'negativna učinkovitost goriva',
+	'pfunc-convert-prefix-yotta' => 'jota',
+	'pfunc-convert-prefix-zetta' => 'zeta',
+	'pfunc-convert-prefix-exa' => 'eksa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hekto',
+	'pfunc-convert-prefix-deca' => 'deka',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'mikro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'piko',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'ato',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'jokto',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|meter|metra|metri|metrov}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|angstrem|angstrema|angstremi|angstremov}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|milja|milji|milje|milj}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlonga|furlongi|furlongov}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|veriga|verigi|verige|verig}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|palica|palici|palice|palic}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|seženj|sežnja|sežnji|sežnjev}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|jard|jarda|jardi|jardov}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|čevelj|čevlja|čevlji|čeljev}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|dlan|dlani}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|palec|palca|palci|palcev}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|navtična milja|navtični milji|navtične milje|navtičnih milj}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|navtična milja|navtični milji|navtične milje|navtičnih milj}} (britanska, pred 1970)',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|navtična milja|navtični milji|navtične milje|navtičnih milj}} (ZDA, pred 1954)',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|parsek|parseka|parseki|persekov}}',
+	'pfunc-convert-unit-length-lightyear' => '$1$3 {{PLURAL:$2|svetlobno leto|svetlobni leti|svetlobna leta|svetlobnih let}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomska enota|astronomski enoti|astronomske enote|astronomskih enot}}',
+	'pfunc-convert-unit-length-metre-abbr' => '$1m',
+	'pfunc-convert-unit-length-angstrom-abbr' => '$1Å',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1veriga',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1seženj',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1nmi (Brit)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1nmi (ZDA, pred 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3 pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3 sv. l.',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1a.e.',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|kvadratni kilometer|kvadratna kilometra|kvadratni kilometri|kvadratnih kilometrov}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|kvadratni meter|kvadratna metra|kvadratni metri|kvadratnih metrov}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|kvadratni centimeter|kvadratna centimetra|kvadratni centimetri|kvadratnih centimetrov}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|kvadratni milimeter|kvadratna milimetra|kvadratni milimetri|kvadratnih milimetrov}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hektar|hektara|hektare|hektarov}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|kvadratna milja|kvadratni milji|kvadratne milje|kvadratnih milj}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|aker|akra|akri|akrov}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|kvadratni jard|kvadratna jarda|kvadratni jardi|kvadratnih jardov}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|kvadratni čevelj|kvadratna čevlja|kvadratni čevlji|kvadratnih čevljev}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|kvadratni palec|kvadratna palca|kvadratni palci|kvadratnih palcev}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|kvadratna navtična milja|kvadratni navtični milji|kvadratne navtične milje|kvadratnih navtičnih milj}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunama|dunami|dunamov}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsuba|tsubi|tsubov}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1kv. mi',
+	'pfunc-convert-unit-area-acre-abbr' => '$1aker',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1kv. yd',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1kv. ft',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1kv. in',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1kv nmi',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|sekunda|sekundi|sekunde|sekund}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|leto|leti|leta|let}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|dan|dneva|dnevi|dni}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|ura|uri|ure|ur}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minuta|minuti|minute|minut}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1leto',
+	'pfunc-convert-unit-time-day-abbr' => '$1dan',
+	'pfunc-convert-unit-time-hour-abbr' => '$1ura',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|kubični meter|kubična metra|kubični metri|kubičnih metrov}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|kubični centimeter|kubična centimetra|kubični centimetri|kubičnih centimetrov}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|kubični milimeter|kubična milimetra|kubični milimetri|kubičnih milimetrov}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1kilo{{PLURAL:$2|liter|litra|litri|litrov}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|liter|litra|litri|litrov}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1centi{{PLURAL:$2|liter|litra|litri|litrov}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1mili{{PLURAL:$2|liter|litra|litri|litrov}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|kubični jard|kubična jarda|kubični jardi|kubičnih jardov}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|kubični čevelj|kubična čevlja|kubični čevlji|kubičnih čevljev}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|kubični palec|kubična palca|kubični palci|kubičnih palcev}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|sod|soda|sodi|sodov}}',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2|bušel|bušla|bušli|bušlov}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|galona|galoni|galone|galon}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|kvart|kvarta|kvarti|kvartov}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|pint|pinta|pinti|pintov}}',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2|tekočinska unča|tekočinski unči|tekočinske unče|tekočinskih unč}}',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2|ameriški sod|ameriška soda|ameriški sodi|ameriških sodov}}',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2|sod|soda|sodi|sodov}}',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2|sod|soda|sodi|sodov}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|ameriška galona|ameriški galoni|ameriške galone|ameriških galon}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|ameriški kvart|ameriška kvarta|ameriški kvarti|ameriških kvartov}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|ameriški pint|ameriška pinta|ameriški pinti|ameriških pintov}}',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2|ameriška tekočinska unča|ameriški tekočinski unči|ameriške tekočinske unče|ameriških tekočinskih unč}}',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2|ameriški suhi sod|ameriška suha soda|ameriški suhi sodi|ameriških suhih sodov}}',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2|ameriški bušel|ameriška bušla|ameriški bušli|ameriških bušlov}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|ameriška suha galona|ameriški suhi galoni|ameriške suhe galone|ameriških suhih galon}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|ameriški suhi kvart|ameriška suha kvarta|ameriški suhi kvarti|ameriških suhih kvartov}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|ameriški suhi pint|ameriška suha pinta|ameriški suhi pinti|ameriških suhih pintov}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3 l',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1kub. yd',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1kub. ft',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1kub. in',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1bsh',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1qt',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1pt',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1fl oz',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1am. bbl',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1am. gal',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1am. qt',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1am. pt',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1am. fl oz',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1am. bbl',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1am. bsh',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1am. suha gal',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1am. suhi qt',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1am. suhi pt',
+	'pfunc-convert-unit-speed-mile-hour' => '$1milje na uro',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1mph',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|paskal|paskala|paskali|paskalov}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar' => '$1decibar',
+	'pfunc-convert-unit-pressure-millibar' => '$1milibar',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilobarye',
+	'pfunc-convert-unit-pressure-barye' => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosfera|atmosferi|atmosfere|atmosfer}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|torr|torra|torri|torrov}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|milimeter|milimetra|milimetri|milimetrov}} živega srebra',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|palec|palca|palci|palcev}} živega srebra',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2|funt|funta|funti|funtov}} na kvadratni palec',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
+);
+
+/** Albanian (Shqip)
+ * @author Olsi
+ * @author Vinie007
+ */
+$messages['sq'] = array(
+	'pfunc_desc' => 'Enhance parser me funksione logjike',
+	'pfunc_time_error' => 'Gabim: kohë e pavlefshme',
+	'pfunc_time_too_long' => 'Gabim: shumë #thirrje kohe',
+	'pfunc_time_too_big' => 'Gabim: # kohë mbështet vetëm vjet deri në 9999',
+	'pfunc_rel2abs_invalid_depth' => 'Gabim: thellësi e pavlefshme në rrugë: "$1" (u përpoq për të hyrë në një nyje mbi nyjen e rrënjës)',
+	'pfunc_expr_stack_exhausted' => 'Gabim shprehjeje: Stack exhausted',
+	'pfunc_expr_unexpected_number' => 'Gabim shprehjeje: Numër i papritur',
+	'pfunc_expr_preg_match_failure' => 'Gabim shprehjeje: Dështim i papritur i preg_match',
+	'pfunc_expr_unrecognised_word' => 'Gabim shprehjeje: Fjalë e panjohur: $1',
+	'pfunc_expr_unexpected_operator' => 'Gabim shprehjeje: Operator i papritur $1',
+	'pfunc_expr_missing_operand' => 'Gabim shprehjej: Operim i munfuar për $1',
+	'pfunc_expr_unexpected_closing_bracket' => 'Gabim shprehjeje: Mbyllje e papritur kllapash',
+	'pfunc_expr_unrecognised_punctuation' => 'Gabim shprehjeje: Karakater pikësimi i panjohur "$1"',
+	'pfunc_expr_unclosed_bracket' => 'Gabim shprehjeje: Mosmbyllje kllapash',
+	'pfunc_expr_division_by_zero' => 'Pjesëtim me zero',
+	'pfunc_expr_invalid_argument' => 'Argument i pavlefshëm për $1: < -1 ose > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Argument i pavlefshëm për ln: <= 0',
+	'pfunc_expr_unknown_error' => 'Gabim shprehjeje: Gabim i panjohur ($1)',
+	'pfunc_expr_not_a_number' => 'Në $1: rezultati nuk është një numër',
+	'pfunc_string_too_long' => 'Gabim: string kalon limit $1 karakter',
+);
+
+/** Serbian Cyrillic ekavian (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
+ * @author Verlor
  */
 $messages['sr-ec'] = array(
-	'pfunc_desc' => 'обогати парсер логичким функцијама',
+	'pfunc_desc' => 'Проширује рашчлањивач с логичким функцијама',
 	'pfunc_time_error' => 'Грешка: лоше време',
 	'pfunc_time_too_long' => 'Грешка: превише #time позива',
 	'pfunc_expr_stack_exhausted' => 'Грешка у изразу: стек напуњен',
@@ -1581,8 +4791,33 @@
 	'pfunc_expr_invalid_argument_ln' => 'Лош аргумент: ln <= 0',
 	'pfunc_expr_unknown_error' => 'Грешка у изразу: Непозната грешка ($1)',
 	'pfunc_expr_not_a_number' => 'Резултат у $1 није број.',
+	'pfunc_string_too_long' => 'Грешка: реч прекорачује $1  слова, што је постављено ограничење',
 );
 
+/** Serbian Latin ekavian (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'pfunc_desc' => 'obogati parser logičkim funkcijama',
+	'pfunc_time_error' => 'Greška: loše vreme',
+	'pfunc_time_too_long' => 'Greška: previše #time poziva',
+	'pfunc_expr_stack_exhausted' => 'Greška u izrazu: stek napunjen',
+	'pfunc_expr_unexpected_number' => 'Greška u izrazu: neočekivani broj',
+	'pfunc_expr_preg_match_failure' => 'Greška u izrazu: Neočekivana preg_match greška',
+	'pfunc_expr_unrecognised_word' => 'Greška u izrazu: nepoznata reč "$1"',
+	'pfunc_expr_unexpected_operator' => 'Greška u izrazu: nepoznati operator "$1"',
+	'pfunc_expr_missing_operand' => 'Greška u izrazu: nedostaje operand za $1',
+	'pfunc_expr_unexpected_closing_bracket' => 'Greška u izrazu: Neočekivano zatvaranje srednje zagrade.',
+	'pfunc_expr_unrecognised_punctuation' => 'Greška u izrazu: Nepoznati interpunkcijski karakter "$1".',
+	'pfunc_expr_unclosed_bracket' => 'Greška u izrazu: Nezatvorena srednja zagrada.',
+	'pfunc_expr_division_by_zero' => 'Deljenje sa nulom.',
+	'pfunc_expr_invalid_argument' => 'Loš argument: $1 je < -1 ili > 1',
+	'pfunc_expr_invalid_argument_ln' => 'Loš argument: ln <= 0',
+	'pfunc_expr_unknown_error' => 'Greška u izrazu: Nepoznata greška ($1)',
+	'pfunc_expr_not_a_number' => 'Rezultat u $1 nije broj.',
+	'pfunc_string_too_long' => 'Greška: reč prekoračuje $1  slova, što je postavljeno ograničenje',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
@@ -1605,6 +4840,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Uungultich Argument foar ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Expression-Failer: Uunbekoanden Failer ($1)',
 	'pfunc_expr_not_a_number' => 'Expression-Failer: In $1: Resultoat is neen Taal',
+	'pfunc_string_too_long' => 'Failer: Teekenkätte is laanger as dät Teekenlimit fon $1',
 );
 
 /** Sundanese (Basa Sunda)
@@ -1614,16 +4850,22 @@
 $messages['su'] = array(
 	'pfunc_desc' => 'Ngembangkeun parser kalawan fungsi logis',
 	'pfunc_time_error' => 'Éror: titimangsa teu valid',
+	'pfunc_expr_division_by_zero' => 'Pambagi ku nol',
 );
 
 /** Swedish (Svenska)
+ * @author Ainali
  * @author Lejonel
+ * @author Lokal Profil
  * @author M.M.S.
+ * @author Najami
+ * @author WikiPhoenix
  */
 $messages['sv'] = array(
 	'pfunc_desc' => 'Lägger till logiska funktioner i parsern',
 	'pfunc_time_error' => 'Fel: ogiltig tid',
 	'pfunc_time_too_long' => 'Fel: för många anrop av #time',
+	'pfunc_time_too_big' => 'Fel: # tid stöder endast år fram till 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Fel: felaktig djup i sökväg: "$1" (försöker nå en nod ovanför rotnoden)',
 	'pfunc_expr_stack_exhausted' => 'Fel i uttryck: Stackutrymmet tog slut',
 	'pfunc_expr_unexpected_number' => 'Fel i uttryck: Oväntat tal',
@@ -1639,6 +4881,148 @@
 	'pfunc_expr_invalid_argument_ln' => 'Ogiltigt argument för ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Fel i uttryck: Okänt fel ($1)',
 	'pfunc_expr_not_a_number' => 'I $1: resultatet är inte ett tal',
+	'pfunc_string_too_long' => 'Fel: Strängen överskrider gränsen på $1 tecken',
+	'pfunc-convert-dimensionmismatch' => 'Fel: Kan inte konvertera mellan enheterna "$1" och "$2".',
+	'pfunc-convert-unknownunit' => 'Fel: Okänd enhet "$1".',
+	'pfunc-convert-unknowndimension' => 'Fel: Okänd dimension "$1".',
+	'pfunc-convert-dimension-length' => 'längd',
+	'pfunc-convert-dimension-area' => 'area',
+	'pfunc-convert-dimension-volume' => 'volym',
+	'pfunc-convert-dimension-time' => 'tid',
+	'pfunc-convert-dimension-timesquared' => 'tid <sup>2</sup>',
+	'pfunc-convert-dimension-mass' => 'massa',
+	'pfunc-convert-dimension-speed' => 'hastighet',
+	'pfunc-convert-dimension-temperature' => 'temperatur',
+	'pfunc-convert-dimension-acceleration' => 'acceleration',
+	'pfunc-convert-dimension-force' => 'kraft',
+	'pfunc-convert-dimension-torque' => 'vridmoment',
+	'pfunc-convert-dimension-energy' => 'energi',
+	'pfunc-convert-dimension-pressure' => 'tryck',
+	'pfunc-convert-dimension-density' => 'densitet',
+	'pfunc-convert-prefix-yotta' => 'yotta',
+	'pfunc-convert-prefix-zetta' => 'zetta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'peta',
+	'pfunc-convert-prefix-tera' => 'tera',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mega',
+	'pfunc-convert-prefix-kilo' => 'kilo',
+	'pfunc-convert-prefix-hecto' => 'hekto',
+	'pfunc-convert-prefix-deca' => 'deka',
+	'pfunc-convert-prefix-deci' => 'deci',
+	'pfunc-convert-prefix-centi' => 'centi',
+	'pfunc-convert-prefix-milli' => 'milli',
+	'pfunc-convert-prefix-micro' => 'mikro',
+	'pfunc-convert-prefix-nano' => 'nano',
+	'pfunc-convert-prefix-pico' => 'piko',
+	'pfunc-convert-prefix-femto' => 'femto',
+	'pfunc-convert-prefix-atto' => 'atto',
+	'pfunc-convert-prefix-zepto' => 'zepto',
+	'pfunc-convert-prefix-yocto' => 'yokto',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2|$3meter|$3meter}}',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2|ångström|ångström}}',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2|engelsk mil|engelska mil}}',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2|furlong|furlonger}}',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2|chain|chains}}',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2|stång|stänger}}',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2|famn|famnar}}',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2|yard|yards}}',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2|fot|fot}}',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2|hand|händer}}',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2|tum|tum}}',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2|nautisk mil|nautiska mil}}',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2|nautisk mil (innan 1970, brittisk)|nautiska mil (innan 1970, brittisk)}}',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2|nautisk mil (innan 1954, USA)|nautiska mil (innan 1954, USA)}}',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2|$3parsec|$3parsec}}',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2|$3ljusår|$3ljusår}}',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2|astronomisk enhet|astronomiska enheter}}',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1chain',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1famn',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1nmi (Storbr.)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1nmi (innan 1954, USA)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1AU',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2|kvadratkilometer|kvadratkilometer}}',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2|kvadratmeter|kvadratmeter}}',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2|kvadratcentimeter|kvadratcentimeter}}',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2|kvadratmillimeter|kvadratmillimeter}}',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2|hektar|hektar}}',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2|kvadratmil|kvadratmil}}',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2|tunnland|tunnland}}',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2|kvadratyard|kvadratyard}}',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2|kvadratfot|kvadratfötter}}',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2|kvadrattum|kvadrattum}}',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2|kvadratisk nautisk mil|kvadratiska nautiska mil}}',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2|dunam|dunam}}',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2|tsubo|tsubo}}',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m<sup>2</sup>',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm<sup>2</sup>',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm<sup>2</sup>',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1kv mil',
+	'pfunc-convert-unit-area-acre-abbr' => '$1tunnland',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1kv yd',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1kv ft',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1kv in',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1kv nmi',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2|sekund|sekunder}}',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2|$3år|$3år}}',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2|dag|dagar}}',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2|timme|timmar}}',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2|minut|minuter}}',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-day-abbr' => '$1dag',
+	'pfunc-convert-unit-time-hour-abbr' => '$1tim',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2|kubikmeter|kubikmeter}}',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2|kubikcentimeter|kubikcentimeter}}',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2|kubikmillimeter|kubikmillimeter}}',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2|kiloliter|kiloliter}}',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2|liter|liter}}',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2|centiliter|centiliter}}',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2|milliliter|milliliter}}',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2|kubikyard|kubikyards}}',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2|kubikfot|kubikfötter}}',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2|kubiktum|kubiktum}}',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2|fat|fat}}',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2|gallon|gallons}}',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2|quart|quarts}}',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2|pint|pints}}',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2|gallon (USA, våt)|gallon (USA, våt)}}',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2|quart (USA, våt)|quart (USA, våt)}}',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2|pint (USA, våt)|pint (USA, våt)}}',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2|gallon (USA, torr)|gallon (USA, torr)}}',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2|quart (USA, torr)|quart (USA, torr)}}',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2|pint (USA, torr)|pint (USA, torr)}}',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm<sup>3</sup>',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm<sup>3</sup>',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3l',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal',
+	'pfunc-convert-unit-speed-mile-hour' => '$1miles per timme',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1mph',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2|$3pascal|$3pascal}}',
+	'pfunc-convert-unit-pressure-bar' => '$1bar',
+	'pfunc-convert-unit-pressure-millibar' => '$1millibar',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2|atmosfär|atmosfärer}}',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2|torr|torr}}',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2|millimeter kvicksilver|millimeter kvicksilver}}',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2|tum kvicksilver|tum kvicksilver}}',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Telugu (తెలుగు)
@@ -1685,6 +5069,28 @@
 	'pfunc_expr_not_a_number' => 'Дар $1: натиҷа адад нест',
 );
 
+/** Tajik (Latin) (Тоҷикӣ (Latin))
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'pfunc_desc' => 'Ba taçzehkunanda, dasturhoi mantiqī meafzojad',
+	'pfunc_time_error' => 'Xato: zamoni ƣajrimiçoz',
+	'pfunc_time_too_long' => 'Xato: #time faroxoniji beş az had',
+	'pfunc_rel2abs_invalid_depth' => 'Xato: Cuquriji ƣajrimiçoz dar nişonī: "$1" (taloş baroi dastrasi ba jak nişonī bolotar az nişoniji reşa)',
+	'pfunc_expr_stack_exhausted' => 'Xatoi ibora: Puşta az dast raftaast',
+	'pfunc_expr_unexpected_number' => 'Xatoi ibora: Adadi ƣajrimuntazir',
+	'pfunc_expr_preg_match_failure' => 'Xatoi ibora: Xatoi ƣajrimuntaziri preg_match',
+	'pfunc_expr_unrecognised_word' => 'Xatoi ibora: Kalimai noşinoxta "$1"',
+	'pfunc_expr_unexpected_operator' => 'Xatoi ibora: Amalgari ƣajrimuntaziri $1',
+	'pfunc_expr_missing_operand' => 'Xatoi ibora: Amalgari gumşuda baroi  $1',
+	'pfunc_expr_unexpected_closing_bracket' => 'Xatoi ibora: Qafsi bastai nomuntazir',
+	'pfunc_expr_unrecognised_punctuation' => 'Xatoi ibora: Alomati nuqtaguzoriji şinoxtanaşuda "$1"',
+	'pfunc_expr_unclosed_bracket' => 'Xatoi ibora: Qafsi bastanaşuda',
+	'pfunc_expr_division_by_zero' => 'Taqsim bar sifr',
+	'pfunc_expr_unknown_error' => 'Xatoi ibora: Xatoi noşinos ($1)',
+	'pfunc_expr_not_a_number' => 'Dar $1: natiça adad nest',
+);
+
 /** Thai (ไทย)
  * @author Ans
  */
@@ -1708,6 +5114,31 @@
 	'pfunc_expr_not_a_number' => '$1: ผลลัพธ์ไม่สามารถแทนด้วยจำนวน (NAN or not a number)',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'pfunc_desc' => 'Parseri logiki funksiýalar bilen güýçlendir',
+	'pfunc_time_error' => 'Säwlik: nädogry wagt',
+	'pfunc_time_too_long' => 'Säwlik: aşa köp #time çagyryşlary',
+	'pfunc_rel2abs_invalid_depth' => 'Säwlik: Ýolda nädogry çuňluk: "$1" (kök düwüniň üstündäki bir düwüne barjak boldy)',
+	'pfunc_expr_stack_exhausted' => 'Aňlatma säwligi: Stek gutardy',
+	'pfunc_expr_unexpected_number' => 'Aňlatma säwligi: Garaşylmaýan san',
+	'pfunc_expr_preg_match_failure' => 'Aňlatma säwligi: Garaşylmaýan preg_match näsazlygy',
+	'pfunc_expr_unrecognised_word' => 'Aňlatma säwligi: Bilinmeýän "$1" sözi',
+	'pfunc_expr_unexpected_operator' => 'Aňlatma säwligi: Garaşylmaýan $1 operatory',
+	'pfunc_expr_missing_operand' => 'Aňlatma säwligi: $1 üçin kem operand',
+	'pfunc_expr_unexpected_closing_bracket' => 'Aňlatma säwligi: Garaşylmaýan ýapyjy ýaý',
+	'pfunc_expr_unrecognised_punctuation' => 'Aňlatma säwligi: Bilinmeýän punktuasiýa simwoly "$1"',
+	'pfunc_expr_unclosed_bracket' => 'Aňlatma säwligi: Ýapylmadyk ýaý',
+	'pfunc_expr_division_by_zero' => 'Nola bölmek',
+	'pfunc_expr_invalid_argument' => '$1: < -1 ýa-da > 1 üçin nädogry argument',
+	'pfunc_expr_invalid_argument_ln' => 'ln: <= 0 üçin nädogry argument',
+	'pfunc_expr_unknown_error' => 'Aňlatma säwligi: Näbelli säwlik ($1)',
+	'pfunc_expr_not_a_number' => '$1-de: netije san däl',
+	'pfunc_string_too_long' => 'Säwlik: Setir $1 simwol çäginden geçýär',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -1730,6 +5161,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Hindi tanggap na pangangatwiran (argumento) para sa ln: <= 0',
 	'pfunc_expr_unknown_error' => 'Kamalian sa pagpapahayag: Hindi nalalamang kamalian ($1)',
 	'pfunc_expr_not_a_number' => 'Sa $1: ang kinalabasan ay hindi isang bilang',
+	'pfunc_string_too_long' => 'Kamalian: Lumampas ang bagting sa $1 hangganang panitik',
 );
 
 /** Turkish (Türkçe)
@@ -1754,9 +5186,11 @@
 	'pfunc_expr_invalid_argument_ln' => 'ln için geçersiz değişken: <= 0',
 	'pfunc_expr_unknown_error' => 'İfade hatası: Bilinmeyen hata ($1)',
 	'pfunc_expr_not_a_number' => "$1'de: sonuç bir sayı değil",
+	'pfunc_string_too_long' => 'Hata: Dize $1 karakter sınırını geçiyor',
 );
 
 /** Ukrainian (Українська)
+ * @author AS
  * @author Ahonc
  */
 $messages['uk'] = array(
@@ -1778,6 +5212,7 @@
 	'pfunc_expr_invalid_argument_ln' => 'Помилковий аргумент логарифма (має бути більший від нуля)',
 	'pfunc_expr_unknown_error' => 'Помилка виразу: невідома помилка ($1)',
 	'pfunc_expr_not_a_number' => 'У $1: результат не є числом',
+	'pfunc_string_too_long' => 'Помилка: довжина рядка перевищує межу в {{PLURAL:$1|$1 символ|$1 символи|$1 символів}}',
 );
 
 /** Vèneto (Vèneto)
@@ -1802,8 +5237,16 @@
 	'pfunc_expr_invalid_argument_ln' => 'Argomento mìa valido par ln: <= 0',
 	'pfunc_expr_unknown_error' => "Eror ne l'espression: eror sconossiùo ($1)",
 	'pfunc_expr_not_a_number' => "In $1: el risultato no'l xe mìa un nùmaro",
+	'pfunc_string_too_long' => 'Eròr: la stringa la va fora dal limite de {{PLURAL:$1|1 caràtere|$1 caràteri}}',
 );
 
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'pfunc_time_error' => 'Petuz: vär aig',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
@@ -1812,6 +5255,7 @@
 	'pfunc_desc' => 'Nâng cao bộ xử lý với những hàm cú pháp lôgic',
 	'pfunc_time_error' => 'Lỗi: thời gian không hợp lệ',
 	'pfunc_time_too_long' => 'Lỗi: quá nhiều lần gọi #time',
+	'pfunc_time_too_big' => 'Lỗi: #time chỉ hỗ trợ các năm cho tới 9999',
 	'pfunc_rel2abs_invalid_depth' => 'Lỗi: độ sâu không hợp lệ trong đường dẫn “$1” (do cố gắng truy cập nút phía trên nút gốc)',
 	'pfunc_expr_stack_exhausted' => 'Lỗi biểu thức: Đã cạn stack',
 	'pfunc_expr_unexpected_number' => 'Lỗi biểu thức: Dư số',
@@ -1827,6 +5271,197 @@
 	'pfunc_expr_invalid_argument_ln' => 'Tham số không hợp lệ cho ln: ≤ 0',
 	'pfunc_expr_unknown_error' => 'Lỗi biểu thức: Lỗi không rõ nguyên nhân ($1)',
 	'pfunc_expr_not_a_number' => 'Trong $1: kết quả không phải là kiểu số',
+	'pfunc_string_too_long' => 'Lỗi: Chuỗi vượt quá giới hạn $1 ký tự',
+	'pfunc-convert-dimensionmismatch' => 'Lỗi: Không thể chuyển đổi giữa các đơn vị “$1” và “$2”.',
+	'pfunc-convert-unknownunit' => 'Lỗi: Không hiểu đơn vị “$1”.',
+	'pfunc-convert-unknowndimension' => 'Lỗi: Không hiểu kích thước “$1”.',
+	'pfunc-convert-invalidcompoundunit' => 'Lỗi: Đơn vị ghép “$1” không hợp lệ.',
+	'pfunc-convert-nounit' => 'Lỗi: Không đưa vào đơn vị nguồn.',
+	'pfunc-convert-doublecompoundunit' => 'Lỗi: Không thể phân tích các đơn vị ghép đúp như “$1”.',
+	'pfunc-convert-dimension-length' => 'chiều dài',
+	'pfunc-convert-dimension-area' => 'diện tích',
+	'pfunc-convert-dimension-volume' => 'thể tích',
+	'pfunc-convert-dimension-time' => 'thời gian',
+	'pfunc-convert-dimension-timesquared' => 'thời gian²',
+	'pfunc-convert-dimension-mass' => 'khối lượng',
+	'pfunc-convert-dimension-speed' => 'tốc độ',
+	'pfunc-convert-dimension-temperature' => 'nhiệt độ',
+	'pfunc-convert-dimension-acceleration' => 'gia tốc',
+	'pfunc-convert-dimension-force' => 'lực lượng',
+	'pfunc-convert-dimension-torque' => 'mô men lực',
+	'pfunc-convert-dimension-energy' => 'năng lượng',
+	'pfunc-convert-dimension-power' => 'công suất',
+	'pfunc-convert-dimension-pressure' => 'áp suất',
+	'pfunc-convert-dimension-density' => 'mật độ',
+	'pfunc-convert-dimension-fuelefficiencypositive' => 'hiệu quả nhiên liệu dương',
+	'pfunc-convert-dimension-fuelefficiencynegative' => 'hiệu quả nhiên liệu âm',
+	'pfunc-convert-prefix-yotta' => 'yôta',
+	'pfunc-convert-prefix-zetta' => 'zêta',
+	'pfunc-convert-prefix-exa' => 'exa',
+	'pfunc-convert-prefix-peta' => 'pêta',
+	'pfunc-convert-prefix-tera' => 'têra',
+	'pfunc-convert-prefix-giga' => 'giga',
+	'pfunc-convert-prefix-mega' => 'mêga',
+	'pfunc-convert-prefix-kilo' => 'kilô',
+	'pfunc-convert-prefix-hecto' => 'hêctô',
+	'pfunc-convert-prefix-deca' => 'đềca',
+	'pfunc-convert-prefix-deci' => 'đêxi',
+	'pfunc-convert-prefix-centi' => 'xenti',
+	'pfunc-convert-prefix-milli' => 'mili',
+	'pfunc-convert-prefix-micro' => 'micrô',
+	'pfunc-convert-prefix-nano' => 'nanô',
+	'pfunc-convert-prefix-pico' => 'picô',
+	'pfunc-convert-prefix-femto' => 'femtô',
+	'pfunc-convert-prefix-atto' => 'atô',
+	'pfunc-convert-prefix-zepto' => 'zéptô',
+	'pfunc-convert-prefix-yocto' => 'yóctô',
+	'pfunc-convert-prefix-milli-abbr' => 'm',
+	'pfunc-convert-unit-length-metre' => '$1{{PLURAL:$2}}$3mét',
+	'pfunc-convert-unit-length-angstrom' => '$1{{PLURAL:$2}}ångström',
+	'pfunc-convert-unit-length-mile' => '$1{{PLURAL:$2}}dặm',
+	'pfunc-convert-unit-length-furlong' => '$1{{PLURAL:$2}}furlong',
+	'pfunc-convert-unit-length-chain' => '$1{{PLURAL:$2}}chain',
+	'pfunc-convert-unit-length-rod' => '$1{{PLURAL:$2}}rod',
+	'pfunc-convert-unit-length-fathom' => '$1{{PLURAL:$2}}fathom',
+	'pfunc-convert-unit-length-yard' => '$1{{PLURAL:$2}}yard',
+	'pfunc-convert-unit-length-foot' => '$1{{PLURAL:$2}}foot',
+	'pfunc-convert-unit-length-hand' => '$1{{PLURAL:$2}}hand',
+	'pfunc-convert-unit-length-inch' => '$1{{PLURAL:$2}}inch',
+	'pfunc-convert-unit-length-nauticalmile' => '$1{{PLURAL:$2}}hải lý',
+	'pfunc-convert-unit-length-nauticalmileuk' => '$1{{PLURAL:$2}}hải lý (Anh trước 1970)',
+	'pfunc-convert-unit-length-nauticalmileus' => '$1{{PLURAL:$2}}hải lý (Mỹ trước 1954)',
+	'pfunc-convert-unit-length-parsec' => '$1{{PLURAL:$2}}$3parsec',
+	'pfunc-convert-unit-length-lightyear' => '$1{{PLURAL:$2}}$3 năm ánh sáng',
+	'pfunc-convert-unit-length-astronomicalunit' => '$1{{PLURAL:$2}}đơn vị thiên văn',
+	'pfunc-convert-unit-length-furlong-abbr' => '$1furlong',
+	'pfunc-convert-unit-length-chain-abbr' => '$1chain',
+	'pfunc-convert-unit-length-rod-abbr' => '$1rd',
+	'pfunc-convert-unit-length-fathom-abbr' => '$1fathom',
+	'pfunc-convert-unit-length-yard-abbr' => '$1yd',
+	'pfunc-convert-unit-length-foot-abbr' => '$1ft',
+	'pfunc-convert-unit-length-hand-abbr' => '$1h',
+	'pfunc-convert-unit-length-inch-abbr' => '$1in',
+	'pfunc-convert-unit-length-nauticalmile-abbr' => '$1nmi',
+	'pfunc-convert-unit-length-nauticalmileuk-abbr' => '$1nmi (Anh)',
+	'pfunc-convert-unit-length-nauticalmileus-abbr' => '$1nmi (Mỹ trước 1954)',
+	'pfunc-convert-unit-length-parsec-abbr' => '$1$3pc',
+	'pfunc-convert-unit-length-lightyear-abbr' => '$1$3ly',
+	'pfunc-convert-unit-length-astronomicalunit-abbr' => '$1ua',
+	'pfunc-convert-unit-area-squarekilometre' => '$1{{PLURAL:$2}}kilômét vuông',
+	'pfunc-convert-unit-area-squaremetre' => '$1{{PLURAL:$2}}mét vuông',
+	'pfunc-convert-unit-area-squarecentimetre' => '$1{{PLURAL:$2}}xentimét vuông',
+	'pfunc-convert-unit-area-squaremillimetre' => '$1{{PLURAL:$2}}millimét vuông',
+	'pfunc-convert-unit-area-hectare' => '$1{{PLURAL:$2}}hecta',
+	'pfunc-convert-unit-area-squaremile' => '$1{{PLURAL:$2}}dặm vuông',
+	'pfunc-convert-unit-area-acre' => '$1{{PLURAL:$2}}mẫu Anh',
+	'pfunc-convert-unit-area-squareyard' => '$1{{PLURAL:$2}}yard vuông',
+	'pfunc-convert-unit-area-squarefoot' => '$1{{PLURAL:$2}}foot vuông',
+	'pfunc-convert-unit-area-squareinch' => '$1{{PLURAL:$2}}inch vuông',
+	'pfunc-convert-unit-area-squarenauticalmile' => '$1{{PLURAL:$2}}hải lý vuông',
+	'pfunc-convert-unit-area-dunam' => '$1{{PLURAL:$2}}dunam',
+	'pfunc-convert-unit-area-tsubo' => '$1{{PLURAL:$2}}tsubo',
+	'pfunc-convert-unit-area-squarekilometre-abbr' => '$1km²',
+	'pfunc-convert-unit-area-squaremetre-abbr' => '$1m²',
+	'pfunc-convert-unit-area-squarecentimetre-abbr' => '$1cm²',
+	'pfunc-convert-unit-area-squaremillimetre-abbr' => '$1mm²',
+	'pfunc-convert-unit-area-hectare-abbr' => '$1ha',
+	'pfunc-convert-unit-area-squaremile-abbr' => '$1sq mi',
+	'pfunc-convert-unit-area-acre-abbr' => '$1mẫu',
+	'pfunc-convert-unit-area-squareyard-abbr' => '$1sq yd',
+	'pfunc-convert-unit-area-squarefoot-abbr' => '$1sq ft',
+	'pfunc-convert-unit-area-squareinch-abbr' => '$1sq in',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1sq nmi',
+	'pfunc-convert-unit-area-dunam-abbr' => '$1dunam',
+	'pfunc-convert-unit-area-tsubo-abbr' => '$1tsubo',
+	'pfunc-convert-unit-time-second' => '$1{{PLURAL:$2}}giây',
+	'pfunc-convert-unit-time-year' => '$1{{PLURAL:$2}}$3 năm',
+	'pfunc-convert-unit-time-day' => '$1{{PLURAL:$2}}ngày',
+	'pfunc-convert-unit-time-hour' => '$1{{PLURAL:$2}}giờ',
+	'pfunc-convert-unit-time-minute' => '$1{{PLURAL:$2}}phút',
+	'pfunc-convert-unit-time-second-abbr' => '$1s',
+	'pfunc-convert-unit-time-year-abbr' => '$1$3yr',
+	'pfunc-convert-unit-time-day-abbr' => '$1ngày',
+	'pfunc-convert-unit-time-hour-abbr' => '$1h',
+	'pfunc-convert-unit-time-minute-abbr' => '$1min',
+	'pfunc-convert-unit-volume-cubicmetre' => '$1{{PLURAL:$2}}mét khối',
+	'pfunc-convert-unit-volume-cubiccentimetre' => '$1{{PLURAL:$2}}xentimét khối',
+	'pfunc-convert-unit-volume-cubicmillimetre' => '$1{{PLURAL:$2}}milimét khối',
+	'pfunc-convert-unit-volume-kilolitre' => '$1{{PLURAL:$2}}kilôlít',
+	'pfunc-convert-unit-volume-litre' => '$1{{PLURAL:$2}}lít',
+	'pfunc-convert-unit-volume-centilitre' => '$1{{PLURAL:$2}}xentilít',
+	'pfunc-convert-unit-volume-millilitre' => '$1{{PLURAL:$2}}mililít',
+	'pfunc-convert-unit-volume-cubicyard' => '$1{{PLURAL:$2}}yard khối',
+	'pfunc-convert-unit-volume-cubicfoot' => '$1{{PLURAL:$2}}foot khối',
+	'pfunc-convert-unit-volume-cubicinch' => '$1{{PLURAL:$2}}inch khối',
+	'pfunc-convert-unit-volume-barrel' => '$1{{PLURAL:$2}}thùng',
+	'pfunc-convert-unit-volume-bushel' => '$1{{PLURAL:$2}}giạ',
+	'pfunc-convert-unit-volume-gallon' => '$1{{PLURAL:$2}}gallon',
+	'pfunc-convert-unit-volume-quart' => '$1{{PLURAL:$2}}quart',
+	'pfunc-convert-unit-volume-pint' => '$1{{PLURAL:$2}}pint',
+	'pfunc-convert-unit-volume-fluidounce' => '$1{{PLURAL:$2}}aoxơ chất lỏng',
+	'pfunc-convert-unit-volume-barrelus' => '$1{{PLURAL:$2}}thùng Mỹ',
+	'pfunc-convert-unit-volume-barreloil' => '$1{{PLURAL:$2}}thùng',
+	'pfunc-convert-unit-volume-barrelbeer' => '$1{{PLURAL:$2}}thùng',
+	'pfunc-convert-unit-volume-usgallon' => '$1{{PLURAL:$2}}gallon Mỹ',
+	'pfunc-convert-unit-volume-usquart' => '$1{{PLURAL:$2}}quart Mỹ',
+	'pfunc-convert-unit-volume-uspint' => '$1{{PLURAL:$2}}pint Mỹ',
+	'pfunc-convert-unit-volume-usfluidounce' => '$1{{PLURAL:$2}}aoxơ chất lỏng Mỹ',
+	'pfunc-convert-unit-volume-usdrybarrel' => '$1{{PLURAL:$2}}thùng chất khô Mỹ',
+	'pfunc-convert-unit-volume-usbushel' => '$1{{PLURAL:$2}}thùng Mỹ',
+	'pfunc-convert-unit-volume-usdrygallon' => '$1{{PLURAL:$2}}gallon chất khô Mỹ',
+	'pfunc-convert-unit-volume-usdryquart' => '$1{{PLURAL:$2}}quart chất khô Mỹ',
+	'pfunc-convert-unit-volume-usdrypint' => '$1{{PLURAL:$2}}pint chất khô Mỹ',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m³',
+	'pfunc-convert-unit-volume-cubiccentimetre-abbr' => '$1cm³',
+	'pfunc-convert-unit-volume-cubicmillimetre-abbr' => '$1mm³',
+	'pfunc-convert-unit-volume-litre-abbr' => '$1$3l',
+	'pfunc-convert-unit-volume-cubicyard-abbr' => '$1cu yd',
+	'pfunc-convert-unit-volume-cubicfoot-abbr' => '$1cu ft',
+	'pfunc-convert-unit-volume-cubicinch-abbr' => '$1cu in',
+	'pfunc-convert-unit-volume-barrel-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-bushel-abbr' => '$1bsh',
+	'pfunc-convert-unit-volume-gallon-abbr' => '$1gal',
+	'pfunc-convert-unit-volume-quart-abbr' => '$1qt',
+	'pfunc-convert-unit-volume-pint-abbr' => '$1pt',
+	'pfunc-convert-unit-volume-fluidounce-abbr' => '$1fl oz',
+	'pfunc-convert-unit-volume-barrelus-abbr' => '$1bbl Mỹ',
+	'pfunc-convert-unit-volume-barreloil-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-barrelbeer-abbr' => '$1bbl',
+	'pfunc-convert-unit-volume-usgallon-abbr' => '$1gal Mỹ',
+	'pfunc-convert-unit-volume-usquart-abbr' => '$1qt Mỹ',
+	'pfunc-convert-unit-volume-uspint-abbr' => '$1pt Mỹ',
+	'pfunc-convert-unit-volume-usfluidounce-abbr' => '$1fl oz Mỹ',
+	'pfunc-convert-unit-volume-usdrybarrel-abbr' => '$1bbl Mỹ',
+	'pfunc-convert-unit-volume-usbushel-abbr' => '$1bsh Mỹ',
+	'pfunc-convert-unit-volume-usdrygallon-abbr' => '$1dry gal Mỹ',
+	'pfunc-convert-unit-volume-usdryquart-abbr' => '$1dry qt Mỹ',
+	'pfunc-convert-unit-volume-usdrypint-abbr' => '$1dry pt Mỹ',
+	'pfunc-convert-unit-speed-mile-hour' => '$1dặm một giờ',
+	'pfunc-convert-unit-speed-speedoflight' => '$1c',
+	'pfunc-convert-unit-speed-mile-hour-abbr' => '$1mph',
+	'pfunc-convert-unit-speed-speedoflight-abbr' => '$1c',
+	'pfunc-convert-unit-pressure-pascal' => '$1{{PLURAL:$2}}$3pascal',
+	'pfunc-convert-unit-pressure-bar' => '$1ba',
+	'pfunc-convert-unit-pressure-decibar' => '$1đêxiba',
+	'pfunc-convert-unit-pressure-millibar' => '$1miliba',
+	'pfunc-convert-unit-pressure-kilobarye' => '$1kilôbarye',
+	'pfunc-convert-unit-pressure-barye' => '$1barye',
+	'pfunc-convert-unit-pressure-atmosphere' => '$1{{PLURAL:$2}}atmôtphe',
+	'pfunc-convert-unit-pressure-torr' => '$1{{PLURAL:$2}}torr',
+	'pfunc-convert-unit-pressure-mmhg' => '$1{{PLURAL:$2}}milimét thủy ngân',
+	'pfunc-convert-unit-pressure-inhg' => '$1{{PLURAL:$2}}inch thủy ngân',
+	'pfunc-convert-unit-pressure-psi' => '$1{{PLURAL:$2}}pound một inch vuông',
+	'pfunc-convert-unit-pressure-pascal-abbr' => '$1$3Pa',
+	'pfunc-convert-unit-pressure-bar-abbr' => '$1bar',
+	'pfunc-convert-unit-pressure-decibar-abbr' => '$1dbar',
+	'pfunc-convert-unit-pressure-millibar-abbr' => '$1mbar',
+	'pfunc-convert-unit-pressure-kilobarye-abbr' => '$1kBa',
+	'pfunc-convert-unit-pressure-barye-abbr' => '$1Ba',
+	'pfunc-convert-unit-pressure-atmosphere-abbr' => '$1atm',
+	'pfunc-convert-unit-pressure-torr-abbr' => '$1Torr',
+	'pfunc-convert-unit-pressure-mmhg-abbr' => '$1mmHg',
+	'pfunc-convert-unit-pressure-inhg-abbr' => '$1inHg',
+	'pfunc-convert-unit-pressure-psi-abbr' => '$1psi',
 );
 
 /** Volapük (Volapük)
@@ -1839,7 +5474,27 @@
 	'pfunc_expr_not_a_number' => 'In $1: sek no binon num',
 );
 
-/** Yue (粵語)
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'pfunc_time_error' => 'גרײַז: אומגילטיגע צײַט',
+	'pfunc_expr_unexpected_operator' => 'אויסדריק גרײַז: אומגעריכטער $1 אפעראַטאר',
+	'pfunc_expr_unclosed_bracket' => 'אויסדריק גרײַז: אומגעשלאסענער קלאַמער',
+	'pfunc_expr_not_a_number' => 'אין $1: רעזולטאַט איז נישט קיין נומער',
+);
+
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'pfunc_time_error' => 'Àsìṣe: àsìkò àìtọ́',
+	'pfunc_expr_unexpected_number' => 'Àsìṣe ìgbékalẹ̀ọ̀rọ̀: Nọ́mbà àìretí',
+	'pfunc_expr_division_by_zero' => 'Pínpín pẹ̀lú òdo',
+	'pfunc_expr_not_a_number' => 'Nínú $1: èsì kìí ṣe nọ́mbà',
+);
+
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
@@ -1864,13 +5519,18 @@
 );
 
 /** Simplified Chinese (‪中文(简体)‬)
+ * @author Hydra
+ * @author Liangent
+ * @author PhiLiP
  * @author Philip
  * @author Shinjiman
+ * @author 阿pp
  */
 $messages['zh-hans'] = array(
-	'pfunc_desc' => '用逻辑功能去加强分析程序',
+	'pfunc_desc' => '用逻辑函数加强解析器',
 	'pfunc_time_error' => '错误:无效时间',
 	'pfunc_time_too_long' => '错误:#time调用次数过多',
+	'pfunc_time_too_big' => '错误:#time只支持到9999年',
 	'pfunc_rel2abs_invalid_depth' => '错误:无效路径深度:“$1”(尝试访问根节点以上节点)',
 	'pfunc_expr_stack_exhausted' => '表达式错误:堆栈耗尽',
 	'pfunc_expr_unexpected_number' => '表达式错误:未预料的数字',
@@ -1886,29 +5546,41 @@
 	'pfunc_expr_invalid_argument_ln' => 'ln的无效参数:<= 0',
 	'pfunc_expr_unknown_error' => '表达式错误:未知错误($1)',
 	'pfunc_expr_not_a_number' => '在$1中:结果不是数字',
+	'pfunc_string_too_long' => '错误:字符串超过$1字符限制',
+	'pfunc-convert-dimension-time' => '时间',
+	'pfunc-convert-dimension-mass' => '重量',
+	'pfunc-convert-dimension-speed' => '速度',
+	'pfunc-convert-unit-area-squarenauticalmile-abbr' => '$1平方海里',
+	'pfunc-convert-unit-volume-cubicmetre-abbr' => '$1m<sup>3</sup>',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Gaoxuewei
+ * @author Liangent
+ * @author Mark85296341
  * @author Shinjiman
+ * @author Waihorace
  */
 $messages['zh-hant'] = array(
-	'pfunc_desc' => '用邏輯功能去加強分析程式',
+	'pfunc_desc' => '用邏輯函數加強解析器',
 	'pfunc_time_error' => '錯誤:無效時間',
-	'pfunc_time_too_long' => '錯誤:過多的#time呼叫',
+	'pfunc_time_too_long' => '錯誤:過多的 #time 呼叫',
+	'pfunc_time_too_big' => '錯誤:#時間只支援至9999年',
 	'pfunc_rel2abs_invalid_depth' => '錯誤:無效路徑深度:「$1」(嘗試訪問頂點以上節點)',
 	'pfunc_expr_stack_exhausted' => '表達式錯誤:堆疊耗盡',
 	'pfunc_expr_unexpected_number' => '表達式錯誤:未預料的數字',
-	'pfunc_expr_preg_match_failure' => '表達式錯誤:未預料的preg_match失敗',
+	'pfunc_expr_preg_match_failure' => '表達式錯誤:未預料的 preg_match 失敗',
 	'pfunc_expr_unrecognised_word' => '表達式錯誤:無法識別的詞語「$1」',
-	'pfunc_expr_unexpected_operator' => '表達式錯誤:未預料的$1運算子',
-	'pfunc_expr_missing_operand' => '表達式錯誤:缺少$1的運算元',
+	'pfunc_expr_unexpected_operator' => '表達式錯誤:未預料的 $1 運算子',
+	'pfunc_expr_missing_operand' => '表達式錯誤:缺少 $1 的運算元',
 	'pfunc_expr_unexpected_closing_bracket' => '表達式錯誤:未預料的反括號',
 	'pfunc_expr_unrecognised_punctuation' => '表達式錯誤:無法識別的標點「$1」',
 	'pfunc_expr_unclosed_bracket' => '表達式錯誤:未封閉的括號',
-	'pfunc_expr_division_by_zero' => '零除',
-	'pfunc_expr_invalid_argument' => '$1的無效參量:< -1 或 > 1',
-	'pfunc_expr_invalid_argument_ln' => 'ln的無效參量:<= 0',
+	'pfunc_expr_division_by_zero' => '除以零',
+	'pfunc_expr_invalid_argument' => '$1 的無效參量:< -1 或 > 1',
+	'pfunc_expr_invalid_argument_ln' => 'ln 的無效參量:<= 0',
 	'pfunc_expr_unknown_error' => '表達式錯誤:未知錯誤($1)',
-	'pfunc_expr_not_a_number' => '在$1中:結果不是數字',
+	'pfunc_expr_not_a_number' => '在 $1 中:結果不是數字',
+	'pfunc_string_too_long' => '錯誤:字符串超過$1字符限制',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -4,552 +4,107 @@
 	die( 'This file is a MediaWiki extension, it is not a valid entry point' );
 }
 
-$wgExtensionFunctions[] = 'wfSetupParserFunctions';
-$wgExtensionCredits['parserhook'][] = array(
-	'name' => 'ParserFunctions',
-	'version' => '1.1.1',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:ParserFunctions',
-	'author' => 'Tim Starling',
-	'description' => 'Enhance parser with logical functions',
-	'descriptionmsg' => 'pfunc_desc',
-);
+/**
+ * CONFIGURATION
+ * These variables may be overridden in LocalSettings.php after you include the
+ * extension file.
+ */
 
-$wgExtensionMessagesFiles['ParserFunctions'] = dirname(__FILE__) . '/ParserFunctions.i18n.php';
-$wgHooks['LanguageGetMagic'][]       = 'wfParserFunctionsLanguageGetMagic';
+/**
+ * Defines the maximum length of a string that string functions are allowed to operate on
+ * Prevention against denial of service by string function abuses.
+ */
+$wgPFStringLengthLimit = 1000;
 
-$wgParserTestFiles[] = dirname( __FILE__ ) . "/funcsParserTests.txt";
+/**
+ * Enable string functions.
+ *
+ * Set this to true if you want your users to be able to implement their own
+ * parsers in the ugliest, most inefficient programming language known to man:
+ * MediaWiki wikitext with ParserFunctions.
+ *
+ * WARNING: enabling this may have an adverse impact on the sanity of your users.
+ * An alternative, saner solution for embedding complex text processing in
+ * MediaWiki templates can be found at: http://www.mediawiki.org/wiki/Extension:Lua
+ */
+$wgPFEnableStringFunctions = false;
 
-class ExtParserFunctions {
-	var $mExprParser;
-	var $mTimeCache = array();
-	var $mTimeChars = 0;
-	var $mMaxTimeChars = 6000; # ~10 seconds
+/**
+ * Enable Convert parser for converting between units of measurement
+ */
+$wgPFEnableConvert = false;
 
-	function registerParser( &$parser ) {
-		if ( defined( get_class( $parser ) . '::SFH_OBJECT_ARGS' ) ) {
-			// These functions accept DOM-style arguments
-			$parser->setFunctionHook( 'if', array( &$this, 'ifObj' ), SFH_OBJECT_ARGS );
-			$parser->setFunctionHook( 'ifeq', array( &$this, 'ifeqObj' ), SFH_OBJECT_ARGS );
-			$parser->setFunctionHook( 'switch', array( &$this, 'switchObj' ), SFH_OBJECT_ARGS );
-			$parser->setFunctionHook( 'ifexist', array( &$this, 'ifexistObj' ), SFH_OBJECT_ARGS );
-			$parser->setFunctionHook( 'ifexpr', array( &$this, 'ifexprObj' ), SFH_OBJECT_ARGS );
-			$parser->setFunctionHook( 'iferror', array( &$this, 'iferrorObj' ), SFH_OBJECT_ARGS );
-		} else {
-			$parser->setFunctionHook( 'if', array( &$this, 'ifHook' ) );
-			$parser->setFunctionHook( 'ifeq', array( &$this, 'ifeq' ) );
-			$parser->setFunctionHook( 'switch', array( &$this, 'switchHook' ) );
-			$parser->setFunctionHook( 'ifexist', array( &$this, 'ifexist' ) );
-			$parser->setFunctionHook( 'ifexpr', array( &$this, 'ifexpr' ) );
-			$parser->setFunctionHook( 'iferror', array( &$this, 'iferror' ) );
-		}
+/**
+ * The language for 'en' is actually 'en-us', which insists on using non-canonical translations
+ * of the SI base units ("meter" rather than "metre" and "liter" rather than "litre").  We
+ * can avoid contaminatng dialects by internally mapping languages by default; this is
+ * configurable so you can remove it if you like, or add other maps if that's useful.
+ * Essentially, if your wiki's $wgContLang appears as a key in this array, the value is
+ * what is used as the default language for {{#convert}} output.
+ */
+$wgPFUnitLanguageVariants = array(
+   'en' => 'en-gb'
+);
 
-		$parser->setFunctionHook( 'expr', array( &$this, 'expr' ) );
-		$parser->setFunctionHook( 'time', array( &$this, 'time' ) );
-		$parser->setFunctionHook( 'timel', array( &$this, 'localTime' ) );
-		$parser->setFunctionHook( 'rel2abs', array( &$this, 'rel2abs' ) );
-		$parser->setFunctionHook( 'titleparts', array( &$this, 'titleparts' ) );
+/** REGISTRATION */
+$wgExtensionCredits['parserhook'][] = array(
+	'path' => __FILE__,
+	'name' => 'ParserFunctions',
+	'version' => '1.4.1',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:ParserFunctions',
+	'author' => array( 'Tim Starling', 'Robert Rohde', 'Ross McClure', 'Juraj Simlovic' ),
+	'descriptionmsg' => 'pfunc_desc',
+);
 
-		return true;
-	}
+$wgAutoloadClasses['ExtParserFunctions'] = dirname( __FILE__ ) . '/ParserFunctions_body.php';
+$wgAutoloadClasses['ExprParser'] = dirname( __FILE__ ) . '/Expr.php';
+$wgAutoloadClasses['ConvertParser'] = dirname( __FILE__ ) . '/Convert.php';
 
-	function clearState(&$parser) {
-		$this->mTimeChars = 0;
-		$parser->pf_ifexist_breakdown = array();
-		return true;
-	}
+$wgExtensionMessagesFiles['ParserFunctions'] = dirname( __FILE__ ) . '/ParserFunctions.i18n.php';
+$wgExtensionMessagesFiles['ParserFunctionsMagic'] = dirname( __FILE__ ) . '/ParserFunctions.i18n.magic.php';
 
-	function &getExprParser() {
-		if ( !isset( $this->mExprParser ) ) {
-			if ( !class_exists( 'ExprParser' ) ) {
-				require( dirname( __FILE__ ) . '/Expr.php' );
-			}
-			$this->mExprParser = new ExprParser;
-		}
-		return $this->mExprParser;
-	}
+$wgParserTestFiles[] = dirname( __FILE__ ) . "/funcsParserTests.txt";
+$wgParserTestFiles[] = dirname( __FILE__ ) . "/stringFunctionTests.txt";
+$wgParserTestFiles[] = dirname( __FILE__ ) . "/convertTests.txt";
 
-	function expr( &$parser, $expr = '' ) {
-		try {
-			return $this->getExprParser()->doExpression( $expr );
-		} catch(ExprError $e) {
-			return $e->getMessage();
-		}
-	}
+$wgHooks['ParserFirstCallInit'][] = 'wfRegisterParserFunctions';
 
-	function ifexpr( &$parser, $expr = '', $then = '', $else = '' ) {
-		try{
-			if($this->getExprParser()->doExpression( $expr )) {
-				return $then;
-			} else {
-				return $else;
-			}
-		} catch (ExprError $e){
-			return $e->getMessage();
-		}
-	}
+/**
+ * @param $parser Parser
+ * @return bool
+ */
+function wfRegisterParserFunctions( $parser ) {
+	global $wgPFEnableStringFunctions, $wgPFEnableConvert;
 
-	function ifexprObj( $parser, $frame, $args ) {
-		$expr = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
-		$then = isset( $args[1] ) ? $args[1] : '';
-		$else = isset( $args[2] ) ? $args[2] : '';
-		$result = $this->ifexpr( $parser, $expr, $then, $else );
-		if ( is_object( $result ) ) {
-			$result = trim( $frame->expand( $result ) );
-		}
-		return $result;
-	}
+	// These functions accept DOM-style arguments
+	$parser->setFunctionHook( 'if', 'ExtParserFunctions::ifObj', SFH_OBJECT_ARGS );
+	$parser->setFunctionHook( 'ifeq', 'ExtParserFunctions::ifeqObj', SFH_OBJECT_ARGS );
+	$parser->setFunctionHook( 'switch', 'ExtParserFunctions::switchObj', SFH_OBJECT_ARGS );
+	$parser->setFunctionHook( 'ifexist', 'ExtParserFunctions::ifexistObj', SFH_OBJECT_ARGS );
+	$parser->setFunctionHook( 'ifexpr', 'ExtParserFunctions::ifexprObj', SFH_OBJECT_ARGS );
+	$parser->setFunctionHook( 'iferror', 'ExtParserFunctions::iferrorObj', SFH_OBJECT_ARGS );
 
-	function ifHook( &$parser, $test = '', $then = '', $else = '' ) {
-		if ( $test !== '' ) {
-			return $then;
-		} else {
-			return $else;
-		}
-	}
+	$parser->setFunctionHook( 'expr', 'ExtParserFunctions::expr' );
+	$parser->setFunctionHook( 'time', 'ExtParserFunctions::time' );
+	$parser->setFunctionHook( 'timel', 'ExtParserFunctions::localTime' );
+	$parser->setFunctionHook( 'rel2abs', 'ExtParserFunctions::rel2abs' );
+	$parser->setFunctionHook( 'titleparts', 'ExtParserFunctions::titleparts' );
 
-	function ifObj( &$parser, $frame, $args ) {
-		$test = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
-		if ( $test !== '' ) {
-			return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
-		} else {
-			return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : '';
-		}
+	// String Functions
+	if ( $wgPFEnableStringFunctions ) {
+		$parser->setFunctionHook( 'len',       'ExtParserFunctions::runLen'       );
+		$parser->setFunctionHook( 'pos',       'ExtParserFunctions::runPos'       );
+		$parser->setFunctionHook( 'rpos',      'ExtParserFunctions::runRPos'      );
+		$parser->setFunctionHook( 'sub',       'ExtParserFunctions::runSub'       );
+		$parser->setFunctionHook( 'count',     'ExtParserFunctions::runCount'     );
+		$parser->setFunctionHook( 'replace',   'ExtParserFunctions::runReplace'   );
+		$parser->setFunctionHook( 'explode',   'ExtParserFunctions::runExplode'   );
+		$parser->setFunctionHook( 'urldecode', 'ExtParserFunctions::runUrlDecode' );
 	}
 
-	function ifeq( &$parser, $left = '', $right = '', $then = '', $else = '' ) {
-		if ( $left == $right ) {
-			return $then;
-		} else {
-			return $else;
-		}
+	if( $wgPFEnableConvert ) {
+		$parser->setFunctionHook( 'convert', 'ExtParserFunctions::convert' );
 	}
 
-	function ifeqObj( &$parser, $frame, $args ) {
-		$left = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
-		$right = isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
-		if ( $left == $right ) {
-			return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : '';
-		} else {
-			return isset( $args[3] ) ? trim( $frame->expand( $args[3] ) ) : '';
-		}
-	}
-
-	function iferror( &$parser, $test = '', $then = '', $else = false ) {
-		if ( preg_match( '/<(?:strong|span|p|div)\s(?:[^\s>]*\s+)*?class="(?:[^"\s>]*\s+)*?error(?:\s[^">]*)?"/', $test ) ) {
-			return $then;
-		} elseif ( $else === false ) {
-			return $test;
-		} else {
-			return $else;
-		}
-	}
-
-	function iferrorObj( &$parser, $frame, $args ) {
-		$test = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
-		$then = isset( $args[1] ) ? $args[1] : false;
-		$else = isset( $args[2] ) ? $args[2] : false;
-		$result = $this->iferror( $parser, $test, $then, $else );
-		if ( $result === false ) {
-			return '';
-		} else {
-			return trim( $frame->expand( $result ) );
-		}
-	}
-
-	function switchHook( &$parser /*,...*/ ) {
-		$args = func_get_args();
-		array_shift( $args );
-		$primary = trim(array_shift($args));
-		$found = false;
-		$parts = null;
-		$default = null;
-		$mwDefault =& MagicWord::get( 'default' );
-		foreach( $args as $arg ) {
-			$parts = array_map( 'trim', explode( '=', $arg, 2 ) );
-			if ( count( $parts ) == 2 ) {
-				# Found "="
-				if ( $found || $parts[0] == $primary ) {
-					# Found a match, return now
-					return $parts[1];
-				} else {
-					if ( $mwDefault->matchStartAndRemove( $parts[0] ) ) {
-						$default = $parts[1];
-					} # else wrong case, continue
-				}
-			} elseif ( count( $parts ) == 1 ) {
-				# Multiple input, single output
-				# If the value matches, set a flag and continue
-				if ( $parts[0] == $primary ) {
-					$found = true;
-				}
-			} # else RAM corruption due to cosmic ray?
-		}
-		# Default case
-		# Check if the last item had no = sign, thus specifying the default case
-		if ( count( $parts ) == 1) {
-			return $parts[0];
-		} elseif ( !is_null( $default ) ) {
-			return $default;
-		} else {
-			return '';
-		}
-	}
-
-	function switchObj( $parser, $frame, $args ) {
-		if ( count( $args ) == 0 ) {
-			return '';
-		}
-		$primary = trim( $frame->expand( array_shift( $args ) ) );
-		$found = false;
-		$default = null;
-		$lastItemHadNoEquals = false;
-		$mwDefault =& MagicWord::get( 'default' );
-		foreach ( $args as $arg ) {
-			$bits = $arg->splitArg();
-			$nameNode = $bits['name'];
-			$index = $bits['index'];
-			$valueNode = $bits['value'];
-
-			if ( $index === '' ) {
-				# Found "="
-				$lastItemHadNoEquals = false;
-				$test = trim( $frame->expand( $nameNode ) );
-				if ( $found ) {
-					# Multiple input match
-					return trim( $frame->expand( $valueNode ) );
-				} else {
-					$test = trim( $frame->expand( $nameNode ) );
-					if ( $test == $primary ) {
-						# Found a match, return now
-						return trim( $frame->expand( $valueNode ) );
-					} else {
-						if ( $mwDefault->matchStartAndRemove( $test ) ) {
-							$default = $valueNode;
-						} # else wrong case, continue
-					}
-				}
-			} else {
-				# Multiple input, single output
-				# If the value matches, set a flag and continue
-				$lastItemHadNoEquals = true;
-				$test = trim( $frame->expand( $valueNode ) );
-				if ( $test == $primary ) {
-					$found = true;
-				}
-			}
-		}
-		# Default case
-		# Check if the last item had no = sign, thus specifying the default case
-		if ( $lastItemHadNoEquals ) {
-			return $test;
-		} elseif ( !is_null( $default ) ) {
-			return trim( $frame->expand( $default ) );
-		} else {
-			return '';
-		}
-	}
-
-	/**
-	 * Returns the absolute path to a subpage, relative to the current article
-	 * title. Treats titles as slash-separated paths.
-	 *
-	 * Following subpage link syntax instead of standard path syntax, an
-	 * initial slash is treated as a relative path, and vice versa.
-	 */
-	public function rel2abs( &$parser , $to = '' , $from = '' ) {
-
-		$from = trim($from);
-		if( $from == '' ) {
-			$from = $parser->getTitle()->getPrefixedText();
-		}
-
-		$to = rtrim( $to , ' /' );
-
-		// if we have an empty path, or just one containing a dot
-		if( $to == '' || $to == '.' ) {
-			return $from;
-		}
-
-		// if the path isn't relative
-		if ( substr( $to , 0 , 1) != '/' &&
-		 substr( $to , 0 , 2) != './' &&
-		 substr( $to , 0 , 3) != '../' &&
-		 $to != '..' )
-		{
-			$from = '';
-		}
-		// Make a long path, containing both, enclose it in /.../
-		$fullPath = '/' . $from . '/' .  $to . '/';
-
-		// remove redundant current path dots
-		$fullPath = preg_replace( '!/(\./)+!', '/', $fullPath );
-
-		// remove double slashes
-		$fullPath = preg_replace( '!/{2,}!', '/', $fullPath );
-
-		// remove the enclosing slashes now
-		$fullPath = trim( $fullPath , '/' );
-		$exploded = explode ( '/' , $fullPath );
-		$newExploded = array();
-
-		foreach ( $exploded as $current ) {
-			if( $current == '..' ) { // removing one level
-				if( !count( $newExploded ) ){
-					// attempted to access a node above root node
-					wfLoadExtensionMessages( 'ParserFunctions' );
-					return '<strong class="error">' . wfMsgForContent( 'pfunc_rel2abs_invalid_depth', $fullPath ) . '</strong>';
-				}
-				// remove last level from the stack
-				array_pop( $newExploded );
-			} else {
-				// add the current level to the stack
-				$newExploded[] = $current;
-			}
-		}
-
-		// we can now join it again
-		return implode( '/' , $newExploded );
-	}
-
-	function incrementIfexistCount( $parser, $frame ) {
-		// Don't let this be called more than a certain number of times. It tends to make the database explode.
-		global $wgExpensiveParserFunctionLimit;
-		$parser->mExpensiveFunctionCount++;
-		if ( $frame ) {
-			$pdbk = $frame->getPDBK( 1 );
-			if ( !isset( $parser->pf_ifexist_breakdown[$pdbk] ) ) {
-				$parser->pf_ifexist_breakdown[$pdbk] = 0;
-			}
-			$parser->pf_ifexist_breakdown[$pdbk] ++;
-		}
-		return $parser->mExpensiveFunctionCount <= $wgExpensiveParserFunctionLimit;
-	}
-
-	function ifexist( &$parser, $title = '', $then = '', $else = '' ) {
-		return $this->ifexistCommon( $parser, false, $title, $then, $else );
-	}
-
-	function ifexistCommon( &$parser, $frame, $title = '', $then = '', $else = '' ) {
-		$title = Title::newFromText( $title );
-		if ( $title ) {
-			if( $title->getNamespace() == NS_MEDIA ) {
-				/* If namespace is specified as NS_MEDIA, then we want to
-				 * check the physical file, not the "description" page.
-				 */
-				if ( !$this->incrementIfexistCount( $parser, $frame ) ) {
-					return $else;
-				}
-				$file = wfFindFile($title);
-				if ( !$file ) {
-					return $else;
-				}
-				$parser->mOutput->addImage($file->getName());
-				return $file->exists() ? $then : $else;
-			} elseif( $title->getNamespace() == NS_SPECIAL ) {
-				/* Don't bother with the count for special pages,
-				 * since their existence can be checked without
-				 * accessing the database.
-				 */
-				return SpecialPage::exists( $title->getDBkey() ) ? $then : $else;
-			} elseif( $title->isExternal() ) {
-				/* Can't check the existence of pages on other sites,
-				 * so just return $else.  Makes a sort of sense, since
-				 * they don't exist _locally_.
-				 */
-				return $else;
-			} else {
-				$pdbk = $title->getPrefixedDBkey();
-				$lc = LinkCache::singleton();
-				if ( !$this->incrementIfexistCount( $parser, $frame ) ) {
-					return $else;
-				}
-				if ( 0 != ( $id = $lc->getGoodLinkID( $pdbk ) ) ) {
-					$parser->mOutput->addLink( $title, $id );
-					return $then;
-				} elseif ( $lc->isBadLink( $pdbk ) ) {
-					$parser->mOutput->addLink( $title, 0 );
-					return $else;
-				}
-				$id = $title->getArticleID();
-				$parser->mOutput->addLink( $title, $id );
-				if ( $id ) {
-					return $then;
-				}
-			}
-		}
-		return $else;
-	}
-
-	function ifexistObj( &$parser, $frame, $args ) {
-		$title = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
-		$then = isset( $args[1] ) ? $args[1] : null;
-		$else = isset( $args[2] ) ? $args[2] : null;
-
-		$result = $this->ifexistCommon( $parser, $frame, $title, $then, $else );
-		if ( $result === null ) {
-			return '';
-		} else {
-			return trim( $frame->expand( $result ) );
-		}
-	}
-
-	function time( &$parser, $format = '', $date = '', $local = false ) {
-		global $wgContLang, $wgLocaltimezone;
-		if ( isset( $this->mTimeCache[$format][$date][$local] ) ) {
-			return $this->mTimeCache[$format][$date][$local];
-		}
-		
-		#compute the timestamp string $ts
-		#PHP >= 5.2 can handle dates before 1970 or after 2038 using the DateTime object
-		#PHP < 5.2 is limited to dates between 1970 and 2038
-		
-		$invalidTime = false;
-		
-		if ( class_exists( 'DateTime' ) ) { #PHP >= 5.2
-			# the DateTime constructor must be used because it throws exceptions 
-			# when errors occur, whereas date_create appears to just output a warning 
-			# that can't really be detected from within the code
-			try {
-				# Determine timezone
-				if ( $local ) {
-					 # convert to MediaWiki local timezone if set
-					if ( isset( $wgLocaltimezone ) ) {
-						$tz = new DateTimeZone( $wgLocaltimezone );
-					} else {
-						$tz = new DateTimeZone( 'UTC' );
-					}
-				} else {
-					# if local time was not requested, convert to UTC
-					$tz = new DateTimeZone( 'UTC' );
-				}
-
-				# Parse date
-				if ( $date !== '' ) {
-					$dateObject = new DateTime( $date, $tz );
-				} else {
-					# use current date and time
-					$dateObject = new DateTime( 'now', $tz );
-				}
-
-				# Generate timestamp
-				$ts = $dateObject->format( 'YmdHis' );
-			} catch (Exception $ex) {
-				$invalidTime = true;
-			}
-		} else { #PHP < 5.2
-			if ( $date !== '' ) {
-				$unix = @strtotime( $date );
-			} else {
-				$unix = time();
-			}
-			
-			if ( $unix == -1 || $unix == false ) {
-				$invalidTime = true;
-			} else {
-				if ( $local ) {
-					# Use the time zone
-					if ( isset( $wgLocaltimezone ) ) {
-						$oldtz = getenv( 'TZ' );
-						putenv( 'TZ='.$wgLocaltimezone );
-					}
-					wfSuppressWarnings(); // E_STRICT system time bitching
-					$ts = date( 'YmdHis', $unix );
-					wfRestoreWarnings();
-					if ( isset( $wgLocaltimezone ) ) {
-						putenv( 'TZ='.$oldtz );
-					}
-				} else {
-					$ts = wfTimestamp( TS_MW, $unix );
-				}
-			}
-		}
-		
-		#format the timestamp and return the result
-		if ( $invalidTime ) {
-			wfLoadExtensionMessages( 'ParserFunctions' );
-			$result = '<strong class="error">' . wfMsgForContent( 'pfunc_time_error' ) . '</strong>';
-		} else {
-			$this->mTimeChars += strlen( $format );
-			if ( $this->mTimeChars > $this->mMaxTimeChars ) {
-				wfLoadExtensionMessages( 'ParserFunctions' );
-				return '<strong class="error">' . wfMsgForContent( 'pfunc_time_too_long' ) . '</strong>';
-			} else {
-				
-				if ( method_exists( $wgContLang, 'sprintfDate' ) ) {
-					$result = $wgContLang->sprintfDate( $format, $ts );
-				} else {
-					if ( !class_exists( 'SprintfDateCompat' ) ) {
-						require( dirname( __FILE__ ) . '/SprintfDateCompat.php' );
-					}
-
-					$result = SprintfDateCompat::sprintfDate( $format, $ts );
-				}
-			}
-		}
-		$this->mTimeCache[$format][$date][$local] = $result;
-		return $result;
-	}
-
-	function localTime( &$parser, $format = '', $date = '' ) {
-		return $this->time( $parser, $format, $date, true );
-	}
-
-	/**
-	 * Obtain a specified number of slash-separated parts of a title,
-	 * e.g. {{#titleparts:Hello/World|1}} => "Hello"
-	 *
-	 * @param Parser $parser Parent parser
-	 * @param string $title Title to split
-	 * @param int $parts Number of parts to keep
-	 * @param int $offset Offset starting at 1
-	 * @return string
-	 */
-	public function titleparts( $parser, $title = '', $parts = 0, $offset = 0) {
-		$parts = intval( $parts );
-		$offset = intval( $offset );
-		$ntitle = Title::newFromText( $title );
-		if ( $ntitle instanceof Title ) {
-			$bits = explode( '/', $ntitle->getPrefixedText(), 25 );
-			if ( count( $bits ) <= 0 ) {
-				 return $ntitle->getPrefixedText();
-			} else {
-				if ( $offset > 0 ) {
-					--$offset;
-				}
-				if ( $parts == 0 ) {
-					return implode( '/', array_slice( $bits, $offset ) );
-				} else {
-					return implode( '/', array_slice( $bits, $offset, $parts ) );
-				}
-			}
-		} else {
-			return $title;
-		}
-	}
-}
-
-function wfSetupParserFunctions() {
-	global $wgParser, $wgExtParserFunctions, $wgHooks;
-
-	$wgExtParserFunctions = new ExtParserFunctions;
-
-	// Check for SFH_OBJECT_ARGS capability
-	if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-		$wgHooks['ParserFirstCallInit'][] = array( &$wgExtParserFunctions, 'registerParser' );
-	} else {
-		if ( class_exists( 'StubObject' ) && !StubObject::isRealObject( $wgParser ) ) {
-			$wgParser->_unstub();
-		}
-		$wgExtParserFunctions->registerParser( $wgParser );
-	}
-
-	$wgHooks['ParserClearState'][] = array( &$wgExtParserFunctions, 'clearState' );
-}
-
-function wfParserFunctionsLanguageGetMagic( &$magicWords, $langCode ) {
-	require_once( dirname( __FILE__ ) . '/ParserFunctions.i18n.magic.php' );
-	foreach( efParserFunctionsWords( $langCode ) as $word => $trans )
-		$magicWords[$word] = $trans;
 	return true;
 }
-

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions_body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions_body.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/ParserFunctions/ParserFunctions_body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,891 @@
+<?php
+
+class ExtParserFunctions {
+	static $mExprParser;
+	static $mConvertParser;
+	static $mTimeCache = array();
+	static $mTimeChars = 0;
+	static $mMaxTimeChars = 6000; # ~10 seconds
+
+	/**
+	 * @param $parser Parser
+	 * @return bool
+	 */
+	public static function clearState( $parser ) {
+		self::$mTimeChars = 0;
+		$parser->pf_ifexist_breakdown = array();
+		$parser->pf_markerRegex = null;
+		return true;
+	}
+
+	/**
+	 * Register ParserClearState hook.
+	 * We defer this until needed to avoid the loading of the code of this file
+	 * when no parser function is actually called.
+	 */
+	public static function registerClearHook() {
+		static $done = false;
+		if( !$done ) {
+			global $wgHooks;
+			$wgHooks['ParserClearState'][] = __CLASS__ . '::clearState';
+			$done = true;
+		}
+	}
+
+	/**
+	 * Get the marker regex. Cached.
+	 * @param $parser Parser
+	 * @return
+	 */
+	public static function getMarkerRegex( $parser ) {
+		self::registerClearHook();
+		if ( isset( $parser->pf_markerRegex ) ) {
+			return $parser->pf_markerRegex;
+		}
+
+		wfProfileIn( __METHOD__ );
+
+		$prefix = preg_quote( $parser->uniqPrefix(), '/' );
+
+		$suffix = preg_quote( Parser::MARKER_SUFFIX, '/' );
+
+		$parser->pf_markerRegex = '/' . $prefix . '(?:(?!' . $suffix . ').)*' . $suffix . '/us';
+
+		wfProfileOut( __METHOD__ );
+		return $parser->pf_markerRegex;
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $text string
+	 * @return string
+	 */
+	private static function killMarkers ( $parser, $text ) {
+		return preg_replace( self::getMarkerRegex( $parser ), '' , $text );
+	}
+
+	/**
+	 * @return ExprParser
+	 */
+	public static function &getExprParser() {
+		if ( !isset( self::$mExprParser ) ) {
+			self::$mExprParser = new ExprParser;
+		}
+		return self::$mExprParser;
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $expr string
+	 * @return string
+	 */
+	public static function expr( $parser, $expr = '' ) {
+		try {
+			return self::getExprParser()->doExpression( $expr );
+		} catch ( ExprError $e ) {
+			return $e->getMessage();
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $expr string
+	 * @param $then string
+	 * @param $else string
+	 * @return string
+	 */
+	public static function ifexpr( $parser, $expr = '', $then = '', $else = '' ) {
+		try {
+			$ret = self::getExprParser()->doExpression( $expr );
+			if ( is_numeric( $ret ) ) {
+				$ret = floatval( $ret );
+			}
+			if ( $ret ) {
+				return $then;
+			} else {
+				return $else;
+			}
+		} catch ( ExprError $e ) {
+			return $e->getMessage();
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $args array
+	 * @return string
+	 */
+	public static function ifexprObj( $parser, $frame, $args ) {
+		$expr = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
+		$then = isset( $args[1] ) ? $args[1] : '';
+		$else = isset( $args[2] ) ? $args[2] : '';
+		$result = self::ifexpr( $parser, $expr, $then, $else );
+		if ( is_object( $result ) ) {
+			$result = trim( $frame->expand( $result ) );
+		}
+		return $result;
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $args array
+	 * @return string
+	 */
+	public static function ifObj( $parser, $frame, $args ) {
+		$test = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
+		if ( $test !== '' ) {
+			return isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
+		} else {
+			return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : '';
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $args array
+	 * @return string
+	 */
+	public static function ifeqObj( $parser, $frame, $args ) {
+		$left = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
+		$right = isset( $args[1] ) ? trim( $frame->expand( $args[1] ) ) : '';
+		if ( $left == $right ) {
+			return isset( $args[2] ) ? trim( $frame->expand( $args[2] ) ) : '';
+		} else {
+			return isset( $args[3] ) ? trim( $frame->expand( $args[3] ) ) : '';
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $test string
+	 * @param $then string
+	 * @param $else bool
+	 * @return bool|string
+	 */
+	public static function iferror( $parser, $test = '', $then = '', $else = false ) {
+		if ( preg_match( '/<(?:strong|span|p|div)\s(?:[^\s>]*\s+)*?class="(?:[^"\s>]*\s+)*?error(?:\s[^">]*)?"/', $test ) ) {
+			return $then;
+		} elseif ( $else === false ) {
+			return $test;
+		} else {
+			return $else;
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $args array
+	 * @return string
+	 */
+	public static function iferrorObj( $parser, $frame, $args ) {
+		$test = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
+		$then = isset( $args[1] ) ? $args[1] : false;
+		$else = isset( $args[2] ) ? $args[2] : false;
+		$result = self::iferror( $parser, $test, $then, $else );
+		if ( $result === false ) {
+			return '';
+		} else {
+			return trim( $frame->expand( $result ) );
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $args
+	 * @return string
+	 */
+	public static function switchObj( $parser, $frame, $args ) {
+		if ( count( $args ) == 0 ) {
+			return '';
+		}
+		$primary = trim( $frame->expand( array_shift( $args ) ) );
+		$found = $defaultFound = false;
+		$default = null;
+		$lastItemHadNoEquals = false;
+		$mwDefault =& MagicWord::get( 'default' );
+		foreach ( $args as $arg ) {
+			$bits = $arg->splitArg();
+			$nameNode = $bits['name'];
+			$index = $bits['index'];
+			$valueNode = $bits['value'];
+
+			if ( $index === '' ) {
+				# Found "="
+				$lastItemHadNoEquals = false;
+				if ( $found ) {
+					# Multiple input match
+					return trim( $frame->expand( $valueNode ) );
+				} else {
+					$test = trim( $frame->expand( $nameNode ) );
+					if ( $test == $primary ) {
+						# Found a match, return now
+						return trim( $frame->expand( $valueNode ) );
+					} elseif ( $defaultFound || $mwDefault->matchStartAndRemove( $test ) ) {
+						$default = $valueNode;
+					} # else wrong case, continue
+				}
+			} else {
+				# Multiple input, single output
+				# If the value matches, set a flag and continue
+				$lastItemHadNoEquals = true;
+				$test = trim( $frame->expand( $valueNode ) );
+				if ( $test == $primary ) {
+					$found = true;
+				} elseif ( $mwDefault->matchStartAndRemove( $test ) ) {
+					$defaultFound = true;
+				}
+			}
+		}
+		# Default case
+		# Check if the last item had no = sign, thus specifying the default case
+		if ( $lastItemHadNoEquals ) {
+			return $test;
+		} elseif ( !is_null( $default ) ) {
+			return trim( $frame->expand( $default ) );
+		} else {
+			return '';
+		}
+	}
+
+	/**
+	 * Returns the absolute path to a subpage, relative to the current article
+	 * title. Treats titles as slash-separated paths.
+	 *
+	 * Following subpage link syntax instead of standard path syntax, an
+	 * initial slash is treated as a relative path, and vice versa.
+	 *
+	 * @param $parser Parser
+	 * @param $to string
+	 * @param $from string
+	 *
+	 * @return string
+	 */
+	public static function rel2abs( $parser , $to = '' , $from = '' ) {
+
+		$from = trim( $from );
+		if ( $from == '' ) {
+			$from = $parser->getTitle()->getPrefixedText();
+		}
+
+		$to = rtrim( $to , ' /' );
+
+		// if we have an empty path, or just one containing a dot
+		if ( $to == '' || $to == '.' ) {
+			return $from;
+		}
+
+		// if the path isn't relative
+		if ( substr( $to , 0 , 1 ) != '/' &&
+		 substr( $to , 0 , 2 ) != './' &&
+		 substr( $to , 0 , 3 ) != '../' &&
+		 $to != '..' )
+		{
+			$from = '';
+		}
+		// Make a long path, containing both, enclose it in /.../
+		$fullPath = '/' . $from . '/' .  $to . '/';
+
+		// remove redundant current path dots
+		$fullPath = preg_replace( '!/(\./)+!', '/', $fullPath );
+
+		// remove double slashes
+		$fullPath = preg_replace( '!/{2,}!', '/', $fullPath );
+
+		// remove the enclosing slashes now
+		$fullPath = trim( $fullPath , '/' );
+		$exploded = explode ( '/' , $fullPath );
+		$newExploded = array();
+
+		foreach ( $exploded as $current ) {
+			if ( $current == '..' ) { // removing one level
+				if ( !count( $newExploded ) ) {
+					// attempted to access a node above root node
+					return '<strong class="error">' . wfMsgForContent( 'pfunc_rel2abs_invalid_depth', $fullPath ) . '</strong>';
+				}
+				// remove last level from the stack
+				array_pop( $newExploded );
+			} else {
+				// add the current level to the stack
+				$newExploded[] = $current;
+			}
+		}
+
+		// we can now join it again
+		return implode( '/' , $newExploded );
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @return bool
+	 */
+	public static function incrementIfexistCount( $parser, $frame ) {
+		// Don't let this be called more than a certain number of times. It tends to make the database explode.
+		global $wgExpensiveParserFunctionLimit;
+		self::registerClearHook();
+		$parser->mExpensiveFunctionCount++;
+		if ( $frame ) {
+			$pdbk = $frame->getPDBK( 1 );
+			if ( !isset( $parser->pf_ifexist_breakdown[$pdbk] ) ) {
+				$parser->pf_ifexist_breakdown[$pdbk] = 0;
+			}
+			$parser->pf_ifexist_breakdown[$pdbk] ++;
+		}
+		return $parser->mExpensiveFunctionCount <= $wgExpensiveParserFunctionLimit;
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $titletext string
+	 * @param $then string
+	 * @param $else string
+	 *
+	 * @return string
+	 */
+	public static function ifexistCommon( $parser, $frame, $titletext = '', $then = '', $else = '' ) {
+		global $wgContLang;
+		$title = Title::newFromText( $titletext );
+		$wgContLang->findVariantLink( $titletext, $title, true );
+		if ( $title ) {
+			if ( $title->getNamespace() == NS_MEDIA ) {
+				/* If namespace is specified as NS_MEDIA, then we want to
+				 * check the physical file, not the "description" page.
+				 */
+				if ( !self::incrementIfexistCount( $parser, $frame ) ) {
+					return $else;
+				}
+				$file = wfFindFile( $title );
+				if ( !$file ) {
+					return $else;
+				}
+				$parser->mOutput->addImage(
+					$file->getName(), $file->getTimestamp(), $file->getSha1() );
+				return $file->exists() ? $then : $else;
+			} elseif ( $title->getNamespace() == NS_SPECIAL ) {
+				/* Don't bother with the count for special pages,
+				 * since their existence can be checked without
+				 * accessing the database.
+				 */
+				return SpecialPage::exists( $title->getDBkey() ) ? $then : $else;
+			} elseif ( $title->isExternal() ) {
+				/* Can't check the existence of pages on other sites,
+				 * so just return $else.  Makes a sort of sense, since
+				 * they don't exist _locally_.
+				 */
+				return $else;
+			} else {
+				$pdbk = $title->getPrefixedDBkey();
+				if ( !self::incrementIfexistCount( $parser, $frame ) ) {
+					return $else;
+				}
+				$lc = LinkCache::singleton();
+				$id = $lc->getGoodLinkID( $pdbk );
+				if ( $id != 0 ) {
+					$parser->mOutput->addLink( $title, $id );
+					return $then;
+				} elseif ( $lc->isBadLink( $pdbk ) ) {
+					$parser->mOutput->addLink( $title, 0 );
+					return $else;
+				}
+				$id = $title->getArticleID();
+				$parser->mOutput->addLink( $title, $id );
+				if ( $id ) {
+					return $then;
+				}
+			}
+		}
+		return $else;
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $frame PPFrame
+	 * @param $args array
+	 * @return string
+	 */
+	public static function ifexistObj( $parser, $frame, $args ) {
+		$title = isset( $args[0] ) ? trim( $frame->expand( $args[0] ) ) : '';
+		$then = isset( $args[1] ) ? $args[1] : null;
+		$else = isset( $args[2] ) ? $args[2] : null;
+
+		$result = self::ifexistCommon( $parser, $frame, $title, $then, $else );
+		if ( $result === null ) {
+			return '';
+		} else {
+			return trim( $frame->expand( $result ) );
+		}
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $format string
+	 * @param $date string
+	 * @param $language string
+	 * @param $local string|bool
+	 * @return string
+	 */
+	public static function time( $parser, $format = '', $date = '', $language = '', $local = false ) {
+		global $wgLocaltimezone;
+		self::registerClearHook();
+		if ( $date === '' ) {
+			$cacheKey = $parser->getOptions()->getTimestamp();
+			$date = wfTimestamp( TS_ISO_8601, $cacheKey );
+		} else {
+			$cacheKey = $date;
+		}
+		if ( isset( self::$mTimeCache[$format][$cacheKey][$language][$local] ) ) {
+			return self::$mTimeCache[$format][$cacheKey][$language][$local];
+		}
+
+		# compute the timestamp string $ts
+		# PHP >= 5.2 can handle dates before 1970 or after 2038 using the DateTime object
+
+		$invalidTime = false;
+
+		# the DateTime constructor must be used because it throws exceptions
+		# when errors occur, whereas date_create appears to just output a warning
+		# that can't really be detected from within the code
+		try {
+
+			# Default input timezone is UTC.
+			$utc = new DateTimeZone( 'UTC' );
+
+			# Correct for DateTime interpreting 'XXXX' as XX:XX o'clock
+			if ( preg_match( '/^[0-9]{4}$/', $date ) ) {
+				$date = '00:00 '.$date;
+			}
+
+			# Parse date
+			# UTC is a default input timezone.
+			$dateObject = new DateTime( $date, $utc );
+
+			# Set output timezone.
+			if ( $local ) {
+				if ( isset( $wgLocaltimezone ) ) {
+					$tz = new DateTimeZone( $wgLocaltimezone );
+				} else {
+					$tz = new DateTimeZone( date_default_timezone_get() );
+				}
+				$dateObject->setTimezone( $tz );
+			} else {
+				$dateObject->setTimezone( $utc );
+			}
+			# Generate timestamp
+			$ts = $dateObject->format( 'YmdHis' );
+
+		} catch ( Exception $ex ) {
+			$invalidTime = true;
+		}
+
+		# format the timestamp and return the result
+		if ( $invalidTime ) {
+			$result = '<strong class="error">' . wfMsgForContent( 'pfunc_time_error' ) . '</strong>';
+		} else {
+			self::$mTimeChars += strlen( $format );
+			if ( self::$mTimeChars > self::$mMaxTimeChars ) {
+				return '<strong class="error">' . wfMsgForContent( 'pfunc_time_too_long' ) . '</strong>';
+			} else {
+				if ( $ts < 100000000000000 ) { // Language can't deal with years after 9999
+					if ( $language !== '' && Language::isValidBuiltInCode( $language ) ) {
+						// use whatever language is passed as a parameter
+						$langObject = Language::factory( $language );
+						$result = $langObject->sprintfDate( $format, $ts );
+					} else {
+						// use wiki's content language
+						$result = $parser->getFunctionLang()->sprintfDate( $format, $ts );
+					}
+				} else {
+					return '<strong class="error">' . wfMsgForContent( 'pfunc_time_too_big' ) . '</strong>';
+				}
+			}
+		}
+		self::$mTimeCache[$format][$cacheKey][$language][$local] = $result;
+		return $result;
+	}
+
+	/**
+	 * @param $parser Parser
+	 * @param $format string
+	 * @param $date string
+	 * @param $language string
+	 * @return string
+	 */
+	public static function localTime( $parser, $format = '', $date = '', $language = '' ) {
+		return self::time( $parser, $format, $date, $language, true );
+	}
+
+	/**
+	 * Obtain a specified number of slash-separated parts of a title,
+	 * e.g. {{#titleparts:Hello/World|1}} => "Hello"
+	 *
+	 * @param $parser Parent parser
+	 * @param $title string Title to split
+	 * @param $parts int Number of parts to keep
+	 * @param $offset int Offset starting at 1
+	 * @return string
+	 */
+	public static function titleparts( $parser, $title = '', $parts = 0, $offset = 0 ) {
+		$parts = intval( $parts );
+		$offset = intval( $offset );
+		$ntitle = Title::newFromText( $title );
+		if ( $ntitle instanceof Title ) {
+			$bits = explode( '/', $ntitle->getPrefixedText(), 25 );
+			if ( count( $bits ) <= 0 ) {
+				 return $ntitle->getPrefixedText();
+			} else {
+				if ( $offset > 0 ) {
+					--$offset;
+				}
+				if ( $parts == 0 ) {
+					return implode( '/', array_slice( $bits, $offset ) );
+				} else {
+					return implode( '/', array_slice( $bits, $offset, $parts ) );
+				}
+			}
+		} else {
+			return $title;
+		}
+	}
+
+	/**
+	 * Get a ConvertParser object
+	 * @return ConvertParser
+	 */
+	protected static function &getConvertParser() {
+		if ( !isset( self::$mConvertParser ) ) {
+			self::$mConvertParser = new ConvertParser;
+		}
+		return self::$mConvertParser;
+	}
+
+	/**
+	 * @return string
+	 */
+	public static function convert( /*...*/ ) {
+		try {
+			$args = func_get_args();
+			return self::getConvertParser()->execute( $args );
+		} catch ( ConvertError $e ) {
+			return $e->getMessage();
+		}
+	}
+
+	/**
+	 *  Verifies parameter is less than max string length.
+	 * @param $text
+	 * @return bool
+	 */
+	private static function checkLength( $text ) {
+		global $wgPFStringLengthLimit;
+		return ( mb_strlen( $text ) < $wgPFStringLengthLimit );
+	}
+
+	/**
+	 * Generates error message.  Called when string is too long.
+	 * @return string
+	 */
+	private static function tooLongError() {
+		global $wgPFStringLengthLimit, $wgContLang;
+		return '<strong class="error">' .
+			wfMsgExt( 'pfunc_string_too_long',
+				array( 'escape', 'parsemag', 'content' ),
+				$wgContLang->formatNum( $wgPFStringLengthLimit ) ) .
+			'</strong>';
+	}
+
+	/**
+	 * {{#len:string}}
+	 *
+	 * Reports number of characters in string.
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @return int
+	 */
+	public static function runLen ( $parser, $inStr = '' ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		$len = mb_strlen( $inStr );
+
+		wfProfileOut( __METHOD__ );
+		return $len;
+	}
+
+	/**
+	 * {{#pos: string | needle | offset}}
+	 *
+	 * Finds first occurrence of "needle" in "string" starting at "offset".
+	 *
+	 * Note: If the needle is an empty string, single space is used instead.
+	 * Note: If the needle is not found, empty string is returned.
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @param $inNeedle int
+	 * @param $inOffset int
+	 * @return int|string
+	 */
+	public static function runPos ( $parser, $inStr = '', $inNeedle = '', $inOffset = 0 ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		$inNeedle = self::killMarkers( $parser, (string)$inNeedle );
+
+		if ( !self::checkLength( $inStr ) ||
+			!self::checkLength( $inNeedle ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		if ( $inNeedle == '' ) { $inNeedle = ' '; }
+
+		$pos = mb_strpos( $inStr, $inNeedle, $inOffset );
+		if ( $pos === false ) { $pos = ""; }
+
+		wfProfileOut( __METHOD__ );
+		return $pos;
+	}
+
+	/**
+	 * {{#rpos: string | needle}}
+	 *
+	 * Finds last occurrence of "needle" in "string".
+	 *
+	 * Note: If the needle is an empty string, single space is used instead.
+	 * Note: If the needle is not found, -1 is returned.
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @param $inNeedle int
+	 * @return int|string
+	 */
+	public static function runRPos ( $parser, $inStr = '', $inNeedle = '' ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		$inNeedle = self::killMarkers( $parser, (string)$inNeedle );
+
+		if ( !self::checkLength( $inStr ) ||
+			!self::checkLength( $inNeedle ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		if ( $inNeedle == '' ) { $inNeedle = ' '; }
+
+		$pos = mb_strrpos( $inStr, $inNeedle );
+		if ( $pos === false ) { $pos = -1; }
+
+		wfProfileOut( __METHOD__ );
+		return $pos;
+	}
+
+	/**
+	 * {{#sub: string | start | length }}
+	 *
+	 * Returns substring of "string" starting at "start" and having
+	 * "length" characters.
+	 *
+	 * Note: If length is zero, the rest of the input is returned.
+	 * Note: A negative value for "start" operates from the end of the
+	 *   "string".
+	 * Note: A negative value for "length" returns a string reduced in
+	 *   length by that amount.
+	 *
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @param $inStart int
+	 * @param $inLength int
+	 * @return string
+	 */
+	public static function runSub ( $parser, $inStr = '', $inStart = 0, $inLength = 0 ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+
+		if ( !self::checkLength( $inStr ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		if ( intval( $inLength ) == 0 ) {
+			$result = mb_substr( $inStr, $inStart );
+		} else {
+			$result = mb_substr( $inStr, intval( $inStart ), intval( $inLength ) );
+		}
+
+		wfProfileOut( __METHOD__ );
+		return $result;
+	}
+
+	/**
+	 * {{#count: string | substr }}
+	 *
+	 * Returns number of occurrences of "substr" in "string".
+	 *
+	 * Note: If "substr" is empty, a single space is used.
+	 * @param $parser
+	 * @param $inStr string
+	 * @param $inSubStr string
+	 * @return int|string
+	 */
+	public static function runCount ( $parser, $inStr = '', $inSubStr = '' ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		$inSubStr = self::killMarkers( $parser, (string)$inSubStr );
+
+		if ( !self::checkLength( $inStr ) ||
+			!self::checkLength( $inSubStr ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		if ( $inSubStr == '' ) {
+			$inSubStr = ' ';
+		}
+
+		$result = mb_substr_count( $inStr, $inSubStr );
+
+		wfProfileOut( __METHOD__ );
+		return $result;
+	}
+
+	/**
+	 * {{#replace:string | from | to | limit }}
+	 *
+	 * Replaces each occurrence of "from" in "string" with "to".
+	 * At most "limit" replacements are performed.
+	 *
+	 * Note: Armored against replacements that would generate huge strings.
+	 * Note: If "from" is an empty string, single space is used instead.
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @param $inReplaceFrom string
+	 * @param $inReplaceTo string
+	 * @param $inLimit int
+	 * @return mixed|string
+	 */
+	public static function runReplace( $parser, $inStr = '',
+			$inReplaceFrom = '', $inReplaceTo = '', $inLimit = -1 ) {
+		global $wgPFStringLengthLimit;
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		$inReplaceFrom = self::killMarkers( $parser, (string)$inReplaceFrom );
+		$inReplaceTo = self::killMarkers( $parser, (string)$inReplaceTo );
+
+		if ( !self::checkLength( $inStr ) ||
+			!self::checkLength( $inReplaceFrom ) ||
+			!self::checkLength( $inReplaceTo ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		if ( $inReplaceFrom == '' ) { $inReplaceFrom = ' '; }
+
+		// Precompute limit to avoid generating enormous string:
+		$diff = mb_strlen( $inReplaceTo ) - mb_strlen( $inReplaceFrom );
+		if ( $diff > 0 ) {
+			$limit = ( ( $wgPFStringLengthLimit - mb_strlen( $inStr ) ) / $diff ) + 1;
+		} else {
+			$limit = -1;
+		}
+
+		$inLimit = intval( $inLimit );
+		if ( $inLimit >= 0 ) {
+			if ( $limit > $inLimit || $limit == -1 ) { $limit = $inLimit; }
+		}
+
+		// Use regex to allow limit and handle UTF-8 correctly.
+		$inReplaceFrom = preg_quote( $inReplaceFrom, '/' );
+		$inReplaceTo = StringUtils::escapeRegexReplacement( $inReplaceTo );
+
+		$result = preg_replace( '/' . $inReplaceFrom . '/u',
+						$inReplaceTo, $inStr, $limit );
+
+		if ( !self::checkLength( $result ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		wfProfileOut( __METHOD__ );
+		return $result;
+	}
+
+
+	/**
+	 * {{#explode:string | delimiter | position | limit}}
+	 *
+	 * Breaks "string" into chunks separated by "delimiter" and returns the
+	 * chunk identified by "position".
+	 *
+	 * Note: Negative position can be used to specify tokens from the end.
+	 * Note: If the divider is an empty string, single space is used instead.
+	 * Note: Empty string is returned if there are not enough exploded chunks.
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @param $inDiv string
+	 * @param $inPos int
+	 * @param $inLim int|null
+	 * @return string
+	 */
+	public static function runExplode ( $parser, $inStr = '', $inDiv = '', $inPos = 0, $inLim = null ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		$inDiv = self::killMarkers( $parser, (string)$inDiv );
+
+		if ( $inDiv == '' ) {
+			$inDiv = ' ';
+		}
+
+		if ( !self::checkLength( $inStr ) ||
+			!self::checkLength( $inDiv ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		$inDiv = preg_quote( $inDiv, '/' );
+
+		$matches = preg_split( '/' . $inDiv . '/u', $inStr, $inLim );
+
+		if ( $inPos >= 0 && isset( $matches[$inPos] ) ) {
+			$result = $matches[$inPos];
+		} elseif ( $inPos < 0 && isset( $matches[count( $matches ) + $inPos] ) ) {
+			$result = $matches[count( $matches ) + $inPos];
+		} else {
+			$result = '';
+		}
+
+		wfProfileOut( __METHOD__ );
+		return $result;
+	}
+
+	/**
+	 * {{#urldecode:string}}
+	 *
+	 * Decodes URL-encoded (like%20that) strings.
+	 * @param $parser Parser
+	 * @param $inStr string
+	 * @return string
+	 */
+	public static function runUrlDecode( $parser, $inStr = '' ) {
+		wfProfileIn( __METHOD__ );
+
+		$inStr = self::killMarkers( $parser, (string)$inStr );
+		if ( !self::checkLength( $inStr ) ) {
+			wfProfileOut( __METHOD__ );
+			return self::tooLongError();
+		}
+
+		$result = urldecode( $inStr );
+
+		wfProfileOut( __METHOD__ );
+		return $result;
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,13 +2,14 @@
 /**
  * Internationalisation file for Poem extension.
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  */
 
 $messages = array();
 
 $messages['en'] = array(
-	'poem-desc' => 'Adds <tt><poem></tt> tag for poem formatting',
+	'poem-desc' => 'Adds <code><poem></code> tag for poem formatting',
 );
 
 /** Message documentation (Message documentation)
@@ -22,222 +23,293 @@
  * @author Naudefj
  */
 $messages['af'] = array(
-	'poem-desc' => "Maak 'n <tt><poem></tt> etiket beskikbaar vir die formatering van poësie",
+	'poem-desc' => "Maak 'n <code><poem></code> etiket beskikbaar vir die formatering van poësie",
 );
 
 /** Aragonese (Aragonés)
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'poem-desc' => 'Adibe a etiqueta <tt><poem></tt> ta formateyar poesía',
+	'poem-desc' => 'Adibe a etiqueta <code><poem></code> ta formateyar poesía',
 );
 
 /** Arabic (العربية)
  * @author Meno25
  */
 $messages['ar'] = array(
-	'poem-desc' => 'يضيف الوسم <tt><poem></tt> لصياغة القصيدة',
+	'poem-desc' => 'يضيف الوسم <code><poem></code> لصياغة القصيدة',
 );
 
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ramsis II
  */
 $messages['arz'] = array(
-	'poem-desc' => 'بيضيف تاج ال <tt><poem></tt> لصياغة القصيدة',
+	'poem-desc' => 'بيضيف تاج ال <code><poem></code> لصياغة القصيدة',
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
  */
 $messages['ast'] = array(
-	'poem-desc' => 'Añade la etiqueta <tt><poem></tt> pal formatu de poemes',
+	'poem-desc' => 'Añade la etiqueta <code><poem></code> pal formatu de poemes',
 );
 
+/** Azerbaijani (Azərbaycanca)
+ * @author Sortilegus
+ */
+$messages['az'] = array(
+	'poem-desc' => 'Şeirlərin formatlaşdırılması üçün <code><poem></code> teqini əlavə edir',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'poem-desc' => 'Шиғырҙарҙы форматлау өсөн <code><poem></code> билдәһен өҫтәй',
+);
+
+/** Bavarian (Boarisch)
+ * @author Man77
+ */
+$messages['bar'] = array(
+	'poem-desc' => "Fügt s'<code><poem></code>-Tag zum Formatian vu Gedichtln dazua",
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
 $messages['bcc'] = array(
-	'poem-desc' => 'هورکنت <tt><poem></tt> برچسپء په فرمت شئر',
+	'poem-desc' => 'هورکنت <code><poem></code> برچسپء په فرمت شئر',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author Jim-by
  */
 $messages['be-tarask'] = array(
-	'poem-desc' => 'Дадае тэг <tt><poem></tt> для фарматаваньня вершаў',
+	'poem-desc' => 'Дадае тэг <code><poem></code> для фарматаваньня вершаў',
 );
 
 /** Bulgarian (Български)
  * @author DCLXVI
  */
 $messages['bg'] = array(
-	'poem-desc' => 'Добавя етикет <tt><poem></tt> за форматиране на стихове',
+	'poem-desc' => 'Добавя етикет <code><poem></code> за форматиране на стихове',
 );
 
 /** Bengali (বাংলা)
  * @author Bellayet
  */
 $messages['bn'] = array(
-	'poem-desc' => 'কবিতার ফরমেটিং এর জন্য <tt><poem></tt> ট্যাগ যোগ করুন',
+	'poem-desc' => 'কবিতার ফরমেটিং এর জন্য <code><poem></code> ট্যাগ যোগ করুন',
 );
 
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'poem-desc' => 'Ouzhpennañ a ra ar valizenn <code><poem></code> da furmadiñ testennoù barzhonegoù.',
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
 $messages['bs'] = array(
-	'poem-desc' => 'Dodaje oznaku <tt><poem></tt> za formatiranje stihova',
+	'poem-desc' => 'Dodaje oznaku <code><poem></code> za formatiranje stihova',
 );
 
 /** Catalan (Català)
  * @author Paucabot
  */
 $messages['ca'] = array(
-	'poem-desc' => "Afegeix l'etiqueta <tt><poem></tt> per al formatatge  de poemes",
+	'poem-desc' => "Afegeix l'etiqueta <code><poem></code> per al formatatge  de poemes",
 );
 
+/** Sorani (کوردی)
+ * @author Asoxor
+ */
+$messages['ckb'] = array(
+	'poem-desc' => 'تاگی <code><poem></code> زێدەدەکات بۆ ڕێکخستنی ھۆنراوەکان',
+);
+
 /** Czech (Česky)
  * @author Matěj Grabovský
  */
 $messages['cs'] = array(
-	'poem-desc' => 'Přidává značku <tt><poem></tt> pro formátování básní',
+	'poem-desc' => 'Přidává značku <code><poem></code> pro formátování básní',
 );
 
+/** Danish (Dansk)
+ * @author Peter Alberti
+ */
+$messages['da'] = array(
+	'poem-desc' => 'Tilføjer tagget <code><poem></code> til formatering af digte',
+);
+
 /** German (Deutsch)
+ * @author Kghbln
  * @author Raimond Spekking
  */
 $messages['de'] = array(
-	'poem-desc' => 'Fügt das <tt><poem></tt>-Tag zur Formatierung von Gedichten hinzu',
+	'poem-desc' => 'Ergänzt das Tag <code><poem></code> zur Formatierung von Gedichten',
 );
 
+/** Zazaki (Zazaki)
+ * @author Aspar
+ */
+$messages['diq'] = array(
+	'poem-desc' => 'qey fesaldayişê şiiri etiketê <code><poem></code>i têarê keno',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
-	'poem-desc' => 'Pśidawa toflicku <tt><poem></tt> za formatěrowanje basnjow',
+	'poem-desc' => 'Pśidawa toflicku <code><poem></code> za formatěrowanje basnjow',
 );
 
 /** Greek (Ελληνικά)
  * @author Dead3y3
  */
 $messages['el'] = array(
-	'poem-desc' => 'Προσθέτει την ετικέτα <tt><poem></tt> για την μορφοποίηση ποιημάτων',
+	'poem-desc' => 'Προσθέτει την ετικέτα <code><poem></code> για την μορφοποίηση ποιημάτων',
 );
 
 /** Esperanto (Esperanto)
  * @author Yekrats
  */
 $messages['eo'] = array(
-	'poem-desc' => 'Aldonas <tt><poem></tt> etikedon por formatado de poezio.',
+	'poem-desc' => 'Aldonas <code><poem></code> etikedon por formatado de poezio.',
 );
 
 /** Spanish (Español)
  * @author Muro de Aguas
  */
 $messages['es'] = array(
-	'poem-desc' => 'Añade la etiqueta <tt><poem></tt> para dar el formato propio de un poema.',
+	'poem-desc' => 'Añade la etiqueta <code><poem></code> para dar el formato propio de un poema.',
 );
 
+/** Estonian (Eesti)
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'poem-desc' => 'Lisab <code><poem></code>-märgendi luuletuse vormindamiseks.',
+);
+
 /** Basque (Euskara)
  * @author Theklan
  */
 $messages['eu'] = array(
-	'poem-desc' => '<tt><poem></tt> etiketa gehitzen du olerkien formaturako',
+	'poem-desc' => '<code><poem></code> etiketa gehitzen du olerkien formaturako',
 );
 
 /** Persian (فارسی)
  * @author Huji
  */
 $messages['fa'] = array(
-	'poem-desc' => 'برچسب <tt><poem></tt> را برای قالب‌بندی شعرها می‌افزاید',
+	'poem-desc' => 'برچسب <code><poem></code> را برای قالب‌بندی شعرها می‌افزاید',
 );
 
 /** Finnish (Suomi)
  * @author Nike
  */
 $messages['fi'] = array(
-	'poem-desc' => 'Mahdollistaa runojen muotoilun <tt><nowiki><poem></nowiki></tt>-elementillä.',
+	'poem-desc' => 'Mahdollistaa runojen muotoilun <code><poem></code>-elementillä.',
 );
 
 /** French (Français)
  * @author Grondin
  */
 $messages['fr'] = array(
-	'poem-desc' => 'Ajoute la balise <tt><poem></tt> pour le formatage des poèmes',
+	'poem-desc' => 'Ajoute la balise <code><poem></code> pour le formatage des poèmes',
 );
 
 /** Franco-Provençal (Arpetan)
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'poem-desc' => 'Apond la balisa <tt><poem></tt> por lo formatâjo des poèmos.',
+	'poem-desc' => 'Apond la balisa <code><poem></code> por lo formatâjo des poèmos.',
 );
 
 /** Galician (Galego)
  * @author Alma
  */
 $messages['gl'] = array(
-	'poem-desc' => 'Engada a etiqueta <tt><poem></tt> para o formato poema',
+	'poem-desc' => 'Engada a etiqueta <code><poem></code> para o formato poema',
 );
 
 /** Swiss German (Alemannisch)
  * @author Als-Holder
  */
 $messages['gsw'] = array(
-	'poem-desc' => 'Fiegt s <tt><poem></tt>-Tag zue zum Formatiere vu Gedicht',
+	'poem-desc' => 'Fiegt s <code><poem></code>-Tag zue zum Formatiere vu Gedicht',
 );
 
 /** Hebrew (עברית) */
 $messages['he'] = array(
-	'poem-desc' => 'הוספת התגית <tt><poem></tt> לעיצוב שירה',
+	'poem-desc' => 'הוספת התגית <code><poem></code> לעיצוב שירה',
 );
 
 /** Hindi (हिन्दी)
  * @author Kaustubh
  */
 $messages['hi'] = array(
-	'poem-desc' => 'कविता लिखने के लिये आवश्यक <tt><poem></tt> टॅग देता हैं',
+	'poem-desc' => 'कविता लिखने के लिये आवश्यक <code><poem></code> टॅग देता हैं',
 );
 
+/** Hiligaynon (Ilonggo)
+ * @author Tagimata
+ */
+$messages['hil'] = array(
+	'poem-desc' => 'Gadugang <code><poem></code> tag para sa pagformat sang tula',
+);
+
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
  */
 $messages['hr'] = array(
-	'poem-desc' => 'Dodaje <tt><poem></tt> oznaku za formatiranje pjesama',
+	'poem-desc' => 'Dodaje <code><poem></code> oznaku za formatiranje pjesama',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
  * @author Michawiki
  */
 $messages['hsb'] = array(
-	'poem-desc' => 'Přidawa tafličku <tt><poem></tt> za formatowanje basnjow',
+	'poem-desc' => 'Přidawa tafličku <code><poem></code> za formatowanje basnjow',
 );
 
 /** Hungarian (Magyar)
  * @author Dani
  */
 $messages['hu'] = array(
-	'poem-desc' => '<tt><poem></tt> tag a versek formázásához',
+	'poem-desc' => '<code><poem></code> tag a versek formázásához',
 );
 
 /** Interlingua (Interlingua)
  * @author McDutchie
  */
 $messages['ia'] = array(
-	'poem-desc' => 'Adde le etiquetta <tt><poem></tt> pro formatar poemas',
+	'poem-desc' => 'Adde le etiquetta <code><poem></code> pro formatar poemas',
 );
 
 /** Indonesian (Bahasa Indonesia)
  * @author IvanLanin
  */
 $messages['id'] = array(
-	'poem-desc' => 'Menambahkan tag <tt><poem></tt> tag untuk pemformatan puisi',
+	'poem-desc' => 'Menambahkan tag <code><poem></code> tag untuk pemformatan puisi',
 );
 
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'poem-desc' => 'Ikkan na iti<code><poem></code> nga tag para ti pagporma ti daniw',
+);
+
 /** Italian (Italiano)
  * @author BrokenArrow
  */
 $messages['it'] = array(
-	'poem-desc' => 'Aggiunge il tag <tt><poem></tt> per la formattazione dei testi poetici',
+	'poem-desc' => 'Aggiunge il tag <code><poem></code> per la formattazione dei testi poetici',
 );
 
 /** Japanese (日本語)
@@ -245,21 +317,21 @@
  * @author JtFuruhata
  */
 $messages['ja'] = array(
-	'poem-desc' => '詩の書式を整えるための <tt><poem></tt> タグを追加する',
+	'poem-desc' => '詩の書式を整えるための <code><poem></code> タグを追加する',
 );
 
 /** Jutish (Jysk)
  * @author Huslåke
  */
 $messages['jut'] = array(
-	'poem-desc' => 'Tilføje <tt><poem></tt> tag før digt formåter',
+	'poem-desc' => 'Tilføje <code><poem></code> tag før digt formåter',
 );
 
 /** Javanese (Basa Jawa)
  * @author Meursault2004
  */
 $messages['jv'] = array(
-	'poem-desc' => 'Nambahaké tag <tt><poem></tt> tag kanggo formatting tembang utawa puisi',
+	'poem-desc' => 'Nambahaké tag <code><poem></code> tag kanggo formatting tembang utawa puisi',
 );
 
 /** Khmer (ភាសាខ្មែរ)
@@ -267,35 +339,35 @@
  * @author Thearith
  */
 $messages['km'] = array(
-	'poem-desc' => 'ដាក់ប្លាក <tt><poem></tt> សម្រាប់ទ្រង់ទ្រាយកំណាព្យ',
+	'poem-desc' => 'ដាក់ប្លាក <code><poem></code> សម្រាប់ទ្រង់ទ្រាយកំណាព្យ',
 );
 
 /** Korean (한국어)
  * @author ToePeu
  */
 $messages['ko'] = array(
-	'poem-desc' => '시 형식을 위해 <tt><poem></tt> 태그를 추가',
+	'poem-desc' => '시 형식을 위해 <code><poem></code> 태그를 추가',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
-	'poem-desc' => 'Brengk et <tt><poem></tt>-Kommando met, för Jedeeshte ze jeshtallde.',
+	'poem-desc' => 'Brengk et <code><poem></code>-Kommando met, för Jedeeshte ze jeshtallde.',
 );
 
 /** Luxembourgish (Lëtzebuergesch)
  * @author Robby
  */
 $messages['lb'] = array(
-	'poem-desc' => "Setzt de <tt><poem></tt>-Tag fir d'Formatéierung vu Gedichter derbäi",
+	'poem-desc' => "Setzt de <code><poem></code>-Tag fir d'Formatéierung vu Gedichter derbäi",
 );
 
 /** Limburgish (Limburgs)
  * @author Matthias
  */
 $messages['li'] = array(
-	'poem-desc' => 'Voegt de tag <tt><poem></tt> toe veur de opmaak van poëzie',
+	'poem-desc' => 'Voegt de tag <code><poem></code> toe veur de opmaak van poëzie',
 );
 
 /** Lithuanian (Lietuvių)
@@ -303,86 +375,94 @@
  * @author Hugo.arg
  */
 $messages['lt'] = array(
-	'poem-desc' => 'Prideda <tt><poem></tt> gaires poemų formatavimui',
+	'poem-desc' => 'Prideda <code><poem></code> gaires poemų formatavimui',
 );
 
 /** Latvian (Latviešu)
  * @author Xil
  */
 $messages['lv'] = array(
-	'poem-desc' => 'Pievieno <tt><poem></tt> tagu dzejas formatēšanai',
+	'poem-desc' => 'Pievieno <code><poem></code> tagu dzejas formatēšanai',
 );
 
 /** Macedonian (Македонски)
+ * @author Bjankuloski06
  * @author Brest
  */
 $messages['mk'] = array(
-	'poem-desc' => 'Додава <tt><poem></tt> приврзок за форматирање на стихови',
+	'poem-desc' => 'Додава <code><poem></code> ознака за форматирање на стихови',
 );
 
 /** Malayalam (മലയാളം)
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'poem-desc' => 'പദ്യത്തിന്റെ ഫോര്‍മാറ്റിങ്ങിനു <tt><poem></tt>  എന്ന ടാഗ് ചേര്‍ക്കുന്നു',
+	'poem-desc' => 'പദ്യത്തിന്റെ ഫോർമാറ്റിങ്ങിനു <code><poem></code>  എന്ന ടാഗ് ചേർക്കുന്നു',
 );
 
 /** Marathi (मराठी)
  * @author Kaustubh
  */
 $messages['mr'] = array(
-	'poem-desc' => 'कवितेच्या सादरीकरणासाठी आवश्यक असणारा <tt><poem></tt> टॅग देतो.',
+	'poem-desc' => 'कवितेच्या सादरीकरणासाठी आवश्यक असणारा <code><poem></code> टॅग देतो.',
 );
 
 /** Malay (Bahasa Melayu)
  * @author Aviator
  */
 $messages['ms'] = array(
-	'poem-desc' => 'Menambah tag <tt><poem></tt> untuk pemformatan puisi',
+	'poem-desc' => 'Menambah tag <code><poem></code> untuk pemformatan puisi',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'poem-desc' => 'Legger til taggen <code><poem></code> for å kunne formatere dikt',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
 $messages['nds'] = array(
-	'poem-desc' => 'Föögt dat <tt><poem></tt>-Tag för dat Formateren vun Gedichten to',
+	'poem-desc' => 'Föögt dat <code><poem></code>-Tag för dat Formateren vun Gedichten to',
 );
 
 /** Dutch (Nederlands)
  * @author Siebrand
  */
 $messages['nl'] = array(
-	'poem-desc' => 'Voegt de tag <tt><poem></tt> toe voor de opmaak van poëzie',
+	'poem-desc' => 'Voegt de tag <code><poem></code> toe voor de opmaak van poëzie',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
  * @author Harald Khan
  */
 $messages['nn'] = array(
-	'poem-desc' => 'Legg til merket <tt><poem></tt> for å kunna formatera dikt',
+	'poem-desc' => 'Legg til merket <code><poem></code> for å kunna formatera dikt',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'poem-desc' => 'Legger til taggen <tt><poem></tt> for å kunne formatere dikt',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
-	'poem-desc' => 'Apond la balisa <tt><poem></tt> pel formatatge dels poèmas',
+	'poem-desc' => 'Apond la balisa <code><poem></code> pel formatatge dels poèmas',
 );
 
 /** Polish (Polski)
  * @author Sp5uhe
  */
 $messages['pl'] = array(
-	'poem-desc' => 'Dodaje znacznik <tt><poem></tt> służący do formatowania wierszy',
+	'poem-desc' => 'Dodaje znacznik <code><poem></code> służący do formatowania wierszy',
 );
 
+/** Piedmontese (Piemontèis)
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'poem-desc' => 'A gionta ël tag <code><poem></code> për formatassion ëd poema',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
@@ -391,157 +471,230 @@
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'poem-desc' => 'Adiciona a marca <tt><poem></tt> para formatação de poemas',
+	'poem-desc' => 'Adiciona o elemento <code><poem></code> para formatação de poemas',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
  */
 $messages['pt-br'] = array(
-	'poem-desc' => 'Adiciona a marca <tt><poem></tt> para formatação de poemas',
+	'poem-desc' => 'Adiciona a marca <code><poem></code> para formatação de poemas',
 );
 
+/** Tarifit (Tarifit)
+ * @author Aryaz
+ */
+$messages['rif'] = array(
+	'poem-desc' => 'Issadaf <code><poem></code> i usmal d tira n tmdyazt',
+);
+
 /** Romanian (Română)
  * @author Mihai
  */
 $messages['ro'] = array(
-	'poem-desc' => 'Adaugă eticheta <tt><poem></tt> pentru formatarea poem',
+	'poem-desc' => 'Adaugă eticheta <code><poem></code> pentru formatarea poem',
 );
 
 /** Tarandíne (Tarandíne)
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
-	'poem-desc' => "Aggiunge 'u tag <tt><poem></tt> p'a formattazione de le poesie",
+	'poem-desc' => "Aggiunge 'u tag <code><poem></code> p'a formattazione de le poesie",
 );
 
 /** Russian (Русский)
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
-	'poem-desc' => 'Добавляет тег <tt><poem></tt> для форматирования стихов',
+	'poem-desc' => 'Добавляет тег <code><poem></code> для форматирования стихов',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'poem-desc' => 'Додасть значку <code><poem></code> про форматованя віршів',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
-	'poem-desc' => 'Хоһооннору суруйарга <tt><poem></tt> тиэги эбэр',
+	'poem-desc' => 'Хоһооннору суруйарга <code><poem></code> тиэги эбэр',
 );
 
+/** Sicilian (Sicilianu)
+ * @author Melos
+ */
+$messages['scn'] = array(
+	'poem-desc' => 'Iunci lu tag <code><poem></code> pi la furmattazioni di li testa puetici',
+);
+
 /** Slovak (Slovenčina)
  * @author Helix84
  */
 $messages['sk'] = array(
-	'poem-desc' => 'Pridáva značku <tt><poem></tt> pre formátovanie básní',
+	'poem-desc' => 'Pridáva značku <code><poem></code> pre formátovanie básní',
 );
 
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'poem-desc' => 'Doda etiketo <code><poem></code> za oblikovanje pesmi',
+);
+
+/** Lower Silesian (Schläsch)
+ * @author Piotron
+ */
+$messages['sli'] = array(
+	'poem-desc' => 'Fiegt is <code><poem></code>-Tag zur Furmatierung voo Gedichta hinzu',
+);
+
 /** Albanian (Shqip)
  * @author Puntori
  */
 $messages['sq'] = array(
-	'poem-desc' => 'Vendosë kodin <tt><poem></tt> për formatim të poezive',
+	'poem-desc' => 'Vendosë kodin <code><poem></code> për formatim të poezive',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Nikola Smolenski
  */
 $messages['sr-ec'] = array(
-	'poem-desc' => 'Додаје <tt><poem></tt> ознаку за форматирање песме.',
+	'poem-desc' => 'Додаје <code><poem></code> ознаку за форматирање песама.',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'poem-desc' => 'Dodaje <code><poem></code> oznaku za formatiranje pesama.',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'poem-desc' => 'Föiget dät <tt><poem></tt>-Tag tou ju Formatierenge fon Gedichte bietou',
+	'poem-desc' => 'Föiget dät <code><poem></code>-Tag tou ju Formatierenge fon Gedichte bietou',
 );
 
 /** Swedish (Svenska)
  * @author Lejonel
  */
 $messages['sv'] = array(
-	'poem-desc' => 'Lägger till taggen <tt><poem></tt> för att formatera dikter',
+	'poem-desc' => 'Lägger till taggen <code><poem></code> för att formatera dikter',
 );
 
 /** Telugu (తెలుగు)
  * @author Veeven
  */
 $messages['te'] = array(
-	'poem-desc' => 'పద్యాల ఫార్మాటింగుకై <tt><poem></tt> అనే టాగుని చేరుస్తుంది',
+	'poem-desc' => 'పద్యాల ఫార్మాటింగుకై <code><poem></code> అనే టాగుని చేరుస్తుంది',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
-	'poem-desc' => 'Барчасби <tt><poem></tt>-ро барои қолаббандиҳои шеърҳо илова мекунад',
+	'poem-desc' => 'Барчасби <code><poem></code>-ро барои қолаббандиҳои шеърҳо илова мекунад',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'poem-desc' => "Barcasbi <code><poem></code>-ro baroi qolabbandihoi şe'rho ilova mekunad",
+);
+
+/** Thai (ไทย)
+ * @author Octahedron80
+ */
+$messages['th'] = array(
+	'poem-desc' => 'เพิ่มแท็ก <code><poem></code> สำหรับการจัดรูปแบบบทกวี',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'poem-desc' => 'Goşgy formatirlemesi üçin <code><poem></code> tegini goşýar',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
-	'poem-desc' => 'Nagdaragdag ng tatak na <tt><poem></tt> para sa pagpopormat ng tula',
+	'poem-desc' => 'Nagdaragdag ng tatak na <code><poem></code> para sa pagpopormat ng tula',
 );
 
 /** Turkish (Türkçe)
  * @author Joseph
  */
 $messages['tr'] = array(
-	'poem-desc' => 'Şiir biçimlendirmesi için <tt><poem></tt> etiketini ekler',
+	'poem-desc' => 'Şiir biçimlendirmesi için <code><poem></code> etiketini ekler',
 );
 
 /** Ukrainian (Українська)
  * @author Ahonc
  */
 $messages['uk'] = array(
-	'poem-desc' => 'Додає тег <tt><poem></tt> для форматування віршів',
+	'poem-desc' => 'Додає тег <code><poem></code> для форматування віршів',
 );
 
 /** Vèneto (Vèneto)
  * @author Candalua
  */
 $messages['vec'] = array(
-	'poem-desc' => 'Zonta el tag <tt><poem></tt> par la formatazion dei testi poetici',
+	'poem-desc' => 'Zonta el tag <code><poem></code> par la formatazion dei testi poetici',
 );
 
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'poem-desc' => 'Ližadab <code><poem></code>-virg runod formatiruides',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  */
 $messages['vi'] = array(
-	'poem-desc' => 'Thêm thẻ <tt><poem></tt> để định dạng các bài thơ',
+	'poem-desc' => 'Thêm thẻ <code><poem></code> để định dạng các bài thơ',
 );
 
 /** Volapük (Volapük)
  * @author Smeira
  */
 $messages['vo'] = array(
-	'poem-desc' => 'Läükon mali: <tt><poem></tt> pro fomät: poedot',
+	'poem-desc' => 'Läükon mali: <code><poem></code> pro fomät: poedot',
 );
 
-/** Yue (粵語)
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
-	'poem-desc' => '加 <tt><poem></tt> 標籤畀詩格式用',
+	'poem-desc' => '加 <code><poem></code> 標籤畀詩格式用',
 );
 
 /** Simplified Chinese (‪中文(简体)‬)
  * @author Shinjiman
  * @author Wmr89502270
+ * @author Xiaomingyan
  */
 $messages['zh-hans'] = array(
-	'poem-desc' => '加入 <tt><poem></tt> 标签用于诗歌格式',
+	'poem-desc' => '添加“<code><poem></code>”标签用于诗歌格式',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
  * @author Shinjiman
  */
 $messages['zh-hant'] = array(
-	'poem-desc' => '加入 <tt><poem></tt> 標籤給予詩歌格式使用',
+	'poem-desc' => '加入 <code><poem></code> 標籤給予詩歌格式使用',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Poem/Poem.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,7 +2,7 @@
 # MediaWiki Poem extension v1.0cis
 #
 # Based on example code from
-# http://meta.wikimedia.org/wiki/Write_your_own_MediaWiki_extension
+# http://www.mediawiki.org/wiki/Manual:Extending_wiki_markup
 #
 # All other code is copyright © 2005 Nikola Smolenski <smolensk at eunet.yu>
 # (with modified parser callback and attribute additions)
@@ -16,75 +16,49 @@
 # To use, put some text between <poem></poem> tags
 #
 # For more information see its page at
-# http://meta.wikimedia.org/wiki/Poem_Extension
+# http://www.mediawiki.org/wiki/Extension:Poem
 
-if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-	$wgHooks['ParserFirstCallInit'][] = 'wfPoemExtension';
-} else {
-	$wgExtensionFunctions[] = 'wfPoemExtension';
-}
+$wgHooks['ParserFirstCallInit'][] = 'wfPoemExtension';
 $wgExtensionCredits['parserhook'][] = array(
+	'path'           => __FILE__,
 	'name'           => 'Poem',
 	'author'         => array( 'Nikola Smolenski', 'Brion Vibber', 'Steve Sanbeg' ),
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:Poem',
-	'svn-date' => '$LastChangedDate: 2008-12-20 10:32:47 +0100 (Sat, 20 Dec 2008) $',
-	'svn-revision' => '$LastChangedRevision: 44839 $',
-	'description'    => 'Adds <tt><poem></tt> tag for poem formatting',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:Poem',
 	'descriptionmsg' => 'poem-desc',
 );
 $wgParserTestFiles[] = dirname( __FILE__ ) . "/poemParserTests.txt";
 $wgExtensionMessagesFiles['Poem'] =  dirname(__FILE__) . '/Poem.i18n.php';
 
-function wfPoemExtension() {
-	$GLOBALS['wgParser']->setHook("poem","PoemExtension");
+function wfPoemExtension( &$parser ) {
+	$parser->setHook( 'poem', 'wfRenderPoemTag' );
 	return true;
 }
 
-function PoemExtension( $in, $param=array(), $parser=null ) {
+/**
+ * @param  $in
+ * @param array $param
+ * @param $parser Parser
+ * @param bool $frame
+ * @return string
+ */
+function wfRenderPoemTag( $in, $param=array(), $parser=null, $frame=false ) {
 
 	/* using newlines in the text will cause the parser to add <p> tags,
- 	 * which may not be desired in some cases
+	 * which may not be desired in some cases
 	 */
 	$nl = isset( $param['compact'] ) ? '' : "\n";
-  
-	if( method_exists( $parser, 'recursiveTagParse' ) ) {
-		//new methods in 1.8 allow nesting <nowiki> in <poem>.
-		$tag = $parser->insertStripItem( "<br />", $parser->mStripState );
-		$text = preg_replace(
-			array( "/^\n/", "/\n$/D", "/\n/", "/^( +)/me" ),
-			array( "", "", "$tag\n", "str_replace(' ',' ','\\1')" ),
-			$in );
-			$text = $parser->recursiveTagParse( $text );
-	} else {
-		$text = preg_replace(
-			array( "/^\n/", "/\n$/D", "/\n/", "/^( +)/me" ),
-			array( "", "", "<br />\n", "str_replace(' ',' ','\\1')" ),
-			$in );
-		$ret = $parser->parse(
-			$text,
-			$parser->getTitle(),
-			$parser->getOptions(),
-			// We begin at line start
-			true,
-			// Important, otherwise $this->clearState()
-			// would get run every time <ref> or
-			// <references> is called, fucking the whole
-			// thing up.
-			false
-		);
 
-		$text = $ret->getText();
-	}
+	$tag = $parser->insertStripItem( "<br />", $parser->mStripState );
 
-	global $wgVersion;
-	if( version_compare( $wgVersion, "1.7alpha" ) >= 0 ) {
-		// Pass HTML attributes through to the output.
-		$attribs = Sanitizer::validateTagAttributes( $param, 'div' );
-	} else {
-		// Can't guarantee safety on 1.6 or older.
-		$attribs = array();
-	}
+	$text = preg_replace(
+		array( "/^\n/", "/\n$/D", "/\n/" ),
+		array( "", "", "$tag\n" ),
+		$in );
+	$text = preg_replace_callback( '/^( +)/m', 'wfPoemReplaceSpaces', $text );
+	$text = $parser->recursiveTagParse( $text, $frame );
 
+	$attribs = Sanitizer::validateTagAttributes( $param, 'div' );
+
 	// Wrap output in a <div> with "poem" class.
 	if( isset( $attribs['class'] ) ) {
 		$attribs['class'] = 'poem ' . $attribs['class'];
@@ -92,8 +66,12 @@
 		$attribs['class'] = 'poem';
 	}
 
-	return Xml::openElement( 'div', $attribs ) .
-		$nl .
-		trim( $text ) .
-		"$nl</div>";
+	return Html::rawElement( 'div', $attribs, $nl . trim( $text ) . $nl );
 }
+
+/**
+ * Callback for preg_replace_callback()
+ */
+function wfPoemReplaceSpaces( $m ) {
+	return str_replace( ' ', ' ', $m[1] );
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Polyglot/Polyglot.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Polyglot/Polyglot.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Polyglot/Polyglot.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -10,8 +10,8 @@
  *
  * See the README file for more information
  *
- * @package MediaWiki
- * @subpackage Extensions
+ * @file
+ * @ingroup Extensions
  * @author Daniel Kinzler, brightbyte.de
  * @copyright © 2007 Daniel Kinzler
  * @licence GNU General Public Licence 2.0 or later
@@ -23,6 +23,7 @@
 }
 
 $wgExtensionCredits['other'][] = array( 
+	'path' => __FILE__,
 	'name' => 'Polyglot', 
 	'author' => 'Daniel Kinzler', 
 	'url' => 'http://mediawiki.org/wiki/Extension:Polyglot',
@@ -34,11 +35,11 @@
 * and to lookups for loclaized pages.
 * Set this to a small set of languages that are likely to be used on your site to
 * improve performance. Leave NULL to allow all languages known to MediaWiki via
-* $wgLanguageNames.
+* languages/Names.php.
 * If the LanguageSelector extension is installed, $wgLanguageSelectorLanguages is used
 * as a fallback.
 */
-$wgPolyglotLanguages = NULL;
+$wgPolyglotLanguages = null;
 
 /**
 * Namespaces to excempt from polyglot support, with respect to automatic redirects.
@@ -61,7 +62,8 @@
 $wfPolyglotFollowRedirects = false;
 
 ///// hook it up /////////////////////////////////////////////////////
-$wgHooks['ArticleFromTitle'][] = 'wfPolyglotArticleFromTitle';
+$wgHooks['InitializeArticleMaybeRedirect'][] = 'wfPolyglotInitializeArticleMaybeRedirect';
+$wgHooks['LinkBegin'][] = 'wfPolyglotLinkBegin';
 $wgHooks['ParserAfterTidy'][] = 'wfPolyglotParserAfterTidy';
 $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'wfPolyglotSkinTemplateOutputPageBeforeExec';
 
@@ -70,57 +72,59 @@
 function wfPolyglotExtension() {
 	global $wgPolyglotLanguages;
 
-	if ( $wgPolyglotLanguages === NULL ) {
+	if ( $wgPolyglotLanguages === null ) {
 		$wgPolyglotLanguages = @$GLOBALS['wgLanguageSelectorLanguages'];
 	}
 	
-	if ( $wgPolyglotLanguages === NULL ) {
-		$wgPolyglotLanguages = array_keys( $GLOBALS['wgLanguageNames'] );
+	if ( $wgPolyglotLanguages === null ) {
+		$wgPolyglotLanguages = array_keys( Language::getLanguageNames() );
 	}
 }
 
-function wfPolyglotArticleFromTitle( &$title, &$article ) {
+function wfPolyglotInitializeArticleMaybeRedirect( &$title, &$request, &$ignoreRedirect, &$target, &$article ) {
 	global $wfPolyglotExcemptNamespaces, $wfPolyglotExcemptTalkPages, $wfPolyglotFollowRedirects;
-	global $wgLang, $wgTitle, $wgRequest;
+	global $wgLang, $wgContLang;
 
-	if ($wgRequest->getVal( 'redirect' ) == 'no') {
-		return true;
-	}
-
 	$ns = $title->getNamespace();
 
-	if ( $ns < 0 
-		|| in_array($ns,  $wfPolyglotExcemptNamespaces) 
-		|| ($wfPolyglotExcemptTalkPages && MWNamespace::isTalk($ns)) ) {
+	if ( $ns < 0 || in_array( $ns, $wfPolyglotExcemptNamespaces )
+		|| ( $wfPolyglotExcemptTalkPages && MWNamespace::isTalk( $ns ) ) ) {
 		return true;
 	}
 
-	$n = $title->getDBkey();
-	$nofollow = false;
+	$dbkey = $title->getDBkey();
+	$force = false;
 
 	//TODO: when user-defined language links start working (see below),
 	//      we need to look at the langlinks table here.
+	if ( !$title->exists() && strlen( $dbkey ) > 1 ) {
+		$escContLang = preg_quote( $wgContLang->getCode(),  '!' );
+		if ( preg_match( '!/$!', $dbkey ) ) {
+			$force = true;
+			$remove = 1;
+		} elseif ( preg_match( "!/{$escContLang}$!", $dbkey ) ) {
+			$force = true;
+			$remove = strlen( $wgContLang->getCode() ) + 1;
+		}
+	}
 
-	if (!$title->exists() && strlen($n)>1 && preg_match('!/$!', $n)) {
-		$t = Title::makeTitle($ns, substr($n, 0, strlen($n)-1));
-		$nofollow = true;
-	}
-	else {
+	if ( $force ) {
+		$t = Title::makeTitle( $ns, substr( $dbkey, 0, strlen( $dbkey ) - $remove ) );
+	} else {
 		$lang = $wgLang->getCode();
-		$t = Title::makeTitle($ns, $n . '/' . $lang);
+		$t = Title::makeTitle( $ns, $dbkey . '/' . $lang );
 	}
 
-	if (!$t->exists()) {
+	if ( !$t->exists() ) {
 		return true;
 	}
 
-	if ($wfPolyglotFollowRedirects && !$nofollow) {
-		$a = new Article($t);
-		$a->loadPageData();
+	if ( $wfPolyglotFollowRedirects && !$force ) {
+		$page = WikiPage::factory( $t );
 
-		if ($a->mIsRedirect) {
-			$rt = $a->followRedirect();
-			if ($rt && $rt->exists()) {
+		if ( $page->isRedirect() ) {
+			$rt = $page->getRedirectTarget();
+			if ( $rt && $rt->exists() ) {
 				//TODO: make "redirected from" show $source, not $title, if we followed a redirect internally.
 				//     there seems to be no clean way to do that, though.
 				//$source = $t;
@@ -129,46 +133,75 @@
 		}
 	}
 
-	if (!class_exists('PolyglotRedirect')) {
-		class PolyglotRedirect extends Article {
-			var $mTarget;
-		
-			function __construct( $source, $target ) {
-				Article::__construct($source);
-				$this->mTarget = $target;
-				$this->mIsRedirect = true;
-			}
-		
-			function followRedirect() {
-				return $this->mTarget;
-			}
+	$target = $t;
 
-			function loadPageData( $data = 'fromdb' ) {
-				Article::loadPageData( $data );
-				$this->mIsRedirect = true;
+	return true;
+}
+
+function wfPolyglotLinkBegin( $linker, $target, &$text, &$customAttribs, &$query, &$options, &$ret ) {
+	global $wfPolyglotExcemptNamespaces, $wfPolyglotExcemptTalkPages, $wgContLang;
+
+	$ns = $target->getNamespace();
+
+	if ( $ns < 0 
+		|| in_array( $ns, $wfPolyglotExcemptNamespaces ) 
+		|| ( $wfPolyglotExcemptTalkPages && MWNamespace::isTalk( $ns ) ) ) {
+		return true;
+	}
+
+	$dbKey = $target->getDBkey();
+
+	if ( !$target->exists() && strlen( $dbKey ) > 1 ) {
+		$escContLang = preg_quote( $wgContLang->getCode(),  '!' );
+		if ( preg_match( '!/$!', $dbKey ) ) {
+			$remove = 1;
+		} elseif ( preg_match( "!/{$escContLang}$!", $dbKey ) ) {
+			$remove = strlen( $wgContLang->getCode() ) + 1;
+		} else {
+			return true;
+		}
+	} else {
+		return true;
+	}
+
+	$t = Title::makeTitle( $ns, substr( $dbKey, 0, strlen( $dbKey ) - $remove ) );
+
+	if ( $t->exists() ) {
+		foreach( $options as $key => $val ) {
+			if ( $val === 'broken' ) {
+				unset( $options[$key] );
 			}
 		}
+		$options[] = 'known';
 	}
-	
-	//print $t->getFullText();
 
-	$article = new PolyglotRedirect( $title, $t ); //trigger redirect to lovcalized page
-	
 	return true;
 }
 
 function wfPolyglotGetLanguages( $title ) {
 	global $wgPolyglotLanguages;
-	if (!$wgPolyglotLanguages) return NULL;
+	if (!$wgPolyglotLanguages) return null;
 
 	$n = $title->getDBkey();
 	$ns = $title->getNamespace();
 
+	$titles = array();
+	$batch = new LinkBatch();
+
+	foreach ( $wgPolyglotLanguages as $lang ) {
+		$obj = Title::makeTitle( $ns, $n . '/' . $lang );
+		$batch->addObj( $obj );
+		$titles[] = array( $obj, $lang );
+	}
+
+	$batch->execute();
 	$links = array();
 
-	foreach ($wgPolyglotLanguages as $lang) {
-		$t = Title::makeTitle($ns, $n . '/' . $lang);
-		if ($t->exists()) $links[$lang] = $t->getFullText();
+	foreach( $titles as $parts ) {
+		list( $t, $lang ) = $parts;
+		if ( $t->exists() ) {
+			$links[$lang] = $t->getFullText();
+		}
 	}
 
 	return $links;
@@ -188,7 +221,7 @@
 	$userlinks = $parser->mOutput->getLanguageLinks();
 
 	$links = array();
-	$pagelang = NULL;
+	$pagelang = null;
 
 	//TODO: if we followed a redirect, analyze the redirect's title too.
 	//      at least if wgPolyglotFollowRedirects is true

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/RenameUserJob.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/RenameUserJob.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/RenameUserJob.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Custom job to perform updates on tables in busier environments
  */
@@ -22,19 +21,32 @@
 	 */
 	public function run() {
 		$dbw = wfGetDB( DB_MASTER );
-		extract( $this->params );
+
+		$table = $this->params['table'];
+		$column = $this->params['column'];
+		$oldname = $this->params['oldname'];
+		$userID = isset( $this->params['userID'] ) ? $this->params['userID'] : null;
+		$uidColumn = isset( $this->params['uidColumn'] ) ? $this->params['uidColumn'] : null;
+		$timestampColumn = isset( $this->params['timestampColumn'] ) ? $this->params['timestampColumn'] : null;
+		$minTimestamp = $this->params['minTimestamp'];
+		$maxTimestamp = $this->params['maxTimestamp'];
+		$uniqueKey = isset( $this->params['uniqueKey'] ) ? $this->params['uniqueKey'] : null;
+		$keyId = isset( $this->params['keyId'] ) ? $this->params['keyId'] : null;
+		$newname = $this->params['newname'];
+		$count = $this->params['count'];
+
 		# Conditions like "*_user_text = 'x'
 		$conds = array( $column => $oldname );
 		# If user ID given, add that to condition to avoid rename collisions.
-		if( isset($userID) ) {
+		if ( isset( $userID ) ) {
 			$conds[$uidColumn] = $userID;
 		}
 		# Bound by timestamp if given
-		if( isset($timestampColumn) ) {
+		if ( isset( $timestampColumn ) ) {
 			$conds[] = "$timestampColumn >= '$minTimestamp'";
 			$conds[] = "$timestampColumn <= '$maxTimestamp'";
 		# Otherwise, bound by key (B/C)
-		} else if( isset($uniqueKey) ) {
+		} elseif ( isset( $uniqueKey ) ) {
 			$conds[$uniqueKey] = $keyId;
 		} else {
 			wfDebug( 'RenameUserJob::run - invalid job row given' ); // this shouldn't happen
@@ -47,11 +59,11 @@
 			__METHOD__
 		);
 		# Special case: revisions may be deleted while renaming...
-		if( $table == 'revision' && isset($timestampColumn) ) {
+		if ( $table == 'revision' && isset( $timestampColumn ) ) {
 			$actual = $dbw->affectedRows();
 			# If some revisions were not renamed, they may have been deleted.
 			# Do a pass on the archive table to get these straglers...
-			if( $actual < $count ) {
+			if ( $actual < $count ) {
 				$dbw->update( 'archive',
 					array( 'ar_user_text' => $newname ),
 					array( 'ar_user_text' => $oldname,
@@ -59,17 +71,17 @@
 						// No user,rev_id index, so use timestamp to bound
 						// the rows. This can use the user,timestamp index.
 						"ar_timestamp >= '$minTimestamp'",
-						"ar_timestamp <= '$maxTimestamp'"),
+						"ar_timestamp <= '$maxTimestamp'" ),
 					__METHOD__
 				);
 			}
 		}
 		# Special case: revisions may be restored while renaming...
-		if( $table == 'archive' && isset($timestampColumn) ) {
+		if ( $table == 'archive' && isset( $timestampColumn ) ) {
 			$actual = $dbw->affectedRows();
 			# If some revisions were not renamed, they may have been restored.
 			# Do a pass on the revision table to get these straglers...
-			if( $actual < $count ) {
+			if ( $actual < $count ) {
 				$dbw->update( 'revision',
 					array( 'rev_user_text' => $newname ),
 					array( 'rev_user_text' => $oldname,
@@ -77,12 +89,11 @@
 						// No user,rev_id index, so use timestamp to bound
 						// the rows. This can use the user,timestamp index.
 						"rev_timestamp >= '$minTimestamp'",
-						"rev_timestamp <= '$maxTimestamp'"),
+						"rev_timestamp <= '$maxTimestamp'" ),
 					__METHOD__
 				);
 			}
 		}
 		return true;
 	}
-
-}
\ No newline at end of file
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.alias.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,304 @@
+<?php
+/**
+ * Aliases for Special:Renameuser
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$specialPageAliases = array();
+
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'Renameuser' => array( 'RenameUser' ),
+);
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
+	'Renameuser' => array( 'إعادة_تسمية_مستخدم' ),
+);
+
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'Renameuser' => array( 'سمّى_تانى_يوزر' ),
+);
+
+/** Bulgarian (Български) */
+$specialPageAliases['bg'] = array(
+	'Renameuser' => array( 'Преименуване' ),
+);
+
+/** Breton (Brezhoneg) */
+$specialPageAliases['br'] = array(
+	'Renameuser' => array( 'AdenevelImplijer' ),
+);
+
+/** Bosnian (Bosanski) */
+$specialPageAliases['bs'] = array(
+	'Renameuser' => array( 'PreimenovanjeKorisnika' ),
+);
+
+/** Catalan (Català) */
+$specialPageAliases['ca'] = array(
+	'Renameuser' => array( 'Reanomena usuari' ),
+);
+
+/** Czech (Česky) */
+$specialPageAliases['cs'] = array(
+	'Renameuser' => array( 'Přejmenovat_uživatele' ),
+);
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = array(
+	'Renameuser' => array( 'Benutzer_umbenennen' ),
+);
+
+/** Lower Sorbian (Dolnoserbski) */
+$specialPageAliases['dsb'] = array(
+	'Renameuser' => array( 'Wužywarja pśemjeniś' ),
+);
+
+/** Divehi (ދިވެހިބަސް) */
+$specialPageAliases['dv'] = array(
+	'Renameuser' => array( 'މެމްބަރުގެ ނަން ބަދަލު ކުރައްވާ' ),
+);
+
+/** Greek (Ελληνικά) */
+$specialPageAliases['el'] = array(
+	'Renameuser' => array( 'ΜετονομασίαΧρήστη' ),
+);
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = array(
+	'Renameuser' => array( 'Alinomigi_uzanton' ),
+);
+
+/** Spanish (Español) */
+$specialPageAliases['es'] = array(
+	'Renameuser' => array( 'RenombrarUsuario', 'Renombrar_usuario', 'Cambiar_el_nombre_de_usuario' ),
+);
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = array(
+	'Renameuser' => array( 'تغییر_نام_کاربر' ),
+);
+
+/** Finnish (Suomi) */
+$specialPageAliases['fi'] = array(
+	'Renameuser' => array( 'Käyttäjätunnusten_nimeäminen' ),
+);
+
+/** French (Français) */
+$specialPageAliases['fr'] = array(
+	'Renameuser' => array( 'Renommer_utilisateur', 'RenommerUtilisateur' ),
+);
+
+/** Franco-Provençal (Arpetan) */
+$specialPageAliases['frp'] = array(
+	'Renameuser' => array( 'Renomar_l\'usanciér', 'RenomarLUsanciér' ),
+);
+
+/** Galician (Galego) */
+$specialPageAliases['gl'] = array(
+	'Renameuser' => array( 'Renomear_o_usuario' ),
+);
+
+/** Swiss German (Alemannisch) */
+$specialPageAliases['gsw'] = array(
+	'Renameuser' => array( 'Benutzer e andre Name gee' ),
+);
+
+/** Hebrew (עברית) */
+$specialPageAliases['he'] = array(
+	'Renameuser' => array( 'שינוי_שם_משתמש' ),
+);
+
+/** Croatian (Hrvatski) */
+$specialPageAliases['hr'] = array(
+	'Renameuser' => array( 'Preimenuj_suradnika' ),
+);
+
+/** Upper Sorbian (Hornjoserbsce) */
+$specialPageAliases['hsb'] = array(
+	'Renameuser' => array( 'Wužiwarja přemjenować' ),
+);
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'Renameuser' => array( 'RenonmenItilizatè' ),
+);
+
+/** Hungarian (Magyar) */
+$specialPageAliases['hu'] = array(
+	'Renameuser' => array( 'Szerkesztő_átnevezése' ),
+);
+
+/** Interlingua (Interlingua) */
+$specialPageAliases['ia'] = array(
+	'Renameuser' => array( 'Renominar_usator' ),
+);
+
+/** Indonesian (Bahasa Indonesia) */
+$specialPageAliases['id'] = array(
+	'Renameuser' => array( 'Ganti_nama_pengguna', 'GantiNamaPengguna' ),
+);
+
+/** Italian (Italiano) */
+$specialPageAliases['it'] = array(
+	'Renameuser' => array( 'RinominaUtente' ),
+);
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = array(
+	'Renameuser' => array( '利用者名変更', '利用者名の変更' ),
+);
+
+/** Khmer (ភាសាខ្មែរ) */
+$specialPageAliases['km'] = array(
+	'Renameuser' => array( 'ប្ដូរឈ្មោះអ្នកប្រើប្រាស់' ),
+);
+
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'Renameuser' => array( '이름바꾸기', '계정이름바꾸기', '사용자이름바꾸기' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'Renameuser' => array( 'Metmaacher ömnänne', 'Medmaacher ömnänne', 'Metmaacher ömnenne', 'Medmaacher ömnenne', 'Metmaacher ömdäufe', 'Medmaacher ömdäufe' ),
+);
+
+/** Latin (Latina) */
+$specialPageAliases['la'] = array(
+	'Renameuser' => array( 'Usorem renominare' ),
+);
+
+/** Luxembourgish (Lëtzebuergesch) */
+$specialPageAliases['lb'] = array(
+	'Renameuser' => array( 'Benotzer_ëmbenennen' ),
+);
+
+/** Macedonian (Македонски) */
+$specialPageAliases['mk'] = array(
+	'Renameuser' => array( 'ПреименувајКорисник' ),
+);
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'Renameuser' => array( 'ഉപയോക്തൃപുനർനാമകരണം' ),
+);
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = array(
+	'Renameuser' => array( 'सदस्यपुर्नामितकरा' ),
+);
+
+/** Malay (Bahasa Melayu) */
+$specialPageAliases['ms'] = array(
+	'Renameuser' => array( 'Tukar_nama_pengguna' ),
+);
+
+/** Maltese (Malti) */
+$specialPageAliases['mt'] = array(
+	'Renameuser' => array( 'BiddelIsemUtent' ),
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$specialPageAliases['nb'] = array(
+	'Renameuser' => array( 'Gi_en_bruker_nytt_navn' ),
+);
+
+/** Nedersaksisch (Nedersaksisch) */
+$specialPageAliases['nds-nl'] = array(
+	'Renameuser' => array( 'Gebruker_herneumen' ),
+);
+
+/** Dutch (Nederlands) */
+$specialPageAliases['nl'] = array(
+	'Renameuser' => array( 'GebruikerHernoemen' ),
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬) */
+$specialPageAliases['nn'] = array(
+	'Renameuser' => array( 'Døyp_om_brukar' ),
+);
+
+/** Occitan (Occitan) */
+$specialPageAliases['oc'] = array(
+	'Renameuser' => array( 'TornarNomenarUtilizaire', 'Tornar nomenar Utilizaire' ),
+);
+
+/** Polish (Polski) */
+$specialPageAliases['pl'] = array(
+	'Renameuser' => array( 'Zmiana_nazwy_użytkownika' ),
+);
+
+/** Pashto (پښتو) */
+$specialPageAliases['ps'] = array(
+	'Renameuser' => array( 'دکارونکي نوم بدلون' ),
+);
+
+/** Portuguese (Português) */
+$specialPageAliases['pt'] = array(
+	'Renameuser' => array( 'Alterar_nome_de_utilizador' ),
+);
+
+/** Brazilian Portuguese (Português do Brasil) */
+$specialPageAliases['pt-br'] = array(
+	'Renameuser' => array( 'Renomear utilizador', 'Renomear usuário' ),
+);
+
+/** Romanian (Română) */
+$specialPageAliases['ro'] = array(
+	'Renameuser' => array( 'Redenumire_utilizator' ),
+);
+
+/** Slovak (Slovenčina) */
+$specialPageAliases['sk'] = array(
+	'Renameuser' => array( 'PremenovaťPoužívateľa' ),
+);
+
+/** Albanian (Shqip) */
+$specialPageAliases['sq'] = array(
+	'Renameuser' => array( 'RiemërtoPërdorues' ),
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬) */
+$specialPageAliases['sr-ec'] = array(
+	'Renameuser' => array( 'Преименуј_корисника' ),
+);
+
+/** Swedish (Svenska) */
+$specialPageAliases['sv'] = array(
+	'Renameuser' => array( 'Användarnamnbyte' ),
+);
+
+/** Swahili (Kiswahili) */
+$specialPageAliases['sw'] = array(
+	'Renameuser' => array( 'BadilishajinalaMtumiaji' ),
+);
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = array(
+	'Renameuser' => array( 'เปลี่ยนชื่อผู้ใช้' ),
+);
+
+/** Tagalog (Tagalog) */
+$specialPageAliases['tl'] = array(
+	'Renameuser' => array( 'Muling pangalan ang tagagamit' ),
+);
+
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = array(
+	'Renameuser' => array( 'KullanıcıAdınıDeğiştir', 'KullanıcıİsminiDeğiştir' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = array(
+	'Renameuser' => array( 'Đổi_tên_thành_viên', 'Đổi_tên_người_dùng' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'Renameuser' => array( '重命名用户' ),
+);
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,4530 @@
+<?php
+/**
+ * Internationalisation file for extension Renameuser.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$messages = array();
+
+$messages['en'] = array(
+	'renameuser'          => 'Rename user',
+	'renameuser-linkoncontribs' => 'rename user',
+	'renameuser-linkoncontribs-text' => 'Rename this user',
+	'renameuser-desc'     => 'Adds a [[Special:Renameuser|special page]] to rename a user (need \'\'renameuser\'\' right)',
+	'renameuser-summary' => '', # do not translate or duplicate this message to other languages
+	'renameuserold'       => 'Current username:',
+	'renameusernew'       => 'New username:',
+	'renameuserreason'    => 'Reason for rename:',
+	'renameusermove'      => 'Move user and talk pages (and their subpages) to new name',
+	'renameusersuppress'  => 'Do not create redirects to the new name',
+	'renameuserreserve'   => 'Block the old username from future use',
+	'renameuserwarnings'  => 'Warnings:',
+	'renameuserconfirm'   => 'Yes, rename the user',
+	'renameusersubmit'    => 'Submit',
+
+	'renameusererrordoesnotexist' => 'The user "<nowiki>$1</nowiki>" does not exist.',
+	'renameusererrorexists'       => 'The user "<nowiki>$1</nowiki>" already exists.',
+	'renameusererrorinvalid'      => 'The username "<nowiki>$1</nowiki>" is invalid.',
+	'renameuser-error-request'    => 'There was a problem with receiving the request.
+Please go back and try again.',
+	'renameuser-error-same-user'  => 'You cannot rename a user to the same thing as before.',
+	'renameusersuccess'           => 'The user "<nowiki>$1</nowiki>" has been renamed to "<nowiki>$2</nowiki>".',
+
+	'renameuser-page-exists'  => 'The page $1 already exists and cannot be automatically overwritten.',
+	'renameuser-page-moved'   => 'The page $1 has been moved to $2.',
+	'renameuser-page-unmoved' => 'The page $1 could not be moved to $2.',
+
+	'renameuserlogpage'     => 'User rename log',
+	'renameuserlogpagetext' => 'This is a log of changes to user names.',
+	'renameuserlogentry'    => 'renamed $1 to "$2"',
+	'renameuser-log'        => '{{PLURAL:$1|1 edit|$1 edits}}. Reason: $2',
+	'renameuser-move-log'   => 'Automatically moved page while renaming the user "[[User:$1|$1]]" to "[[User:$2|$2]]"',
+
+	'right-renameuser'      => 'Rename users',
+
+	'renameuser-renamed-notice' => 'This user has been renamed.
+The rename log is provided below for reference.', # Supports GENDER
+);
+
+/** Message documentation (Message documentation)
+ * @author EugeneZelenko
+ * @author Jon Harald Søby
+ * @author Meno25
+ * @author SPQRobin
+ * @author Siebrand
+ * @author The Evil IP address
+ * @author Umherirrender
+ */
+$messages['qqq'] = array(
+	'renameuser-linkoncontribs' => 'Link description used on Special:Contributions and Special:DeletedContributions. Only added if a user has rights to rename users.',
+	'renameuser-linkoncontribs-text' => 'Tooltip for {{msg-mw|renameuser-linkoncontribs}}.',
+	'renameuser-desc' => '{{desc}}',
+	'renameuserreserve' => 'Option to block the old username (after it has been renamed) from being used again.',
+	'renameuserwarnings' => '{{Identical|Warning}}',
+	'renameusersubmit' => '{{Identical|Submit}}',
+	'renameuserlogentry' => 'Used in [[Special:Log/renameuser]].
+* Parameter $1 is the original username
+* Parameter $2 is the new username',
+	'right-renameuser' => '{{doc-right|renameuser}}',
+	'renameuser-renamed-notice' => 'This message supports the use of GENDER with parameter $1.',
+);
+
+/** ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ (ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ)
+ * @author MooRePrabu
+ */
+$messages['saz'] = array(
+	'renameuser' => 'ꢮꢮ꣄ꢬꢸꢥꢵꢬ꣄ ꢥꢵꢮ꣄ ꢪꢬ꣄ꢗꢶ',
+	'renameusernew' => 'ꢥꣁꢮ꣄ꢮꣁ  ꢮꢮ꣄ꢬꢸꢥꢵꢬ꣄ ꢥꢵꢮ꣄',
+);
+
+/** Afrikaans (Afrikaans)
+ * @author Naudefj
+ * @author SPQRobin
+ * @author පසිඳු කාවින්ද
+ */
+$messages['af'] = array(
+	'renameuser' => 'Hernoem gebruiker',
+	'renameuser-linkoncontribs' => 'hernoem gebruiker',
+	'renameuser-linkoncontribs-text' => 'Hernoem hierdie gebruiker',
+	'renameuser-desc' => "Herdoop gebruikers (benodig ''renameuser'' regte)",
+	'renameuserold' => 'Huidige gebruikersnaam:',
+	'renameusernew' => 'Nuwe gebruikersnaam:',
+	'renameuserreason' => 'Rede vir hernoeming:',
+	'renameusermove' => 'Hernoem gebruikers- en besprekingsbladsye (met subblaaie) na nuwe naam',
+	'renameusersuppress' => 'Moenie skep aansture na die nuwe naam',
+	'renameuserreserve' => 'Voorkom dat die ou gebruiker in die toekoms weer gebruik kan word',
+	'renameuserwarnings' => 'Waarskuwings:',
+	'renameuserconfirm' => 'Ja, hernoem die gebruiker',
+	'renameusersubmit' => 'Hernoem',
+	'renameusererrordoesnotexist' => 'Die gebruiker "<nowiki>$1</nowiki>" bestaan nie',
+	'renameusererrorexists' => 'Die gebruiker "<nowiki>$1</nowiki>" bestaan reeds',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" is \'n ongeldige gebruikernaam',
+	'renameuser-error-request' => "Daar was 'n probleem met die ontvangs van die versoek. Gaan asseblief terug en probeer weer.",
+	'renameuser-error-same-user' => 'U kan nie a gebruiker na dieselfde naam hernoem nie.',
+	'renameusersuccess' => 'Die gebruiker "<nowiki>$1</nowiki>" is hernoem na "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Die bladsy $1 bestaan reeds en kan nie outomaties oorskryf word nie.',
+	'renameuser-page-moved' => 'Die bladsy $1 is na $2 geskuif.',
+	'renameuser-page-unmoved' => 'Die bladsy $1 kon nie na $2 geskuif word nie.',
+	'renameuserlogpage' => 'Logboek van gebruikershernoemings',
+	'renameuserlogpagetext' => 'Hieronder is gebruikersname wat gewysig is.',
+	'renameuserlogentry' => 'het $1 na "$2" hernoem',
+	'renameuser-log' => '{{PLURAL:$1|1 wysiging|$1 wysigings}}. Rede: $2',
+	'renameuser-move-log' => 'Bladsy is outomaties geskuif met die wysiging van die gebruiker "[[User:$1|$1]]" na "[[User:$2|$2]]"',
+	'right-renameuser' => 'Hernoem gebruikers',
+	'renameuser-renamed-notice' => 'Hierdie gebruiker is hernoem.
+Relevante inligting uit die logboek van gebruikersnaamwysigings word hier onder ter verwysing weergegee.',
+);
+
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ * @author SMP
+ */
+$messages['an'] = array(
+	'renameuser' => 'Renombrar un usuario',
+	'renameuser-linkoncontribs' => "cambiar o nombre d'iste usuario",
+	'renameuser-linkoncontribs-text' => "Cambiar o nombre d'iste usuario",
+	'renameuser-desc' => "Renombrar un usuario (amenista os dreitos de ''renameuser'')",
+	'renameuserold' => 'Nombre actual:',
+	'renameusernew' => 'Nombre nuevo:',
+	'renameuserreason' => "Razón d'o cambeo de nombre:",
+	'renameusermove' => "Tresladar as pachinas d'usuario y de descusión (y as suyas sozpachinas) ta o nuevo nombre",
+	'renameusersuppress' => 'No creyar reendreceras ta o nuevo nombre',
+	'renameuserreserve' => "Bloqueyar l'antigo nombre d'usuario ta privar que torne a ser usau",
+	'renameuserwarnings' => 'Alvertencias:',
+	'renameuserconfirm' => "Sí, quiero cambiar o nombre de l'usuario",
+	'renameusersubmit' => 'Ninviar',
+	'renameusererrordoesnotexist' => 'L\'usuario "<nowiki>$1</nowiki>" no existe.',
+	'renameusererrorexists' => 'L\'usuario "<nowiki>$1</nowiki>" ya existe.',
+	'renameusererrorinvalid' => 'O nombre d\'usuario "<nowiki>$1</nowiki>" no ye conforme.',
+	'renameuser-error-request' => 'Bi habió bell problema recullindo a demanda. Por favor, torne enta zaga y prebe una atra vegada.',
+	'renameuser-error-same-user' => 'No puede renombrar un usuario con o mesmo nombre que ya teneba.',
+	'renameusersuccess' => 'S\'ha renombrau l\'usuario "<nowiki>$1</nowiki>" como "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'A pachina $1 ya existe y no puede estar sustituyita automaticament.',
+	'renameuser-page-moved' => "S'ha tresladato a pachina $1 ta $2.",
+	'renameuser-page-unmoved' => "A pachina $1 no s'ha puesto tresladar ta $2.",
+	'renameuserlogpage' => "Rechistro de cambios de nombre d'usuarios",
+	'renameuserlogpagetext' => "Isto ye un rechistro de cambios de nombres d'usuarios",
+	'renameuserlogentry' => 'Renombrato $1 como "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 edición|$1 edicions}}. Razón: $2',
+	'renameuser-move-log' => 'Pachina tresladata automaticament en renombrar o usuario "[[User:$1|$1]]" como "[[User:$2|$2]]"',
+	'right-renameuser' => 'Renombrar usuarios',
+	'renameuser-renamed-notice' => "O nombre d'iste usuario s'ha modificau.
+O rechistro de cambeos de nombre d'usuario se proveye debaixo ta mas referencia.",
+);
+
+/** Old English (Ænglisc)
+ * @author Spacebirdy
+ */
+$messages['ang'] = array(
+	'renameuser' => 'Ednemnan brūcend',
+	'renameuser-linkoncontribs' => 'ednemnan brūcend',
+	'renameusersubmit' => 'Forþsendan',
+);
+
+/** Arabic (العربية)
+ * @author Aiman titi
+ * @author Meno25
+ * @author Mido
+ * @author OsamaK
+ */
+$messages['ar'] = array(
+	'renameuser' => 'إعادة تسمية مستخدم',
+	'renameuser-linkoncontribs' => 'أعد تسمية المستخدم',
+	'renameuser-linkoncontribs-text' => 'أعد تسمية هذا المستخدم',
+	'renameuser-desc' => "يضيف [[Special:Renameuser|صفحة خاصة]] لإعادة تسمية مستخدم (يحتاج إلى صلاحية ''renameuser'')",
+	'renameuserold' => 'اسم المستخدم الحالي:',
+	'renameusernew' => 'الاسم الجديد:',
+	'renameuserreason' => 'السبب لإعادة التسمية:',
+	'renameusermove' => 'انقل صفحات المستخدم ونقاشه (بالصفحات الفرعية) إلى الاسم الجديد',
+	'renameusersuppress' => 'لا تقم بإنشاء عمليات إعادة التوجيه إلى الاسم الجديد',
+	'renameuserreserve' => 'احفظ اسم المستخدم القديم ضد الاستخدام',
+	'renameuserwarnings' => 'التحذيرات:',
+	'renameuserconfirm' => 'نعم، أعد تسمية المستخدم',
+	'renameusersubmit' => 'أرسل',
+	'renameusererrordoesnotexist' => 'لا يوجد مستخدم بالاسم "<nowiki>$1</nowiki>"',
+	'renameusererrorexists' => 'المستخدم "<nowiki>$1</nowiki>" موجود بالفعل',
+	'renameusererrorinvalid' => 'اسم المستخدم "<nowiki>$1</nowiki>" غير صحيح',
+	'renameuser-error-request' => 'حدثت مشكلة أثناء استقبال الطلب.
+من فضلك عد وحاول مرة ثانية.',
+	'renameuser-error-same-user' => 'لا يمكنك إعادة تسمية مستخدم بنفس الاسم كما كان من قبل.',
+	'renameusersuccess' => 'تمت إعادة تسمية المستخدم "<nowiki>$1</nowiki>" إلى "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'الصفحة $1 موجودة بالفعل ولا يمكن إنشاء أخرى مكانها أوتوماتيكيا.',
+	'renameuser-page-moved' => 'تم نقل الصفحة $1 إلى $2.',
+	'renameuser-page-unmoved' => 'لم يتمكن من نقل الصفحة $1 إلى $2.',
+	'renameuserlogpage' => 'سجل إعادة تسمية المستخدمين',
+	'renameuserlogpagetext' => 'هذا سجل بالتغييرات في أسماء المستخدمين',
+	'renameuserlogentry' => 'أعاد تسمية $1 باسم "$2"',
+	'renameuser-log' => '{{PLURAL:$1||تعديل واحد|تعديلان|$1 تعديلات|$1 تعديلًا|$1 تعديل}}. السبب: $2',
+	'renameuser-move-log' => 'نقل الصفحة تلقائيا خلال إعادة تسمية المستخدم من "[[User:$1|$1]]" إلى "[[User:$2|$2]]"',
+	'right-renameuser' => 'إعادة تسمية المستخدمين',
+	'renameuser-renamed-notice' => 'لقد تمت إعادة تسمية {{GENDER:$1|هذا المستخدم|هذه المستخدمة}}.
+سجل إعادة التسمية معروض بالأسفل كمرجع:',
+);
+
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ * @author Michaelovic
+ */
+$messages['arc'] = array(
+	'renameuser' => 'ܫܚܠܦ ܫܡܐ ܕܡܦܠܚܢܐ',
+	'renameuser-linkoncontribs' => 'ܫܚܠܦ ܫܡܐ ܕܡܦܠܚܢܐ',
+	'renameuser-linkoncontribs-text' => 'ܫܚܠܦ ܫܡܐ ܕܗܢܐ ܡܦܠܚܢܐ',
+	'renameuserold' => 'ܫܡܐ ܕܡܦܠܚܢܐ ܥܬܝܩܐ:',
+	'renameusernew' => 'ܫܡܐ ܕܡܦܠܚܢܐ ܚܕܬܐ:',
+	'renameuserwarnings' => 'ܙܘܗܪ̈ܐ:',
+	'renameuserconfirm' => 'ܐܝܢ, ܫܚܠܦ ܫܡܐ ܕܡܦܠܚܢܐ',
+	'renameusersubmit' => 'ܡܨܝܘܬܐ',
+	'renameuserlogentry' => 'ܬܢܐ ܠܫܘܡܗܐ $1 ܒܫܡ "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 ܫܘܚܠܦܐ|$1 ܫܘܚܠܦ̈ܐ}}. ܥܠܬܐ: $2',
+);
+
+/** Egyptian Spoken Arabic (مصرى)
+ * @author Ghaly
+ * @author Meno25
+ * @author Ramsis II
+ */
+$messages['arz'] = array(
+	'renameuser' => 'تغيير تسمية يوزر',
+	'renameuser-desc' => "بيضيف [[Special:Renameuser|صفحة مخصوصة]] علشان تغير اسم يوزر(محتاج صلاحية ''renameuser'')",
+	'renameuserold' => 'اسم اليوزر الحالي:',
+	'renameusernew' => 'اسم اليوزر الجديد:',
+	'renameuserreason' => 'السبب لإعادة التسميه:',
+	'renameusermove' => 'انقل صفحات اليوزر و مناقشاته (بالصفحات الفرعية)للاسم الجديد.',
+	'renameuserreserve' => 'احفظ اسم اليوزر القديم ضد الاستخدام',
+	'renameuserwarnings' => 'التحذيرات:',
+	'renameuserconfirm' => 'ايوه،سمى اليوزر دا من تاني',
+	'renameusersubmit' => 'تقديم',
+	'renameusererrordoesnotexist' => 'اليوزر"<nowiki>$1</nowiki>" مالوش وجود.',
+	'renameusererrorexists' => 'اليوزر "<nowiki>$1</nowiki>" موجود من قبل كدا.',
+	'renameusererrorinvalid' => 'اسم اليوزر "<nowiki>$1</nowiki>"مش صحيح.',
+	'renameuser-error-request' => 'حصلت مشكلة فى استلام الطلب.
+لو سمحت ارجع لورا و حاول تانى.',
+	'renameuser-error-same-user' => 'ما ينفعش تغير اسم اليوزر لنفس الاسم من تانى.',
+	'renameusersuccess' => 'اليوزر "<nowiki>$1</nowiki>" اتغير اسمه لـ"<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'الصفحة $1 موجودة من قبل كدا و ماينفعش يتكتب عليها اوتوماتيكى.',
+	'renameuser-page-moved' => 'تم نقل الصفحه $1 ل $2.',
+	'renameuser-page-unmoved' => 'الصفحة $1 مانفعش تتنقل لـ$2.',
+	'renameuserlogpage' => 'سجل تغيير تسمية اليوزرز',
+	'renameuserlogpagetext' => 'دا سجل بالتغييرات فى أسامى اليوزرز',
+	'renameuserlogentry' => 'اتغيرت تسمية$1 لـ "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 تعديل|$1 تعديل}}. علشان: $2',
+	'renameuser-move-log' => 'الصفحة اتنقلت اوتوماتيكى لما اليوزر  "[[User:$1|$1]]" اتغير اسمه لـ "[[User:$2|$2]]"',
+	'right-renameuser' => 'غير اسم اليوزرز',
+);
+
+/** Asturian (Asturianu)
+ * @author Esbardu
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'renameuser' => 'Renomar usuariu',
+	'renameuser-linkoncontribs' => 'renomar usuariu',
+	'renameuser-linkoncontribs-text' => 'Renomar esti usuariu',
+	'renameuser-desc' => "Renoma un usuariu (necesita'l permisu ''renameuser'')",
+	'renameuserold' => "Nome d'usuariu actual:",
+	'renameusernew' => "Nome d'usuariu nuevu:",
+	'renameuserreason' => 'Motivu del cambéu de nome:',
+	'renameusermove' => "Treslladar les páxines d'usuariu y d'alderique (y toles subpáxines) al nome nuevu",
+	'renameusersuppress' => 'Nun crear redireiciones al nome nuevu',
+	'renameuserreserve' => "Bloquiar el nome d'usuariu antiguu pa evitar usalu nun futuru",
+	'renameuserwarnings' => 'Avisos:',
+	'renameuserconfirm' => "Sí, renomar l'usuariu",
+	'renameusersubmit' => 'Executar',
+	'renameusererrordoesnotexist' => 'L\'usuariu "<nowiki>$1</nowiki>" nun esiste.',
+	'renameusererrorexists' => 'L\'usuariu "<nowiki>$1</nowiki>" yá esiste.',
+	'renameusererrorinvalid' => 'El nome d\'usuariu "<nowiki>$1</nowiki>" nun ye válidu.',
+	'renameuser-error-request' => 'Hebo un problema al recibir el pidimientu. Por favor vuelve atrás y inténtalo otra vuelta.',
+	'renameuser-error-same-user' => 'Nun pues renomar un usuariu al mesmu nome que tenía.',
+	'renameusersuccess' => 'L\'usuariu "<nowiki>$1</nowiki>" foi renomáu como "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'La páxina $1 yá esiste y nun pue ser sobreescrita automáticamente.',
+	'renameuser-page-moved' => 'La páxina $1 treslladóse a $2.',
+	'renameuser-page-unmoved' => 'La páxina $1 nun pudo treslladase a $2.',
+	'renameuserlogpage' => "Rexistru de cambeos de nome d'usuariu",
+	'renameuserlogpagetext' => "Esti ye un rexistru de los cambeos de nomes d'usuariu",
+	'renameuserlogentry' => 'renomó a $1 como "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 edición|$1 ediciones}}. Motivu: $2',
+	'renameuser-move-log' => 'Treslladóse la páxina automáticamente al renomar al usuariu "[[User:$1|$1]]" como "[[User:$2|$2]]"',
+	'right-renameuser' => 'Renomar usuarios',
+	'renameuser-renamed-notice' => "Se renomó esti usuariu.
+El rexistru de renomaos s'ufre darréu pa referencia.",
+);
+
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ * @author Vago
+ * @author Vugar 1981
+ * @author Wertuose
+ */
+$messages['az'] = array(
+	'renameuser' => 'İstifadəçi adını dəyiş',
+	'renameuser-linkoncontribs' => 'istifadəçi adını dəyiş',
+	'renameuser-linkoncontribs-text' => 'Bu istifadəçinin adını dəyiş',
+	'renameusernew' => 'Yeni istifadəçi adı:',
+	'renameuserwarnings' => 'Xəbərdarlıqlar:',
+	'renameuserconfirm' => 'Bəli, istifadəçinin adını dəyiş',
+	'renameusersubmit' => 'Təsdiq et',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" istifadəçi adı mövcud deyil.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" istifadəçi adı artıq mövcuddur.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" istifadəçi adı yolverilməzdir.',
+	'renameuser-page-moved' => '$1 $2 səhifəsinə köçürülüb.',
+	'renameuser-page-unmoved' => '$1 $2 səhifəsinə köçürülə bilinmir.',
+	'renameuserlogpage' => 'İstifadəçi adı dəyişmə gündəliyi',
+	'right-renameuser' => 'istifadəçilərin adını dəyiş',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'renameuser' => 'Ҡатнашыусының исемен үҙгәртергә',
+	'renameuser-linkoncontribs' => 'ҡатнашыусының исемен үҙгәртергә',
+	'renameuser-linkoncontribs-text' => 'Был ҡатнашыусының исемен үҙгәртергә',
+	'renameuser-desc' => "Ҡатнашыусы исемен үҙгәртеү өсөн [[Special:Renameuser|махсус бит]] өҫтәй (''renameuser'' хоҡуғы кәрәк)",
+	'renameuserold' => 'Хәҙерге исеме:',
+	'renameusernew' => 'Яңы исеме:',
+	'renameuserreason' => 'Исемен үҙгәртеү сәбәбе:',
+	'renameusermove' => 'Шулай уҡ ҡатнашыусы битенең, фекер алышыу битенең (һәм уларҙың эске биттәренең) исемен үҙгәртергә',
+	'renameusersuppress' => 'Яңы исемгә йүнәлтеүҙәр булдырмаҫҡа',
+	'renameuserreserve' => 'Ҡатнашыусының элекке исемен киләсәктә ҡулланыу өсөн һаҡларға',
+	'renameuserwarnings' => 'Киҫәтеүҙәр:',
+	'renameuserconfirm' => 'Эйе, ҡатнашыусының исемен үҙгәртергә',
+	'renameusersubmit' => 'Һаҡларға',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" исемле ҡатнашыусы теркәлмәгән.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" исемле ҡатнашыусы теркәлгән инде.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" ҡатнашыусы исеме дөрөҫ түгел.',
+	'renameuser-error-request' => 'Һорауҙы алыу менән ҡыйынлыҡтар тыуҙы.
+Зинһар, кире ҡайтығыҙ һәм яңынан ҡабатлап ҡарағыҙ.',
+	'renameuser-error-same-user' => 'Һеҙ ҡатнашыусы исемен шул уҡ исемгә үҙгәртә алмайһығыҙ.',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" ҡатнашыусыһының исеме "<nowiki>$2</nowiki>" исеменә үҙгәртелде.',
+	'renameuser-page-exists' => '$1 бите бар инде һәм уның өҫтөнә автоматик рәүештә яҙҙырыу мөмкин түгел.',
+	'renameuser-page-moved' => '$1 битенең исеме $2 тип үҙгәртелде.',
+	'renameuser-page-unmoved' => '$1 битенең исеме $2 тип үҙгәртелә алмай.',
+	'renameuserlogpage' => 'Ҡатнашыусы исемдәрен үҙгәртеү яҙмалары журналы',
+	'renameuserlogpagetext' => 'Был — ҡатнашыусы исемдәрен үҙгәртеү яҙмалары журналы.',
+	'renameuserlogentry' => '$1 ҡатнашыусыһын "$2" тип үҙгәрткән',
+	'renameuser-log' => '$1 {{PLURAL:$1|үҙгәртеү}}. Сәбәбе: $2',
+	'renameuser-move-log' => 'Биттең исеме "[[User:$1|$1]]" ҡатнашыусыһының исемен "[[User:$2|$2]]" тип үҙгәртеү сәбәпле үҙенән-үҙе үҙгәргән',
+	'right-renameuser' => 'Ҡатнашыусыларҙың исемен үҙгәртеү',
+	'renameuser-renamed-notice' => 'Был ҡатнашыусының исеме үҙгәртелгән.
+Түбәндә белешмә өсөн исем үҙгәртеү яҙмалары журналы килтерелгән.',
+);
+
+/** Southern Balochi (بلوچی مکرانی)
+ * @author Mostafadaneshvar
+ */
+$messages['bcc'] = array(
+	'renameuser' => 'کاربر نامی بدل کن',
+	'renameuser-desc' => "یک کاربر نامی بدیل کن(حق ''بدل نام''لازمن)",
+	'renameuserold' => 'هنوکین نام کاربری:',
+	'renameusernew' => 'نوکین نام کاربری:',
+	'renameuserreason' => 'دلیل په نام بدل کتن:',
+	'renameusermove' => 'صفحات گپ و کاربر (و آیانی زیر صفحات) په نوکین نام جاه په جاه کن',
+	'renameuserwarnings' => 'هوژاریان:',
+	'renameuserconfirm' => 'بله، کاربر نامی عوض کن',
+	'renameusersubmit' => 'دیم دی',
+	'renameusererrordoesnotexist' => 'کاربر "<nowiki>$1</nowiki>" موجود نهنت.',
+	'renameusererrorexists' => 'کاربر "<nowiki>$1</nowiki>" هنو هستن.',
+	'renameusererrorinvalid' => 'نام کاربری "<nowiki>$1</nowiki>"  نامعتبر انت.',
+	'renameuser-error-request' => 'مشکلی گون دریافت درخواست هستت.
+لطفا برگردیت و دگه تلاش کنیت.',
+	'renameuser-error-same-user' => 'شما نه تونیت یک کاربر په هما پیشگین چیزی نامی بدل کنیت',
+	'renameusersuccess' => 'کاربر "<nowiki>$1</nowiki>" نامی بدل بوتت په "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'صفحه $1 الان هست و اتوماتیکی اور آی نوسیگ نه بیت.',
+	'renameuser-page-moved' => 'صفحه $1 جاه په جاه بیت په $2.',
+	'renameuser-page-unmoved' => 'صفحه $1 نه تونیت په $2 جاه په جاه بیت.',
+	'renameuserlogpage' => 'آمار نام بدل کتن کاربر',
+	'renameuserlogpagetext' => 'شی آماری چه تغییرات نامان کاربران انت',
+	'renameuserlogentry' => 'نام بدل بوت  $1 په "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 اصلاح|$1 اصلاحلات}}. دلیل: $2',
+	'renameuser-move-log' => 'اتوماتیکی صفحه جاه په جاه بیت وهدی که کاربر نام بدل بی "[[User:$1|$1]]" به "[[User:$2|$2]]"',
+	'right-renameuser' => 'عوض کتن نام کابران',
+);
+
+/** Bikol Central (Bikol Central)
+ * @author Filipinayzd
+ */
+$messages['bcl'] = array(
+	'renameusersubmit' => 'Isumitir',
+	'renameusererrordoesnotexist' => 'An parágamit "<nowiki>$1</nowiki>" mayò man',
+	'renameusererrorexists' => 'An parágamit "<nowiki>$1</nowiki>" yaon na',
+	'renameuser-page-moved' => 'An páhinang $1 piglipat sa $2.',
+	'renameuser-page-unmoved' => 'An páhinang $1 dai mailipat sa $2.',
+	'renameuser-log' => '$1 mga hirá. Rasón: $2',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ * @author Jim-by
+ * @author Red Winged Duck
+ * @author Wizardist
+ */
+$messages['be-tarask'] = array(
+	'renameuser' => 'Перайменаваць рахунак удзельніка',
+	'renameuser-linkoncontribs' => 'перайменаваць удзельніка',
+	'renameuser-linkoncontribs-text' => 'Перайменаваць рахунак гэтага ўдзельніка',
+	'renameuser-desc' => "Дадае [[Special:Renameuser|спэцыяльную старонку]] для перайменаваньня рахунку ўдзельніка (неабходныя правы на ''перайменаваньне ўдзельніка'')",
+	'renameuserold' => 'Цяперашняе імя ўдзельніка:',
+	'renameusernew' => 'Новае імя:',
+	'renameuserreason' => 'Прычына перайменаваньня:',
+	'renameusermove' => 'Перайменаваць старонкі ўдзельніка і гутарак (і іх падстаронкі)',
+	'renameusersuppress' => 'Не ствараць перанакіраваньні на новую назву рахунку',
+	'renameuserreserve' => 'Заблякаваць старое імя ўдзельніка для выкарыстаньня ў будучыні',
+	'renameuserwarnings' => 'Папярэджаньні:',
+	'renameuserconfirm' => 'Так, перайменаваць удзельніка',
+	'renameusersubmit' => 'Перайменаваць',
+	'renameusererrordoesnotexist' => 'Рахунак «<nowiki>$1</nowiki>» не існуе.',
+	'renameusererrorexists' => 'Рахунак «<nowiki>$1</nowiki>» ужо існуе.',
+	'renameusererrorinvalid' => 'Няслушнае імя ўдзельніка «<nowiki>$1</nowiki>».',
+	'renameuser-error-request' => 'Узьніклі праблемы з атрыманьнем запыту.
+Калі ласка, вярніцеся назад і паспрабуйце ізноў.',
+	'renameuser-error-same-user' => 'Немагчыма перайменаваць рахунак удзельніка ў тое ж самае імя.',
+	'renameusersuccess' => 'Рахунак «<nowiki>$1</nowiki>» быў перайменаваны ў «<nowiki>$2</nowiki>».',
+	'renameuser-page-exists' => 'Старонка $1 ужо існуе і ня можа быць аўтаматычна перазапісаная.',
+	'renameuser-page-moved' => 'Старонка $1 была перайменаваная ў $2.',
+	'renameuser-page-unmoved' => 'Старонка $1 ня можа быць перайменаваная ў $2.',
+	'renameuserlogpage' => 'Журнал перайменаваньняў удзельнікаў',
+	'renameuserlogpagetext' => 'Гэта журнал перайменаваньняў рахункаў удзельнікаў.',
+	'renameuserlogentry' => 'перайменаваў $1 у «$2»',
+	'renameuser-log' => '$1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}}. Прычына: $2',
+	'renameuser-move-log' => 'Аўтаматычнае перайменаваньне старонкі ў сувязі зь перайменаваньнем рахунку ўдзельніка з «[[User:$1|$1]]» у «[[User:$2|$2]]»',
+	'right-renameuser' => 'перайменаваньне ўдзельнікаў',
+	'renameuser-renamed-notice' => '{{GENDER:$1|Гэты удзельнік быў перайменаваны|Гэтая удзельніца была перайменаваная}}.
+Журнал перайменаваньняў удзельнікаў пададзены ніжэй для даведкі.',
+);
+
+/** Bulgarian (Български)
+ * @author Borislav
+ * @author DCLXVI
+ * @author Spiritia
+ * @author Turin
+ */
+$messages['bg'] = array(
+	'renameuser' => 'Преименуване на потребител',
+	'renameuser-linkoncontribs' => 'преименуване на потребител',
+	'renameuser-linkoncontribs-text' => 'Преименуване на този потребител',
+	'renameuser-desc' => 'Добавя възможност за преименуване на потребители',
+	'renameuserold' => 'Текущо потребителско име:',
+	'renameusernew' => 'Ново потребителско име:',
+	'renameuserreason' => 'Причина за преименуването:',
+	'renameusermove' => 'Преместване под новото име на потребителската лична страница и беседа (както и техните подстраници)',
+	'renameusersuppress' => 'Без създаване на пренасочване към новото име',
+	'renameuserreserve' => 'Блокиране на старото потребителско име срещу узурпация в бъдеще',
+	'renameuserwarnings' => 'Предупреждения:',
+	'renameuserconfirm' => 'Да, преименуване на потребителя',
+	'renameusersubmit' => 'Изпълнение',
+	'renameusererrordoesnotexist' => 'Потребителят „<nowiki>$1</nowiki>“ не съществува.',
+	'renameusererrorexists' => 'Потребителят „<nowiki>$1</nowiki>“ вече съществува.',
+	'renameusererrorinvalid' => 'Потребителското име „<nowiki>$1</nowiki>“ е невалидно.',
+	'renameuser-error-request' => 'Имаше проблем с приемането на заявката. Върнете се на предишната страница и опитайте отново!',
+	'renameuser-error-same-user' => 'Новото потребителско име е същото като старото.',
+	'renameusersuccess' => 'Потребителят „<nowiki>$1</nowiki>“ беше преименуван на „<nowiki>$2</nowiki>“',
+	'renameuser-page-exists' => 'Страницата $1 вече съществува и не може да бъде автоматично заместена.',
+	'renameuser-page-moved' => 'Страницата $1 беше преместена като $2.',
+	'renameuser-page-unmoved' => 'Страницата $1 не можа да бъде преместена като $2.',
+	'renameuserlogpage' => 'Дневник на преименуванията',
+	'renameuserlogpagetext' => 'В този дневник се записват преименуванията на потребители.',
+	'renameuserlogentry' => 'преименува $1 на „$2“',
+	'renameuser-log' => '{{PLURAL:$1|една редакция|$1 редакции}}. Причина: $2',
+	'renameuser-move-log' => 'Автоматично преместена страница при преименуването на потребител "[[User:$1|$1]]" като "[[User:$2|$2]]"',
+	'right-renameuser' => 'преименуване на потребители',
+	'renameuser-renamed-notice' => 'Потребителят беше преименуван.
+За справка по-долу е показан Дневникът на преименуванията.',
+);
+
+/** Bengali (বাংলা)
+ * @author Bellayet
+ */
+$messages['bn'] = array(
+	'renameuser' => 'ব্যবহারকারী নামান্তর করো',
+	'renameuser-linkoncontribs' => 'ব্যবহারকারী নামান্তর',
+	'renameuser-linkoncontribs-text' => 'এই ব্যবহারকারী নামান্তর করো',
+	'renameuser-desc' => "একজন ব্যবহারকারীকে নামান্তর করুন (''ব্যবহাকারী নামান্তর'' অধিকার প্রয়োজন)",
+	'renameuserold' => 'বর্তমান ব্যবহারকারী নাম:',
+	'renameusernew' => 'নতুন ব্যবহারকারী নাম:',
+	'renameuserreason' => 'নামান্তরের কারণ:',
+	'renameusermove' => 'ব্যবহারকারী এবং আলাপের পাতা (এবং তার উপপাতাসমূহ) নতুন নামে সরিয়ে নাও',
+	'renameuserwarnings' => 'সতর্কীকরণ:',
+	'renameuserconfirm' => 'হ্যাঁ, ব্যবহারকারীর নাম পরিবর্তন করো',
+	'renameusersubmit' => 'জমা দাও',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" নামের কোন ব্যবহারকারী নাই।',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" ব্যবহারকারী ইতিমধ্যে বিদ্যমান আছে।',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" ব্যবহারকারী নামটি ঠিক নয়।',
+	'renameuser-error-request' => 'এই অনুরোধ গ্রহণে সমস্যা ছিল। দয়াকরে পেছনে যান এবং আবার চেষ্টা করুন।',
+	'renameuser-error-same-user' => 'আপনি পূর্বের নামে নামান্তর করতে পারবেন না।',
+	'renameusersuccess' => 'ব্যবহারকারী "<nowiki>$1</nowiki>" থেকে "<nowiki>$2</nowiki>" তে নামান্তরিত করা হয়েছে।',
+	'renameuser-page-exists' => 'পাতা $1 বিদ্যমান এবং সয়ঙ্ক্রিয়ভাবে এটির উপর লেখা যাবে না',
+	'renameuser-page-moved' => 'পাতাটি $1 থেকে $2 তে সরিয়ে নেওয়া হয়েছে।',
+	'renameuser-page-unmoved' => 'পাতাটি $1 থেকে $2 তে সরিয়ে নেওয়া যাবে না।',
+	'renameuserlogpage' => 'ব্যবহারকারী নামান্তরের লগ',
+	'renameuserlogpagetext' => 'এটি ব্যাবহারকারী নামের পরিবর্তনের লগ',
+	'renameuserlogentry' => '$1 থেকে "$2" তে নামান্তর করা হয়েছে',
+	'renameuser-log' => '{{PLURAL:$1|1 সম্পাদনা|$1 সম্পাদনাসমূহ}}। কারণ: $2',
+	'renameuser-move-log' => 'যখন ব্যবহারকারী "[[User:$1|$1]]" থেকে "[[User:$2|$2]]" তে নামান্তরিত হবে তখন সয়ঙ্ক্রিয়ভাবে পাতা সরিয়ে নেওয়া হয়েছে',
+	'right-renameuser' => 'ব্যবহারকারীদের পুনরায় নাম দাও',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fulup
+ * @author Gwendal
+ * @author Y-M D
+ */
+$messages['br'] = array(
+	'renameuser' => 'Adenvel an implijer',
+	'renameuser-linkoncontribs' => 'adenvel an implijer',
+	'renameuser-linkoncontribs-text' => 'adenvel an implijer-mañ',
+	'renameuser-desc' => "Adenvel un implijer (ret eo kaout ''gwirioù adenvel'')",
+	'renameuserold' => 'Anv a-vremañ an implijer :',
+	'renameusernew' => 'Anv implijer nevez :',
+	'renameuserreason' => 'Abeg evit adenvel :',
+	'renameusermove' => 'Kas ar pajennoù implijer ha kaozeal (hag o ispajennoù) betek o anv nevez',
+	'renameusersuppress' => 'Arabat krouiñ adkasoù war-du an anv nevez',
+	'renameuserreserve' => "Mirout na vo implijet an anv kozh pelloc'h en dazont",
+	'renameuserwarnings' => 'Diwallit :',
+	'renameuserconfirm' => 'Ya, adenvel an implijer',
+	'renameusersubmit' => 'Adenvel',
+	'renameusererrordoesnotexist' => 'An implijer "<nowiki>$1</nowiki>" n\'eus ket anezhañ',
+	'renameusererrorexists' => 'Krouet eo bet an anv implijer "<nowiki>$1</nowiki>" dija',
+	'renameusererrorinvalid' => 'Faziek eo an anv implijer "<nowiki>$1</nowiki>"',
+	'renameuser-error-request' => 'Ur gudenn zo bet gant degemer ar reked. Kit war-gil ha klaskit en-dro.',
+	'renameuser-error-same-user' => "N'haller ket adenvel un implijer gant an hevelep anv hag a-raok.",
+	'renameusersuccess' => 'Deuet eo an implijer "<nowiki>$1</nowiki>" da vezañ "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => "Bez' ez eus eus ar bajenn $1 dija, n'haller ket hec'h erlec'hiañ ent emgefreek.",
+	'renameuser-page-moved' => 'Adkaset eo bet ar bajenn $1 da $2.',
+	'renameuser-page-unmoved' => "N'eus ket bet gallet adkas ar bajenn $1 da $2.",
+	'renameuserlogpage' => 'Roll an implijerien bet adanvet',
+	'renameuserlogpagetext' => 'Setu istor an implijerien bet cheñchet o anv ganto',
+	'renameuserlogentry' => 'en deus adanvet $1 e "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 degasadenn|$1 degasadenn}}. Abeg : $2',
+	'renameuser-move-log' => 'Pajenn dilec\'hiet ent emgefreek e-ser adenvel an implijer "[[User:$1|$1]]" e "[[User:$2|$2]]"',
+	'right-renameuser' => 'Adenvel implijerien',
+	'renameuser-renamed-notice' => "Adanvet eo bet an implijer-mañ.
+A-is emañ marilh an adanvadurioù, ma'z oc'h dedennet.",
+);
+
+/** Bosnian (Bosanski)
+ * @author CERminator
+ */
+$messages['bs'] = array(
+	'renameuser' => 'Preimenuj korisnika',
+	'renameuser-linkoncontribs' => 'preimenuj korisnika',
+	'renameuser-linkoncontribs-text' => 'Preimenuj ovog korisnika',
+	'renameuser-desc' => "Dodaje [[Special:Renameuser|posebnu stranicu]] u svrhu promjene imena korisnika (zahtjeva pravo ''preimenovanja korisnika'')",
+	'renameuserold' => 'Trenutno ime korisnika:',
+	'renameusernew' => 'Novo korisničko ime:',
+	'renameuserreason' => 'Razlog promjene imena:',
+	'renameusermove' => 'Premještanje korisnika i njegove stranice za razgovor (zajedno sa podstranicama) na novo ime',
+	'renameusersuppress' => 'Ne pravi preusmjerenja na novo ime',
+	'renameuserreserve' => 'Blokiraj staro korisničko ime od kasnijeg korištenja',
+	'renameuserwarnings' => 'Upozorenja:',
+	'renameuserconfirm' => 'Da, promijeni ime korisnika',
+	'renameusersubmit' => 'Pošalji',
+	'renameusererrordoesnotexist' => 'Korisnik "<nowiki>$1</nowiki>" ne postoji.',
+	'renameusererrorexists' => 'Korisnik "<nowiki>$1</nowiki>" već postoji.',
+	'renameusererrorinvalid' => 'Korisničko ime "<nowiki>$1</nowiki>" nije valjano.',
+	'renameuser-error-request' => 'Nastao je problem pri prijemu zahtjeva.
+Molimo Vas da se vratite nazad i pokušate ponovo.',
+	'renameuser-error-same-user' => 'Ne može se promijeniti ime korisnika u isto kao i ranije.',
+	'renameusersuccess' => 'Ime korisnika "<nowiki>$1</nowiki>" je promijenjeno u "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Stranica $1 već postoji i ne može biti automatski prepisana.',
+	'renameuser-page-moved' => 'Stranica $1 je premještena na $2.',
+	'renameuser-page-unmoved' => 'Stranica $1 nije mogla biti premještena na $2.',
+	'renameuserlogpage' => 'Zapisnik preimenovanja korisnika',
+	'renameuserlogpagetext' => 'Ovo je zapisnik promjena korisničkih imena.',
+	'renameuserlogentry' => '$1 preimenovan u "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 izmjena|$1 izmjene|$1 izmjena}}. Razlog: $2',
+	'renameuser-move-log' => 'Automatski premještena stranica pri promjeni korisničkog imena "[[User:$1|$1]]" u "[[User:$2|$2]]"',
+	'right-renameuser' => 'Preimenovanje korisnika',
+	'renameuser-renamed-notice' => 'Ovaj korisnik je promijenio ime.
+Zapisnik preimenovanje je prikazan ispod kao referenca.',
+);
+
+/** Catalan (Català)
+ * @author El libre
+ * @author Juanpabl
+ * @author Paucabot
+ * @author Qllach
+ * @author SMP
+ * @author Toniher
+ * @author Vriullop
+ */
+$messages['ca'] = array(
+	'renameuser' => "Reanomena l'usuari",
+	'renameuser-linkoncontribs' => "Reanomena l'usuari/a",
+	'renameuser-linkoncontribs-text' => "Canvia el nom d'aquest usuari/a",
+	'renameuser-desc' => "Reanomena un usuari (necessita drets de ''renameuser'')",
+	'renameuserold' => "Nom d'usuari actual:",
+	'renameusernew' => "Nou nom d'usuari:",
+	'renameuserreason' => 'Motiu pel canvi:',
+	'renameusermove' => "Reanomena la pàgina d'usuari, la de discussió i les subpàgines que tingui al nou nom",
+	'renameusersuppress' => 'No creis redireccions cap al nou nom',
+	'renameuserreserve' => "Bloca el nom d'usuari antic d'usos futurs",
+	'renameuserwarnings' => 'Advertències:',
+	'renameuserconfirm' => "Sí, reanomena l'usuari",
+	'renameusersubmit' => 'Tramet',
+	'renameusererrordoesnotexist' => "L'usuari «<nowiki>$1</nowiki>» no existeix",
+	'renameusererrorexists' => "L'usuari «<nowiki>$1</nowiki>» ja existeix",
+	'renameusererrorinvalid' => "El nom d'usuari «<nowiki>$1</nowiki>» no és vàlid",
+	'renameuser-error-request' => "Hi ha hagut un problema en la recepció de l'ordre.
+Torneu enrere i torneu-ho a intentar.",
+	'renameuser-error-same-user' => 'No podeu reanomenar un usuari a un nom que ja tenia anteriorment.',
+	'renameusersuccess' => "L'usuari «<nowiki>$1</nowiki>» s'ha reanomenat com a «<nowiki>$2</nowiki>»",
+	'renameuser-page-exists' => 'La pàgina «$1» ja existeix i no pot ser sobreescrita automàticament',
+	'renameuser-page-moved' => "La pàgina «$1» s'ha reanomenat com a «$2».",
+	'renameuser-page-unmoved' => "La pàgina $1 no s'ha pogut reanomenar com a «$2».",
+	'renameuserlogpage' => "Registre del canvi de nom d'usuari",
+	'renameuserlogpagetext' => "Aquest és un registre dels canvis als noms d'usuari",
+	'renameuserlogentry' => 'ha reanomenat $1 a "$2"',
+	'renameuser-log' => '{{PLURAL:$1|Una contribució|$1 contribucions}}. Motiu: $2',
+	'renameuser-move-log' => "S'ha reanomenat automàticament la pàgina mentre es reanomenava l'usuari «[[User:$1|$1]]» com «[[User:$2|$2]]»",
+	'right-renameuser' => 'Reanomenar usuaris',
+	'renameuser-renamed-notice' => "S'ha canviat el nom d'aquest usuari.
+A continuació es proporciona el registre de reanomenaments per a més informació.",
+);
+
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'renameuser' => 'Декъашхон цlе хийца',
+	'renameuser-linkoncontribs' => 'декъашхон цlе хийца',
+);
+
+/** Sorani (کوردی) */
+$messages['ckb'] = array(
+	'renameusersubmit' => 'ناردن',
+);
+
+/** Crimean Turkish (Latin script) (‪Qırımtatarca (Latin)‬)
+ * @author Don Alessandro
+ */
+$messages['crh-latn'] = array(
+	'renameuserlogpage' => 'Qullanıcı adı deñişikligi jurnalı',
+	'renameuserlogpagetext' => 'Aşağıda bulunğan cedvel adı deñiştirilgen qullanıcılarnı köstere',
+	'renameuserlogentry' => '$1 qullanıcısınıñ adını "$2" оlaraq deñiştirdi',
+	'renameuser-log' => '{{PLURAL:$1|1 deñişiklik|$1 deñişiklik}} yapqan. Sebep: $2',
+);
+
+/** Crimean Turkish (Cyrillic script) (‪Къырымтатарджа (Кирилл)‬)
+ * @author Don Alessandro
+ */
+$messages['crh-cyrl'] = array(
+	'renameuserlogpage' => 'Къулланыджы ады денъишиклиги журналы',
+	'renameuserlogpagetext' => 'Ашагъыда булунгъан джедвель ады денъиштирильген къулланыджыларны косьтере',
+	'renameuserlogentry' => '$1 къулланыджысынынъ адыны "$2" оларакъ денъиштирди',
+	'renameuser-log' => '{{PLURAL:$1|1 денъишиклик|$1 денъишиклик}} япкъан. Себеп: $2',
+);
+
+/** Czech (Česky)
+ * @author Danny B.
+ * @author Li-sung
+ * @author Martin Kozák
+ * @author Matěj Grabovský
+ * @author Mormegil
+ */
+$messages['cs'] = array(
+	'renameuser' => 'Přejmenovat uživatele',
+	'renameuser-linkoncontribs' => 'přejmenovat uživatele',
+	'renameuser-linkoncontribs-text' => 'Přejmenovat tohoto uživatele',
+	'renameuser-desc' => "Přejmenování uživatele (vyžadováno oprávnění ''renameuser'')",
+	'renameuserold' => 'Stávající uživatelské jméno:',
+	'renameusernew' => 'Nové uživatelské jméno:',
+	'renameuserreason' => 'Důvod přejmenování:',
+	'renameusermove' => 'Přesunout uživatelské a diskusní stránky (a jejich podstránky) na nové jméno',
+	'renameusersuppress' => 'Nevytvářet přesměrování na nové jméno',
+	'renameuserreserve' => 'Zabránit nové registraci původního uživatelského jména',
+	'renameuserwarnings' => 'Upozornění:',
+	'renameuserconfirm' => 'Ano, přejmenovat uživatele',
+	'renameusersubmit' => 'Přejmenovat',
+	'renameusererrordoesnotexist' => 'Uživatel se jménem „<nowiki>$1</nowiki>“ neexistuje',
+	'renameusererrorexists' => 'Uživatel se jménem „<nowiki>$1</nowiki>“ již existuje',
+	'renameusererrorinvalid' => 'Uživatelské jméno „<nowiki>$1</nowiki>“ nelze použít',
+	'renameuser-error-request' => 'Při přijímání požadavku došlo k chybě. Vraťte se a zkuste to znovu.',
+	'renameuser-error-same-user' => 'Nové uživatelské jméno je stejné jako dosavadní.',
+	'renameusersuccess' => 'Uživatel „<nowiki>$1</nowiki>“ byl úspěšně přejmenován na „<nowiki>$2</nowiki>“',
+	'renameuser-page-exists' => 'Stránka $1 již existuje a nelze ji automaticky přepsat.',
+	'renameuser-page-moved' => 'Stránka $1 byla přesunuta na $2.',
+	'renameuser-page-unmoved' => 'Stránku $1 se nepodařilo přesunout na $2.',
+	'renameuserlogpage' => 'Kniha přejmenování uživatelů',
+	'renameuserlogpagetext' => 'Toto je záznam přejmenování uživatelů (změn uživatelského jména).',
+	'renameuserlogentry' => 'přejmenovává $1 na „$2“',
+	'renameuser-log' => '{{PLURAL:$1|1 editace|$1 editace|$1 editací}}. Zdůvodnění: $2',
+	'renameuser-move-log' => 'Automatický přesun při přejmenování uživatele „[[User:$1|$1]]“ na „[[User:$2|$2]]“',
+	'right-renameuser' => 'Přejmenovávání uživatelů',
+	'renameuser-renamed-notice' => 'Tento uživatel byl přejmenován.
+Pro přehled je níže zobrazen výpis z knihy přejmenování uživatelů.',
+);
+
+/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
+ * @author Svetko
+ * @author ОйЛ
+ */
+$messages['cu'] = array(
+	'renameuser' => 'прѣимєноуи польꙃєватєл҄ь',
+	'renameuserold' => 'нꙑнѣщьнѥѥ имѧ :',
+	'renameusernew' => 'ново имѧ :',
+	'renameuserreason' => 'какъ съмꙑслъ :',
+	'renameusermove' => 'нарьци тако польꙃєватєлꙗ страницѫ · бєсѣдѫ и ихъ подъстраницѧ',
+	'renameusersubmit' => 'єи',
+	'renameusererrordoesnotexist' => 'польꙃєватєлꙗ ⁖ <nowiki>$1</nowiki> ⁖ нѣстъ',
+	'renameusererrorexists' => 'польꙃєватєл҄ь ⁖ <nowiki>$1</nowiki> ⁖ ѥстъ ю',
+	'renameusererrorinvalid' => 'имѧ ⁖ <nowiki>$1</nowiki> ⁖ нѣстъ годѣ',
+	'renameuserlogpage' => 'польꙃєватєлъ прѣимєнованиꙗ їсторїꙗ',
+	'renameuserlogentry' => 'нарєчє $1 имєньмь ⁖ $2 ⁖',
+);
+
+/** Chuvash (Чӑвашла)
+ * @author FLAGELLVM DEI
+ */
+$messages['cv'] = array(
+	'renameuserconfirm' => 'Çапла, хутшăнакан ятне улăштармалла',
+	'renameuser-page-moved' => '$1 страницăн ятне $2 çине улăштарнă.',
+);
+
+/** Welsh (Cymraeg)
+ * @author Lloffiwr
+ */
+$messages['cy'] = array(
+	'renameuser' => 'Ail-enwi defnyddiwr',
+	'renameuser-linkoncontribs' => "ail-enwi'r defnyddiwr",
+	'renameuser-linkoncontribs-text' => "Ail-enwi'r defnyddiwr hwn",
+	'renameuser-desc' => "Yn ychwanegu [[Special:Renameuser|tudalen arbennig]] er mwyn gallu ail-enwi cyfrif defnyddiwr (sydd angen y gallu ''renameuser'')",
+	'renameuserold' => 'Enw presennol y defnyddiwr:',
+	'renameusernew' => "Enw newydd i'r defnyddiwr:",
+	'renameuserreason' => 'Y rheswm dros ail-enwi:',
+	'renameusermove' => "Symud y tudalennau defnyddiwr a sgwrs (ac unrhyw is-dudalennau) i'r enw newydd",
+	'renameusersuppress' => "Peidiwch â gosod ailgyfeiriadau i'r enw newydd",
+	'renameuserreserve' => 'Atal yr hen enw defnyddiwr rhag cael ei ddefnyddio rhagor',
+	'renameuserwarnings' => 'Rhybuddion:',
+	'renameuserconfirm' => "Parhau gyda'r ail-enwi",
+	'renameusersubmit' => 'Anfon',
+	'renameusererrordoesnotexist' => 'Nid yw\'r defnyddiwr "<nowiki>$1</nowiki>" yn bodoli.',
+	'renameusererrorexists' => 'Mae\'r defnyddiwr "<nowiki>$1</nowiki>" eisoes yn bodoli.',
+	'renameusererrorinvalid' => 'Mae\'r enw defnyddiwr "<nowiki>$1</nowiki>" yn annilys',
+	'renameuser-error-request' => 'Cafwyd trafferth yn derbyn y cais.
+Ewch yn ôl a cheisio eto, os gwelwch yn dda.',
+	'renameuser-error-same-user' => "Ni ellir ail-enwi defnyddiwr gyda'r un enw ag o'r blaen.",
+	'renameusersuccess' => 'Mae\'r defnyddiwr "<nowiki>$1</nowiki>" wedi cael ei ail-enwi i "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => "Mae'r dudalen $1 ar gael yn barod ac ni ellir ei throsysgrifo.",
+	'renameuser-page-moved' => 'Symudwyd $1 i $2.',
+	'renameuser-page-unmoved' => 'Ni lwyddwyd i symud y dudalen $1 i $2.',
+	'renameuserlogpage' => 'Lòg ail-enwi defnyddwyr',
+	'renameuserlogpagetext' => "Dyma lòg o'r holl newidiadau i enwau defnyddwyr.",
+	'renameuserlogentry' => 'wedi ail-enwi $1 yn "$2"',
+	'renameuser-log' => '$1 {{PLURAL:$1|golygiad|golygiad|olygiad|golygiad|golygiad|o olygiadau}}. Rheswm: $2',
+	'renameuser-move-log' => 'Wedi symud y dudalen yn awtomatig wrth ail-enwi\'r defnyddiwr "[[User:$1|$1]]" i "[[User:$2|$2]]"',
+	'right-renameuser' => 'Ail-enwi defnyddwyr',
+	'renameuser-renamed-notice' => "Mae'r defnyddiwr hwn wedi ei ail-enwi.
+Mae'r lòg ail-enwi defnyddwyr i'w weld isod.",
+);
+
+/** Danish (Dansk)
+ * @author Byrial
+ * @author Froztbyte
+ * @author Peter Alberti
+ */
+$messages['da'] = array(
+	'renameuser' => 'Omdøb bruger',
+	'renameuser-linkoncontribs' => 'omdøb bruger',
+	'renameuser-linkoncontribs-text' => 'Omdøb denne bruger',
+	'renameuser-desc' => "Laver en [[Special:Renameuser|specialside]] til at omdøbe en bruger (kræver rettigheden ''renameuser'')",
+	'renameuserold' => 'Nuværende brugernavn:',
+	'renameusernew' => 'Nyt brugernavn:',
+	'renameuserreason' => 'Årsag til omdøbning:',
+	'renameusermove' => 'Flyt bruger- og diskussionssider (og deres undersider) til nyt navn',
+	'renameusersuppress' => 'Opret ikke omdirigeringer til det nye navn',
+	'renameuserreserve' => 'Bloker det gamle brugernavn fra fremtidig brug',
+	'renameuserwarnings' => 'Advarsler:',
+	'renameuserconfirm' => 'Ja, omdøb brugeren',
+	'renameusersubmit' => 'Omdøb',
+	'renameusererrordoesnotexist' => 'Brugeren "<nowiki>$1</nowiki>" findes ikke.',
+	'renameusererrorexists' => 'Brugeren "<nowiki>$1</nowiki>" findes allerede.',
+	'renameusererrorinvalid' => 'Brugernavnet "<nowiki>$1</nowiki>" er ugyldigt.',
+	'renameuser-error-request' => 'Det var et problem med at modtage forespørgslen.
+Gå venligst tilbage og prøv igen.',
+	'renameuser-error-same-user' => 'Du kan ikke omdøbe en bruger til det samme navn som før.',
+	'renameusersuccess' => 'Brugeren "<nowiki>$1</nowiki>" er blevet omdøbt til "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Siden $1 eksisterer allerede og kan ikke automatisk overskrives.',
+	'renameuser-page-moved' => 'Siden $1 er flyttet til $2.',
+	'renameuser-page-unmoved' => 'Siden $1 kunne ikke flyttes til $2.',
+	'renameuserlogpage' => 'Brugeromdøbningslog',
+	'renameuserlogpagetext' => 'Dette er en log over omdøbninger af brugernavne.',
+	'renameuserlogentry' => 'har omdøbt $1 til "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 redigering|$1 redigeringer}}. Årsag: $2',
+	'renameuser-move-log' => 'Side automatisk flyttet ved omdøbning af bruger "[[User:$1|$1]]" til "[[User:$2|$2]]"',
+	'right-renameuser' => 'Omdøbe brugere',
+	'renameuser-renamed-notice' => 'Denne bruger er blevet omdøbt.
+Til information er omdøbningsloggen vist nedenfor.',
+);
+
+/** German (Deutsch)
+ * @author Kghbln
+ * @author Raimond Spekking
+ * @author Spacebirdy
+ * @author The Evil IP address
+ * @author Umherirrender
+ */
+$messages['de'] = array(
+	'renameuser' => 'Benutzer umbenennen',
+	'renameuser-linkoncontribs' => 'Benutzer umbenennen',
+	'renameuser-linkoncontribs-text' => 'Diesen Benutzer umbenennen',
+	'renameuser-desc' => 'Ergänzt eine [[Special:Renameuser|Spezialseite]] zum Umbenennen eines Benutzers',
+	'renameuserold' => 'Bisheriger Benutzername:',
+	'renameusernew' => 'Neuer Benutzername:',
+	'renameuserreason' => 'Grund:',
+	'renameusermove' => 'Benutzer-/Diskussionsseite (inkl. Unterseiten) auf den neuen Benutzernamen verschieben',
+	'renameusersuppress' => 'Weiterleitung auf den neuen Benutzernamen unterdrücken',
+	'renameuserreserve' => 'Alten Benutzernamen für eine Neuregistrierung blockieren',
+	'renameuserwarnings' => 'Warnungen:',
+	'renameuserconfirm' => 'Ja, Benutzer umbenennen',
+	'renameusersubmit' => 'Umbenennen',
+	'renameusererrordoesnotexist' => 'Der Benutzername „<nowiki>$1</nowiki>“ existiert nicht.',
+	'renameusererrorexists' => 'Der Benutzername „<nowiki>$1</nowiki>“ existiert bereits.',
+	'renameusererrorinvalid' => 'Der Benutzername „<nowiki>$1</nowiki>“ ist ungültig.',
+	'renameuser-error-request' => 'Es gab ein Problem beim Empfang der Anfrage. Bitte nochmal versuchen.',
+	'renameuser-error-same-user' => 'Alter und neuer Benutzername sind identisch.',
+	'renameusersuccess' => 'Der Benutzer „<nowiki>$1</nowiki>“ wurde erfolgreich in „<nowiki>$2</nowiki>“ umbenannt.',
+	'renameuser-page-exists' => 'Die Seite „$1“ ist bereits vorhanden und kann nicht automatisch überschrieben werden.',
+	'renameuser-page-moved' => 'Die Seite „$1“ wurde nach „$2“ verschoben.',
+	'renameuser-page-unmoved' => 'Die Seite „$1“ konnte nicht nach „$2“ verschoben werden.',
+	'renameuserlogpage' => 'Benutzernamenänderungs-Logbuch',
+	'renameuserlogpagetext' => 'In diesem Logbuch werden die Änderungen von Benutzernamen protokolliert.',
+	'renameuserlogentry' => 'hat „$1“ in „$2“ umbenannt',
+	'renameuser-log' => '{{PLURAL:$1|Eine Bearbeitung|$1 Bearbeitungen}}. Grund: $2',
+	'renameuser-move-log' => 'Seite während der Benutzerkontoumbenennung von „[[User:$1|$1]]“ in „[[User:$2|$2]]“ automatisch verschoben',
+	'right-renameuser' => 'Benutzer umbenennen',
+	'renameuser-renamed-notice' => '{{GENDER:$1|Dieser Benutzer|Diese Benutzerin|Dieser Benutzer}} wurde umbenannt.
+Zur Information folgt das Benutzernamenänderungs-Logbuch.',
+);
+
+/** Zazaki (Zazaki)
+ * @author Aspar
+ * @author Xoser
+ */
+$messages['diq'] = array(
+	'renameuser' => 'nameyê karberi bıvurn',
+	'renameuser-linkoncontribs' => 'name bivurne',
+	'renameuser-linkoncontribs-text' => 'Nameyê ena karber bivurne',
+	'renameuser-desc' => "qey newe ra namedayişê karberi re yew [[Special:Renameuser|pelo xas]] têare keno (gani heqqê ''karberi re newe ra name bıde'' bıbo )",
+	'renameuserold' => 'nameyê karberi yo nıkayi',
+	'renameusernew' => 'nameyê karberi yo newe',
+	'renameuserreason' => 'çıra:',
+	'renameusermove' => 'nameyê karberan u pelê werêaameyişan bıkırışi nameyo newe',
+	'renameuserreserve' => 'nameyê karberi yo verini bloke bıker.',
+	'renameuserwarnings' => 'hişyariyi',
+	'renameuserconfirm' => 'bele karberi newe ra name bıker',
+	'renameusersubmit' => 'bierşawê/biruşnê',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" no name de yew karber çino.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" karber ca ra esto',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" nameyê karberi nemeqbulo',
+	'renameuser-error-request' => 'ca ardışê waştışê şıma de yew problem veciya.
+kerem kerê agêrê newe ra tesel bıkerê, bıcerbnê',
+	'renameuser-error-same-user' => 'şıma nêşkeni nameyê karberi yo verini reyna biyarî pakerî',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" rumuzê no karberi yo cıwa verın vuriya "<nowiki>$2</nowiki>" no rumuzi re.',
+	'renameuser-page-exists' => '$1 pel ca ra esto newe ra ser nênusiyeno.',
+	'renameuser-page-moved' => '$1 pel kırışiya no $2 pel',
+	'renameuser-page-unmoved' => '$1 pel nêkırışiya no $2 pel.',
+	'renameuserlogpage' => 'qeydê vuriyayişê nameyê karberi',
+	'renameuserlogpagetext' => 'listeya cêrıni nameyê karberê ke vuriyayo mocneno',
+	'renameuserlogentry' => '$1newe ra neme bı: "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 edit|$1 edit}}. çıra: $2',
+	'renameuser-move-log' => 'wexta ke karber "[[User:$1|$1]]" no name ra kırışiya "[[User:$2|$2]]" no name re ya newe ra name diyêne pel zi otomotikmen kırişiya',
+	'right-renameuser' => 'nameyê karberan bıvurn',
+	'renameuser-renamed-notice' => 'nameyê na/no karberi/e vuriya.
+qey referansi rocaneyê vuriyayişê nameyi cêr de yo.',
+);
+
+/** Lower Sorbian (Dolnoserbski)
+ * @author Michawiki
+ */
+$messages['dsb'] = array(
+	'renameuser' => 'Wužywarja pśemjeniś',
+	'renameuser-linkoncontribs' => 'wužywarja psemjenjowaś',
+	'renameuser-linkoncontribs-text' => 'Toś togo wužywarja pśemjenjowaś',
+	'renameuser-desc' => "Wužywarja pśemjeniś (pomina se pšawo ''renameuser'')",
+	'renameuserold' => 'Aktualne wužywarske mě:',
+	'renameusernew' => 'Nowe wužywarske mě:',
+	'renameuserreason' => 'Pśicyna za pśemjenjenje',
+	'renameusermove' => 'Wužywarski a diskusijny bok (a jich pódboki) do nowego mjenja pśesunuś',
+	'renameusersuppress' => 'Dalejpósrědnjenja k nowemu mjenjoju njenapóraś',
+	'renameuserreserve' => 'Stare wužywarske mě pśeśiwo pśichodnemu wužywanjeju blokěrowaś',
+	'renameuserwarnings' => 'Warnowanja:',
+	'renameuserconfirm' => 'Jo, wužywarja pśemjeniś',
+	'renameusersubmit' => 'Pśemjeniś',
+	'renameusererrordoesnotexist' => 'Wužywaŕ "<nowiki>$1</nowiki>" njeeksistěrujo.',
+	'renameusererrorexists' => 'Wužywaŕ "<nowiki>$1</nowiki>" južo eksistěrujo.',
+	'renameusererrorinvalid' => 'Wužywarske mě "<nowiki>$1</nowiki>" jo njepłaśiwe.',
+	'renameuser-error-request' => 'Problem jo pśi dostawanju napšašanja wustupił.
+Źi pšosym slědk a wopytaj hyšći raz.',
+	'renameuser-error-same-user' => 'Njamóžoš wužywarja do togo samogo mjenja pśemjeniś',
+	'renameusersuccess' => 'Wužywaŕ "<nowiki>$1</nowiki>" jo se do "<nowiki>$2</nowiki>" pśemjenił.',
+	'renameuser-page-exists' => 'Bok $1 južo eksistěrujo a njedajo se awtomatiski pśepisaś.',
+	'renameuser-page-moved' => 'Bok $1 jo se do $2 pśesunuł.',
+	'renameuser-page-unmoved' => 'Bok $1 njejo se do $2 pśesunuś dał.',
+	'renameuserlogpage' => 'Protokol wužywarskich pśemjenjenjow',
+	'renameuserlogpagetext' => 'Toś to jo protokol změnow na wužywarskich mjenjach.',
+	'renameuserlogentry' => 'jo $1 do "$2" pśemjenił',
+	'renameuser-log' => '{{PLURAL:&1|1 změna|$1 změnje|$1 změny|$1 změnow}}. Pśicyna: $2',
+	'renameuser-move-log' => 'Pśi pśemjenjowanju wužywarja "[[User:$1|$1]]" do "[[User:$2|$2]]" awtomatiski pśesunjony bok',
+	'right-renameuser' => 'Wužywarjow pśemjeniś',
+	'renameuser-renamed-notice' => 'Toś ten wužywaŕ jo se pśemjenił.
+Protokol pśemjenjowanjow jo dołojce ako referenca pódany.',
+);
+
+/** Greek (Ελληνικά)
+ * @author Badseed
+ * @author Consta
+ * @author Dead3y3
+ * @author Glavkos
+ * @author Kiriakos
+ * @author MF-Warburg
+ * @author Omnipaedista
+ * @author ZaDiak
+ */
+$messages['el'] = array(
+	'renameuser' => 'Μετονομασία χρήστη',
+	'renameuser-linkoncontribs' => 'Μετονομασία χρήστη',
+	'renameuser-linkoncontribs-text' => 'Μετονομασία αυτού του χρήστη',
+	'renameuser-desc' => "Προσθέτει μια [[Special:Renameuser|ειδική σελίδα]] για την μετονομασία ενός χρήστη (είναι απαραίτητο το δικαίωμα ''renameuser'')",
+	'renameuserold' => 'Τρέχον όνομα χρήστη:',
+	'renameusernew' => 'Νέο όνομα χρήστη:',
+	'renameuserreason' => 'Λόγος μετονομασίας:',
+	'renameusermove' => 'Μετακίνηση της σελίδας χρήστη και της σελίδας συζήτησης χρήστη (και των υποσελίδων τους) στο καινούργιο όνομα',
+	'renameusersuppress' => 'Μην δημιουργείτε ανακατευθύνσεις στο νέο όνομα',
+	'renameuserreserve' => 'Φραγή του παλιού ονόματος χρήστη/χρήστριας από μελλοντική χρήση',
+	'renameuserwarnings' => 'Προειδοποιήσεις:',
+	'renameuserconfirm' => 'Ναι, μετονομάστε τον χρήστη',
+	'renameusersubmit' => 'Καταχώριση',
+	'renameusererrordoesnotexist' => 'Ο χρήστης "<nowiki>$1</nowiki>" δεν υπάρχει',
+	'renameusererrorexists' => 'Ο χρήστης "<nowiki>$1</nowiki>" υπάρχει ήδη.',
+	'renameusererrorinvalid' => 'Το όνομα χρήστη "<nowiki>$1</nowiki>" είναι άκυρο.',
+	'renameuser-error-request' => 'Υπήρξε ένα πρόβλημα στην παραλαβή της αίτησης. Παρακαλούμε επιστρέψτε και ξαναδοκιμάστε.',
+	'renameuser-error-same-user' => 'Δεν μπορείτε να μετονομάσετε έναν χρήστη σε όνομα ίδιο με το προηγούμενο.',
+	'renameusersuccess' => 'Ο χρήστης ή η χρήστρια «<nowiki>$1</nowiki>» έχει μετονομαστεί σε «<nowiki>$2</nowiki>».',
+	'renameuser-page-exists' => 'Η σελίδα $1 υπάρχει ήδη και δεν μπορεί να αντικατασταθεί αυτόματα.',
+	'renameuser-page-moved' => 'Η σελίδα $1 μετακινήθηκε στο $2.',
+	'renameuser-page-unmoved' => 'Η σελίδα $1 δεν μπόρεσε να μετακινηθεί στο $2.',
+	'renameuserlogpage' => 'Αρχείο μετονομασίας χρηστών',
+	'renameuserlogpagetext' => 'Αυτό είναι ένα αρχείο καταγραφών αλλαγών σε ονόματα χρηστών',
+	'renameuserlogentry' => 'Ο/Η $1 μετονομάστηκε σε «$2»',
+	'renameuser-log' => '{{PLURAL:$1|1 επεξεργασία|$1 επεξεργασίες}}. Λόγος: $2',
+	'renameuser-move-log' => 'Η σελίδα μετακινήθηκε αυτόματα κατά τη μετονομασία του χρήστη "[[User:$1|$1]]" σε "[[User:$2|$2]]"',
+	'right-renameuser' => 'Μετονομασία χρηστών',
+	'renameuser-renamed-notice' => 'Αυτός ο χρήστης άλλαξε όνομα
+Tο ημερολόγιο επανονομασιών δίνεται παρακάτω για αναφορά.',
+);
+
+/** Esperanto (Esperanto)
+ * @author Tlustulimu
+ * @author Yekrats
+ */
+$messages['eo'] = array(
+	'renameuser' => 'Alinomigi uzanton',
+	'renameuser-linkoncontribs' => 'renomigi uzanton',
+	'renameuser-linkoncontribs-text' => 'Renomigi ĉi tiun uzanton',
+	'renameuser-desc' => "Aldonas [[Special:Renameuser|specialan paĝon]] por alinomigi uzanton (bezonas rajton ''renameuser'')",
+	'renameuserold' => 'Aktuala salutnomo:',
+	'renameusernew' => 'Nova salutnomo:',
+	'renameuserreason' => 'Kialo por alinomigo:',
+	'renameusermove' => 'Movu uzantan kaj diskutan paĝojn (kaj ties subpaĝojn) al la nova nomo',
+	'renameusersuppress' => 'Ne krei alidirektilojn al la nova nomo',
+	'renameuserreserve' => 'Teni la malnovan salutnomon de plua uzo',
+	'renameuserwarnings' => 'Avertoj:',
+	'renameuserconfirm' => 'Jes, renomigu la uzanton',
+	'renameusersubmit' => 'Ek',
+	'renameusererrordoesnotexist' => 'La uzanto "<nowiki>$1</nowiki>" ne ekzistas',
+	'renameusererrorexists' => 'La uzanto "<nowiki>$1</nowiki>" jam ekzistas',
+	'renameusererrorinvalid' => 'La salutnomo "<nowiki>$1</nowiki>" estas malvalida',
+	'renameuser-error-request' => 'Estis problemo recivante la peton.
+Bonvolu retroigi kaj reprovi.',
+	'renameuser-error-same-user' => 'Vi ne povas alinomigi uzanton al la sama nomo.',
+	'renameusersuccess' => 'La uzanto "<nowiki>$1</nowiki>" estas alinomita al "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'La paĝo $1 jam ekzistas kaj ne povas esti aŭtomate anstataŭata.',
+	'renameuser-page-moved' => 'La paĝo $1 estis movita al $2.',
+	'renameuser-page-unmoved' => 'La paĝo $1 ne povis esti movita al $2.',
+	'renameuserlogpage' => 'Protokolo pri alinomigoj de uzantoj',
+	'renameuserlogpagetext' => 'Jen protokolo pri ŝanĝoj de salutnomoj.',
+	'renameuserlogentry' => 'renomigis $1 al "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 redakto|$1 redaktoj}}. Kialo: $2',
+	'renameuser-move-log' => 'Aŭtomate movis paĝon dum alinomigo de la uzanto "[[User:$1|$1]]" al "[[User:$2|$2]]"',
+	'right-renameuser' => 'Alinomigi uzantojn',
+	'renameuser-renamed-notice' => 'Ĉi tiu uzanto estis renomigita.
+Jen la protokolo pri renomigado por via referenco.',
+);
+
+/** Spanish (Español)
+ * @author Alhen
+ * @author Dferg
+ * @author Diego Grez
+ * @author Icvav
+ * @author Jatrobat
+ * @author Lin linao
+ * @author Locos epraix
+ * @author Remember the dot
+ * @author Sanbec
+ * @author Spacebirdy
+ * @author Translationista
+ */
+$messages['es'] = array(
+	'renameuser' => 'Cambiar el nombre de usuario',
+	'renameuser-linkoncontribs' => 'cambiar el nombre de este usuario',
+	'renameuser-linkoncontribs-text' => 'Cambiar el nombre de este usuario',
+	'renameuser-desc' => "Añade una [[Special:Renameuser|página especial]] para cambiar de nombre a un usuario (necesita el derecho ''renameuser'')",
+	'renameuserold' => 'Nombre actual:',
+	'renameusernew' => 'Nuevo nombre de usuario:',
+	'renameuserreason' => 'Motivo:',
+	'renameusermove' => 'Trasladar las páginas de usuario y de discusión (y sus subpáginas) al nuevo nombre',
+	'renameusersuppress' => 'No crear redirecciones al nuevo nombre',
+	'renameuserreserve' => 'Bloquear el antiguo nombre de usuario para evitar que sea usado en el futuro',
+	'renameuserwarnings' => 'Avisos:',
+	'renameuserconfirm' => 'Sí, cambiar el nombre del usuario',
+	'renameusersubmit' => 'Enviar',
+	'renameusererrordoesnotexist' => 'El usuario «<nowiki>$1</nowiki>» no existe',
+	'renameusererrorexists' => 'El usuario «<nowiki>$1</nowiki>» ya existe',
+	'renameusererrorinvalid' => 'El nombre de usuario «<nowiki>$1</nowiki>» no es válido',
+	'renameuser-error-request' => 'Hubo un problema al recibir la solicitud.
+Por favor, vuelve atrás e inténtalo de nuevo.',
+	'renameuser-error-same-user' => 'No puedes renombrar a un usuario con el nombre que ya tenía.',
+	'renameusersuccess' => 'El nombre de usuario «<nowiki>$1</nowiki>» ha sido modificado a «<nowiki>$2</nowiki>»',
+	'renameuser-page-exists' => 'La página $1 ya existe y no puede ser reemplazada automáticamente.',
+	'renameuser-page-moved' => 'La página $1 ha sido trasladada a $2.',
+	'renameuser-page-unmoved' => 'La página $1 no pudo ser trasladada a $2.',
+	'renameuserlogpage' => 'Registro de cambios de nombre de usuario',
+	'renameuserlogpagetext' => 'Este es un registro de cambios de nombres de usuario.',
+	'renameuserlogentry' => 'cambió el nombre de usuario de $1 a «$2»',
+	'renameuser-log' => '{{PLURAL:$1|1 edición|$1 ediciones}}. Motivo: $2',
+	'renameuser-move-log' => 'Página trasladada automáticamente al cambiar el nombre de usuario de «[[User:$1|$1]]» a «[[User:$2|$2]]»',
+	'right-renameuser' => 'Cambiar el nombre de los usuarios',
+	'renameuser-renamed-notice' => 'El nombre de este usuario ha sido modificado.
+El registro de cambios de nombre de usuario se provee debajo para mayor referencia.',
+);
+
+/** Estonian (Eesti)
+ * @author Avjoska
+ * @author Jaan513
+ * @author Pikne
+ * @author Silvar
+ * @author WikedKentaur
+ */
+$messages['et'] = array(
+	'renameuser' => 'Kasutajanime muutmine',
+	'renameuser-linkoncontribs' => 'kasutaja ümbernimetamine',
+	'renameuser-linkoncontribs-text' => 'Nimeta see kasutaja ümber',
+	'renameuser-desc' => "Lisab kasutajanime muutmise [[Special:Renameuser|erilehekülje]] (vajab ''renameuser''-õigust).",
+	'renameuserold' => 'Praegune kasutajanimi:',
+	'renameusernew' => 'Uus kasutajanimi:',
+	'renameuserreason' => 'Muutmise põhjus:',
+	'renameusermove' => 'Nimeta ümber kasutajaleht, aruteluleht ja nende alamlehed.',
+	'renameusersuppress' => 'Ära loo ümbersuunamisi uuele nimele',
+	'renameuserreserve' => 'Ära luba vana kasutajanime edaspidi kasutada',
+	'renameuserwarnings' => 'Hoiatused:',
+	'renameuserconfirm' => 'Jah, nimeta kasutaja ümber',
+	'renameusersubmit' => 'Muuda',
+	'renameusererrordoesnotexist' => 'Kasutajat "<nowiki>$1</nowiki>" ei ole olemas.',
+	'renameusererrorexists' => 'Kasutaja "<nowiki>$1</nowiki>" on juba olemas.',
+	'renameusererrorinvalid' => 'Kasutajanimi "<nowiki>$1</nowiki>" on vigane.',
+	'renameuser-error-request' => 'Palvet ei õnnestunud kätte saada.
+Palun ürita uuesti.',
+	'renameuser-error-same-user' => 'Vana ja uus nimi on samased.',
+	'renameusersuccess' => 'Kasutaja "<nowiki>$1</nowiki>" uus nimi on nüüd "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Lehekülg $1 on juba olemas ja seda ei saa automaatselt üle kirjutada.',
+	'renameuser-page-moved' => 'Lehekülg $1 on teisaldatud pealkirja $2 alla.',
+	'renameuser-page-unmoved' => 'Lehekülje $1 teisaldamine nime $2 alla ei õnnestunud.',
+	'renameuserlogpage' => 'Kasutajanime muutmise logi',
+	'renameuserlogpagetext' => 'See on kasutajanimede muutmise logi.',
+	'renameuserlogentry' => 'nimetas kasutaja $1 ümber kasutajaks "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 redigeerimine|$1 redigeerimist}}. Põhjus: $2',
+	'renameuser-move-log' => 'Teisaldatud automaatselt, kui kasutaja "[[User:$1|$1]]" nimetati ümber kasutajaks "[[User:$2|$2]]"',
+	'right-renameuser' => 'Muuta kasutajanimesid',
+	'renameuser-renamed-notice' => 'Kasutaja on ümbernimetatud.
+Allpool on toodud ümbernimetamislogi.',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ * @author Theklan
+ */
+$messages['eu'] = array(
+	'renameuser' => 'Erabiltzaile bati izena aldatu',
+	'renameuserold' => 'Oraingo erabiltzaile izena:',
+	'renameusernew' => 'Erabiltzaile izen berria:',
+	'renameuserreason' => 'Izena aldatzeko arrazoia:',
+	'renameuserwarnings' => 'Oharrak:',
+	'renameuserconfirm' => 'Bai, lankidearen izena aldatu',
+	'renameusersubmit' => 'Bidali',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" lankidea existitzen da',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" erabiltzaile izena okerra da',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" lankidearen izen berria "<nowiki>$2</nowiki>" da',
+	'renameuser-page-exists' => 'Badago $1 orrialdea, eta ezin da automatikoki gainidatzi.',
+	'renameuser-page-moved' => '$1 orrialde $2(e)ra mugitu da.',
+	'renameuser-page-unmoved' => 'Ezin izan da $1 orrialdea $2(e)ra mugitu.',
+	'renameuserlogpage' => 'Erabiltzaileen izen aldaketa erregistroa',
+	'renameuserlogpagetext' => 'Erabiltzaileen izen aldaketen erregistroa da hau',
+	'renameuser-log' => '{{PLURAL:$1|aldaketa 1|$1 aldaketa}}. Arrazoia: $2',
+	'right-renameuser' => 'Lankideak berrizendatu',
+);
+
+/** Extremaduran (Estremeñu)
+ * @author Better
+ */
+$messages['ext'] = array(
+	'renameuser-page-moved' => 'S´á moviu la páhina $1 a $2.',
+);
+
+/** Persian (فارسی)
+ * @author Ebraminio
+ * @author Huji
+ * @author Wayiran
+ */
+$messages['fa'] = array(
+	'renameuser' => 'تغییر نام کاربر',
+	'renameuser-linkoncontribs' => 'تغییر نام کاربر',
+	'renameuser-linkoncontribs-text' => 'تغییر نام کاربر',
+	'renameuser-desc' => "نام یک کاربر را تغییر می‌دهد (نیازمند برخورداری از اختیارات ''تغییرنام'' است)",
+	'renameuserold' => 'نام کاربری کنونی:',
+	'renameusernew' => 'نام کاربری نو:',
+	'renameuserreason' => 'علت تغییر نام کاربری:',
+	'renameusermove' => 'صفحه کاربر و صفحه بحث کاربر (و زیر صفحه‌های آن‌ها) را به نام جدید انتقال بده',
+	'renameusersuppress' => 'تغییر مسیر به نام جدید ایجاد نکن',
+	'renameuserreserve' => 'نام کاربری قبلی را در مقابل استفادهٔ مجدد حفظ کن',
+	'renameuserwarnings' => 'هشدار:',
+	'renameuserconfirm' => 'بله، نام کاربر را تغییر بده',
+	'renameusersubmit' => 'ارسال',
+	'renameusererrordoesnotexist' => 'نام کاربری «<nowiki>$1</nowiki>» وجود ندارد',
+	'renameusererrorexists' => 'نام کاربری «<nowiki>$1</nowiki>» استفاده شده‌است',
+	'renameusererrorinvalid' => 'نام کاربری «<nowiki>$1</nowiki>» غیر مجاز است',
+	'renameuser-error-request' => 'در دریافت درخواست مشکلی پیش آمد. لطفاً به صفحهٔ قبل بازگردید و دوباره تلاش کنید.',
+	'renameuser-error-same-user' => 'شما نمی‌توانید نام یک کاربر را به همان نام قبلی‌اش تغییر دهید.',
+	'renameusersuccess' => 'نام کاربر «<nowiki>$1</nowiki>» به «<nowiki>$2</nowiki>» تغییر یافت.',
+	'renameuser-page-exists' => 'صفحهٔ $1 از قبل وجود داشته و به طور خودکار قابل بازنویسی نیست.',
+	'renameuser-page-moved' => 'صفحهٔ $1 به $2 انتقال داده شد.',
+	'renameuser-page-unmoved' => 'امکان انتقال صفحهٔ $1 به $2 وجود ندارد.',
+	'renameuserlogpage' => 'سیاهه تغییر نام کاربر',
+	'renameuserlogpagetext' => 'این سیاههٔ تغییر نام کاربران است',
+	'renameuserlogentry' => 'نام $1 را به $2 تغییر داد',
+	'renameuser-log' => '$1 ویرایش. دلیل: $2',
+	'renameuser-move-log' => 'صفحه در ضمن تغییر نام «[[User:$1|$1]]» به «[[User:$2|$2]]» به طور خودکار انتقال داده شد.',
+	'right-renameuser' => 'تغییر نام کاربران',
+	'renameuser-renamed-notice' => 'این کاربر تغییر نام داده‌است.
+سیاهه تغییر نام در ادامه آمده است.',
+);
+
+/** Finnish (Suomi)
+ * @author Agony
+ * @author Centerlink
+ * @author Crt
+ * @author Nike
+ * @author Str4nd
+ */
+$messages['fi'] = array(
+	'renameuser' => 'Käyttäjätunnuksen vaihto',
+	'renameuser-linkoncontribs' => 'nimeä käyttäjä uudelleen',
+	'renameuser-linkoncontribs-text' => 'Nimeä tämä käyttäjä uudelleen',
+	'renameuser-desc' => "Mahdollistaa käyttäjän uudelleennimeämisen (vaatii ''renameuser''-oikeudet).",
+	'renameuserold' => 'Nykyinen tunnus',
+	'renameusernew' => 'Uusi tunnus',
+	'renameuserreason' => 'Kommentti',
+	'renameusermove' => 'Siirrä käyttäjä- ja keskustelusivut alasivuineen uudelle nimelle',
+	'renameusersuppress' => 'Älä luo ohjauksia uuteen nimeen',
+	'renameuserreserve' => 'Estä entinen käyttäjänimi tulevalta käytöltä',
+	'renameuserwarnings' => 'Varoitukset:',
+	'renameuserconfirm' => 'Kyllä, uudelleennimeä käyttäjä',
+	'renameusersubmit' => 'Nimeä',
+	'renameusererrordoesnotexist' => 'Tunnusta ”<nowiki>$1</nowiki>” ei ole',
+	'renameusererrorexists' => 'Tunnus ”<nowiki>$1</nowiki>” on jo olemassa',
+	'renameusererrorinvalid' => 'Tunnus ”<nowiki>$1</nowiki>” ei ole kelvollinen',
+	'renameuser-error-request' => 'Pyynnön vastaanottamisessa oli ongelma. Ole hyvä ja yritä uudelleen.',
+	'renameuser-error-same-user' => 'Et voi nimetä käyttäjää uudelleen samaksi kuin hän jo on.',
+	'renameusersuccess' => 'Käyttäjän ”<nowiki>$1</nowiki>” tunnus on nyt ”<nowiki>$2</nowiki>”.',
+	'renameuser-page-exists' => 'Sivu $1 on jo olemassa eikä sitä korvattu.',
+	'renameuser-page-moved' => 'Sivu $1 siirrettiin nimelle $2.',
+	'renameuser-page-unmoved' => 'Sivun $1 siirtäminen nimelle $2 ei onnistunut.',
+	'renameuserlogpage' => 'Tunnusten vaihdot',
+	'renameuserlogpagetext' => 'Tämä on loki käyttäjätunnuksien vaihdoista.',
+	'renameuserlogentry' => 'on nimennyt käyttäjän $1 käyttäjäksi ”$2”',
+	'renameuser-log' => 'Tehnyt {{PLURAL:$1|yhden muokkauksen|$1 muokkausta}}. $2',
+	'renameuser-move-log' => 'Siirretty automaattisesti tunnukselta ”[[User:$1|$1]]” tunnukselle ”[[User:$2|$2]]”',
+	'right-renameuser' => 'Nimetä käyttäjätunnuksia uudelleen',
+	'renameuser-renamed-notice' => 'Tämä käyttäjä on nimetty uudelleen.
+Alla on ote tunnusten vaihtolokista.',
+);
+
+/** Faroese (Føroyskt)
+ * @author EileenSanda
+ * @author Spacebirdy
+ */
+$messages['fo'] = array(
+	'renameuser' => 'Umdoyp brúkara',
+	'renameuser-linkoncontribs' => 'umdoyp brúkara',
+	'renameuser-linkoncontribs-text' => 'Umdoyp henda brúkara',
+	'renameuserold' => 'Rætta brúkaranavn:',
+	'renameusernew' => 'Nýtt brúkaranavn:',
+	'renameuserreason' => 'Orsøk til nýtt navn:',
+	'renameuserwarnings' => 'Ávaringar:',
+	'renameuserconfirm' => 'Ja, gev hesum brúkara nýtt navn',
+	'renameusersubmit' => 'Send inn',
+	'renameusererrordoesnotexist' => 'Brúkarin "<nowiki>$1</nowiki>" er ikki til.',
+	'renameusererrorexists' => 'Brúkarin "<nowiki>$1</nowiki>" er long til.',
+	'renameusererrorinvalid' => 'Brúkaranavnið "<nowiki>$1</nowiki>" er ógyldugt.',
+	'renameuser-error-request' => 'Har var ein trupulleiki við at móttaka fyrispurningin.
+Vinarliga far aftur og royn enn einaferð.',
+	'renameuser-page-moved' => 'Síðan $1 er blivin flutt til $2.',
+	'renameuser-page-unmoved' => 'Síðan $1 kundi ikki verða flutt til $2.',
+	'renameuserlogentry' => 'umdoypti $1 til "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 rætting|$1 rættingar}}. Orsøk: $2',
+	'right-renameuser' => 'Umdoyp brúkarar',
+	'renameuser-renamed-notice' => 'Hesin brúkari hevur fingið nýtt navn.
+Loggurin fyri navnabroytingina er givin niðanfyri fyri keldu ávísing.',
+);
+
+/** French (Français)
+ * @author Cedric31
+ * @author Crochet.david
+ * @author Grondin
+ * @author Hégésippe Cormier
+ * @author IAlex
+ * @author Peter17
+ * @author PieRRoMaN
+ * @author Urhixidur
+ * @author Verdy p
+ */
+$messages['fr'] = array(
+	'renameuser' => 'Renommer l’utilisateur',
+	'renameuser-linkoncontribs' => 'renommer l’utilisateur',
+	'renameuser-linkoncontribs-text' => 'Renommer cet utilisateur',
+	'renameuser-desc' => "Renomme un utilisateur (nécessite les droits de ''renameuser'')",
+	'renameuserold' => 'Nom actuel de l’utilisateur :',
+	'renameusernew' => 'Nouveau nom de l’utilisateur :',
+	'renameuserreason' => 'Motif du changement de nom :',
+	'renameusermove' => 'Renommer toutes les pages de l’utilisateur vers le nouveau nom',
+	'renameusersuppress' => 'Ne pas créer de redirection vers le nouveau nom',
+	'renameuserreserve' => 'Réserver l’ancien nom pour un usage futur',
+	'renameuserwarnings' => 'Avertissements :',
+	'renameuserconfirm' => 'Oui, renommer l’utilisateur',
+	'renameusersubmit' => 'Soumettre',
+	'renameusererrordoesnotexist' => 'L’utilisateur « <nowiki>$1</nowiki> » n’existe pas',
+	'renameusererrorexists' => 'L’utilisateur « <nowiki>$1</nowiki> » existe déjà',
+	'renameusererrorinvalid' => 'Le nom d’utilisateur « <nowiki>$1</nowiki> » n’est pas valide',
+	'renameuser-error-request' => 'Un problème existe avec la réception de la requête. Revenez en arrière et essayez à nouveau.',
+	'renameuser-error-same-user' => 'Vous ne pouvez pas renommer un utilisateur du même nom qu’auparavant.',
+	'renameusersuccess' => 'L’utilisateur « <nowiki>$1</nowiki> » a été renommé « <nowiki>$2</nowiki> »',
+	'renameuser-page-exists' => 'La page $1 existe déjà et ne peut pas être automatiquement remplacée.',
+	'renameuser-page-moved' => 'La page $1 a été déplacée vers $2.',
+	'renameuser-page-unmoved' => 'La page $1 ne peut pas être renommée en $2.',
+	'renameuserlogpage' => 'Journal des changements de noms d’utilisateurs',
+	'renameuserlogpagetext' => 'Ceci est l’historique des changements de noms d’utilisateur',
+	'renameuserlogentry' => 'a renommé « $1 » en « $2 »',
+	'renameuser-log' => '$1 modification{{PLURAL:$1||s}}. Motif : $2',
+	'renameuser-move-log' => 'Page déplacée automatiquement lorsque l’utilisateur « [[User:$1|$1]] » est devenu « [[User:$2|$2]] »',
+	'right-renameuser' => 'Renommer des utilisateurs',
+	'renameuser-renamed-notice' => 'Cet utilisateur a été renommé.
+Le journal des renommages est disponible ci-dessous pour information.',
+);
+
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'renameuser' => 'Renomar l’utilisator',
+	'renameuser-linkoncontribs' => 'renomar l’usanciér',
+	'renameuser-linkoncontribs-text' => 'Renomar ceti usanciér',
+	'renameuser-desc' => "Apond una [[Special:Renameuser|pâge spèciâla]] por renomar un usanciér (at fôta des drêts de ''renameuser'').",
+	'renameuserold' => 'Nom d’ora a l’usanciér :',
+	'renameusernew' => 'Novél nom a l’usanciér :',
+	'renameuserreason' => 'Rêson du changement de nom :',
+	'renameusermove' => 'Renomar totes les pâges a l’usanciér vers lo novél nom',
+	'renameusersuppress' => 'Pas fâre de redirèccion de vers lo novél nom',
+	'renameuserreserve' => 'Resèrvar lo viely nom por un usâjo a vegnir',
+	'renameuserwarnings' => 'Avèrtissements :',
+	'renameuserconfirm' => 'Ouè, renomar l’usanciér',
+	'renameusersubmit' => 'Sometre',
+	'renameusererrordoesnotexist' => 'L’usanciér « <nowiki>$1</nowiki> » ègziste pas.',
+	'renameusererrorexists' => 'L’usanciér « <nowiki>$1</nowiki> » ègziste ja.',
+	'renameusererrorinvalid' => 'Lo nom d’utilisator « <nowiki>$1</nowiki> » est envalido.',
+	'renameuser-error-request' => 'Un problèmo ègziste avouéc la reçua de la requéta.
+Volyéd tornar arriér et pués tornar èprovar.',
+	'renameuser-error-same-user' => 'Vos pouede pas renomar un usanciér du mémo nom que dês devant.',
+	'renameusersuccess' => 'L’usanciér « <nowiki>$1</nowiki> » at étâ renomâ en « <nowiki>$2</nowiki> ».',
+	'renameuser-page-exists' => 'La pâge $1 ègziste ja et pôt pas étre remplaciê ôtomaticament.',
+	'renameuser-page-moved' => 'La pâge $1 at étâ dèplaciê vers $2.',
+	'renameuser-page-unmoved' => 'La pâge $1 pôt pas étre renomâ en $2.',
+	'renameuserlogpage' => 'Jornal des changements de nom d’utilisator',
+	'renameuserlogpagetext' => 'O est lo jornal des changements de nom d’utilisator.',
+	'renameuserlogentry' => 'at renomâ « $1 » en « $2 »',
+	'renameuser-log' => '$1 changement{{PLURAL:$1||s}}. Rêson : $2',
+	'renameuser-move-log' => 'Pâge dèplaciê ôtomaticament quand l’usanciér « [[User:$1|$1]] » est vegnu « [[User:$2|$2]] »',
+	'right-renameuser' => 'Renomar des utilisators',
+	'renameuser-renamed-notice' => 'Ceti usanciér at étâ renomâ.
+Lo jornal des changements de nom est disponiblo ce-desot por enformacion.',
+);
+
+/** Friulian (Furlan)
+ * @author Klenje
+ */
+$messages['fur'] = array(
+	'renameuser' => 'Cambie non par un utent',
+	'renameuserold' => 'Non utent atuâl:',
+	'renameusernew' => 'Gnûf non utent:',
+	'renameuserwarnings' => 'Avîs:',
+);
+
+/** Western Frisian (Frysk)
+ * @author SK-luuut
+ * @author Snakesteuben
+ */
+$messages['fy'] = array(
+	'renameuser' => 'Feroarje in meidochnamme',
+	'renameuser-desc' => "Foeget in [[Special:Renameuser|spesiale side]] ta om in meidoggersnamme te feroarjen (jo hawwe hjirfoar it ''renameuser'' rjocht nedich)",
+	'renameuserold' => 'Alde namme:',
+	'renameusernew' => 'Nije namme:',
+	'renameuserreason' => 'Reden foar nammewiziging:',
+	'renameusermove' => 'Werneam meidogger en oerlis siden (mei ûnderlizzende siden) nei de nije namme',
+	'renameuserreserve' => 'Takomst brûken fan de âlde meidoggersnamme foarkomme',
+	'renameuserwarnings' => 'Warskôgings:',
+	'renameuserconfirm' => 'Ja, feroarje de namme fan de meidogger',
+	'renameusersubmit' => 'Feroarje',
+	'renameusererrordoesnotexist' => 'Der is gjin meidogger mei de namme "<nowiki>$1</nowiki>"',
+	'renameusererrorexists' => 'De meidochnamme "<nowiki>$1</nowiki>" wurdt al brûkt.',
+	'renameusererrorinvalid' => 'De meidochnamme "<nowiki>$1</nowiki>" mei net.',
+	'renameuser-error-request' => "Der wie in probleem mei it ferwurkjen fan de oanfraach.
+Gean tebek en probearje it asjebleaft op 'e nij.",
+	'renameuser-error-same-user' => 'Jo kinne in meidoggersnamme net nei deselde namme feroarje.',
+	'renameusersuccess' => 'Meidogger "<nowiki>$1</nowiki>" is no meidogger "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'De side $1 bestiet al en kin net automatysk oerskreaun wurde.',
+	'renameuser-page-moved' => 'Sidenamme $1 is feroare yn $2.',
+	'renameuser-page-unmoved' => 'Sidenamme $1 koe net feroare wurde yn $2.',
+	'renameuserlogpage' => 'Nammeferoar-loch',
+	'renameuserlogpagetext' => 'Dit is in loch fan feroarings fan meidochnammen.',
+	'renameuserlogentry' => 'hat de namme fan $1 feroare yn "$2"',
+	'renameuser-log' => '{{PLURAL:$1|ien feroaring|$1 feroarings}}. Reden: $2',
+	'renameuser-move-log' => 'Sidenamme automatysk feroare by it feroarjen fan de meidoggersnamme fan  "[[User:$1|$1]]" yn "[[User:$2|$2]]"',
+	'right-renameuser' => 'Feroarje meidoggersnammen',
+);
+
+/** Irish (Gaeilge)
+ * @author Alison
+ */
+$messages['ga'] = array(
+	'renameuser' => 'Athainmnigh úsáideoir',
+	'renameuserold' => 'Ainm reatha úsáideora:',
+	'renameusernew' => 'Ainm nua úsáideora:',
+	'renameusersuccess' => 'Athainmníodh úsáideoir "<nowiki>$1</nowiki>" mar "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Tá leathanach "$1" ann chean féin; ní féidir ábhar a scríobh thairis go huathoibríoch.',
+	'renameuserlogentry' => 'athainmníodh úsáideoir $1 mar "$2"',
+	'renameuser-log' => '{{PLURAL:$1|Athrú amháin|$1 athruithe}}. Fáth: $2',
+);
+
+/** Galician (Galego)
+ * @author Alma
+ * @author Prevert
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'renameuser' => 'Mudar o nome do usuario',
+	'renameuser-linkoncontribs' => 'cambiar o nome do usuario',
+	'renameuser-linkoncontribs-text' => 'Cambiar o nome deste usuario',
+	'renameuser-desc' => "Engade unha [[Special:Renameuser|páxina especial]] para renomear un usuario (precisa dereitos de ''renomear usuarios'')",
+	'renameuserold' => 'Nome de usuario actual:',
+	'renameusernew' => 'Novo nome de usuario:',
+	'renameuserreason' => 'Razón para mudar o nome:',
+	'renameusermove' => 'Mover as páxinas de usuario e de conversa (xunto coas subpáxinas) ao novo nome',
+	'renameusersuppress' => 'Non crear a redirección cara ao novo nome',
+	'renameuserreserve' => 'Reservar o nome de usuario vello para un uso posterior',
+	'renameuserwarnings' => 'Avisos:',
+	'renameuserconfirm' => 'Si, renomear este usuario',
+	'renameusersubmit' => 'Enviar',
+	'renameusererrordoesnotexist' => 'O usuario "<nowiki>$1</nowiki>" non existe.',
+	'renameusererrorexists' => 'O usuario "<nowiki>$1</nowiki>" xa existe.',
+	'renameusererrorinvalid' => 'O nome de usuario "<nowiki>$1</nowiki>" non é válido.',
+	'renameuser-error-request' => 'Houbo un problema coa recepción da solicitude.
+Volva atrás e inténteo de novo.',
+	'renameuser-error-same-user' => 'Non pode mudar o nome dun usuario ao mesmo nome que tiña antes.',
+	'renameusersuccess' => 'O nome de usuario de "<nowiki>$1</nowiki>" cambiou a "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'A páxina "$1" xa existe e non pode ser sobrescrita automaticamente.',
+	'renameuser-page-moved' => 'A páxina "$1" foi movida a "$2".',
+	'renameuser-page-unmoved' => 'A páxina "$1" non pode ser movida a "$2".',
+	'renameuserlogpage' => 'Rexistro de cambios de nome de usuario',
+	'renameuserlogpagetext' => 'Este é un rexistro dos cambios nos nomes de usuario.',
+	'renameuserlogentry' => 'mudou o nome de "$1" a "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 edición|$1 edicións}}. Razón: $2',
+	'renameuser-move-log' => 'A páxina moveuse automaticamente cando se mudou o nome do usuario "[[User:$1|$1]]" a "[[User:$2|$2]]"',
+	'right-renameuser' => 'Renomear usuarios',
+	'renameuser-renamed-notice' => 'Este usuario foi renomeado.
+Velaquí está o rexistro de cambios de nome de usuario por se quere consultalo.',
+);
+
+/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
+ * @author Omnipaedista
+ */
+$messages['grc'] = array(
+	'renameusersubmit' => 'Ὑποβάλλειν',
+	'renameuser-log' => '{{PLURAL:$1|1 μεταγραφή|$1 μεταγραφαί}}. Αίτία: $2',
+);
+
+/** Swiss German (Alemannisch)
+ * @author Als-Holder
+ */
+$messages['gsw'] = array(
+	'renameuser' => 'Benutzer umnänne',
+	'renameuser-linkoncontribs' => 'Benutzer umnänne',
+	'renameuser-linkoncontribs-text' => 'Dää Benutzer umnänne',
+	'renameuser-desc' => "Ergänzt e [[Special:Renameuser|Spezialsyte]] fir d Umnännig vun eme Benutzer (brucht s ''renameuser''-Rächt)",
+	'renameuserold' => 'Bishärige Benutzername:',
+	'renameusernew' => 'Neije Benutzername:',
+	'renameuserreason' => 'Grund:',
+	'renameusermove' => 'Verschieb Benutzer-/Diskussionssyte mit Untersyte uf dr neij Benutzername',
+	'renameusersuppress' => 'Kei Wyterleitig uf dr nej Benutzername aalege',
+	'renameuserreserve' => 'Blockier dr alt Benutzername fir e Neijregischtrierig',
+	'renameuserwarnings' => 'Warnige:',
+	'renameuserconfirm' => 'Jo, Benutzer umnänne',
+	'renameusersubmit' => 'Umnänne',
+	'renameusererrordoesnotexist' => 'Dr Benutzername „<nowiki>$1</nowiki>“ git s nit.',
+	'renameusererrorexists' => 'Dr Benutzername „<nowiki>$1</nowiki>“ git s scho.',
+	'renameusererrorinvalid' => 'Dr Benutzername „<nowiki>$1</nowiki>“ isch uugiltig.',
+	'renameuser-error-request' => 'S het e Probläm bim Empfang vu dr Aafrog gee. Bitte nomol versueche.',
+	'renameuser-error-same-user' => 'Dr alt und dr neij Benutzername sin identisch.',
+	'renameusersuccess' => 'Dr Benutzer „<nowiki>$1</nowiki>“ isch mit Erfolg in „<nowiki>$2</nowiki>“ umgnännt wore.',
+	'renameuser-page-exists' => 'D Syte $1 git s scho un cha nit automatisch iberschribe wäre.',
+	'renameuser-page-moved' => 'D Syte $1 isch noch $2 verschobe wore.',
+	'renameuser-page-unmoved' => 'D Syte $1 het nit chenne noch $2 verschobe wäre.',
+	'renameuserlogpage' => 'Benutzernamenänderigs-Logbuech',
+	'renameuserlogpagetext' => 'In däm Logbuech wäre d Änderige vu Benutzernäme protokolliert.',
+	'renameuserlogentry' => 'het „$1“ in „$2“ umgnännt',
+	'renameuser-log' => '{{PLURAL:$1|1 Bearbeitig|$1 Bearbeitige}}. Grund: $2',
+	'renameuser-move-log' => 'dur d Umnännig vu „[[User:$1|$1]]“ noch „[[User:$2|$2]]“ automatisch verschobeni Syte',
+	'right-renameuser' => 'Benutzer umnänne',
+	'renameuser-renamed-notice' => 'Dää Benutzer isch umgnännt wore.
+S Umnännigs-Logbuech wird do unte ufgfiert as Quälle.',
+);
+
+/** Gujarati (ગુજરાતી)
+ * @author KartikMistry
+ * @author Sushant savla
+ */
+$messages['gu'] = array(
+	'renameuser' => 'સભ્યનામ બદલો',
+	'renameuser-linkoncontribs' => 'સભ્યનામ બદલો',
+	'renameuser-linkoncontribs-text' => 'આ સભ્યનું નામ બદલો',
+	'renameuserold' => 'હાલનું સભ્યનામ:',
+	'renameusernew' => 'નવું સભ્યનામ:',
+	'renameuserreason' => 'નામ બદલવાનું કારણ:',
+	'renameusermove' => 'સભ્ય અને ગપ્પાં પાનાંઓ (અને તેમનાં ઉપપાનાંઓ) નવાં નામ પર ખસેડો',
+	'renameusersuppress' => 'નવા નામ પર દિશા નિર્દેશનો ન રચશો',
+	'renameuserreserve' => 'જૂના સભ્યનામને ભવિષ્યનો વપરાશ પ્રતિબંધીત કરો',
+	'renameuserwarnings' => 'ચેતવણીઓ:',
+	'renameuserconfirm' => 'હા, સભ્યનું નામ બદલો',
+	'renameusersubmit' => 'જમા કરો',
+	'renameusererrordoesnotexist' => 'આ સભ્ય  "<nowiki>$1</nowiki>" મોજૂદ નથી.',
+	'renameusererrorexists' => 'આ સભ્ય  "<nowiki>$1</nowiki>" પહેલેથી હાજર છે.',
+	'renameusererrorinvalid' => 'સભ્યનામ "<nowiki>$1</nowiki>" અયોગ્ય છે.',
+	'renameuser-error-request' => 'તમારી અરજી પ્રાપ્ત કરતાં કાંઈ ત્રુટી થઈ
+મહેરબાની કરી ફરી પ્રયત્ન કરશો',
+	'renameuser-error-same-user' => 'તમે સભ્યને ફરીથી પહેલાનું નામ આપી શકશો નહી.',
+	'renameusersuccess' => 'સભ્ય "<nowiki>$1</nowiki>" નું નામ બદલીને "<nowiki>$2</nowiki>" કરાયું છે.',
+	'renameuser-page-exists' => 'પાનું  $1 પહેલેથી અસ્તિત્વમાં છે તેના પર સ્વયંચલિત નવું લેખન ન થાય.',
+	'renameuser-page-moved' => 'પાના $1 ને $2 પર ખસેડાયું',
+	'renameuser-page-unmoved' => 'પાના $1ને $2 પર ન લઈ જઈ શકાયું',
+	'renameuserlogpage' => 'સભ્ય નામફેરનો લોગ',
+	'renameuserlogpagetext' => 'સભ્યના દ્વારા થયેલા ફેરફરની આ સંપાદન યાદિ છે .',
+	'renameuserlogentry' => '$1 નું નામ "$2" કર્યું',
+	'renameuser-log' => '{{PLURAL:$1|૧ ફેરફાર|$1 ફેરફારો}}. કારણ: $2',
+	'right-renameuser' => 'સભ્યોના નામ બદલો',
+	'renameuser-renamed-notice' => 'આ સભ્યનું નામ પરિવર્તન થયું છે.
+નામ પરિવર્તન લોગ તમારા સંદર્ભ માટે અહીં આપેલ છે',
+);
+
+/** Hebrew (עברית)
+ * @author Amire80
+ * @author Ofekalef
+ * @author Rotem Liss
+ * @author YaronSh
+ */
+$messages['he'] = array(
+	'renameuser' => 'שינוי שם משתמש',
+	'renameuser-linkoncontribs' => 'שינוי שם משתמש',
+	'renameuser-linkoncontribs-text' => 'שינוי שם המשתמש הזה',
+	'renameuser-desc' => "הוספת [[Special:Renameuser|דף מיוחד]] לשינוי שם משתמש (דרושה הרשאת ''renameuser'')",
+	'renameuserold' => 'שם משתמש נוכחי:',
+	'renameusernew' => 'שם משתמש חדש:',
+	'renameuserreason' => 'סיבה לשינוי השם:',
+	'renameusermove' => 'העברת דפי המשתמש והשיחה (כולל דפי המשנה שלהם) לשם החדש',
+	'renameusersuppress' => 'לא ליצור הפניות לשם החדש',
+	'renameuserreserve' => 'חסימת שם המשתמש הישן לשימוש נוסף',
+	'renameuserwarnings' => 'אזהרות:',
+	'renameuserconfirm' => 'כן, לשנות את שם המשתמש',
+	'renameusersubmit' => 'שינוי שם משתמש',
+	'renameusererrordoesnotexist' => 'המשתמש "<nowiki>$1</nowiki>" אינו קיים.',
+	'renameusererrorexists' => 'המשתמש "<nowiki>$1</nowiki>" כבר קיים.',
+	'renameusererrorinvalid' => 'שם המשתמש "<nowiki>$1</nowiki>" אינו תקין.',
+	'renameuser-error-request' => 'הייתה בעיה בקבלת הבקשה. אנא חזרו לדף הקודם ונסו שנית.',
+	'renameuser-error-same-user' => 'אינכם יכולים לשנות את שם המשתמש לשם זהה לשמו הישן.',
+	'renameusersuccess' => 'שם המשתמש של "<nowiki>$1</nowiki>" שונה ל"<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'הדף $1 כבר קיים ולא ניתן לדרוס אותו אוטומטית.',
+	'renameuser-page-moved' => 'הדף $1 הועבר ל$2.',
+	'renameuser-page-unmoved' => 'לא ניתן היה להעביר את הדף $1 ל$2.',
+	'renameuserlogpage' => 'יומן שינויי שמות משתמש',
+	'renameuserlogpagetext' => 'זהו יומן השינויים בשמות המשתמשים.',
+	'renameuserlogentry' => 'שינה את שם המשתמש "$1" ל־"$2"',
+	'renameuser-log' => '{{PLURAL:$1|עריכה אחת|$1 עריכות}}. סיבה: $2',
+	'renameuser-move-log' => 'העברה אוטומטית בעקבות שינוי שם המשתמש "[[User:$1|$1]]" ל־"[[User:$2|$2]]"',
+	'right-renameuser' => 'שינוי שמות משתמש',
+	'renameuser-renamed-notice' => 'שם המשתמש הזה שונה.
+יומן שינויי שמות המשתמש מוצג להלן.',
+);
+
+/** Hindi (हिन्दी)
+ * @author Ansumang
+ * @author Kaustubh
+ */
+$messages['hi'] = array(
+	'renameuser' => 'सदस्यनाम बदलें',
+	'renameuser-linkoncontribs' => 'सदस्यनाम बदलें',
+	'renameuser-linkoncontribs-text' => 'इस सदस्य के नाम बदलें',
+	'renameuser-desc' => "सदस्यनाम बदलें (''सदस्यनाम बदलने अधिकार'' अनिवार्य)",
+	'renameuserold' => 'सद्य सदस्यनाम:',
+	'renameusernew' => 'नया सदस्यनाम:',
+	'renameuserreason' => 'नाम बदलने के कारण:',
+	'renameusermove' => 'सदस्य पृष्ठ और वार्ता पृष्ठ (और उनके सबपेज) नये नाम की ओर भेजें',
+	'renameusersuppress' => 'नूतन नाम को अनुप्रेषित ना करें',
+	'renameuserreserve' => 'पुरानी सदस्यनाम को अवरोध करें',
+	'renameuserwarnings' => 'चेतावनी:',
+	'renameuserconfirm' => 'हाँ, सदस्य के नाम बदलें',
+	'renameusersubmit' => 'भेजें',
+	'renameusererrordoesnotexist' => 'सदस्य "<nowiki>$1</nowiki>" अस्तित्वमें नहीं हैं।',
+	'renameusererrorexists' => 'सदस्य "<nowiki>$1</nowiki>" पहले से अस्तित्वमें हैं।',
+	'renameusererrorinvalid' => 'सदस्यनाम "<nowiki>$1</nowiki>" गलत हैं।',
+	'renameuser-error-request' => 'यह मांग पूरी करने मे समस्या आई हैं।
+कृपया पीछे जाकर फिरसे यत्न करें।',
+	'renameuser-error-same-user' => 'आप सदस्यनाम को उसी नामसे बदल नहीं सकते हैं।',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" का सदस्यनाम "<nowiki>$2</nowiki>" कर दिया गया हैं।',
+	'renameuser-page-exists' => '$1 यह पन्ना पहले से अस्तित्वमें हैं और इसपर अपने आप पुनर्लेखन नहीं कर सकतें।',
+	'renameuser-page-moved' => '$1 का नाम बदलकर $2 कर दिया गया हैं।',
+	'renameuser-page-unmoved' => '$1 का नाम बदलकर $2 नहीं कर सकें हैं।',
+	'renameuserlogpage' => 'सदस्यनाम बदलाव सूची',
+	'renameuserlogpagetext' => 'यह सदस्यनामोंमें हुए बदलावोंकी सूची हैं',
+	'renameuserlogentry' => 'ने $1 को "$2" में बदल दिया हैं',
+	'renameuser-log' => '{{PLURAL:$1|1 बदलाव|$1 बदलाव}}. कारण: $2',
+	'renameuser-move-log' => '"[[User:$1|$1]]" को "[[User:$2|$2]]" करते वक्त अपने आप सदस्यपृष्ठ बदल दिया हैं',
+	'right-renameuser' => 'सदस्योंके नाम बदलें',
+	'renameuser-renamed-notice' => 'इस सदस्य का नाम बदल दिया गया है।
+संदर्भ के लिए नीचे नाम बदलने का चिट्ठा है।',
+);
+
+/** Fiji Hindi (Latin script) (Fiji Hindi)
+ * @author Thakurji
+ */
+$messages['hif-latn'] = array(
+	'renameuser' => 'Sadasya ke naam badlo',
+	'renameuser-desc' => "[[Special:Renameuser|special panna]] ke jorro ek sadasya  ke naam badle ke khatir (''renameuser'' ke hak maange hai)",
+	'renameuserold' => 'Abhi ke username:',
+	'renameusernew' => 'Nawaa username:',
+	'renameuserreason' => 'Naam badle ke kaaran:',
+	'renameusermove' => 'Sadasya aur salah waala panna (aur uske sub-panna) ke naam badlo',
+	'renameuserreserve' => 'Purana username ke aage use kare se roko',
+	'renameuserwarnings' => 'Chetauni:',
+	'renameuserconfirm' => 'Haan, sadasya ke naam badlo',
+	'renameusersubmit' => 'Submit karo',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" naam ke koi sadasya nai hai.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" naam ke ek sadasya abhi hai.',
+	'renameusererrorinvalid' => 'Username "<nowiki>$1</nowiki>" kharaab hai.',
+	'renameuser-error-request' => 'Request ke le me kuchh karrbarr bhais hai.
+Meharbani kar ke laut ke fir kosis karo.',
+	'renameuser-error-same-user' => 'Aap sadasya ke naam ke badal ke pahile waala naam nai kare sakta hai.',
+	'renameusersuccess' => 'Sadasya "<nowiki>$1</nowiki>" ke naam badal ke "<nowiki>$2</nowiki>" kar dewa gais hai.',
+	'renameuser-page-exists' => 'Panna $1 abhi hai aur iske apne se overwrite nai karaa jaae sake hai.',
+	'renameuser-page-moved' => 'Panna $1 ke naam badal ke $2 kar dewa gais hai.',
+	'renameuser-page-unmoved' => 'Panna $1 ke naam badal ke $2 nai kare sakaa hai.',
+	'renameuserlogpage' => 'Sadasya ke naam badle ke log',
+	'renameuserlogpagetext' => 'Ii ek sadasya ke naam badle ke log hai.',
+	'renameuserlogentry' => '$1 ke naam badal ke "$2" kar dewa gais hai',
+	'renameuser-log' => '{{PLURAL:$1|1 badlao|$1 badlao}}. Kaaran: $2',
+	'renameuser-move-log' => 'Automatically panna ke move kar diya hai jab ki sadasya ke naam  "[[User:$1|$1]]" se badal ke "[[User:$2|$2]]" kar dewa gais hai',
+	'right-renameuser' => 'Sadasya log ke naam badlo',
+);
+
+/** Croatian (Hrvatski)
+ * @author Dalibor Bosits
+ * @author Dnik
+ * @author Ex13
+ * @author SpeedyGonsales
+ * @author Tivek
+ */
+$messages['hr'] = array(
+	'renameuser' => 'Preimenuj suradnika',
+	'renameuser-linkoncontribs' => 'preimenuj suradnika',
+	'renameuser-linkoncontribs-text' => 'Preimenuj ovog suradnika',
+	'renameuser-desc' => "Dodaje [[Special:Renameuser|posebnu stranicu]] za preimenovanje suradnika (potrebno je ''renameuser'' pravo)",
+	'renameuserold' => 'Trenutačno suradničko ime:',
+	'renameusernew' => 'Novo suradničko ime:',
+	'renameuserreason' => 'Razlog za preimenovanje:',
+	'renameusermove' => 'Premjesti suradnikove stranice (glavnu, stranicu za razgovor i podstranice, ako postoje) na novo ime',
+	'renameusersuppress' => 'Ne kreiraj preusmjeravanja na novo ime',
+	'renameuserreserve' => 'Zadrži staro suradničko ime od daljnje upotrebe',
+	'renameuserwarnings' => 'Upozorenja:',
+	'renameuserconfirm' => 'Da, preimenuj suradnika',
+	'renameusersubmit' => 'Potvrdi',
+	'renameusererrordoesnotexist' => 'Suradnik "<nowiki>$1</nowiki>" ne postoji (suradničko ime nije zauzeto).',
+	'renameusererrorexists' => 'Suradničko ime "<nowiki>$1</nowiki>" već postoji',
+	'renameusererrorinvalid' => 'Suradničko ime "<nowiki>$1</nowiki>" nije valjano',
+	'renameuser-error-request' => 'Pojavio se problem sa zaprimanjem zahtjeva. Molimo, vratite se i probajte ponovo.',
+	'renameuser-error-same-user' => 'Ne možete preimenovati suradnika u isto kao prethodno.',
+	'renameusersuccess' => 'Suradnik "<nowiki>$1</nowiki>" je preimenovan u "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Stranica $1 već postoji i ne može biti prepisana.',
+	'renameuser-page-moved' => 'Suradnikova stranica $1 je premještena, sad se zove: $2.',
+	'renameuser-page-unmoved' => 'Stranica $1 ne može biti preimenovana u $2.',
+	'renameuserlogpage' => 'Evidencija preimenovanja suradnika',
+	'renameuserlogpagetext' => 'Ovo je evidencija preimenovanja suradničkih imena',
+	'renameuserlogentry' => 'promijenjeno suradničko ime $1 u "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 uređivanje|$1 uređivanja}}. Razlog: $2',
+	'renameuser-move-log' => 'Stranica suradnika je premještena prilikom preimenovanja iz "[[User:$1|$1]]" u "[[User:$2|$2]]"',
+	'right-renameuser' => 'Preimenovati suradnike',
+	'renameuser-renamed-notice' => 'Ovaj suradnik je preimenovan.
+Evidencija preimenovanja suradnika je prikazana ispod kao obavijest.',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Dundak
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'renameuser' => 'Wužiwarja přemjenować',
+	'renameuser-linkoncontribs' => 'wužiwarja přemjenować',
+	'renameuser-linkoncontribs-text' => 'Tutoho wužiwarja přemjenować',
+	'renameuser-desc' => "Wužiwarja přemjenować (požada prawo ''renameuser'')",
+	'renameuserold' => 'Tuchwilne wužiwarske mjeno:',
+	'renameusernew' => 'Nowe wužiwarske mjeno:',
+	'renameuserreason' => 'Přičina za přemjenowanje:',
+	'renameusermove' => 'Wužiwarsku stronu a wužiwarsku diskusiju (a jeju podstrony) na nowe mjeno přesunyć',
+	'renameusersuppress' => 'Dalesposrědkowanja k nowemu mjenu njewutworić',
+	'renameuserreserve' => 'Stare wužiwarske mjeno za přichodne wužiwanje blokować',
+	'renameuserwarnings' => 'Warnowanja:',
+	'renameuserconfirm' => 'Haj, wužiwarja přemjenować',
+	'renameusersubmit' => 'Składować',
+	'renameusererrordoesnotexist' => 'Wužiwarske mjeno „<nowiki>$1</nowiki>“ njeeksistuje.',
+	'renameusererrorexists' => 'Wužiwarske mjeno „<nowiki>$1</nowiki>“ hižo eksistuje.',
+	'renameusererrorinvalid' => 'Wužiwarske mjeno „<nowiki>$1</nowiki>“ njeje płaćiwe.',
+	'renameuser-error-request' => 'Problem je při přijimanju požadanja wustupił. Prošu dźi wróćo a spytaj hišće raz.',
+	'renameuser-error-same-user' => 'Njemóžeš wužiwarja do samsneje wěcy kaž prjedy přemjenować.',
+	'renameusersuccess' => 'Wužiwar „<nowiki>$1</nowiki>“ bu wuspěšnje na „<nowiki>$2</nowiki>“ přemjenowany.',
+	'renameuser-page-exists' => 'Strona $1 hižo eksistuje a njemóže so awtomatisce přepisować.',
+	'renameuser-page-moved' => 'Strona $1 bu pod nowy titul $2 přesunjena.',
+	'renameuser-page-unmoved' => 'Njemóžno stronu $1 pod titul $2 přesunyć.',
+	'renameuserlogpage' => 'Protokol přemjenowanja wužiwarjow',
+	'renameuserlogpagetext' => 'Tu protokoluja so wšě přemjenowanja wužiwarjow.',
+	'renameuserlogentry' => 'je $1 do "$2" přemjenował',
+	'renameuser-log' => '{{PLURAL:$1|1 změna|$1 změnje|$1 změny|$1 změnow}}. Přičina: $2',
+	'renameuser-move-log' => 'Přez přemjenowanje wužiwarja „[[User:$1|$1]]“ na „[[User:$2|$2]]“ awtomatisce přesunjena strona.',
+	'right-renameuser' => 'Wužiwarjow přemjenować',
+	'renameuser-renamed-notice' => 'Tutón wužiwar je so přemjenował.
+Protokol přemjenowanjow je deleka jako referenca podaty.',
+);
+
+/** Hungarian (Magyar)
+ * @author Adam78
+ * @author Dani
+ * @author Tgr
+ */
+$messages['hu'] = array(
+	'renameuser' => 'Szerkesztő átnevezése',
+	'renameuser-linkoncontribs' => 'felhasználó átnevezése',
+	'renameuser-linkoncontribs-text' => 'Felhasználó átnevezése',
+	'renameuser-desc' => "Lehetővé teszi egy felhasználó átnevezését (''renameuser'' jog szükséges)",
+	'renameuserold' => 'Jelenlegi felhasználónév:',
+	'renameusernew' => 'Új felhasználónév:',
+	'renameuserreason' => 'Átnevezés oka:',
+	'renameusermove' => 'Felhasználói- és vitalapok (és azok allapjainak) áthelyezése az új név alá',
+	'renameusersuppress' => 'Ne készüljön átirányítás az új névre',
+	'renameuserreserve' => 'Régi név blokkolása a jövőbeli használat megakadályozására',
+	'renameuserwarnings' => 'Figyelmeztetések:',
+	'renameuserconfirm' => 'Igen, nevezd át a szerkesztőt',
+	'renameusersubmit' => 'Elküld',
+	'renameusererrordoesnotexist' => 'Nem létezik „<nowiki>$1</nowiki>” nevű felhasználó',
+	'renameusererrorexists' => 'Már létezik „<nowiki>$1</nowiki>” nevű felhasználó',
+	'renameusererrorinvalid' => 'A felhasználónév („<nowiki>$1</nowiki>”) érvénytelen',
+	'renameuser-error-request' => 'Hiba történt a lekérdezés küldése közben.  Menj vissza az előző oldalra és próbáld újra.',
+	'renameuser-error-same-user' => 'Nem nevezhetsz át egy felhasználót a meglévő nevére.',
+	'renameusersuccess' => '„<nowiki>$1</nowiki>” sikeresen át lett nevezve „<nowiki>$2</nowiki>” névre.',
+	'renameuser-page-exists' => '$1 már létezik, és nem lehet automatikusan felülírni.',
+	'renameuser-page-moved' => '$1 át lett nevezve $2 névre',
+	'renameuser-page-unmoved' => '$1-t nem sikerült $2 névre nevezi',
+	'renameuserlogpage' => 'Felhasználóátnevezési napló',
+	'renameuserlogpagetext' => 'Ez a felhasználói nevek változtatásának naplója.',
+	'renameuserlogentry' => 'átnevezte $1 azonosítóját (az új név: „$2”)',
+	'renameuser-log' => '$1 szerkesztése van. Indoklás: $2',
+	'renameuser-move-log' => '„[[User:$1|$1]]” „[[User:$2|$2]]” névre való átnevezése közben automatikusan átnevezett oldal',
+	'right-renameuser' => 'felhasználók átnevezése',
+	'renameuser-renamed-notice' => 'Ezt a szerkesztőt átnevezték.
+Alább látható a szerkesztőátnevezési napló tájékoztatásként.',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'renameuser' => 'Renominar usator',
+	'renameuser-linkoncontribs' => 'renominar usator',
+	'renameuser-linkoncontribs-text' => 'Renominar iste usator',
+	'renameuser-desc' => "Adde un [[Special:Renameuser|pagina special]] pro renominar un usator (require le privilegio ''renameuser'')",
+	'renameuserold' => 'Nomine de usator actual:',
+	'renameusernew' => 'Nove nomine de usator:',
+	'renameuserreason' => 'Motivo del renomination:',
+	'renameusermove' => 'Renominar etiam le paginas de usator e de discussion (e lor subpaginas) verso le nove nomine',
+	'renameusersuppress' => 'Non crear redirectiones al nove nomine',
+	'renameuserreserve' => 'Blocar le ancian nomine de usator de esser usate in le futuro',
+	'renameuserwarnings' => 'Advertimentos:',
+	'renameuserconfirm' => 'Si, renomina le usator',
+	'renameusersubmit' => 'Submitter',
+	'renameusererrordoesnotexist' => 'Le usator "<nowiki>$1</nowiki>" non existe.',
+	'renameusererrorexists' => 'Le usator ""<nowiki>$1</nowiki>"" existe ja.',
+	'renameusererrorinvalid' => 'Le nomine de usator "<nowiki>$1</nowiki>" es invalide.',
+	'renameuser-error-request' => 'Il habeva un problema con le reception del requesta.
+Per favor retorna e reproba.',
+	'renameuser-error-same-user' => 'Tu non pote renominar un usator al mesme nomine.',
+	'renameusersuccess' => 'Le usator "<nowiki>$1</nowiki>" ha essite renominate a "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Le pagina $1 existe ja e non pote esser automaticamente superscribite.',
+	'renameuser-page-moved' => 'Le pagina $1 ha essite renominate a $2.',
+	'renameuser-page-unmoved' => 'Le pagina $1 non poteva esser renominate a $2.',
+	'renameuserlogpage' => 'Registro de renominationes de usatores',
+	'renameuserlogpagetext' => 'Isto es un registro de cambiamentos de nomines de usator.',
+	'renameuserlogentry' => 'renominava $1 verso "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 modification|$1 modificationes}}. Motivo: $2',
+	'renameuser-move-log' => 'Le pagina ha essite automaticamente renominate con le renomination del usator "[[User:$1|$1]]" a "[[User:$2|$2]]"',
+	'right-renameuser' => 'Renominar usatores',
+	'renameuser-renamed-notice' => 'Iste usator ha essite renominate.
+Le registro de renominationes es providite ci infra pro referentia.',
+);
+
+/** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ * @author Irwangatot
+ * @author IvanLanin
+ * @author Rex
+ */
+$messages['id'] = array(
+	'renameuser' => 'Penggantian nama pengguna',
+	'renameuser-linkoncontribs' => 'mengubah nama pengguna',
+	'renameuser-linkoncontribs-text' => 'Ubah nama pengguna ini',
+	'renameuser-desc' => "Mengganti nama pengguna (perlu hak akses ''renameuser'')",
+	'renameuserold' => 'Nama sekarang:',
+	'renameusernew' => 'Nama baru:',
+	'renameuserreason' => 'Alasan penggantian nama:',
+	'renameusermove' => 'Pindahkan halaman pengguna dan pembicaraannya (berikut subhalamannya) ke nama baru',
+	'renameusersuppress' => 'Jangan membuat pengalihan untuk nama baru',
+	'renameuserreserve' => 'Cadangkan nama pengguna lama sehingga tidak dapat digunakan lagi',
+	'renameuserwarnings' => 'Peringatan:',
+	'renameuserconfirm' => 'Ya, ganti nama pengguna tersebut',
+	'renameusersubmit' => 'Kirim',
+	'renameusererrordoesnotexist' => 'Pengguna "<nowiki>$1</nowiki>" tidak ada',
+	'renameusererrorexists' => 'Pengguna "<nowiki>$1</nowiki>" telah ada',
+	'renameusererrorinvalid' => 'Nama pengguna "<nowiki>$1</nowiki>" tidak sah',
+	'renameuser-error-request' => 'Ada masalah dalam pemrosesan permintaan. Silakan kembali dan coba lagi.',
+	'renameuser-error-same-user' => 'Anda tak dapat mengganti nama pengguna sama seperti asalnya.',
+	'renameusersuccess' => 'Pengguna "<nowiki>$1</nowiki>" telah diganti namanya menjadi "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Halaman $1 telah ada dan tidak dapat ditimpa secara otomatis.',
+	'renameuser-page-moved' => 'Halaman $1 telah dipindah ke $2.',
+	'renameuser-page-unmoved' => 'Halaman $1 tidak dapat dipindah ke $2.',
+	'renameuserlogpage' => 'Log penggantian nama pengguna',
+	'renameuserlogpagetext' => 'Di bawah ini adalah log penggantian nama pengguna',
+	'renameuserlogentry' => 'telah mengganti nama $1 menjadi "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 suntingan|$1 suntingan}}. Alasan: $2',
+	'renameuser-move-log' => 'Secara otomatis memindahkan halaman sewaktu mengganti nama pengguna "[[User:$1|$1]]" menjadi "[[User:$2|$2]]"',
+	'right-renameuser' => 'Mengganti nama pengguna',
+	'renameuser-renamed-notice' => 'Penguna ini telah berganti nama.
+Log pergantian nama disediakan di bawah untuk referensi.',
+);
+
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'renameuserwarnings' => 'Ngéntị:',
+	'renameusersubmit' => 'Dànyé',
+	'renameuser-page-moved' => 'Ihü $1 a páfùrù gá $2.',
+	'renameuser-page-unmoved' => 'Ihü $1 énweghịkị páfù gá $2.',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'renameuser' => 'Naganan ti agar-aramat',
+	'renameuser-linkoncontribs' => 'naganan ti agar-aramat',
+	'renameuser-linkoncontribs-text' => 'Naganan daytoy nga agar-aramat',
+	'renameuser-desc' => "Agnayon ti [[Special:Renameuser|naipangruna a panid]] nga agpanagan ti agar-aramat (masapul ti ''naganan ti agar-aramat'' a karbengan)",
+	'renameuserold' => 'Agdama a nagan ti agar-aramat:',
+	'renameusernew' => 'Baro a nagan ti agar-aramat:',
+	'renameuserreason' => 'Rason ti panagnagan:',
+	'renameusermove' => 'Iyalis ti agar-aramat ket tungtungan a pampanid (ken dagiti ap-apo a panid) iti baro a nagan',
+	'renameusersuppress' => 'Saan nga agaramid kadagiti baw-ing iti baro a nagan',
+	'renameuserreserve' => 'Serraan ti daan a nagan ti agar-aramat manipud ti masakbayan a pag-usar.',
+	'renameuserwarnings' => 'Dagiti ballaag:',
+	'renameuserconfirm' => 'Wen, naganan ti agar-aramat',
+	'renameusersubmit' => 'Ited',
+	'renameusererrordoesnotexist' => 'Ti agar-aramat "<nowiki>$1</nowiki>" ket awan.',
+	'renameusererrorexists' => 'Ti agar-aramat "<nowiki>$1</nowiki>" ket addaanen.',
+	'renameusererrorinvalid' => 'Ti nagan ti agar-aramat "<nowiki>$1</nowiki>" ket imbalido.',
+	'renameuser-error-request' => 'Adda pakirut ti pinakaala ti kiddaw.
+Pangngaasi nga agsubli ken padasen manen.',
+	'renameuser-error-same-user' => 'Saan mo a managanan ti agar-aramat a kasdi.',
+	'renameusersuccess' => 'Ti agar-aramat "<nowiki>$1</nowiki>" ket nanaganan iti "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Ti panid a $1 ket addaan ken saan a mautomatiko a suratan manen.',
+	'renameuser-page-moved' => 'Ti panid $1 ket naiyalis idiay $2.',
+	'renameuser-page-unmoved' => 'Ti panid  $1 ket saan a maiyalis idiay $2.',
+	'renameuserlogpage' => 'Listaan ti panagnagan ti agar-aramat',
+	'renameuserlogpagetext' => 'Listaan daytoy kadagiti sinukatan a nag-nagan ti agararamat.',
+	'renameuserlogentry' => 'ninaganan $1 iti "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 urnos|$1 ur-urnos}}. Rason: $2',
+	'renameuser-move-log' => 'Automatiko nga iyalis ti panid bayat nagnaganan ti agar-aramat "[[User:$1|$1]]" iti "[[User:$2|$2]]"',
+	'right-renameuser' => 'Naganan dagiti agar-aramat',
+	'renameuser-renamed-notice' => 'Nanaganen daytoy nga agar-aramat.
+Ti listaan ti nagnaganan ket naited dita baba para iti reperensia.',
+);
+
+/** Ido (Ido)
+ * @author Malafaya
+ * @author Wyvernoid
+ */
+$messages['io'] = array(
+	'renameuser' => 'Rinomar uzanto',
+	'renameuserold' => 'Aktuala uzantonomo:',
+	'renameusernew' => 'Nova uzantonomo:',
+	'renameuserwarnings' => 'Averti:',
+	'renameuserconfirm' => "Yes, rinomez l'uzanto",
+	'renameusererrordoesnotexist' => 'L\'uzanto "<nowiki>$1</nowiki>" ne existas.',
+	'renameusererrorexists' => 'L\'uzanto "<nowiki>$1</nowiki>" ja existas.',
+	'renameusererrorinvalid' => 'L\'uzantonomo "<nowiki>$1</nowiki>" esas ne-valida.',
+	'renameuser-error-same-user' => 'Vu ne povas renomar uzanto ad la sama nomo.',
+	'renameusersuccess' => 'La uzanto "<nowiki>$1</nowiki>" rinomesis "<nowiki>$2</nowiki>".',
+	'renameuser-page-moved' => 'La pagino $1 movesis a $2.',
+	'renameuser-page-unmoved' => 'On ne povis movar la pagino $1 a $2.',
+	'renameuserlogpage' => 'Registro di uzanto-rinomizuri',
+	'renameuserlogpagetext' => 'Ito es registro di uzantonomala chanji.',
+	'renameuserlogentry' => 'rinomis $1 por "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 redakto|$1 redakti}}. Motivo: $2',
+	'right-renameuser' => 'Rinomar uzanti',
+);
+
+/** Icelandic (Íslenska)
+ * @author Cessator
+ * @author S.Örvarr.S
+ * @author Snævar
+ * @author Spacebirdy
+ * @author Ævar Arnfjörð Bjarmason
+ * @author לערי ריינהארט
+ */
+$messages['is'] = array(
+	'renameuser' => 'Breyta notandanafni',
+	'renameuser-linkoncontribs' => 'breyta notendanafni',
+	'renameuser-linkoncontribs-text' => 'breyta notendanafni notandans',
+	'renameuser-desc' => "Bætir við [[Special:Renameuser|kerfissíðu]] til að breyta notendanafni (þarfnast ''renameuser'' réttinda)",
+	'renameuserold' => 'Núverandi notandanafn:',
+	'renameusernew' => 'Nýja notandanafnið:',
+	'renameuserreason' => 'Ástæða:',
+	'renameusermove' => 'Færa notendasíðu og notendaspjallsíðu (og undirsíður þeirra) á nýja nafnið',
+	'renameusersuppress' => 'Ekki skilja eftir tilvísun',
+	'renameuserreserve' => 'Banna notkun á gamla notendanafninu',
+	'renameuserwarnings' => 'Viðvaranir:',
+	'renameuserconfirm' => 'Já, breyta nafni notandans',
+	'renameusersubmit' => 'Senda',
+	'renameusererrordoesnotexist' => 'Notandinn „<nowiki>$1</nowiki>“ er ekki til',
+	'renameusererrorexists' => 'Notandinn „<nowiki>$1</nowiki>“ er nú þegar til',
+	'renameusererrorinvalid' => 'Notandanafnið „<nowiki>$1</nowiki>“ er ógilt',
+	'renameuser-error-request' => 'Mistókst að sækja beiðnina um breytingu notendanafnsins.
+Vinsamlegast farðu til baka og reyndu aftur.',
+	'renameuser-error-same-user' => 'Óheimilt er að breyta nafni notanda aftur á það notendanafn sem hann hafði áður.',
+	'renameusersuccess' => 'Nafn notandans "<nowiki>$1</nowiki>" hefur verið breytt í "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Síða sem heitir $1 er nú þegar til og það er ekki hægt að búa til nýja grein með sama heiti.',
+	'renameuser-page-moved' => 'Síðan $1 hefur verið færð á $2.',
+	'renameuser-page-unmoved' => 'Ekki var hægt að færa síðuna $1 á $2.',
+	'renameuserlogpage' => 'Skrá yfir nafnabreytingar notenda',
+	'renameuserlogpagetext' => 'Þetta er skrá yfir nýlegar breytingar á notendanöfnum.',
+	'renameuserlogentry' => 'breytti nafni $1 í "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 breyting|$1 breytingar}}. Ástæða: $2',
+	'renameuser-move-log' => 'Færði síðuna sjálfvirkt þegar notendanafni "[[User:$1|$1]]" var breytt í "[[User:$2|$2]]"',
+	'right-renameuser' => 'Breyta notandanafni notenda',
+	'renameuser-renamed-notice' => 'Nafni notandans hefur verið breytt. 
+Síðasta færsla notandans úr skrá yfir nafnabreytingar notenda er sýnd hér fyrir neðan til skýringar:',
+);
+
+/** Italian (Italiano)
+ * @author .anaconda
+ * @author BrokenArrow
+ * @author Darth Kule
+ * @author Gianfranco
+ * @author HalphaZ
+ * @author Melos
+ * @author Nemo bis
+ */
+$messages['it'] = array(
+	'renameuser' => 'Rinomina utente',
+	'renameuser-linkoncontribs' => 'rinomina utente',
+	'renameuser-linkoncontribs-text' => 'Rinomina questo utente',
+	'renameuser-desc' => "Aggiunge una [[Special:Renameuser|pagina speciale]] per rinominare un utente (richiede i diritti di ''renameuser'')",
+	'renameuserold' => 'Nome utente attuale:',
+	'renameusernew' => 'Nuovo nome utente:',
+	'renameuserreason' => 'Motivo del cambio nome:',
+	'renameusermove' => 'Rinomina anche la pagina utente, la pagina di discussione e le relative sottopagine',
+	'renameusersuppress' => 'Non creare redirect al nuovo nome',
+	'renameuserreserve' => "Impedisci l'utilizzo del vecchio nome in futuro",
+	'renameuserwarnings' => 'Avvisi:',
+	'renameuserconfirm' => 'Sì, rinomina questo utente',
+	'renameusersubmit' => 'Invia',
+	'renameusererrordoesnotexist' => 'L\'utente "<nowiki>$1</nowiki>" non esiste',
+	'renameusererrorexists' => 'L\'utente "<nowiki>$1</nowiki>" esiste già',
+	'renameusererrorinvalid' => 'Il nome utente "<nowiki>$1</nowiki>" non è valido',
+	'renameuser-error-request' => 'Si è verificato un problema nella ricezione della richiesta. Tornare indietro e riprovare.',
+	'renameuser-error-same-user' => 'Non è possibile rinominare un utente allo stesso nome che aveva già.',
+	'renameusersuccess' => 'L\'utente "<nowiki>$1</nowiki>" è stato rinominato in "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'La pagina $1 esiste già; impossibile sovrascriverla automaticamente.',
+	'renameuser-page-moved' => 'La pagina $1 è stata spostata a $2.',
+	'renameuser-page-unmoved' => 'Impossibile spostare la pagina $1 a $2.',
+	'renameuserlogpage' => 'Utenti rinominati',
+	'renameuserlogpagetext' => 'Di seguito sono elencate le modifiche ai nomi utente.',
+	'renameuserlogentry' => 'ha rinominato $1 in "$2"',
+	'renameuser-log' => 'Che ha {{PLURAL:$1|un contributo|$1 contributi}}. Motivo: $2',
+	'renameuser-move-log' => 'Spostamento automatico della pagina - utente rinominato da "[[User:$1|$1]]" a "[[User:$2|$2]]"',
+	'right-renameuser' => 'Rinomina gli utenti',
+	'renameuser-renamed-notice' => 'Questo utente è stato rinominato.
+Il registro delle rinomine è riportato di seguito per informazione.',
+);
+
+/** Japanese (日本語)
+ * @author Aotake
+ * @author Broad-Sky
+ * @author Fryed-peach
+ * @author Hosiryuhosi
+ * @author Marine-Blue
+ * @author Ohgi
+ * @author Suisui
+ * @author 青子守歌
+ */
+$messages['ja'] = array(
+	'renameuser' => '利用者名の変更',
+	'renameuser-linkoncontribs' => '利用者名変更',
+	'renameuser-linkoncontribs-text' => 'この利用者の名前を変更する',
+	'renameuser-desc' => '利用者名変更のための[[Special:Renameuser|特別ページ]]を追加する(renameuser権限が必要)',
+	'renameuserold' => '現在の利用者名:',
+	'renameusernew' => '新しい利用者名:',
+	'renameuserreason' => '変更理由:',
+	'renameusermove' => '利用者ページと会話ページ(およびそれらのサブページ)を新しい名前に移動する',
+	'renameusersuppress' => '新しい名前へのリダイレクトを作成しない',
+	'renameuserreserve' => '旧利用者名の今後の使用をブロックする',
+	'renameuserwarnings' => '警告:',
+	'renameuserconfirm' => 'はい、利用者名を変更します',
+	'renameusersubmit' => '変更',
+	'renameusererrordoesnotexist' => '利用者「<nowiki>$1</nowiki>」は存在しません。',
+	'renameusererrorexists' => '利用者「<nowiki>$1</nowiki>」は既に存在しています。',
+	'renameusererrorinvalid' => '利用者名「<nowiki>$1</nowiki>」は無効な値です。',
+	'renameuser-error-request' => '要求を正常に受け付けることができませんでした。戻ってから再度お試しください。',
+	'renameuser-error-same-user' => '現在と同じ利用者名に変更することは出来ません。',
+	'renameusersuccess' => '利用者「<nowiki>$1</nowiki>」を「<nowiki>$2</nowiki>」に変更しました。',
+	'renameuser-page-exists' => '$1 が既に存在しているため、自動で上書きできませんでした。',
+	'renameuser-page-moved' => '$1 を $2 に移動しました。',
+	'renameuser-page-unmoved' => '$1 を $2 に移動できませんでした。',
+	'renameuserlogpage' => '利用者名変更記録',
+	'renameuserlogpagetext' => 'これは、利用者名の変更を記録したものです。',
+	'renameuserlogentry' => '$1 を「$2」へ利用者名変更しました',
+	'renameuser-log' => '{{PLURAL:$1|投稿数}}$1回。理由: $2',
+	'renameuser-move-log' => '名前の変更と共に「[[User:$1|$1]]」を「[[User:$2|$2]]」へ自動的に移動しました',
+	'right-renameuser' => '利用者名変更',
+	'renameuser-renamed-notice' => 'この利用者は改名しました。参考のため、改名記録を以下に載せます。',
+);
+
+/** Jutish (Jysk)
+ * @author Huslåke
+ * @author Ælsån
+ */
+$messages['jut'] = array(
+	'renameuser' => 'Gæf æ bruger en ny navn',
+	'renameuser-desc' => "Gæf en bruger en ny navn (''renameuser'' regt er nøteg)",
+	'renameuserold' => 'Nuværende brugernavn:',
+	'renameusernew' => 'Ny brugernavn:',
+	'renameuserreason' => "Før hvat dett'er dun:",
+	'renameusermove' => 'Flyt bruger og diskusje sider (og deres substrøk) til ny navn',
+	'renameusersubmit' => 'Gå til',
+	'renameusererrordoesnotexist' => 'Æ bruger "<nowiki>$1</nowiki>" bestä ekke.',
+	'renameusererrorexists' => 'Æ bruger "<nowiki>$1</nowiki>" er ål.',
+	'renameusererrorinvalid' => 'Æ brugernavn "<nowiki>$1</nowiki>" er ogyldegt.',
+	'renameuser-error-request' => 'Her har en pråblæm ve enkriige der anfråge. Gå hen og pråbær nurmål.',
+	'renameuser-error-same-user' => 'Du kenst ekke hernåm æ bruger til æselbste nåm als dafør.',
+	'renameusersuccess' => 'Æ bruger "<nowiki>$1</nowiki>" er hernåmt til "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Æ pæge $1 er ål og ken ekke åtåmatisk åverflyttet være.',
+	'renameuser-page-moved' => 'Æ pæge $1 er flyttet til $2.',
+	'renameuser-page-unmoved' => 'Æ pæge $1 kon ekke flyttet være til $2.',
+	'renameuserlogpage' => 'Bruger hernåm log',
+	'renameuserlogpagetext' => "Dett'er en log der ændrenger til brugernavner",
+	'renameuserlogentry' => 'har hernåmt $1 til "$2"',
+	'renameuser-log' => '{{PLURAL:$1|en redigærenge|$1 redigærenger}}. Resån: $2',
+	'renameuser-move-log' => 'Åtåmatisk flyttet pæge hviil hernåm der bruger "[[User:$1|$1]]" til "[[User:$2|$2]]"',
+);
+
+/** Javanese (Basa Jawa)
+ * @author Meursault2004
+ * @author Pras
+ */
+$messages['jv'] = array(
+	'renameuser' => 'Ngganti jeneng panganggo',
+	'renameuser-desc' => "Ngganti jeneng panganggo (perlu hak aksès ''renameuser'')",
+	'renameuserold' => 'Jeneng panganggo saiki:',
+	'renameusernew' => 'Jeneng panganggo anyar:',
+	'renameuserreason' => 'Alesan ganti jeneng:',
+	'renameusermove' => 'Mindhah kaca panganggo lan kaca dhiskusiné (sarta subkaca-kacané) menyang jeneng anyar',
+	'renameuserreserve' => 'Blokir utawa cadhangaké jeneng panganggo lawas supaya ora bisa dianggo manèh',
+	'renameuserwarnings' => 'Pènget:',
+	'renameuserconfirm' => 'Ya, ganti jeneng panganggo kasebut',
+	'renameusersubmit' => 'Kirim',
+	'renameusererrordoesnotexist' => 'Panganggo "<nowiki>$1</nowiki>" ora ana.',
+	'renameusererrorexists' => 'Panganggo "<nowiki>$1</nowiki>" wis ana.',
+	'renameusererrorinvalid' => 'Jeneng panganggo "<nowiki>$1</nowiki>" ora absah',
+	'renameuser-error-request' => 'Ana masalah nalika nampa panyuwunan panjenengan.
+Mangga balènana lan nyoba manèh.',
+	'renameuser-error-same-user' => 'Panjenengan ora bisa ngganti jeneng panganggo dadi kaya jeneng asalé.',
+	'renameusersuccess' => 'Panganggo "<nowiki>$1</nowiki>" wis diganti jenengé dadi "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Kaca $1 wis ana lan ora bisa ditimpa sacara otomatis.',
+	'renameuser-page-moved' => 'Kaca $1 wis dialihaké menyang $2.',
+	'renameuser-page-unmoved' => 'Kaca $1 ora bisa dialihaké menyang $2.',
+	'renameuserlogpage' => 'Log ganti jeneng panganggo',
+	'renameuserlogpagetext' => 'Iki log owah-owahan jeneng panganggo',
+	'renameuserlogentry' => 'Ganti jeneng $1 dadi "$2"',
+	'renameuser-log' => 'sing wis duwé $1 suntingan. Alesan: $2',
+	'renameuser-move-log' => 'Sacara otomatis mindhah kaca nalika ngganti jeneng panganggo "[[User:$1|$1]]" dadi "[[User:$2|$2]]"',
+	'right-renameuser' => 'Ganti jeneng panganggo-panganggo',
+);
+
+/** Georgian (ქართული)
+ * @author BRUTE
+ * @author Dawid Deutschland
+ * @author Malafaya
+ * @author Sopho
+ */
+$messages['ka'] = array(
+	'renameuser' => 'მომხმარებლის სახელის გამოცვლა',
+	'renameuser-linkoncontribs' => 'მომხმარებლის სახელის გადარქმევა',
+	'renameuser-linkoncontribs-text' => 'ამ მომხმარებლის სახელის გადარქმევა',
+	'renameuserold' => 'ამჟამინდელი მომხმარებლის სახელი:',
+	'renameusernew' => 'ახალი მომხმარებლის სახელი:',
+	'renameuserreason' => 'სახელის შეცვლის მიზეზი:',
+	'renameusermove' => 'მომხმარებლისა და განხილვის გვერდების (და მათი დაქვემდებარებული გვერდების) გადატანა ახალ დასახელებაზე',
+	'renameusersuppress' => 'არ გადაამისამართოთ ახალ სახელზე',
+	'renameuserreserve' => 'ძველი მომხმარებლის სახელის სამომავლო გამოყენების აკრძალვა',
+	'renameuserwarnings' => 'გაფრთხილებები:',
+	'renameuserconfirm' => 'დიახ, მსურს სახელის გადარქმევა',
+	'renameusersubmit' => 'გაგზავნა',
+	'renameusererrordoesnotexist' => 'მომხმარებელი "<nowiki>$1</nowiki>" არ არსებობს',
+	'renameusererrorexists' => 'მომხმარებელი "<nowiki>$1</nowiki>" უკვე არსებობს',
+	'renameusererrorinvalid' => 'მომხმარებლის სახელი "<nowiki>$1</nowiki>" არასწორია',
+	'renameuser-error-request' => 'მოთხოვნის მიღებასთან დაკავშირებით რაღაც პრობლემაა. გთხოვთ, ხელახლა სცადეთ.',
+	'renameuser-error-same-user' => 'თქვენ არ შეგიძლიათ დაარქვათ მომხმარებელს იგივე სახელი, რაც ერქვა წინათ.',
+	'renameusersuccess' => 'მომხმარებლის სახელი - "<nowiki>$1</nowiki>", შეიცვალა "<nowiki>$2</nowiki>"-ით',
+	'renameuser-page-exists' => 'გვერდი $1 უკვე არსებობს და მისი ავტომატურად შენაცვლება შეუძლებელია.',
+	'renameuser-page-moved' => 'გვერდი $1 გადატანილია $2-ზე.',
+	'renameuser-page-unmoved' => 'არ მოხერხდა გვერდის $1 გადატანა $2-ზე.',
+	'renameuserlogpage' => 'მომხმარებლის სახელის გადარქმევის რეგისტრაციის ჟურნალი',
+	'renameuserlogpagetext' => 'ეს არის ჟურნალი, სადაც აღრიცხულია მომხმარებლის სახელთა ცვლილებები',
+	'renameuserlogentry' => 'სახელი გადაერქვა $1-ს "$2"-ზე',
+	'renameuser-log' => '$1 რედაქცია. მიზეზი: $2',
+	'renameuser-move-log' => 'ავტომატურად იქნა გადატანილი გვერდი მომხმარებლის "[[User:$1|$1]]" სახელის შეცვლისას "[[User:$2|$2]]-ით"',
+	'right-renameuser' => 'მომხმარებლების სახელის გადარქმევა',
+	'renameuser-renamed-notice' => 'ამ მომხმარებელს სახელი გადაერქვა.
+ქვემოთ მოყვანილია სახელის გადარქმევის ჟურნალი.',
+);
+
+/** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
+$messages['kk-arab'] = array(
+	'renameuser' => 'قاتىسۋشىنى قايتا اتاۋ',
+	'renameuserold' => 'اعىمداعى قاتىسۋشى اتى:',
+	'renameusernew' => 'جاڭا قاتىسۋشى اتى:',
+	'renameuserreason' => 'قايتا اتاۋ سەبەبى:',
+	'renameusermove' => 'قاتىسۋشىنىڭ جەكە جانە تالقىلاۋ بەتتەرىن (جانە دە ولاردىڭ تومەنگى بەتتەرىن) جاڭا اتاۋعا جىلجىتۋ',
+	'renameusersubmit' => 'جىبەرۋ',
+	'renameusererrordoesnotexist' => '«<nowiki>$1» دەگەن قاتىسۋشى جوق',
+	'renameusererrorexists' => '«$1» دەگەن قاتىسۋشى بار تۇگە',
+	'renameusererrorinvalid' => '«$1» قاتىسۋشى اتى جارامسىز',
+	'renameusersuccess' => '«$1» دەگەن قاتىسۋشى اتى «$2» دەگەنگە اۋىستىرىلدى',
+	'renameuser-page-exists' => '$1 دەگەن بەت بار تۇگە, جانە وزدىك تۇردە ونىڭ ۇستىنە ەشتەڭە جازىلمايدى.',
+	'renameuser-page-moved' => '$1 دەگەن بەت $2 دەگەن بەتكە جىلجىتىلدى.',
+	'renameuser-page-unmoved' => '$1 دەگەن بەت $2 دەگەن بەتكە جىلجىتىلمادى.',
+	'renameuserlogpage' => 'قاتىسۋشىنى قايتا اتاۋ جۋرنالى',
+	'renameuserlogpagetext' => 'بۇل قاتىسۋشى اتىنداعى وزگەرىستەر جۋرنالى',
+	'renameuserlogentry' => '$1 اتاۋىن $2 دەگەنگە وزگەرتتى',
+	'renameuser-log' => '$1 تۇزەتۋى بار. $2',
+	'renameuser-move-log' => '«[[User:$1|$1]]» دەگەن قاتىسۋشى اتىن «[[User:$2|$2]]» دەگەنگە اۋىسقاندا بەت وزدىك تۇردە جىلجىتىلدى',
+);
+
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
+$messages['kk-cyrl'] = array(
+	'renameuser' => 'Қатысушыны қайта атау',
+	'renameuserold' => 'Ағымдағы қатысушы аты:',
+	'renameusernew' => 'Жаңа қатысушы аты:',
+	'renameuserreason' => 'Қайта атау себебі:',
+	'renameusermove' => 'Қатысушының жеке және талқылау беттерін (және де олардың төменгі беттерін) жаңа атауға жылжыту',
+	'renameusersubmit' => 'Жіберу',
+	'renameusererrordoesnotexist' => '«<nowiki>$1</nowiki>» деген қатысушы жоқ',
+	'renameusererrorexists' => '«<nowiki>$1</nowiki>» деген қатысушы бар түге',
+	'renameusererrorinvalid' => '«<nowiki>$1</nowiki>» қатысушы аты жарамсыз',
+	'renameusersuccess' => '«<nowiki>$1</nowiki>» деген қатысушы аты «<nowiki>$2</nowiki>» дегенге ауыстырылды',
+	'renameuser-page-exists' => '$1 деген бет бар түге, және өздік түрде оның үстіне ештеңе жазылмайды.',
+	'renameuser-page-moved' => '$1 деген бет $2 деген бетке жылжытылды.',
+	'renameuser-page-unmoved' => '$1 деген бет $2 деген бетке жылжытылмады.',
+	'renameuserlogpage' => 'Қатысушыны қайта атау журналы',
+	'renameuserlogpagetext' => 'Бұл қатысушы атындағы өзгерістер журналы',
+	'renameuserlogentry' => '$1 атауын «$2» дегенге өзгертті',
+	'renameuser-log' => '$1 түзетуі бар. $2',
+	'renameuser-move-log' => '«[[User:$1|$1]]» деген қатысушы атын «[[User:$2|$2]]» дегенге ауысқанда бет өздік түрде жылжытылды',
+);
+
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
+$messages['kk-latn'] = array(
+	'renameuser' => 'Qatıswşını qaýta ataw',
+	'renameuserold' => 'Ağımdağı qatıswşı atı:',
+	'renameusernew' => 'Jaña qatıswşı atı:',
+	'renameuserreason' => 'Qaýta ataw sebebi:',
+	'renameusermove' => 'Qatıswşınıñ jeke jäne talqılaw betterin (jäne de olardıñ tömengi betterin) jaña atawğa jıljıtw',
+	'renameusersubmit' => 'Jiberw',
+	'renameusererrordoesnotexist' => '«<nowiki>$1</nowiki>» degen qatıswşı joq',
+	'renameusererrorexists' => '«<nowiki>$1</nowiki>» degen qatıswşı bar tüge',
+	'renameusererrorinvalid' => '«<nowiki>$1</nowiki>» qatıswşı atı jaramsız',
+	'renameusersuccess' => '«<nowiki>$1</nowiki>» degen qatıswşı atı «<nowiki>$2</nowiki>» degenge awıstırıldı',
+	'renameuser-page-exists' => '$1 degen bet bar tüge, jäne özdik türde onıñ üstine eşteñe jazılmaýdı.',
+	'renameuser-page-moved' => '$1 degen bet $2 degen betke jıljıtıldı.',
+	'renameuser-page-unmoved' => '$1 degen bet $2 degen betke jıljıtılmadı.',
+	'renameuserlogpage' => 'Qatıswşını qaýta ataw jwrnalı',
+	'renameuserlogpagetext' => 'Bul qatıswşı atındağı özgerister jwrnalı',
+	'renameuserlogentry' => '$1 atawın «$2» degenge özgertti',
+	'renameuser-log' => '$1 tüzetwi bar. $2',
+	'renameuser-move-log' => '«[[User:$1|$1]]» degen qatıswşı atın «[[User:$2|$2]]» degenge awısqanda bet özdik türde jıljıtıldı',
+);
+
+/** Khmer (ភាសាខ្មែរ)
+ * @author Chhorran
+ * @author Lovekhmer
+ * @author Thearith
+ * @author គីមស៊្រុន
+ */
+$messages['km'] = array(
+	'renameuser' => 'ប្តូរអត្តនាម',
+	'renameuser-linkoncontribs' => 'ប្តូរឈ្មោះអ្នកប្រើប្រាស់',
+	'renameuser-linkoncontribs-text' => 'ប្ដូរឈ្មោះអ្នកប្រើប្រាស់នេះ',
+	'renameuser-desc' => "ប្តូរឈ្មោះអ្នកប្រើប្រាស់(ត្រូវការសិទ្ធិ ''ប្តូរឈ្មោះអ្នកប្រើប្រាស់'')",
+	'renameuserold' => 'ឈ្មោះអ្នកប្រើប្រាស់បច្ចុប្បន្ន ៖',
+	'renameusernew' => 'ឈ្មោះអ្នកប្រើប្រាស់ថ្មី៖',
+	'renameuserreason' => 'មូលហេតុ៖',
+	'renameusermove' => 'ប្តូរទីតាំងទំព័រអ្នកប្រើប្រាស់និងទំព័រពិភាក្សា(រួមទាំងទំព័ររងផងដែរ)ទៅឈ្មោះថ្មី',
+	'renameusersuppress' => 'កុំបង្កើតការបញ្ជូនបន្តទៅឈ្មោះថ្មី',
+	'renameuserreserve' => 'ហាមឃាត់គណនីចាស់ពីការប្រើប្រាស់នាពេលអនាគត',
+	'renameuserwarnings' => 'បម្រាម​៖',
+	'renameuserconfirm' => 'បាទ/ចាស៎ សូមប្តូរឈ្មោះអ្នកប្រើប្រាស់នេះ',
+	'renameusersubmit' => 'ដាក់ស្នើ',
+	'renameusererrordoesnotexist' => 'អ្នកប្រើប្រាស់ "<nowiki>$1</nowiki>" មិនមាន ។',
+	'renameusererrorexists' => 'អ្នកប្រើប្រាស់ "<nowiki>$1</nowiki>" មានហើយ ។',
+	'renameusererrorinvalid' => 'ឈ្មោះអ្នកប្រើប្រាស់ "<nowiki>$1</nowiki>" មិនត្រឹមត្រូវ ។',
+	'renameuser-error-request' => 'មានបញ្ហា​ចំពោះការទទួលសំណើ​។ សូមត្រឡប់ក្រោយ ហើយព្យាយាមម្តងទៀត​។',
+	'renameuser-error-same-user' => 'អ្នកមិនអាចប្តូរឈ្មោះអ្នកប្រើប្រាស់ទៅជាឈ្មោះដូចមុនបានទេ។',
+	'renameusersuccess' => 'អ្នកប្រើប្រាស់ "<nowiki>$1</nowiki>" ត្រូវបានប្តូរឈ្មោះទៅ "<nowiki>$2</nowiki>"។',
+	'renameuser-page-exists' => 'ទំព័រ $1 មានហើយ មិនអាចសរសេរជាន់ពីលើដោយស្វ័យប្រវត្តិទេ។',
+	'renameuser-page-moved' => 'ទំព័រ$1ត្រូវបានប្តូរទីតាំងទៅ$2ហើយ។',
+	'renameuser-page-unmoved' => 'ទំព័រ$1មិនអាចប្តូរទីតាំងទៅ$2បានទេ។',
+	'renameuserlogpage' => 'កំនត់ហេតុនៃការប្តូរឈ្មោះអ្នកប្រើប្រាស់',
+	'renameuserlogpagetext' => 'នេះជាកំណត់ហេតុនៃបំលាស់ប្តូរនៃឈ្មោះអ្នកប្រើប្រាស់',
+	'renameuserlogentry' => 'បានប្តូរឈ្មោះ $1 ទៅជា "$2" ហើយ',
+	'renameuser-log' => '{{PLURAL:$1|កំណែប្រែ}}។ ហេតុផល៖ $2',
+	'renameuser-move-log' => 'បានប្តូរទីតាំងទំព័រដោយស្វ័យប្រវត្តិក្នុងខណៈពេលប្តូរឈ្មោះអ្នកប្រើប្រាស់ "[[User:$1|$1]]" ទៅ "[[User:$2|$2]]"',
+	'right-renameuser' => 'ប្ដូរឈ្មោះអ្នកប្រើប្រាស់នានា',
+	'renameuser-renamed-notice' => 'ឈ្មោះរបស់អ្នកប្រើប្រាស់នេះត្រូវបានប្ដូររួចហើយ។
+
+ខាងក្រោមនេះជាកំណត់ហេតុនៃការប្ដូរឈ្មោះ។',
+);
+
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ * @author Shushruth
+ */
+$messages['kn'] = array(
+	'renameuser' => 'ಸದಸ್ಯರನ್ನು ಮರುನಾಮಕರಣ ಮಾಡಿ',
+	'renameuserwarnings' => 'ಎಚ್ಚರಿಕೆಗಳು:',
+);
+
+/** Korean (한국어)
+ * @author Albamhandae
+ * @author Ficell
+ * @author Klutzy
+ * @author Kwj2772
+ * @author ToePeu
+ */
+$messages['ko'] = array(
+	'renameuser' => '계정 이름 변경',
+	'renameuser-linkoncontribs' => '이름 바꾸기',
+	'renameuser-linkoncontribs-text' => '이 사용자의 계정 이름을 바꿉니다.',
+	'renameuser-desc' => "계정 이름 변경을 위한 [[Special:Renameuser|특수 문서]]를 추가한다 ('''renameuser''' 권한 필요)",
+	'renameuserold' => '기존 계정 이름:',
+	'renameusernew' => '새 이름:',
+	'renameuserreason' => '바꾸는 이유:',
+	'renameusermove' => '사용자 문서와 토론 문서, 하위 문서를 새 사용자 이름으로 이동하기',
+	'renameusersuppress' => '새 이름으로 넘겨주기를 생성하지 않기',
+	'renameuserreserve' => '나중에 이전의 이름이 사용되지 않도록 차단하기',
+	'renameuserwarnings' => '경고:',
+	'renameuserconfirm' => '예, 이름을 변경합니다.',
+	'renameusersubmit' => '변경',
+	'renameusererrordoesnotexist' => '‘<nowiki>$1</nowiki>’ 사용자가 존재하지 않습니다.',
+	'renameusererrorexists' => '‘<nowiki>$1</nowiki>’ 사용자가 이미 존재합니다.',
+	'renameusererrorinvalid' => '‘<nowiki>$1</nowiki>’ 사용자 이름이 잘못되었습니다.',
+	'renameuser-error-request' => '요청을 정상적으로 전송하지 못했습니다.
+뒤로 가서 다시 시도해주세요.',
+	'renameuser-error-same-user' => '이전의 이름과 같은 이름으로는 바꿀 수 없습니다.',
+	'renameusersuccess' => '‘<nowiki>$1</nowiki>’ 사용자가 ‘<nowiki>$2</nowiki>’(으)로 변경되었습니다.',
+	'renameuser-page-exists' => '$1 문서가 이미 존재하여 자동으로 이동하지 못했습니다.',
+	'renameuser-page-moved' => '$1 문서를 $2(으)로 이동했습니다.',
+	'renameuser-page-unmoved' => '$1 문서를 $2(으)로 이동하지 못했습니다.',
+	'renameuserlogpage' => '이름 변경 기록',
+	'renameuserlogpagetext' => '계정 이름 변경 기록입니다.',
+	'renameuserlogentry' => '$1에서 ‘$2’(으)로 이름을 바꾸었습니다.',
+	'renameuser-log' => '기여 $1건. 이유: $2',
+	'renameuser-move-log' => '‘[[User:$1|$1]]’ 사용자를 ‘[[User:$2|$2]]’(으)로 바꾸면서 문서를 자동으로 이동함',
+	'right-renameuser' => '계정 이름 변경',
+	'renameuser-renamed-notice' => '이 사용자의 계정 이름이 변경되었습니다.
+아래의 이름 변경 기록을 참고하십시오.',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'renameuser' => 'Metmaacher ömdäufe',
+	'renameuser-linkoncontribs' => 'Metmaacher ömnänne',
+	'renameuser-linkoncontribs-text' => 'Heh dä Metmaacher ömnänne',
+	'renameuser-desc' => '[[Special:Renameuser|Metmaacher ömdäufe]] — ävver do bruch mer et Rääsch „<i lang=en">renameuser</i>“ för.',
+	'renameuserold' => 'Dä ahle Metmaacher-Name',
+	'renameusernew' => 'Dä neue Metmaacher-Name',
+	'renameuserreason' => 'Jrund för et Ömdäufe:',
+	'renameusermove' => 'De Metmaachersigg met Klaaf- un Ungersigge op dä neue Metmaacher-Name ömstelle',
+	'renameusersuppress' => 'Donn kein Ömleidung op dä neue Name aanlääje',
+	'renameuserreserve' => 'Donn dä Name fun dämm Metmaacher dobei sperre, dat_e nit norrens neu aanjemelldt weed.',
+	'renameuserwarnings' => 'Warnunge:',
+	'renameuserconfirm' => 'Jo, dunn dä Metmaacher ömbenenne un em singe Name ändere',
+	'renameusersubmit' => 'Ömdäufe!',
+	'renameusererrordoesnotexist' => 'Ene Metmaacher „<nowiki>$1</nowiki>“ kenne mer nit.',
+	'renameusererrorexists' => 'Ene Metmaacher met däm Name „<nowiki>$1</nowiki>“ jit et ald.',
+	'renameusererrorinvalid' => 'Ene Metmaacher-Name eß „<nowiki>$1</nowiki>“ ävver nit, dä wöhr nit richtich.',
+	'renameuser-error-request' => 'Mer hatte e Problem met Dingem Opdrach.
+Bes esu joot un versöök et noch ens.',
+	'renameuser-error-same-user' => 'Do Tuppes! Der ahle un der neue Name es dersellve. Do bengk et Ömdäufe jaanix.',
+	'renameusersuccess' => 'Dä Metmaacher „<nowiki>$1</nowiki>“ es jetz op „<nowiki>$2</nowiki>“ ömjedäuf.',
+	'renameuser-page-exists' => 'De Sigg $1 es ald doh, un mer könne se nit automatesch övverschrieve',
+	'renameuser-page-moved' => 'De Sigg wood vun „$1“ op „$2“ ömjenannt.',
+	'renameuser-page-unmoved' => 'Di Sigg „$1“ kunnt nit op „$2“ ömjenannt wääde.',
+	'renameuserlogpage' => 'Logboch vum Metmaacher-Ömdäufe',
+	'renameuserlogpagetext' => 'Dat es et Logboch vun de ömjedäufte Metmaachere',
+	'renameuserlogentry' => 'hät „$1“ op dä Metmaacher „$2“ ömjedäuf',
+	'renameuser-log' => '{{PLURAL:$1|ein Beärbeidung|$1 Beärbeidung|kein Beärbeidung}}. Jrund: $2',
+	'renameuser-move-log' => 'Di Sigg weet automatesch ömjenannt weil mer dä Metmaacher „[[User:$1|$1]]“ op „[[User:$2|$2]]“ öm am däufe sin.',
+	'right-renameuser' => 'Metmaacher ömdäufe',
+	'renameuser-renamed-notice' => 'Dä Metmaacher es ömjenannt woode.
+Dat kanns De unge en däm Ußzoch uss_em Logbooch vum Metmacher Ömnänne fenge.',
+);
+
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ * @author Gomada
+ */
+$messages['ku-latn'] = array(
+	'renameuser' => 'Navî bikarhênerê biguherîne',
+	'renameuser-linkoncontribs' => 'navî bikarhênerê biguherîne',
+	'renameuser-linkoncontribs-text' => 'Navê vî bikarhênerî biguherîne',
+	'renameuserold' => 'Navê niha:',
+	'renameusernew' => 'Navê nû:',
+	'renameuserreason' => 'Sedema ji bo navguhertinê:',
+	'renameuserwarnings' => 'Hişyarî:',
+	'renameuserconfirm' => 'Erê, navê vî bikarhênerî biguherîne',
+	'renameusersubmit' => 'Bike',
+	'renameusererrordoesnotexist' => 'Bikarhêner "<nowiki>$1</nowiki>" tune ye.',
+	'renameusersuccess' => 'Navî bikarhênerê "<nowiki>$1</nowiki>" bû "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Rûpela $1 berê heye û ew nikane otomatîk were jêbirin.',
+	'renameuser-page-moved' => 'Rûpela $1 çû cihê $2.',
+	'renameuser-page-unmoved' => 'Rûpela $1 nikanî çûba ciha $2.',
+	'renameuser-log' => 'yê $1 beşdarîyên xwe hebû. $2',
+	'right-renameuser' => 'Navê bikarhêneran biguherîne:',
+);
+
+/** Latin (Latina)
+ * @author MF-Warburg
+ * @author SPQRobin
+ * @author UV
+ */
+$messages['la'] = array(
+	'renameuser' => 'Usorem renominare',
+	'renameuserold' => 'Praesente nomen usoris:',
+	'renameusernew' => 'Novum nomen usoris:',
+	'renameuserreason' => 'Causa renominationis:',
+	'renameusermove' => 'Movere paginas usoris et disputationis (et subpaginae) in nomen novum',
+	'renameusersubmit' => 'Renominare',
+	'renameusererrordoesnotexist' => 'Usor "<nowiki>$1</nowiki>" non existit',
+	'renameusererrorexists' => 'Usor "<nowiki>$1</nowiki>" iam existit',
+	'renameusererrorinvalid' => 'Nomen usoris "<nowiki>$1</nowiki>" irritum est',
+	'renameusersuccess' => 'Usor "<nowiki>$1</nowiki>" renominatus est in "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Pagina $1 iam existit et non potest automatice deleri.',
+	'renameuser-page-moved' => 'Pagina $1 mota est ad $2.',
+	'renameuser-page-unmoved' => 'Pagina $1 ad $2 moveri non potuit.',
+	'renameuserlogpage' => 'Index renominationum usorum',
+	'renameuserlogpagetext' => 'Hic est index renominationum usorum',
+	'renameuserlogentry' => 'renominavit $1 in "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 recensio|$1 recensiones}}. Causa: $2',
+	'renameuser-move-log' => 'movit paginam automatice in renominando usorem "[[User:$1|$1]]" in "[[User:$2|$2]]"',
+	'right-renameuser' => 'Usores renominare',
+	'renameuser-renamed-notice' => 'Hic usor renominatus est.
+Commodule notatio renominationum usoris subter datur.',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'renameuser' => 'Benotzernumm änneren',
+	'renameuser-linkoncontribs' => 'Benotzer ëmbenennen',
+	'renameuser-linkoncontribs-text' => 'Dëse Benotzer ëmbenennen',
+	'renameuser-desc' => "Benotzernumm änneren (Dir braucht dofir  ''renameuser''-Rechter)",
+	'renameuserold' => 'Aktuelle Benotzernumm:',
+	'renameusernew' => 'Neie Benotzernumm:',
+	'renameuserreason' => "Grond fir d'Ëmbenennung:",
+	'renameusermove' => 'Benotzer- an Diskussiounssäiten (an déi jeweileg Ënnersäiten) op den neie Benotzernumm réckelen',
+	'renameusersuppress' => 'Maacht keng Viruleedungen op den neien Numm',
+	'renameuserreserve' => 'Den ale Benotzernumm fir de weitere Gebrauch spären',
+	'renameuserwarnings' => 'Warnungen:',
+	'renameuserconfirm' => 'Jo, Benotzer ëmbenennen',
+	'renameusersubmit' => 'Ëmbenennen',
+	'renameusererrordoesnotexist' => 'De Benotzer "<nowiki>$1</nowiki>" gëtt et net.',
+	'renameusererrorexists' => 'De Benotzer "<nowiki>$1</nowiki>" gët et schonn.',
+	'renameusererrorinvalid' => 'De Benotzernumm "<nowiki>$1</nowiki>" kann net benotzt ginn.',
+	'renameuser-error-request' => 'Et gouf e Problem mat ärer Ufro.
+Gitt w.e.g. zréck a versicht et nach eng Kéier.',
+	'renameuser-error-same-user' => 'Dir kënnt kee Benotzernumm änneren, an him deselwechten Numm erëmginn.',
+	'renameusersuccess' => 'De Benotzer "<nowiki>$1</nowiki>" gouf "<nowiki>$2</nowiki>" ëmbenannt.',
+	'renameuser-page-exists' => "D'Säit $1 gëtt et schonns a kann net automatesch iwwerschriwwe ginn.",
+	'renameuser-page-moved' => "D'Säit $1 gouf op $2 geréckelt.",
+	'renameuser-page-unmoved' => "D'Säit $1 konnt net op $2 geréckelt ginn.",
+	'renameuserlogpage' => 'Logbuch vun den Ännerunge vum Benotzernumm',
+	'renameuserlogpagetext' => 'An dësem Logbuch ginn Ännerunge vu Benotzernimm festgehal.',
+	'renameuserlogentry' => 'huet de Benotzer $1 op "$2" ëmbenannt',
+	'renameuser-log' => '{{PLURAL:$1|1 Ännerung|$1 Ännerungen}}. Grond: $2',
+	'renameuser-move-log' => 'Duerch d\'Réckele vum Benotzer "[[User:$1|$1]]" op "[[User:$2|$2]]" goufen déi folgend Säiten automatesch matgeréckelt:',
+	'right-renameuser' => 'Benotzer ëmbenennen',
+	'renameuser-renamed-notice' => "Dëse Benotzer gouf ëmbenannt.
+D'Logbuch mat den Ëmbenunngen ass hei ënnendrënner.",
+);
+
+/** Limburgish (Limburgs)
+ * @author Matthias
+ * @author Ooswesthoesbes
+ * @author Pahles
+ * @author Tibor
+ */
+$messages['li'] = array(
+	'renameuser' => 'Herneum gebroeker',
+	'renameuser-linkoncontribs' => 'herneum gebroeker',
+	'renameuser-linkoncontribs-text' => 'Hernöm deze broeker',
+	'renameuser-desc' => "Voog 'n [[Special:Renameuser|speciaal pazjwna]] toe óm 'ne gebroeker te hernömme (doe höbs hiej ''renameuser''-rech veur neudig)",
+	'renameuserold' => 'Hujige gebroekersnaam:',
+	'renameusernew' => 'Nuje gebroekersnaam:',
+	'renameuserreason' => 'Ree veur hernömme:',
+	'renameusermove' => "De gebroekerspazjena en euverlèkpazjena (en eventueel subpazjena's) hernömmme nao de nuje gebroekersnaam",
+	'renameusersuppress' => 'Maak gein redireks nao de nuje naam',
+	'renameuserreserve' => 'Veurkómme det de aaje gebroeker opnuuj wörd geregistreerd',
+	'renameuserwarnings' => 'Waarschuwinge:',
+	'renameuserconfirm' => 'Jao, hernaam gebroeker',
+	'renameusersubmit' => 'Herneum',
+	'renameusererrordoesnotexist' => 'De gebroeker "<nowiki>$1</nowiki>" besteit neet.',
+	'renameusererrorexists' => 'De gebroeker "<nowiki>$1</nowiki>" besteit al.',
+	'renameusererrorinvalid' => 'De gebroekersnaam "<nowiki>$1</nowiki>" is óngeljig.',
+	'renameuser-error-request' => "d'r Woor 'n perbleem bie 't óntvange vanne aanvraog. Lèvver trök te gaon en opnuuj te perbere/",
+	'renameuser-error-same-user' => 'De kèns gein gebroekers herneume nao dezelfde naam.',
+	'renameusersuccess' => 'De gebroeker "<nowiki>$1</nowiki>" is hernömp nao "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'De pazjena $1 besteit al en kan neet automatisch euversjreve waere,',
+	'renameuser-page-moved' => 'De pagina $1 is hernömp nao $2.',
+	'renameuser-page-unmoved' => 'De pagina $1 kon neet hernömp waere nao $2.',
+	'renameuserlogpage' => 'Logbook gebroekersnaamwieziginge',
+	'renameuserlogpagetext' => 'Hiejónger staon gebroekersname die verangerdj zeen',
+	'renameuserlogentry' => 'haet $1 hernömp nao "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 bewerking|$1 bewerkinge}}. Ree: $2',
+	'renameuser-move-log' => 'Automatisch hernömp bie \'t wiezige van gebroeker "[[User:$1|$1]]" nao "[[User:$2|$2]]"',
+	'right-renameuser' => 'Gebroekers hernaome',
+	'renameuser-renamed-notice' => "Deze gebroeker is herneump.
+Relevante regels oet 't logbook staon hieónger.",
+);
+
+/** Lithuanian (Lietuvių)
+ * @author Eitvys200
+ * @author Homo
+ * @author Hugo.arg
+ * @author Matasg
+ */
+$messages['lt'] = array(
+	'renameuser' => 'Pervadinti naudotoją',
+	'renameuser-linkoncontribs' => 'Pervadinti naudotoją',
+	'renameuser-linkoncontribs-text' => 'Pervardyti šį vartotoją',
+	'renameuser-desc' => "Pervadinti naudotoją (reikia ''pervadintojo'' teisių)",
+	'renameuserold' => 'Esamas naudotojo vardas:',
+	'renameusernew' => 'Naujas naudotojo vardas:',
+	'renameuserreason' => 'Pervadinimo priežastis:',
+	'renameusermove' => 'Perkelti naudotojo ir aptarimo puslapius (bei jo subpuslapius) prie naujo vardo',
+	'renameuserreserve' => 'Užblokuoti senąjį naudotojo vardą nuo galimybių naudoti ateityje',
+	'renameuserwarnings' => 'Įspėjimai:',
+	'renameuserconfirm' => 'Taip, pervadinti naudotoją',
+	'renameusersubmit' => 'Patvirtinti',
+	'renameusererrordoesnotexist' => 'Naudotojas "<nowiki>$1</nowiki>" neegzistuoja.',
+	'renameusererrorexists' => 'Naudotojas "<nowiki>$1</nowiki>" jau egzistuoja.',
+	'renameusererrorinvalid' => 'Naudotojo vardas "<nowiki>$1</nowiki>" netinkamas.',
+	'renameuser-error-request' => 'Iškilo prašymo gavimo problema.
+Prašome eiti atgal ir bandyti iš naujo.',
+	'renameuser-error-same-user' => 'Jūs negalite pervadinti naudotojo į tokį pat vardą, kaip pirmiau.',
+	'renameusersuccess' => 'Naudotojas "<nowiki>$1</nowiki>" buvo pervadintas į "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Puslapis $1 jau egzistuoja ir negali būti automatiškai perrašytas.',
+	'renameuser-page-moved' => 'Puslapis $1 buvo perkeltas į $2.',
+	'renameuser-page-unmoved' => 'Puslapis $1 negali būti perkeltas į $2.',
+	'renameuserlogpage' => 'Naudotojų pervadinimo sąrašas',
+	'renameuserlogpagetext' => 'Tai yra naudotojų vardų pakeitimų sąrašas',
+	'renameuserlogentry' => 'pervadintas $1 į „$2“',
+	'renameuser-log' => '{{PLURAL:$1|1 redagavimas|$1 redagavimų(ai)}}. Priežastis: $2',
+	'renameuser-move-log' => 'Puslapis automatiškai perkeltas, kai buvo pervadinamas naudotojas "[[User:$1|$1]]" į "[[User:$2|$2]]"',
+	'right-renameuser' => 'Pervadinti naudotojus',
+);
+
+/** Latvian (Latviešu)
+ * @author Papuass
+ * @author Xil
+ */
+$messages['lv'] = array(
+	'renameuser' => 'Pārsaukt lietotāju',
+	'renameuser-linkoncontribs' => 'pārsaukt lietotāju',
+	'renameuser-linkoncontribs-text' => 'Pārsaukt šo lietotāju',
+	'renameuserold' => 'Pašreizējais lietotāja vārds:',
+	'renameusernew' => 'Jaunais lietotāja vārds:',
+	'renameuserreason' => 'Pārsaukšanas iemesls:',
+	'renameuserreserve' => 'Bloķēt veco lietotājvārdu no turpmākas izmantošanas',
+	'renameuserwarnings' => 'Brīdinājumi:',
+	'renameuserconfirm' => 'Jā, pārdēvēt lietotāju',
+	'renameusersubmit' => 'Iesniegt',
+	'renameusererrorexists' => 'Lietotājs "<nowiki>$1</nowiki>" jau ir.',
+	'renameusersuccess' => 'Lietotājs "<nowiki>$1</nowiki>" pārdēvēts par "<nowiki>$2</nowiki>".',
+	'renameuserlogpage' => 'Lietotāju pārdēvēšanas reģistrs',
+	'renameuserlogpagetext' => 'Lietotājvārdu maiņas reģistrs',
+	'renameuserlogentry' => 'pārsauca $1 par "$2"',
+	'right-renameuser' => 'Pārsaukt lietotājus',
+);
+
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'renameuser' => "Hanova ny anaran'ny mpikambana",
+	'renameuser-linkoncontribs' => "Manova ny anaran'ny mpikambana",
+	'renameuser-linkoncontribs-text' => "Hanova ny anaran'ity mpikambana ity",
+	'renameuserold' => 'Anaram-pikambana ankehitriny :',
+	'renameusernew' => 'Anaram-pikambana vaovao :',
+	'renameuserreason' => "Anton'ny fanovana anarana :",
+	'renameusermove' => "Afindrany pejim-pikambana any amin'ny anarana vaovao",
+	'renameuserwarnings' => 'Fampitandremana :',
+	'renameuserconfirm' => 'Eny, soloy anarana ilay mpikambana',
+	'renameusersubmit' => 'Alefa',
+	'renameuserlogpage' => 'Laogim-panovana anaram-pikambana',
+	'right-renameuser' => "Manova ny anaran'ny mpikambana",
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ * @author Brest
+ * @author Misos
+ */
+$messages['mk'] = array(
+	'renameuser' => 'Преименувај корисник',
+	'renameuser-linkoncontribs' => 'преименувај корисник',
+	'renameuser-linkoncontribs-text' => 'Преименувај го корисников',
+	'renameuser-desc' => "Додава [[Special:Renameuser|специјална страница]] за преименување на корисник (бара право на ''renameuser'')",
+	'renameuserold' => 'Сегашно корисничко име:',
+	'renameusernew' => 'Ново корисничко име:',
+	'renameuserreason' => 'Образложение за преименување:',
+	'renameusermove' => 'Премести корисничка страница и страници за разговор (и нивните потстраници) под новото име',
+	'renameusersuppress' => 'Не создавај пренасочувања кон новото име',
+	'renameuserreserve' => 'Блокирање на старото корисничко име, да не може да се користи во иднина',
+	'renameuserwarnings' => 'Предупредувања:',
+	'renameuserconfirm' => 'Да, преименувај го корисникот',
+	'renameusersubmit' => 'Внеси',
+	'renameusererrordoesnotexist' => 'Корисникот „<nowiki>$1</nowiki>“ не постои',
+	'renameusererrorexists' => 'Корисникот „<nowiki>$1</nowiki>“ веќе постои',
+	'renameusererrorinvalid' => 'Корисничкото име „<nowiki>$1</nowiki>“ не е важечко.',
+	'renameuser-error-request' => 'Се јави проблем при примањето на барањето.
+Вратете се и обидете се повторно.',
+	'renameuser-error-same-user' => 'Не можете да го преименувате корисникот во име кое е исто како претходното.',
+	'renameusersuccess' => 'Корисникот „<nowiki>$1</nowiki>“ е преименуван во „<nowiki>$2</nowiki>“',
+	'renameuser-page-exists' => 'Страницата $1 веќе постои и не може автоматски да се замени со друга содржина.',
+	'renameuser-page-moved' => 'Страницата $1 е преместена на $2.',
+	'renameuser-page-unmoved' => 'Страницата $1 неможеше да се премести на $2.',
+	'renameuserlogpage' => 'Дневник на преименувања на корисници',
+	'renameuserlogpagetext' => 'Ово е дневник на преименувања на корисници',
+	'renameuserlogentry' => 'го преименуваше $1 во „$2“',
+	'renameuser-log' => '{{PLURAL:$1|1 уредување|$1 уредувања}}. Образложение: $2',
+	'renameuser-move-log' => 'Автоматски преместена страница при преименување на корисникот „[[User:$1|$1]]“ во „[[User:$2|$2]]“',
+	'right-renameuser' => 'Преименување корисници',
+	'renameuser-renamed-notice' => 'Овој корисник е преименуван.
+Подолу е приложен дневникот на преименување за споредба.',
+);
+
+/** Malayalam (മലയാളം)
+ * @author Praveenp
+ * @author Shijualex
+ */
+$messages['ml'] = array(
+	'renameuser' => 'ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്യുക',
+	'renameuser-linkoncontribs' => 'ഉപയോക്തൃ പുനർനാമകരണം',
+	'renameuser-linkoncontribs-text' => 'ഈ ഉപയോക്താവിന്റെ പേരു മാറ്റുക',
+	'renameuser-desc' => "ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്യുവാനുള്ള (''പുനർനാമകരണ'' അവകാശം വേണം) ഒരു [[Special:Renameuser|പ്രത്യേക താൾ]] ചേർക്കുന്നു",
+	'renameuserold' => 'ഇപ്പോഴത്തെ ഉപയോക്തൃനാമം:',
+	'renameusernew' => 'പുതിയ ഉപയോക്തൃനാമം:',
+	'renameuserreason' => 'ഉപയോക്തൃനാമം മാറ്റാനുള്ള കാരണം:',
+	'renameusermove' => 'നിലവിലുള്ള ഉപയോക്തൃതാളും, ഉപയോക്താവിന്റെ സം‌വാദം താളും (ഉപതാളുകൾ അടക്കം) പുതിയ നാമത്തിലേക്കു മാറ്റുക.',
+	'renameusersuppress' => 'പുതിയ നാമത്തിലേയ്ക്ക് തിരിച്ചുവിടലുകളൊന്നും സൃഷ്ടിക്കരുത്',
+	'renameuserreserve' => 'പഴയ ഉപയോക്തൃനാമം ഭാവിയിൽ ഉപയോഗിക്കുന്നതു തടയുക',
+	'renameuserwarnings' => 'മുന്നറിയിപ്പുകൾ:',
+	'renameuserconfirm' => 'അതെ, ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്യുക',
+	'renameusersubmit' => 'സമർപ്പിക്കുക',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>"  എന്ന ഉപയോക്താവ് നിലവിലില്ല.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" എന്ന ഉപയോക്താവ് നിലവിലുണ്ട്.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" എന്ന ഉപയോക്തൃനാമം അസാധുവാണ്‌.',
+	'renameuser-error-request' => 'അപേക്ഷ സ്വീകരിക്കുമ്പോൾ പിഴവ് സം‌ഭവിച്ചു. ദയവായി തിരിച്ചു പോയി വീണ്ടും പരിശ്രമിക്കുക.',
+	'renameuser-error-same-user' => 'നിലവിലുള്ള ഒരു ഉപയോക്തൃനാമത്തിലേക്കു വേറൊരു ഉപയോക്തൃനാമം പുനർനാമകരണം നടത്തുവാൻ സാധിക്കില്ല.',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" എന്ന ഉപയോക്താവിനെ "<nowiki>$2</nowiki>" എന്ന നാമത്തിലേക്കു പുനർനാമകരണം ചെയ്തിരിക്കുന്നു.',
+	'renameuser-page-exists' => '$1 എന്ന താൾ നിലവിലുള്ളതിനാൽ അതിനെ യാന്ത്രികമായി മാറ്റാൻ കഴിയില്ല.',
+	'renameuser-page-moved' => '$1 എന്ന താൾ $2 എന്നാക്കിയിരിക്കുന്നു.',
+	'renameuser-page-unmoved' => '$1 എന്ന താൾ $2 എന്നാക്കാൻ സാദ്ധ്യമല്ല.',
+	'renameuserlogpage' => 'ഉപയോക്തൃനാമം പുനർനാമകരണം നടത്തിയതിന്റെ പ്രവർത്തനരേഖ',
+	'renameuserlogpagetext' => 'ഈ പ്രവർത്തനരേഖ ഉപയോക്തൃനാമം പുനർനാമകരണം നടത്തിയതിന്റേതാണ്‌.',
+	'renameuserlogentry' => '$1 എന്ന ഉപയോക്താവിനെ "$2" എന്നു പുനർനാമകരണം ചെയ്തിരിക്കുന്നു.',
+	'renameuser-log' => '{{PLURAL:$1|ഒരു തിരുത്തൽ|$1 തിരുത്തലുകൾ}}. കാരണം: $2',
+	'renameuser-move-log' => '"[[User:$1|$1]]" എന്ന ഉപയോക്താവിനെ "[[User:$2|$2]]" എന്നു പുനർനാമകരണം ചെയ്തപ്പോൾ താൾ യാന്ത്രികമായി മാറ്റി.',
+	'right-renameuser' => 'ഉപയോക്തൃ പുനർനാമകരണം',
+	'renameuser-renamed-notice' => 'ഈ ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്തിരിക്കുന്നു.
+പുനർനാമകരണ രേഖ അവലംബമായി പരിശോധിക്കാനായി താഴെ കൊടുത്തിരിക്കുന്നു.',
+);
+
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'renameusersubmit' => 'Явуулах',
+);
+
+/** Marathi (मराठी)
+ * @author Kaajawa
+ * @author Kaustubh
+ * @author Rahuldeshmukh101
+ * @author V.narsikar
+ */
+$messages['mr'] = array(
+	'renameuser' => 'सदस्यनाम बदला',
+	'renameuser-linkoncontribs' => 'सदस्यनाम बदला',
+	'renameuser-linkoncontribs-text' => 'ह्या सदस्याचे नाव बदला',
+	'renameuser-desc' => "सदस्यनाम बदला (यासाठी तुम्हाला ''सदस्यनाम बदलण्याचे अधिकार'' असणे आवश्यक आहे)",
+	'renameuserold' => 'सध्याचे सदस्यनाम:',
+	'renameusernew' => 'नवीन सदस्यनाम:',
+	'renameuserreason' => 'नाम बदलण्याचे कारण:',
+	'renameusermove' => 'सदस्य तसेच सदस्य चर्चापान (तसेच त्यांची उपपाने) नवीन सदस्यनामाकडे स्थानांतरीत करा',
+	'renameusersuppress' => 'नवीन नावाकडे पुर्ननिर्देशने तयार करू नका',
+	'renameuserreserve' => 'जुने सदस्य खाते पुढील वापरासाठी अवरुद्ध करा',
+	'renameuserwarnings' => 'ताकीद:',
+	'renameuserconfirm' => 'होय, सदस्याचे नाव बदला',
+	'renameusersubmit' => 'पाठवा',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" नावाचा सदस्य अस्तित्वात नाही.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" नावाचा सदस्य अगोदरच अस्तित्वात आहे',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" हे नाव चुकीचे आहे.',
+	'renameuser-error-request' => 'हे काम करताना त्रुटी आढळलेली आहे. कृपया मागे जाऊन परत प्रयत्न करा.',
+	'renameuser-error-same-user' => 'तुम्ही एखाद्या सदस्याला परत पूर्वीच्या नावाकडे बदलू शकत नाही',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" या सदस्याचे नाव "<nowiki>$2</nowiki>" ला बदललेले आहे.',
+	'renameuser-page-exists' => '$1 हे पान अगोदरच अस्तित्वात आहे व आपोआप पुनर्लेखन करता येत नाही.',
+	'renameuser-page-moved' => '$1 हे पान $2 मथळ्याखाली स्थानांतरीत केले.',
+	'renameuser-page-unmoved' => '$1 हे पान $2 मथळ्याखाली स्थानांतरीत करू शकत नाही.',
+	'renameuserlogpage' => 'सदस्यनाम बदल यादी',
+	'renameuserlogpagetext' => 'ही सदस्यनामांमध्ये केलेल्या बदलांची यादी आहे.',
+	'renameuserlogentry' => '$1 ला "$2" केले',
+	'renameuser-log' => '{{PLURAL:$1|१ संपादन|$1 संपादने}}. कारण: $2',
+	'renameuser-move-log' => '"[[User:$1|$1]]" ला "[[User:$2|$2]]" बदलताना आपोआप सदस्य पान स्थानांतरीत केलेले आहे.',
+	'right-renameuser' => 'सदस्यांची नावे बदला',
+	'renameuser-renamed-notice' => 'या सदस्यास पुनर्नामित करण्यात आले आहे.
+पुनर्नामाचा क्रमलेख संदर्भासाठी खाली दिलेला आहे.',
+);
+
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
+ * @author Aviator
+ */
+$messages['ms'] = array(
+	'renameuser' => 'Tukar nama pengguna',
+	'renameuser-linkoncontribs' => 'tukar nama pengguna',
+	'renameuser-linkoncontribs-text' => 'Tukar nama pengguna ini',
+	'renameuser-desc' => "Menukar nama pengguna (memerlukan hak ''renameuser'')",
+	'renameuserold' => 'Nama semasa:',
+	'renameusernew' => 'Nama baru:',
+	'renameuserreason' => 'Sebab tukar:',
+	'renameusermove' => 'Pindahkan laman pengguna dan laman perbincangannya (berserta semua sublaman yang ada) ke nama baru',
+	'renameusersuppress' => 'Jangan buat lencongan ke nama baru',
+	'renameuserreserve' => 'Pelihara nama pengguna lama supaya tidak digunakan lagi',
+	'renameuserwarnings' => 'Amaran:',
+	'renameuserconfirm' => 'Ya, tukar nama pengguna ini',
+	'renameusersubmit' => 'Hantar',
+	'renameusererrordoesnotexist' => 'Pengguna "<nowiki>$1</nowiki>" tidak wujud.',
+	'renameusererrorexists' => 'Pengguna "<nowiki>$1</nowiki>" telah pun wujud.',
+	'renameusererrorinvalid' => 'Nama pengguna "<nowiki>$1</nowiki>" tidak sah.',
+	'renameuser-error-request' => 'Berlaku masalah ketika menerima permintaan anda.
+Sila undur dan cuba lagi.',
+	'renameuser-error-same-user' => 'Anda tidak boleh menukar nama pengguna kepada nama yang sama.',
+	'renameusersuccess' => 'Nama "<nowiki>$1</nowiki>" telah ditukar menjadi "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Laman $1 telah pun wujud dan tidak boleh ditulis ganti secara automatik.',
+	'renameuser-page-moved' => 'Laman $1 telah dipindahkan ke $2.',
+	'renameuser-page-unmoved' => 'Laman $1 tidak dapat dipindahkan ke $2.',
+	'renameuserlogpage' => 'Log penukaran nama pengguna',
+	'renameuserlogpagetext' => 'Ini ialah log penukaran nama pengguna.',
+	'renameuserlogentry' => 'telah menukar nama $1 menjadi "$2"',
+	'renameuser-log' => '$1 suntingan. Sebab: $2',
+	'renameuser-move-log' => 'Memindahkan laman secara automatik ketika menukar nama "[[User:$1|$1]]" menjadi "[[User:$2|$2]]"',
+	'right-renameuser' => 'Menukar nama pengguna',
+	'renameuser-renamed-notice' => 'Pengguna ini telah dinamakan semula.
+Log penukaran nama ditunjukkan di bawah sebagai rujukan.',
+);
+
+/** Maltese (Malti)
+ * @author Chrisportelli
+ * @author Roderick Mallia
+ */
+$messages['mt'] = array(
+	'renameuser' => 'Semmi utent mill-ġdid',
+	'renameuser-linkoncontribs' => 'semmi l-utent mill-ġdid',
+	'renameuser-linkoncontribs-text' => "Erġa' semmi lil dan l-utent",
+	'renameuserold' => 'Isem tal-utent attwali:',
+	'renameusernew' => 'Isem tal-utent il-ġdid:',
+	'renameuserreason' => 'Raġuni għall-bidla fl-isem:',
+	'renameusermove' => "Mexxi l-paġna tal-utent, il-paġna ta' diskussjoni u s-sottopaġni taħt l-isem il-ġdid",
+	'renameusersuppress' => 'Toħloqx rindirizzi lejn l-isem il-ġdid',
+	'renameuserreserve' => 'Imblokka l-użu tal-isem il-qadim fil-futur',
+	'renameuserwarnings' => 'Twissijiet:',
+	'renameuserconfirm' => 'Iva, semmi mill-ġdid dan l-utent',
+	'renameusersubmit' => 'Ibgħat',
+	'renameusererrordoesnotexist' => 'L-utent "<nowiki>$1</nowiki>" ma jeżistix.',
+	'renameusererrorexists' => 'L-utent "<nowiki>$1</nowiki>" diġà jeżisti.',
+	'renameusererrorinvalid' => 'L-isem tal-utent "<nowiki>$1</nowiki>" hu invalidu.',
+);
+
+/** Erzya (Эрзянь)
+ * @author Botuzhaleny-sodamo
+ */
+$messages['myv'] = array(
+	'renameusernew' => 'Од лемесь:',
+	'renameuserreserve' => 'Озавтомс ташто совицянь лементь саймес, тевс илязо нолдаво седе тов',
+	'renameuserconfirm' => 'Истя, макст совицянтень од лем',
+	'renameusersubmit' => 'Максомс',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" совицясь арась.',
+);
+
+/** Nahuatl (Nāhuatl)
+ * @author Fluence
+ */
+$messages['nah'] = array(
+	'renameusersubmit' => 'Tiquihuāz',
+);
+
+/** Min Nan Chinese (Bân-lâm-gú) */
+$messages['nan'] = array(
+	'renameuser' => 'Kái iōng-chiá ê miâ',
+	'renameuser-page-moved' => '$1 í-keng sóa khì tī $2.',
+	'renameuserlogpagetext' => 'Chit-ê log lia̍t-chhut kái-piàn iōng-chiá miâ-jī ê tōng-chok.',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ * @author Nghtwlkr
+ */
+$messages['nb'] = array(
+	'renameuser' => 'Døp om bruker',
+	'renameuser-linkoncontribs' => 'døp om bruker',
+	'renameuser-linkoncontribs-text' => 'Døp om denne brukeren',
+	'renameuser-desc' => "Legger til en [[Special:Renameuser|spesialside]] for å døpe om en bruker (krever ''renameuser''-rettigheter)",
+	'renameuserold' => 'Nåværende brukernavn:',
+	'renameusernew' => 'Nytt brukernavn:',
+	'renameuserreason' => 'Årsak for omdøping:',
+	'renameusermove' => 'Flytt bruker- og brukerdiskusjonssider (og deres undersider) til nytt navn',
+	'renameusersuppress' => 'Ikke opprett omdirigeringer til det nye navnet',
+	'renameuserreserve' => 'Blokker det gamle brukernavnet fra framtidig bruk',
+	'renameuserwarnings' => 'Advarsler:',
+	'renameuserconfirm' => 'Ja, døp om brukeren',
+	'renameusersubmit' => 'Utfør',
+	'renameusererrordoesnotexist' => 'Brukeren «<nowiki>$1</nowiki>» finnes ikke.',
+	'renameusererrorexists' => 'Brukeren «<nowiki>$1</nowiki>» finnes allerede.',
+	'renameusererrorinvalid' => 'Brukernavnet «<nowiki>$1</nowiki>» er ugyldig.',
+	'renameuser-error-request' => 'Det var et problem med å motta forespørselen.
+Gå tilbake og prøv igjen.',
+	'renameuser-error-same-user' => 'Du kan ikke gi en bruker samme navn som han/hun allerede har.',
+	'renameusersuccess' => 'Brukeren «<nowiki>$1</nowiki>» har blitt omdøpt til «<nowiki>$2</nowiki>».',
+	'renameuser-page-exists' => 'Siden $1 finnes allerede, og kunne ikke erstattes automatisk.',
+	'renameuser-page-moved' => 'Siden $1 har blitt flyttet til $2.',
+	'renameuser-page-unmoved' => 'Siden $1 kunne ikke flyttes til $2.',
+	'renameuserlogpage' => 'Omdøpingslogg',
+	'renameuserlogpagetext' => 'Dette er en logg over endringer i brukernavn.',
+	'renameuserlogentry' => 'døpte om $1 til «$2»',
+	'renameuser-log' => '{{PLURAL:$1|1 bidrag|$1 bidrag}}. Årsak: $2',
+	'renameuser-move-log' => 'Flyttet side automatisk under omdøping av brukeren «[[User:$1|$1]]» til «[[User:$2|$2]]»',
+	'right-renameuser' => 'Døpe om brukere',
+	'renameuser-renamed-notice' => 'Denne brukeren er døpt om.
+Til informasjon er omdøpningsloggen vist nedenfor.',
+);
+
+/** Low German (Plattdüütsch)
+ * @author Slomox
+ */
+$messages['nds'] = array(
+	'renameuser' => 'Brukernaam ännern',
+	'renameuser-desc' => "Föögt en [[Special:Renameuser|Spezialsied]] to för dat Ne’en-Naam-Geven för Brukers (''renameuser''-Recht nödig)",
+	'renameuserold' => 'Brukernaam nu:',
+	'renameusernew' => 'Nee Brukernaam:',
+	'renameuserreason' => 'Gründ för den ne’en Naam:',
+	'renameusermove' => 'Brukersieden op’n ne’en Naam schuven',
+	'renameuserreserve' => 'Den olen Brukernaam dor vör schulen, dat he noch wedder nee anmellt warrt',
+	'renameuserwarnings' => 'Wohrschauels:',
+	'renameuserconfirm' => 'Jo, den Bruker en ne’en Naam geven',
+	'renameusersubmit' => 'Ännern',
+	'renameusererrordoesnotexist' => "Bruker ''<nowiki>$1</nowiki>'' gifft dat nich",
+	'renameusererrorexists' => "Bruker ''<nowiki>$1</nowiki>'' gifft dat al",
+	'renameusererrorinvalid' => "Brukernaam ''<nowiki>$1</nowiki>'' geiht nich",
+	'renameuser-error-request' => 'Dat geev en Problem bi’t Överdragen vun de Anfraag. Gah trüch un versöök dat noch wedder.',
+	'renameuser-error-same-user' => 'De ole un ne’e Brukernaam sünd gliek.',
+	'renameusersuccess' => "Brukernaam ''<nowiki>$1</nowiki>'' op ''<nowiki>$2</nowiki>'' ännert",
+	'renameuser-page-exists' => 'Siet $1 gifft dat al un kann nichautomaatsch överschreven warrn.',
+	'renameuser-page-moved' => 'Siet $1 schaven na $2.',
+	'renameuser-page-unmoved' => 'Siet $1 kunn nich na $2 schaven warrn.',
+	'renameuserlogpage' => 'Ännerte-Brukernaams-Logbook',
+	'renameuserlogpagetext' => 'Dit is dat Logbook för ännerte Brukernaams',
+	'renameuserlogentry' => 'hett „$1“ ne’en Naam „$2“ geven',
+	'renameuser-log' => '{{PLURAL:$1|1 Ännern|$1 Ännern}}. Grund: $2',
+	'renameuser-move-log' => "Siet bi dat Ännern vun’n Brukernaam ''[[User:$1|$1]]'' na ''[[User:$2|$2]]'' automaatsch schaven",
+	'right-renameuser' => 'Brukers ne’en Naam geven',
+);
+
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'renameuser' => 'Gebruker herneumen',
+	'renameuser-linkoncontribs' => 'gebruker herneumen',
+	'renameuserold' => 'Gebrukersnaam noen',
+	'renameusernew' => 'Nieje gebrukersnaam:',
+	'renameuserreason' => 'Reden veur t herneumen:',
+	'renameusermove' => "Herneum gebruker en gebrukerspagina's (en subpagina's) naor de nieje naam.",
+	'renameusersuppress' => 'Gien deurverwiezingen maken naor de nieje naam',
+	'renameuserreserve' => 'Veurkoemen dat de ouwe gebruker opniej eregistreerd wörden',
+	'renameuserwarnings' => 'Waorschuwingen:',
+	'renameuserconfirm' => 'Ja, herneum disse gebruker',
+	'renameusersubmit' => 'Herneumen',
+	'renameusererrordoesnotexist' => 'De gebruker "<nowiki>$1</nowiki>" besteet niet.',
+	'renameusererrorexists' => 'De gebrukersnaam "<nowiki>$1</nowiki>" is al in gebruuk.',
+	'renameusererrorinvalid' => 'De gebrukersnaam "<nowiki>$1</nowiki>" is ongeldig.',
+	'renameusersuccess' => 'Gebruker "<nowiki>$1</nowiki>" is herneumd naor "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'De pagina $1 besteet al en kan niet automaties overschreven wörden.',
+	'renameuser-page-moved' => 'De pagina $1 is herneumd naor $2.',
+	'renameuser-page-unmoved' => 'De pagina $1 kon niet herneumd wörden naor $2.',
+	'renameuserlogpage' => 'Logboek gebrukersnaamwiezigingen',
+	'renameuserlogpagetext' => 'Dit is n logboek mit wiezigingen van gebrukersnamen',
+	'renameuserlogentry' => 'hef $1 herneumd naor "$2"',
+	'renameuser-move-log' => 'Pagina is automaties verplaotst bie t herneumen van de gebruker "[[User:$1|$1]]" naor "[[User:$2|$2]]"',
+	'right-renameuser' => 'Gebrukers herneumen',
+	'renameuser-renamed-notice' => 'Disse gebrukersnaam is herneumd.
+Hieronder vie-j t herneumlogboek as referensie.',
+);
+
+/** Nepali (नेपाली) */
+$messages['ne'] = array(
+	'renameuserold' => 'अहिलेको प्रयोगकर्ता नाम:',
+	'renameusernew' => 'नयाँ प्रयोगकर्ता नाम:',
+	'renameusersubmit' => 'बुझाउने',
+	'renameuser-page-exists' => '$1 पृष्ठ पहिले देखि नै रहेको छ र स्वत: अधिलेखन गर्न सकिएन ।',
+	'renameuser-page-moved' => ' $1 पृष्ठलाई $2 मा सारियो ।',
+	'renameuser-page-unmoved' => '$1 पृष्ठलाई $2 मा सार्न सकिएन ।',
+);
+
+/** Dutch (Nederlands)
+ * @author Effeietsanders
+ * @author SPQRobin
+ * @author Siebrand
+ */
+$messages['nl'] = array(
+	'renameuser' => 'Gebruiker hernoemen',
+	'renameuser-linkoncontribs' => 'gebruiker hernoemen',
+	'renameuser-linkoncontribs-text' => 'Deze gebruiker hernoemen',
+	'renameuser-desc' => "Voegt een [[Special:Renameuser|speciale pagina]] toe om een gebruiker te hernoemen (u hebt hiervoor het recht ''renameuser'' nodig)",
+	'renameuserold' => 'Huidige gebruikersnaam:',
+	'renameusernew' => 'Nieuwe gebruikersnaam:',
+	'renameuserreason' => 'Reden voor hernoemen:',
+	'renameusermove' => "De gebruikerspagina en overlegpagina (en eventuele subpagina's) hernoemen naar de nieuwe gebruikersnaam",
+	'renameusersuppress' => 'Geen doorverwijzingen maken naar de nieuwe naam',
+	'renameuserreserve' => 'Voorkomen dat de oude gebruiker opnieuw wordt geregistreerd',
+	'renameuserwarnings' => 'Waarschuwingen:',
+	'renameuserconfirm' => 'Ja, de gebruiker hernoemen',
+	'renameusersubmit' => 'Opslaan',
+	'renameusererrordoesnotexist' => 'De gebruiker "<nowiki>$1</nowiki>" bestaat niet.',
+	'renameusererrorexists' => 'De gebruiker "<nowiki>$1</nowiki>" bestaat al.',
+	'renameusererrorinvalid' => 'De gebruikersnaam "<nowiki>$1</nowiki>" is ongeldig.',
+	'renameuser-error-request' => 'Er was een probleem bij het ontvangen van de aanvraag.  Gelieve terug te gaan en opnieuwe te proberen.',
+	'renameuser-error-same-user' => 'U kunt geen gebruiker hernoemen naar dezelfde naam.',
+	'renameusersuccess' => 'De gebruiker "<nowiki>$1</nowiki>" is hernoemd naar "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'De pagina $1 bestaat al en kan niet automatisch overschreven worden.',
+	'renameuser-page-moved' => 'De pagina $1 is hernoemd naar $2.',
+	'renameuser-page-unmoved' => 'De pagina $1 kon niet hernoemd worden naar $2.',
+	'renameuserlogpage' => 'Logboek gebruikersnaamwijzigingen',
+	'renameuserlogpagetext' => 'Hieronder staan gebruikersnamen die gewijzigd zijn.',
+	'renameuserlogentry' => 'heeft $1 hernoemd naar "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 bewerking|$1 bewerkingen}}. Reden: $2',
+	'renameuser-move-log' => 'Automatisch hernoemd bij het wijzigen van gebruiker "[[User:$1|$1]]" naar "[[User:$2|$2]]"',
+	'right-renameuser' => 'Gebruikers hernoemen',
+	'renameuser-renamed-notice' => 'Deze gebruiker is hernoemd.
+Relevante regels uit het logboek gebruikersnaamwijzigingen worden hieronder ter referentie weergegeven.',
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
+ * @author Gunnernett
+ * @author Harald Khan
+ * @author Ranveig
+ */
+$messages['nn'] = array(
+	'renameuser' => 'Døyp om brukar',
+	'renameuser-linkoncontribs' => 'døyp om brukar',
+	'renameuser-desc' => "Legg til ei [[Special:Renameuser|spesialsida]] for å døypa om ein brukar (krev ''renameuser''-rettar)",
+	'renameuserold' => 'Noverande brukarnamn:',
+	'renameusernew' => 'Nytt brukarnamn:',
+	'renameuserreason' => 'Årsak for omdøyping:',
+	'renameusermove' => 'Flytt brukar- og brukardiskusjonssider (og deira undersider) til nytt namn.',
+	'renameuserreserve' => 'Blokker det gamle brukarnamnet for framtidig bruk',
+	'renameuserwarnings' => 'Åtvaringar:',
+	'renameuserconfirm' => 'Ja, endra namn på brukaren',
+	'renameusersubmit' => 'Utfør',
+	'renameusererrordoesnotexist' => 'Brukaren «<nowiki>$1</nowiki>» finst ikkje.',
+	'renameusererrorexists' => 'Brukaren «<nowiki>$1</nowiki>» finst allereie.',
+	'renameusererrorinvalid' => 'Brukarnamnet «<nowiki>$1</nowiki>» er ikkje gyldig.',
+	'renameuser-error-request' => 'Det var eit problem med å motta førespurnaden.
+Gå attende og prøv på nytt.',
+	'renameuser-error-same-user' => 'Du kan ikkje gje ein brukar same namn som han/ho har frå før.',
+	'renameusersuccess' => 'Brukaren «<nowiki>$1</nowiki>» har fått brukarnamnet endra til «<nowiki>$2</nowiki>»',
+	'renameuser-page-exists' => 'Sida $1 finst allereie og kan ikkje automatisk verta skrive over.',
+	'renameuser-page-moved' => 'Sida $1 har vorte flytta til $2.',
+	'renameuser-page-unmoved' => 'Sida $1 kunne ikkje verta flytta til $2.',
+	'renameuserlogpage' => 'Logg over brukarnamnendringar',
+	'renameuserlogpagetext' => 'Logg over endringar av brukarnamn',
+	'renameuserlogentry' => 'endra $1 til «$2»',
+	'renameuser-log' => '{{PLURAL:$1|eitt bidrag|$1 bidrag}}. Årsak: $2',
+	'renameuser-move-log' => 'Flytta sida automatisk under omdøyping av brukaren «[[User:$1|$1]]» til «[[User:$2|$2]]»',
+	'right-renameuser' => 'Døypa om brukarar',
+	'renameuser-renamed-notice' => 'Denne brukaren har fått nytt namn.
+Til informasjon er omdøpingsloggen synt nedanfor.',
+);
+
+/** Northern Sotho (Sesotho sa Leboa)
+ * @author Mohau
+ */
+$messages['nso'] = array(
+	'renameuser' => 'Fetola leina la mošomiši',
+	'renameuserold' => 'Leina la bjale la mošomiši:',
+	'renameusernew' => 'Leina le lempsha la mošomiši:',
+	'renameuserreason' => 'Lebaka lago fetola leina:',
+	'renameuser-page-moved' => 'Letlakala $1 le hudušitšwe go $2',
+);
+
+/** Occitan (Occitan)
+ * @author Boulaur
+ * @author Cedric31
+ */
+$messages['oc'] = array(
+	'renameuser' => "Tornar nomenar l'utilizaire",
+	'renameuser-linkoncontribs' => "tornar nomenar l'utilizaire",
+	'renameuser-linkoncontribs-text' => "Tornar nomenar l'utilizaire",
+	'renameuser-desc' => "Torna nomenar un utilizaire (necessita los dreches de ''renameuser'')",
+	'renameuserold' => "Nom actual de l'utilizaire :",
+	'renameusernew' => "Nom novèl de l'utilizaire :",
+	'renameuserreason' => 'Motiu del cambiament de nom :',
+	'renameusermove' => 'Desplaçar totas las paginas de l’utilizaire cap al nom novèl',
+	'renameuserreserve' => 'Reservar lo nom ancian per un usatge futur',
+	'renameuserwarnings' => 'Avertiments :',
+	'renameuserconfirm' => 'Òc, tornar nomenar l’utilizaire',
+	'renameusersubmit' => 'Sometre',
+	'renameusererrordoesnotexist' => "Lo nom d'utilizaire « <nowiki>$1</nowiki> » es pas valid",
+	'renameusererrorexists' => "Lo nom d'utilizaire « <nowiki>$1</nowiki> » existís ja",
+	'renameusererrorinvalid' => "Lo nom d'utilizaire « <nowiki>$1</nowiki> » existís pas",
+	'renameuser-error-request' => 'Un problèma existís amb la recepcion de la requèsta. Tornatz en rèire e ensajatz tornamai.',
+	'renameuser-error-same-user' => 'Podètz pas tornar nomenar un utilizaire amb la meteissa causa deperabans.',
+	'renameusersuccess' => "L'utilizaire « <nowiki>$1</nowiki> » es plan estat renomenat en « <nowiki>$2</nowiki> »",
+	'renameuser-page-exists' => 'La pagina $1 existís ja e pòt pas èsser remplaçada automaticament.',
+	'renameuser-page-moved' => 'La pagina $1 es estada desplaçada cap a $2.',
+	'renameuser-page-unmoved' => 'La pagina $1 pòt pas èsser renomenada en $2.',
+	'renameuserlogpage' => "Istoric dels cambiaments de nom d'utilizaire",
+	'renameuserlogpagetext' => "Aquò es l'istoric dels cambiaments de nom dels utilizaires",
+	'renameuserlogentry' => 'a renomenat $1 en "$2"',
+	'renameuser-log' => '$1 {{PLURAL:$1|edicion|edicions}}. Motiu : $2',
+	'renameuser-move-log' => 'Pagina desplaçada automaticament al moment del cambiament de nom de l’utilizaire "[[User:$1|$1]]" en "[[User:$2|$2]]"',
+	'right-renameuser' => "Tornar nomenar d'utilizaires",
+	'renameuser-renamed-notice' => 'Aqueste utilizaire es estat renomenat.
+Lo jornal dels cambiaments de noms es disponible çaijós per informacion.',
+);
+
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Odisha1
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'renameuser' => 'ସଭ୍ୟଙ୍କ ନାମଟି ବଦଳାଇବେ',
+	'renameuser-linkoncontribs' => 'ସଭ୍ୟଙ୍କ ନାମଟି ବଦଳାଇବେ',
+	'renameuser-linkoncontribs-text' => 'ଏହି ସଭ୍ୟଙ୍କର ନାମ ବଦଳାଇବେ',
+	'renameuser-desc' => "ଜଣେ ସଭ୍ୟଙ୍କର ନାମ ବଦଳାଇବା ପାଇଁ ଏକ [[Special:Renameuser|ବିଶେଷ ପୃଷ୍ଠା]] ଯୋଡ଼ିଥାଏ ।(''ନୂଆ ନାମକରଣ'' ଅଧିକାର ଲୋଡ଼ା)",
+	'renameuserold' => 'ଏବେକାର ଇଉଜର ନାମ:',
+	'renameusernew' => 'ନୂଆ ଇଉଜର ନାମ:',
+	'renameuserreason' => 'ନାମ ବଦଳାଇବାର କାରଣ:',
+	'renameusermove' => 'ସଭ୍ୟ, ତାହାଙ୍କର ଆଲୋଚନା ପୃଷ୍ଠାମାନଙ୍କୁ (ତଥା ସାନପୃଷ୍ଠାମାନଙ୍କୁ)ନୂଆ ନାମକୁ ଘୁଞ୍ଚାଇବେ',
+	'renameusersuppress' => 'ନୂଆ ନାମକୁ ପୁନପ୍ରେରଣ କରନ୍ତୁ ନାହିଁ',
+	'renameuserreserve' => 'ଭବିଷ୍ୟତ ବ୍ୟବହାରରେ ପୁରୁଣା ଇଉଜର ନାମକୁ ଅଟକାଇ ଦିଅନ୍ତୁ',
+	'renameuserwarnings' => 'ଚେତାବନୀ:',
+	'renameuserconfirm' => 'ହଁ, ସଭ୍ୟଙ୍କ ନାମ ବଦଳାଇ ଦେବେ',
+	'renameusersubmit' => 'ଦାଖଲକରିବା',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" ନାମକ ସଭ୍ୟଜଣକ ଏଠାରେ ନାହାନ୍ତି ।',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" ନାମକ ସଭ୍ୟଜଣକ ଆଗରୁ ଅଛନ୍ତି ।',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" ଇଉଜର ନାମଟି ଅଚଳ ଅଟେ ।',
+	'renameuser-error-request' => 'ଅନୁରୋଧ ଗ୍ରହଣ କରିବାରେ ଏକ ଅସୁବିଧା ହେଲା ।
+ଦୟାକରି ପଛକୁ ଫେରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।',
+	'renameuser-error-same-user' => 'ଆଗ ଭଳି ଆପଣ ଜଣେ ସଭ୍ୟଙ୍କର ନାମ ବଦଳାଇପାରିବେ ନାହିଁ ।',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" ସଭ୍ୟଙ୍କ ନାମ "<nowiki>$2</nowiki>"କୁ ବଦଳାଗଲା ।',
+	'renameuser-page-exists' => '$1 ପୃଷ୍ଠାଟି ଆଗରୁ ଅଛି ଓ ଆଉଥରେ ଲେଖାଯାଇପାରିବ ନାହିଁ ।',
+	'renameuser-page-moved' => '$1 ପୃଷ୍ଠାଟିକୁ $2କୁ ଘୁଞ୍ଚାଇ ଦିଆଗଲା ।',
+	'renameuser-page-unmoved' => '$1 ପୃଷ୍ଠାଟି $2କୁ ଘୁଞ୍ଚାଯାଇ ପାରିବ ନାହିଁ ।',
+	'renameuserlogpage' => 'ସଭ୍ୟ ନାମବଦଳ ଇତିହାସ',
+	'renameuserlogpagetext' => 'ସଭ୍ୟଙ୍କ ନାମ ବଦଳର ଏହା ଏକ ଇତିହାସ ।',
+	'renameuserlogentry' => '$1 ରୁ "$2" କୁ ନାମ ବଦଳାଗଲା',
+	'renameuser-log' => '{{PLURAL:$1|ସମ୍ପାଦନାଟିଏ|$1 ଗୋଟି ସମ୍ପାଦନା}} । କାରଣ: $2',
+	'renameuser-move-log' => 'ସଭ୍ୟ "[[User:$1|$1]]"ରୁ "[[User:$2|$2]]"କୁ ନାମ ବଦଳ କଲାବେଳେ ବେଳେ ଛାଏଁ ଛାଏଁ ପୃଷ୍ଠାଟି ଘୁଞ୍ଚାଇ ଦିଆଗଲା',
+	'right-renameuser' => 'ସଭ୍ୟମାନଙ୍କ ନାମଟି ବଦଳାଇବେ',
+	'renameuser-renamed-notice' => 'ଏହି ସଭ୍ୟଙ୍କ ନାମ ବଦଳାଯାଇଅଛି ।
+ତଳେ ଅବଗତି ନିମନ୍ତେ ନାମ ବଦଳ ଇତିହାସ ଦିଆଗଲା ।',
+);
+
+/** Ossetic (Ирон)
+ * @author Amikeco
+ */
+$messages['os'] = array(
+	'renameuser' => 'Архайæджы ном баив',
+	'renameuserold' => 'Ныры ном:',
+	'renameusernew' => 'Ног ном:',
+	'renameuserreason' => 'Ном ивыны аххос:',
+	'renameusersubmit' => 'Афтæ уæд',
+	'renameuserlogpage' => 'Архайджыты нæмттæ ивыны лог',
+);
+
+/** Picard (Picard)
+ * @author Geoleplubo
+ */
+$messages['pcd'] = array(
+	'renameuser' => "Canger ch'nom d'uzeu",
+	'renameusernew' => 'Nouvieu nom dechl uzeu',
+	'renameuserreason' => "Motif dech canjemint d'nom",
+	'renameuserwarnings' => 'Afute ! :',
+	'renameuserconfirm' => 'Oui, érlonmer echl uzeu',
+	'renameusererrorinvalid' => 'Ech nom  "<nowiki>$1</nowiki>" est non-val.',
+	'renameusersuccess' => 'Echl uzeu "<nowiki>$1</nowiki>" o té érlonmé "<nowiki>$2</nowiki>".',
+	'renameuser-page-moved' => "L'pache $1 o té déplachée dsus $2.",
+	'renameuser-page-unmoved' => "L'pache $1 ale n'put poin éte déplachée su $2.",
+	'renameuserlogpage' => "Jornal d'chés canjemints éd chés noms d'uzeus",
+	'renameuserlogpagetext' => "Ch'est un jornal éd chés canjemints d'chés noms d'uzeus.",
+	'renameuserlogentry' => '$1 est érlonmé in "$2"',
+	'right-renameuser' => 'Érlonmer chés uzeus',
+);
+
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'renameuser' => 'Naame vum Yuuser ennere',
+	'renameuserold' => 'Current Yuusernaame:',
+	'renameusernew' => 'Nei Yuuser-Naame',
+	'renameuserreason' => 'Grund:',
+	'renameuserwarnings' => 'Warninge:',
+	'renameuserlogentry' => 'hot „$1“ nooch „$2“ gennert',
+	'renameuser-log' => '{{PLURAL:$1|1 Ennering|$1 Enneringe}}. Grund: $2',
+);
+
+/** Pälzisch (Pälzisch)
+ * @author SPS
+ */
+$messages['pfl'] = array(
+	'renameusersubmit' => 'Benutzer umbenenne',
+);
+
+/** Polish (Polski)
+ * @author Derbeth
+ * @author Leinad
+ * @author Maikking
+ * @author Nux
+ * @author Sp5uhe
+ * @author WarX
+ * @author Wpedzich
+ */
+$messages['pl'] = array(
+	'renameuser' => 'Zmiana nazwy użytkownika',
+	'renameuser-linkoncontribs' => 'zmień nazwę użytkownika',
+	'renameuser-linkoncontribs-text' => 'Zmień nazwę tego użytkownika',
+	'renameuser-desc' => "Zmiana nazwy użytkownika (wymaga posiadania uprawnień ''renameuser'')",
+	'renameuserold' => 'Obecna nazwa użytkownika:',
+	'renameusernew' => 'Nowa nazwa użytkownika:',
+	'renameuserreason' => 'Przyczyna zmiany nazwy:',
+	'renameusermove' => 'Przeniesienie strony osobistej i strony dyskusji użytkownika (oraz ich podstron) pod nową nazwę użytkownika',
+	'renameusersuppress' => 'Nie twórz przekierowania do nowej nazwy',
+	'renameuserreserve' => 'Zablokuj starą nazwę użytkownika przed możliwością użycia jej',
+	'renameuserwarnings' => 'Ostrzeżenia:',
+	'renameuserconfirm' => 'Zmień nazwę użytkownika',
+	'renameusersubmit' => 'Zmień',
+	'renameusererrordoesnotexist' => 'Użytkownik „<nowiki>$1</nowiki>” nie istnieje',
+	'renameusererrorexists' => 'Użytkownik „<nowiki>$1</nowiki>” już istnieje',
+	'renameusererrorinvalid' => 'Niepoprawna nazwa użytkownika „<nowiki>$1</nowiki>”',
+	'renameuser-error-request' => 'Wystąpił problem z odbiorem żądania.
+Cofnij się i spróbuj jeszcze raz.',
+	'renameuser-error-same-user' => 'Nie możesz zmienić nazwy użytkownika na taką samą jaka była wcześniej.',
+	'renameusersuccess' => 'Nazwa użytkownika „<nowiki>$1</nowiki>” została zmieniona na „<nowiki>$2</nowiki>”',
+	'renameuser-page-exists' => 'Strona „$1” już istnieje i nie może być automatycznie nadpisana.',
+	'renameuser-page-moved' => 'Strona „$1” została przeniesiona pod nazwę „$2”.',
+	'renameuser-page-unmoved' => 'Strona „$1” nie mogła zostać przeniesiona pod nazwę „$2”.',
+	'renameuserlogpage' => 'Zmiany nazw użytkowników',
+	'renameuserlogpagetext' => 'To jest rejestr zmian nazw użytkowników',
+	'renameuserlogentry' => 'zmienił nazwę użytkownika $1 na „$2”',
+	'renameuser-log' => '$1 {{PLURAL:$1|edycja|edycje|edycji}}. Powód: $2',
+	'renameuser-move-log' => 'Automatyczne przeniesienie stron użytkownika po zmianie nazwy konta z „[[User:$1|$1]]” na „[[User:$2|$2]]”',
+	'right-renameuser' => 'Zmiana nazw kont użytkowników',
+	'renameuser-renamed-notice' => 'Nazwa konta {{GENDER:$1|tego użytkownika|tej użytkowniczki|użytkownika(‐czki)}} została zmieniona.
+Rejestr zmian nazw kont użytkowników znajduje się poniżej.',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Bèrto 'd Sèra
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'renameuser' => "Arbatié n'utent",
+	'renameuser-linkoncontribs' => "arbatié n'utent",
+	'renameuser-linkoncontribs-text' => "Arbatié st'utent-sì",
+	'renameuser-desc' => "A gionta na [[Special:Renameuser|pàgina special]] për arnominé n'utent (a-i é dabzògn dël drit ''renameuser'')",
+	'renameuserold' => 'Stranòm corent:',
+	'renameusernew' => 'Stranòm neuv:',
+	'renameuserreason' => "Rason ch'as cambia stranòm:",
+	'renameusermove' => 'Tramuda ëdcò la pàgina utent e cola dle ciaciarade (con tute soe sotapàgine) a lë stranòm neuv',
+	'renameusersuppress' => 'Creé nen na ridiression al nòm neuv',
+	'renameuserreserve' => 'Blòca lë stanòm vej da future utilisassion',
+	'renameuserwarnings' => 'Atension:',
+	'renameuserconfirm' => "É!, arnòmina l'utent",
+	'renameusersubmit' => 'Falo',
+	'renameusererrordoesnotexist' => 'A-i é pa gnun utent ch\'as ës-ciama "<nowiki>$1</nowiki>"',
+	'renameusererrorexists' => 'N\'utent ch\'as ës-ciama "<nowiki>$1</nowiki>" a-i é già',
+	'renameusererrorinvalid' => 'Lë stranòm "<nowiki>$1</nowiki>" a l\'é nen bon',
+	'renameuser-error-request' => "A l'é stàit-ie un problema con l'esecussion ëd l'arcesta.
+Për piasì torna andré e preuva torna.",
+	'renameuser-error-same-user' => "It peule pa arnominé n'utent con ël midem nòm ëd prima.",
+	'renameusersuccess' => 'L\'utent "<nowiki>$1</nowiki>" a l\'é stait arbatià an "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => "La pàgina $1 a-i é già e as peul nen passe-ie dzora n'aotomàtich.",
+	'renameuser-page-moved' => "La pàgina $1 a l'ha fait San Martin a $2.",
+	'renameuser-page-unmoved' => "La pàgina $1 a l'é pa podusse tramudé a $2.",
+	'renameuserlogpage' => "Registr dj'arbatiagi",
+	'renameuserlogpagetext' => "Sossì a l'é un registr dle modìfiche djë stranòm dj'utent",
+	'renameuserlogentry' => 'a l\'ha arbatià $1 an "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 modìfica|$1 modìfiche}}. Rason: $2',
+	'renameuser-move-log' => 'Pàgina utent tramudà n\'aotomàtich damëntrè ch\'as arbatiava "[[User:$1|$1]]" an "[[User:$2|$2]]"',
+	'right-renameuser' => "Arnòmina j'utent",
+	'renameuser-renamed-notice' => "St'utent-sì a l'é stàit arnominà.
+Ël registr ëd l'arnòmina a l'é dàit sota për arferiment.",
+);
+
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'renameuser' => 'ورتن والے دا ہور ناں',
+	'renameuser-linkoncontribs' => 'ورتن والے دا ہور ناں',
+	'renameuser-linkoncontribs-text' => 'ایس ورتن والے دا ہور ناں رکھو',
+	'renameuser-desc' => "جوڑدا اے اک [[Special:Renameuser|خاص صفہ]] اک ورتن والے نوں ہور ناں دین لئی ( ''renameuser'' حق دی لوڑ اے۔)",
+	'renameuserold' => 'ہن والا ورتن والا ناں:',
+	'renameusernew' => 'نواں ورتن والا ناں:',
+	'renameuserreason' => 'ہور ناں رکھن دی وجہ:',
+	'renameusermove' => 'ورتن تے گل بات صفے نوں تے نال دے نکیاں صفیاں نوں نویں ناں ول لے چلو۔',
+	'renameusersuppress' => 'ایس نویں ناں نال ریڈائرکٹ ناں بناؤ۔',
+	'renameuserreserve' => 'پرانے ورتن والے ناں نوں اگے ورتے جان توں روکو',
+	'renameuserwarnings' => 'خبردار',
+	'renameuserconfirm' => 'ہاں، ورتن والے دا فیر ناں رکھو',
+	'renameusersubmit' => 'پیش کرو',
+	'renameusererrordoesnotexist' => 'ورتنوالا "<نوکی>$1</نوکی>" ہے ای نئیں۔',
+	'renameusererrorexists' => 'ورتنوالا "<نوکی>$1</نوکی>" پہلے ای ہیگا اے۔',
+	'renameusererrorinvalid' => 'ورتن ناں "<نوکی>$1</نوکی>" نئیں چل سکدا۔',
+	'renameuser-error-request' => 'گل منن چ مسلہ اے۔ مہربانی کرکے پچھے جاؤ تے فیر کوشش کرو۔',
+	'renameuser-error-same-user' => 'تسیں فیر پہلے وانگوں اک ورتن والے دا ناں فیر نئیں رکھ سکدے۔',
+	'renameusersuccess' => 'ورتن والا "<nowiki>$1</nowiki>" دا ناں بدل کے "<nowiki>$1</nowiki>" رکھ دتا گیا اے۔',
+	'renameuser-page-exists' => 'صفہ $1 پہلے ای ہیگا اے تے ایدے تے اپنے آپ نئیں لکھیا جاسکدا۔',
+	'renameuser-page-moved' => 'صفہ $1 نوں $2 ول لجایا گیا اے۔',
+	'renameuser-page-unmoved' => 'صفہ $1 ، $2 ول نئیں لجایا جاسکدا۔',
+	'renameuserlogpage' => 'ورتن ہور ناں لاگ',
+	'renameuserlogpagetext' => 'ورتن ناواں چ تبدیلیاں دی اے لاگ اے۔',
+	'renameuserlogentry' => '$1 بدل کے "$2" رکھیا گیا۔',
+	'renameuser-log' => '{{انیک:$1|1 تبدیلی|$1 تبدیلیاں}}. وجہ: $2',
+	'renameuser-move-log' => 'اپنے آپ صفے ٹرے "[[ورتن والا:$1|$1]]" دا ناں "[[ورتن والا:$2|$2]]" پلٹدیاں ہویاں',
+	'right-renameuser' => 'ورتن والے دا ہور ناں',
+	'renameuser-renamed-notice' => 'ایس ورتن والے دا ناں بدلیا گیا اے۔
+ناں بدلن والی لاگ اتے پتے لئی تھلے دتی گئی اے۔',
+);
+
+/** Pashto (پښتو)
+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
+ */
+$messages['ps'] = array(
+	'renameuser' => 'کارن-نوم بدلول',
+	'renameuser-linkoncontribs' => 'د کارن نوم بدلول',
+	'renameuser-linkoncontribs-text' => 'د دې کارن نوم بدلول',
+	'renameuserold' => 'اوسنی کارن-نوم:',
+	'renameusernew' => 'نوی کارن-نوم:',
+	'renameuserreason' => 'د نوم د بدلون سبب:',
+	'renameuserwarnings' => 'ګواښنې:',
+	'renameuserconfirm' => 'هو، کارن-نوم بدلوم',
+	'renameusersubmit' => 'سپارل',
+	'renameusererrordoesnotexist' => 'د "<nowiki>$1</nowiki>" په نامه کوم کارن نه شته.',
+	'renameusererrorexists' => 'د "<nowiki>$1</nowiki>" په نامه يو کارن له پخوا نه شته.',
+	'renameusererrorinvalid' => 'د "<nowiki>$1</nowiki>" کارن نوم سم نه دی.',
+	'renameuser-error-request' => 'د غوښتنې په ترلاسه کولو کې يوه ستونزه راپېښه شوه.
+مهرباني وکړی بېرته پرشا ولاړ شی او يو ځل بيا پرې کوښښ وکړی.',
+	'renameuser-page-moved' => 'د $1 مخ $2 ته ولېږدل شو.',
+	'renameuserlogpage' => 'د کارن-نوم يادښت',
+	'renameuserlogentry' => 'د $1 نوم، "$2" ته بدل شو',
+	'renameuser-log' => '{{PLURAL:$1|1 سمون|$1 سمونونه}}. سبب: $2',
+	'right-renameuser' => 'کارن-نومونه بدلول',
+);
+
+/** Portuguese (Português)
+ * @author 555
+ * @author Giro720
+ * @author Hamilton Abreu
+ * @author Malafaya
+ * @author Waldir
+ */
+$messages['pt'] = array(
+	'renameuser' => 'Alterar o nome do utilizador',
+	'renameuser-linkoncontribs' => 'alterar nome do utilizador',
+	'renameuser-linkoncontribs-text' => 'Alterar o nome deste utilizador',
+	'renameuser-desc' => "[[Special:Renameuser|Página especial]] para alterar o nome de um utilizador (requer o privilégio ''renameuser'')",
+	'renameuserold' => 'Nome de utilizador actual:',
+	'renameusernew' => 'Novo nome de utilizador:',
+	'renameuserreason' => 'Motivo da alteração de nome:',
+	'renameusermove' => 'Mover as páginas e subpáginas de utilizador e as respectivas discussões para o novo nome',
+	'renameusersuppress' => 'Não criar redireccionamentos para o novo nome',
+	'renameuserreserve' => 'Impedir novos usos do antigo nome de utilizador',
+	'renameuserwarnings' => 'Alertas:',
+	'renameuserconfirm' => 'Sim, renomeie o utilizador',
+	'renameusersubmit' => 'Enviar',
+	'renameusererrordoesnotexist' => 'O utilizador "<nowiki>$1</nowiki>" não existe.',
+	'renameusererrorexists' => 'Já existe um utilizador "<nowiki>$1</nowiki>".',
+	'renameusererrorinvalid' => 'O nome de utilizador "<nowiki>$1</nowiki>" é inválido.',
+	'renameuser-error-request' => 'Houve um problema ao receber este pedido.
+Retorne e tente de novo.',
+	'renameuser-error-same-user' => 'Não é possível alterar o nome de um utilizador para o nome anterior.',
+	'renameusersuccess' => 'O nome do utilizador "<nowiki>$1</nowiki>" foi alterado para "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Já existe a página $1. Não é possível sobrescrever automaticamente.',
+	'renameuser-page-moved' => 'A página $1 foi movida para $2.',
+	'renameuser-page-unmoved' => 'Não foi possível mover a página $1 para $2.',
+	'renameuserlogpage' => 'Registo de alteração do nome de utilizadores',
+	'renameuserlogpagetext' => 'Este é um registo de alterações efectuadas a nomes de utilizadores.',
+	'renameuserlogentry' => 'mudou nome $1 para "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 edição|$1 edições}}. Motivo: $2',
+	'renameuser-move-log' => 'Página movida automaticamente ao alterar o nome do utilizador "[[User:$1|$1]]" para "[[User:$2|$2]]"',
+	'right-renameuser' => 'Alterar nomes de utilizadores',
+	'renameuser-renamed-notice' => 'Este nome de utilizador foi alterado.
+É apresentado abaixo o registo de alteração do nome de utilizadores.',
+);
+
+/** Brazilian Portuguese (Português do Brasil)
+ * @author 555
+ * @author Giro720
+ */
+$messages['pt-br'] = array(
+	'renameuser' => 'Renomear usuário',
+	'renameuser-linkoncontribs' => 'renomear usuário',
+	'renameuser-linkoncontribs-text' => 'excluir este usuário',
+	'renameuser-desc' => "Adiciona uma [[Special:Renameuser|página especial]] para renomear um usuário (requer privilégio ''renameuser'')",
+	'renameuserold' => 'Nome de usuário atual:',
+	'renameusernew' => 'Novo nome de usuário:',
+	'renameuserreason' => 'Motivo da alteração de nome:',
+	'renameusermove' => 'Mover as páginas de usuário, páginas de discussão de usuário e sub-páginas para o novo nome',
+	'renameusersuppress' => 'Não criar redirecionamentos para o novo nome',
+	'renameuserreserve' => 'Impedir novos usos do antigo nome de usuário',
+	'renameuserwarnings' => 'Alertas:',
+	'renameuserconfirm' => 'Sim, renomeie o usuário',
+	'renameusersubmit' => 'Enviar',
+	'renameusererrordoesnotexist' => 'Não existe um usuário "<nowiki>$1</nowiki>".',
+	'renameusererrorexists' => 'Já existe um usuário "<nowiki>$1</nowiki>".',
+	'renameusererrorinvalid' => 'O nome de usuário "<nowiki>$1</nowiki>" é inválido.',
+	'renameuser-error-request' => 'Houve um problema ao receber este pedido.
+Retorne e tente novamente.',
+	'renameuser-error-same-user' => 'Não é possível renomear um usuário para o nome anterior.',
+	'renameusersuccess' => 'O usuário "<nowiki>$1</nowiki>" foi renomeado para "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Já existe a página $1. Não é possível sobrescrever automaticamente.',
+	'renameuser-page-moved' => 'A página $1 foi movida com sucesso para $2.',
+	'renameuser-page-unmoved' => 'Não foi possível mover a página $1 para $2.',
+	'renameuserlogpage' => 'Registro de renomeação de usuários',
+	'renameuserlogpagetext' => 'Este é um registro de alterações efetuadas em nomes de usuários.',
+	'renameuserlogentry' => 'renomeou $1 para "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 edição|$1 edições}}. Motivo: $2',
+	'renameuser-move-log' => 'Páginas foram movidas automaticamente ao renomear o usuário "[[User:$1|$1]]" para "[[User:$2|$2]]"',
+	'right-renameuser' => 'Renomear usuários',
+	'renameuser-renamed-notice' => 'Este usuário foi renomeado.
+O registro de renomeação é fornecido abaixo para referência.',
+);
+
+/** Quechua (Runa Simi)
+ * @author AlimanRuna
+ */
+$messages['qu'] = array(
+	'renameuser' => 'Ruraqpa sutinta hukchay',
+	'renameuser-linkoncontribs' => 'ruraqpa sutinta hukchay',
+	'renameuser-linkoncontribs-text' => 'Kay ruraqpa sutinta hukchay',
+	'renameuser-desc' => "[[Special:Renameuser|Sapaq p'anqatam]] yapan ruraqpa sutinta hukchanapaq (''renameuser'' hayñi kana tiyan)",
+	'renameuserold' => 'Kunan ruraqpa sutin:',
+	'renameusernew' => 'Musuq ruraqpa sutin:',
+	'renameuserreason' => 'Imarayku ruraqpa sutinta hukchasqa:',
+	'renameusermove' => "Ruraqpa p'anqanta, rimachinanta (urin p'anqankunatapas) musuq sutinman astay",
+	'renameusersuppress' => 'Musuq sutiman ama pusapunata kamariychu',
+	'renameuserreserve' => "Ruraqpa mawk'a sutinta qhipaq pacha suti kanamanta hark'ay",
+	'renameuserwarnings' => 'Yuyampaykuna:',
+	'renameuserconfirm' => 'Arí, ruraqpa sutinta hukchay',
+	'renameusersubmit' => 'Kachay',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" sutiyuq ruraqqa manam kanchu.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" sutiyuq ruraqqa kachkanñam.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" nisqa sutiqa manam allinchu.',
+	'renameuser-error-request' => 'Manam atinichu mañasqaykita chaskiyta.  Ama hina kaspa, ñawpaqman kutimuspa musuqmanta ruraykachay.',
+	'renameuser-error-same-user' => 'Manam atinkichu ruraqpa sutinta ñawpaq suti hinalla sutinman hukchayta.',
+	'renameusersuccess' => 'Ruraqpa "<nowiki>$1</nowiki>" nisqa sutinqa "<nowiki>$2</nowiki>" nisqa sutinman hukchasqañam.',
+	'renameuser-page-exists' => '"<nowiki>$1</nowiki>" sutiyuq p\'anqaqa kachkanñam. Manam atinallachu kikinmanta huknachay.',
+	'renameuser-page-moved' => '"<nowiki>$1</nowiki>" ñawpa sutiyuq ruraqpa p\'anqanqa "<nowiki>$2</nowiki>" nisqa musuq p\'anqanman astasqañam.',
+	'renameuser-page-unmoved' => 'Manam atinichu "<nowiki>$1</nowiki>" ñawpa sutiyuq ruraqpa p\'anqanta "<nowiki>$2</nowiki>" nisqa musuq p\'anqanman astayta.',
+	'renameuserlogpage' => "Ruraqpa sutin hukchay hallch'a",
+	'renameuserlogpagetext' => "Kayqa ruraqkunap sutinkunata hukchaymanta hallch'am",
+	'renameuserlogentry' => '$1-pa sutinta "$2" sutiman hukchasqa',
+	'renameuser-log' => "{{PLURAL:$1|1 llamk'apusqa|$1 llamk'apusqakuna}}, kayrayku: $2",
+	'renameuser-move-log' => '"[[User:$1|$1]]" ruraqpa sutinta "[[User:$2|$2]]" sutiman hukchaspa kikinmanta ruraqpa p\'anqatapas astan',
+	'right-renameuser' => 'Ruraqpa sutinkunata hukchay',
+	'renameuser-renamed-notice' => "Kay ruraqpa sutinqa hukchasqañam.
+Kay qatiqpiqa hukchay hallch'atam rikunki.",
+);
+
+/** Romani (Romani)
+ * @author Desiphral
+ */
+$messages['rmy'] = array(
+	'renameusersubmit' => 'De le jeneske aver nav',
+);
+
+/** Romanian (Română)
+ * @author Cin
+ * @author Emily
+ * @author Firilacroco
+ * @author KlaudiuMihaila
+ * @author Memo18
+ * @author Minisarm
+ * @author Stelistcristi
+ */
+$messages['ro'] = array(
+	'renameuser' => 'Redenumire utilizator',
+	'renameuser-linkoncontribs' => 'redenumirea utilizatorului',
+	'renameuser-linkoncontribs-text' => 'Redenumeşte acest utilizator',
+	'renameuser-desc' => "Adaugă o [[Special:Renameuser|pagină specială]] pentru a redenumi un utilizator (necesită drept de ''renameuser'')",
+	'renameuserold' => 'Numele de utilizator existent:',
+	'renameusernew' => 'Noul nume de utilizator:',
+	'renameuserreason' => 'Motivul schimbării numelui:',
+	'renameusermove' => 'Mută pagina de utilizator și pagina de discuții (și subpaginile lor) la noul nume',
+	'renameusersuppress' => 'Nu crea redirecționări către noul nume',
+	'renameuserreserve' => 'Blochează vechiul nume de utilizator pentru utilizări viitoare',
+	'renameuserwarnings' => 'Avertizări:',
+	'renameuserconfirm' => 'Da, redenumește utilizatorul',
+	'renameusersubmit' => 'Trimite',
+	'renameusererrordoesnotexist' => 'Utilizatorul „<nowiki>$1</nowiki>” nu există.',
+	'renameusererrorexists' => 'Utilizatorul „<nowiki>$1</nowiki>” există deja.',
+	'renameusererrorinvalid' => 'Numele de utilizator „<nowiki>$1</nowiki>” este invalid.',
+	'renameuser-error-request' => 'Am întâmpinat o problemă în procesul de recepționare a cererii.
+Vă rugăm să vă întoarceți și să reîncercați.',
+	'renameuser-error-same-user' => 'Nu puteți redenumi un utilizator la același nume ca și înainte.',
+	'renameusersuccess' => 'Utilizatorul „$1” a fost redenumit în „$2”',
+	'renameuser-page-exists' => 'Pagina $1 există deja și nu poate fi suprascrisă automat.',
+	'renameuser-page-moved' => 'Pagina $1 a fost redenumită în $2.',
+	'renameuser-page-unmoved' => 'Pagina $1 nu poate fi redenumită în $2.',
+	'renameuserlogpage' => 'Jurnal redenumiri utilizatori',
+	'renameuserlogpagetext' => 'Acesta este un jurnal al modificărilor de nume de utilizator',
+	'renameuserlogentry' => 'a redenumit $1 în „$2”',
+	'renameuser-log' => '{{PLURAL:$1|o contribuție|$1 contribuții}}. Motiv: $2',
+	'renameuser-move-log' => 'Pagină mutată automat la redenumirea utilizatorului de la „[[User:$1|$1]]” la „[[User:$2|$2]]”',
+	'right-renameuser' => 'Redenumește utilizatori',
+	'renameuser-renamed-notice' => 'Acestui utilizator i-a fost schimbat numele.
+Jurnalul redenumirilor este furnizat mai jos pentru referință.',
+);
+
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'renameuser' => "Renomene l'utende",
+	'renameuser-linkoncontribs' => "renomene l'utende",
+	'renameuser-linkoncontribs-text' => 'Renomene quiste utende',
+	'renameuser-desc' => "Aggiunge 'na [[Special:Renameuser|pàgena speciale]] pe renomena 'n'utende (abbesogne de le deritte ''renameuser'')",
+	'renameuserold' => "Nome de l'utende de mò:",
+	'renameusernew' => "Nome de l'utende nuève:",
+	'renameuserreason' => "Mutive d'u cangiamende:",
+	'renameusermove' => "Spuèste utende e pàgene de le 'ngazzaminde (e le sottopàggene) a 'u nome nuève",
+	'renameusersuppress' => "Nò ccrejà ridirezionaminde sus a 'u nome nuève",
+	'renameuserreserve' => "Blocche 'u nome utende vicchije da le ause future",
+	'renameuserwarnings' => 'Avvise:',
+	'renameuserconfirm' => "Sine, cange 'u nome a l'utende",
+	'renameusersubmit' => 'Conferme',
+	'renameusererrordoesnotexist' => 'L\'utende "<nowiki>$1</nowiki>" non g\'esiste.',
+	'renameusererrorexists' => 'L\'utende "<nowiki>$1</nowiki>" esiste ggià.',
+	'renameusererrorinvalid' => '\'U nome utende "<nowiki>$1</nowiki>" non è valide.',
+	'renameuser-error-request' => "Stave 'nu probbleme cu 'a ricezione d'a richieste.<br />
+Pe piacere tuèrne rrete e pruève 'n'otra vote.",
+	'renameuser-error-same-user' => "Tu non ge puè renomenà 'n'utende cu 'u stesse nome d'apprime.",
+	'renameusersuccess' => 'L\'utende "<nowiki>$1</nowiki>" ha cangiate \'u nome jndr\'à "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => "'A pàgene $1 già esiste e non ge se pò automaticamende sovrascrivere.",
+	'renameuser-page-moved' => "'A pàgene $1 ha state spustate sus a $2.",
+	'renameuser-page-unmoved' => "'A pàgene $1 non ge pò essere spustate sus a $2.",
+	'renameuserlogpage' => 'Archivije de le renomenaminde de le utinde',
+	'renameuserlogpagetext' => "Quiste jè l'archivije de le cangiaminde de le nome de l'utinde.",
+	'renameuserlogentry' => 'renomenate da $1 a "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 cangiamende|$1 cangiaminde}}. Mutive: $2',
+	'renameuser-move-log' => 'Pàgena spustate automaticamende quanne è renomenate l\'utende "[[User:$1|$1]]" jndr\'à "[[User:$2|$2]]"',
+	'right-renameuser' => "Rennomene l'utinde",
+	'renameuser-renamed-notice' => "Stu utende ha state renomenate.
+L'archivije de le renomenaziune 'u iacchie aqquà sotte cumme referimende.",
+);
+
+/** Russian (Русский)
+ * @author Ahonc
+ * @author EugeneZelenko
+ * @author Innv
+ * @author KPu3uC B Poccuu
+ * @author Kaganer
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'renameuser' => 'Переименовать участника',
+	'renameuser-linkoncontribs' => 'переименовать участника',
+	'renameuser-linkoncontribs-text' => 'Переименовать этого участника',
+	'renameuser-desc' => 'Добавляет [[Special:Renameuser|возможность]] переименования пользователей (требуется право <code>renameuser</code>)',
+	'renameuserold' => 'Имя в настоящий момент:',
+	'renameusernew' => 'Новое имя:',
+	'renameuserreason' => 'Причина переименования:',
+	'renameusermove' => 'Переименовать также страницу участника, личное обсуждение и их подстраницы',
+	'renameusersuppress' => 'Не создавать перенаправлений на новое имя',
+	'renameuserreserve' => 'Зарезервировать старое имя участника для использования в будущем',
+	'renameuserwarnings' => 'Предупреждения:',
+	'renameuserconfirm' => 'Да, переименовать участника',
+	'renameusersubmit' => 'Выполнить',
+	'renameusererrordoesnotexist' => 'Участник с именем «<nowiki>$1</nowiki>» не зарегистрирован.',
+	'renameusererrorexists' => 'Участник с именем «<nowiki>$1</nowiki>» уже зарегистрирован.',
+	'renameusererrorinvalid' => 'Недопустимое имя участника «<nowiki>$1</nowiki>»',
+	'renameuser-error-request' => 'Возникли затруднения с получением запроса. Пожалуйста, вернитесь назад и повторите ещё раз.',
+	'renameuser-error-same-user' => 'Вы не можете переименовать участника в тоже имя, что и было раньше.',
+	'renameusersuccess' => 'Участник «<nowiki>$1</nowiki>» был переименован в «<nowiki>$2</nowiki>».',
+	'renameuser-page-exists' => 'Страница $1 уже существует и не может быть перезаписана автоматически.',
+	'renameuser-page-moved' => 'Страница $1 была переименована в $2.',
+	'renameuser-page-unmoved' => 'Страница $1 не может быть переименована в $2.',
+	'renameuserlogpage' => 'Журнал переименований участников',
+	'renameuserlogpagetext' => 'Это журнал произведённых переименований зарегистрированных участников.',
+	'renameuserlogentry' => 'переименовал «$1» в «$2»',
+	'renameuser-log' => '$1 {{PLURAL:$1|правка|правки|правок}}. Причина: $2',
+	'renameuser-move-log' => 'Автоматически в связи с переименованием учётной записи «[[User:$1|$1]]» в «[[User:$2|$2]]»',
+	'right-renameuser' => 'переименование участников',
+	'renameuser-renamed-notice' => 'Этот участник был переименован.
+Ниже для справки приведён журнал переименований.',
+);
+
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'renameuser' => 'Переменоватихоснователя',
+	'renameuser-linkoncontribs' => 'переменовати хоснователя',
+	'renameuser-linkoncontribs-text' => 'Переменовати того хоснователя',
+	'renameuser-desc' => 'Придасть [[Special:Renameuser|шпеціалну сторінку]] про переменованя хоснователя (треба права "renameuser")',
+	'renameuserold' => 'Актуалне мено:',
+	'renameusernew' => 'Нове мено:',
+	'renameuserreason' => 'Причіна переменованя:',
+	'renameusermove' => 'Переменовати тыж сторінкы хоснователя, сторінкы діскузії і їх підсторінкы',
+	'renameusersuppress' => 'Не створюйте напрямлїня на нову назву',
+	'renameuserreserve' => 'Блоковати нову реґістрацію старого мена хоснователя',
+	'renameuserwarnings' => 'Варованя:',
+	'renameuserconfirm' => 'Гей, переменовати хоснователя',
+	'renameusersubmit' => 'Выконати',
+	'renameusererrordoesnotexist' => 'Хоснователь з іменом „<nowiki>$1</nowiki>“ не єствує',
+	'renameusererrorexists' => 'Хоснователь з іменом „<nowiki>$1</nowiki>“ уж єствує',
+	'renameusererrorinvalid' => 'Хоснователське імя „<nowiki>$1</nowiki>“ ся не дасть хосновати',
+	'renameuser-error-request' => 'Почас приїманя пожадавкы дішло ку хыбі. Вернийте ся і спробуйте то знову.',
+	'renameuser-error-same-user' => 'Нове імя хоснователя є тото саме як дотеперїшнє.',
+	'renameusersuccess' => 'Хоснователь „<nowiki>$1</nowiki>“ быв успішно переменованый на „<nowiki>$2</nowiki>“',
+	'renameuser-page-exists' => 'Сторінка $1 уж екзістує і не може быти автоматічно переписана.',
+	'renameuser-page-moved' => 'Сторінка $1 была переменована на $2.',
+	'renameuser-page-unmoved' => 'Сторінка $1 не може быти переменована на $2.',
+	'renameuserlogpage' => 'Лоґ переменовань хоснователїв',
+	'renameuserlogpagetext' => 'Тото є протокол  переменовань хоснователїв',
+	'renameuserlogentry' => 'переменовав $1 на „$2“',
+	'renameuser-log' => '{{PLURAL:$1|1 едітованя|$1 едітовань|$1 едітовань}}. Причіна: $2',
+	'renameuser-move-log' => 'Автоматічне переменованя сторінкы почас переменованя хоснователя „[[User:$1|$1]]“ на „[[User:$2|$2]]“',
+	'right-renameuser' => 'Переменованя хоснователїв',
+	'renameuser-renamed-notice' => 'Тот хоснователь быв переменованый.
+Про перегляд є ниже указаный выпис з лоґу переменовань хоснователїв.',
+);
+
+/** Sanskrit (संस्कृतम्)
+ * @author Ansumang
+ */
+$messages['sa'] = array(
+	'renameuserwarnings' => 'चेतावनी:',
+);
+
+/** Sakha (Саха тыла)
+ * @author HalanTul
+ */
+$messages['sah'] = array(
+	'renameuser' => 'Кыттааччы аатын уларыт',
+	'renameuser-linkoncontribs' => 'кыттааччы аатын уларытыы',
+	'renameuser-linkoncontribs-text' => 'Бу кыттааччы аатын уларыт',
+	'renameuser-desc' => "Кыттааччы аатын уларытыы (''renameuser'' бырааба наада)",
+	'renameuserold' => 'Билиҥҥи аата:',
+	'renameusernew' => 'Саҥа аата:',
+	'renameuserreason' => 'Аатын уларыппыт төрүөтэ:',
+	'renameusermove' => 'Кыттааччы аатын кытта кэпсэтэр сирин, уонна атын сирэйдэрин ааттарын уларыт',
+	'renameusersuppress' => 'Саҥа аакка утаарыылары оҥорума',
+	'renameuserreserve' => 'Кыттааччы урукку аатын кэлин туттарга анаан хааллар',
+	'renameuserwarnings' => 'Сэрэтиилэр:',
+	'renameuserconfirm' => 'Сөп, аатын уларыт',
+	'renameusersubmit' => 'Толор',
+	'renameusererrordoesnotexist' => 'Маннык ааттаах кыттааччы «<nowiki>$1</nowiki>» бэлиэтэммэтэх.',
+	'renameusererrorexists' => 'Маннык ааттаах кыттааччы "<nowiki>$1</nowiki>" номнуо баар.',
+	'renameusererrorinvalid' => 'Маннык аат "<nowiki>$1</nowiki>" көҥуллэммэт.',
+	'renameuser-error-request' => 'Запрос тутуута моһуоктанна. Бука диэн төнүн уонна хатылаа.',
+	'renameuser-error-same-user' => 'Кыттааччы аатын урукку аатыгар уларытар табыллыбат.',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" кыттааччы мантан ыла "<nowiki>$2</nowiki>" диэн ааттанна.',
+	'renameuser-page-exists' => '$1 сирэй номнуо баар онон аптамаатынан хат суруллар кыаҕа суох.',
+	'renameuser-page-moved' => '$1 сирэй маннык ааттаммыт $2.',
+	'renameuser-page-unmoved' => '$1 сирэй маннык $2 ааттанар кыаҕа суох.',
+	'renameuserlogpage' => 'Кыттааччылар ааттарын уларытыыларын сурунаала',
+	'renameuserlogpagetext' => 'Бу бэлиэтэммит кыттааччылар ааттарын уларытыыларын сурунаала',
+	'renameuserlogentry' => '$1 аатын манныкка уларытта "$2"',
+	'renameuser-log' => '{{PLURAL:$1|Биирдэ|$1 төгүл}} уларыйбыт. Төрүөтэ: $2',
+	'renameuser-move-log' => '«[[User:$1|$1]]» аата «[[User:$2|$2]]» буолбутунан аптамаатынан',
+	'right-renameuser' => 'Кыттааччылар ааттарын уларытыы',
+	'renameuser-renamed-notice' => 'Бу кыттааччы аата уларыйбыт.
+Аллара аат уларыйыытын сурунаала көстөр.',
+);
+
+/** Sardinian (Sardu)
+ * @author Andria
+ * @author Marzedu
+ */
+$messages['sc'] = array(
+	'renameusernew' => 'Nou nùmene usuàriu:',
+);
+
+/** Sicilian (Sicilianu)
+ * @author Santu
+ */
+$messages['scn'] = array(
+	'renameuser' => 'Rinòmina utenti',
+	'renameuser-desc' => "Funzioni pi rinuminari n'utenti (addumanna li diritti di ''renameuser'')",
+	'renameuserold' => 'Nomu utenti dô prisenti:',
+	'renameusernew' => 'Novu nomu utenti:',
+	'renameuserreason' => 'Mutivu dû caciu di nomu',
+	'renameusermove' => 'Rinòmina macari la pàggina utenti, la pàggina di discussioni e li suttapàggini',
+	'renameuserreserve' => 'Sarva lu vecchiu utenti pi futuri usi',
+	'renameuserwarnings' => 'Avvisi:',
+	'renameuserconfirm' => "Si, rinòmina st'utenti",
+	'renameusersubmit' => 'Manna',
+	'renameusererrordoesnotexist' => 'L\'utenti "<nowiki>$1</nowiki>" nun esisti',
+	'renameusererrorexists' => 'L\'utenti "<nowiki>$1</nowiki>" c\'è già',
+	'renameusererrorinvalid' => 'Lu nomu utenti "<nowiki>$1</nowiki>" nun è vàlidu',
+	'renameuser-error-request' => "Si virificau nu prubbrema nnô ricivimentu dâ dumanna. Turnari arredi e pruvari n'àutra vota.",
+	'renameuser-error-same-user' => "Nun si pò ri-numinari n'utenti cô stissu nomu c'avìa già.",
+	'renameusersuccess' => 'L\'utenti "<nowiki>$1</nowiki>" vinni ri-numinatu \'n "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => "La pàggina $1 c'è già; mpussìbbili suprascrivìrila autumaticamenti.",
+	'renameuser-page-moved' => 'La pàggina $1 vinni spustata a $2.',
+	'renameuser-page-unmoved' => 'Mpussìbbili mòviri la pàggina $1 a $2.',
+	'renameuserlogpage' => 'Utenti ri-numinati',
+	'renameuserlogpagetext' => "Di sècutu sunnu elencati li ri-numinazzioni di l'utenti.",
+	'renameuserlogentry' => 'hà ri-numinatu $1 \'n "$2"',
+	'renameuser-log' => 'Ca havi {{PLURAL:$1|nu cuntribbutu|$1 cuntribbuti}}. Mutivu: $2',
+	'renameuser-move-log' => 'Spustamentu autumàticu dâ pàggina - utenti ri-numinatu di "[[User:$1|$1]]" a "[[User:$2|$2]]"',
+	'right-renameuser' => "Ri-nòmina l'utenti",
+);
+
+/** Samogitian (Žemaitėška)
+ * @author Hugo.arg
+ */
+$messages['sgs'] = array(
+	'renameuserold' => 'Esams nauduotuojė vards:',
+	'renameusernew' => 'Naus nauduotuojė vards:',
+	'renameusersuccess' => 'Nauduotuos "<nowiki>$1</nowiki>" bova parvadėnts i "<nowiki>$2</nowiki>".',
+);
+
+/** Serbo-Croatian (Srpskohrvatski)
+ * @author OC Ripper
+ */
+$messages['sh'] = array(
+	'renameusersubmit' => 'Unesi',
+);
+
+/** Sinhala (සිංහල)
+ * @author Budhajeewa
+ * @author තඹරු විජේසේකර
+ * @author නන්දිමිතුරු
+ * @author ශ්වෙත
+ */
+$messages['si'] = array(
+	'renameuser' => 'පරිශීලකයා යළි-නම්කරන්න',
+	'renameuser-linkoncontribs' => 'පරිශීලකයා යළි-නම්කරන්න',
+	'renameuser-linkoncontribs-text' => 'මෙම පරිශීලකයා ප්‍රති-නම් කරන්න',
+	'renameuser-desc' => "පරිශීලකයෙක් යළි-නම්කරනු වස් [[Special:Renameuser|විශේෂ පිටුවක්]] එක් කරන්න (''renameuser'' අයිතිය අවශ්‍යයි)",
+	'renameuserold' => 'වත්මන් පරිශීලක නාමය:',
+	'renameusernew' => 'නව පරිශීලක නාමය:',
+	'renameuserreason' => 'යළි-නම්කිරීමට හේතුව:',
+	'renameusermove' => 'පරිශීලක හා සාකච්ඡා පිටු   (හා  ඒවායේ උපපිටු) නව නම වෙතට ගෙන යන්න',
+	'renameusersuppress' => 'යළි යොමුවන් නම නාමයේ සැකසීමෙන් වළකින්න.',
+	'renameuserreserve' => 'පැරණි පරිශීලක නම අනාගත භාවිතයෙන් වාරණය කරන්න',
+	'renameuserwarnings' => 'අවවාදයන්:',
+	'renameuserconfirm' => 'ඔව්, පරිශීලකයා යළි-නම්කරන්න',
+	'renameusersubmit' => 'යොමන්න',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" පරිශීලකයා නොපවතී.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" පරිශීලකයා දැනටමත් පවතියි.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" පරිශීලක නාමය අනීතිකයි.',
+	'renameuser-error-request' => 'ඉල්ලීම ලැබීමේ දෝෂයක් හට ගැනිනි.
+කරුණාකර ආපසු ගොස් නැවත උත්සාහ කරන්න.',
+	'renameuser-error-same-user' => 'ඔබට පරිශීලකයෙක් පෙර තිබූ නමටම ප්‍රතිනම්කළ නොහැක.',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" පරිශීලකයා "<nowiki>$2</nowiki>" වෙත ප්‍රතිනම් කෙරිනි.',
+	'renameuser-page-exists' => '$1 පිටුව දැනටමත් පවතින අතර, එය ස්වයංක්‍රීයව අධිලිවීමකට භාජනය කල නොහැක.',
+	'renameuser-page-moved' => ' $1 පිටුව $2 වෙත ගෙනයන ලදි.',
+	'renameuser-page-unmoved' => ' $1 පිටුව  $2 වෙත ගෙනයා නොහැක.',
+	'renameuserlogpage' => 'පරිශීලක ප්‍රතිනම්කෙරුම් ලොගය',
+	'renameuserlogpagetext' => 'මෙය පරිශීලක නාම වෙනස්වීම් පිළිබඳ ලඝු-සටහනකි.',
+	'renameuserlogentry' => '$1, "$2" ලෙස ප්‍රතිනම් කෙරිනි',
+	'renameuser-log' => '{{PLURAL:$1|එක් සංස්කරණයක්|සංස්කරණ $1 ක්}}. හේතුව: $2',
+	'renameuser-move-log' => 'පරිශීලක "[[User:$1|$1]]", "[[User:$2|$2]]" වෙත ප්‍රතිනම්කරන අතරතුර පිටුව ස්‍වයංක්‍රීයව ගෙනයන ලදී',
+	'right-renameuser' => 'පරිශීලකයන් ප්‍රතිනම් කරන්න',
+	'renameuser-renamed-notice' => 'මෙම පරිශීලකයා ප්‍රතිනම්කර ඇත.
+ප්‍රතිනම්කෙරුම් ලඝු-සටහන පහත දක්වා ඇත.',
+);
+
+/** Slovak (Slovenčina)
+ * @author Helix84
+ * @author Jkjk
+ */
+$messages['sk'] = array(
+	'renameuser' => 'Premenovať používateľa',
+	'renameuser-linkoncontribs' => 'premenovať používateľa',
+	'renameuser-linkoncontribs-text' => 'Premenovať tohto používateľa',
+	'renameuser-desc' => "Premenovať používateľa (vyžaduje právo ''renameuser'')",
+	'renameuserold' => 'Súčasné používateľské meno:',
+	'renameusernew' => 'Nové používateľské meno:',
+	'renameuserreason' => 'Dôvod premenovania:',
+	'renameusermove' => 'Presunúť používateľské a diskusné stránky (a ich podstránky) na nový názov',
+	'renameusersuppress' => 'Nevytvárať presmerovania na nový názov',
+	'renameuserreserve' => 'Vyhradiť staré používateľské meno (zabrániť ďalšiemu použitiu)',
+	'renameuserwarnings' => 'Upozornenia:',
+	'renameuserconfirm' => 'Áno, premenovať používateľa',
+	'renameusersubmit' => 'Odoslať',
+	'renameusererrordoesnotexist' => 'Používateľ „<nowiki>$1</nowiki>“  neexistuje',
+	'renameusererrorexists' => 'Používateľ „<nowiki>$1</nowiki>“ už existuje',
+	'renameusererrorinvalid' => 'Používateľské meno „<nowiki>$1</nowiki>“ je neplatné',
+	'renameuser-error-request' => 'Pri prijímaní vašej požiadavky nastal problém. Prosím, vráťte sa a skúste to znova.',
+	'renameuser-error-same-user' => 'Nemôžete premenovať používateľa na rovnaké meno ako mal predtým.',
+	'renameusersuccess' => 'Používateľ „<nowiki>$1</nowiki>“ bol premenovaný na „<nowiki>$2</nowiki>“',
+	'renameuser-page-exists' => 'Stránka $1 už existuje a nie je možné ju automaticky prepísať.',
+	'renameuser-page-moved' => 'Stránka $1 bola presunutá na $2.',
+	'renameuser-page-unmoved' => 'Stránku $1 nebolo možné presunúť na $2.',
+	'renameuserlogpage' => 'Záznam premenovaní používateľov',
+	'renameuserlogpagetext' => 'Toto je záznam premenovaní používateľov',
+	'renameuserlogentry' => 'premenoval používateľa $1 na „$2”',
+	'renameuser-log' => 'mal {{PLURAL:$1|1 úpravu|$1 úpravy|$1 úprav}}. Dôvod: $2',
+	'renameuser-move-log' => 'Automaticky presunutá stránka počas premenovania používateľa „[[User:$1|$1]]“ na „[[User:$2|$2]]“',
+	'right-renameuser' => 'Premenovávať používateľov',
+	'renameuser-renamed-notice' => 'Tento používateľ bol premenovaný.
+Dolu nájdete záznam premenovaní.',
+);
+
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'renameuser' => 'Preimenovanje uporabnika',
+	'renameuser-linkoncontribs' => 'preimenuj uporabnika',
+	'renameuser-linkoncontribs-text' => 'Preimenuj tega uporabnika',
+	'renameuser-desc' => "Doda [[Special:Renameuser|posebno stran]] za preimenovanje uporabnika (potrebna je pravica ''renameuser'')",
+	'renameuserold' => 'Trenutno uporabniško ime:',
+	'renameusernew' => 'Novo uporabniško ime:',
+	'renameuserreason' => 'Razlog preimenovanja:',
+	'renameusermove' => 'Prestavi uporabniške in pogovorne strani (ter njihove podstrani) na novo ime',
+	'renameusersuppress' => 'Ne ustvari preusmeritev na novo ime',
+	'renameuserreserve' => 'Blokiraj staro uporabniško ime pred nadaljnjo uporabo',
+	'renameuserwarnings' => 'Opozorila:',
+	'renameuserconfirm' => 'Da, preimenuj uporabnika',
+	'renameusersubmit' => 'Potrdi',
+	'renameusererrordoesnotexist' => 'Uporabnik »<nowiki>$1</nowiki>« ne obstaja.',
+	'renameusererrorexists' => 'Uporabnik »<nowiki>$1</nowiki>« že obstaja.',
+	'renameusererrorinvalid' => 'Uporabniško ime »<nowiki>$1</nowiki>« ni veljavno.',
+	'renameuser-error-request' => 'Pri prejemanju zahteve je prišlo do težave.
+Prosimo, pojdite nazaj in poskusite znova.',
+	'renameuser-error-same-user' => 'Uporabnika ne morete preimenovati v isto stvar kot prej.',
+	'renameusersuccess' => 'Uporabnik »<nowiki>$1</nowiki>« je bil preimenovan v »<nowiki>$2</nowiki>«.',
+	'renameuser-page-exists' => 'Stran $1 že obstaja in je ni mogoče samodejno prepisati.',
+	'renameuser-page-moved' => 'Stran $1 je bila prestavljena na $2.',
+	'renameuser-page-unmoved' => 'Strani $1 ni mogoče prestaviti na $2.',
+	'renameuserlogpage' => 'Dnevnik preimenovanj uporabnikov',
+	'renameuserlogpagetext' => 'Prikazan je dnevnik sprememb uporabniških imen.',
+	'renameuserlogentry' => '- preimenovanje $1 v »$2«',
+	'renameuser-log' => '$1 {{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}. Razlog: $2',
+	'renameuser-move-log' => 'Samodejno prestavljanje strani pri preimenovanju uporabnika »[[User:$1|$1]]« v »[[User:$2|$2]]«',
+	'right-renameuser' => 'Preimenovanje uporabnikov',
+	'renameuser-renamed-notice' => 'Ta uporabnik je bil preimenovan.
+Dnevnik preimenovanja je naveden spodaj.',
+);
+
+/** Lower Silesian (Schläsch)
+ * @author Schläsinger
+ */
+$messages['sli'] = array(
+	'renameuserold' => 'Bisheriger Benutzernoame:',
+	'renameusernew' => 'Neuer Benutzernoame:',
+	'renameuserreason' => 'Grund:',
+);
+
+/** Albanian (Shqip)
+ * @author Dori
+ * @author Mikullovci11
+ * @author Olsi
+ */
+$messages['sq'] = array(
+	'renameuser' => 'Riemëroje përdoruesin',
+	'renameuser-linkoncontribs' => 'Riemëroje përdoruesin',
+	'renameuser-linkoncontribs-text' => 'Riemëroje këtë përdoruesin',
+	'renameuser-desc' => "Shton një [[Special:Renameuser|faqe speciale]] për të riemëruar një përdorues (duhet e drejta ''renameuser'')",
+	'renameuserold' => 'Emri i tanishëm',
+	'renameusernew' => 'Emri i ri',
+	'renameuserreason' => 'Arsyeja për riemërim:',
+	'renameusermove' => 'Zhvendos faqet e përdoruesit dhe të diskutimit (dhe nën-faqet e tyre) tek emri i ri',
+	'renameusersuppress' => 'Mos krijoni përcjellime tek emri i ri',
+	'renameuserreserve' => 'Bllokoni emrin e vjetër të përdoruesit të përdorim në të ardhmen',
+	'renameuserwarnings' => 'Paralajmërimet:',
+	'renameuserconfirm' => 'Po, ndërrojë emrin e përdoruesit',
+	'renameusersubmit' => 'Ndryshoje',
+	'renameusererrordoesnotexist' => 'Përdoruesi me emër "<nowiki>$1</nowiki>" nuk ekziston',
+	'renameusererrorexists' => 'Përdoruesi me emër "<nowiki>$1</nowiki>" ekziston',
+	'renameusererrorinvalid' => 'Emri "<nowiki>$1</nowiki>" nuk është i lejuar',
+	'renameuser-error-request' => 'Kishte një problem me marrjen e kërkesës.
+Ju lutemi kthehuni prapa dhe provoni përsëri.',
+	'renameuser-error-same-user' => 'Ju nuk mund të riemëroni një përdorues tek e njëjta gjë si më parë.',
+	'renameusersuccess' => 'Përdoruesi "<nowiki>$1</nowiki>" u riemërua në "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Faqja $1 ekziston dhe nuk mund të mbivendoset automatikisht.',
+	'renameuser-page-moved' => 'Faqja $1 është zhvendosur tek $2.',
+	'renameuser-page-unmoved' => "Faqja $1 s'mund të zhvendosej tek $2.",
+	'renameuserlogpage' => 'Regjistri i emër-ndryshimeve',
+	'renameuserlogpagetext' => 'Ky është një regjistër i ndryshimeve së emrave të përdoruesve',
+	'renameuserlogentry' => 'riemëruar $1 tek "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 redaktim|$1 redaktime}}. Arsyeja: $2',
+	'renameuser-move-log' => 'Lëvizi faqen automatikisht kur riemëroi përdoruesin "[[User:$1|$1]]" në "[[User:$2|$2]]"',
+	'right-renameuser' => 'Riemëroni përdorueset',
+	'renameuser-renamed-notice' => 'Ky përdorues është riemëruar.
+Regjistri i riemërimit është poshtë për referencë.',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Millosh
+ * @author Rancher
+ * @author Sasa Stefanovic
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
+ */
+$messages['sr-ec'] = array(
+	'renameuser' => 'Преименуј корисника',
+	'renameuser-linkoncontribs' => 'преименуј корисника',
+	'renameuser-linkoncontribs-text' => 'Преименуј овог корисника',
+	'renameuser-desc' => "Додаје [[Special:Renameuser|посебну страницу]] за преименовање корисника (потребно право ''renameuser'')",
+	'renameuserold' => 'Тренутно корисничко име:',
+	'renameusernew' => 'Ново корисничко име:',
+	'renameuserreason' => 'Разлог:',
+	'renameusermove' => 'Премести корисничку страницу и страницу за разговор (и њихове подстранице) на нови назив',
+	'renameusersuppress' => 'Не правите преусмерења на нови назив',
+	'renameuserreserve' => 'Блокирај старо корисничко име за даљу употребу',
+	'renameuserwarnings' => 'Упозорења:',
+	'renameuserconfirm' => 'Да, преименуј корисника',
+	'renameusersubmit' => 'Прихвати',
+	'renameusererrordoesnotexist' => 'Корисник „<nowiki>$1</nowiki>“ не постоји.',
+	'renameusererrorexists' => 'Корисник „<nowiki>$1</nowiki>“ већ постоји.',
+	'renameusererrorinvalid' => 'Погрешно корисничко име: "<nowiki>$1</nowiki>"',
+	'renameuser-error-request' => 'Дошло је до проблема при примању захтева.
+Вратите се назад и покушајте поново.',
+	'renameuser-error-same-user' => 'Не можете преименовати корисника у исто име.',
+	'renameusersuccess' => 'Корисник "<nowiki>$1</nowiki>" је преименован на "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Страница $1 већ постоји и не може се заменити.',
+	'renameuser-page-moved' => 'Страница $1 је премештена у $2.',
+	'renameuser-page-unmoved' => 'Страница $1 не може да се премести на $2.',
+	'renameuserlogpage' => 'Историја преименовања корисника',
+	'renameuserlogpagetext' => 'Ово је историја измена корисничких имена.',
+	'renameuserlogentry' => '{{GENDER:|је преименовао|је преименовала|преименова}} $1 у „$2“',
+	'renameuser-log' => '{{PLURAL:$1|1 измена|$1 измене|$1 измена}}.
+Разлог: $2',
+	'renameuser-move-log' => 'Премештене странице приликом преименовања корисника: „[[User:$1|$1]]“ у „[[User:$2|$2]]“.',
+	'right-renameuser' => 'преименовање корисничких имена',
+	'renameuser-renamed-notice' => 'Овом кориснику је промењено име.
+Историја промена имена је приложена испод, као информација.',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Liangent
+ * @author Michaello
+ * @author Жељко Тодоровић
+ */
+$messages['sr-el'] = array(
+	'renameuser' => 'Preimenuj korisnika',
+	'renameuser-linkoncontribs' => 'preimenuj korisnika',
+	'renameuser-linkoncontribs-text' => 'Preimenuj ovog korisnika',
+	'renameuser-desc' => "Dodaje [[Special:Renameuser|posebnu stranicu]] za preimenovanje korisnika (potrebno pravo ''renameuser'').",
+	'renameuserold' => 'Trenutno korisničko ime:',
+	'renameusernew' => 'Novo korisničko ime:',
+	'renameuserreason' => 'Razlog preimenovanja:',
+	'renameusermove' => 'Premesti korisničku stranicu i stranicu za razgovor (i njihove podstranice) na novo ime',
+	'renameusersuppress' => 'Ne pravite preusmerenja na novi naziv',
+	'renameuserreserve' => 'Blokiraj staro korisničko ime za dalju upotrebu',
+	'renameuserwarnings' => 'Upozorenja:',
+	'renameuserconfirm' => 'Da, preimenuj korisničko ime.',
+	'renameusersubmit' => 'Prihvati',
+	'renameusererrordoesnotexist' => 'Korisnik "<nowiki>$1</nowiki>" ne postoji',
+	'renameusererrorexists' => 'Korisnik "<nowiki>$1</nowiki>" već postoji',
+	'renameusererrorinvalid' => 'Pogrešno korisničko ime: "<nowiki>$1</nowiki>"',
+	'renameuser-error-request' => 'Javio se problem prilikom prihvatanja zahteva. Idi nazad i pokušaj ponovo.',
+	'renameuser-error-same-user' => 'Ne možeš preimenovati korisničko ime u isto kao i prethodno.',
+	'renameusersuccess' => 'Korisnik "<nowiki>$1</nowiki>" je preimenovan na "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Stranica $1 već postoji i ne može biti automatski presnimljena.',
+	'renameuser-page-moved' => 'Stranica $1 je premeštena na $2.',
+	'renameuser-page-unmoved' => 'Stranica $1 ne može biti premeštena na $2.',
+	'renameuserlogpage' => 'Istorija preimenovanja korisnika',
+	'renameuserlogpagetext' => 'Ovo je istorija izmena korisničkih imena.',
+	'renameuserlogentry' => 'je preimenovao $1 u „$2“',
+	'renameuser-log' => '{{PLURAL:$1|1 izmena|$1 izmene|$1 izmena}}. Razlog: $2',
+	'renameuser-move-log' => 'Automatski pomerene stranice prilikom preimenovanja korisničkog imena: „[[User:$1|$1]]“ u „[[User:$2|$2]]“.',
+	'right-renameuser' => 'preimenovanje korisničkih imena',
+	'renameuser-renamed-notice' => 'Ovom korisniku je promenjeno ime.
+Istorija promena imena je priložena ispod, kao informacija.',
+);
+
+/** Seeltersk (Seeltersk)
+ * @author Maartenvdbent
+ * @author Pyt
+ */
+$messages['stq'] = array(
+	'renameuser' => 'Benutsernoome annerje',
+	'renameuser-desc' => "Föiget ne [[Special:Renameuser|Spezioalsiede]] bietou tou Uumbenaamenge fon n Benutser (fräiget dät ''renameuser''-Gjucht)",
+	'renameuserold' => 'Benutsernoomer bithäär:',
+	'renameusernew' => 'Näie Benutsernoome:',
+	'renameuserreason' => 'Gruund foar Uumenaame:',
+	'renameusermove' => 'Ferskuuwe Benutser-/Diskussionssiede inkl. Unnersieden ap dän näie Benutsernoome',
+	'renameuserreserve' => 'Blokkierje dän oolde Benutsernoome foar ne näie Registrierenge',
+	'renameuserwarnings' => 'Woarskauengen:',
+	'renameuserconfirm' => 'Jee, Benutser uumbenaame',
+	'renameusersubmit' => 'Uumbenaame',
+	'renameusererrordoesnotexist' => 'Die Benutsernoome "<nowiki>$1</nowiki>" bestoant nit',
+	'renameusererrorexists' => 'Die Benutsernoome "<nowiki>$1</nowiki>" bestoant al',
+	'renameusererrorinvalid' => 'Die Benutsernoome "<nowiki>$1</nowiki>" is uungultich',
+	'renameuser-error-request' => 'Dät roat n Problem bie dän Ämpfang fon ju Anfroage. Fersäik jädden nochmoal.',
+	'renameuser-error-same-user' => 'Oolde un näie Benutsernoome sunt identisk.',
+	'renameusersuccess' => 'Die Benutser "<nowiki>$1</nowiki>" wuude mäd Ärfoulch uumenaamd in "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Ju Siede $1 bestoant al un kon nit automatisk uurskrieuwen wäide.',
+	'renameuser-page-moved' => 'Ju Siede $1 wuude ätter $2 ferskäuwen.',
+	'renameuser-page-unmoved' => 'Ju Siede $1 kuude nit ätter $2 ferskäuwen wäide.',
+	'renameuserlogpage' => 'Benutsernoomenannerengs-Logbouk',
+	'renameuserlogpagetext' => 'In dit Logbouk wäide do Annerengen fon Benutsernoomen protokollierd.',
+	'renameuserlogentry' => 'häd "$1" in "$2" uumenaamd',
+	'renameuser-log' => '{{PLURAL:$1|1 Beoarbaidenge|$1 Beoarbaidengen}}. Gruund: $2',
+	'renameuser-move-log' => 'truch ju Uumbenaamenge fon „[[User:$1|$1]]“ ätter „[[User:$2|$2]]“ automatisk ferskäuwene Siede.',
+	'right-renameuser' => 'Benutser uumenaame',
+);
+
+/** Sundanese (Basa Sunda)
+ * @author Irwangatot
+ * @author Kandar
+ */
+$messages['su'] = array(
+	'renameuser' => 'Ganti ngaran pamaké',
+	'renameuser-desc' => "Ganti ngaran pamaké (perlu kawenangan ''renameuser'')",
+	'renameuserold' => 'Ngaran pamaké ayeuna:',
+	'renameusernew' => 'Ngaran pamaké anyar:',
+	'renameuserreason' => 'Alesan ganti ngaran:',
+	'renameusermove' => 'Pindahkeun kaca pamaké jeung obrolanna (jeung sub-kacanna) ka ngaran anyar',
+	'renameusersubmit' => 'Kirim',
+	'renameusererrordoesnotexist' => 'Euweuh pamaké nu ngaranna "<nowiki>$1</nowiki>"',
+	'renameusererrorexists' => 'Pamaké "<nowiki>$1</nowiki>" geus aya',
+	'renameusererrorinvalid' => 'Ngaran pamaké "<nowiki>$1</nowiki>" teu sah',
+	'renameuser-error-request' => 'Aya gangguan nalika nampa paménta. Coba balik deui, terus cobaan deui.',
+	'renameuser-error-same-user' => 'Anjeun teu bisa ngaganti ngaran pamaké ka ngaran nu éta-éta kénéh.',
+	'renameusersuccess' => 'Pamaké "<nowiki>$1</nowiki>" geus diganti ngaranna jadi "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Kaca $1 geus aya sarta teu bisa ditimpah kitu baé.',
+	'renameuser-page-moved' => 'Kaca $1 geus dipindahkeun ka $2.',
+	'renameuser-page-unmoved' => 'Kaca $1 teu bisa dipindahkeun ka $2.',
+	'renameuserlogpage' => 'Log ganti ngaran',
+	'renameuserlogpagetext' => 'Ieu minangka log parobahan ngaran pamaké',
+	'renameuserlogentry' => 'geus ngaganti ngaran $1 jadi "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 édit|$1 édit}}. Alesan: $2',
+	'renameuser-move-log' => 'Otomatis mindahkeun kaca nalika ngaganti ngaran "[[User:$1|$1]]" jadi "[[User:$2|$2]]"',
+);
+
+/** Swedish (Svenska)
+ * @author Boivie
+ * @author Cohan
+ * @author Dafer45
+ * @author Habj
+ * @author Lejonel
+ * @author M.M.S.
+ * @author Najami
+ * @author Per
+ */
+$messages['sv'] = array(
+	'renameuser' => 'Byt användarnamn',
+	'renameuser-linkoncontribs' => 'byt användarnamn',
+	'renameuser-linkoncontribs-text' => 'byt namn på denna användare',
+	'renameuser-desc' => "Lägger till en [[Special:Renameuser|specialsida]] för att byta namn på en användare (kräver behörigheten ''renameuser'')",
+	'renameuserold' => 'Nuvarande användarnamn:',
+	'renameusernew' => 'Nytt användarnamn:',
+	'renameuserreason' => 'Anledning till namnbytet:',
+	'renameusermove' => 'Flytta användarsidan och användardiskussionen (och deras undersidor) till det nya namnet',
+	'renameusersuppress' => 'Skapa inte omdirigeringar till det nya namnet',
+	'renameuserreserve' => 'Reservera det gamla användarnamnet från framtida användning',
+	'renameuserwarnings' => 'Varningar:',
+	'renameuserconfirm' => 'Ja, byt namn på användaren',
+	'renameusersubmit' => 'Verkställ',
+	'renameusererrordoesnotexist' => 'Användaren "<nowiki>$1</nowiki>" finns inte',
+	'renameusererrorexists' => 'Användaren "<nowiki>$1</nowiki>" finns redan.',
+	'renameusererrorinvalid' => 'Användarnamnet "<nowiki>$1</nowiki>" är ogiltigt.',
+	'renameuser-error-request' => 'Ett problem inträffade i hanteringen av begäran. Gå tillbaks och försök igen.',
+	'renameuser-error-same-user' => 'Du kan inte byta namn på en användare till samma som tidigare.',
+	'renameusersuccess' => 'Användaren "<nowiki>$1</nowiki>" har fått sitt namn bytt till "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'Sidan $1 finns redan och kan inte skrivas över automatiskt.',
+	'renameuser-page-moved' => 'Sidan $1 har flyttats till $2.',
+	'renameuser-page-unmoved' => 'Sidan $1 kunde inte flyttas till $2.',
+	'renameuserlogpage' => 'Logg över användarnamnsbyten',
+	'renameuserlogpagetext' => 'Detta är en logg över byten av användarnamn',
+	'renameuserlogentry' => 'bytte namn på $1 till "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 redigering|$1 redigeringar}}. Anledning: $2',
+	'renameuser-move-log' => 'Flyttade automatiskt sidan när namnet byttes på användaren "[[User:$1|$1]]" till "[[User:$2|$2]]"',
+	'right-renameuser' => 'Ändra användares namn',
+	'renameuser-renamed-notice' => 'Användaren har fått ett nytt namn.
+Som referens återfinns omdöpningsloggen nedan.',
+);
+
+/** Swahili (Kiswahili) */
+$messages['sw'] = array(
+	'renameusersubmit' => 'Wasilisha',
+);
+
+/** Tamil (தமிழ்)
+ * @author Shanmugamp7
+ * @author TRYPPN
+ */
+$messages['ta'] = array(
+	'renameuser' => 'பயனரை பெயர்மாற்று',
+	'renameuser-linkoncontribs' => 'பயனரை பெயர்மாற்று',
+	'renameuser-linkoncontribs-text' => 'இந்த பயனரை பெயர்மாற்று',
+	'renameuserold' => 'தற்போதைய பயனர் பெயர்:',
+	'renameusernew' => 'புதிய பயனர் பெயர்:',
+	'renameuserreason' => 'மறுபெயருக்கான காரணம்:',
+	'renameuserwarnings' => 'எச்சரிக்கை:',
+	'renameuserconfirm' => 'சரி, பயனருக்கு மாற்றுப்பெயர் கொடுக்கவும்',
+	'renameusersubmit' => 'சமர்ப்பி',
+	'renameuserlogpage' => 'பயனரை பெயர்மாற்றுதல் குறிப்பேடு',
+	'renameuserlogpagetext' => 'இது பயனர் பெயர் மாற்றத்திற்கான குறிப்பேடு',
+	'renameuserlogentry' => 'பெயர் மற்றம் செய்யப்பட்டது $1 லிருந்து "$2" க்கு',
+	'renameuser-log' => '{{PLURAL:$1|1 திருத்தம்|$1 திருத்தங்கள்}}. காரணம்: $2',
+	'right-renameuser' => 'பயனர்களை மாற்று பெயரிடு',
+	'renameuser-renamed-notice' => 'இந்த பயனர் பெயர் மாற்றப்பட்டது.
+மாற்றுப்பெயரிடுதல் குறிப்பேடு குறிப்புதவிக்காக கீழே வழங்கப்பட்டுள்ளது',
+);
+
+/** Telugu (తెలుగు)
+ * @author Chaduvari
+ * @author Mpradeep
+ * @author Veeven
+ */
+$messages['te'] = array(
+	'renameuser' => 'వాడుకరి పేరుమార్చు',
+	'renameuser-linkoncontribs' => 'వాడుకరి పేరుమార్చు',
+	'renameuser-linkoncontribs-text' => 'ఈ వాడుకరి పేరుని మార్చండి',
+	'renameuser-desc' => "వాడుకరి పేరు మార్చండి (''renameuser'' అన్న అధికారం కావాలి)",
+	'renameuserold' => 'ప్రస్తుత వాడుకరి పేరు:',
+	'renameusernew' => 'కొత్త వాడుకరి పేరు:',
+	'renameuserreason' => 'పేరు మార్చడానికి కారణం:',
+	'renameusermove' => 'వాడుకరి పేజీ, చర్చాపేజీలను (వాటి ఉపపేజీలతో సహా) కొత్త పేరుకు తరలించండి',
+	'renameusersuppress' => 'కొత్త పేరుకి దారిమార్పులు సృష్టించకు',
+	'renameuserreserve' => 'పాత వాడుకరిపేరుని భవిష్యత్తులో వాడకుండా నిరోధించు',
+	'renameuserwarnings' => 'హెచ్చరికలు:',
+	'renameuserconfirm' => 'అవును, వాడుకరి పేరు మార్చు',
+	'renameusersubmit' => 'పంపించు',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" పేరుగల వాడుకరి లేరు.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" పేరుతో వాడుకరి ఇప్పటికే ఉన్నారు.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" అనే వాడుకరిపేరు సరైనది కాదు.',
+	'renameuser-error-request' => 'మీ అభ్యర్థనను స్వీకరించేటప్పుడు ఒక సమస్య తలెత్తింది. దయచేసి వెనక్కు వెళ్లి ఇంకోసారి ప్రయత్నించండి.',
+	'renameuser-error-same-user' => 'సభ్యనామాన్ని ఇంతకు ముందు ఉన్న సభ్యనామంతోనే మార్చడం కుదరదు.',
+	'renameusersuccess' => '"<nowiki>$1</nowiki>" అనే సభ్యనామాన్ని "<nowiki>$2</nowiki>"గా మార్చేసాం.',
+	'renameuser-page-exists' => '$1 పేజీ ఇప్పటికే ఉంది, కాబట్టి ఆటోమాటిగ్గా దానిపై కొత్తపేజీని రుద్దడం కుదరదు.',
+	'renameuser-page-moved' => '$1 పేజీని $2 పేజీకి తరలించాం.',
+	'renameuser-page-unmoved' => '$1 పేజీని $2 పేజీకి తరలించలేక పోయాం.',
+	'renameuserlogpage' => 'వాడుకరి పేరుమార్పుల చిట్టా',
+	'renameuserlogpagetext' => 'ఇది వాడుకరి పేర్లకి జరిగిన మార్పుల చిట్టా.',
+	'renameuserlogentry' => '$1ని "$2"గా పేరు మార్చారు',
+	'renameuser-log' => '{{PLURAL:$1|ఒక దిద్దుబాటు|$1 దిద్దుబాట్లు}}. కారణం: $2',
+	'renameuser-move-log' => '"[[User:$1|$1]]" పేరును "[[User:$2|$2]]"కు మార్చడంతో పేజీని ఆటోమాటిగ్గా తరలించాం',
+	'right-renameuser' => 'వాడుకరుల పేరు మార్చడం',
+	'renameuser-renamed-notice' => 'ఈ వాడుకరి పేరు మారింది.
+మీ సమాచారం కోసం పేరుమార్పుల చిట్టాని క్రింద ఇచ్చాం.',
+);
+
+/** Tetum (Tetun)
+ * @author MF-Warburg
+ */
+$messages['tet'] = array(
+	'renameuser' => "Fó naran foun ba uza-na'in sira",
+	'renameuser-desc' => "Fó naran foun ba uza-na'in sira (presiza priviléjiu ''renameuser'')",
+	'renameuserold' => "Naran uza-na'in atuál:",
+	'renameusernew' => "Naran uza-na'in foun:",
+	'renameuserreason' => 'Motivu:',
+	'renameusermove' => "Book pájina uza-na'in no diskusaun (no sub-pájina) ba naran foun",
+	'renameuserconfirm' => 'Sin, fó naran foun',
+	'renameusersubmit' => 'Fó naran foun',
+	'renameusererrordoesnotexist' => 'Uza-na\'in "<nowiki>$1</nowiki>" la iha.',
+	'renameuser-page-moved' => 'Book tiha pájina $1 ba $2.',
+	'renameuser-page-unmoved' => 'La bele book pájina $1 ba $2.',
+	'right-renameuser' => "Fó naran foun ba uza-na'in sira",
+);
+
+/** Tajik (Cyrillic script) (Тоҷикӣ)
+ * @author Ibrahim
+ */
+$messages['tg-cyrl'] = array(
+	'renameuser' => 'Тағйири номи корбарӣ',
+	'renameuser-desc' => "Номи як корбарро тағйир медиҳад (ниёзманд ба ихтиёроти ''тағйирином'' аст)",
+	'renameuserold' => 'Номи корбари феълӣ:',
+	'renameusernew' => 'Номи корбари ҷадид:',
+	'renameuserreason' => 'Иллати тағйири номи корбарӣ:',
+	'renameusermove' => 'Саҳифаи корбарӣ ва саҳифаи баҳси корбар (ва зерсаҳифаҳои он)ро интиқол бидеҳ',
+	'renameuserreserve' => 'Бастани номи корбарии кӯҳна аз истифодаи оянда',
+	'renameuserwarnings' => 'Ҳушдорҳо:',
+	'renameuserconfirm' => 'Бале, номи корбариро тағйир бидеҳ',
+	'renameusersubmit' => 'Сабт',
+	'renameusererrordoesnotexist' => 'Номи корбарӣ "<nowiki>$1</nowiki>" вуҷуд надорад.',
+	'renameusererrorexists' => 'Номи корбарӣ "<nowiki>$1</nowiki>" истифода шудааст.',
+	'renameusererrorinvalid' => 'Номи корбарӣ "<nowiki>$1</nowiki>" ғайри миҷоз аст.',
+	'renameuser-error-request' => 'Дар дарёфти дархост мушкилие пеш омад. Лутфан ба саҳифаи қаблӣ бозгардед ва дубора талош кунед.',
+	'renameuser-error-same-user' => 'Шумо наметавонед номи як корбарро ба ҳамон номи қаблиаш тағйир диҳед.',
+	'renameusersuccess' => 'Номи корбар "<nowiki>$1</nowiki>" ба "<nowiki>$2</nowiki>" тағйир ёфт.',
+	'renameuser-page-exists' => 'Саҳифаи $1 аллакай вуҷуд дорда ва ба таври худкор қобили бознависӣ нест.',
+	'renameuser-page-moved' => 'Саҳифаи $1 ба $2 кӯчонида шуд.',
+	'renameuser-page-unmoved' => 'Имкони кӯчонидани саҳифаи $1 ба $2 вуҷуд надорад.',
+	'renameuserlogpage' => 'Гузориши тағйири номи корбар',
+	'renameuserlogpagetext' => 'Ин гузориши тағйири номи корбарон аст',
+	'renameuserlogentry' => 'номи $1ро ба "$2" тағйир дод',
+	'renameuser-log' => '{{PLURAL:$1|1 вироиш|$1 вироишҳо}}. Далел: $2',
+	'renameuser-move-log' => 'Саҳифа дар вақти тағйири номи корбар  "[[User:$1|$1]]" ба "[[User:$2|$2]]" ба таври худкор кӯчонида шуд',
+	'right-renameuser' => 'Тағйири номи корбарон',
+);
+
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'renameuser' => 'Taƣjiri nomi korbarī',
+	'renameuser-desc' => "Nomi jak korbarro taƣjir medihad (nijozmand ba ixtijoroti ''taƣjirinom'' ast)",
+	'renameuserold' => "Nomi korbari fe'lī:",
+	'renameusernew' => 'Nomi korbari çadid:',
+	'renameuserreason' => 'Illati taƣjiri nomi korbarī:',
+	'renameusermove' => 'Sahifai korbarī va sahifai bahsi korbar (va zersahifahoi on)ro intiqol bideh',
+	'renameuserreserve' => 'Bastani nomi korbariji kūhna az istifodai ojanda',
+	'renameuserwarnings' => 'Huşdorho:',
+	'renameuserconfirm' => 'Bale, nomi korbariro taƣjir bideh',
+	'renameusersubmit' => 'Sabt',
+	'renameusererrordoesnotexist' => 'Nomi korbarī "<nowiki>$1</nowiki>" vuçud nadorad.',
+	'renameusererrorexists' => 'Nomi korbarī "<nowiki>$1</nowiki>" istifoda şudaast.',
+	'renameusererrorinvalid' => 'Nomi korbarī "<nowiki>$1</nowiki>" ƣajri miçoz ast.',
+	'renameuser-error-request' => 'Dar darjofti darxost muşkilie peş omad. Lutfan ba sahifai qablī bozgarded va dubora taloş kuned.',
+	'renameuser-error-same-user' => 'Şumo nametavoned nomi jak korbarro ba hamon nomi qabliaş taƣjir dihed.',
+	'renameusersuccess' => 'Nomi korbar "<nowiki>$1</nowiki>" ba "<nowiki>$2</nowiki>" taƣjir joft.',
+	'renameuser-page-exists' => 'Sahifai $1 allakaj vuçud dorda va ba tavri xudkor qobili boznavisī nest.',
+	'renameuser-page-moved' => 'Sahifai $1 ba $2 kūconida şud.',
+	'renameuser-page-unmoved' => 'Imkoni kūconidani sahifai $1 ba $2 vuçud nadorad.',
+	'renameuserlogpage' => 'Guzorişi taƣjiri nomi korbar',
+	'renameuserlogpagetext' => 'In guzorişi taƣjiri nomi korbaron ast',
+	'renameuser-log' => '{{PLURAL:$1|1 viroiş|$1 viroişho}}. Dalel: $2',
+	'renameuser-move-log' => 'Sahifa dar vaqti taƣjiri nomi korbar  "[[User:$1|$1]]" ba "[[User:$2|$2]]" ba tavri xudkor kūconida şud',
+	'right-renameuser' => 'Taƣjiri nomi korbaron',
+);
+
+/** Thai (ไทย)
+ * @author Harley Hartwell
+ * @author Mopza
+ * @author Passawuth
+ */
+$messages['th'] = array(
+	'renameuser' => 'เปลี่ยนชื่อผู้ใช้',
+	'renameuser-desc' => "เพิ่ม[[Special:Renameuser|หน้าพิเศษ]] สำหรับเปลี่ยนชื่อผู้ใช้ (ต้องมีสิทธิ์ ''renameuser'' (เปลี่ยนชื่อผู้ใช้))",
+	'renameuserold' => 'ชื่อผู้ใช้ปัจจุบัน:',
+	'renameusernew' => 'ชื่อผู้ใช้ใหม่:',
+	'renameuserreason' => 'เหตุผลในการเปลี่ยนชื่อ:',
+	'renameusermove' => 'ย้ายหน้าผู้ใช้และหน้าพูดคุย (รวมถึงหน้าย่อยด้วย) ไปยังชื่อใหม่',
+	'renameuserreserve' => 'บล็อกชื่อผู้ใช้เดิมจากการใช้งานในอนาคต',
+	'renameuserwarnings' => 'คำเตือน:',
+	'renameuserconfirm' => 'ใช่, เปลี่ยนชื่อผู้ใช้นี้',
+	'renameusersubmit' => 'ตกลง',
+	'renameusererrordoesnotexist' => 'ไม่พบผู้ใช้ "<nowiki>$1</nowiki>" ในระบบ',
+	'renameusererrorexists' => 'มีผู้ใช้ "<nowiki>$1</nowiki>" อยู่แล้ว',
+	'renameusererrorinvalid' => 'ไม่สามารถใช้ชื่อผู้ใช้ "<nowiki>$1</nowiki>" ได้',
+	'renameuser-error-request' => 'มีปัญหาเกิดขึ้นเกี่ยวกับการรับคำเรียกร้องของคุณ กรุณากลับไปที่หน้าเดิม และ พยายามอีกครั้ง',
+	'renameuser-error-same-user' => 'ไม่สามารถเปลี่ยนชื่อผู้ใช้ได้เนื่องจากมีชื่อผู้ใช้นี้อยู่ก่อนแล้ว',
+	'renameusersuccess' => 'ผู้ใช้:<nowiki>$1</nowiki> ถูกเปลี่ยนชื่อเป็น ผู้ใช้:<nowiki>$2</nowiki> เรียบร้อยแล้ว',
+	'renameuser-page-exists' => 'หน้า $1 มีอยู่แล้ว และไม่สามารถย้ายไปแทนที่ได้โดยอัตโนมัติ',
+	'renameuser-page-moved' => 'หน้า $1 ถูกย้ายไปยัง $2',
+	'renameuser-page-unmoved' => 'ไม่สามารถย้ายหน้า $1 ไปยัง $2 ได้',
+	'renameuserlogpage' => 'ปูมการเปลี่ยนชื่อผู้ใช้',
+	'renameuserlogpagetext' => 'ข้อมูลการเปลี่ยนชื่อผู้ใช้',
+	'renameuserlogentry' => 'ได้เปลี่ยนชื่อ $1 ไปเป็น [[ผู้ใช้:$2]]',
+	'renameuser-log' => 'แก้ไขแล้ว $1 ครั้ง เหตุผล: $2',
+	'renameuser-move-log' => 'ย้ายโดยอัตโนมัติ ขณะเปลี่ยนชื่อผู้ใช้จาก "[[User:$1|$1]]" เป็น "[[User:$2|$2]]"',
+	'right-renameuser' => 'เปลี่ยนชื่อผู้ใช้',
+	'renameuser-renamed-notice' => 'ผู้ใช้นี้ได้ถูกเปลี่ยนชื่อ บันทึกการเปลี่ยนชื่อแสดงอยู่ด้านล่างสำหรับการอ้างอิง',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'renameuser' => 'Ulanyjy adyny üýtget',
+	'renameuser-linkoncontribs' => 'ulanyjy adyny üýtget',
+	'renameuser-linkoncontribs-text' => 'Bu ulanyjynyň adyny üýtget',
+	'renameuser-desc' => "Ulanyjyny täzeden atlandyrmak üçin [[Special:Renameuser|ýörite sahypa]] goşýar (''ulanyjynytäzedenatlandyr'' hukugy gerek)",
+	'renameuserold' => 'Häzirki ulanyjy ady:',
+	'renameusernew' => 'Täze ulanyjy ady:',
+	'renameuserreason' => 'At üýtgetmegiň sebäbi:',
+	'renameusermove' => 'Ulanyjy we pikir alyşma sahypalaryny (we kiçi sahypalaryny) täze ada geçir',
+	'renameusersuppress' => 'Täze ada gönükdirmeler döretme',
+	'renameuserreserve' => 'Köne ulanyjy adyny indi ulanylmakdan blokirle',
+	'renameuserwarnings' => 'Duýduryşlar:',
+	'renameuserconfirm' => 'Hawa, ulanyjynyň adyny üýtget',
+	'renameusersubmit' => 'Tabşyr',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" atly ulanyjy ýok.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" ulanyjysy eýýäm bar.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" ulanyjy ady nädogry.',
+	'renameuser-error-request' => 'Talaby almak bilen baglanyşykyly bir probleme ýüze çykdy.
+Yza gaýdyp gaýtadan synanyşyp görüň.',
+	'renameuser-error-same-user' => 'Ulanyja öňküsi ýaly bir ada täzeden geçirip bilmeýärsiňiz.',
+	'renameusersuccess' => 'Ulanyjy "<nowiki>$1</nowiki>" täze ada geçirildi: "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => '$1 sahypasy eýýäm bar we onuň üstüne awtomatik ýazyp bolmaýar.',
+	'renameuser-page-moved' => '$1 sahypasy $2 sahypasyna geçirildi.',
+	'renameuser-page-unmoved' => '$1 sahypasyny $2 sahypasyna geçirip bolmaýar.',
+	'renameuserlogpage' => 'Ulanyjy adyny üýtgetme gündeligi',
+	'renameuserlogpagetext' => 'Bu gündelik ulanyjy ady üýtgetmelerini görkezýär.',
+	'renameuserlogentry' => '$1 täzeden atlandyryldy: "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 özgerdiş|$1 özgerdiş}}. Sebäp: $2',
+	'renameuser-move-log' => 'Ulanyjy "[[User:$1|$1]]" adyndan "[[User:$2|$2]]" adyna täzeden atlandyrylanda, sahypa awtomatik geçirildi',
+	'right-renameuser' => 'Ulanyjylaryň adyny üýtget',
+	'renameuser-renamed-notice' => 'Bu ulanyjynyň ady üýtgedilipdir.
+At üýtgediş gündeligi aşakda salgylanma üçin berilýär.',
+);
+
+/** Tagalog (Tagalog)
+ * @author AnakngAraw
+ */
+$messages['tl'] = array(
+	'renameuser' => 'Muling pangalanan ang tagagamit',
+	'renameuser-linkoncontribs' => 'muling pangalanan ang tagagamit',
+	'renameuser-linkoncontribs-text' => 'muling pangalanan ang tagagamit na ito',
+	'renameuser-desc' => "Nagdaragdag ng isang [[Special:Renameuser|natatanging pahina]] para mapangalanang muli ang isang tagagamit (kailangang ang karapatang ''pangalanangmuliangtagagamit'')",
+	'renameuserold' => 'Pangkasalukuyang pangalan ng tagagamit:',
+	'renameusernew' => 'Bagong pangalan ng tagagamit:',
+	'renameuserreason' => 'Dahil para sa muling pagpapangalan:',
+	'renameusermove' => 'Ilipat ang mga pahina ng tagagamit at pangusapan (at mga kabahaging pahina nila) patungo sa bagong pangalan',
+	'renameusersuppress' => 'Huwag lumikha ng mga pagpapapunta sa bagong  pangalan',
+	'renameuserreserve' => 'Hadlangan ang dating pangalan ng tagagamit mula sa muling paggamit sa hinaharap',
+	'renameuserwarnings' => 'Mga babala:',
+	'renameuserconfirm' => 'Oo, pangalanang muli ang tagagamit',
+	'renameusersubmit' => 'Ipasa',
+	'renameusererrordoesnotexist' => 'Hindi pa umiiral ang tagagamit na "<nowiki>$1</nowiki>".',
+	'renameusererrorexists' => 'Umiiral na ang tagagamit na "<nowiki>$1</nowiki>".',
+	'renameusererrorinvalid' => 'Hindi tanggap ang pangalan ng tagagamit na "<nowiki>$1</nowiki>".',
+	'renameuser-error-request' => 'Nagkaroon ng isang suliranin sa pagtanggap ng kahilingan.
+Magbalik lamang at subukan uli.',
+	'renameuser-error-same-user' => 'Hindi mo maaaring pangalanang muli ang tagagamit patungo sa kaparehong bagay na katulad ng dati.',
+	'renameusersuccess' => 'Ang tagagamit na "<nowiki>$1</nowiki>" ay muling napangalanan na patungong "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Umiiral na ang pahinang $1 at hindi maaaring kusang mapatungan.',
+	'renameuser-page-moved' => 'Ang pahinang $1 ay nailipat na patungo sa $2.',
+	'renameuser-page-unmoved' => 'Hindi mailipat ang pahinang $1 patungo sa $2.',
+	'renameuserlogpage' => 'Talaan ng muling pagpapangalan ng tagagamit',
+	'renameuserlogpagetext' => 'Isa itong pagtatala/talaan ng mga pagbabago sa mga pangalan ng tagagamit.',
+	'renameuserlogentry' => 'muling pinangalan si $1 patungo sa "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 pagbabago|$1 mga pagbabago}}. Dahilan: $2',
+	'renameuser-move-log' => 'Kusang inilipat ang pahina habang muling pinapangalanan ang tagagamit na si "[[User:$1|$1]]" patungo sa "[[User:$2|$2]]"',
+	'right-renameuser' => 'Muling pangalanan ang mga tagagamit',
+	'renameuser-renamed-notice' => 'Napangalanan nang muli ang tagagamit na ito.
+Ibinigay sa ibaba ang talaan ng pagpapangalang muli para masangguni.',
+);
+
+/** Tongan (lea faka-Tonga) */
+$messages['to'] = array(
+	'renameuser' => 'Liliu hingoa ʻo e ʻetita',
+	'renameuserold' => 'Hingoa motuʻa ʻo e ʻetita:',
+	'renameusernew' => 'Hingoa foʻou ʻo e ʻetita:',
+	'renameusersubmit' => 'Fai ā liliuhingoa',
+	'renameusererrordoesnotexist' => 'Ko e ʻetita "<nowiki>$1</nowiki>" ʻoku ʻikai toka tuʻu ia',
+	'renameusererrorexists' => 'Ko e ʻetita "<nowiki>$1</nowiki>" ʻoku toka tuʻu ia',
+	'renameusererrorinvalid' => 'ʻOku taʻeʻaonga ʻa e hingoa fakaʻetita ko "<nowiki>$1</nowiki>"',
+	'renameusersuccess' => 'Ko e ʻetita "<nowiki>$1</nowiki>" kuo liliuhingoa ia kia "<nowiki>$2</nowiki>"',
+	'renameuserlogpage' => 'Tohinoa ʻo e liliu he hingoa ʻo e ʻetita',
+	'renameuserlogpagetext' => 'Ko e tohinoa ʻeni ʻo e ngaahi liliu ki he hingoa ʻo e kau ʻetita',
+);
+
+/** Turkish (Türkçe)
+ * @author Joseph
+ * @author Karduelis
+ * @author Runningfridgesrule
+ * @author Uğur Başak
+ * @author Vito Genovese
+ */
+$messages['tr'] = array(
+	'renameuser' => 'Kullanıcı adı değiştir',
+	'renameuser-linkoncontribs' => 'kullanıcıyı yeniden adlandır',
+	'renameuser-linkoncontribs-text' => 'Bu kullanıcıyı yeniden adlandır',
+	'renameuser-desc' => "Kullanıcıyı yeniden adlandırmak için bir [[Special:Renameuser|özel sayfa]] ekler (''kullanıcıyıyenidenadlandır'' hakkı gerekir)",
+	'renameuserold' => 'Şu anda ki kullanıcı adı:',
+	'renameusernew' => 'Yeni kullanıcı adı:',
+	'renameuserreason' => 'Neden:',
+	'renameusermove' => 'Kullanıcı ve tartışma sayfalarını (ve alt sayfalarını) yeni isme taşı',
+	'renameusersuppress' => 'Yeni ada yönlendirmeler oluşturma',
+	'renameuserreserve' => 'Eski kullanıcı adını ilerdeki kullanımlar için engelle',
+	'renameuserwarnings' => 'Uyarılar:',
+	'renameuserconfirm' => 'Evet, kullanıcıyı yeniden adlandır',
+	'renameusersubmit' => 'Gönder',
+	'renameusererrordoesnotexist' => '"<nowiki>$1</nowiki>" adlı kullanıcı bulunmamaktadır.',
+	'renameusererrorexists' => '"<nowiki>$1</nowiki>" kullanıcısı zaten mevcut.',
+	'renameusererrorinvalid' => '"<nowiki>$1</nowiki>" kullanıcı adı geçersiz.',
+	'renameuser-error-request' => 'İsteğin alımıyla ilgili bir problem var.
+Lütfen geri dönüp tekrar deneyin.',
+	'renameuser-error-same-user' => 'Bir kullanıcıyı eskiden olduğu isme yeniden adlandıramazsınız.',
+	'renameusersuccess' => 'Daha önce "<nowiki>$1</nowiki>" olarak kayıtlı kullanıcının rumuzu "<nowiki>$2</nowiki>" olarak değiştirilmiştir.',
+	'renameuser-page-exists' => '$1 sayfası zaten mevcut ve otomatik olarak üstüne yazılamaz.',
+	'renameuser-page-moved' => '$1 sayfası $2 sayfasına taşındı.',
+	'renameuser-page-unmoved' => '$1 sayfası $2 sayfasına taşınamıyor.',
+	'renameuserlogpage' => 'Kullanıcı adı değişikliği kayıtları',
+	'renameuserlogpagetext' => 'Aşağıda bulunan liste adı değiştirilmiş kullanıcıları gösterir.',
+	'renameuserlogentry' => '$1, "$2" olarak yeniden adlandırıldı',
+	'renameuser-log' => '{{PLURAL:$1|1 düzenleme|$1 düzenleme}}. Neden: $2',
+	'renameuser-move-log' => 'Kullanıcıyı "[[User:$1|$1]]" isminden "[[User:$2|$2]]" ismine yeniden adlandırırken, sayfa otomatik olarak taşındı',
+	'right-renameuser' => 'Kullanıcıların adlarını değiştirir',
+	'renameuser-renamed-notice' => 'Bu kullanıcının adı değiştirildi.
+Referans için ad değiştirme günlüğü aşağıda sağlanmıştır.',
+);
+
+/** Ukrainian (Українська)
+ * @author AS
+ * @author Ahonc
+ * @author EugeneZelenko
+ * @author Prima klasy4na
+ * @author Тест
+ */
+$messages['uk'] = array(
+	'renameuser' => 'Перейменувати користувача',
+	'renameuser-linkoncontribs' => 'перейменувати користувача',
+	'renameuser-linkoncontribs-text' => 'Перейменувати цього користувача',
+	'renameuser-desc' => "Перейменування користувача (потрібні права ''renameuser'')",
+	'renameuserold' => "Поточне ім'я:",
+	'renameusernew' => "Нове ім'я:",
+	'renameuserreason' => 'Причина перейменування:',
+	'renameusermove' => 'Перейменувати також сторінку користувача, сторінку обговорення та їхні підсторінки',
+	'renameusersuppress' => 'Не створюйте перенаправлення на нову назву',
+	'renameuserreserve' => "Зарезервувати старе ім'я користувача для подальшого використання",
+	'renameuserwarnings' => 'Попередження:',
+	'renameuserconfirm' => 'Так, перейменувати користувача',
+	'renameusersubmit' => 'Виконати',
+	'renameusererrordoesnotexist' => 'Користувач з іменем «<nowiki>$1</nowiki>» не зареєстрований.',
+	'renameusererrorexists' => 'Користувач з іменем «<nowiki>$1</nowiki>» уже зареєстрований.',
+	'renameusererrorinvalid' => "Недопустиме ім'я користувача: <nowiki>$1</nowiki>.",
+	'renameuser-error-request' => 'Виникли ускладнення з отриманням запиту. Будь ласка, поверніться назад і повторіть іще раз.',
+	'renameuser-error-same-user' => "Ви не можете змінити ім'я користувача на те саме, що було раніше.",
+	'renameusersuccess' => 'Користувач «<nowiki>$1</nowiki>» був перейменований на «<nowiki>$2</nowiki>».',
+	'renameuser-page-exists' => 'Сторінка $1 вже існує і не може бути перезаписана автоматично.',
+	'renameuser-page-moved' => 'Сторінка $1 була перейменована на $2.',
+	'renameuser-page-unmoved' => 'Сторінка $1 не може бути перейменована на $2.',
+	'renameuserlogpage' => 'Журнал перейменувань користувачів',
+	'renameuserlogpagetext' => 'Це журнал здійснених перейменувань зареєстрованих користувачів.',
+	'renameuserlogentry' => 'перейменував $1 на «$2»',
+	'renameuser-log' => 'мав $1 {{PLURAL:$1|редагування|редагування|редагувань}}. Причина: $2',
+	'renameuser-move-log' => 'Автоматичне перейменування сторінки при перейменуванні користувача «[[User:$1|$1]]» на «[[User:$2|$2]]»',
+	'right-renameuser' => 'Перейменування користувачів',
+	'renameuser-renamed-notice' => 'Цей користувач був перейменований.
+Для довідки нижче наведений журнал перейменувань.',
+);
+
+/** Urdu (اردو) */
+$messages['ur'] = array(
+	'renameuser' => 'صارف کا نام تبدیل کریں',
+	'renameuser-log' => 'جن کی $1 ترامیم تھیں. $2',
+);
+
+/** Vèneto (Vèneto)
+ * @author Candalua
+ */
+$messages['vec'] = array(
+	'renameuser' => 'Rinomina utente',
+	'renameuser-linkoncontribs' => 'rinomina utente',
+	'renameuser-linkoncontribs-text' => 'Rinomina sto utente',
+	'renameuser-desc' => "Funsion par rinominar un utente (ghe vole i diriti de ''renameuser'')",
+	'renameuserold' => 'Vecio nome utente:',
+	'renameusernew' => 'Novo nome utente:',
+	'renameuserreason' => 'Motivo del canbio nome',
+	'renameusermove' => 'Rinomina anca la pagina utente, la pagina de discussion e le relative sotopagine',
+	'renameusersuppress' => 'No stà crear rimandi al nome novo',
+	'renameuserreserve' => "Tien da conto el vecio nome utente par inpedir che'l vegna doparà in futuro",
+	'renameuserwarnings' => 'Avertimenti:',
+	'renameuserconfirm' => "Sì, rinomina l'utente",
+	'renameusersubmit' => 'Invia',
+	'renameusererrordoesnotexist' => 'El nome utente "<nowiki>$1</nowiki>" no l\'esiste',
+	'renameusererrorexists' => 'El nome utente "<nowiki>$1</nowiki>" l\'esiste de zà',
+	'renameusererrorinvalid' => 'El nome utente "<nowiki>$1</nowiki>" no\'l xe mìa valido.',
+	'renameuser-error-request' => 'Se gà verificà un problema ne la ricezion de la richiesta. Torna indrìo e ripróa da novo.',
+	'renameuser-error-same-user' => "No se pol rinominar un utente al stesso nome che'l gavea zà.",
+	'renameusersuccess' => 'El nome utente "<nowiki>$1</nowiki>" el xe stà canbià in "<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => 'La pagina $1 la esiste de zà; no se pole sovrascrìvarla automaticamente.',
+	'renameuser-page-moved' => 'La pagina $1 la xe stà spostà a $2.',
+	'renameuser-page-unmoved' => 'No se pole spostar la pagina $1 a $2.',
+	'renameuserlogpage' => 'Registro dei utenti rinominà',
+	'renameuserlogpagetext' => 'De seguito vien presentà el registro de le modifiche ai nomi utente',
+	'renameuserlogentry' => 'gà rinominà $1 in "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 contributo|$1 contributi}}. Motivo: $2',
+	'renameuser-move-log' => 'Spostamento automatico de la pagina - utente rinominà da "[[User:$1|$1]]" a "[[User:$2|$2]]"',
+	'right-renameuser' => 'Rinomina utenti',
+	'renameuser-renamed-notice' => 'Sto utente el gà canbià nome.
+Qua soto ghe xe el riferimento sul registro de rinomina.',
+);
+
+/** Veps (Vepsän kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'renameuser' => 'Udesnimitada kävutajad',
+	'renameuserold' => 'Nügüdläine kävutajannimi:',
+	'renameusernew' => "Uz' kävutajan nimi:",
+	'renameuserreason' => 'Udesnimitandan sü:',
+	'renameusersubmit' => 'Tehta',
+	'right-renameuser' => 'Udesnimitada kävutajid',
+);
+
+/** Vietnamese (Tiếng Việt)
+ * @author Minh Nguyen
+ * @author Vinhtantran
+ */
+$messages['vi'] = array(
+	'renameuser' => 'Đổi tên thành viên',
+	'renameuser-linkoncontribs' => 'đổi tên thành viên',
+	'renameuser-linkoncontribs-text' => 'Đổi tên thành viên này',
+	'renameuser-desc' => "Đổi tên thành viên (cần có quyền ''renameuser'')",
+	'renameuserold' => 'Tên hiệu hiện nay:',
+	'renameusernew' => 'Tên hiệu mới:',
+	'renameuserreason' => 'Lý do đổi tên:',
+	'renameusermove' => 'Di chuyển trang thành viên và thảo luận thành viên (cùng với trang con của nó) sang tên mới',
+	'renameusersuppress' => 'Không tạo trang đổi hướng đến tên mới',
+	'renameuserreserve' => 'Không cho phép ai lấy tên cũ',
+	'renameuserwarnings' => 'Cảnh báo:',
+	'renameuserconfirm' => 'Đổi tên người dùng',
+	'renameusersubmit' => 'Thực hiện',
+	'renameusererrordoesnotexist' => 'Thành viên “<nowiki>$1</nowiki>” không tồn tại.',
+	'renameusererrorexists' => 'Thành viên “<nowiki>$1</nowiki>” đã hiện hữu.',
+	'renameusererrorinvalid' => 'Tên thành viên “<nowiki>$1</nowiki>” không hợp lệ.',
+	'renameuser-error-request' => 'Có trục trặc trong tiếp nhận yêu cầu. Xin hãy quay lại và thử lần nữa.',
+	'renameuser-error-same-user' => 'Bạn không thể đổi tên thành viên sang tên y hệt như vậy.',
+	'renameusersuccess' => 'Thành viên “<nowiki>$1</nowiki>” đã được đổi tên thành “<nowiki>$2</nowiki>”.',
+	'renameuser-page-exists' => 'Trang $1 đã tồn tại và không thể bị tự động ghi đè.',
+	'renameuser-page-moved' => 'Trang $1 đã được di chuyển đến $2.',
+	'renameuser-page-unmoved' => 'Trang $1 không thể di chuyển đến $2.',
+	'renameuserlogpage' => 'Nhật trình đổi tên thành viên',
+	'renameuserlogpagetext' => 'Đây là nhật trình ghi lại các thay đổi đối với tên thành viên',
+	'renameuserlogentry' => 'đã đổi tên $1 thành “$2”',
+	'renameuser-log' => 'Đã có {{PLURAL:$1|1 sửa đổi|$1 sửa đổi}}. Lý do: $2',
+	'renameuser-move-log' => 'Đã tự động di chuyển trang khi đổi tên thành viên “[[User:$1|$1]]” thành “[[User:$2|$2]]”',
+	'right-renameuser' => 'Đổi tên thành viên',
+	'renameuser-renamed-notice' => 'Thành viên này đã được đổi tên.
+Nhật trình đổi tên được ghi ở dưới để tiện theo dõi.',
+);
+
+/** Volapük (Volapük)
+ * @author Malafaya
+ * @author Smeira
+ */
+$messages['vo'] = array(
+	'renameuser' => 'Votanemön gebani',
+	'renameuser-linkoncontribs' => 'votanemön gebani',
+	'renameuser-linkoncontribs-text' => 'Votanemön gebani at',
+	'renameuser-desc' => "Votanemön gebani (gität: ''renameuser'' zesüdon)",
+	'renameuserold' => 'Gebananem anuik:',
+	'renameusernew' => 'Gebananem nulik:',
+	'renameuserreason' => 'Kod votanemama:',
+	'renameusermove' => 'Topätükön padi e bespikapadi gebana (e donapadis onsik) ad nem nulik',
+	'renameuserreserve' => 'Neletön gebananemi rigik (pos votanemam) ad pagebön ün fütür',
+	'renameuserwarnings' => 'Nuneds:',
+	'renameuserconfirm' => 'Si, votanemolös gebani',
+	'renameusersubmit' => 'Sedön',
+	'renameusererrordoesnotexist' => 'Geban: "<nowiki>$1</nowiki>" no dabinon.',
+	'renameusererrorexists' => 'Geban: "<nowiki>$1</nowiki>" ya dabinon.',
+	'renameusererrorinvalid' => 'Gebananem: "<nowiki>$1</nowiki>" no lonöfon.',
+	'renameuser-error-request' => 'Ädabinon säkäd pö daget bega. Geikolös, begö! e steifülolös dönu.',
+	'renameuser-error-same-user' => 'No kanol votanemön gebani ad nem ot.',
+	'renameusersuccess' => 'Geban: "<nowiki>$1</nowiki>" pevotanemon ad "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => 'Pad: $1 ya dabinon e no kanon pamoükön itjäfidiko.',
+	'renameuser-page-moved' => 'Pad: $1 petopätükon ad pad: $2.',
+	'renameuser-page-unmoved' => 'No eplöpos ad topätükön padi: $1 ad pad: $2.',
+	'renameuserlogpage' => 'Jenotalised votanemamas',
+	'renameuserlogpagetext' => 'Is palisedons votükams gebananemas.',
+	'renameuserlogentry' => 'evotanemon eli $1 ad "$2"',
+	'renameuser-log' => '{{PLURAL:$1|Redakam 1|Redakams $1}}. Kod: $2',
+	'renameuser-move-log' => 'Pad petopätükon itjäfidiko dü votanemama gebana: "[[User:$1|$1]]" ad "[[User:$2|$2]]"',
+	'right-renameuser' => 'Votanemön gebanis',
+);
+
+/** Walloon (Walon)
+ * @author Srtxg
+ */
+$messages['wa'] = array(
+	'renameuser' => 'Rilomer èn uzeu',
+	'renameuserold' => "No d' elodjaedje pol moumint:",
+	'renameusernew' => "Novea no d' elodjaedje:",
+	'renameuserreason' => 'Råjhon pol rilomaedje:',
+	'renameusermove' => "Displaecî les pådjes d' uzeu et d' copene (eyet leus dzo-pådjes) viè l' novea no",
+	'renameusersubmit' => 'Evoye',
+	'renameusererrordoesnotexist' => "L' uzeu «<nowiki>$1</nowiki>» n' egzistêye nén",
+	'renameusererrorexists' => "L' uzeu «<nowiki>$1</nowiki>» egzistêye dedja",
+	'renameusererrorinvalid' => "Li no d' elodjaedje «<nowiki>$1</nowiki>» n' est nén on no valide",
+	'renameusersuccess' => "L' uzeu «<nowiki>$1</nowiki>» a stî rlomé a «<nowiki>$2</nowiki>»",
+	'renameuser-page-exists' => "Li pådje $1 egzistêye dedja et n' pout nén esse otomaticmint spotcheye.",
+	'renameuser-page-moved' => 'Li pådje $1 a stî displaeceye viè $2.',
+	'renameuser-page-unmoved' => 'Li pådje $1 èn pout nén esse displaeceye viè $2.',
+	'renameuserlogpage' => "Djournå des candjmints d' no d' uzeus",
+	'renameuserlogpagetext' => "Chal pa dzo c' est ene djivêye des uzeus k' ont candjî leu no d' elodjaedje.",
+	'renameuser-log' => "k' aveut ddja fwait $1 candjmints. $2",
+	'renameuser-move-log' => "Pådje displaeceye otomaticmint tot rlomant l' uzeu «[[User:$1|$1]]» viè «[[User:$2|$2]]»",
+);
+
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'renameuser' => 'בײַטן באַניצער נאָמען',
+	'renameuser-linkoncontribs' => 'בײַטן באַניצער נאָמען',
+	'renameuser-linkoncontribs-text' => 'בײַטן נאָמען פֿון דעם באַניצער',
+	'renameuser-desc' => "לייגט צו א [[Special:Renameuser|באַזונדערן בלאַט]] צו בײַטן א באַניצער נאָמען (פֿאדערט ''renameuser'' רעכט)",
+	'renameuserold' => 'לויפיגער באַניצער-נאָמען:',
+	'renameusernew' => 'נײַער באַניצער-נאָמען:',
+	'renameuserreason' => 'סיבה פֿאַר ענדערן נאָמען:',
+	'renameusermove' => 'באַוועגן באַניצער און שמועס בלעטער (מיט זייערע אונטערבלעטער) צו נײַעם נאָמען',
+	'renameusersuppress' => 'שאַפֿט נישט קיין ווייטערפֿירונגען צום נײַעם נאָמען',
+	'renameuserreserve' => 'בלאקירן דעם אַלטן באַניצער־נאָמען פֿון נוץ אין צוקונפֿט',
+	'renameuserwarnings' => 'ווארענונגען:',
+	'renameuserconfirm' => 'יאָ, ענדער דעם באַניצער־נאָמען',
+	'renameusersubmit' => 'אײַנגעבן',
+	'renameusererrordoesnotexist' => 'דער באַניצער "<nowiki>$1</nowiki>" עקזיסטירט נישט.',
+	'renameusererrorexists' => 'דער באַניצער "<nowiki>$1</nowiki>" עקזיסטירט שוין.',
+	'renameusererrorinvalid' => 'דער באַניצער נאָמען  "<nowiki>$1</nowiki>" איז נישט גילטיק.',
+	'renameuser-error-request' => 'געווען א פראבלעם מיט באַקומען די בקשה.
+ביטע גייט צוריק און פרואווט ווידעראַמאָל.',
+	'renameuser-error-same-user' => 'מען קען נישט ענדערן א באַניצער צום זעלבן נאָמען ווי פֿריער.',
+	'renameusersuccess' => 'דער באַניצער־נאָמען "<nowiki>$1</nowiki>" איז געווארן געענדערט צו "<nowiki>$2</nowiki>".',
+	'renameuser-page-exists' => "דער בלאַט $1 עקזיסטירט שוין און מ'קען אים נישט אויטאָמאַטיש איבערשרײַבן.",
+	'renameuser-page-moved' => 'דער בלאַט $1 איז געווארן באַוועגט צו $2.',
+	'renameuser-page-unmoved' => 'מען קען נישט באַוועגן דעם בלאַט $1 צו $2.',
+	'renameuserlogpage' => 'באַניצער נאָמען-טויש לאָג-בוך',
+	'renameuserlogpagetext' => 'דאָס איז אַ לאג פֿון ענדערונגען צו באַניצער־נעמען.',
+	'renameuserlogentry' => 'מ\'האט דעם נאָמען $1 געענדערט צו "$2"',
+	'renameuser-log' => '{{PLURAL:$1|1 רעדאַקטירונג|$1 רעדאַקטירונגען}}. גרונד: $2',
+	'renameuser-move-log' => 'אויטאמאַטיש באַוועגט בלאַט דורך ענדערן באַניצער־נאָמען פֿון "[[User:$1|$1]]" צו "[[User:$2|$2]]"',
+	'right-renameuser' => 'בײַטן באַניצער נעמען',
+	'renameuser-renamed-notice' => 'דער נאָמען פֿון דעם באַניצער איז געענדערט געווארן.
+דער ענדערן נעמען לאגבוך ווערט געוויזן אונטן.',
+);
+
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'renameuserold' => 'Orúkọ oníṣe ìsinsìnyí:',
+	'renameusernew' => 'Orúkọ oníṣe tuntun:',
+	'renameuserwarnings' => 'Àwọn ìkìlọ̀:',
+	'renameusersubmit' => 'Fúnsílẹ̀',
+	'renameusererrordoesnotexist' => 'Oníṣe "<nowiki>$1</nowiki>" kò sí.',
+	'renameusererrorexists' => 'Oníṣe "<nowiki>$1</nowiki>" tilẹ̀ wà tẹ́lẹ̀.',
+	'renameuserlogentry' => 'ṣàtúnsọlórúkọ $1 sí $2',
+	'renameuser-log' => '{{PLURAL:$1|Àtúnṣe 1|Àwọn àtúnṣe $1}}. Ìdíẹ̀: $2',
+);
+
+/** Cantonese (粵語) */
+$messages['yue'] = array(
+	'renameuser' => '改用戶名',
+	'renameuser-desc' => "幫用戶改名 (需要 ''renameuser'' 權限)",
+	'renameuserold' => '現時嘅用戶名:',
+	'renameusernew' => '新嘅用戶名:',
+	'renameuserreason' => '改名嘅原因:',
+	'renameusermove' => '搬用戶頁同埋佢嘅對話頁(同埋佢哋嘅細頁)到新名',
+	'renameuserwarnings' => '警告:',
+	'renameuserconfirm' => '係,改呢個用戶名',
+	'renameusersubmit' => '遞交',
+	'renameusererrordoesnotexist' => '用戶"<nowiki>$1</nowiki>"唔存在',
+	'renameusererrorexists' => '用戶"<nowiki>$1</nowiki>"已經存在',
+	'renameusererrorinvalid' => '用戶名"<nowiki>$1</nowiki>"唔正確',
+	'renameuser-error-request' => '響收到請求嗰陣出咗問題。
+請返去再試過。',
+	'renameuser-error-same-user' => '你唔可以改一位用戶係同之前嘅嘢一樣。',
+	'renameusersuccess' => '用戶"<nowiki>$1</nowiki>"已經改咗名做"<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => '$1呢一版已經存在,唔可以自動重寫。',
+	'renameuser-page-moved' => '$1呢一版已經搬到去$2。',
+	'renameuser-page-unmoved' => '$1呢一版唔能夠搬到去$2。',
+	'renameuserlogpage' => '用戶改名日誌',
+	'renameuserlogpagetext' => '呢個係改用戶名嘅日誌',
+	'renameuserlogentry' => '已經幫 $1 改咗名做 "$2"',
+	'renameuser-log' => '擁有$1次編輯。 原因: $2',
+	'renameuser-move-log' => '當由"[[User:$1|$1]]"改名做"[[User:$2|$2]]"嗰陣已經自動搬咗用戶頁',
+	'right-renameuser' => '改用戶名',
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Bencmq
+ * @author Gaoxuewei
+ * @author Gzdavidwong
+ * @author Hydra
+ * @author Liangent
+ * @author PhiLiP
+ * @author Xiaomingyan
+ */
+$messages['zh-hans'] = array(
+	'renameuser' => '更名用户',
+	'renameuser-linkoncontribs' => '用户重新命名',
+	'renameuser-linkoncontribs-text' => '重命名此用户',
+	'renameuser-desc' => "添加一个[[Special:Renameuser|特殊页面]]来重命名用户(需要''renameuser''权限)",
+	'renameuserold' => '当前用户名:',
+	'renameusernew' => '新用户名:',
+	'renameuserreason' => '重命名的原因:',
+	'renameusermove' => '移动用户页及其对话页(包括各子页)到新的名字',
+	'renameusersuppress' => '不要创建重定向到新的名称',
+	'renameuserreserve' => '封禁旧用户名,使之不能在日后使用',
+	'renameuserwarnings' => '警告:',
+	'renameuserconfirm' => '是,为用户重命名',
+	'renameusersubmit' => '提交',
+	'renameusererrordoesnotexist' => '用户"<nowiki>$1</nowiki>"不存在',
+	'renameusererrorexists' => '用户"<nowiki>$1</nowiki>"已存在',
+	'renameusererrorinvalid' => '用户名"<nowiki>$1</nowiki>"不可用',
+	'renameuser-error-request' => '在收到请求时出现问题。
+请回去重试。',
+	'renameuser-error-same-user' => '您不可以更改一位用户是跟之前的东西一样。',
+	'renameusersuccess' => '用户"<nowiki>$1</nowiki>"已经更名为"<nowiki>$2</nowiki>"',
+	'renameuser-page-exists' => '$1这一页己经存在,不能自动覆写。',
+	'renameuser-page-moved' => '$1这一页已经移动到$2。',
+	'renameuser-page-unmoved' => '$1这一页不能移动到$2。',
+	'renameuserlogpage' => '用户更名日志',
+	'renameuserlogpagetext' => '本日志记录用户名的更改',
+	'renameuserlogentry' => '将$1更名为“$2”',
+	'renameuser-log' => '拥有$1次编辑。 理由: $2',
+	'renameuser-move-log' => '当由"[[User:$1|$1]]"重命名作"[[User:$2|$2]]"时已经自动移动用户页',
+	'right-renameuser' => '更名用户',
+	'renameuser-renamed-notice' => '本用户已更名。下面提供更名日志以供参考。',
+);
+
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Gaoxuewei
+ * @author Horacewai2
+ * @author Mark85296341
+ * @author Waihorace
+ * @author Wrightbus
+ */
+$messages['zh-hant'] = array(
+	'renameuser' => '用戶重新命名',
+	'renameuser-linkoncontribs' => '用戶重新命名',
+	'renameuser-linkoncontribs-text' => '重命名此用戶',
+	'renameuser-desc' => "新增一個[[Special:Renameuser|特殊頁面]]來重命名用戶(需要''renameuser''權限)",
+	'renameuserold' => '現時用戶名:',
+	'renameusernew' => '新的使用者名稱:',
+	'renameuserreason' => '重新命名的原因:',
+	'renameusermove' => '移動用戶頁及其對話頁(包括各子頁)到新的名字',
+	'renameusersuppress' => '不要建立重定向到新的名稱',
+	'renameuserreserve' => '封禁舊使用者名稱,使之不能在日後使用',
+	'renameuserwarnings' => '警告:',
+	'renameuserconfirm' => '是,為用戶重新命名',
+	'renameusersubmit' => '提交',
+	'renameusererrordoesnotexist' => '用戶「<nowiki>$1</nowiki>」不存在',
+	'renameusererrorexists' => '用戶「<nowiki>$1</nowiki>」已存在',
+	'renameusererrorinvalid' => '用戶名「<nowiki>$1</nowiki>」不可用',
+	'renameuser-error-request' => '在收到請求時出現問題。
+請回去重試。',
+	'renameuser-error-same-user' => '您不可以更改一位用戶是跟之前的東西一樣。',
+	'renameusersuccess' => '用戶「<nowiki>$1</nowiki>」已經更名為「<nowiki>$2</nowiki>」',
+	'renameuser-page-exists' => '$1 這一頁己經存在,不能自動覆寫。',
+	'renameuser-page-moved' => '$1 這一頁已經移動到 $2。',
+	'renameuser-page-unmoved' => '$1 這一頁不能移動到 $2。',
+	'renameuserlogpage' => '用戶名變更日誌',
+	'renameuserlogpagetext' => '這是用戶名更改的日誌',
+	'renameuserlogentry' => '已經把 $1 重新命名為「$2」',
+	'renameuser-log' => '擁有 $1 次編輯。 理由:$2',
+	'renameuser-move-log' => '當由「[[User:$1|$1]]」重新命名作「[[User:$2|$2]]」時已經自動移動用戶頁',
+	'right-renameuser' => '重新命名用戶',
+	'renameuser-renamed-notice' => '該用戶已被重新命名。
+以下列出更改用戶名日誌以供參考。',
+);
+
+/** Zulu (isiZulu) */
+$messages['zu'] = array(
+	'renameusersubmit' => 'Yisa',
+);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,112 @@
+<?php
+if ( !defined( 'MEDIAWIKI' ) ) die();
+/**
+ * A Special Page extension to rename users, runnable by users with renameuser
+ * rights
+ *
+ * @file
+ * @ingroup Extensions
+ * @author Ævar Arnfjörð Bjarmason <avarab at gmail.com>
+ * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+
+$wgAvailableRights[] = 'renameuser';
+$wgGroupPermissions['bureaucrat']['renameuser'] = true;
+
+$wgExtensionCredits['specialpage'][] = array(
+	'path' => __FILE__,
+	'name' => 'Renameuser',
+	'author'         => array( 'Ævar Arnfjörð Bjarmason', 'Aaron Schulz' ),
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:Renameuser',
+	'descriptionmsg' => 'renameuser-desc',
+);
+
+# Internationalisation files
+$dir = dirname( __FILE__ ) . '/';
+$wgExtensionMessagesFiles['Renameuser'] = $dir . 'Renameuser.i18n.php';
+$wgExtensionMessagesFiles['RenameuserAliases'] = $dir . 'Renameuser.alias.php';
+
+/**
+ * Users with more than this number of edits will have their rename operation
+ * deferred via the job queue.
+ */
+define( 'RENAMEUSER_CONTRIBJOB', 5000 );
+
+# Add a new log type
+global $wgLogTypes, $wgLogNames, $wgLogHeaders, $wgLogActions;
+$wgLogTypes[]                          = 'renameuser';
+$wgLogNames['renameuser']              = 'renameuserlogpage';
+$wgLogHeaders['renameuser']            = 'renameuserlogpagetext';
+# $wgLogActions['renameuser/renameuser'] = 'renameuserlogentry';
+$wgLogActionsHandlers['renameuser/renameuser'] = 'wfRenameUserLogActionText'; // deal with old breakage
+
+/**
+ * @param $type
+ * @param $action
+ * @param $title Title
+ * @param $skin Skin
+ * @param $params array
+ * @param $filterWikilinks bool
+ * @return String
+ */
+function wfRenameUserLogActionText( $type, $action, $title = null, $skin = null, $params = array(), $filterWikilinks = false ) {
+	if ( !$title || $title->getNamespace() !== NS_USER ) {
+		$rv = ''; // handled in comment, the old way
+	} else {
+		$titleLink = $skin ?
+			$skin->makeLinkObj( $title, htmlspecialchars( $title->getPrefixedText() ) ) : htmlspecialchars( $title->getText() );
+		# Add title to params
+		array_unshift( $params, $titleLink );
+		$rv = wfMsg( 'renameuserlogentry', $params );
+	}
+	return $rv;
+}
+
+$wgAutoloadClasses['SpecialRenameuser'] = dirname( __FILE__ ) . '/Renameuser_body.php';
+$wgAutoloadClasses['RenameUserJob'] = dirname( __FILE__ ) . '/RenameUserJob.php';
+$wgSpecialPages['Renameuser'] = 'SpecialRenameuser';
+$wgSpecialPageGroups['Renameuser'] = 'users';
+$wgJobClasses['renameUser'] = 'RenameUserJob';
+
+$wgHooks['ShowMissingArticle'][] = 'wfRenameUserShowLog';
+$wgHooks['ContributionsToolLinks'][] = 'wfRenameuserOnContribsLink';
+
+/**
+ * Show a log if the user has been renamed and point to the new username.
+ * Don't show the log if the $oldUserName exists as a user.
+ *
+ * @param $article Article
+ */
+function wfRenameUserShowLog( $article ) {
+	global $wgOut;
+	$title = $article->getTitle();
+	$oldUser = User::newFromName( $title->getBaseText() );
+	if ( ($title->getNamespace() == NS_USER || $title->getNamespace() == NS_USER_TALK ) && ($oldUser && $oldUser->isAnon() )) {
+		// Get the title for the base userpage
+		$page = Title::makeTitle( NS_USER, str_replace( ' ', '_', $title->getBaseText() ) )->getPrefixedDBkey();
+		LogEventsList::showLogExtract( $wgOut, 'renameuser', $page, '', array( 'lim' => 10, 'showIfEmpty' => false,
+			'msgKey' => array( 'renameuser-renamed-notice', $title->getBaseText() ) ) );
+	}
+	return true;
+}
+
+/**
+ * @param $id
+ * @param $nt Title
+ * @param $tools
+ * @return bool
+ */
+function wfRenameuserOnContribsLink( $id, $nt, &$tools ) {
+	global $wgUser;
+
+	if ( $wgUser->isAllowed( 'renameuser' ) && $id ) {
+		$tools[] = Linker::link(
+			SpecialPage::getTitleFor( 'Renameuser' ),
+			wfMsg( 'renameuser-linkoncontribs' ),
+			array( 'title' => wfMsgExt( 'renameuser-linkoncontribs-text', 'parseinline' ) ),
+			array( 'oldusername' => $nt->getText() )
+		);
+	}
+	return true;
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser_body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser_body.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/Renameuser_body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,571 @@
+<?php
+if ( !defined( 'MEDIAWIKI' ) ) {
+	echo "RenameUser extension\n";
+	exit( 1 );
+}
+
+/**
+ * Special page allows authorised users to rename
+ * user accounts
+ */
+class SpecialRenameuser extends SpecialPage {
+	/**
+	 * Constructor
+	 */
+	public function __construct() {
+		parent::__construct( 'Renameuser', 'renameuser' );
+	}
+
+	/**
+	 * Show the special page
+	 *
+	 * @param mixed $par Parameter passed to the page
+	 */
+	public function execute( $par ) {
+		global $wgOut, $wgUser, $wgRequest, $wgContLang;
+		global $wgCapitalLinks;
+
+		$this->setHeaders();
+		$wgOut->addWikiMsg( 'renameuser-summary' );
+
+		if ( !$wgUser->isAllowed( 'renameuser' ) ) {
+			$wgOut->permissionRequired( 'renameuser' );
+			return;
+		}
+
+		if ( wfReadOnly() ) {
+			$wgOut->readOnlyPage();
+			return;
+		}
+
+		if( $wgUser->isBlocked() ){
+			$wgOut->blockedPage();
+		}
+
+		$showBlockLog = $wgRequest->getBool( 'submit-showBlockLog' );
+		$oldnamePar = trim( str_replace( '_', ' ', $wgRequest->getText( 'oldusername', $par ) ) );
+		$oldusername = Title::makeTitle( NS_USER, $oldnamePar );
+		// Force uppercase of newusername, otherwise wikis with wgCapitalLinks=false can create lc usernames
+		$newusername = Title::makeTitleSafe( NS_USER, $wgContLang->ucfirst( $wgRequest->getText( 'newusername' ) ) );
+		$oun = is_object( $oldusername ) ? $oldusername->getText() : '';
+		$nun = is_object( $newusername ) ? $newusername->getText() : '';
+		$token = $wgUser->editToken();
+		$reason = $wgRequest->getText( 'reason' );
+
+		$move_checked = $wgRequest->getBool( 'movepages', !$wgRequest->wasPosted());
+		$suppress_checked = $wgRequest->getCheck( 'suppressredirect' );
+
+		$warnings = array();
+		if ( $oun && $nun && !$wgRequest->getCheck( 'confirmaction' )  ) {
+			wfRunHooks( 'RenameUserWarning', array( $oun, $nun, &$warnings ) );
+		}
+
+		$wgOut->addHTML(
+			Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getTitle()->getLocalUrl(), 'id' => 'renameuser' ) ) .
+			Xml::openElement( 'fieldset' ) .
+			Xml::element( 'legend', null, wfMsg( 'renameuser' ) ) .
+			Xml::openElement( 'table', array( 'id' => 'mw-renameuser-table' ) ) .
+			"<tr>
+				<td class='mw-label'>" .
+					Xml::label( wfMsg( 'renameuserold' ), 'oldusername' ) .
+				"</td>
+				<td class='mw-input'>" .
+					Xml::input( 'oldusername', 20, $oun, array( 'type' => 'text', 'tabindex' => '1' ) ) . ' ' .
+				"</td>
+			</tr>
+			<tr>
+				<td class='mw-label'>" .
+					Xml::label( wfMsg( 'renameusernew' ), 'newusername' ) .
+				"</td>
+				<td class='mw-input'>" .
+					Xml::input( 'newusername', 20, $nun, array( 'type' => 'text', 'tabindex' => '2' ) ) .
+				"</td>
+			</tr>
+			<tr>
+				<td class='mw-label'>" .
+					Xml::label( wfMsg( 'renameuserreason' ), 'reason' ) .
+				"</td>
+				<td class='mw-input'>" .
+					Xml::input( 'reason', 40, $reason, array( 'type' => 'text', 'tabindex' => '3', 'maxlength' => 255 ) ) .
+				"</td>
+			</tr>"
+		);
+		if ( $wgUser->isAllowed( 'move' ) ) {
+			$wgOut->addHTML( "
+				<tr>
+					<td> 
+					</td>
+					<td class='mw-input'>" .
+						Xml::checkLabel( wfMsg( 'renameusermove' ), 'movepages', 'movepages',
+							$move_checked, array( 'tabindex' => '4' ) ) .
+					"</td>
+				</tr>"
+			);
+
+			if ( $wgUser->isAllowed( 'suppressredirect' ) ) {
+				$wgOut->addHTML( "
+					<tr>
+						<td> 
+						</td>
+						<td class='mw-input'>" .
+							Xml::checkLabel( wfMsg( 'renameusersuppress' ), 'suppressredirect', 'suppressredirect',
+								$suppress_checked, array( 'tabindex' => '5' ) ) .
+						"</td>
+					</tr>"
+				);
+			}
+		}
+		if ( $warnings ) {
+			$warningsHtml = array();
+			foreach ( $warnings as $warning )
+				$warningsHtml[] = is_array( $warning ) ?
+					call_user_func_array( 'wfMsgWikiHtml', $warning ) :
+					wfMsgHtml( $warning );
+			$wgOut->addHTML( "
+				<tr>
+					<td class='mw-label'>" . wfMsgWikiHtml( 'renameuserwarnings' ) . "
+					</td>
+					<td class='mw-input'>" .
+						'<ul style="color: red; font-weight: bold"><li>' .
+							implode( '</li><li>', $warningsHtml ) . '</li></ul>' .
+					"</td>
+				</tr>"
+			);
+			$wgOut->addHTML( "
+				<tr>
+					<td> 
+					</td>
+					<td class='mw-input'>" .
+						Xml::checkLabel( wfMsg( 'renameuserconfirm' ), 'confirmaction', 'confirmaction',
+							false, array( 'tabindex' => '6' ) ) .
+					"</td>
+				</tr>"
+			);
+		}
+		$wgOut->addHTML( "
+			<tr>
+				<td> 
+				</td>
+				<td class='mw-submit'>" .
+					Xml::submitButton( wfMsg( 'renameusersubmit' ), array( 'name' => 'submit',
+						'tabindex' => '7', 'id' => 'submit' ) ) .
+					' ' .
+					Xml::submitButton( wfMsg( 'blocklogpage' ), array ( 'name' => 'submit-showBlockLog',
+						'id' => 'submit-showBlockLog', 'tabindex' => '8' ) ) .
+				"</td>
+			</tr>" .
+			Xml::closeElement( 'table' ) .
+			Xml::closeElement( 'fieldset' ) .
+			Html::hidden( 'token', $token ) .
+			Xml::closeElement( 'form' ) . "\n"
+		);
+
+		// Show block log if requested
+		if ( $showBlockLog && is_object( $oldusername ) ) {
+			$this->showLogExtract( $oldusername, 'block', $wgOut ) ;
+			return;
+		}
+
+		if ( $wgRequest->getText( 'token' ) === '' ) {
+			# They probably haven't even submitted the form, so don't go further.
+			return;
+		} elseif ( $warnings ) {
+			# Let user read warnings
+			return;
+		} elseif ( !$wgRequest->wasPosted() || !$wgUser->matchEditToken( $wgRequest->getVal( 'token' ) ) ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>", 'renameuser-error-request' );
+			return;
+		} elseif ( !is_object( $oldusername ) ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+				array( 'renameusererrorinvalid', $wgRequest->getText( 'oldusername' ) ) );
+			return;
+		} elseif ( !is_object( $newusername ) ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+				array( 'renameusererrorinvalid', $wgRequest->getText( 'newusername' ) ) );
+			return;
+		} elseif ( $oldusername->getText() == $newusername->getText() ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>", 'renameuser-error-same-user' );
+			return;
+		}
+
+		// Suppress username validation of old username
+		$olduser = User::newFromName( $oldusername->getText(), false );
+		$newuser = User::newFromName( $newusername->getText(), 'creatable' );
+
+		// It won't be an object if for instance "|" is supplied as a value
+		if ( !is_object( $olduser ) ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+				array( 'renameusererrorinvalid', $oldusername->getText() ) );
+			return;
+		}
+		if ( !is_object( $newuser ) || !User::isCreatableName( $newuser->getName() ) ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+				array( 'renameusererrorinvalid', $newusername->getText() ) );
+			return;
+		}
+
+		// Check for the existence of lowercase oldusername in database.
+		// Until r19631 it was possible to rename a user to a name with first character as lowercase
+		if ( $oldusername->getText() !== $wgContLang->ucfirst( $oldusername->getText() ) ) {
+			// oldusername was entered as lowercase -> check for existence in table 'user'
+			$dbr = wfGetDB( DB_SLAVE );
+			$uid = $dbr->selectField( 'user', 'user_id',
+				array( 'user_name' => $oldusername->getText() ),
+				__METHOD__ );
+			if ( $uid === false ) {
+				if ( !$wgCapitalLinks ) {
+					$uid = 0; // We are on a lowercase wiki but lowercase username does not exists
+				} else {
+					// We are on a standard uppercase wiki, use normal
+					$uid = $olduser->idForName();
+					$oldusername = Title::makeTitleSafe( NS_USER, $olduser->getName() );
+				}
+			}
+		} else {
+			// oldusername was entered as upperase -> standard procedure
+			$uid = $olduser->idForName();
+		}
+
+		if ( $uid == 0 ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+				array( 'renameusererrordoesnotexist', $oldusername->getText() ) );
+			return;
+		}
+
+		if ( $newuser->idForName() != 0 ) {
+			$wgOut->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+				array( 'renameusererrorexists', $newusername->getText() ) );
+			return;
+		}
+
+		// Always get the edits count, it will be used for the log message
+		$contribs = User::edits( $uid );
+
+		// Give other affected extensions a chance to validate or abort
+		if ( !wfRunHooks( 'RenameUserAbort', array( $uid, $oldusername->getText(), $newusername->getText() ) ) ) {
+			return;
+		}
+
+		// Do the heavy lifting...
+		$rename = new RenameuserSQL( $oldusername->getText(), $newusername->getText(), $uid );
+		if ( !$rename->rename() ) {
+			return;
+		}
+
+		// If this user is renaming his/herself, make sure that Title::moveTo()
+		// doesn't make a bunch of null move edits under the old name!
+		if ( $wgUser->getId() == $uid ) {
+			$wgUser->setName( $newusername->getText() );
+		}
+
+		// Log this rename
+		$log = new LogPage( 'renameuser' );
+		$log->addEntry( 'renameuser', $oldusername, wfMsgExt( 'renameuser-log', array( 'parsemag', 'content' ),
+			$wgContLang->formatNum( $contribs ), $reason ), $newusername->getText() );
+
+		// Move any user pages
+		if ( $wgRequest->getCheck( 'movepages' ) && $wgUser->isAllowed( 'move' ) ) {
+			$dbr = wfGetDB( DB_SLAVE );
+
+			$pages = $dbr->select(
+				'page',
+				array( 'page_namespace', 'page_title' ),
+				array(
+					'page_namespace IN (' . NS_USER . ',' . NS_USER_TALK . ')',
+					'(page_title ' . $dbr->buildLike( $oldusername->getDBkey() . '/', $dbr->anyString() ) .
+						' OR page_title = ' . $dbr->addQuotes( $oldusername->getDBkey() ) . ')'
+				),
+				__METHOD__
+			);
+
+			$suppressRedirect = false;
+
+			if ( $wgRequest->getCheck( 'suppressredirect' ) && $wgUser->isAllowed( 'suppressredirect' ) ) {
+				$suppressRedirect = true;
+			}
+
+			$output = '';
+			foreach ( $pages as $row ) {
+				$oldPage = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
+				$newPage = Title::makeTitleSafe( $row->page_namespace,
+					preg_replace( '!^[^/]+!', $newusername->getDBkey(), $row->page_title ) );
+				# Do not autodelete or anything, title must not exist
+				if ( $newPage->exists() && !$oldPage->isValidMoveTarget( $newPage ) ) {
+					$link = Linker::linkKnown( $newPage );
+					$output .= Html::rawElement(
+								'li',
+								array( 'class' => 'mw-renameuser-pe' ),
+								wfMessage( 'renameuser-page-exists' )->rawParams( $link )->escaped()
+							);
+				} else {
+					$success = $oldPage->moveTo(
+								$newPage,
+								false, 
+								wfMessage(
+									'renameuser-move-log',
+									$oldusername->getText(),
+									$newusername->getText() )->inContentLanguage()->text(),
+								!$suppressRedirect
+							);
+					if ( $success === true ) {
+						# oldPage is not known in case of redirect suppression
+						$oldLink = Linker::link( $oldPage, null, array(), array( 'redirect' => 'no' ) );
+
+						# newPage is always known because the move was successful
+						$newLink = Linker::linkKnown( $newPage );
+
+						$output .= Html::rawElement(
+									'li',
+									array( 'class' => 'mw-renameuser-pm' ),
+									wfMessage( 'renameuser-page-moved' )->rawParams( $oldLink, $newLink )->escaped()
+								);
+					} else {
+						$oldLink = Linker::linkKnown( $oldPage );
+						$newLink = Linker::link( $newPage );
+						$output .= Html::rawElement(
+									'li', array( 'class' => 'mw-renameuser-pu' ),
+									wfMessage( 'renameuser-page-unmoved' )->rawParams( $oldLink, $newLink )->escaped()
+								);
+					}
+				}
+			}
+			if ( $output ) {
+				$wgOut->addHTML( Html::rawElement( 'ul', array(), $output ) );
+			}
+		}
+
+		// Output success message stuff :)
+		$wgOut->wrapWikiMsg( "<div class=\"successbox\">$1</div><br style=\"clear:both\" />",
+			array( 'renameusersuccess', $oldusername->getText(), $newusername->getText() ) );
+	}
+
+	/**
+	 * @param $username Title
+	 * @param $type
+	 * @param $out OutputPage
+	 */
+	function showLogExtract( $username, $type, &$out ) {
+		# Show relevant lines from the logs:
+		$out->addHTML( Xml::element( 'h2', null, LogPage::logName( $type ) ) . "\n" );
+		LogEventsList::showLogExtract( $out, $type, $username->getPrefixedText() );
+	}
+}
+
+class RenameuserSQL {
+	/**
+	  * The old username
+	  *
+	  * @var string
+	  * @access private
+	  */
+	var $old;
+
+	/**
+	  * The new username
+	  *
+	  * @var string
+	  * @access private
+	  */
+	var $new;
+
+	/**
+	  * The user ID
+	  *
+	  * @var integer
+	  * @access private
+	  */
+	var $uid;
+
+	/**
+	  * The the tables => fields to be updated
+	  *
+	  * @var array
+	  * @access private
+	  */
+	var $tables;
+
+	/**
+	 * Constructor
+	 *
+	 * @param $old string The old username
+	 * @param $new string The new username
+	 * @param $uid
+	 */
+	function __construct( $old, $new, $uid ) {
+		$this->old = $old;
+		$this->new = $new;
+		$this->uid = $uid;
+
+		$this->tables = array(); // Immediate updates
+		$this->tables['image'] = array( 'img_user_text', 'img_user' );
+		$this->tables['oldimage'] = array( 'oi_user_text', 'oi_user' );
+		$this->tables['filearchive'] = array('fa_user_text','fa_user');
+		$this->tablesJob = array(); // Slow updates
+		// If this user has a large number of edits, use the jobqueue
+		if ( User::edits( $this->uid ) > RENAMEUSER_CONTRIBJOB ) {
+			$this->tablesJob['revision'] = array( 'rev_user_text', 'rev_user', 'rev_timestamp' );
+			$this->tablesJob['archive'] = array( 'ar_user_text', 'ar_user', 'ar_timestamp' );
+			$this->tablesJob['logging'] = array( 'log_user_text', 'log_user', 'log_timestamp' );
+		} else {
+			$this->tables['revision'] = array( 'rev_user_text', 'rev_user' );
+			$this->tables['archive'] = array( 'ar_user_text', 'ar_user' );
+			$this->tables['logging'] = array( 'log_user_text', 'log_user' );
+		}
+		// Recent changes is pretty hot, deadlocks occur if done all at once
+		if ( wfQueriesMustScale() ) {
+			$this->tablesJob['recentchanges'] = array( 'rc_user_text', 'rc_user', 'rc_timestamp' );
+		} else {
+			$this->tables['recentchanges'] = array( 'rc_user_text', 'rc_user' );
+		}
+
+		wfRunHooks( 'RenameUserSQL', array( $this ) );
+	}
+
+	/**
+	 * Do the rename operation
+	 */
+	function rename() {
+		global $wgMemc, $wgAuth, $wgUpdateRowsPerJob;
+
+		wfProfileIn( __METHOD__ );
+
+		$dbw = wfGetDB( DB_MASTER );
+		$dbw->begin();
+		wfRunHooks( 'RenameUserPreRename', array( $this->uid, $this->old, $this->new ) );
+
+		// Rename and touch the user before re-attributing edits,
+		// this avoids users still being logged in and making new edits while
+		// being renamed, which leaves edits at the old name.
+		$dbw->update( 'user',
+			array( 'user_name' => $this->new, 'user_touched' => $dbw->timestamp() ),
+			array( 'user_name' => $this->old ),
+			__METHOD__
+		);
+		if ( !$dbw->affectedRows() ) {
+			$dbw->rollback();
+			return false;
+		}
+		// Reset token to break login with central auth systems.
+		// Again, avoids user being logged in with old name.
+		$user = User::newFromId( $this->uid );
+		$authUser = $wgAuth->getUserInstance( $user );
+		$authUser->resetAuthToken();
+
+		// Delete from memcached.
+		$wgMemc->delete( wfMemcKey( 'user', 'id', $this->uid ) );
+
+		// Update ipblock list if this user has a block in there.
+		$dbw->update( 'ipblocks',
+			array( 'ipb_address' => $this->new ),
+			array( 'ipb_user' => $this->uid, 'ipb_address' => $this->old ),
+			__METHOD__ );
+		// Update this users block/rights log. Ideally, the logs would be historical,
+		// but it is really annoying when users have "clean" block logs by virtue of
+		// being renamed, which makes admin tasks more of a pain...
+		$oldTitle = Title::makeTitle( NS_USER, $this->old );
+		$newTitle = Title::makeTitle( NS_USER, $this->new );
+		$dbw->update( 'logging',
+			array( 'log_title' => $newTitle->getDBkey() ),
+			array( 'log_type' => array( 'block', 'rights' ),
+				'log_namespace' => NS_USER,
+				'log_title' => $oldTitle->getDBkey() ),
+			__METHOD__ );
+		// Do immediate updates!
+		foreach ( $this->tables as $table => $fieldSet ) {
+			list( $nameCol, $userCol ) = $fieldSet;
+			$dbw->update( $table,
+				array( $nameCol => $this->new ),
+				array( $nameCol => $this->old, $userCol => $this->uid ),
+				__METHOD__
+			);
+		}
+
+		// Increase time limit (like CheckUser); this can take a while...
+		if ( $this->tablesJob ) {
+			wfSuppressWarnings();
+			set_time_limit( 120 );
+			wfRestoreWarnings();
+		}
+
+		$jobs = array(); // jobs for all tables
+		// Construct jobqueue updates...
+		// FIXME: if a bureaucrat renames a user in error, he/she
+		// must be careful to wait until the rename finishes before
+		// renaming back. This is due to the fact the the job "queue"
+		// is not really FIFO, so we might end up with a bunch of edits
+		// randomly mixed between the two new names. Some sort of rename
+		// lock might be in order...
+		foreach ( $this->tablesJob as $table => $params ) {
+			$userTextC = $params[0]; // some *_user_text column
+			$userIDC = $params[1]; // some *_user column
+			$timestampC = $params[2]; // some *_timestamp column
+
+			$res = $dbw->select( $table,
+				array( $timestampC ),
+				array( $userTextC => $this->old, $userIDC => $this->uid ),
+				__METHOD__,
+				array( 'ORDER BY' => "$timestampC ASC" )
+			);
+
+			$jobParams = array();
+			$jobParams['table'] = $table;
+			$jobParams['column'] = $userTextC;
+			$jobParams['uidColumn'] = $userIDC;
+			$jobParams['timestampColumn'] = $timestampC;
+			$jobParams['oldname'] = $this->old;
+			$jobParams['newname'] = $this->new;
+			$jobParams['userID'] = $this->uid;
+			// Timestamp column data for index optimizations
+			$jobParams['minTimestamp'] = '0';
+			$jobParams['maxTimestamp'] = '0';
+			$jobParams['count'] = 0;
+
+			// Insert jobs into queue!
+			while ( true ) {
+				$row = $dbw->fetchObject( $res );
+				if ( !$row ) {
+					# If there are any job rows left, add it to the queue as one job
+					if ( $jobParams['count'] > 0 ) {
+						$jobs[] = Job::factory( 'renameUser', $oldTitle, $jobParams );
+					}
+					break;
+				}
+				# Since the ORDER BY is ASC, set the min timestamp with first row
+				if ( $jobParams['count'] == 0 ) {
+					$jobParams['minTimestamp'] = $row->$timestampC;
+				}
+				# Keep updating the last timestamp, so it should be correct
+				# when the last item is added.
+				$jobParams['maxTimestamp'] = $row->$timestampC;
+				# Update row counter
+				$jobParams['count']++;
+				# Once a job has $wgUpdateRowsPerJob rows, add it to the queue
+				if ( $jobParams['count'] >= $wgUpdateRowsPerJob ) {
+					$jobs[] = Job::factory( 'renameUser', $oldTitle, $jobParams );
+					$jobParams['minTimestamp'] = '0';
+					$jobParams['maxTimestamp'] = '0';
+					$jobParams['count'] = 0;
+				}
+			}
+			$dbw->freeResult( $res );
+		}
+
+		if ( count( $jobs ) > 0 ) {
+			Job::safeBatchInsert( $jobs ); // don't commit yet
+		}
+
+		// Commit the transaction
+		$dbw->commit();
+
+		// Delete from memcached again to make sure
+		$wgMemc->delete( wfMemcKey( 'user', 'id', $this->uid ) );
+
+		// Clear caches and inform authentication plugins
+		$user = User::newFromId( $this->uid );
+		$wgAuth->updateExternalDB( $user );
+		wfRunHooks( 'RenameUserComplete', array( $this->uid, $this->old, $this->new ) );
+
+		wfProfileOut( __METHOD__ );
+		return true;
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/SpecialRenameuser.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/SpecialRenameuser.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/SpecialRenameuser.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,64 +1 @@
-<?php
-if (!defined('MEDIAWIKI')) die();
-/**
- * A Special Page extension to rename users, runnable by users with renameuser
- * righs
- *
- * @addtogroup Extensions
- *
- * @author Ævar Arnfjörð Bjarmason <avarab at gmail.com>
- * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- */
-
-$wgAvailableRights[] = 'renameuser';
-$wgGroupPermissions['bureaucrat']['renameuser'] = true;
-
-$wgExtensionCredits['specialpage'][] = array(
-	'name' => 'Renameuser',
-	'author'         => array( 'Ævar Arnfjörð Bjarmason', 'Aaron Schulz' ),
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:Renameuser',
-	'description'    => 'Rename a user (need \'\'renameuser\'\' right)',
-	'descriptionmsg' => 'renameuser-desc',
-	'svn-date'       => '$LastChangedDate: 2008-11-30 04:15:22 +0100 (Sun, 30 Nov 2008) $',
-	'svn-revision'   => '$Rev: 44056 $',
-);
-
-# Internationalisation file
-$dir = dirname(__FILE__) . '/';
-$wgExtensionMessagesFiles['Renameuser'] = $dir . 'SpecialRenameuser.i18n.php';
-$wgExtensionAliasesFiles['Renameuser'] = $dir . 'SpecialRenameuser.alias.php';
-
-/**
- * The maximum number of edits a user can have and still be allowed renaming,
- * set it to 0 to disable the limit.
- */
-define( 'RENAMEUSER_CONTRIBLIMIT', 2000000 );
-define( 'RENAMEUSER_CONTRIBJOB', 10000 );
-
-# Add a new log type
-global $wgLogTypes, $wgLogNames, $wgLogHeaders, $wgLogActions;
-$wgLogTypes[]                          = 'renameuser';
-$wgLogNames['renameuser']              = 'renameuserlogpage';
-$wgLogHeaders['renameuser']            = 'renameuserlogpagetext';
-#$wgLogActions['renameuser/renameuser'] = 'renameuserlogentry';
-$wgLogActionsHandlers['renameuser/renameuser'] = 'wfRenameUserLogActionText'; // deal with old breakage
-
-function wfRenameUserLogActionText( $type, $action, $title = NULL, $skin = NULL, $params = array(), $filterWikilinks=false ) {
-	if( !$title || $title->getNamespace() !== NS_USER ) {
-		$rv = ''; // handled in comment, the old way
-	} else {
-		$titleLink = $skin ? 
-			$skin->makeLinkObj( $title, htmlspecialchars( $title->getPrefixedText() ) ) : $title->getText();
-		# Add title to params
-		array_unshift( $params, $titleLink );
-		$rv = wfMsgReal( 'renameuserlogentry', $params );
-	}
-	return $rv;
-}
-
-$wgAutoloadClasses['SpecialRenameuser'] = dirname( __FILE__ ) . '/SpecialRenameuser_body.php';
-$wgAutoloadClasses['RenameUserJob'] = dirname(__FILE__) . '/RenameUserJob.php';
-$wgSpecialPages['Renameuser'] = 'SpecialRenameuser';
-$wgSpecialPageGroups['Renameuser'] = 'users';
-$wgJobClasses['renameUser'] = 'RenameUserJob';
+<?php require dirname( __FILE__ ) . '/Renameuser.php';

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/renameUserCleanup.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/renameUserCleanup.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-base/usr/share/mediawiki-extensions/base/Renameuser/renameUserCleanup.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,236 @@
+<?php
+/**
+ * Maintenance script to clean up after incomplete user renames
+ * Sometimes user edits are left lying around under the old name,
+ * check for that and assign them to the new username
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @ingroup Maintenance
+ * @author Ariel Glenn <ariel at wikimedia.org>
+ */
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+	$IP = dirname( __FILE__ ) . '/../..';
+}
+require_once( "$IP/maintenance/Maintenance.php" );
+
+class RenameUserCleanup extends Maintenance {
+	public function __construct() {
+		parent::__construct();
+		$this->mDescription = "Maintenance script to finish incomplete rename user, in particular to reassign edits that were missed";
+		$this->addOption( 'olduser', 'Old user name', true, true );
+		$this->addOption( 'newuser', 'New user name', true, true );
+		$this->addOption( 'olduid', 'Old user id in revision records (DANGEROUS)', false, true );
+		$this->mBatchSize = 1000;
+	}
+
+	public function execute() {
+		$this->output( "Rename User Cleanup starting...\n\n" );
+		$olduser = User::newFromName( $this->getOption( 'olduser' ) );
+		$newuser = User::newFromName( $this->getOption( 'newuser' ) );
+		$olduid = $this->getOption( 'olduid' );
+
+		$this->checkUserExistence( $olduser, $newuser );
+		$this->checkRenameLog( $olduser, $newuser );
+
+		if ( $olduid ) {
+			$this->doUpdates( $olduser, $newuser, $olduid );
+		}
+		$this->doUpdates( $olduser, $newuser, $newuser->getId() );
+		$this->doUpdates( $olduser, $newuser, 0 );
+		
+		print "Done!\n";
+		exit(0);
+	}
+
+	/**
+	 * @param $olduser User
+	 * @param $newuser User
+	 */
+	public function checkUserExistence( $olduser, $newuser ) {
+		if ( !$newuser->getId() ) {
+			$this->error( "No such user: " . $this->getOption( 'newuser' ), true );
+			exit(1);
+		}
+		if ($olduser->getId() ) {
+			print "WARNING!!: Old user still exists: " . $this->getOption( 'olduser' ) . "\n";
+			print "proceed anyways? We'll only re-attribute edits that have the new user uid (or 0)";
+			print " or the uid specified by the caller, and the old user name.  [N/y]   ";
+			$stdin = fopen ("php://stdin","rt");
+			$line = fgets($stdin);
+			fclose($stdin);
+			if ( $line[0] != "Y" && $line[0] != "y" ) {
+				print "Exiting at user's request\n";
+				exit(0);
+			}
+		}
+	}
+
+	/**
+	 * @param $olduser User
+	 * @param $newuser User
+	 */
+	public function checkRenameLog( $olduser, $newuser ) {
+		$dbr = wfGetDB( DB_SLAVE );
+
+		$oldTitle = Title::makeTitle( NS_USER, $olduser->getName() );
+
+		$result = $dbr->select( 'logging', '*',
+			array( 'log_type' => 'renameuser',
+				'log_action'    => 'renameuser',
+				'log_namespace' => NS_USER,
+				'log_title'     => $oldTitle->getDBkey(),
+				'log_params'    => $newuser->getName()
+			     ),
+			__METHOD__
+		);
+		if (! $result || ! $result->numRows() ) {
+			// try the old format
+			$result = $dbr->select( 'logging', '*',
+			array( 'log_type' => 'renameuser',
+				'log_action'    => 'renameuser',
+				'log_namespace' => NS_USER,
+				'log_title'     => $olduser->getName(),
+			     ),
+				__METHOD__
+			);
+			if (! $result ||  ! $result->numRows() ) {
+				print "No log entry found for a rename of ".$olduser->getName()." to ".$newuser->getName().", proceed anyways??? [N/y] ";
+				$stdin = fopen ("php://stdin","rt");
+				$line = fgets($stdin);
+				fclose($stdin);
+				if ( $line[0] != "Y" && $line[0] != "y" ) {
+					print "Exiting at user's request\n";
+					exit(1);
+				}
+			} else {
+				foreach ( $result as $row ) {
+					print "Found possible log entry of the rename, please check: ".$row->log_title." with comment ".$row->log_comment." on $row->log_timestamp\n";
+				}
+			}
+		} else {
+			foreach ( $result as $row ) {
+				print "Found log entry of the rename: ".$olduser->getName()." to ".$newuser->getName()." on $row->log_timestamp\n";
+			}
+		}
+		if ($result && $result->numRows() > 1) {
+			print "More than one rename entry found in the log, not sure what to do. Continue anyways? [N/y]  ";
+			$stdin = fopen ("php://stdin","rt");
+			$line = fgets($stdin);
+			fclose($stdin);
+			if ( $line[0] != "Y" && $line[0] != "y" ) {
+				print "Exiting at user's request\n";
+				exit(1);
+			}
+		}
+	}
+
+	/**
+	 * @param $olduser User
+	 * @param $newuser User
+	 * @param $uid
+	 */
+	public function doUpdates( $olduser, $newuser, $uid ) {
+		$this->updateTable( 'revision', 'rev_user_text', 'rev_user', 'rev_timestamp', $olduser, $newuser, $uid );
+		$this->updateTable( 'archive', 'ar_user_text', 'ar_user', 'ar_timestamp',  $olduser, $newuser, $uid );
+		$this->updateTable( 'logging', 'log_user_text', 'log_user', 'log_timestamp', $olduser, $newuser, $uid );
+		$this->updateTable( 'image', 'img_user_text', 'img_user', 'img_timestamp', $olduser, $newuser, $uid );
+		$this->updateTable( 'oldimage', 'oi_user_text', 'oi_user', 'oi_timestamp', $olduser, $newuser, $uid );
+		$this->updateTable( 'filearchive', 'fa_user_text','fa_user', 'fa_timestamp', $olduser, $newuser, $uid );
+	}
+
+	/**
+	 * @param $table
+	 * @param $usernamefield
+	 * @param $useridfield
+	 * @param $timestampfield
+	 * @param $olduser User
+	 * @param $newuser User
+	 * @param $uid
+	 * @return int
+	 */
+	public function updateTable( $table, $usernamefield, $useridfield, $timestampfield, $olduser, $newuser, $uid ) {
+		$dbw = wfGetDB( DB_MASTER );
+
+		$contribs = $dbw->selectField( $table, 'count(*)',
+			array( $usernamefield => $olduser->getName(), $useridfield => $uid ), __METHOD__ );
+
+		if ( $contribs == 0 ) {
+			print "No edits to be re-attributed from table $table for uid $uid\n" ;
+			return(0);
+		}
+
+		print "Found $contribs edits to be re-attributed from table $table for uid $uid\n";
+		if ( $uid != $newuser->getId() ) {
+			print "If you proceed, the uid field will be set to that of the new user name (i.e. ".$newuser->getId().") in these rows.\n";
+		}
+
+		print "Proceed? [N/y]  ";
+		$stdin = fopen ("php://stdin","rt");
+		$line = fgets($stdin);
+		fclose($stdin);
+		if ( $line[0] != "Y" && $line[0] != "y" ) {
+			print "Skipping at user's request\n";
+			return(0);
+		}
+
+		$selectConds = array( $usernamefield => $olduser->getName(), $useridfield => $uid );
+		$updateFields = array( $usernamefield => $newuser->getName(), $useridfield => $newuser->getId() );
+
+		while ( $contribs > 0 ) {
+			print "Doing batch of up to approximately ".$this->mBatchSize."\n";
+			print "Do this batch? [N/y]  ";
+			$stdin = fopen ("php://stdin","rt");
+			$line = fgets($stdin);
+			fclose($stdin);
+			if ( $line[0] != "Y" && $line[0] != "y" ) {
+				print "Skipping at user's request\n";
+				return(0);
+			}
+			$dbw->begin();
+			$result = $dbw->select( $table, $timestampfield, $selectConds , __METHOD__,
+				array( 'ORDER BY' => $timestampfield.' DESC', 'LIMIT' => $this->mBatchSize ) );
+			if (! $result) {
+				print "There were rows for updating but now they are gone. Skipping.\n";
+				$dbw->rollback();
+				return(0);
+			}
+			$result->seek($result->numRows() -1 );
+			$row = $result->fetchObject();
+			$timestamp = $row->$timestampfield;
+			$updateCondsWithTime = array_merge( $selectConds, array ("$timestampfield >= $timestamp") );
+			$success = $dbw->update( $table, $updateFields, $updateCondsWithTime, __METHOD__ );
+			if ( $success ) {
+				$rowsDone = $dbw->affectedRows();
+				$dbw->commit();
+			} else {
+				print "Problem with the update, rolling back and exiting\n";
+				$dbw->rollback();
+				exit(1);
+			}
+			//$contribs = User::edits( $olduser->getId() );
+			$contribs = $dbw->selectField( $table, 'count(*)', $selectConds, __METHOD__ );
+			print "Updated $rowsDone edits; $contribs edits remaining to be re-attributed\n";
+		}
+		return(0);
+	}
+
+}
+
+$maintClass = "RenameUserCleanup";
+require_once( RUN_MAINTENANCE_IF_MAIN );

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/doc/mediawiki-extensions/collection/README.txt
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/doc/mediawiki-extensions/collection/README.txt	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/doc/mediawiki-extensions/collection/README.txt	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,5 +1,3 @@
-.. -*- mode: rst; coding: utf-8 -*-
-
 ====================================
 *Collection* Extension for MediaWiki
 ====================================
@@ -8,16 +6,18 @@
 ================================
 
 The *Collection* extension for MediaWiki_ allows users to collect articles and
-generate PDFs for article collections and single articles.
+generate downloadable version in different formats (PDF, OpenDocument Text etc.)
+for article collections and single articles.
 
-The extension has been developed for and tested with MediaWiki_ version 1.11
-and later.
+The extension has been developed for and tested with MediaWiki_ version 1.14
+and later. Some features may not be avaialable with older MediaWikis that
+don't have the `MediaWiki API`_ enabled.
 
 The extension is being developed under the GNU General Public License by
 `PediaPress GmbH`_ in close collaboration with `Wikimedia Foundation`_
 and the `Commonwealth of Learning`_.
 
-Copyright (C) 2008, PediaPress GmbH
+Copyright (C) 2008-2009, PediaPress GmbH
 
 Prerequisites
 =============
@@ -26,12 +26,12 @@
 -----------------------------
 
 Currently Collection extension needs PHP with cURL support,
-see http://de2.php.net/manual/en/book.curl.php
+see http://php.net/curl
 
 Install and Setup a Render Server
 ---------------------------------
 
-PDF and ZIP file generation is done by a server, which can run separately
+Rendering and ZIP file generation is done by a server, which can run separately
 from the MediaWiki installation and can be shared by different MediaWikis.
 See the ``mw-serve`` command or the ``mwlib.cgi`` script in the mwlib_
 distribution.
@@ -51,9 +51,9 @@
 
 * Checkout the *Collection* extension from the Subversion repository into the
   ``extensions`` directory of your *MediaWiki* installation::
-  
+
     cd extensions/
-    svn co http://svn.mediawiki.org/svnroot/mediawiki/trunk/extensions/Collection
+    svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/Collection
 
 * Put this line in your ``LocalSettings.php``::
 
@@ -63,134 +63,256 @@
 
   *$wgCollectionMWServeURL (string)*
    Set this to the URL of a render server (see above).
-   
+
    The default is ``"http://tools.pediapress.com/mw-serve/"``,
    a public render server for low-traffic MediaWikis hosted by PediaPress.
-   
+
    Note that the MediaWiki must be accessible from the render server, i.e. if
    your MediaWiki is behind a firewall you cannot use the public render server.
-  
+
   *$wgCollectionMWServeCert (string)*
    Filename of a SSL certificate in PEM format for the mw-serve render server.
-   This needs to be used for self-signed certificates, otherwise CURL will
+   This needs to be used for self-signed certificates, otherwise cURL will
    throw an error. The default is null, i.e. no certificate.
-  
+
   *$wgCollectionMWServeCredentials (string)*
    Set this to a string of the form "USERNAME:PASSWORD" (or
    "USERNAME:PASSWORD:DOMAIN" if you're using LDAP), if the MediaWiki
    requires to be logged in to view articles.
    The render server will then login with these credentials using MediaWiki API
    before doing other requests.
-   
+
    SECURITY NOTICE: If the MediaWiki and the render server communicate over an
-   insecure channel (e.g. on an unencrypted channel over the internet), please
+   insecure channel (for example on an unencrypted channel over the internet), please
    DO NOT USE THIS SETTING, as the credentials will be exposed to eavesdropping!
-  
+
   *$wgCollectionFormats*
    An array mapping names of mwlib_ writers to the name of the produced format.
    The default value is::
-   
+
        array(
            'rl' => 'PDF',
        )
-    
+
    i.e. only PDF enabled. If you want to add OpenDocument Text in addition to
    PDF you can set $wgCollectionFormats to something like this::
-   
+
        $wgCollectionFormats = array(
            'rl' => 'PDF',
            'odf' => 'ODT',
        );
-   
+
    On the public render server tools.pediapress.com, currently the following
    writers are available:
-   
+
    * docbook: DocBook XML
    * odf: OpenDocument Text
    * rl: PDF
    * xhtml: XHTML 1.0 Transitional
-   
+
    If you're using your own render server, the list of available writers can be
    listed with the following mwlib_ command::
-   
+
      $ mw-render --list-writers
-   
+
+	*$wgCollectionContentTypeToFilename (array)*
+	 An array matching content types to filenames for downloaded documents. The
+	 default is:
+
+		$wgCollectionContentTypeToFilename = array(
+			'application/pdf' => 'collection.pdf',
+			'application/vnd.oasis.opendocument.text' => 'collection.odt',
+		);
+
+	*$wgCollectionPortletFormats (array)*
+	 An array containing formats (keys in $wgCollectionFormats) that shall be
+	 displayed as "Download as XYZ" links in the "Print/export" portlet.
+	 The default value is::
+
+	     array( 'rl' );
+
+	 i.e. there's one link "Download as PDF".
+
+	*$wgCollectionHierarchyDelimiter (string or null)*
+	 If not null, treat wiki pages whose title contains the configured delimiter
+	 as subpages.
+
+         For example, to treat article [[Foo/Bar]] as subpage of article [[Foo]]
+	 set this variable to "/". This makes sense e.g. on wikibooks.org, but it's
+	 questionable on wikipedia.org (cf. [[AC/DC]]).
+
+	 The (only) effect is that the display title for subpages in collections
+         is set to the title of the (deepest) subpage. For example, the title of
+         article [[Foo/Bar]] will be displayed/rendered as "Bar".
+
+	 The defaul value is null, which means that no hierarchy is assumed.
+
   *$wgCollectionArticleNamespaces (array)*
    List of namespace numbers for pages which can be added to a collection.
    Category pages (NS_CATEGORY) are always an exception (all articles in a
    category are added, not the category page itself). Default is::
-   
-     array(
-     	NS_MAIN,
-     	NS_TALK,
-     	NS_USER,
-     	NS_USER_TALK,
-     	NS_PROJECT,
-     	NS_PROJECT_TALK,
-     	NS_MEDIAWIKI,
-     	NS_MEDIAWIKI_TALK,
-     	100,
-     	101,
-     	102,
-     	103,
-     )
-   
+
+    array(
+      NS_MAIN,
+      NS_TALK,
+      NS_USER,
+      NS_USER_TALK,
+      NS_PROJECT,
+      NS_PROJECT_TALK,
+      NS_MEDIAWIKI,
+      NS_MEDIAWIKI_TALK,
+      100,
+      101,
+      102,
+      103,
+      104,
+      105,
+      106,
+      107,
+      108,
+      109,
+      110,
+      111,
+    );
+
   *$wgCommunityCollectionNamespace (integer)*
    Namespace for "community collections", i.e. the namespace where non-personal
    article collection pages are saved.
-   
+
+	 Note: This configuration setting is only used if the system message
+	 Coll-community_book_prefix has not been set (see below).
+
    Default is ``NS_PROJECT``.
-  
+
   *$wgCollectionMaxArticles (integer)*
    Maximum number of articles allowed in a collection.
-   
+
    Default is 500.
-  
-  *$wgLicenseName (string or null)*
+
+  *$wgCollectionLicenseName (string or null)*
    License name for articles in this MediaWiki.
    If set to ``null`` the localized version of the word "License" is used.
-   
+
    Default is null.
-  
-  *$wgLicenseURL (string or null)*
+
+  *$wgCollectionLicenseURL (string or null)*
    HTTP URL of an article containing the full license text in wikitext format
    for articles in this MediaWiki. E.g.
-   
-       $wgLicenseURL = 'http://en.wikipedia.org/w/index.php?title=Wikipedia:Text_of_the_GNU_Free_Documentation_License&action=raw';
 
+       $wgCollectionLicenseURL = 'http://en.wikipedia.org/w/index.php?title=Wikipedia:Text_of_the_GNU_Free_Documentation_License&action=raw';
+
    for the GFDL.
    If set to null, the standard MediaWiki variables $wgRightsPage,
    $wgRightsUrl and $wgRightsText are used for license information.
-   
+
    If your MediaWiki contains articles with different licenses, make sure
-   that each article contains the name of the license and set $wgLicenseURL
-   to an article that contains all needed licenses.   
-   
-* This step is needed for MediaWiki version < 1.14 (at the time of writing
-  version 1.14 has not been released):
-  
-  Add a portlet to the skin of your *MediaWiki* installation: Just before the line::
+   that each article contains the name of the license and set $wgCollectionLicenseURL
+   to an article that contains all needed licenses.
 
-    <div class="portlet" id="p-tb">
+* If you want to let users save their collections as wiki pages, make sure
+  $wgEnableWriteAPI is set to true, i.e. put this line in your LocalSettings.php::
 
-  in the file ``skins/MonoBook.php`` or ``skins/Modern.php`` insert
-  the following code::
+    $wgEnableWriteAPI = true;
 
-    <?php
-      if(isset($GLOBALS['wgSpecialPages']['Book'])) {
-         Collection::printPortlet();
-      }
-    ?>
+  (This is the default.)
 
+  There are two MediaWiki rights that are checked, before users are allowed
+  to save collections: To be able to save collection pages under the User
+  namespace, users must have the right 'collectionsaveasuserpage'; to be able
+  to save collection pages under the community namespace
+  (see $wgCommunityCollectionNamespace), users must have the right
+  'collectionsaveascommunitypage'. For example, if all logged-in users shall
+  be allowed to save collection pages under the User namespace, but only
+  autoconfirmed users, shall be allowed to save collection pages under the
+  community namespace, add this to your LocalSettings.php::
+
+    $wgGroupPermissions['user']['collectionsaveasuserpage'] = true;
+    $wgGroupPermissions['autoconfirmed']['collectionsaveascommunitypage'] = true;
+
 * As the current collection of articles is stored in the session, the session
   timeout should be set to some sensible value (at least a few hours, maybe
   one day). Adjust session.cookie_lifetime and session.gc_maxlifetime in your
   ``php.ini`` accordingly.
 
-* Add a help page (e.g. ``Help:Books`` for wikis in English language).
+* Add a help page (for example ``Help:Books`` for wikis in English language).
   A repository of help pages in different languages can be found on
   `Meta-Wiki`_.
 
+	The name of the help page is stored in the system message Coll-helppage and
+	can be adjusted by editing the wiki page [[MediaWiki:Coll-helppage]].
+
+* Add a template [[Template:saved_book]] which is transcluded on top of saved
+	collection pages. An example for such a template can be found on the English
+	Wikipedia: http://en.wikipedia.org/wiki/Template:Saved_book
+
+	The name of the template can be adjusted via the system message
+	Coll-savedbook_template, i.e. by editing [[MediaWiki:Coll-savedbook_template]].
+
+* To enable ZENO and Okawix export, uncomment the corresponding lines in $wgCollectionFormats
+  (file Collection.php). These exports are devoted to the Wikimedia projects and their mirrors.
+  They cannot be used on other wikis since they get data and search engine indexes from the cache
+  of wikiwix.com.
+
+Customization via System Messages
+=================================
+
+There are several system messages, which can be adjusted for a MediaWiki
+installation. They can be changed by editing the wiki page
+[[MediaWiki:SYSTEMMESSAGENAME]], where SYSTEMMESSAGENAME is the name of the
+system message.
+
+* Coll-helppage: The name of the help page (see above).
+  The default for English language is "Help:Books", and there exist translations
+	for lots of different languages.
+
+* Coll-user_book_prefix: Prefix for titles of "user books" (i.e. books for
+  personal use, as opposed to "community books"). If the system message is empty
+	or '-' (the default), the title of user book pages is constructed
+	as User:USERNAME/Books/BOOKTITLE. If the system message is set and its content
+	is PREFIX, the title of user book pages is constructed by directly concatenating
+	PREFIX and the BOOKTITLE, i.e. there's no implicitly inserted '/' inbetween!
+
+* Coll-community_book_prefix: Prefix for titles of "community books" (cf. "user
+  books" above). If the system message is empty or '-' (the default), the title
+	of community pages is constructed as NAMESPACE:Books/BOOKTITLE, where
+	NAMESPACE depends on the value of $wgCommunityCollectionNamespace (see above).
+	If the system message is set and its content is PREFIX, the title of community
+	book pages is constructed by directly concatenating PREFIX and BOOKTITLE,
+	i.e. there's no implicitly inserted '/' inbetween. Thus it's possible to
+	define a custom namespace 'Book' and set the system message to 'Book:' to
+	produce community book page titles Book:BOOKTITLE.
+
+* Coll-savedbook_template: The name of the template (w/out the Template: prefix)
+  included at the top of saved book pages (see above).
+	The default is: 'saved_book', and there exist translations for lots of
+	different languages.
+
+* Coll-bookscategory: Name of a category (w/out the Category: prefix) to which
+  all saved book pages should be added (optional, set to an empty value or "-"
+	to turn that feature off).
+
+* Coll-book_creator_text_article: The name of  a wiki page which is transcluded
+  on the "Start book creator" page (the page which is shown when a user clicks
+	on "Create a book").
+	The default is: {{MediaWiki:Coll-helppage}}/Book creator text
+	i.e. a subpage of the configured help page named "Book creator text"
+
+* Coll-suggest_enabled: If set to 1, the suggestion tool is enabled. Any other
+  value will disable the suggestion tool.
+	The default is: '1', i.e. the suggestion tool is enabled.
+
+* Coll-order_info_article: The name of a wiki page which is included on the
+  Special:Book page to show order information for printed books.
+	The default value is: {{MediaWiki:Coll-helppage}}/PediaPress order information
+	i.e. a subpage of the configured help page named "PediaPress order information".
+
+* Coll-rendering_page_info_text_article: The name of a wiki page with additional
+  informations to be displayed when single pages are being rendered.
+
+* Coll-rendering_collection_info_text_article: The name of a wiki page with additional
+  informations to be displayed when collections are being rendered.
+
+
 .. _mwlib: http://code.pediapress.com/wiki/wiki/mwlib
 .. _MediaWiki: http://www.mediawiki.org/
 .. _`PediaPress GmbH`: http://pediapress.com/

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.alias.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -6,204 +6,354 @@
  * @ingroup Extensions
  */
 
-$aliases = array();
+$specialPageAliases = array();
 
-/** English */
-$aliases['en'] = array(
+/** English (English) */
+$specialPageAliases['en'] = array(
 	'Book' => array( 'Book', 'Collection' ),
 );
 
-/** Arabic (العربية)
- * @author Meno25
- */
-$aliases['ar'] = array(
-	'Book' => array( 'كتاب', 'مجموعة' ),
+/** Afrikaans (Afrikaans) */
+$specialPageAliases['af'] = array(
+	'Book' => array( 'Boek', 'Versameling' ),
 );
 
-/** Egyptian Spoken Arabic (مصرى)
- * @author Meno25
- */
-$aliases['arz'] = array(
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
 	'Book' => array( 'كتاب', 'مجموعة' ),
 );
 
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'Book' => array( 'كتاب', 'مجموعه' ),
+);
+
 /** Assamese (অসমীয়া) */
-$aliases['as'] = array(
+$specialPageAliases['as'] = array(
 	'Book' => array( 'সংগ্ৰহ' ),
 );
 
 /** Breton (Brezhoneg) */
-$aliases['br'] = array(
+$specialPageAliases['br'] = array(
 	'Book' => array( 'Dastumad' ),
 );
 
 /** Bosnian (Bosanski) */
-$aliases['bs'] = array(
+$specialPageAliases['bs'] = array(
 	'Book' => array( 'Kolekcija' ),
 );
 
+/** Czech (Česky) */
+$specialPageAliases['cs'] = array(
+	'Book' => array( 'Kniha', 'Kolekce' ),
+);
+
+/** Danish (Dansk) */
+$specialPageAliases['da'] = array(
+	'Book' => array( 'Bog', 'Samling' ),
+);
+
 /** German (Deutsch) */
-$aliases['de'] = array(
+$specialPageAliases['de'] = array(
 	'Book' => array( 'Buch', 'Sammlung' ),
 );
 
 /** Lower Sorbian (Dolnoserbski) */
-$aliases['dsb'] = array(
-	'Book' => array( 'Knigły', 'zběrka' ),
+$specialPageAliases['dsb'] = array(
+	'Book' => array( 'Knigły', 'Zběrka' ),
 );
 
 /** Greek (Ελληνικά) */
-$aliases['el'] = array(
+$specialPageAliases['el'] = array(
 	'Book' => array( 'Συλλογή' ),
 );
 
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = array(
+	'Book' => array( 'Libro' ),
+);
+
 /** Spanish (Español) */
-$aliases['es'] = array(
+$specialPageAliases['es'] = array(
 	'Book' => array( 'Libro', 'Libros', 'Colección', 'Colecciones' ),
 );
 
+/** Estonian (Eesti) */
+$specialPageAliases['et'] = array(
+	'Book' => array( 'Raamat' ),
+);
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = array(
+	'Book' => array( 'کتاب' ),
+);
+
 /** Finnish (Suomi) */
-$aliases['fi'] = array(
+$specialPageAliases['fi'] = array(
 	'Book' => array( 'Kirja', 'Kokoelma' ),
 );
 
 /** French (Français) */
-$aliases['fr'] = array(
+$specialPageAliases['fr'] = array(
 	'Book' => array( 'Livre' ),
 );
 
+/** Franco-Provençal (Arpetan) */
+$specialPageAliases['frp'] = array(
+	'Book' => array( 'Lévro', 'Colèccion' ),
+);
+
+/** Gagauz (Gagauz) */
+$specialPageAliases['gag'] = array(
+	'Book' => array( 'Kiyat' ),
+);
+
 /** Galician (Galego) */
-$aliases['gl'] = array(
+$specialPageAliases['gl'] = array(
 	'Book' => array( 'Libro' ),
 );
 
 /** Swiss German (Alemannisch) */
-$aliases['gsw'] = array(
+$specialPageAliases['gsw'] = array(
 	'Book' => array( 'Sammlig' ),
 );
 
+/** Gujarati (ગુજરાતી) */
+$specialPageAliases['gu'] = array(
+	'Book' => array( 'પુસ્તક', 'સંગ્રહ' ),
+);
+
 /** Hebrew (עברית) */
-$aliases['he'] = array(
+$specialPageAliases['he'] = array(
 	'Book' => array( 'ספר', 'אוסף' ),
 );
 
 /** Croatian (Hrvatski) */
-$aliases['hr'] = array(
+$specialPageAliases['hr'] = array(
 	'Book' => array( 'Zbirka' ),
 );
 
 /** Upper Sorbian (Hornjoserbsce) */
-$aliases['hsb'] = array(
-	'Book' => array( 'Kniha', 'zběrka' ),
+$specialPageAliases['hsb'] = array(
+	'Book' => array( 'Kniha', 'Zběrka' ),
 );
 
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'Book' => array( 'Liv', 'Koleksyon' ),
+);
+
 /** Hungarian (Magyar) */
-$aliases['hu'] = array(
+$specialPageAliases['hu'] = array(
 	'Book' => array( 'Könyv', 'Könyvek', 'Gyűjtemény', 'Gyűjtemények' ),
 );
 
 /** Interlingua (Interlingua) */
-$aliases['ia'] = array(
+$specialPageAliases['ia'] = array(
 	'Book' => array( 'Libro' ),
 );
 
 /** Indonesian (Bahasa Indonesia) */
-$aliases['id'] = array(
-	'Book' => array( 'Koleksi' ),
+$specialPageAliases['id'] = array(
+	'Book' => array( 'Buku', 'Koleksi' ),
 );
 
+/** Igbo (Igbo) */
+$specialPageAliases['ig'] = array(
+	'Book' => array( 'Ákwúkwú', 'Njikọtá_édé' ),
+);
+
+/** Ido (Ido) */
+$specialPageAliases['io'] = array(
+	'Book' => array( 'Libro' ),
+);
+
 /** Italian (Italiano) */
-$aliases['it'] = array(
-	'Book' => array( 'Raccolta' ),
+$specialPageAliases['it'] = array(
+	'Book' => array( 'Libro', 'Raccolta' ),
 );
 
 /** Japanese (日本語) */
-$aliases['ja'] = array(
+$specialPageAliases['ja'] = array(
 	'Book' => array( 'ブック', 'コレクション' ),
 );
 
+/** Georgian (ქართული) */
+$specialPageAliases['ka'] = array(
+	'Book' => array( 'წიგნი' ),
+);
+
 /** Khmer (ភាសាខ្មែរ) */
-$aliases['km'] = array(
+$specialPageAliases['km'] = array(
 	'Book' => array( 'ការចងក្រង' ),
 );
 
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'Book' => array( '책', '모음' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'Book' => array( 'Booch_sammelle', 'Sammlong', 'Sigge_sammelle' ),
+);
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = array(
+	'Book' => array( 'Libro' ),
+);
+
 /** Luxembourgish (Lëtzebuergesch) */
-$aliases['lb'] = array(
+$specialPageAliases['lb'] = array(
 	'Book' => array( 'Sammlung' ),
 );
 
 /** Macedonian (Македонски) */
-$aliases['mk'] = array(
-	'Book' => array( 'Книга', 'Колекција' ),
+$specialPageAliases['mk'] = array(
+	'Book' => array( 'Книга', 'Збирка' ),
 );
 
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'Book' => array( 'പുസ്തകം', 'ശേഖരം' ),
+);
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = array(
+	'Book' => array( 'पुस्तक', 'संचयन' ),
+);
+
+/** Malay (Bahasa Melayu) */
+$specialPageAliases['ms'] = array(
+	'Book' => array( 'Buku' ),
+);
+
 /** Maltese (Malti) */
-$aliases['mt'] = array(
-	'Book' => array( 'Kollezzjoni' ),
+$specialPageAliases['mt'] = array(
+	'Book' => array( 'Ktieb', 'Kollezzjoni' ),
 );
 
+/** Erzya (Эрзянь) */
+$specialPageAliases['myv'] = array(
+	'Book' => array( 'Ставкс' ),
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$specialPageAliases['nb'] = array(
+	'Book' => array( 'Bok', 'Samling' ),
+);
+
 /** Nedersaksisch (Nedersaksisch) */
-$aliases['nds-nl'] = array(
+$specialPageAliases['nds-nl'] = array(
 	'Book' => array( 'Verzameling' ),
 );
 
 /** Dutch (Nederlands) */
-$aliases['nl'] = array(
-	'Book' => array( 'Collectie', 'Verzameling' ),
+$specialPageAliases['nl'] = array(
+	'Book' => array( 'Boek', 'Collectie', 'Verzameling' ),
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬) */
-$aliases['nn'] = array(
+$specialPageAliases['nn'] = array(
 	'Book' => array( 'Bok' ),
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) */
-$aliases['no'] = array(
-	'Book' => array( 'Samling' ),
-);
-
 /** Occitan (Occitan) */
-$aliases['oc'] = array(
-	'Book' => array( 'Colleccion' ),
+$specialPageAliases['oc'] = array(
+	'Book' => array( 'Libre' ),
 );
 
 /** Polish (Polski) */
-$aliases['pl'] = array(
+$specialPageAliases['pl'] = array(
 	'Book' => array( 'Książka', 'Kolekcja' ),
 );
 
 /** Portuguese (Português) */
-$aliases['pt'] = array(
-	'Book' => array( 'Livro', 'Colecção', 'Coleção' ),
+$specialPageAliases['pt'] = array(
+	'Book' => array( 'Livro', 'Colecção' ),
 );
 
 /** Brazilian Portuguese (Português do Brasil) */
-$aliases['pt-br'] = array(
+$specialPageAliases['pt-br'] = array(
 	'Book' => array( 'Coleção', 'Colecção' ),
 );
 
-/** Sanskrit (संस्कृत) */
-$aliases['sa'] = array(
+/** Romanian (Română) */
+$specialPageAliases['ro'] = array(
+	'Book' => array( 'Carte', 'Colecție' ),
+);
+
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = array(
 	'Book' => array( 'समुच्यय' ),
 );
 
+/** Slovak (Slovenčina) */
+$specialPageAliases['sk'] = array(
+	'Book' => array( 'Knihy', 'Kolekcia' ),
+);
+
 /** Albanian (Shqip) */
-$aliases['sq'] = array(
+$specialPageAliases['sq'] = array(
 	'Book' => array( 'Libra', 'Koleksion' ),
 );
 
 /** Swedish (Svenska) */
-$aliases['sv'] = array(
+$specialPageAliases['sv'] = array(
 	'Book' => array( 'Bok', 'Samling' ),
 );
 
 /** Swahili (Kiswahili) */
-$aliases['sw'] = array(
+$specialPageAliases['sw'] = array(
 	'Book' => array( 'Kusanya' ),
 );
 
+/** Telugu (తెలుగు) */
+$specialPageAliases['te'] = array(
+	'Book' => array( 'సేకరణ', 'పుస్తకం' ),
+);
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = array(
+	'Book' => array( 'หนังสือ' ),
+);
+
 /** Tagalog (Tagalog) */
-$aliases['tl'] = array(
+$specialPageAliases['tl'] = array(
 	'Book' => array( 'Aklat', 'Kalipunan' ),
 );
 
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = array(
+	'Book' => array( 'Kitap', 'Koleksiyon', 'Toplama' ),
+);
+
+/** Tatar (Cyrillic script) (Татарча) */
+$specialPageAliases['tt-cyrl'] = array(
+	'Book' => array( 'Китап' ),
+);
+
+/** Vèneto (Vèneto) */
+$specialPageAliases['vec'] = array(
+	'Book' => array( 'Libro' ),
+);
+
+/** Veps (Vepsän kel') */
+$specialPageAliases['vep'] = array(
+	'Book' => array( 'Kirj' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = array(
+	'Book' => array( 'Sách' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'Book' => array( '图书' ),
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$specialPageAliases['zh-hant'] = array(
+	'Book' => array( '圖書' ),
+);
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,9 +1,8 @@
 <?php
-
-/*
+/**
  * Collection Extension for MediaWiki
  *
- * Copyright (C) 2008, PediaPress GmbH
+ * Copyright (C) PediaPress GmbH
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,12 +16,11 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-
-class Collection extends SpecialPage {
+class SpecialCollection extends SpecialPage {
 	var $mPODPartners = array(
 		'pediapress' => array(
 			'name' => 'PediaPress',
@@ -38,169 +36,260 @@
 	function getDescription() {
 		return wfMsg( 'coll-collection' );
 	}
-	
+
 	function execute( $par ) {
-		global $wgOut;
-		global $wgRequest;
-		global $wgUser;
-		global $wgContLang;
-		global $wgCommunityCollectionNamespace;
-		global $wgCollectionMaxArticles;
-		
-		wfLoadExtensionMessages( 'Collection' );
+		global $wgOut, $wgRequest, $wgUser, $wgContLang, $wgCollectionMaxArticles;
 
-		switch ( $par ) {
-			case 'add_article/':
-				if ( self::countArticles() >= $wgCollectionMaxArticles ) {
+		// support previous URLs (e.g. used in templates) which used the "$par" part
+		// (i.e. subpages of the Special page)
+		if ( $par ) {
+			if ( $wgRequest->wasPosted() ) { // don't redirect POST reqs
+				// TODO
+			}
+			$wgOut->redirect( wfAppendQuery(
+				SkinTemplate::makeSpecialUrl( 'Book' ),
+				$wgRequest->appendQueryArray( array( 'bookcmd' => rtrim( $par, '/' ) ), true )
+			) );
+			return;
+		}
+
+		switch ( $wgRequest->getVal( 'bookcmd', '' ) ) {
+			case 'book_creator':
+				$this->renderBookCreatorPage( $wgRequest->getVal( 'referer', '' ), $par );
+				return;
+
+			case 'start_book_creator':
+				$title = Title::newFromText( $wgRequest->getVal( 'referer', '' ) );
+				if ( is_null( $title ) ) {
+					$title = Title::newMainPage();
+				}
+				CollectionSession::enable();
+				$wgOut->redirect( $title->getFullURL() );
+				return;
+			case 'stop_book_creator':
+				$title = Title::newFromText( $wgRequest->getVal( 'referer', '' ) );
+				if ( is_null( $title ) || $title->equals( $this->getTitle( $par ) ) ) {
+					$title = Title::newMainPage();
+				}
+				if ( $wgRequest->getVal( 'disable' ) ) {
+					CollectionSession::disable();
+				} elseif ( !$wgRequest->getVal( 'continue' ) ) {
+					$this->renderStopBookCreatorPage( $title );
+					return;
+				}
+				$wgOut->redirect( $title->getFullURL() );
+				return;
+			case 'add_article':
+				if ( CollectionSession::countArticles() >= $wgCollectionMaxArticles ) {
 					self::limitExceeded();
 					return;
 				}
-				$title_url = $wgRequest->getVal( 'arttitle', '' );
 				$oldid = $wgRequest->getInt( 'oldid', 0 );
-				$title = Title::newFromURL( $title_url );
-				$this->addArticle( $title, $oldid );
-				if ( $oldid == 0 ) {
-					$redirectURL = $title->getFullURL();
+				$title = Title::newFromText( $wgRequest->getVal( 'arttitle', '' ) );
+				if ( !$title ) {
+					return;
+				}
+				if ( self::addArticle( $title, $oldid ) ) {
+					if ( $oldid == 0 ) {
+						$redirectURL = $title->getFullURL();
+					} else {
+						$redirectURL = $title->getFullURL( 'oldid=' . $oldid );
+					}
+					$wgOut->redirect( $redirectURL );
 				} else {
-					$redirectURL = $title->getFullURL( 'oldid=' . $oldid );
+					$wgOut->showErrorPage(
+						'coll-couldnotaddarticle_title',
+						'coll-couldnotaddarticle_msg'
+					);
 				}
-				$wgUser->invalidateCache();
-				$wgOut->redirect( $redirectURL );
 				return;
-			case 'remove_article/':
-				$title_url = $wgRequest->getVal( 'arttitle', '' );
+			case 'remove_article':
 				$oldid = $wgRequest->getInt( 'oldid', 0 );
-				$title = Title::newFromURL( $title_url );
-				self::removeArticle( $title, $oldid );
-				if ( $oldid == 0 ) {
-					$redirectURL = $title->getFullURL();
+				$title = Title::newFromText( $wgRequest->getVal( 'arttitle', '' ) );
+				if ( !$title ) {
+					return;
+				}
+				if ( self::removeArticle( $title, $oldid ) ) {
+					if ( $oldid == 0 ) {
+						$redirectURL = $title->getFullURL();
+					} else {
+						$redirectURL = $title->getFullURL( 'oldid=' . $oldid );
+					}
+					$wgOut->redirect( $redirectURL );
 				} else {
-					$redirectURL = $title->getFullURL( 'oldid=' . $oldid );
+					$wgOut->showErrorPage(
+						'coll-couldnotremovearticle_title',
+						'coll-couldnotremovearticle_msg'
+					);
 				}
-				$wgUser->invalidateCache();
+				return;
+			case 'clear_collection':
+				CollectionSession::clearCollection();
+				$redirect = $wgRequest->getVal( 'return_to' );
+				$redirectURL = SkinTemplate::makeSpecialUrl( 'Book' );
+				if ( !empty( $redirect ) ) {
+					$title = Title::newFromText( $redirect );
+					if ( $title ) {
+						$redirectURL = $title->getFullURL();
+					}
+				}
 				$wgOut->redirect( $redirectURL );
 				return;
-			case 'clear_collection/':
-				self::clearCollection();
-				$wgUser->invalidateCache();
-				$wgOut->redirect( $wgRequest->getVal( 'return_to', SkinTemplate::makeSpecialUrl( 'Book' ) ) );
-				return;
-			case 'set_titles/':
-				self::setTitles( $wgRequest->getText( 'collectionTitle', '' ), $wgRequest->getText( 'collectionSubtitle', '') );
-				$wgUser->invalidateCache();
+			case 'set_titles':
+				self::setTitles( $wgRequest->getText( 'collectionTitle', '' ), $wgRequest->getText( 'collectionSubtitle', '' ) );
 				$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
 				return;
-			case 'sort_items/':
+			case 'sort_items':
 				self::sortItems();
-				$wgUser->invalidateCache();
 				$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
 				return;
-			case 'add_category/':
+			case 'add_category':
 				$title = Title::makeTitleSafe( NS_CATEGORY, $wgRequest->getVal( 'cattitle', '' ) );
 				if ( self::addCategory( $title ) ) {
 					self::limitExceeded();
 					return;
 				} else {
-					$wgOut->redirect( $title->getFullURL() );
+					$wgOut->redirect( $wgRequest->getVal( 'return_to', $title->getFullURL() ) );
 				}
-				$wgUser->invalidateCache();
 				return;
-			case 'remove_item/':
+			case 'remove_item':
 				self::removeItem( $wgRequest->getInt( 'index', 0 ) );
-				$wgUser->invalidateCache();
 				$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
 				return;
-			case 'move_item/':
+			case 'move_item':
 				self::moveItem( $wgRequest->getInt( 'index', 0 ), $wgRequest->getInt( 'delta', 0 ) );
-				$wgUser->invalidateCache();
 				$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
 				return;
-			case 'load_collection/':
+			case 'load_collection':
 				$title = Title::newFromText( $wgRequest->getVal( 'colltitle', '' ) );
+				if ( !$title ) {
+					return;
+				}
 				if ( $wgRequest->getVal( 'cancel' ) ) {
 					$wgOut->redirect( $title->getFullURL() );
 					return;
 				}
-				if ( !self::countArticles()
+				if ( !CollectionSession::countArticles()
 					 || $wgRequest->getVal( 'overwrite' )
 					 || $wgRequest->getVal( 'append' ) ) {
 					$collection = $this->loadCollection( $title, $wgRequest->getVal( 'append' ) );
 					if ( $collection ) {
-						self::startSession();
-						$_SESSION['wsCollection'] = $collection;
+						CollectionSession::startSession();
+						CollectionSession::setCollection( $collection );
+						CollectionSession::enable();
 						$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
 					}
 					return;
 				}
 				$this->renderLoadOverwritePage( $title );
 				return;
-			case 'order_collection/':
+			case 'order_collection':
 				$title = Title::newFromText( $wgRequest->getVal( 'colltitle', '' ) );
+				if ( !$title ) {
+					return;
+				}
 				$collection = $this->loadCollection( $title );
-				$partner = $wgRequest->getVal( 'partner', 'pediapress' );
+				$partner = $wgRequest->getVal( 'partner', key( $this->mPODPartners ) );
 				return $this->postZIP( $collection, $partner );
-			case 'save_collection/':
-				$collTitle = $wgRequest->getVal( 'colltitle' );
-				if ( $wgRequest->getVal( 'overwrite' ) && !empty( $collTitle ) ) {;
-					$title = Title::newFromText( $collTitle );
-					$this->saveCollection( $title, $overwrite=true );
-					$wgOut->redirect( $title->getFullURL() );
+			case 'save_collection':
+				if ( $wgRequest->getVal( 'abort' ) ) {
+					$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
 					return;
 				}
-				$collType = $wgRequest->getVal( 'colltype' );
-				$overwrite = $wgRequest->getBool( 'overwrite' );
-				$saveCalled = false;
-				if ( $collType == 'personal' ) {
-					$userPageTitle = $wgUser->getUserPage()->getPrefixedText();
-					$name = $wgRequest->getVal( 'pcollname', '' );
-					if ( !empty( $name ) ) {
-						$title = Title::newFromText( $userPageTitle . '/' . wfMsgForContent( 'coll-collections' ) . '/' . $name );
-						$saveCalled = true;
-						$saved = $this->saveCollection( $title, $overwrite );
+				if ( !$wgUser->matchEditToken( $wgRequest->getVal( 'token' ) ) ) {
+					return;
+				}
+				$colltype = $wgRequest->getVal( 'colltype' );
+				$prefixes = self::getBookPagePrefixes();
+				if ( $colltype == 'personal' ) {
+					$collname = $wgRequest->getVal( 'pcollname' );
+					if ( !$wgUser->isAllowed( 'collectionsaveasuserpage' ) || empty( $collname ) ) {
+						return;
 					}
-				} else if ( $collType == 'community' ) {
-					$name = $wgRequest->getVal( 'ccollname', '' );
-					if ( !empty( $name ) ) {
-						$title = Title::makeTitle( $wgCommunityCollectionNamespace, wfMsgForContent( 'coll-collections' ) . '/' . $name );
-						$saveCalled = true;
-						$saved = $this->saveCollection( $title, $overwrite );
+					$title = Title::newFromText( $prefixes['user-prefix'] . $collname );
+				} elseif ( $colltype == 'community' ) {
+					$collname = $wgRequest->getVal( 'ccollname' );
+					if ( !$wgUser->isAllowed( 'collectionsaveascommunitypage' ) || empty( $collname ) ) {
+						return;
 					}
+					$title = Title::newFromText( $prefixes['community-prefix'] . $collname );
 				}
-
-				if ( !$saveCalled) {
-					$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book' ) );
-				} else if ( $saved ) {
+				if ( !$title ) {
+					return;
+				}
+				if ( $this->saveCollection( $title, $wgRequest->getBool( 'overwrite' ) ) ) {
 					$wgOut->redirect( $title->getFullURL() );
 				} else {
-					$this->renderSaveOverwritePage( $title );
+					$this->renderSaveOverwritePage(
+						$colltype,
+						$title,
+						$wgRequest->getVal( 'pcollname' ),
+						$wgRequest->getVal( 'ccollname' )
+					);
 				}
 				return;
-			case 'render/':
+			case 'render':
 				return $this->renderCollection(
-					$_SESSION['wsCollection'],
-					Title::newFromText( $wgContLang->specialPage( 'Book' ) ),
+					CollectionSession::getCollection(),
+					SpecialPage::getTitleFor( 'Book' ),
 					$wgRequest->getVal( 'writer', '' )
 				);
-			case 'forcerender/':
-				return $this->forceRenderCollection();
-			case 'rendering/':
-				return $this->renderRenderingPage();
-			case 'download/':
-				return $this->download();
-			case 'render_article/':
+			case 'forcerender':
+				$this->forceRenderCollection();
+				return;
+			case 'rendering':
+				$this->renderRenderingPage();
+				return;
+			case 'download':
+				$this->download();
+				return;
+			case 'render_article':
 				$title = Title::newFromText( $wgRequest->getVal( 'arttitle', '' ) );
+				if ( !$title ) {
+					return;
+				}
 				$oldid = $wgRequest->getInt( 'oldid', 0 );
-				return $this->renderArticle( $title, $oldid, $wgRequest->getVal( 'writer', 'rl' ) );
-			case 'render_collection/':
+				$this->renderArticle( $title, $oldid, $wgRequest->getVal( 'writer', 'rl' ) );
+				return;
+			case 'render_collection':
 				$title = Title::newFromText( $wgRequest->getVal( 'colltitle', '' ) );
+				if ( !$title ) {
+					return;
+				}
 				$collection = $this->loadCollection( $title );
 				if ( $collection ) {
 					$this->renderCollection( $collection, $title, $wgRequest->getVal( 'writer', 'rl' ) );
 				}
 				return;
-			case 'post_zip/':
+			case 'post_zip':
 				$partner = $wgRequest->getVal( 'partner', 'pediapress' );
-				return $this->postZIP( $_SESSION['wsCollection'], $partner );
+				$this->postZIP( CollectionSession::getCollection(), $partner );
+				return;
+			case 'suggest':
+				$add = $wgRequest->getVal( 'add' );
+				$ban = $wgRequest->getVal( 'ban' );
+				$remove = $wgRequest->getVal( 'remove' );
+				$addselected = $wgRequest->getVal( 'addselected' );
+
+				if ( $wgRequest->getVal( 'resetbans' ) ) {
+					CollectionSuggest::run( 'resetbans' );
+				} elseif ( isset( $add ) ) {
+					CollectionSuggest::run( 'add', $add );
+				} elseif ( isset( $ban ) ) {
+					CollectionSuggest::run( 'ban', $ban );
+				} elseif ( isset( $remove ) ) {
+					CollectionSuggest::run( 'remove', $remove );
+				} elseif ( isset( $addselected ) ) {
+					$articleList = $wgRequest->getArray( 'articleList' );
+					if ( !is_null( $articleList ) ) {
+						CollectionSuggest::run( 'addAll', $articleList );
+					} else {
+						CollectionSuggest::run();
+					}
+				} else {
+					CollectionSuggest::run();
+				}
+				return;
 			case '':
 				$this->renderSpecialPage();
 				return;
@@ -209,245 +298,349 @@
 		}
 		return;
 	}
-	
-	function renderSpecialPage() {
-		global $wgCollectionFormats;
-		global $wgCollectionVersion;
-		global $wgCollectionStyleVersion;
-		global $wgJsMimeType;
-		global $wgScriptPath;
+
+	function renderBookCreatorPage( $referer, $par ) {
+		global $wgOut, $wgJsMimeType;
+
+		$this->setHeaders();
+		$wgOut->setPageTitle( wfMsg( 'coll-book_creator' ) );
+
+		$wgOut->addWikiMsg( 'coll-book_creator_intro' );
+
+		$wgOut->addModules( 'ext.collection.checkLoadFromLocalStorage' );
+
+		$dialogtxt = wfMsg( 'coll-load_local_book' );
+
+		$wgOut->addScript(
+			"<script type=\"$wgJsMimeType\">\n" .
+			"var collection_dialogtxt = " . Xml::encodeJsVar( $dialogtxt ) . ";\n" .
+			"</script>" );
+
+		$title = Title::newFromText( $referer );
+		if ( is_null( $title ) || $title->equals( $this->getTitle( $par ) ) ) {
+			$title = Title::newMainPage();
+		}
+
+		$wgOut->addHTML(
+			Xml::tags( 'div',
+				array(
+					'style' => 'margin: 10px 0;',
+				),
+				Xml::tags( 'div',
+					array(
+						'class' => 'collection-button ok',
+					),
+					Xml::element( 'a',
+						array(
+							'href' => SkinTemplate::makeSpecialUrl(
+								'Book',
+								array(
+									'bookcmd' => 'start_book_creator',
+									'referer' => $referer,
+								)
+							),
+							// TODO: title
+						),
+						wfMsg( 'coll-start_book_creator' )
+					)
+				)
+				. Xml::tags( 'div',
+					array(
+						'class' => 'collection-button cancel',
+					),
+					Linker::link(
+						$title,
+						wfMsgHtml( 'coll-cancel' ),
+						array(
+							'rel' => 'nofollow',
+							// TOOD: title
+						),
+						array(),
+						array( 'known', 'noclasses' )
+					)
+				)
+				. Xml::element( 'div',
+					array(
+						'style' => 'clear: both;',
+					),
+					'', false
+				)
+			)
+		);
+
+		$title_string = wfMsgForContent( 'coll-book_creator_text_article' );
+		$t = Title::newFromText( $title_string );
+		if ( !is_null( $t ) ) {
+			$a = new Article( $t );
+			if ( $a->exists() ) {
+				$wgOut->addWikiText( '{{:' . $title_string . '}}' );
+				return;
+			}
+		}
+		$wgOut->addWikiMsg( 'coll-book_creator_help' );
+	}
+
+	function renderStopBookCreatorPage( $referer ) {
 		global $wgOut;
 
-		if ( !self::hasSession() ) {
-			self::startSession();
+		$this->setHeaders();
+		$wgOut->setPageTitle( wfMsg( 'coll-book_creator_disable' ) );
+		$wgOut->addWikiMsg( 'coll-book_creator_disable_text' );
+
+		$wgOut->addHTML(
+			Xml::tags( 'form',
+				array(
+					'action' => SkinTemplate::makeSpecialUrl(
+						'Book',
+						array( 'bookcmd' => 'stop_book_creator' )
+					),
+					'method' => 'post',
+				),
+				Xml::element( 'input',
+					array(
+						'type' => 'hidden',
+						'name' => 'referer',
+						'value' => $referer,
+					)
+				)
+				. Xml::element( 'input',
+					array(
+						'type' => 'submit',
+						'value' => wfMsg( 'coll-book_creator_continue' ),
+						'name' => 'continue',
+					)
+				)
+				. Xml::element( 'input',
+					array(
+						'type' => 'submit',
+						'value' => wfMsg( 'coll-book_creator_disable' ),
+						'name' => 'disable',
+					)
+				)
+			)
+		);
+	}
+
+	static function getBookPagePrefixes() {
+		global $wgUser, $wgCommunityCollectionNamespace;
+
+		$result = array();
+
+		$t = wfMsgForContent( 'coll-user_book_prefix', $wgUser->getName() );
+		if ( wfEmptyMsg( 'coll-user_book_prefix', $t ) || $t == '-' ) {
+			$userPageTitle = $wgUser->getUserPage()->getPrefixedText();
+			$result['user-prefix'] = $userPageTitle . '/'
+				. wfMsgForContent( 'coll-collections' ) . '/';
+		} else {
+			$result['user-prefix'] = $t;
 		}
 
+		$t = wfMsgForContent( 'coll-community_book_prefix' );
+		if ( wfEmptyMsg( 'coll-community_book_prefix', $t ) || $t == '-' ) {
+			$title = Title::makeTitle(
+				$wgCommunityCollectionNamespace,
+				wfMsgForContent( 'coll-collections' )
+			);
+			$result['community-prefix'] = $title->getPrefixedText() . '/';
+		} else {
+			$result['community-prefix'] = $t;
+		}
+		return $result;
+	}
+
+	function renderSpecialPage() {
+		global $wgCollectionFormats, $wgOut;
+
+		if ( !CollectionSession::hasSession() ) {
+			CollectionSession::startSession();
+		}
+
 		$this->setHeaders();
-		$wgOut->addInlineScript( "var wgCollectionVersion = \"$wgCollectionVersion\";" );		
-		$wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/collection/jquery.js?$wgCollectionStyleVersion\"></script>" );
-		$wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/collection/jquery.ui.js?$wgCollectionStyleVersion\"></script>" );
-		$wgOut->addInlineScript( "jQuery.noConflict();" );		
-		$wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/collection/collection.js?$wgCollectionStyleVersion\"></script>" );
-		
+		$wgOut->setPageTitle( wfMsg( 'coll-manage_your_book' ) );
+		$wgOut->addModules( 'ext.collection' );
+
 		$template = new CollectionPageTemplate();
-		$template->set( 'collection', $_SESSION['wsCollection'] );
+		$template->set( 'collection', CollectionSession::getCollection() );
 		$template->set( 'podpartners', $this->mPODPartners );
-		$template->set( 'formats', $wgCollectionFormats);
+		$template->set( 'formats', $wgCollectionFormats );
+		$prefixes = self::getBookPagePrefixes();
+		$template->set( 'user-book-prefix', $prefixes['user-prefix'] );
+		$template->set( 'community-book-prefix', $prefixes['community-prefix'] );
 		$wgOut->addTemplate( $template );
 	}
 
-	static function hasSession() {
-		return isset( $_SESSION['wsCollection'] );
-	}
-	
-	static function clearCollection() {
-		$_SESSION['wsCollection'] = array(
-			'title' => '',
-			'subtitle' => '',
-			'items' => array(),
-		);
-		self::touchSession();
-	}
-	
 	static function setTitles( $title, $subtitle ) {
-		$collection = $_SESSION['wsCollection'];
+		$collection = CollectionSession::getCollection();
 		$collection['title'] = $title;
 		$collection['subtitle'] = $subtitle;
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		CollectionSession::setCollection( $collection );
 	}
-	
+
+	static function title_cmp( $a, $b ) {
+		return strcasecmp( $a['title'], $b['title'] );
+	}
+
 	static function sortItems() {
-		$collection = $_SESSION['wsCollection'];
+		$collection = CollectionSession::getCollection();
 		$articles = array();
 		$new_items = array();
-		function title_cmp($a, $b) {
-			return strcasecmp($a['title'], $b['title']);
-		}
 		foreach ( $collection['items'] as $item ) {
 			if ( $item['type'] == 'chapter' ) {
-				usort( $articles, 'title_cmp' );
-				while ( count( $articles ) ) {
-					$new_items[] = array_shift( $articles );
-				}
-				$new_items[] = $item;
-			} else if ( $item['type'] == 'article' ) {
+				usort( $articles, array( __CLASS__, 'title_cmp' ) );
+				$new_items = array_merge( $new_items, $articles, array( $item ) );
+				$articles = array();
+			} elseif ( $item['type'] == 'article' ) {
 				$articles[] = $item;
 			}
 		}
-		if ( count( $articles ) ) {
-			usort( $articles, 'title_cmp' );
-			while ( count( $articles ) ) {
-				$new_items[] = array_shift( $articles );
-			}
-		}
-		$collection['items'] = $new_items;
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		usort( $articles, array( __CLASS__, 'title_cmp' ) );
+		$collection['items'] = array_merge( $new_items, $articles );
+		CollectionSession::setCollection( $collection );
 	}
-	
+
 	static function addChapter( $name ) {
-		$collection = $_SESSION['wsCollection'];
-		array_unshift( $collection['items'], array(
+		$collection = CollectionSession::getCollection();
+		array_push( $collection['items'], array(
 			'type' => 'chapter',
 			'title' => $name,
 		) );
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		CollectionSession::setCollection( $collection );
 	}
-	
+
 	static function renameChapter( $index, $name ) {
-		$collection = $_SESSION['wsCollection'];
+		if ( !is_int( $index ) ) {
+			return;
+		}
+		$collection = CollectionSession::getCollection();
 		if ( $collection['items'][$index]['type'] != 'chapter' ) {
 			return;
 		}
 		$collection['items'][$index]['title'] = $name;
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		CollectionSession::setCollection( $collection );
 	}
-	
-	static function startSession() {
-		if( session_id() == '' ) {
-			wfSetupSession();
-		}
-		self::clearCollection();
-	}
-	
-	static function touchSession() {
-		$collection = $_SESSION['wsCollection'];
-		$collection['timestamp'] = wfTimestampNow();
-		$_SESSION['wsCollection'] = $collection;
-	}
-	
-	static function countArticles() {
-		if ( !self::hasSession() ) {
-			return 0;
-		}
-		$count = 0;
-		foreach ( $_SESSION['wsCollection']['items'] as $item ) {
-			if ( $item['type'] == 'article') {
-				$count++;
-			}
-		}
-		return $count;
-	}
 
-	static function findArticle( $title, $oldid=0 ) {
-		if ( !self::hasSession() ) {
-			return -1;
-		}
-		
-		foreach ( $_SESSION['wsCollection']['items'] as $index => $item ) {
-			if ( $item['type'] == 'article' && $item['title'] == $title) {
-				if ( $oldid ) {
-					if ( $item['revision'] == strval( $oldid ) ) {
-						return $index;
-					}
-				} else {
-					if ( $item['revision'] == $item['latest'] ) {
-						return $index;
-					}
-				}
-			}
-		}
-		return -1;
-	}
-
-	static function addArticleFromName( $namespace, $name, $oldid=0 ) {
+	static function addArticleFromName( $namespace, $name, $oldid = 0 ) {
 		$title = Title::makeTitleSafe( $namespace, $name );
+		if ( !$title ) {
+			return false;
+		}
 		return self::addArticle( $title, $oldid );
 	}
-	
-	static function addArticle( $title, $oldid=0 ) {
-		$article = new Article( $title, $oldid );
-		$latest = $article->getLatest();
-		
+
+	/**
+	 * @param $title Title
+	 * @param $oldid int
+	 * @return bool
+	 */
+	static function addArticle( $title, $oldid = 0 ) {
+		global $wgCollectionHierarchyDelimiter;
+
+		$latest = $title->getLatestRevID();
+
 		$currentVersion = 0;
 		if ( $oldid == 0 ) {
 			$currentVersion = 1;
 			$oldid = $latest;
-		} 
-		$index = self::findArticle( $title->getPrefixedText(), $oldid );
-		if ( $index != -1 ) {
-			return;
 		}
 
-		if ( !self::hasSession() ) {
-			self::startSession();
+		$prefixedText = $title->getPrefixedText();
+
+		$index = CollectionSession::findArticle( $prefixedText, $oldid );
+		if ( $index != - 1 ) {
+			return false;
 		}
-		$collection = $_SESSION['wsCollection'];
+
+		if ( !CollectionSession::hasSession() ) {
+			CollectionSession::startSession();
+		}
+		$collection = CollectionSession::getCollection();
 		$revision = Revision::newFromTitle( $title, $oldid );
-		$collection['items'][] = array(
+
+		$item = array(
 			'type' => 'article',
-			'content-type' => 'text/x-wiki',
-			'title' => $title->getPrefixedText(),
+			'content_type' => 'text/x-wiki',
+			'title' => $prefixedText,
 			'revision' => strval( $oldid ),
 			'latest' => strval( $latest ),
-			'timestamp' => wfTimestamp( TS_UNIX, $revision->mTimestamp ),
-			'url' => $title->getFullURL(),
+			'timestamp' => wfTimestamp( TS_UNIX, $revision->getTimestamp() ),
+			'url' => $title->getCanonicalURL(),
 			'currentVersion' => $currentVersion,
 		);
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+
+		if ( $wgCollectionHierarchyDelimiter != null ) {
+			$parts = explode( $wgCollectionHierarchyDelimiter, $prefixedText );
+			if ( count( $parts ) > 1 && end( $parts ) != '' ) {
+				$item['displaytitle'] = end( $parts );
+			}
+		}
+
+		$collection['items'][] = $item;
+		CollectionSession::setCollection( $collection );
+		return true;
 	}
 
-	static function removeArticleFromName( $namespace, $name, $oldid=0 ) {
+	static function removeArticleFromName( $namespace, $name, $oldid = 0 ) {
 		$title = Title::makeTitleSafe( $namespace, $name );
 		return self::removeArticle( $title, $oldid );
 	}
-	
-	static function removeArticle( $title, $oldid=0 ) {
-		if ( !self::hasSession() ) {
-			return;
+
+	/**
+	 * @param $title Title
+	 * @param $oldid int
+	 * @return bool
+	 */
+	static function removeArticle( $title, $oldid = 0 ) {
+		if ( !CollectionSession::hasSession() ) {
+			return false;
 		}
-		$collection = $_SESSION['wsCollection'];
-		$index = self::findArticle( $title->getPrefixedText(), $oldid );
-		if ( $index != -1 ) {
+		$collection = CollectionSession::getCollection();
+		$index = CollectionSession::findArticle( $title->getPrefixedText(), $oldid );
+		if ( $index != - 1 ) {
 			array_splice( $collection['items'], $index, 1 );
 		}
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		CollectionSession::setCollection( $collection );
+		return true;
 	}
 
 	static function addCategoryFromName( $name ) {
 		$title = Title::makeTitleSafe( NS_CATEGORY, $name );
 		return self::addCategory( $title );
 	}
-	
+
 	static function addCategory( $title ) {
-		global $wgOut;
-		global $wgCollectionMaxArticles;
+		global $wgCollectionMaxArticles, $wgCollectionArticleNamespaces;
 
-		$limit = $wgCollectionMaxArticles - self::countArticles();
+		$limit = $wgCollectionMaxArticles - CollectionSession::countArticles();
 		if ( $limit <= 0 ) {
 			self::limitExceeded();
 			return;
 		}
 		$db = wfGetDB( DB_SLAVE );
 		$tables = array( 'page', 'categorylinks' );
-		$fields = array( 'cl_from', 'cl_sortkey', 'page_namespace', 'page_title' );
+		$fields = array( 'page_namespace', 'page_title' );
 		$options = array(
 			'USE INDEX' => 'cl_sortkey',
-			'ORDER BY' => 'cl_sortkey',
+			'ORDER BY' => 'cl_type, cl_sortkey',
 			'LIMIT' => $limit + 1,
 		);
 		$where = array(
 			'cl_from=page_id',
-			'cl_to' => $title->getDBKey(),
-			'page_namespace' => NS_MAIN,
+			'cl_to' => $title->getDBkey(),
 		);
 		$res = $db->select( $tables, $fields, $where, __METHOD__, $options );
-		$members = array();
+
 		$count = 0;
 		$limitExceeded = false;
-		while ( $row = $db->fetchObject( $res ) ) {
+		foreach ( $res as $row ) {
 			if ( ++$count > $limit ) {
 				$limitExceeded = true;
 				break;
 			}
-			$articleTitle = Title::makeTitle( $row->page_namespace, $row->page_title );
-			if ( self::findArticle( $articleTitle->getPrefixedText() ) == -1 ) {
-				self::addArticle( $articleTitle );
+			if ( in_array( $row->page_namespace, $wgCollectionArticleNamespaces ) ) {
+				$articleTitle = Title::makeTitle( $row->page_namespace, $row->page_title );
+				if ( CollectionSession::findArticle( $articleTitle->getPrefixedText() ) == - 1 ) {
+					self::addArticle( $articleTitle );
+				}
 			}
 		}
 		$db->freeResult( $res );
@@ -461,139 +654,171 @@
 	}
 
 	static function removeItem( $index ) {
-		if ( !self::hasSession() ) {
-			return;
+		if ( !is_int( $index ) ) {
+			return false;
 		}
-		$collection = $_SESSION['wsCollection'];
+		if ( !CollectionSession::hasSession() ) {
+			return false;
+		}
+		$collection = CollectionSession::getCollection();
 		array_splice( $collection['items'], $index, 1 );
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();		
+		CollectionSession::setCollection( $collection );
+		return true;
 	}
-	
+
 	static function moveItem( $index, $delta ) {
-		if ( !self::hasSession() ) {
-			return;
+		if ( !CollectionSession::hasSession() ) {
+			return false;
 		}
-		$collection = $_SESSION['wsCollection'];
+		$collection = CollectionSession::getCollection();
 		$saved = $collection['items'][$index + $delta];
 		$collection['items'][$index + $delta] = $collection['items'][$index];
 		$collection['items'][$index] = $saved;
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		CollectionSession::setCollection( $collection );
+		return true;
 	}
-	
+
 	static function setSorting( $items ) {
-		if ( !self::hasSession() ) {
+		if ( !CollectionSession::hasSession() ) {
 			return;
 		}
-		$collection = $_SESSION['wsCollection'];
+		$collection = CollectionSession::getCollection();
 		$old_items = $collection['items'];
 		$new_items = array();
-		foreach ($items as $new_index => $old_index) {
+		foreach ( $items as $new_index => $old_index ) {
 			$new_items[$new_index] = $old_items[$old_index];
 		}
 		$collection['items'] = $new_items;
-		$_SESSION['wsCollection'] = $collection;
-		self::touchSession();
+		CollectionSession::setCollection( $collection );
 	}
-	
-	function loadCollection( $title, $append=false ) {
+
+	function parseCollectionLine( &$collection, $line, $append ) {
+		$line = trim( $line );
+		if ( !$append && preg_match( '/^===\s*(.*?)\s*===$/', $line, $match ) ) {
+			$collection['subtitle'] = $match[ 1 ];
+		} elseif ( !$append && preg_match( '/^==\s*(.*?)\s*==$/', $line, $match ) ) {
+			$collection['title'] = $match[ 1 ];
+		} elseif ( substr( $line, 0, 1 ) == ';' ) { // chapter
+			return array(
+				'type' => 'chapter',
+				'title' => trim( substr( $line, 1 ) ),
+			);
+		} elseif ( substr( $line, 0, 1 ) == ':' ) { // article
+			$articleTitle = trim( substr( $line, 1 ) );
+			if ( preg_match( '/^\[\[:?(.*?)(\|(.*?))?\]\]$/', $articleTitle, $match ) ) {
+				$articleTitle = $match[1];
+				if ( isset( $match[3] ) ) {
+					$displayTitle = $match[3];
+				} else {
+					$displayTitle = null;
+				}
+				$oldid = - 1;
+				$currentVersion = 1;
+			} elseif ( preg_match( '/^\[\{\{fullurl:(.*?)\|oldid=(.*?)\}\}\s+(.*?)\]$/', $articleTitle, $match ) ) {
+				$articleTitle = $match[1];
+				if ( isset( $match[3] ) ) {
+					$displayTitle = $match[3];
+				} else {
+					$displayTitle = null;
+				}
+				$oldid = $match[2];
+				$currentVersion = 0;
+			} else {
+				return null;
+			}
+
+			$articleTitle = Title::newFromText( $articleTitle );
+			if ( !$articleTitle ) {
+				return null;
+			}
+			if ( $oldid < 0 ) {
+				$article = new Article( $articleTitle );
+			} else {
+				$article = new Article( $articleTitle, $oldid );
+			}
+			if ( !$article->exists() ) {
+				return null;
+			}
+			$revision = Revision::newFromTitle( $articleTitle, $article->getOldID() );
+			$latest = $article->getLatest();
+			$oldid = $article->getOldID();
+			if ( !$oldid ) {
+				$oldid = $latest;
+			}
+			$d = array(
+				'type' => 'article',
+				'content_type' => 'text/x-wiki',
+				'title' => $articleTitle->getPrefixedText(),
+				'latest' => $latest,
+				'revision' => $oldid,
+				'timestamp' => wfTimestamp( TS_UNIX, $revision->getTimestamp() ),
+				'url' => $articleTitle->getCanonicalURL(),
+				'currentVersion' => $currentVersion,
+			);
+			if ( $displayTitle ) {
+				$d['displaytitle'] = $displayTitle;
+			}
+			return $d;
+		}
+		return null;
+	}
+
+	/**
+	 * @param $title Title
+	 * @param $append bool
+	 * @return array|bool
+	 */
+	function loadCollection( $title, $append = false ) {
+		global $wgOut;
+
 		if ( is_null( $title ) ) {
 			$wgOut->showErrorPage( 'coll-notitle_title', 'coll-notitle_msg' );
 			return;
 		}
 
-		$article = new Article( $title );
-		if ( !$article->exists() ) {
+		if ( !$title->exists() ) {
 			$wgOut->showErrorPage( 'coll-notfound_title', 'coll-notfound_msg' );
 			return false;
 		}
 
-		if ( !$append || !self::hasSession() ) {
+		if ( !$append || !CollectionSession::hasSession() ) {
 			$collection = array(
 				'title' => '',
 				'subtitle' => '',
 			);
 			$items = array();
 		} else {
-			$collection = $_SESSION['wsCollection'];
+			$collection = CollectionSession::getCollection();
 			$items = $collection['items'];
 		}
 
-		foreach( preg_split( '/[\r\n]+/', $article->getContent() ) as $line ) {
-			$line = trim( $line );
-			if ( !$append && preg_match( '/^===\s*(.*?)\s*===$/', $line, $match) ) {
-				$collection['subtitle'] = $match[ 1 ];
-			} else if ( !$append && preg_match( '/^==\s*(.*?)\s*==$/', $line, $match) ) {
-				$collection['title'] = $match[ 1 ];
-			} else if ($line{ 0 } == ';') { // chapter
-				$items[] = array(
-					'type' => 'chapter',
-					'title' => trim( substr( $line, 1 ) ),
-				);
-			} else if ( $line{ 0 } == ':' ) { // article
-				$articleTitle = trim( substr( $line, 1 ) );
-				if ( preg_match( '/\[\[:?(.*?)(\|(.*?))?\]\]/', $articleTitle, $match ) ) {
-					$articleTitle = $match[1];
-					$displayTitle = $match[3];
-					$oldid = -1;
-					$currentVersion = 1;
-				} else if ( preg_match( '/\[\{\{fullurl:(.*?)\|oldid=(.*?)\}\}\s+(.*?)\]/', $articleTitle, $match ) ) {
-					$articleTitle = $match[1];
-					$displayTitle = $match[3];
-					$oldid = $match[2];
-					$currentVersion = 0;
-				}
+		$article = new Article( $title );
 
-
-				if( is_null( $articleTitle ) ) {
-					continue;
-				}
-				$articleTitle = Title::newFromText( $articleTitle );
-				if ($oldid < 0) {
-					 $article = new Article( $articleTitle );
-				} else {
-					 $article = new Article( $articleTitle, $oldid );
-				}
-				if ( !$article->exists() ) {
-					continue;
-				}
-				$revision = Revision::newFromTitle( $articleTitle, $article->getOldID() );
-				$latest = $article->getLatest();
-				$oldid = $article->getOldID();
-				if ( !$oldid ) {
-					$oldid = $latest;
-				}
-				$d = array(
-					'type' => 'article',
-					'content-type' => 'text/x-wiki',
-					'title' => $articleTitle->getPrefixedText(),
-					'latest' => $latest,
-					'revision' => $oldid,
-					'timestamp' => wfTimestamp( TS_UNIX, $revsision->mTimestamp ),
-					'url' => $articleTitle->getFullURL(),
-					'currentVersion' => $currentVersion,
-				);
-				if ( $displayTitle ) {
-					$d['displaytitle'] = $displayTitle;
-				}
-				$items[] = $d;
+		foreach ( preg_split( '/[\r\n]+/', $article->getContent() ) as $line ) {
+			$item = $this->parseCollectionLine( $collection, $line, $append );
+			if ( !is_null( $item ) ) {
+				$items[] = $item;
 			}
 		}
 		$collection['items'] = $items;
 		return $collection;
 	}
 
-	function saveCollection( $title, $forceOverwrite=false ) {
-		global $wgUser;
+	/**
+	 * @param $title Title
+	 * @param $forceOverwrite bool
+	 * @return bool
+	 */
+	function saveCollection( $title, $forceOverwrite = false ) {
+		global $wgRequest, $wgUser;
 
 		$article = new Article( $title );
 		if ( $article->exists() && !$forceOverwrite ) {
 			return false;
 		}
 		$articleText = "{{" . wfMsgForContent( 'coll-savedbook_template' ) . "}}\n\n";
-		$collection = $_SESSION['wsCollection'];
-		if( $collection['title'] ) {
+		$collection = CollectionSession::getCollection();
+		if ( $collection['title'] ) {
 			$articleText .= '== ' . $collection['title'] . " ==\n";
 		}
 		if ( $collection['subtitle'] ) {
@@ -603,17 +828,17 @@
 			foreach ( $collection['items'] as $item ) {
 				if ( $item['type'] == 'chapter' ) {
 					$articleText .= ';' . $item['title'] . "\n";
-				} else if ( $item['type'] == 'article' ) {
-					if ($item['currentVersion'] == 1) {
+				} elseif ( $item['type'] == 'article' ) {
+					if ( $item['currentVersion'] == 1 ) {
 						$articleText .= ":[[" . $item['title'];
-						if ( $item['displaytitle'] ) {
+						if ( isset( $item['displaytitle'] ) && $item['displaytitle'] ) {
 							$articleText .= "|" . $item['displaytitle'];
 						}
 						$articleText .= "]]\n";
 					} else {
 						$articleText .= ":[{{fullurl:" . $item['title'];
 						$articleText .= "|oldid=" . $item['revision'] . "}} ";
-						if ( $item['displaytitle'] ) {
+						if ( isset( $item['displaytitle'] ) && $item['displaytitle'] ) {
 							$articleText .= $item['displaytitle'];
 						} else {
 							$articleText .= $item['title'];
@@ -621,60 +846,59 @@
 						$articleText .= "]\n";
 					}
 				}
-				//$articleText .= $item['revision'] . "/" . $item['latest']."\n";
+				// $articleText .= $item['revision'] . "/" . $item['latest']."\n";
 			}
 		}
-		$catTitle = Title::makeTitle( NS_CATEGORY, wfMsgForContent( 'coll-bookscategory' ) );
-		if ( !is_null( $catTitle ) ) {
-			$articleText .= "\n[[" . $catTitle->getPrefixedText() . "|" . wfEscapeWikiText( $title->getSubpageText() ) . "]]\n";
+		$t = wfMsgForContent( 'coll-bookscategory' );
+		if ( !wfEmptyMsg( 'coll-bookscategory', $t ) && $t != '-' ) {
+			$catTitle = Title::makeTitle( NS_CATEGORY, $t );
+			if ( !is_null( $catTitle ) ) {
+				$articleText .= "\n[[" . $catTitle->getPrefixedText() . "|" . wfEscapeWikiText( $title->getSubpageText() ) . "]]\n";
+			}
 		}
-		
-		$req = new FauxRequest(array(
-			'action' => 'edit',
-			'title' => $title->getPrefixedText(),
-			'text' => $articleText,
-			'token' => $wgUser->editToken(),
+
+		$req = new DerivativeRequest(
+			$wgRequest,
+			array(
+				'action' => 'edit',
+				'title' => $title->getPrefixedText(),
+				'text' => $articleText,
+				'token' => $wgUser->editToken(),
 		), true);
-		$api = new ApiMain($req, true);
+		$api = new ApiMain( $req, true );
 		$api->execute();
 		return true;
 	}
-	
+
 	function getLicenseInfos() {
-		global $wgLicenseName;
-		global $wgLicenseURL;
-		global $wgRightsIcon;
-		global $wgRightsPage;
-		global $wgRightsText;
-		global $wgRightsUrl;
-	
-		wfLoadExtensionMessages( 'Collection' );
-		
+		global $wgCollectionLicenseName, $wgCollectionLicenseURL, $wgRightsIcon;
+		global $wgRightsPage, $wgRightsText, $wgRightsUrl;
+
 		$licenseInfo = array(
 			"type" => "license",
 		);
-		
+
 		$from_msg = wfMsgForContent( 'coll-license_url' );
-		if ( $from_msg && $from_msg != '-' ) {
+		if ( !wfEmptyMsg( 'coll-license_url', $from_msg ) && $from_msg != '-' ) {
 			$licenseInfo['mw_license_url'] = $from_msg;
 			return array( $licenseInfo );
 		}
 
-		if ( $wgLicenseName ) {
-			$licenseInfo['name'] = $wgLicenseName;
+		if ( $wgCollectionLicenseName ) {
+			$licenseInfo['name'] = $wgCollectionLicenseName;
 		} else {
 			$licenseInfo['name'] = wfMsgForContent( 'coll-license' );
 		}
-		
-		if ( $wgLicenseURL ) {
-			$licenseInfo['mw_license_url'] = $wgLicenseURL;
+
+		if ( $wgCollectionLicenseURL ) {
+			$licenseInfo['mw_license_url'] = $wgCollectionLicenseURL;
 		} else {
 			$licenseInfo['mw_rights_icon'] = $wgRightsIcon;
 			$licenseInfo['mw_rights_page'] = $wgRightsPage;
 			$licenseInfo['mw_rights_url'] = $wgRightsUrl;
 			$licenseInfo['mw_rights_text'] = $wgRightsText;
 		}
-		
+
 		return array( $licenseInfo );
 	}
 
@@ -683,7 +907,7 @@
 			'type' => 'collection',
 			'licenses' => $this->getLicenseInfos()
 		);
-		
+
 		if ( isset( $collection['title'] ) ) {
 			$result['title'] = $collection['title'];
 		}
@@ -700,7 +924,7 @@
 				} else {
 					$currentChapter['items'][] = $item;
 				}
-			} else if ( $item['type'] == 'chapter' ) {
+			} elseif ( $item['type'] == 'chapter' ) {
 				if ( !is_null( $currentChapter ) ) {
 					$items[] = $currentChapter;
 				}
@@ -716,21 +940,17 @@
 		$json = new Services_JSON();
 		return $json->encode( $result );
 	}
-	
+
 	function renderCollection( $collection, $referrer, $writer ) {
-		global $wgOut;
-		global $wgContLang;
-		global $wgServer;
-		global $wgScriptPath;
-		global $wgScriptExtension;
-		
+		global $wgOut, $wgContLang, $wgScriptPath, $wgScriptExtension;
+
 		if ( !$writer ) {
 			$writer = 'rl';
 		}
-		
+
 		$response = self::mwServeCommand( 'render', array(
 			'metabook' => $this->buildJSONCollection( $collection ),
-			'base_url' => $wgServer . $wgScriptPath,
+			'base_url' => wfExpandUrl( $wgScriptPath, PROTO_CURRENT ),
 			'script_extension' => $wgScriptExtension,
 			'template_blacklist' => wfMsgForContent( 'coll-template_blacklist_title' ),
 			'template_exclusion_category' => wfMsgForContent( 'coll-exclusion_category_title' ),
@@ -739,35 +959,31 @@
 			'language' => $wgContLang->getCode(),
 			'writer' => $writer,
 		) );
-		
+
 		if ( !$response ) {
 			return;
 		}
-		
-		$redirect = SkinTemplate::makeSpecialUrlSubpage( 'Book', 'rendering/' );
-		$query = 'return_to=' . urlencode( $referrer->getPrefixedText() )
+
+		$query = 'bookcmd=rendering'
+			. '&return_to=' . urlencode( $referrer->getPrefixedText() )
 			. '&collection_id=' . urlencode( $response['collection_id'] )
 			. '&writer=' . urlencode( $response['writer'] );
 		if ( isset( $response['is_cached'] ) && $response['is_cached'] ) {
 			$query .= '&is_cached=1';
 		}
-		$wgOut->redirect( wfAppendQuery( $redirect, $query ) );
+		$redirect = SkinTemplate::makeSpecialUrl( 'Book', $query );
+		$wgOut->redirect( $redirect );
 	}
-	
+
 	function forceRenderCollection() {
-		global $wgOut;
-		global $wgContLang;
-		global $wgRequest;
-		global $wgServer;
-		global $wgScriptPath;
-		global $wgScriptExtension;
-		
+		global $wgOut, $wgContLang, $wgRequest, $wgScriptPath, $wgScriptExtension;
+
 		$collectionID = $wgRequest->getVal( 'collection_id', '' );
 		$writer = $wgRequest->getVal( 'writer', 'rl' );
-		
+
 		$response = self::mwServeCommand( 'render', array(
 			'collection_id' => $collectionID,
-			'base_url' => $wgServer . $wgScriptPath,
+			'base_url' => wfExpandUrl( $wgScriptPath, PROTO_CURRENT ),
 			'script_extension' => $wgScriptExtension,
 			'template_blacklist' => wfMsgForContent( 'coll-template_blacklist_title' ),
 			'template_exclusion_category' => wfMsgForContent( 'coll-exclusion_category_title' ),
@@ -777,30 +993,23 @@
 			'writer' => $writer,
 			'force_render' => true
 		) );
-		
+
 		if ( !$response ) {
 			return;
 		}
-		
-		$redirect = SkinTemplate::makeSpecialUrlSubpage( 'Book', 'rendering/' );
-		$query = 'return_to=' . $wgRequest->getVal( 'return_to', '' )
+
+		$query = 'bookcmd=rendering'
+			. '&return_to=' . $wgRequest->getVal( 'return_to', '' )
 			. '&collection_id=' . urlencode( $response['collection_id'] )
 			. '&writer=' . urlencode( $response['writer'] );
 		if ( $response['is_cached'] ) {
 			$query .= '&is_cached=1';
 		}
-		$wgOut->redirect( wfAppendQuery( $redirect, $query ) );
+		$wgOut->redirect( SkinTemplate::makeSpecialUrl( 'Book', $query ) );
 	}
-	
+
 	function renderRenderingPage() {
-		global $wgCollectionVersion;
-		global $wgCollectionStyleVersion;
-		global $wgJsMimeType;
-		global $wgLang;
-		global $wgOut;
-		global $wgRequest;
-		global $wgScriptPath;
-		global $wgServer;
+		global $wgLang, $wgOut, $wgRequest;
 
 		$response = self::mwServeCommand( 'render_status', array(
 			'collection_id' => $wgRequest->getVal( 'collection_id' ),
@@ -811,39 +1020,40 @@
 		}
 
 		$this->setHeaders();
-		
+
 		$return_to = $wgRequest->getVal( 'return_to' );
 
 		$query = 'collection_id=' . urlencode( $response['collection_id'] )
 			. '&writer=' . urlencode( $response['writer'] )
 			. '&return_to=' . urlencode( $return_to );
-		
+
 		switch ( $response['state'] ) {
 		case 'progress':
-			$url = htmlspecialchars( SkinTemplate::makeSpecialUrlSubpage( 'Book', 'rendering/', $query ) );
-			$wgOut->addHeadItem( 'refresh-nojs', '<noscript><meta http-equiv="refresh" content="2" /></noscript>');
-			$wgOut->addInlineScript( 'var collection_id = "' . urlencode( $response['collection_id']) . '";' );
-			$wgOut->addInlineScript( 'var writer = "' . urlencode( $response['writer']) . '";' );
+			$url = htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', 'bookcmd=rendering&' . $query ) );
+			$wgOut->addHeadItem( 'refresh-nojs', '<noscript><meta http-equiv="refresh" content="2" /></noscript>' );
+			$wgOut->addInlineScript( 'var collection_id = "' . urlencode( $response['collection_id'] ) . '";' );
+			$wgOut->addInlineScript( 'var writer = "' . urlencode( $response['writer'] ) . '";' );
 			$wgOut->addInlineScript( 'var collection_rendering = true;' );
-			$wgOut->addInlineScript( "var wgCollectionVersion = \"$wgCollectionVersion\";" );		
-			$wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/collection/jquery.js?$wgCollectionStyleVersion\"></script>" );
-			$wgOut->addScript( "<script type=\"$wgJsMimeType\" src=\"$wgScriptPath/extensions/Collection/collection/collection.js?$wgCollectionStyleVersion\"></script>" );
+			$wgOut->addModules( 'ext.collection' );
 			$wgOut->setPageTitle( wfMsg( 'coll-rendering_title' ) );
 
-			if ( isset($response['status']['status'] ) && $response['status']['status'] ) {
+			if ( isset( $response['status']['status'] ) && $response['status']['status'] ) {
 				$statusText = $response['status']['status'];
 				if ( isset( $response['status']['article'] ) && $response['status']['article'] ) {
 					$statusText .= ' ' . wfMsg( 'coll-rendering_article', $response['status']['article'] );
-				} else if ( isset( $response['status']['page'] ) && $response['status']['page'] ) {
+				} elseif ( isset( $response['status']['page'] ) && $response['status']['page'] ) {
 					$statusText .= ' ' . wfMsg( 'coll-rendering_page', $wgLang->formatNum( $response['status']['page'] ) );
 				}
 				$status = wfMsg( 'coll-rendering_status', $statusText );
 			} else {
 				$status = '';
 			}
-			
+
 			$template = new CollectionRenderingTemplate();
-			$template->set( 'status',  $status );
+			$template->set( 'status', $status );
+			if ( !isset( $response['status']['progress'] ) ) {
+				$response['status']['progress'] = 1.00;
+			}
 			$template->set( 'progress', $response['status']['progress'] );
 			$wgOut->addTemplate( $template );
 			break;
@@ -851,7 +1061,7 @@
 			$wgOut->setPageTitle( wfMsg( 'coll-rendering_finished_title' ) );
 
 			$template = new CollectionFinishedTemplate();
-			$template->set( 'download_url', $wgServer . SkinTemplate::makeSpecialUrlSubpage( 'Book', 'download/', $query ) );
+			$template->set( 'download_url', wfExpandUrl( SkinTemplate::makeSpecialUrl( 'Book', 'bookcmd=download&' . $query ), PROTO_CURRENT ) );
 			$template->set( 'is_cached', $wgRequest->getVal( 'is_cached' ) );
 			$template->set( 'query', $query );
 			$template->set( 'return_to', $return_to );
@@ -861,60 +1071,86 @@
 			$wgOut->addWikiText( 'state: ' . $response['state'] );
 		}
 	}
-	
+
 	function download() {
-		global $wgOut;
-		global $wgRequest;
-		
+		global $wgOut, $wgRequest, $wgCollectionContentTypeToFilename;
+
 		$tempfile = tmpfile();
-		$headers = self::mwServeCommand( 'download', array(
+		$r = self::mwServeCommand( 'render_status', array(
 			'collection_id' => $wgRequest->getVal( 'collection_id' ),
 			'writer' => $wgRequest->getVal( 'writer' ),
-		), $timeout=false, $toFile=$tempfile );
-		wfResetOutputBuffers();
-		if ( isset( $headers['content-type'] ) ) {
-			header( 'Content-Type: ' . $headers['content-type']);
+		) );
+
+		$info = false;
+		if ( isset( $r['url'] ) ) {
+			$result = Http::get( $r['url'] );
+			if ($result) {
+				fwrite($tempfile, $result);
+				$info = true;
+			}
+			$content_type = $r['content_type'];
+			$content_length = $r['content_length'];
+			$content_disposition = $r['content_disposition'];
+		} else {
+			$info = self::mwServeCommand( 'download', array(
+				'collection_id' => $wgRequest->getVal( 'collection_id' ),
+				'writer' => $wgRequest->getVal( 'writer' ),
+			) );
+			$content_type = $info['content_type'];
+			$content_length = $info['download_content_length'];
+			$content_disposition = null;
 		}
-		if ( isset( $headers['content-disposition'] ) ) {
-			header( 'Content-Disposition: ' . $headers['content-disposition']);
+		if ( !$info ) {
+			$wgOut->showErrorPage( 'coll-download_notfound_title', 'coll-download_notfound_text' );
+			return;
 		}
-		if ( isset( $headers['content-length'] ) ) {
-			header( 'Content-Length: ' . $headers['content-length']);
+		wfResetOutputBuffers();
+		header( 'Content-Type: ' . $content_type );
+		header( 'Content-Length: ' . $content_length );
+		if ( $content_disposition ) {
+			header( 'Content-Disposition: ' . $content_disposition );
+		} else {
+			$ct_enc = explode( ';', $content_type );
+			$ct = $ct_enc[0];
+			if ( isset( $wgCollectionContentTypeToFilename[$ct] ) ) {
+				header( 'Content-Disposition: ' . 'inline; filename=' . $wgCollectionContentTypeToFilename[$ct] );
+			}
 		}
 		fseek( $tempfile, 0 );
 		fpassthru( $tempfile );
 		$wgOut->disable();
 	}
-	
+
+	/**
+	 * @param $title Title
+	 * @param $oldid
+	 * @param $writer
+	 * @return
+	 */
 	function renderArticle( $title, $oldid, $writer ) {
 		global $wgOut;
-		
+
 		if ( is_null( $title ) ) {
 			$wgOut->showErrorPage( 'coll-notitle_title', 'coll-notitle_msg' );
 			return;
 		}
 		$article = array(
 			'type' => 'article',
-			'content-type' => 'text/x-wiki',
+			'content_type' => 'text/x-wiki',
 			'title' => $title->getPrefixedText()
 		);
 		if ( $oldid ) {
 			$article['revision'] = strval( $oldid );
 		}
-		
+
 		$revision = Revision::newFromTitle( $title, $oldid );
-		$article['timestamp'] = wfTimestamp( TS_UNIX, $revision->mTimestamp );
+		$article['timestamp'] = wfTimestamp( TS_UNIX, $revision->getTimestamp() );
 
 		$this->renderCollection( array( 'items' => array( $article ) ), $title, $writer );
 	}
 
 	function postZIP( $collection, $partner ) {
-		global $wgServer;
-		global $wgScriptPath;
-		global $wgScriptExtension;
-		global $wgOut;
-		
-		$json = new Services_JSON();
+		global $wgScriptPath, $wgScriptExtension, $wgOut;
 
 		if ( !isset( $this->mPODPartners[$partner] ) ) {
 			$wgOut->showErrorPage( 'coll-invalid_podpartner_title', 'coll-invalid_podpartner_msg' );
@@ -923,7 +1159,7 @@
 
 		$response = self::mwServeCommand( 'zip_post', array(
 			'metabook' => $this->buildJSONCollection( $collection ),
-			'base_url' => $wgServer . $wgScriptPath,
+			'base_url' => wfExpandUrl( $wgScriptPath, PROTO_CURRENT ),
 			'script_extension' => $wgScriptExtension,
 			'template_blacklist' => wfMsgForContent( 'coll-template_blacklist_title' ),
 			'template_exclusion_category' => wfMsgForContent( 'coll-exclusion_category_title' ),
@@ -933,18 +1169,21 @@
 		) );
 		if ( !$response ) {
 			return;
-		}	
+		}
 		$wgOut->redirect( $response['redirect_url'] );
 	}
-	
-	private function renderSaveOverwritePage( $title ) {
+
+	private function renderSaveOverwritePage( $colltype, $title, $pcollname, $ccollname ) {
 		global $wgOut;
 
 		$this->setHeaders();
 		$wgOut->setPageTitle( wfMsg( 'coll-save_collection' ) );
-		
+
 		$template = new CollectionSaveOverwriteTemplate();
 		$template->set( 'title', $title );
+		$template->set( 'pcollname', $pcollname );
+		$template->set( 'ccollname', $ccollname );
+		$template->set( 'colltype', $colltype );
 		$wgOut->addTemplate( $template );
 	}
 
@@ -953,340 +1192,37 @@
 
 		$this->setHeaders();
 		$wgOut->setPageTitle( wfMsg( 'coll-load_collection' ) );
-		
+
 		$template = new CollectionLoadOverwriteTemplate();
 		$template->set( 'title', $title );
 		$wgOut->addTemplate( $template );
 	}
 
-	static function isCollectionPage( $title, $article ) {
-		global $wgCommunityCollectionNamespace;
+	static function mwServeCommand( $command, $args ) {
+		global $wgOut, $wgCollectionMWServeURL, $wgCollectionMWServeCredentials, $wgCollectionFormatToServeURL;
 
-		if ( is_null( $title ) || is_null( $article ) ) {
-			return false;
-		}
-		
-		$ns = $title->getNamespace();
-		if( $ns == NS_USER || $ns == $wgCommunityCollectionNamespace ) {
-			wfLoadExtensionMessages( 'Collection' );
-			return self::pageInCategory( $article->getId(), wfMsgForContent( 'coll-bookscategory' ) );
-		} else {
-			return false;
-		}
-	}
-	
-	static protected function pageInCategory( $pageId, $categoryName ) {
-		$dbr = wfGetDB( DB_SLAVE );
-		$count = $dbr->selectField( 'categorylinks', 'COUNT(*)',
-			array(
-				'cl_from' => $pageId,
-				'cl_to' => $categoryName ),
-			__METHOD__ );
-		return ($count > 0);
-	}
+		$serveURL = $wgCollectionMWServeURL;
+		if ( array_key_exists( $args['writer'], $wgCollectionFormatToServeURL ) )
+			$serveURL = $wgCollectionFormatToServeURL[ $args['writer'] ];
 
-	/**
-	 * SkinTemplateBuildNavUrlsNav_urlsAfterPermalink hook
-	 */
-	static function createNavURLs( &$skinTemplate, &$nav_urls, &$revid1, &$revid2 ) {
-		global $wgArticle;
-		global $wgRequest;
-		global $wgCollectionFormats;
-		global $wgCollectionPortletForLoggedInUsersOnly, $wgUser;
-
-		if( $wgCollectionPortletForLoggedInUsersOnly && !$wgUser->isLoggedIn() ) {
-			return true;
-		}
-		
-		wfLoadExtensionMessages( 'Collection' );
-
-		$action = $wgRequest->getVal('action');
-
-		if ( $skinTemplate->iscontent && ( $action == '' || $action == 'view' || $action == 'purge' ) ) {
-			if ( self::isCollectionPage( $skinTemplate->mTitle, $wgArticle ) ) {
-				$params = 'colltitle=' . wfUrlencode( $skinTemplate->mTitle->getPrefixedDBKey() );
-				if ( isset( $wgCollectionFormats['rl'] ) ) {
-					$nav_urls['printable_version_pdf'] = array(
-						'href' => SkinTemplate::makeSpecialUrlSubpage(
-							'Book',
-							'render_collection/',
-							$params . '&writer=rl'),
-						'text' => wfMsg( 'coll-printable_version_pdf' ),
-					);
-				}
-				foreach ( $wgCollectionFormats as $writer => $name ) {
-				}
-			} else {
-				$params = 'arttitle=' . $skinTemplate->mTitle->getPrefixedURL();
-				if( $wgArticle ) {
-					$oldid = $wgArticle->getOldID();
-					if ( $oldid ) {
-						$params .= '&oldid=' . $oldid;
-					} else {
-						$params .= '&oldid=' . $wgArticle->getLatest();
-					}
-				}
-				if ( isset( $wgCollectionFormats['rl'] ) ) {
-					$nav_urls['printable_version_pdf'] = array(
-						'href' => SkinTemplate::makeSpecialUrlSubpage(
-							'Book',
-							'render_article/',
-							$params . '&writer=rl' ),
-						'text' => wfMsg( 'coll-printable_version_pdf' )
-					);
-				}
-			}
-		}
-		return true;
-	}
-
-
-	/**
-	 * MonoBookTemplateToolboxEnd hook
-	 */
-	static function insertMonoBookToolboxLink( &$skinTemplate ) {
-		global $wgCollectionFormats;
-		
-		if ( !empty( $skinTemplate->data['nav_urls']['printable_version_pdf']['href'] ) ) {
-			$href = htmlspecialchars( $skinTemplate->data['nav_urls']['printable_version_pdf']['href'] );
-			$label = htmlspecialchars( $skinTemplate->data['nav_urls']['printable_version_pdf']['text'] );
-			print <<<EOS
-
-				<li id="t-download-as-pdf"><a href="$href" rel="nofollow">$label</a></li>
-
-EOS
-			;
-		}
-		return true;
-	}
-
-
-	/**
-	 * Callback for hook SkinBuildSidebar (MediaWiki >= 1.14)
-	 */
-	static function buildSidebar( $skin, &$bar ) {
-		global $wgArticle;
-		global $wgUser;
-		global $wgCollectionPortletForLoggedInUsersOnly;
-		
-		if( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) {
-			// We don't want this sidebar gadget polluting the HTTP caches.
-			// To stay on the safe side for now, we'll show this only for
-			// logged-in users.
-			//
-			// In theory this could be managed properly for open sessions,
-			// but you'd have to inject something for non-open sessions or
-			// it would be very confusing.
-			$html = self::getPortlet();
-			if ( $html ) {
-				$bar[ 'coll-create_a_book' ] = $html;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * This function is the fallback solution for MediaWiki < 1.14
-	 * (where the hook SkinBuildSidebar doesn't exist)
-	 */
-	static function printPortlet() {
-		wfLoadExtensionMessages( 'Collection' );
-
-		$html = self::getPortlet();
-		
-		if ( $html ) {
-			$portletTitle = wfMsgHtml( 'coll-create_a_book' );
-			print <<<EOS
-<div id="p-collection" class="portlet">	 
-	<h5>$portletTitle</h5>	 
-		<div class="pBody">	 
-EOS
-			;
-			print $html;
-			print '</div></div>';
-		}
-	}
-	
-	/**
-	 * Return HTML-code to be inserted as portlet
-	 */
-	static function getPortlet( $ajaxHint='' ) {
-		global $wgArticle;
-		global $wgTitle;
-		global $wgOut;
-		global $wgRequest;
-		global $wgCollectionArticleNamespaces;
-
-		wfLoadExtensionMessages( 'Collection' );
-		
-		if (!$ajaxHint) {
-			// we need to re-construct a title object from the request, because
-			// the "subpage" (i.e. "par") part has been stripped of by SpecialPage.php
-			// in $wgTitle.
-			$origTitle = Title::newFromUrl($wgRequest->getVal('title'));
-			if (!is_null($origTitle)
-				&& $origTitle->getLocalUrl() == SkinTemplate::makeSpecialUrl('Book')) {
-				return;
-			}
-		}
-
-		$addArticle = wfMsgHtml( 'coll-add_page' );
-		$addArticleTooltip = wfMsgHtml( 'coll-add_page_tooltip' );
-		$removeArticle = wfMsgHtml( 'coll-remove_page' );
-		$removeArticleTooltip = wfMsgHtml( 'coll-remove_page_tooltip' );
-		$addCategory = wfMsgHtml( 'coll-add_category' );
-		$addCategoryTooltip = wfMsgHtml( 'coll-add_category_tooltip' );
-		$loadCollection = wfMsgHtml( 'coll-load_collection' );
-		$loadCollection = wfMsgHtml( 'coll-load_collection_tooltip' );
-		$namespace = $wgTitle->getNamespace();
-		
-		$numArticles = self::countArticles();
-		$showShowAndClearLinks = true;
-		
-		$out = "<ul id=\"collectionPortletList\">";
-		
-		if ( self::isCollectionPage( $wgTitle, $wgArticle) ) {
-			$params = "colltitle=" . $wgTitle->getPrefixedUrl();
-			$href = htmlspecialchars( SkinTemplate::makeSpecialUrlSubpage(
-				'Book',
-				'load_collection/',
-				$params ) );
-			$out .= "<li><a href=\"$href\" rel=\"nofollow\" title=\"$loadCollectionTooltip\">$loadCollection</a></li>";
-			$showShowAndClearLinks = false;
-
-		} else if ( $ajaxHint == 'AddCategory' || $namespace == NS_CATEGORY ) {
-			$params = "cattitle=" . $wgTitle->getPartialURL();
-			$href = htmlspecialchars( SkinTemplate::makeSpecialUrlSubpage(
-				'Book',
-				'add_category/',
-				$params ) );
-			$out .= <<<EOS
-<li>
-<a href="$href" onclick="collectionCall('AddCategory', [wgTitle]); return false;" rel="nofollow" title="$addCategoryTooltip">$addCategory</a>
-</li>
-EOS
-			;
-
-		} else if ( $ajaxHint || in_array( $namespace, $wgCollectionArticleNamespaces ) ) {
-			$params = "arttitle=" . $wgTitle->getPrefixedUrl();
-			if ( !is_null( $wgArticle ) ) {
-				$oldid = $wgArticle->getOldID();
-				$params .= "&oldid=" . $oldid;
-			} else {
-				$oldid = null;
-			}
-
-			if ( $ajaxHint == "RemoveArticle" || self::findArticle( $wgTitle->getPrefixedText(), $oldid ) == -1 ) {
-				$href = htmlspecialchars( SkinTemplate::makeSpecialUrlSubpage(
-					'Book',
-					'add_article/',
-					$params ) );
-				$out .= <<<EOS
-<li>
-	<a href="$href" onclick="collectionCall('AddArticle', [wgNamespaceNumber, wgTitle, $oldid]); return false;" rel="nofollow" title="$addArticleTooltip">$addArticle</a>
-</li>
-EOS
-				;
-			} else {
-				$href = htmlspecialchars( SkinTemplate::makeSpecialUrlSubpage(
-					'Book',
-					'remove_article/',
-					$params ) );
-				$out .= <<<EOS
-<li>
-	<a href="$href" onclick="collectionCall('RemoveArticle', [wgNamespaceNumber, wgTitle, $oldid]); return false;" rel="nofollow" title="$removeArticleTooltip">$removeArticle</a>
-</li>
-EOS
-				;
-			}
-		}
-			
-		if ( $showShowAndClearLinks && $numArticles > 0 ) {
-			global $wgLang;
-			$articles = wfMsgExt( 'coll-n_pages', array( 'parsemag' ), $wgLang->formatNum( $numArticles ) );
-			$showCollection = wfMsgHtml( 'coll-show_collection' );
-			$showCollectionTooltip = wfMsgHtml( 'coll-show_collection_tooltip' );
-			$showURL = htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book') );
-			$out .= <<<EOS
-							<li><a href="$showURL" rel="nofollow" title="$showCollectionTooltip">$showCollection<br />
-								($articles)</a></li>
-EOS
-			;
-		
-			$clearCollection = wfMsgHtml( 'coll-clear_collection' );
-			$clearCollectionTooltip = wfMsgHtml( 'coll-clear_collection_tooltip' );
-			$params = 'return_to=' . $wgTitle->getFullURL();
-			$href = htmlspecialchars( SkinTemplate::makeSpecialUrlSubpage(
-				'Book',
-				'clear_collection/',
-				$params ) );
-			$msg = htmlspecialchars( wfMsg( 'coll-clear_collection_confirm' ) );
-			$out .= <<<EOS
-<li>
-	<a href="$href" onclick="if (confirm('$msg')) return true; else return false;" rel="nofollow" title="$clearCollectionTooltip">$clearCollection</a>
-</li>
-EOS
-			;
-		}
-		
-		$helpCollections = wfMsgHtml( 'coll-help_collections' );
-		$helpCollectionsTooltip = wfMsgHtml( 'coll-help_collections_tooltip' );
-		$helpURL = htmlspecialchars( Title::newFromText( wfMsgForContent( 'coll-helppage' ) )->getFullURL() );
-		$out .= <<<EOS
-							<li><a href="$helpURL" title="$helpCollectionsTooltip">$helpCollections</a></li>
-EOS
-		;
-		
-		$out .= "</ul>";
-
-		$out .= <<<EOS
-<script type="text/javascript">
-/* <![CDATA[ */
-	function collectionCall(func, args) {
-		sajax_request_type = 'POST';
-		sajax_do_call('wfAjaxCollection' + func, args, function(xhr) {
-			sajax_request_type = 'GET';
-			sajax_do_call('wfAjaxCollectionGetPortlet', [func], function(xhr) {
-				document.getElementById('collectionPortletList').parentNode.innerHTML = xhr.responseText;
-			});
-		});
-	}
-/* ]]> */
-</script>
-EOS
-			;
-
-		return $out;
-	}
-	
-	static function mwServeCommand( $command, $args, $timeout=true, $toFile=null ) {
-		global $wgOut;
-		global $wgCollectionMWServeURL;
-		global $wgCollectionMWServeCredentials;
-		
 		$args['command'] = $command;
 		if ( $wgCollectionMWServeCredentials ) {
 			$args['login_credentials'] = $wgCollectionMWServeCredentials;
 		}
-		$errorMessage = '';
-		$headers = array();
-		$response = self::post( $wgCollectionMWServeURL, $args, $errorMessage, $headers, $timeout, $toFile );
-		if ( $toFile ) {
-			return $headers;
-		}
-		
+		$response = Http::post($serveURL, array('postData' => $args));
+
 		if ( !$response ) {
 			$wgOut->showErrorPage(
 				'coll-post_failed_title',
 				'coll-post_failed_msg',
-				array( $wgCollectionMWServeURL, $errorMessage )
+				array( $serveURL )
 			);
 			return false;
 		}
-		
+
 		$json = new Services_JSON( SERVICES_JSON_LOOSE_TYPE );
 		$json_response = $json->decode( $response );
-		
+
 		if ( !$json_response ) {
 			$wgOut->showErrorPage(
 				'coll-mwserve_failed_title',
@@ -1295,7 +1231,7 @@
 			);
 			return false;
 		}
-		
+
 		if ( isset( $json_response['error'] ) && $json_response['error'] ) {
 			$wgOut->showErrorPage(
 				'coll-mwserve_failed_title',
@@ -1304,82 +1240,8 @@
 			);
 			return false;
 		}
-		
+
 		return $json_response;
 	}
-	
-	static function post( $url, $postFields, &$errorMessage, &$headers,
-		$timeout=true, $toFile=null ) {
-		global $wgHTTPTimeout, $wgHTTPProxy, $wgTitle, $wgVersion;
-		global $wgCollectionMWServeCert;
-		global $wgCollectionVersion;
-		
-		$c = curl_init( $url );
-		curl_setopt($c, CURLOPT_PROXY, $wgHTTPProxy);
-		$userAgent = wfGetAgent();
-		if ( !$userAgent ) $userAgent = "Unknown user agent";
-		curl_setopt( $c, CURLOPT_USERAGENT, $userAgent . " (via MediaWiki/$wgVersion, Collection/$wgCollectionVersion)" );
-		curl_setopt( $c, CURLOPT_POST, true );
-		curl_setopt( $c, CURLOPT_POSTFIELDS, $postFields );
-		curl_setopt( $c, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
-		if ( is_object( $wgTitle ) ) {
-			curl_setopt( $c, CURLOPT_REFERER, $wgTitle->getFullURL() );
-		}
-		if ( $timeout ) {
-			curl_setopt( $c, CURLOPT_TIMEOUT, $wgHTTPTimeout );
-		}
-		/* Allow the use of self-signed certificates by referencing
-		 * a local (to the mediawiki install) copy of the signing
-		 * certificate */
-		if ( !($wgCollectionMWServeCert === null) ) {
-			curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, TRUE); 
-			curl_setopt ($c, CURLOPT_CAINFO, $wgCollectionMWServeCert);
-		}
-		
-		$headerStream = tmpfile();
-		curl_setopt( $c, CURLOPT_WRITEHEADER, $headerStream );
-		if ( $toFile ) {
-			curl_setopt( $c, CURLOPT_FILE, $toFile );
-		} else {
-			ob_start();
-		}
-		
-		curl_exec( $c );
-		if ( curl_errno( $c ) != CURLE_OK ) {
-			$text = false;
-			$errorMessage = curl_error( $c );
-			$headers = false;
-		} else if ( curl_getinfo( $c, CURLINFO_HTTP_CODE ) != 200 ) {
-			$text = false;
-			$errorMessage = 'HTTP status ' . curl_getinfo( $c, CURLINFO_HTTP_CODE );
-			$headers = false;
-		} else {
-			$headerSize = curl_getinfo( $c, CURLINFO_HEADER_SIZE );
-			fseek( $headerStream, 0 );
-			$headerLines = explode( "\n", fread( $headerStream, $headerSize ) );
-			foreach( $headerLines as $line ) {
-				if ( preg_match( "/^(.+?):\s+(.+)$/", trim( $line ), $matches ) ) {
-					$headers[ strtolower( $matches[1] ) ] = $matches[2];
-				}
-				unset( $matches );
-			}
-			if ( !$toFile ) {
-				$text = ob_get_contents();
-				ob_end_clean();
-			}
-			$errorMessage = '';
-		}
-		curl_close( $c );
-		return $text;
-	}
-	
-	/**
-	 * OutputPageCheckLastModified hook
-	 */
-	static function checkLastModified( $modifiedTimes ) {
-		if ( self::hasSession() && isset( $_SESSION['wsCollection']['timestamp'] ) ) {
-			$modifiedTimes['collection'] = $_SESSION['wsCollection']['timestamp'];
-		}
-		return true;
-	}
+
 }

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.hooks.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.hooks.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.hooks.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,514 @@
+<?php
+/**
+ * Collection Extension for MediaWiki
+ *
+ * Copyright (C) PediaPress GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+class CollectionHooks {
+	/**
+	 * Callback for hook SkinBuildSidebar
+	 *
+	 * @param $skin Skin
+	 * @param $bar
+	 *
+	 * @return bool
+	 */
+	static function buildSidebar( $skin, &$bar ) {
+		global $wgUser;
+		global $wgCollectionPortletForLoggedInUsersOnly;
+
+		if ( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) {
+			$html = self::getPortlet( $skin );
+			if ( $html ) {
+				$bar[ 'coll-print_export' ] = $html;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * @param $skin Skin
+	 * @param $navUrls
+	 * @return bool
+	 */
+	static function buildNavUrls( $skin, &$navUrls ) {
+		global $wgUser;
+		global $wgCollectionPortletForLoggedInUsersOnly;
+
+		if ( !$wgCollectionPortletForLoggedInUsersOnly || $wgUser->isLoggedIn() ) {
+			// We move this guy out to our own box
+			$navUrls['print'] = false;
+		}
+		return true;
+	}
+
+	/**
+	 * Return HTML-code to be inserted as portlet
+	 *
+	 * @param $sk Skin
+	 *
+	 * @return string
+	 */
+	static function getPortlet( $sk ) {
+		global $wgRequest;
+		global $wgCollectionArticleNamespaces;
+		global $wgCollectionFormats;
+		global $wgCollectionPortletFormats;
+
+		$title = $sk->getTitle();
+
+		if ( is_null( $title ) || !$title->exists() ) {
+			return;
+		}
+
+		$namespace = $title->getNamespace();
+
+		if ( !in_array( $namespace, $wgCollectionArticleNamespaces )
+			&& $namespace != NS_CATEGORY ) {
+			return false;
+		}
+
+		$action = $wgRequest->getVal( 'action', 'view' );
+		if ( $action != 'view' && $action != 'purge' ) {
+			return false;
+		}
+
+		$out = Xml::element( 'ul', array( 'id' => 'collectionPortletList' ), null );
+
+		if ( !CollectionSession::isEnabled() ) {
+			$out .= Xml::tags( 'li',
+				array( 'id' => 'coll-create_a_book' ),
+				Linker::link(
+					SpecialPage::getTitleFor( 'Book' ),
+					wfMsgHtml( 'coll-create_a_book' ),
+					array(
+						'rel' => 'nofollow',
+						'title' => wfMsg( 'coll-create_a_book_tooltip' )
+					),
+					array( 'bookcmd' => 'book_creator', 'referer' => $title->getPrefixedText() ),
+					array( 'known', 'noclasses' )
+				)
+			);
+		} else {
+			$out .= Xml::tags( 'li',
+				array( 'id' => 'coll-book_creator_disable' ),
+				Linker::link(
+					SpecialPage::getTitleFor( 'Book' ),
+					wfMsgHtml( 'coll-book_creator_disable' ),
+					array(
+						'rel' => 'nofollow',
+						'title' => wfMsg( 'coll-book_creator_disable_tooltip' )
+					),
+					array( 'bookcmd' => 'stop_book_creator', 'referer' => $title->getPrefixedText() ),
+					array( 'known', 'noclasses' )
+				)
+			);
+		}
+
+		$params = array(
+			'bookcmd' => 'render_article',
+			'arttitle' => $title->getPrefixedText(),
+		);
+
+		$oldid = $wgRequest->getVal( 'oldid' );
+		if ( $oldid ) {
+			$params['oldid'] = $oldid;
+		} else {
+			$params['oldid'] = $title->getLatestRevID();
+		}
+
+		foreach ( $wgCollectionPortletFormats as $writer ) {
+			$params['writer'] = $writer;
+			$out .= Xml::tags( 'li',
+				array( 'id' => 'coll-download-as-' . $writer ),
+				Linker::link(
+					SpecialPage::getTitleFor( 'Book' ),
+					wfMsgHtml( 'coll-download_as', htmlspecialchars( $wgCollectionFormats[$writer] ) ),
+					array(
+						'rel' => 'nofollow',
+						'title' => wfMsg( 'coll-download_as_tooltip', $wgCollectionFormats[$writer] )
+					),
+					$params,
+					array( 'known', 'noclasses' )
+				)
+			);
+		}
+
+		// Move the 'printable' link into our section for consistency
+		if ( $action == 'view' || $action == 'purge' ) {
+			global $wgOut;
+			if ( !$wgOut->isPrintable() ) {
+				$attribs = array(
+					'href' => $sk->getTitle()->getLocalUrl( $wgRequest->appendQueryValue( 'printable', 'yes', true ) ),
+					'title' => $sk->titleAttrib( 't-print', 'withaccess' ),
+					'accesskey' => $sk->accesskey( 't-print' ),
+				);
+				if ( $attribs['title'] === false ) {
+					unset( $attribs['title'] );
+				}
+				if ( $attribs['accesskey'] === false ) {
+					unset( $attribs['accesskey'] );
+				}
+				$out .= Xml::tags( 'li',
+					array( 'id' => 't-print' ),
+					Xml::element( 'a', $attribs, wfMsg( 'printableversion' ) ) );
+			}
+		}
+
+		$out .= Xml::closeElement( 'ul' );
+
+		return $out;
+	}
+
+	/**
+	 * Callback for hook SiteNoticeAfter
+	 */
+	static function siteNoticeAfter( &$siteNotice, $skin = null ) {
+		global $wgCollectionArticleNamespaces;
+		global $wgRequest;
+
+		$action = $wgRequest->getVal( 'action' );
+		if ( $action != '' && $action != 'view' && $action != 'purge' ) {
+			return true;
+		}
+
+		if ( !CollectionSession::hasSession()
+			|| !isset( $_SESSION['wsCollection']['enabled'] )
+			|| !$_SESSION['wsCollection']['enabled'] ) {
+			return true;
+		}
+
+		if ( $skin ) {
+			$title = $skin->getTitle();
+		} else {
+			global $wgTitle;
+			$title = $wgTitle;
+		}
+
+		if ( $title->isSpecial( 'Book' ) ) {
+			$cmd = $wgRequest->getVal( 'bookcmd', '' );
+			if ( $cmd == 'suggest' ) {
+				$siteNotice .= self::renderBookCreatorBox( $title, 'suggest' );
+			} elseif ( $cmd == '' ) {
+				$siteNotice .= self::renderBookCreatorBox( $title, 'showbook' );
+			}
+			return true;
+		}
+
+		if ( !$title->exists() ) {
+			return true;
+		}
+
+		$namespace = $title->getNamespace();
+		if ( !in_array( $namespace, $wgCollectionArticleNamespaces )
+			&& $namespace != NS_CATEGORY ) {
+			return true;
+		}
+
+		$siteNotice .= self::renderBookCreatorBox( $title );
+		return true;
+	}
+
+	/**
+	 * @param $title Title
+	 * @param $skin Skin
+	 * @param $mode string
+	 * @return string
+	 */
+	static function renderBookCreatorBox( $title, $mode = '' ) {
+		global $wgCollectionStyleVersion;
+		global $wgOut;
+		global $wgScriptPath;
+		global $wgRequest;
+
+		$imagePath = "$wgScriptPath/extensions/Collection/images";
+		$ptext = $title->getPrefixedText();
+		$oldid = $wgRequest->getVal( 'oldid', 0 );
+		if ( $oldid == $title->getLatestRevID() ) {
+			$oldid = 0;
+		}
+
+		$wgOut->addModules( 'ext.collection.bookcreator' );
+
+		$addRemoveState = $mode;
+
+		$html = Xml::element( 'div',
+			array( 'class' => 'collection-creatorbox' ),
+			null
+		);
+
+		$html .= Xml::element( 'img',
+			array(
+				'src' => "$imagePath/Open_book.png?$wgCollectionStyleVersion",
+				'alt' => '',
+				'width' => '80',
+				'height' => '45',
+				'class' => 'collection-creatorbox-book',
+			),
+			'',
+			true
+		);
+
+		$html .= Xml::tags( 'div',
+			array( 'class' => 'collection-creatorbox-row' ),
+			Xml::tags( 'div', null,
+				Linker::link(
+					Title::newFromText( wfMsg( 'coll-helppage' ) ),
+					Xml::element( 'img',
+						array(
+							'src' => "$imagePath/silk-help.png",
+							'alt' => '',
+							'width' => '16',
+							'height' => '16',
+						)
+					)
+					. ' ' . wfMsgHtml( 'coll-help' ),
+					array(
+						'rel' => 'nofollow',
+						'title' => wfMsg( 'coll-help_tooltip' ),
+					),
+					array(),
+					array( 'known', 'noclasses' )
+				)
+			)
+			. Xml::tags( 'span',
+				array( 'class' => 'collection-creatorbox-title' ),
+				wfMsgHtml( 'coll-book_creator' )
+			)
+			. ' ('
+			. Linker::link(
+				SpecialPage::getTitleFor( 'Book' ),
+				wfMsgHtml( 'coll-disable' ),
+				array(
+					'rel' => 'nofollow',
+					'title' => wfMsg( 'coll-book_creator_disable_tooltip' ),
+				),
+				array( 'bookcmd' => 'stop_book_creator', 'referer' => $ptext ),
+				array( 'known', 'noclasses' )
+			)
+			. ')'
+		);
+
+		$html .= Xml::tags( 'div',
+			array(
+				'id' => 'coll-book_creator_box',
+				'class' => 'collection-creatorbox-row',
+			),
+			self::getBookCreatorBoxContent( $title, $addRemoveState, $oldid )
+	 	);
+
+		$html .= Xml::closeElement( 'div' );
+		return $html;
+	}
+
+	static function getBookCreatorBoxContent( $title, $ajaxHint = null, $oldid = null ) {
+		global $wgScriptPath;
+
+		$imagePath = "$wgScriptPath/extensions/Collection/images";
+
+		return self::getBookCreatorBoxAddRemoveLink( $imagePath, $ajaxHint, $title, $oldid )
+			. self::getBookCreatorBoxShowBookLink( $imagePath, $ajaxHint )
+			. self::getBookCreatorBoxSuggestLink( $imagePath, $ajaxHint );
+	}
+
+	/**
+	 * @param $sk Skin
+	 * @param $imagePath
+	 * @param $ajaxHint
+	 * @param $title Title
+	 * @param $oldid
+	 * @return string
+	 */
+	static function getBookCreatorBoxAddRemoveLink( $imagePath, $ajaxHint, $title, $oldid ) {
+		$namespace = $title->getNamespace();
+		$ptext = $title->getPrefixedText();
+
+		if ( $ajaxHint == 'suggest' || $ajaxHint == 'showbook' ) {
+			return Xml::tags( 'span',
+				array( 'style' => 'color: #777;' ),
+				Xml::element( 'img',
+					array(
+						'src' => "$imagePath/disabled.png",
+						'alt' => '',
+						'width' => '16',
+						'height' => '16',
+						'style' => 'vertical-align: text-bottom',
+					)
+				)
+				. ' ' . wfMsgHtml( 'coll-not_addable' )
+			);
+		}
+
+		if ( $ajaxHint == 'addcategory' || $namespace == NS_CATEGORY ) {
+			$id = 'coll-add_category';
+			$icon = 'silk-add.png';
+			$captionMsg = 'coll-add_category';
+			$tooltipMsg = 'coll-add_category_tooltip';
+			$query = array( 'bookcmd' => 'add_category', 'cattitle' => $title->getText() );
+			$onclick = "collectionCall('AddCategory', ['addcategory', wgTitle]); return false;";
+		} else {
+			if ( $ajaxHint == 'addarticle'
+				|| ( $ajaxHint == '' && CollectionSession::findArticle( $ptext, $oldid ) == - 1 ) ) {
+				$id = 'coll-add_article';
+				$icon = 'silk-add.png';
+				$captionMsg = 'coll-add_this_page';
+				$tooltipMsg = 'coll-add_page_tooltip';
+				$query = array( 'bookcmd' => 'add_article', 'arttitle' => $ptext, 'oldid' => $oldid );
+				$onclick = "collectionCall('AddArticle', ['removearticle', wgNamespaceNumber, wgTitle, " .
+					Xml::encodeJsVar( $oldid ) . "]); return false;";
+			} else {
+				$id = 'coll-remove_article';
+				$icon = 'silk-remove.png';
+				$captionMsg = 'coll-remove_this_page';
+				$tooltipMsg = 'coll-remove_page_tooltip';
+				$query = array( 'bookcmd' => 'remove_article', 'arttitle' => $ptext, 'oldid' => $oldid );
+				$onclick = "collectionCall('RemoveArticle', ['addarticle', wgNamespaceNumber, wgTitle, " .
+					Xml::encodeJsVar( $oldid ) . "]); return false;";
+			}
+		}
+
+		return Linker::link(
+			SpecialPage::getTitleFor( 'Book' ),
+			Xml::element( 'img',
+				array(
+					'src' => "$imagePath/$icon",
+					'alt' => '',
+					'width' => '16',
+					'height' => '16',
+				)
+			)
+			. ' ' . wfMsgHtml( $captionMsg ),
+			array(
+				'id' => $id,
+				'rel' => 'nofollow',
+				'title' => wfMsg( $tooltipMsg ),
+				'onclick' => $onclick,
+			),
+			$query,
+			array( 'known', 'noclasses' )
+		);
+
+	}
+
+	static function getBookCreatorBoxShowBookLink( $imagePath, $ajaxHint ) {
+		$numArticles = CollectionSession::countArticles();
+
+		if ( $ajaxHint == 'showbook' ) {
+			return Xml::tags( 'strong',
+				array(
+					'class' => 'collection-creatorbox-iconlink',
+				),
+				Xml::element( 'img',
+					array(
+						'src' => "$imagePath/silk-book_open.png",
+						'alt' => '',
+						'width' => '16',
+						'height' => '16',
+					)
+				)
+				. ' ' . wfMsgHtml( 'coll-show_collection' )
+				. ' (' . wfMsgExt( 'coll-n_pages', array( 'parsemag', 'escape' ), $numArticles ) . ')'
+			);
+		} else {
+			return Linker::link(
+				SpecialPage::getTitleFor( 'Book' ),
+				Xml::element( 'img',
+					array(
+						'src' => "$imagePath/silk-book_open.png",
+						'alt' => '',
+						'width' => '16',
+						'height' => '16',
+					)
+				)
+				. ' ' . wfMsgHtml( 'coll-show_collection' )
+					. ' (' . wfMsgExt( 'coll-n_pages', array( 'parsemag', 'escape' ), $numArticles ) . ')',
+				array(
+					'rel' => 'nofollow',
+					'title' => wfMsg( 'coll-show_collection_tooltip' ),
+					'class' => 'collection-creatorbox-iconlink',
+				),
+				array(),
+				array( 'known', 'noclasses' )
+			);
+		}
+	}
+
+	static function getBookCreatorBoxSuggestLink( $imagePath, $ajaxHint ) {
+		if ( wfMsg( 'coll-suggest_enabled' ) != '1' ) {
+			return '';
+		}
+
+		if ( $ajaxHint == 'suggest' ) {
+			return Xml::tags( 'strong',
+				array(
+					'class' => 'collection-creatorbox-iconlink',
+				),
+				Xml::element( 'img',
+					array(
+						'src' => "$imagePath/silk-wand.png",
+						'alt' => '',
+						'width' => '16',
+						'height' => '16',
+						'style' => 'vertical-align: text-bottom',
+					)
+				)
+				. ' ' . wfMsgHtml( 'coll-make_suggestions' )
+			);
+		} else {
+			return Linker::link(
+				SpecialPage::getTitleFor( 'Book' ),
+				Xml::element( 'img',
+					array(
+						'src' => "$imagePath/silk-wand.png",
+						'alt' => '',
+						'width' => '16',
+						'height' => '16',
+						'style' => 'vertical-align: text-bottom',
+					)
+				)
+				. ' ' . wfMsgHtml( 'coll-make_suggestions' ),
+				array(
+					'rel' => 'nofollow',
+					'title' => wfMsg( 'coll-make_suggestions_tooltip' ),
+					'class' => 'collection-creatorbox-iconlink',
+				),
+				array( 'bookcmd' => 'suggest', ),
+				array( 'known', 'noclasses' )
+			);
+		}
+	}
+
+	/**
+	* OutputPageCheckLastModified hook
+	*/
+	static function checkLastModified( $modifiedTimes ) {
+		if ( CollectionSession::hasSession() ) {
+			$modifiedTimes['collection'] = $_SESSION['wsCollection']['timestamp'];
+		}
+		return true;
+	}
+
+	/**
+	 * ResourceLoaderGetConfigVars hook
+	 */
+	static function resourceLoaderGetConfigVars( &$vars ) {
+		$vars['wgCollectionVersion'] = $GLOBALS['wgCollectionVersion'];
+		return true;
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,9 +1,9 @@
 <?php
 
-/*
+/**
  * Collection Extension for MediaWiki
  *
- * Copyright (C) 2008, PediaPress GmbH
+ * Copyright (C) PediaPress GmbH
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  */
 
@@ -25,41 +25,33 @@
 
 $messages['en'] = array(
 	'coll-desc'                       => '[[Special:Book|Create books]]',
+	'coll-book_creator_intro'         => "<big>With the ''book creator'' you can create a book containing wiki pages of your choice. You can export the book in different formats (for example PDF or ODF) or order a printed copy.</big>",
+	'coll-manage_your_book'           => 'Manage your book',
+	'coll-book_creator_help'          => 'See [[{{MediaWiki:Coll-helppage}}|the help page about books]] for more information.',
+	'coll-start_book_creator'         => 'Start book creator',
+	'coll-book_creator_continue'      => 'Continue using book creator',
+	'coll-book_creator_disable_text'  => "''Book creator'' will be disabled and the book you are working on will be removed.",
+	'coll-book_creator_text_article'  => '{{MediaWiki:Coll-helppage}}/Book creator text',
 	'coll-collection'                 => 'Book',
 	'coll-collections'                => 'Books',
 	'coll-exclusion_category_title'   => 'Exclude in print',
 	'coll-template_blacklist_title'   => 'MediaWiki:PDF Template Blacklist', # do not translate or duplicate this message to other languages
 	'coll-print_template_prefix'      => 'Print',
 	'coll-print_template_pattern'     => '$1/Print',
-	'coll-create_a_book'              => 'Create a book',
-	'coll-add_page'                   => 'Add wiki page',
-	'coll-add_page_tooltip'           => 'Add the current wiki page to your book',
-	'coll-remove_page'                => 'Remove wiki page',
-	'coll-remove_page_tooltip'        => 'Remove the current wiki page from your book',
-	'coll-add_category'               => 'Add category',
-	'coll-add_category_tooltip'       => 'Add all wiki pages in this category to your book',
-	'coll-load_collection'            => 'Load book',
-	'coll-load_collection_tooltip'    => 'Load this book as your current book',
-	'coll-show_collection'            => 'Show book',
-	'coll-show_collection_tooltip'    => 'Click to edit/download/order your book',
-	'coll-help_collections'           => 'Books help',
-	'coll-help_collections_tooltip'   => 'Show help about the book tool',
-	'coll-n_pages'                    => '$1 {{PLURAL:$1|page|pages}}',
 	'coll-unknown_subpage_title'      => 'Unknown subpage',
 	'coll-unknown_subpage_text'       => 'This subpage of [[Special:Book|Book]] does not exist',
-	'coll-printable_version_pdf'      => 'PDF version',
-	'coll-download_as'                => 'Download as $1',
+	'coll-couldnotaddarticle_title'   => 'Could not add wiki page',
+	'coll-couldnotaddarticle_msg'     => 'The wiki page could not be added.',
+	'coll-couldnotremovearticle_title' => 'Could not remove wiki page',
+	'coll-couldnotremovearticle_msg'  => 'The wiki page could not be removed.',
 	'coll-noscript_text'              => '<h1>JavaScript is required!</h1>
 <strong>Your browser does not support JavaScript or JavaScript has been turned off.
 This page will not work correctly, unless JavaScript is enabled.</strong>',
-	'coll-intro_text'                 => "Create and manage your individual selection of wiki pages.<br />See [[{{MediaWiki:Coll-helppage}}]] for more information.",
-	'coll-helppage'                   => 'Help:Books',
-	'coll-bookscategory'              => 'Books',
 	'coll-savedbook_template'         => 'saved_book',
 	'coll-your_book'                  => 'Your book',
 	'coll-download_title'             => 'Download',
-	'coll-download_text'              => 'To download a version choose a format and click the button.',
-	'coll-download_as_text'           => 'To download a version in $1 format click the button.',
+	'coll-download_text'              => 'To download your book choose a format and click the button.',
+	'coll-download_as_text'           => 'To download your book in $1 format click the button.',
 	'coll-download'                   => 'Download',
 	'coll-format_label'               => 'Format:',
 	'coll-remove'                     => 'Remove',
@@ -74,9 +66,6 @@
 	'coll-drag_and_drop'              => 'Use drag & drop to reorder wiki pages and chapters',
 	'coll-create_chapter'             => 'Create chapter',
 	'coll-sort_alphabetically'        => 'Sort alphabetically',
-	'coll-clear_collection'           => 'Clear book',
-	'coll-clear_collection_tooltip'   => 'Remove all wiki pages from your current book',
-	'coll-clear_collection_confirm'   => 'Do you really want to completely clear your book?',
 	'coll-rename'                     => 'Rename',
 	'coll-new_chapter'                => 'Enter name for new chapter',
 	'coll-rename_chapter'             => 'Enter new name for chapter',
@@ -96,7 +85,7 @@
 	'coll-personal_collection_label'  => 'Personal book:',
 	'coll-community_collection_label' => 'Community book:',
 	'coll-save_collection'            => 'Save book',
-	'coll-save_category'              => 'All books are saved in the category [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category'              => 'All saved books are added to the category [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title'            => 'Page exists.
 Overwrite?',
 	'coll-overwrite_text'             => 'A page with the name [[:$1]] already exists.
@@ -118,25 +107,35 @@
 <p><strong>Progress:</strong> <span id=\"renderingProgress\">$1</span>% <span id=\"renderingStatus\">$2</span></p>
 
 <p>This page should automatically refresh every few seconds.
-If this does not work, please press refresh button of your browser.</p>",
+If this does not work, please press your browser's refresh button.</p>",
 	'coll-rendering_status'           => "<strong>Status:</strong> $1",
 	'coll-rendering_article'          => '(wiki page: $1)',
 	'coll-rendering_page'             => '(page: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering page info text',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering collection info text',
 	'coll-rendering_finished_title'   => 'Rendering finished',
 	'coll-rendering_finished_text'    => "<strong>The document file has been generated.</strong>
 <strong>[$1 Download the file]</strong> to your computer.
 
 Notes:
 * Not satisfied with the output? See [[{{MediaWiki:Coll-helppage}}|the help page about books]] for possibilities to improve it.",
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering page info text',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering collection info text',
 	'coll-notfound_title'             => 'Book not found',
 	'coll-notfound_text'              => 'Could not find book page.',
-	'coll-is_cached'                  => '<ul><li>A cached version of the document has been found, so no rendering was necessary. <a href="$1">Force re-rendering.</a></li></ul>',
+	'coll-download_notfound_title'    => 'File not found',
+	'coll-download_notfound_text'     => 'The file you are trying to download does not exist:
+Maybe it has been deleted and needs to be regenerated.',
+	'coll-download_failed_title'      => 'Error during download',
+	'coll-download_failed_text'       => 'There was an error when downloading the file: $1',
+	'coll-is_cached'                  => '<ul><li>A cached version of the document has been found, so no rendering was necessary.
+<a href="$1">Force re-rendering.</a></li></ul>',
 	'coll-excluded-templates'         => '* Templates in category [[:Category:$1|$1]] have been excluded.',
 	'coll-blacklisted-templates'      => '* Templates on blacklist [[:$1]] have been excluded.',
 	'coll-return_to_collection'       => '<p>Return to <a href="$1">$2</a></p>',
 	'coll-book_title'                 => 'Order as a printed book',
-	'coll-book_text'                  => 'Get a printed book from our print-on-demand partner:',
-	'coll-order_from_pp'              => 'Order book from $1',
+	'coll-book_text'                  => 'Get a printed book from our print-on-demand partner.',
+	'coll-order_from_pp'              => 'Preview with $1',
 	'coll-about_pp'                   => 'About $1',
 	'coll-invalid_podpartner_title'   => 'Invalid POD partner',
 	'coll-invalid_podpartner_msg'     => 'The supplied POD partner is invalid.
@@ -144,51 +143,129 @@
 	'coll-license'                    => 'License',
 	'coll-license_url'                => '-',
 	'coll-return_to'                  => "Return to [[:$1]]",
+	'coll-more_info'                  => 'Show more information',
+	'coll-hide_info'                  => 'Hide information',
+	'coll-order_info_article'         => '{{MediaWiki:Coll-helppage}}/PediaPress order information',
+	'coll-suggest_title'              => 'Suggested pages for your book',
+	'coll-suggest_intro_text'         => 'Suggestions are based on the current set of wiki pages in your book.
+The list is updated whenever you click on the add or remove buttons.',
+	'coll-suggested_articles'         => 'Suggestions',
+	'coll-suggest_reset_bans'         => 'reset',
+	'coll-suggest_reset_bans_tooltip' => 'Show previously removed suggestions',
+	'coll-suggest_add_selected'       => 'Add selected pages',
+	'coll-suggest_ban_selected'       => 'Remove selected pages',
+	'coll-suggest_your_book'          => 'Your book',
+	'coll-suggest_show'               => 'show',
+	'coll-suggest_ban_tooltip'        => 'Remove this page from the list of suggestions',
+	'coll-suggest_article_ban'        => "Page <strong>$1</strong> has been removed from the suggestions ($2).",
+	'coll-suggest_article_add'        => "Page <strong>$1</strong> has been added to your book ($2).",
+	'coll-suggest_article_remove'     => "Page <strong>$1</strong> has been removed from your book ($2).",
+	'coll-suggest_undo_tooltip'       => 'Undo this action',
+	'coll-suggest_undo'               => 'undo',
+	'coll-load_local_book'            => 'Click OK to continue with your book %TITLE% which contains %NUMPAGES% wiki pages. Click Cancel to delete it and start with an empty book.',
+
+	'right-collectionsaveasuserpage'  => 'Save books as user page',
+	'right-collectionsaveascommunitypage' => 'Save books as community page',
 );
 
 /** Message documentation (Message documentation)
  * @author Aleator
  * @author Aotake
+ * @author Bennylin
  * @author Darth Kule
+ * @author EugeneZelenko
  * @author Fryed-peach
  * @author Jon Harald Søby
+ * @author Lloffiwr
  * @author Mormegil
  * @author Purodha
+ * @author Rancher
  * @author Raymond
+ * @author Rex
  * @author Siebrand
  * @author Wmr89502270
  */
 $messages['qqq'] = array(
-	'coll-desc' => 'Short description of this extension, shown in [[Special:Version]]. Do not translate or change links.',
+	'coll-desc' => '{{desc}}',
+	'coll-manage_your_book' => 'Used as a title.',
 	'coll-collection' => '{{Identical|Book}}',
 	'coll-collections' => '{{Identical|Book}}',
 	'coll-exclusion_category_title' => 'The message text is the name of a category.',
-	'coll-print_template_prefix' => 'Prefix added to the templates name if you want to get a special for-print version of the template. So in a page instead of Template:Foo Template:PrintFoo is used if it exists.',
+	'coll-print_template_prefix' => 'Prefix added to the templates name if you want to get a special for-print version of the template. So in a page instead of Template:Foo Template:PrintFoo is used if it exists.
+{{Identical|Print}}',
 	'coll-print_template_pattern' => 'Use print templates being subpages of regular templates.
 
 $1 is a placeholder and will be replaced by content during the rendering process.',
-	'coll-create_a_book' => '{{Identical|Books}}',
-	'coll-printable_version_pdf' => 'Caption of a link in the [[mw:Help:Navigation#Toolbox|toolbox]] leading to the PDF version of the current page',
-	'coll-download_as' => '{{Identical|Download}}',
-	'coll-helppage' => "Used as a link to the help page for this extension's functionality on a wiki. '''Do not translate ''Help:''.'''
-{{Identical|Book}}",
-	'coll-bookscategory' => '{{Identical|Book}}',
+	'coll-savedbook_template' => 'This is the name of a template that is inserted at the top of pages for saved collections ([[wikipedia:Template:Saved_book|example]]).',
 	'coll-your_book' => '{{Identical|Books}}',
 	'coll-download_title' => '{{Identical|Download}}',
 	'coll-download' => '{{Identical|Download}}',
+	'coll-format_label' => '{{Identical|Format}}',
 	'coll-remove' => '{{Identical|Remove}}',
 	'coll-show' => '{{Identical|Show}}',
 	'coll-title' => '{{Identical|Title}}',
 	'coll-contents' => '{{Identical|Contents}}',
-	'coll-clear_collection_confirm' => 'Message box when pressed "Clear book".',
+	'coll-post_failed_msg' => '* $1 is a URL.
+* $2 is (probably) an explanation of the error.',
+	'coll-empty_collection' => 'Translate "empty" as in "an empty book" (adj), not "empty the book" (verb)',
+	'coll-revision' => '{{Identical|Revision}}',
+	'coll-save_collection' => '',
 	'coll-save_category' => 'Do not change <nowiki>{{MediaWiki:Coll-bookscategory}}</nowiki>. The link and category name should be in the content language.',
-	'coll-yes' => '{{Identical|Yes}}',
-	'coll-no' => '{{Identical|No}}',
+	'coll-yes' => '{{Identical|Yes}}
+
+This is a label on a submit button. The related question is in the message {{msg-mw|Coll-overwrite_text}}.',
+	'coll-no' => '{{Identical|No}}
+
+This is a label on a submit button. The related question is in the message {{msg-mw|Coll-overwrite_text}}.',
+	'coll-append' => '{{Identical|Append}}',
 	'coll-cancel' => '{{Identical|Cancel}}',
-	'coll-rendering_status' => '{{Identical|Status}}',
+	'coll-update' => '{{Identical|Update}}',
+	'coll-rendering_text' => 'This message appears after the download button has been clicked in the download box of the special page "Book", while the software is generating the document.
+
+The variables are:
+* $1 - a percentage
+* $2 - the message {{msg-mw|Coll-rendering_status}}',
+	'coll-rendering_status' => 'Part of the message {{msg-mw|Coll-rendering_text|notext=Yes}}.
+
+The variable $1 is another message string, as follows:
+*For a book in PDF format:
+**first the message in the Mwlib extension with the text "layouting" followed by the message {{msg-mw|Coll-rendering_article}}
+**then the message in the Mwlib extension with the text "rendering"
+*For a book in OpenDocument format:
+**first the text "parsing" (source message not yet identified)
+**then the text "preprocessing" (source message not yet identified)
+**then the text "rendering" (source message not yet identified)
+
+{{Identical|Status}}',
+	'coll-rendering_finished_text' => 'This is the first part of the text of the special page "Rendering finished", which appears after clicking \'download book\' and the book has been generated.  
+
+$1 is not text; it is the http:// address of the book.',
+	'coll-excluded-templates' => "Part of the text of the special page 'Rendering finished' which appears after clicking on 'Download' and a book has been generated.",
+	'coll-blacklisted-templates' => "Part of the text of the special page 'Rendering finished' which appears after clicking on 'Download' and a book has been generated.",
+	'coll-return_to_collection' => 'Part of the text of the special page \'Rendering finished\' which appears after clicking on \'Download\' and a book has been generated. <nowiki><a href="$1">$2</a></nowiki> does not need translating. It is a wiki link back to the "Special:Book" page.',
 	'coll-order_from_pp' => '* $1 is the name of a print provider (a company name)',
 	'coll-about_pp' => '{{Identical|About}}',
+	'coll-invalid_podpartner_title' => 'POD means print-on-demand',
+	'coll-invalid_podpartner_msg' => 'POD means print-on-demand.',
+	'coll-license' => '{{Identical|License}}',
 	'coll-return_to' => '{{Identical|Return to $1}}',
+	'coll-order_info_article' => '{{doc-important|Do not translate "<nowiki>{{MediaWiki:Coll-helppage}}/</nowiki>"}}
+Sub page of {{msg-mw|coll-helppage}} ({{int:coll-helppage}})
+
+The contents of this page appear in the "Order as a printed book" box on <nowiki>[[Special:Book]]</nowiki> when a user clicks on "Show more information" (i.e. it\'s hidden by default). The page contains general information on how to order a book from PediaPress. This can be seen e.g. on en.wp, when logged-in. The title of the sub-page "PediaPress order information" does not appear in the box, only the contents of the sub-page.',
+	'coll-suggest_reset_bans' => '{{Identical|Reset}}',
+	'coll-suggest_your_book' => '{{Identical|Book}}',
+	'coll-suggest_show' => '{{Identical|Show}}',
+	'coll-suggest_article_add' => 'Message shown when the user chose to add a suggested page to his/her book.
+* <tt>$1</tt> is the title of the added page.
+* <tt>$2</tt> is a link captioned {{msg-mw|coll-suggest_undo}}',
+	'coll-suggest_undo_tooltip' => '{{Identical|Undo}}',
+	'coll-suggest_undo' => '{{Identical|Undo}}',
+	'coll-load_local_book' => 'PLURAL support not yet available for collection extension. See the discussion on [[Thread:Support/PLURAL support for Coll-load local book/reply]].
+
+Do not translate <code>OK</code> and <code>Cancel</code>, they are part of a local popup on the client machine which is not localized at the moment.',
+	'right-collectionsaveasuserpage' => '{{doc-right|collectionsaveasuserpage}}',
+	'right-collectionsaveascommunitypage' => '{{doc-right|collectionsaveascommunitypage}}',
 );
 
 /** Faeag Rotuma (Faeag Rotuma)
@@ -213,45 +290,57 @@
 	'coll-cancel' => 'Tiaki',
 );
 
-/** Goanese Konkani (Latin) (कोंकणी/Konknni  (Latin))
+/** Goan Konkani (Latin script) (Konknni)
  * @author Deepak D'Souza
  */
 $messages['gom-latn'] = array(
 	'coll-return_to' => '[[:$1]] ak patim vos',
 );
 
+/** Abkhazian (Аҧсуа)
+ * @author Temuri rajavi
+ */
+$messages['ab'] = array(
+	'coll-rename' => 'Ахьӡ аҧсахра',
+);
+
 /** Afrikaans (Afrikaans)
  * @author Anrie
  * @author Arnobarnard
  * @author Naudefj
  * @author SPQRobin
+ * @author පසිඳු කාවින්ද
  */
 $messages['af'] = array(
-	'coll-collection' => 'Versameling',
-	'coll-collections' => 'Versamelings',
+	'coll-desc' => '[[Special:Book|Skep boeke]]',
+	'coll-book_creator_intro' => "<big>Met die ''boekmaker'' kan u 'n boek saamstel met wikiblaaie van u keuse. U kan die boek in verskillende formate eksporteer (byvoorbeeld PDF of ODF) of 'n gedrukte kopie bestel.</big>",
+	'coll-manage_your_book' => 'Beheer u boek',
+	'coll-book_creator_help' => 'Sien [[{{MediaWiki:Coll-helppage}}|die hulpblad oor boeke]] vir meer inligting.',
+	'coll-start_book_creator' => 'Begin die boekmaker',
+	'coll-book_creator_continue' => 'Gaan voort om die boekmaker te gebruik',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Boekmaker-teks',
+	'coll-collection' => 'Boek',
+	'coll-collections' => 'Boeke',
 	'coll-exclusion_category_title' => 'Laat weg met afdrukke',
 	'coll-print_template_prefix' => 'Afdruk',
-	'coll-create_a_book' => 'My versameling',
-	'coll-add_page' => 'Voeg bladsy by',
-	'coll-remove_page' => 'Verwyder bladsy',
-	'coll-add_category' => 'Voeg kategorie by',
-	'coll-load_collection' => 'Laai versameling',
-	'coll-show_collection' => 'Wys versameling',
-	'coll-help_collections' => 'Versamelinghulp',
-	'coll-n_pages' => '$1 {{PLURAL:$1|bladsy|bladsye}}',
+	'coll-print_template_pattern' => '$1/Druk',
 	'coll-unknown_subpage_title' => 'Onbekende subbladsy',
 	'coll-unknown_subpage_text' => 'Hierdie subbladsy van [[Special:Book|Boek]] bestaan nie.',
-	'coll-printable_version_pdf' => 'PDF-weergawe',
-	'coll-download_as' => 'Laaf as $1 af',
+	'coll-couldnotaddarticle_title' => 'Die wikiblad kon nie bygevoeg word nie',
+	'coll-couldnotaddarticle_msg' => 'Die wikiblad kon nie bygevoeg word nie.',
+	'coll-couldnotremovearticle_title' => 'Kon nie wikibladsy verwyder nie',
+	'coll-couldnotremovearticle_msg' => 'Die wikibladsy kon nie verwyder word nie.',
 	'coll-noscript_text' => '<h1>JavaScript word benodig!</h1>
 <strong>U blaaier ondersteun nie JavaScript of JavaScript is uitgeskakel.
 Hierdie bladsy sal nie korrek werk tensy JavaScript aangeskakel word nie.</strong>',
-	'coll-intro_text' => 'Stel u eie versameling wikibladsye saam.<br />
-[[{{MediaWiki:Coll-helppage}}|Meer inligting]].',
-	'coll-helppage' => 'Help:Boeke',
-	'coll-bookscategory' => 'Boeke',
+	'coll-savedbook_template' => 'gestoorde_boek',
 	'coll-your_book' => 'U boek',
+	'coll-download_title' => 'Aflaai',
+	'coll-download_text' => "Om te laai jou boek Kies 'n formaat en klik op die knoppie.",
+	'coll-download' => 'Aflaai',
+	'coll-format_label' => 'Formaat:',
 	'coll-remove' => 'Skrap',
+	'coll-show' => 'Wys',
 	'coll-move_to_top' => 'Skuif tot bo',
 	'coll-move_up' => 'Skuif op',
 	'coll-move_down' => 'Skuif af',
@@ -259,21 +348,142 @@
 	'coll-title' => 'Titel:',
 	'coll-subtitle' => 'Subtitel:',
 	'coll-contents' => 'Inhoud',
+	'coll-drag_and_drop' => 'Gebruik drag & drop om dit weer te orden wiki-bladsye en hoofstukke',
+	'coll-create_chapter' => 'Skep hoofstuk',
+	'coll-sort_alphabetically' => 'Sorteer alfabeties',
 	'coll-rename' => 'Hernoem',
 	'coll-new_chapter' => 'Voer naam vir nuwe hoofstuk in',
 	'coll-rename_chapter' => 'Voer nuwe naam vir hoofstuk in',
 	'coll-no_such_category' => "Geen so 'n kategorie",
-	'coll-empty_collection' => 'Lëe versameling',
-	'coll-save_collection_title' => 'Stoor versameling',
-	'coll-personal_collection_label' => 'Persoonlike versameling:',
-	'coll-community_collection_label' => 'Gemeenskap versameling:',
-	'coll-save_collection' => 'Stoor versameling',
+	'coll-notitle_title' => 'Die titel van die bladsy kon nie bepaal word nie.',
+	'coll-post_failed_title' => 'POST-versoek het gefaal',
+	'coll-post_failed_msg' => 'Die POST-versoek na $1 het misluk ($2).',
+	'coll-mwserve_failed_title' => 'Lewer stelsel fout',
+	'coll-error_reponse' => "Die bediener het 'n fout teruggestuur",
+	'coll-empty_collection' => 'Leë boek',
+	'coll-revision' => 'Weergawe: $1',
+	'coll-save_collection_title' => 'Stoor en deel u boek',
+	'coll-save_collection_text' => "Kies 'n stoor plek vir jou boek:",
+	'coll-personal_collection_label' => 'Persoonlike boek:',
+	'coll-community_collection_label' => 'Gemeenskaplike boek:',
+	'coll-save_collection' => 'Stoor boek',
+	'coll-overwrite_title' => 'Die bladsy bestaan al.
+Oorskryf?',
 	'coll-yes' => 'Ja',
 	'coll-no' => 'Nee',
+	'coll-load_overwrite_text' => "Jy het al 'n paar bladsye in jou boek.
+Wil jy jou huidige boek te vervang, voeg die nuwe inhoud, of kanselleer die laai van hierdie boek?",
+	'coll-overwrite' => 'Oorskryf',
+	'coll-append' => 'Byvoeg',
 	'coll-cancel' => 'Kanselleer',
+	'coll-update' => 'Opdateer',
+	'coll-limit_exceeded_title' => 'Boek is te groot',
+	'coll-limit_exceeded_text' => 'U boek is te groot.
+Daar kan nie meer bladsye byvoeg nie.',
+	'coll-rendering_title' => 'Die lewering van',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(wikibladsy: $1)',
+	'coll-rendering_page' => '(bladsy: $1)',
+	'coll-rendering_finished_title' => 'Die lewering van klaar',
+	'coll-notfound_title' => 'Boek nie gevind nie',
+	'coll-notfound_text' => 'Kon nie die boekbladsy vind nie.',
+	'coll-download_notfound_title' => 'Die lêer is nie gevind nie',
+	'coll-download_notfound_text' => 'Die lêer wat u probeer om af te laai bestaan ​​nie:
+Miskien is dit is verwyder en moet genereerde.',
+	'coll-download_failed_title' => 'Fout tydens aflaai',
+	'coll-download_failed_text' => "Daar was 'n fout met die aflaai van lêer: $1",
+	'coll-excluded-templates' => '* Sjablone in die kategorie [[:Category:$1|$1]] is uitgesluit.',
+	'coll-blacklisted-templates' => '* Sjablone op die swartlys [[:$1]] is uitgesluit.',
+	'coll-return_to_collection' => '<p>Keer terug na <a href="$1">$2</a></p>',
+	'coll-book_title' => "Bestel as 'n gedrukte boek",
+	'coll-book_text' => "Kry 'n gedrukte boek uit ons druk-op-aanvraag-vennoot.",
+	'coll-order_from_pp' => 'Voorskou met $1',
+	'coll-about_pp' => 'Aangaande $1',
+	'coll-invalid_podpartner_title' => 'Ongeldige POD-vennoot (print on demand partner)',
+	'coll-invalid_podpartner_msg' => 'Die verskaf POD vennoot is ongeldig.
+Let asseblief kontak met jou MediaWiki administrateur.',
 	'coll-license' => 'Lisensie',
+	'coll-return_to' => 'Terug na [[:$1]]',
+	'coll-more_info' => 'Wys meer inligting',
+	'coll-hide_info' => 'Versteek inligting',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Bestelinligting PediaPress',
+	'coll-suggest_title' => 'Voorgestelde bladsye vir jou boek',
+	'coll-suggest_intro_text' => 'Voorstelle is gebaseer op die huidige reeks van wiki-bladsye in jou boek.
+Die lys is opgedateer wanneer jy klik op die voeg of te verwyder knoppies.',
+	'coll-suggested_articles' => 'Voorstelle',
+	'coll-suggest_reset_bans' => 'herstel',
+	'coll-suggest_reset_bans_tooltip' => 'Wys voorheen verwyder voorstelle',
+	'coll-suggest_add_selected' => 'Voeg geselekteerde bladsye by',
+	'coll-suggest_ban_selected' => 'Verwyder geselekteerde bladsye',
+	'coll-suggest_your_book' => 'U boek',
+	'coll-suggest_show' => 'wys',
+	'coll-suggest_ban_tooltip' => 'Verwyder hierdie bladsy uit die lys van voorstelle',
+	'coll-suggest_article_ban' => 'Bladsy <strong>$1</strong> is verwyder uit die voorstelle ($2).',
+	'coll-suggest_article_add' => 'Bladsy <strong>$1</strong> is by u boek ($2) bygevoeg.',
+	'coll-suggest_article_remove' => 'Bladsy <strong>$1</strong> is uit u boek ($2) verwyder.',
+	'coll-suggest_undo_tooltip' => 'Maak die aksie ongedaan',
+	'coll-suggest_undo' => 'maak ongedaan',
+	'right-collectionsaveasuserpage' => 'Stoor boeke as gebruikerbladsy',
+	'right-collectionsaveascommunitypage' => 'Stoor boeke as gemeenskapsbladsy',
 );
 
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'coll-unknown_subpage_title' => 'subpage Panjohur',
+	'coll-unknown_subpage_text' => 'Kjo subpage e [[Special:Book|Libri]] nuk ekziston',
+	'coll-couldnotaddarticle_title' => 'Nuk mund të shtoni faqe wiki',
+	'coll-couldnotaddarticle_msg' => 'Faqe wiki nuk mund të shtohet.',
+	'coll-couldnotremovearticle_title' => 'Nuk mund të hiqni faqe wiki',
+	'coll-couldnotremovearticle_msg' => 'Faqe wiki nuk mund të hiqet.',
+	'coll-noscript_text' => '<h1> Nevojitet JavaScript! </h1> <strong>Shfletuesi juaj nuk përmban JavaScript-in apo JavaScript ka qenë i fikur. Kjo faqe nuk do të funksionoj në rregull, përveç nëse JavaScript është aktivizuar.</strong>',
+	'coll-savedbook_template' => 'saved_book',
+	'coll-your_book' => 'libri juaj',
+	'coll-download_title' => 'Shkarko',
+	'coll-download_text' => 'Për të shkarkuar librin tuaj të zgjidhni një format dhe klikoni butonin.',
+	'coll-download_as_text' => 'Për të shkarkuar librin tuaj në formatin $1  klikoni butonin.',
+	'coll-download' => 'Shkarko',
+	'coll-format_label' => 'Formati:',
+	'coll-remove' => 'Heq',
+	'coll-show' => 'Tregoj',
+	'coll-move_to_top' => 'Dërgo në krye',
+	'coll-move_up' => 'Ngre',
+	'coll-move_down' => 'Leviz poshtë',
+	'coll-move_to_bottom' => 'Dërgo në fund',
+	'coll-title' => 'Titulli:',
+	'coll-subtitle' => 'Subtitle:',
+	'coll-contents' => 'Përmbajtje',
+	'coll-drag_and_drop' => 'Përdorimi drag & drop për Reorder faqet wiki dhe kapituj',
+	'coll-create_chapter' => 'kapitull Krijo',
+	'coll-sort_alphabetically' => 'Renditur alfabetike',
+	'coll-rename' => 'Riemërtoj',
+	'coll-new_chapter' => 'Fusni emrin e kapitull të ri',
+	'coll-rename_chapter' => 'Shkruani emër të ri për kapitullin',
+	'coll-no_such_category' => 'Nuk ka kategori të tilla',
+	'coll-notitle_title' => 'Titulli i faqes nuk mund të përcaktohet.',
+	'coll-post_failed_title' => 'kërkesë PAS dështuar',
+	'coll-post_failed_msg' => 'Kërkesa PAS tek $1 dështoi ($2).',
+	'coll-mwserve_failed_title' => 'gabim Render server',
+	'coll-mwserve_failed_msg' => 'Ka ndodhur një gabim në server të bëjnë: <nowiki> $1 </nowiki>',
+	'coll-error_reponse' => 'Gabim përgjigje nga serveri',
+	'coll-empty_collection' => 'Libri Bosh',
+	'coll-revision' => 'Revision: $1',
+	'coll-save_collection_title' => 'Save and share librin tuaj',
+	'coll-save_collection_text' => 'Zgjidhni një vend depozitimi për librin tuaj:',
+	'coll-login_to_save' => 'Nëse dëshironi të kurseni libra për përdorim më vonë, ju lutem [[Special:UserLogin|të hyni ose të hapni një llogari]].',
+	'coll-personal_collection_label' => 'libër Personale:',
+	'coll-community_collection_label' => 'Komuniteti libër:',
+	'coll-save_collection' => 'Libri Ruaj',
+	'coll-save_category' => 'Të gjitha librat e ruajtur janë shtuar në [[:Category:{{MediaWiki:Coll-bookscategory }}|{{MediaWiki:Coll-bookscategory}}]]',
+	'coll-overwrite_title' => 'Page ekziston. Mbishkruaj?',
+	'coll-overwrite_text' => 'Një faqe me të emri [[:$1]] ekziston.
+A ju dëshironi që ajo të zëvendësohet me librin tuaj?',
+	'coll-yes' => 'Po',
+	'coll-no' => 'Jo',
+	'coll-load_overwrite_text' => 'Ju tashmë keni disa faqe në librin tuaj. A doni ta prishësh aktuale librin tuaj, append përmbajtje të re, apo anulimin e ngarkimit këtë libër?',
+);
+
 /** Amharic (አማርኛ)
  * @author Codex Sinaiticus
  */
@@ -282,42 +492,186 @@
 	'coll-yes' => 'አዎ',
 );
 
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ */
+$messages['an'] = array(
+	'coll-desc' => '[[Special:Book|Creyar libros]]',
+	'coll-book_creator_intro' => "<big>Con o ''creyador de libros'' puet creyar un libro consistent de pachinas wiki d'a suya preferencia. Puet exportar o suyo libro en diferents formatos (por eixemplo PDF u ODF) u encargar una copia impresa.</big>",
+	'coll-manage_your_book' => 'Chestionar o suyo libro',
+	'coll-book_creator_help' => "Ta mas información mire-se [[{{MediaWiki:Coll-helppage}}|a pachina d'aduya sobre os libros]].",
+	'coll-start_book_creator' => 'Encomenzar con o creyador de libros',
+	'coll-book_creator_continue' => 'Continar fendo servir o creyador de libros',
+	'coll-book_creator_disable_text' => "''Creyador de libros'' se desactivará y o libro en o qual ye treballando será eliminau.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texto en modo libro',
+	'coll-collection' => 'Libro',
+	'coll-collections' => 'Libros',
+	'coll-exclusion_category_title' => 'Excluir en imprentar',
+	'coll-print_template_prefix' => 'Imprentar',
+	'coll-print_template_pattern' => '$1/Imprentar',
+	'coll-unknown_subpage_title' => 'Subpachina desconoixida',
+	'coll-unknown_subpage_text' => "Ista subpachina d'o [[Special:Book|libro]] no existe",
+	'coll-couldnotaddarticle_title' => 'No podió adhibir a pachina wiki',
+	'coll-couldnotaddarticle_msg' => 'A pachina wiki no podió estar adhibida.',
+	'coll-couldnotremovearticle_title' => 'No ye posible eliminar a pachina wiki',
+	'coll-couldnotremovearticle_msg' => "A pachina wiki no s'ha puesto eliminar.",
+	'coll-noscript_text' => '<h1>Se precisa Javascript!</h1>
+<strong>O suyo navegador no permite Javascript u ye deshabilitau.
+Ista pachina no funcionará correctament mientres no sía habilitau.</strong>',
+	'coll-savedbook_template' => 'libro_alzau',
+	'coll-your_book' => 'O suyo libro',
+	'coll-download_title' => 'Descargar',
+	'coll-download_text' => 'Ta descargar o suyo libro trigue un formato y prete o botón.',
+	'coll-download_as_text' => 'Ta descargar o suyo libro en o formato $1 prete o botón.',
+	'coll-download' => 'Descargar',
+	'coll-format_label' => 'Formato:',
+	'coll-remove' => 'Sacar',
+	'coll-show' => 'Amostrar',
+	'coll-move_to_top' => 'Mover ta o prencipio',
+	'coll-move_up' => 'Mover ta alto',
+	'coll-move_down' => 'Mover ta abaixo',
+	'coll-move_to_bottom' => 'Mover ta la fin',
+	'coll-title' => 'Titol:',
+	'coll-subtitle' => 'Subtitol:',
+	'coll-contents' => 'Contenius',
+	'coll-drag_and_drop' => "Use arrocegar y soltar (''drag & drop'') ta reordenar capitols y pachinas wiki",
+	'coll-create_chapter' => 'Creyar capitol',
+	'coll-sort_alphabetically' => 'ordenar alfabeticament',
+	'coll-rename' => 'Renombrar',
+	'coll-new_chapter' => "Introducir nombre d'o capitol nuevo",
+	'coll-rename_chapter' => 'Introducir un nombre nuevo ta lo capitol',
+	'coll-no_such_category' => 'No existe ixa categoría',
+	'coll-notitle_title' => "No se pue determinar o titol d'a pachina.",
+	'coll-post_failed_title' => 'Falló a demanda de POST',
+	'coll-post_failed_msg' => 'A demanda de POST ta $1 ha fallau ($2).',
+	'coll-mwserve_failed_title' => "Error d'o servidor de procesau",
+	'coll-mwserve_failed_msg' => 'Ha ocurriu una error en o servidor de procesau: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => "Respuesta d'error d'o servidor",
+	'coll-empty_collection' => 'libro vuedo',
+	'coll-revision' => 'Versión: $1',
+	'coll-save_collection_title' => 'Alzar y compartir o suyo libro',
+	'coll-save_collection_text' => 'Trigue una localización:',
+	'coll-login_to_save' => 'Si quiere alzar libros ta uso posterior, por favor [[Special:UserLogin|identifique-se u creye una cuenta]].',
+	'coll-personal_collection_label' => 'Libro personal:',
+	'coll-community_collection_label' => "Libro d'a comunidat:",
+	'coll-save_collection' => 'Alzar libro',
+	'coll-save_category' => 'Totz os libros alzaus son adhibius a la categoría [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'A pachina ya existe.
+Sobrescribir?',
+	'coll-overwrite_text' => 'Ya existe una pachina con o nombre [[:$1]].
+Quiere reemplazar-la con a suya compilación?',
+	'coll-yes' => 'Sí',
+	'coll-no' => 'No',
+	'coll-load_overwrite_text' => "Ya tien qualques pachinas en o suyo libro.
+Quiere sobrescribir o suyo libro actual, adhibir o nuevo conteniu u cancelar la carga d'iste libro?",
+	'coll-overwrite' => 'Sobrescribir',
+	'coll-append' => 'Adhibir',
+	'coll-cancel' => 'Cancelar',
+	'coll-update' => 'Esviellar',
+	'coll-limit_exceeded_title' => 'Libro masiau gran',
+	'coll-limit_exceeded_text' => 'O suyo libro ye masiau gran.
+No se pueden adhibir mas pachinas.',
+	'coll-rendering_title' => 'Procesando',
+	'coll-rendering_text' => '<p><strong>Por favor, aguarde entre que se chenera o documento.</strong></p>
+
+<p><strong>Abance:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Ista pachina se esviellará automaticament cada pocos segundos.
+Si no funciona, pretd o botón de refrescar d\'o suyo navegador.</p>',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(pachina wiki: $1)',
+	'coll-rendering_page' => '(pachina: $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Procesando o texto d'información d'a pachina",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/ Procesando o texto d'información d'a replega de pachinas",
+	'coll-rendering_finished_title' => 'Proceso finalizau',
+	'coll-rendering_finished_text' => "<strong>S'ha chenerau o documento.</strong>
+<strong>[$1 Descarga o fichero]</strong>.
+
+Notas:
+* No ye satisfeito con o resultau? Mire [[{{MediaWiki:Coll-helppage}}|a pachina d'aduya sobre libros]] ta veyer as  posibilidatz d'amillorar-lo.",
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Procesando o texto d'información d'a replega de pachinas",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Renderizando o texto informativo d'a replega de pachinas",
+	'coll-notfound_title' => 'No se troba o libro',
+	'coll-notfound_text' => 'No se troba a pachina de libro.',
+	'coll-download_notfound_title' => 'No se troba o fichero',
+	'coll-download_notfound_text' => 'O fichero que ye mirando de descargar no existe: Puede estar que haiga estau borrau y amenista rechenerar-se.',
+	'coll-download_failed_title' => 'Error entre a descarga',
+	'coll-download_failed_text' => 'I habió una error quan se descargaba o fichero: $1',
+	'coll-is_cached' => '<ul><li>S\'ha trobau una versión procesada d\'o documento, por o qual no ye necesario procesar-lo. <a href="$1">Forzar reprocesau.</a></li></ul>',
+	'coll-excluded-templates' => "* S'han excluiu as plantillas d'a categoría [[:Category:$1|$1]].",
+	'coll-blacklisted-templates' => "* S'han excluiu as plantillas [[:$1]] en estar en a lista negra.",
+	'coll-return_to_collection' => '<p>Tornar ta <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Encargar o libro impreso',
+	'coll-book_text' => "Obtener un libro impreso d'un d'os nuestros socios ta encargos d'impresión:",
+	'coll-order_from_pp' => 'Previsualizar con $1',
+	'coll-about_pp' => 'Arredol de $1',
+	'coll-invalid_podpartner_title' => "Socio de encargos d'impresión (POD) no valido",
+	'coll-invalid_podpartner_msg' => "O socio ta encargos d'impresión (POD) indicau no ye valido.
+Por favor, contacte con o suyo administrador MediaWiki.",
+	'coll-license' => 'Licencia',
+	'coll-return_to' => 'Torne ta [[:$1]].',
+	'coll-more_info' => 'Amostrar mas información',
+	'coll-hide_info' => 'Amagar información',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress ordenar información',
+	'coll-suggest_title' => 'Pachinas sucheridas ta lo tuyo libro',
+	'coll-suggest_intro_text' => "As sucherencias se basan en o conchunto actual de pachinas wiki d'o tuyo libro.
+a lista s'actualiza cada vegada que fas click en os botons d'adhibir u sacar.",
+	'coll-suggested_articles' => 'Sucherencias',
+	'coll-suggest_reset_bans' => 'Restablir',
+	'coll-suggest_reset_bans_tooltip' => 'Amostrar sucherencias previament eliminadas',
+	'coll-suggest_add_selected' => 'Adhibir pachinas trigadas',
+	'coll-suggest_ban_selected' => 'Sacar as pachinas trigadas',
+	'coll-suggest_your_book' => 'O suyo libro',
+	'coll-suggest_show' => 'amostrar',
+	'coll-suggest_ban_tooltip' => "Sacar ista pachina d'a lista de sucherencias",
+	'coll-suggest_article_ban' => "A pachina <strong>$1</strong> s'ha eliminau d'as sucherencias ($2).",
+	'coll-suggest_article_add' => "A pachina <strong>$1</strong> s'ha adhibiu a o suyo libro ($2).",
+	'coll-suggest_article_remove' => "A pachina <strong>$1</strong> s'ha eliminau d'o suyo libro ($2).",
+	'coll-suggest_undo_tooltip' => 'Desfer ista acción',
+	'coll-suggest_undo' => 'desfer',
+	'coll-load_local_book' => 'Faiga click en Confirmar ta continar con o tuyo libro %TITLE% que contiene %NUMPAGES% pachina wiki. Faiga click en Cancelar ta borrar-lo y prencipiar con un libro vacío.',
+	'right-collectionsaveasuserpage' => "Alzar libros como pachina d'usuario",
+	'right-collectionsaveascommunitypage' => "Alzar libros como pachina d'a comunidat",
+);
+
 /** Arabic (العربية)
+ * @author Antime
  * @author Ciphers
  * @author Meno25
+ * @author Orango
  * @author OsamaK
+ * @author Prof.Sherif
+ * @author زكريا
  */
 $messages['ar'] = array(
 	'coll-desc' => '[[Special:Book|ينشيء كتبا]]',
+	'coll-book_creator_intro' => "<big>تستطيع مع ''منشئ الكتب'' إنشاء كتاب يتكون من صفحات ويكي بحسب اختيارك. تستطيع تصدير كتابك بأنساق مختلفة (PDF أو ODF على سبيل المثال) أو طلب نسخة مطبوعة.</big>",
+	'coll-manage_your_book' => 'إدارة كتابك',
+	'coll-book_creator_help' => 'انظر [[{{MediaWiki:Coll-helppage}}|صفحة المساعدة المتعلقة بالكتب]] للمزيد من المعلومات.',
+	'coll-start_book_creator' => 'ابدأ منشئ الكتب',
+	'coll-book_creator_continue' => 'واصل استخدام منشئ الكتب',
+	'coll-book_creator_disable_text' => "''منشئ الكتب'' سيتم تعطيله والكتاب الذي تعمل عليه ستتم إزالته.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/نص وضع الكتب',
 	'coll-collection' => 'كتاب',
 	'coll-collections' => 'كتب',
 	'coll-exclusion_category_title' => 'استثن في الطباعة',
 	'coll-print_template_prefix' => 'طباعة',
 	'coll-print_template_pattern' => '$1/طبع',
-	'coll-create_a_book' => 'إنشاء كتاب',
-	'coll-add_page' => 'إضافة صفحة ويكي',
-	'coll-remove_page' => 'إزالة صفحة ويكي',
-	'coll-add_category' => 'إضافة تصنيف',
-	'coll-load_collection' => 'تحميل الكتاب',
-	'coll-show_collection' => 'عرض الكتاب',
-	'coll-help_collections' => 'مساعدة الكتب',
-	'coll-n_pages' => '$1 {{PLURAL:$1|صفحة|صفحة}}',
 	'coll-unknown_subpage_title' => 'صفحة فرعية غير معروفة',
 	'coll-unknown_subpage_text' => 'هذه الصفحة الفرعية [[Special:Book|للكتاب]] غير موجودة',
-	'coll-printable_version_pdf' => 'نسخة PDF',
-	'coll-download_as' => 'تحميل ك$1',
+	'coll-couldnotaddarticle_title' => 'لم يمكن إضافة صفحة الويكي',
+	'coll-couldnotaddarticle_msg' => 'صفحة الويكي لم يمكن إضافتها.',
+	'coll-couldnotremovearticle_title' => 'لم يمكن إزالة صفحة الويكي',
+	'coll-couldnotremovearticle_msg' => 'صفحة الويكي لم يمكن إزالتها.',
 	'coll-noscript_text' => '<h1>الجافاسكريبت مطلوب!</h1>
 <strong>متصفحك لا يدعم جافاسكريبت جافاسكريبت أو الجافاسكريبت تم تعطيلها.
 هذه الصفحة لن تعمل بطريقة صحيحة، إلا إذا تم تفعيل الجافاسكريبت.</strong>',
-	'coll-intro_text' => 'أنشئ وتحكم بمجموعتك الفردية من صفحات الويكي.<br />انظر [[{{MediaWiki:Coll-helppage}}]] لمزيد من المعلومات.',
-	'coll-helppage' => 'Help:كتب',
-	'coll-bookscategory' => 'كتب',
 	'coll-savedbook_template' => 'كتاب_محفوظ',
 	'coll-your_book' => 'كتابك',
 	'coll-download_title' => 'تنزيل',
-	'coll-download_text' => 'لتنزيل نسخة بدون اتصال اختر نسقا وانقر الزر.',
-	'coll-download_as_text' => 'لتنزيل نسخة بصيغة $1 اضغط الزر.',
-	'coll-download' => 'تحميل',
+	'coll-download_text' => 'لتنزيل كتابك اختر نسقا واضغط الزر.',
+	'coll-download_as_text' => 'لتنزيل كتابك بصيغة $1 اضغط الزر.',
+	'coll-download' => 'نزّل',
 	'coll-format_label' => 'الصيغة:',
 	'coll-remove' => 'إزالة',
 	'coll-show' => 'عرض',
@@ -331,8 +685,6 @@
 	'coll-drag_and_drop' => 'استخدم السحب والإلقاء لطلب صفحات وفصول ويكي',
 	'coll-create_chapter' => 'إنشاء الفصل',
 	'coll-sort_alphabetically' => 'رتب أبجديا',
-	'coll-clear_collection' => 'إفراغ الكتاب',
-	'coll-clear_collection_confirm' => 'هل تريد حقا إفراغ كتابك بالكامل؟',
 	'coll-rename' => 'إعادة تسمية',
 	'coll-new_chapter' => 'أدخل الاسم للفرع الجديد',
 	'coll-rename_chapter' => 'أدخل الاسم الجديد للفرع',
@@ -345,13 +697,13 @@
 	'coll-error_reponse' => 'خطأ استجابة من الخادم',
 	'coll-empty_collection' => 'كتاب فارغ',
 	'coll-revision' => 'النسخة: $1',
-	'coll-save_collection_title' => 'حفظ ومشاركة كتابك',
+	'coll-save_collection_title' => 'احفظ وشارك كتابك',
 	'coll-save_collection_text' => 'اختر موقعا:',
 	'coll-login_to_save' => 'لو كنت تريد حفظ الكتب من أجل الاستخدام فيما بعد، من فضلك [[Special:UserLogin|قم بتسجيل الدخول أو إنشاء حساب]].',
 	'coll-personal_collection_label' => 'كتاب شخصي:',
 	'coll-community_collection_label' => 'كتاب مجتمع:',
-	'coll-save_collection' => 'حفظ الكتاب',
-	'coll-save_category' => 'الكتب يتم حفظها في التصنيف [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_collection' => 'احفظ الكتاب',
+	'coll-save_category' => 'كل الكتب المحفوظة تتم إضافتها إلى التصنيف [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'الصفحة موجودة.
 كتابة عليها؟',
 	'coll-overwrite_text' => 'صفحة بنفس الاسم [[:$1]] موجودة بالفعل.
@@ -362,7 +714,7 @@
 هل تريد الكتابة على كتابك الحالي، إضافة المحتوى الجديد أو إلغاء تحميل هذا الكتاب؟',
 	'coll-overwrite' => 'كتابة عليها',
 	'coll-append' => 'انتظار',
-	'coll-cancel' => 'إلغاء',
+	'coll-cancel' => 'ألغِ',
 	'coll-update' => 'حدّث',
 	'coll-limit_exceeded_title' => 'الكتاب كبير جدا',
 	'coll-limit_exceeded_text' => 'كتابك كبير جدا.
@@ -377,220 +729,632 @@
 	'coll-rendering_status' => '<strong>الحالة:</strong> $1',
 	'coll-rendering_article' => '(المقالة: $1)',
 	'coll-rendering_page' => '(الصفحة: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/تصيير نص معلومات صفحة',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/تصيير نص معلومات مجموعة',
 	'coll-rendering_finished_title' => 'العرض انتهى',
 	'coll-rendering_finished_text' => '<strong>ملف الوثيقة تم توليده.</strong>
 <strong>[$1 نزل الملف]</strong> إلى حاسوبك.
 
 ملاحظات:
 * غير راض عن الخرج؟ انظر [[{{MediaWiki:Coll-helppage}}|صفحة المساعدة حول المجموعات]] للاحتمالات لتحسينه.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/تصيير نص معلومات صفحة',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/تصيير نص معلومات مجموعة',
 	'coll-notfound_title' => 'الكتاب غير موجود',
 	'coll-notfound_text' => 'لم يمكن العثور على صفحة الكتاب.',
+	'coll-download_notfound_title' => 'الملف لم يتم إيجاده',
+	'coll-download_notfound_text' => 'الملف الذي تحاول تنزيله غير موجود: ربما يكون قد مسح و يحتاج إلى إعادة توليد.',
+	'coll-download_failed_title' => 'خطأ أثناء التنزيل',
+	'coll-download_failed_text' => 'وُجد خطأ أثناء تنزيل الملف: $1',
 	'coll-is_cached' => '<ul><li>نسخة مخزنة من الوثيقة تم العثور عليها، لذا لا تحديث كان ضروريا. <a href="$1">إجبار على إعادة التحديث.</a></li></ul>',
 	'coll-excluded-templates' => '* القوالب في التصنيف [[:Category:$1|$1]] تم إقصاؤها.',
 	'coll-blacklisted-templates' => '* القوالب في القائمة السوداء [[:$1]] تم إقصاؤها.',
 	'coll-return_to_collection' => '<p>ارجع إلى <a href="$1">$2</a></p>',
 	'coll-book_title' => 'طلب ككتاب مطبوع',
 	'coll-book_text' => 'احصل على كتاب مطبوع من شريكنا للطباعة عند الطلب:',
-	'coll-order_from_pp' => 'طلب كتاب من $1',
+	'coll-order_from_pp' => 'معاينة مع $1',
 	'coll-about_pp' => 'حول $1',
 	'coll-invalid_podpartner_title' => 'شريك POD غير صحيح',
 	'coll-invalid_podpartner_msg' => 'شريك POD الموفر غير صحيح.
 من فضلك اتصل بإداري ميدياويكي الخاص بك.',
 	'coll-license' => 'ترخيص',
 	'coll-return_to' => 'رجوع إلى [[:$1]]',
+	'coll-more_info' => 'عرض المزيد من المعلومات',
+	'coll-hide_info' => 'إخفاء المعلومات',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/معلومات الطلب من بيديابرس',
+	'coll-suggest_title' => 'صفحات كتابك المقترحة',
+	'coll-suggest_intro_text' => 'المقترحات مبنية على صفحات كتابك الحالية.
+سوف تُحدّث هذه القائمة كلما نقرت زر الإضافة أو الإزالة.',
+	'coll-suggested_articles' => 'اقتراحات',
+	'coll-suggest_reset_bans' => 'إعادة ضبط',
+	'coll-suggest_reset_bans_tooltip' => 'اعرض الاقتراحات المزالة سابقا',
+	'coll-suggest_add_selected' => 'أضف الصفحات المختارة',
+	'coll-suggest_ban_selected' => 'أزل الصفحات المختارة',
+	'coll-suggest_your_book' => 'كتابك',
+	'coll-suggest_show' => 'عرض',
+	'coll-suggest_ban_tooltip' => 'أزل هذه الصفحة من قائمة المقترحات',
+	'coll-suggest_article_ban' => 'الصفحة <strong>$1</strong> تمت إزالتها من الاقتراحات ($2).',
+	'coll-suggest_article_add' => 'الصفحة <strong>$1</strong> تمت إضافتها إلى كتابك ($2).',
+	'coll-suggest_article_remove' => 'الصفحة <strong>$1</strong> تمت إزالتها من كتابك ($2).',
+	'coll-suggest_undo_tooltip' => 'استرجع هذه الإجراء',
+	'coll-suggest_undo' => 'ارجع',
+	'coll-load_local_book' => 'اضغط OK للاستمرار في كتابك %TITLE% الذي به %NUMPAGES% من صفحات الويكي. اضغط Cancel لحذفه والبدء بكتاب فارغ.',
+	'right-collectionsaveasuserpage' => 'احفظ الكتب كصفحة مستخدم',
+	'right-collectionsaveascommunitypage' => 'احفظ الكتب كصفحة مجتمع',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author 334a
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'coll-collection' => 'ܟܬܒܐ',
+	'coll-collections' => 'ܟܬܒ̈ܐ',
+	'coll-print_template_prefix' => 'ܛܒܘܥ',
+	'coll-print_template_pattern' => '$1/ܛܒܘܥ',
+	'coll-savedbook_template' => 'ܟܬܒܐ_ܠܒܝܟܐ',
+	'coll-your_book' => 'ܟܬܒܐ ܕܝܠܟ',
+	'coll-download' => 'ܐܚܬ:',
+	'coll-show' => 'ܚܘܝ',
+	'coll-move_to_top' => 'ܫܢܝ ܠܥܠ ܡܢ ܟܠ',
+	'coll-move_up' => 'ܫܢܝ ܠܥܠ',
+	'coll-move_down' => 'ܫܢܝ ܠܬܚܬ',
+	'coll-move_to_bottom' => 'ܫܢܝ ܠܬܚܬ ܡܢ ܟܠ',
+	'coll-title' => 'ܟܘܢܝܐ:',
+	'coll-subtitle' => 'ܟܘܢܝܐ ܦܪܥܝܐ:',
+	'coll-contents' => 'ܚܒܝܫܬ̈ܐ',
+	'coll-empty_collection' => 'ܟܬܒܐ ܣܦܝܩܐ',
+	'coll-save_collection' => 'ܠܒܘܟ ܟܬܒܐ',
+	'coll-yes' => 'ܐܝܢ',
+	'coll-no' => 'ܠܐ',
+	'coll-cancel' => 'ܒܛܘܠ',
+	'coll-update' => 'ܚܕܬ',
+	'coll-rendering_status' => '<strong>ܐܝܟܢܝܘܬܐ:</strong> $1',
+	'coll-rendering_article' => '(ܕܦܐ ܕܘܝܩܝ: $1)',
+	'coll-rendering_page' => '(ܕܦܐ: $1)',
+	'coll-notfound_title' => 'ܟܬܒܐ ܠܝܬ ܠܗ ܐܝܬܘܬܐ',
+	'coll-download_notfound_title' => 'ܠܦܦܐ ܠܐ ܐܫܟܚܬ',
+	'coll-more_info' => 'ܚܘܝ ܝܕ̈ܥܬܐ ܝܬܝܪ',
+	'coll-suggest_your_book' => 'ܟܬܒܐ ܕܝܠܟ',
+	'coll-suggest_show' => 'ܚܘܝ',
+	'coll-suggest_undo' => 'ܠܐ ܬܥܒܕ',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
  * @author Ghaly
  * @author Meno25
  * @author Ramsis II
  */
 $messages['arz'] = array(
-	'coll-desc' => '[[Special:Book|بيعمل كتب]]',
+	'coll-desc' => '[[Special:Book|ينشيء كتبا]]',
+	'coll-book_creator_intro' => "<big>تستطيع مع ''منشئ الكتب'' إنشاء كتاب يتكون من صفحات ويكى بحسب اختيارك. تستطيع تصدير كتابك بأنساق مختلفه (PDF أو ODF على سبيل المثال) أو طلب نسخه مطبوعه.</big>",
+	'coll-manage_your_book' => 'إداره كتابك',
+	'coll-book_creator_help' => 'انظر [[{{MediaWiki:Coll-helppage}}|صفحه المساعده المتعلقه بالكتب]] للمزيد من المعلومات.',
+	'coll-start_book_creator' => 'ابدأ منشئ الكتب',
+	'coll-book_creator_continue' => 'واصل استخدام منشئ الكتب',
+	'coll-book_creator_disable_text' => "''منشئ الكتب'' سيتم تعطيله والكتاب الذى تعمل عليه ستتم إزالته.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/نص وضع الكتب',
 	'coll-collection' => 'كتاب',
 	'coll-collections' => 'كتب',
-	'coll-exclusion_category_title' => 'استبعد من  الطبع',
-	'coll-print_template_prefix' => 'اطبع',
-	'coll-create_a_book' => 'إنشاء كتاب',
-	'coll-add_page' => 'إضافة صفحة ويكى',
-	'coll-remove_page' => 'إزالة صفحة ويكى',
-	'coll-add_category' => 'إضافة تصنيف',
-	'coll-load_collection' => 'تحميل كتاب',
-	'coll-show_collection' => 'عرض الكتاب',
-	'coll-help_collections' => 'مساعدة الكتب',
-	'coll-n_pages' => '$1 {{PLURAL:$1|صفحة|صفحة}}',
-	'coll-unknown_subpage_title' => 'صفحة فرعية مش معروفة',
-	'coll-unknown_subpage_text' => 'صفحة ال [[Special:Book|كتاب]] الفرعيه دى مش موجوده',
-	'coll-printable_version_pdf' => 'نسخة PDF',
-	'coll-download_as' => 'تحميل ك$1',
+	'coll-exclusion_category_title' => 'استثن فى الطباعة',
+	'coll-print_template_prefix' => 'طباعة',
+	'coll-print_template_pattern' => '$1/طبع',
+	'coll-unknown_subpage_title' => 'صفحه فرعيه غير معروفة',
+	'coll-unknown_subpage_text' => 'هذه الصفحه الفرعيه [[Special:Book|للكتاب]] غير موجودة',
+	'coll-couldnotaddarticle_title' => 'لم يمكن إضافه صفحه الويكي',
+	'coll-couldnotaddarticle_msg' => 'صفحه الويكى لم يمكن إضافتها.',
+	'coll-couldnotremovearticle_title' => 'لم يمكن إزاله صفحه الويكي',
+	'coll-couldnotremovearticle_msg' => 'صفحه الويكى لم يمكن إزالتها.',
 	'coll-noscript_text' => '<h1>الجافاسكريبت مطلوب!</h1>
 <strong>متصفحك لا يدعم جافاسكريبت جافاسكريبت أو الجافاسكريبت تم تعطيلها.
-هذه الصفحة لن تعمل بطريقة صحيحة، إلا إذا تم تفعيل الجافاسكريبت.</strong>',
-	'coll-intro_text' => 'يمكنك جمع الصفحات، توليد وتحميل ملف PDF من مجموعات الصفحة وحفظ مجموعات الصفحة للاستخدام بعدين أو لمشاركتها.
-
-انظر [[{{MediaWiki:Coll-helppage}}|صفحة المساعدة حول المجموعات]] لمزيد من المعلومات.',
-	'coll-helppage' => 'Help:كتب',
-	'coll-bookscategory' => 'كتب',
+هذه الصفحه لن تعمل بطريقه صحيحه، إلا إذا تم تفعيل الجافاسكريبت.</strong>',
 	'coll-savedbook_template' => 'كتاب_محفوظ',
 	'coll-your_book' => 'كتابك',
-	'coll-download_title' => 'حمل المجموعة على PDF',
-	'coll-download_text' => 'لتحميل ملف PDF مولد تلقائى من مجموعة صفحتك، اضغط زر.',
-	'coll-download_as_text' => 'عشان تنزل نسخة بصيغة $1 دوس ع الزرار.',
+	'coll-download_title' => 'تنزيل',
+	'coll-download_text' => 'لتنزيل كتابك اختر نسقا واضغط الزر.',
+	'coll-download_as_text' => 'لتنزيل كتابك بصيغه $1 اضغط الزر.',
 	'coll-download' => 'تحميل',
 	'coll-format_label' => 'الصيغة:',
 	'coll-remove' => 'إزالة',
-	'coll-show' => 'اعرض',
-	'coll-move_to_top' => 'حرك لفوق',
-	'coll-move_up' => 'حرك لفوق',
+	'coll-show' => 'عرض',
+	'coll-move_to_top' => 'حرك إلى الأعلى',
+	'coll-move_up' => 'حرك إلى الأعلى',
 	'coll-move_down' => 'حرك إلى الأسفل قليلا',
 	'coll-move_to_bottom' => 'حرك إلى الأسفل',
 	'coll-title' => 'العنوان:',
 	'coll-subtitle' => 'العنوان الفرعي:',
 	'coll-contents' => 'محتويات',
-	'coll-drag_and_drop' => 'استخدم جر و  لزق لإعادة ترتيب مواد و فصول الويكى',
-	'coll-create_chapter' => 'ابتدى فرع جديد',
-	'coll-sort_alphabetically' => 'تصنيف أبجدى للصفحات',
-	'coll-clear_collection' => 'فضى الكتاب',
-	'coll-clear_collection_confirm' => 'انتا بجد عايز تفضى الكتاب بالكامل؟',
-	'coll-rename' => 'إعادة تسمية',
+	'coll-drag_and_drop' => 'استخدم السحب والإلقاء لطلب صفحات وفصول ويكي',
+	'coll-create_chapter' => 'إنشاء الفصل',
+	'coll-sort_alphabetically' => 'رتب أبجديا',
+	'coll-rename' => 'إعاده تسمية',
 	'coll-new_chapter' => 'أدخل الاسم للفرع الجديد',
 	'coll-rename_chapter' => 'أدخل الاسم الجديد للفرع',
 	'coll-no_such_category' => 'لا تصنيف كهذا',
-	'coll-notitle_title' => 'عنوان الصفحة لم يمكن تحديده.',
+	'coll-notitle_title' => 'عنوان الصفحه لم يمكن تحديده.',
 	'coll-post_failed_title' => 'طلب POST فشل',
 	'coll-post_failed_msg' => 'طلب POST إلى $1 فشل ($2).',
 	'coll-mwserve_failed_title' => 'خطأ عرض من الخادم',
 	'coll-mwserve_failed_msg' => 'حدث خطأ فى خادم العرض: <nowiki>$1</nowiki>',
-	'coll-error_reponse' => 'خطأ استجابة من الخادم',
-	'coll-empty_collection' => 'كتاب فاضى',
+	'coll-error_reponse' => 'خطأ استجابه من الخادم',
+	'coll-empty_collection' => 'كتاب فارغ',
 	'coll-revision' => 'النسخة: $1',
-	'coll-save_collection_title' => 'احفظ وشارك بالكتاب بتاعك',
-	'coll-save_collection_text' => 'لحفظ المجموعة للاستخدام المستقبلي، اختار نوع مجموعة ودخل عنوان صفحة:',
-	'coll-login_to_save' => 'لو كنت عايز تحفظ الكتب عشان تستعملها قدام،لو سمحت [[Special:UserLogin|تسجل دخولك او تفتحلك حساب]].',
-	'coll-personal_collection_label' => 'كتاب شخصى:',
+	'coll-save_collection_title' => 'احفظ وشارك كتابك',
+	'coll-save_collection_text' => 'اختر موقعا:',
+	'coll-login_to_save' => 'لو كنت تريد حفظ الكتب من أجل الاستخدام فيما بعد، من فضلك [[Special:UserLogin|قم بتسجيل الدخول أو إنشاء حساب]].',
+	'coll-personal_collection_label' => 'كتاب شخصي:',
 	'coll-community_collection_label' => 'كتاب مجتمع:',
-	'coll-save_collection' => 'حفظ الكتاب',
-	'coll-save_category' => 'كل الكتب بتتسيف فى التصنيف [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
-	'coll-overwrite_title' => 'الصفحة موجودة.
-كتابة عليها؟',
-	'coll-overwrite_text' => 'صفحة بنفس الاسم [[:$1]] موجودة بالفعل.
+	'coll-save_collection' => 'احفظ الكتاب',
+	'coll-save_category' => 'كل الكتب المحفوظه تتم إضافتها إلى التصنيف [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'الصفحه موجوده.
+كتابه عليها؟',
+	'coll-overwrite_text' => 'صفحه بنفس الاسم [[:$1]] موجوده بالفعل.
 هل تريد استبدالها بمجموعتك؟',
 	'coll-yes' => 'نعم',
 	'coll-no' => 'لا',
-	'coll-load_overwrite_text' => 'انتا عندك بالفعل شوية صفحات فى الكتاب بتاعك.
-انتا عايز تكتب فوق الكتاب الحالى ، تضيف محتوى جديد ، و لا تلغى تحميل الكتاب دا ؟',
-	'coll-overwrite' => 'كتابة عليها',
+	'coll-load_overwrite_text' => 'لديك بالفعل عده صفحات فى كتابك.
+هل تريد الكتابه على كتابك الحالى، إضافه المحتوى الجديد أو إلغاء تحميل هذا الكتاب؟',
+	'coll-overwrite' => 'كتابه عليها',
 	'coll-append' => 'انتظار',
-	'coll-cancel' => 'إلغاء',
-	'coll-update' => 'تحديث',
-	'coll-limit_exceeded_title' => 'الكتاب اكبر م اللازم',
-	'coll-limit_exceeded_text' => 'الكتاب بتاعك اكبر م اللازم.
-ما ينفعش تضيف اى صفحات زياده.',
+	'coll-cancel' => 'ألغِ',
+	'coll-update' => 'حدّث',
+	'coll-limit_exceeded_title' => 'الكتاب كبير جدا',
+	'coll-limit_exceeded_text' => 'كتابك كبير جدا.
+لا مزيد من الصفحات يمكن إضافتها.',
 	'coll-rendering_title' => 'عرض',
-	'coll-rendering_text' => "'''من فضلك استنى  توليد الوثيقة.'''
+	'coll-rendering_text' => '<p><strong>من فضلك انتظر أثناء توليد الوثيقه.</strong></p>
 
-'''التقدم:''' $1% $2
+<p><strong>التقدم:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
-الصفحه دى لازم تتحدث كل عدة ثوان.
-لو ده لا يعمل، من فضلك اضغط زر التحديث فى متصفحك.",
+<p>هذه الصفحه ينبغى أن يتم تحديثها كل عده ثوان.
+لو أن هذا لا يعمل، من فضلك اضغط زر التحديث فى متصفحك.</p>',
 	'coll-rendering_status' => '<strong>الحالة:</strong> $1',
 	'coll-rendering_article' => '(المقالة: $1)',
 	'coll-rendering_page' => '(الصفحة: $1)',
 	'coll-rendering_finished_title' => 'العرض انتهى',
-	'coll-rendering_finished_text' => '<strong>ملف الوثيقة تم توليده.</strong>
-<strong>[$1 اضغط هنا]</strong> لتنزيله للكمبيوتر بتاعك.
+	'coll-rendering_finished_text' => '<strong>ملف الوثيقه تم توليده.</strong>
+<strong>[$1 نزل الملف]</strong> إلى حاسوبك.
 
 ملاحظات:
-* مش راضى على النتيجه؟ بص  [[{{MediaWiki:Coll-helppage}}|صفحة المساعدة عن المجموعات]] للاحتمالات لتحسينه.',
-	'coll-notfound_title' => 'الكتاب مالوش وجود',
-	'coll-notfound_text' => 'ماقدرناش نلاقى صفحة الكتاب.',
-	'coll-is_cached' => '<ul><li>نسخة مخزنة من الوثيقة تم العثور عليها، لذا لا تحديث كان ضروريا. <a href="$1">إجبار على إعادة التحديث.</a></li></ul>',
+* غير راض عن الخرج؟ انظر [[{{MediaWiki:Coll-helppage}}|صفحه المساعده حول المجموعات]] للاحتمالات لتحسينه.',
+	'coll-notfound_title' => 'الكتاب غير موجود',
+	'coll-notfound_text' => 'لم يمكن العثور على صفحه الكتاب.',
+	'coll-download_notfound_title' => 'الملف لم يتم إيجاده',
+	'coll-download_notfound_text' => 'الملف الذى تحاول تنزيله غير موجود: ربما يكون قد مسح و يحتاج إلى إعاده توليد.',
+	'coll-download_failed_title' => 'خطأ أثناء التنزيل',
+	'coll-download_failed_text' => 'وُجد خطأ أثناء تنزيل الملف: $1',
+	'coll-is_cached' => '<ul><li>نسخه مخزنه من الوثيقه تم العثور عليها، لذا لا تحديث كان ضروريا. <a href="$1">إجبار على إعاده التحديث.</a></li></ul>',
 	'coll-excluded-templates' => '* القوالب فى التصنيف [[:Category:$1|$1]] تم إقصاؤها.',
-	'coll-blacklisted-templates' => '* القوالب فى القائمة السوداء [[:$1]] تم إقصاؤها.',
+	'coll-blacklisted-templates' => '* القوالب فى القائمه السوداء [[:$1]] تم إقصاؤها.',
 	'coll-return_to_collection' => '<p>ارجع إلى <a href="$1">$2</a></p>',
-	'coll-book_title' => 'اطلب كتاب مطبوع',
-	'coll-book_text' => 'ممكن طلب كتاب مطبوع يحتوى على مجموعة صفحاتك بواسطة زيارة واحد من شركاء الطباعة عند الطلب الجاى:',
-	'coll-order_from_pp' => 'طلب كتاب من $1',
+	'coll-book_title' => 'طلب ككتاب مطبوع',
+	'coll-book_text' => 'احصل على كتاب مطبوع من شريكنا للطباعه عند الطلب:',
+	'coll-order_from_pp' => 'معاينه مع $1',
 	'coll-about_pp' => 'حول $1',
 	'coll-invalid_podpartner_title' => 'شريك POD غير صحيح',
 	'coll-invalid_podpartner_msg' => 'شريك POD الموفر غير صحيح.
 من فضلك اتصل بإدارى ميدياويكى الخاص بك.',
 	'coll-license' => 'ترخيص',
 	'coll-return_to' => 'رجوع إلى [[:$1]]',
+	'coll-more_info' => 'عرض المزيد من المعلومات',
+	'coll-hide_info' => 'إخفاء المعلومات',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/معلومات الطلب من بيديابرس',
+	'coll-suggest_title' => 'صفحات كتابك المقترحة',
+	'coll-suggest_intro_text' => 'المقترحات مبنيه على صفحات كتابك الحاليه.
+سوف تُحدّث هذه القائمه كلما نقرت زر الإضافه أو الإزاله.',
+	'coll-suggested_articles' => 'اقتراحات',
+	'coll-suggest_reset_bans' => 'إعاده ضبط',
+	'coll-suggest_reset_bans_tooltip' => 'اعرض الاقتراحات المزاله سابقا',
+	'coll-suggest_add_selected' => 'أضف الصفحات المختارة',
+	'coll-suggest_ban_selected' => 'أزل الصفحات المختارة',
+	'coll-suggest_your_book' => 'كتابك',
+	'coll-suggest_show' => 'عرض',
+	'coll-suggest_ban_tooltip' => 'أزل هذه الصفحه من قائمه المقترحات',
+	'coll-suggest_article_ban' => 'الصفحه <strong>$1</strong> تمت إزالتها من الاقتراحات ($2).',
+	'coll-suggest_article_add' => 'الصفحه <strong>$1</strong> تمت إضافتها إلى كتابك ($2).',
+	'coll-suggest_article_remove' => 'الصفحه <strong>$1</strong> تمت إزالتها من كتابك ($2).',
+	'coll-suggest_undo_tooltip' => 'استرجع هذه الإجراء',
+	'coll-suggest_undo' => 'ارجع',
+	'right-collectionsaveasuserpage' => 'احفظ الكتب كصفحه مستخدم',
+	'right-collectionsaveascommunitypage' => 'احفظ الكتب كصفحه مجتمع',
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
-	'coll-collection' => 'Coleición',
-	'coll-collections' => 'Coleiciones',
-	'coll-create_a_book' => 'Crear un llibru',
-	'coll-add_page' => 'Añader páxina wiki',
-	'coll-remove_page' => 'Eliminar páxina wiki',
-	'coll-add_category' => 'Añader categoría',
-	'coll-load_collection' => 'Cargar coleición',
-	'coll-show_collection' => 'Amosar coleición',
-	'coll-help_collections' => 'Aida de les coleiciones',
-	'coll-n_pages' => '$1 {{PLURAL:$1|páxina|páxines}}',
-	'coll-download_as' => 'Descargar como $1',
-	'coll-helppage' => 'Aida:Coleiciones',
-	'coll-download_title' => 'Descargar coleición',
+	'coll-desc' => '[[Special:Book|Crear llibros]]',
+	'coll-collection' => 'Llibru',
+	'coll-collections' => 'Llibros',
+	'coll-download_title' => 'Descargar',
+	'coll-download_text' => 'Pa descargar el llibru, escueyi un formatu y calca nel botón.',
+	'coll-download_as_text' => 'Pa descargar el llibru en formatu $1 calca nel botón.',
 	'coll-download' => 'Descargar',
 	'coll-format_label' => 'Formatu:',
-	'coll-remove' => 'Eliminar',
+	'coll-remove' => 'Desaniciar',
+	'coll-show' => 'Amosar',
+	'coll-move_to_top' => 'Mover al principiu',
+	'coll-move_up' => 'Xubir',
+	'coll-move_down' => 'Baxar',
+	'coll-move_to_bottom' => 'Mover al final',
 	'coll-title' => 'Títulu:',
 	'coll-subtitle' => 'Subtítulu:',
-	'coll-create_chapter' => 'Crear capítulu nuevu',
-	'coll-sort_alphabetically' => 'Ordenar páxines alfabéticamente',
+	'coll-contents' => 'Conteníu',
+	'coll-create_chapter' => 'Crear un capítulu',
+	'coll-sort_alphabetically' => 'Ordenar alfabéticamente',
 	'coll-rename' => 'Renomar',
+	'coll-new_chapter' => "Escribi'l nome del nuevu capítulu",
+	'coll-rename_chapter' => "Escribi'l nuevu nome del capítulu",
 	'coll-yes' => 'Sí',
 	'coll-no' => 'Non',
 	'coll-about_pp' => 'Tocante a $1',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ * @author Vago
+ */
+$messages['az'] = array(
+	'coll-collection' => 'Kitab',
+	'coll-collections' => 'Kitablar',
+	'coll-print_template_prefix' => 'Çap',
+	'coll-print_template_pattern' => '$1/Çap',
+	'coll-download_title' => 'Yüklə',
+	'coll-download' => 'Yüklə',
+	'coll-format_label' => 'Format:',
+	'coll-show' => 'Göstər',
+	'coll-move_to_top' => 'Ən üstə apar',
+	'coll-move_up' => 'Yuxarı apar',
+	'coll-move_down' => 'Aşağı apar',
+	'coll-move_to_bottom' => 'Ən aşağı apar',
+	'coll-title' => 'Başlıq:',
+	'coll-subtitle' => 'Altbaşlıq:',
+	'coll-revision' => 'Yoxlama: $1',
+	'coll-yes' => 'Bəli',
+	'coll-no' => 'Xeyr',
+	'coll-overwrite' => 'Üstünə yaz',
+	'coll-append' => 'Əlavə',
+	'coll-cancel' => 'Ləğv et',
+	'coll-update' => 'Yenilə',
+	'coll-rendering_article' => '(viki səhifə: $1)',
+	'coll-rendering_page' => '(səhifə: $1)',
+	'coll-notfound_title' => 'Kitab tapılmadı',
+	'coll-download_notfound_title' => 'Fayl tapılmadı',
+	'coll-license' => 'Lisenziya',
+	'coll-return_to' => '[[:$1]]-ə qayıt',
+	'coll-suggest_reset_bans' => 'qur',
+	'coll-suggest_show' => 'göstər',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ * @author Haqmar
+ */
+$messages['ba'] = array(
+	'coll-desc' => '[[Special:Book|Китаптар яһай]]',
+	'coll-book_creator_intro' => "<big>''Китап оҫтаһы'' ярҙамы менән һеҙ һайлаған вики-биттәрҙән торған китап яһай алаһығыҙ. Китапты төрлө форматтарға сығара (мәҫәлән, PDF йәки ODF) йәки баҫылған өлгөһөнә заказ бирә алаһығыҙ.</big>",
+	'coll-manage_your_book' => 'Китабығыҙҙы идаралау',
+	'coll-book_creator_help' => 'Өҫтәмә мәғлүмәт өсөн [[{{MediaWiki:Coll-helppage}}|китаптар тураһында белешмә]] битен ҡарағыҙ.',
+	'coll-start_book_creator' => 'Китап оҫтаһын башлатырға',
+	'coll-book_creator_continue' => 'Китап оҫтаһын ҡулланыуҙы дауам итергә',
+	'coll-book_creator_disable_text' => 'Китап оҫтаһы ябыласаҡ һәм һеҙ яһап башлаған китап юйыласаҡ.',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Китап оҫтаһы тексты',
+	'coll-collection' => 'Китап',
+	'coll-collections' => 'Китаптар',
+	'coll-exclusion_category_title' => 'Баҫҡан ваҡытта иҫәпкә алынмаясаҡтар',
+	'coll-print_template_prefix' => 'Баҫыу',
+	'coll-print_template_pattern' => '$1/Баҫыу',
+	'coll-unknown_subpage_title' => 'Билдәһеҙ эске бит',
+	'coll-unknown_subpage_text' => '[[Special:Book|Китаптың]] бындай эске бите юҡ',
+	'coll-couldnotaddarticle_title' => 'Вики битен өҫтәп булманы',
+	'coll-couldnotaddarticle_msg' => 'Был битте өҫтәп булмай',
+	'coll-couldnotremovearticle_title' => 'Вики битен юйып булманы',
+	'coll-couldnotremovearticle_msg' => 'Был битте юйып булмай',
+	'coll-noscript_text' => '<h1>JavaScript кәрәк!</h1>
+<strong>Браузерығыҙҙа JavaScript эшләмәй йәки ул һүндерелгән.
+JavaScript ғәмәлдә булмаған саҡта был бит дөрөҫ эшләмәйәсәк.</strong>',
+	'coll-savedbook_template' => 'һаҡланған китап',
+	'coll-your_book' => 'Китабығыҙ',
+	'coll-download_title' => 'Күсереп алырға',
+	'coll-download_text' => 'Китабығыҙҙы күсереп алыр өсөн формат һайлағыҙ һәм төймәгә баҫығыҙ.',
+	'coll-download_as_text' => 'Китабығыҙҙы $1 форматында күсереп алыр өсөн, төймәгә баҫығыҙ.',
+	'coll-download' => 'Күсереп алырға',
+	'coll-format_label' => 'Формат:',
+	'coll-remove' => 'Юйырға',
+	'coll-show' => 'Күрһәтергә',
+	'coll-move_to_top' => 'Иң өҫкә күсерергә',
+	'coll-move_up' => 'Өҫкә күсерергә',
+	'coll-move_down' => 'Аҫҡа күсерергә',
+	'coll-move_to_bottom' => 'Иң аҫҡа күсерергә',
+	'coll-title' => 'Башлыҡ:',
+	'coll-subtitle' => 'Өҫтәмә исем:',
+	'coll-contents' => 'Эстәлек',
+	'coll-drag_and_drop' => 'Вики биттәрҙең һәм бүлектәрҙең тәртибен үҙгәртеү өсөн, уларҙы күсерегеҙ',
+	'coll-create_chapter' => 'Бүлек яһарға',
+	'coll-sort_alphabetically' => 'Әлифба буйынса теҙергә',
+	'coll-rename' => 'Яңы исем бирергә',
+	'coll-new_chapter' => 'Бүлектең яңы исемен керетегеҙ',
+	'coll-rename_chapter' => 'Бүлектең яңы исемен керетегеҙ',
+	'coll-no_such_category' => 'Бындай категория юҡ',
+	'coll-notitle_title' => 'Биттең башлығын билдәләп булмай.',
+	'coll-post_failed_title' => 'POST-һорау хатаһы',
+	'coll-post_failed_msg' => '$1 өсөн POST-һорау хатаһы ($2).',
+	'coll-mwserve_failed_title' => 'Төшөрөү серверы хатаһы',
+	'coll-mwserve_failed_msg' => 'Төшөрөү серверында хата килеп сыҡты: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Серверҙан яуап хатаһы',
+	'coll-empty_collection' => 'Буш китап',
+	'coll-revision' => 'Өлгө: $1',
+	'coll-save_collection_title' => 'Китапты һаҡларға һәм уның менән бүлешергә',
+	'coll-save_collection_text' => 'Китабығыҙҙы һаҡлау өсөн урын һайлағыҙ:',
+	'coll-login_to_save' => 'Китапты артабан ҡулланыу маҡсатында һаҡлар өсөн, зинһар, [[Special:UserLogin|танылығыҙ йәки иҫәп яҙмаһын булдырығыҙ]].',
+	'coll-personal_collection_label' => 'Шәхси китап:',
+	'coll-community_collection_label' => 'Берләшмә китабы:',
+	'coll-save_collection' => 'Китапты һаҡларға',
+	'coll-save_category' => 'Бөтә һаҡланған китаптар [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] категорияһына өҫтәлә.',
+	'coll-overwrite_title' => 'Бит бар.
+Өҫтөнә яҙырғамы?',
+	'coll-overwrite_text' => '[[:$1]] исемле бит бар инде.
+Уның һеҙҙең китабығыҙға алыштырылыуын теләйһегеҙме?',
+	'coll-yes' => 'Эйе',
+	'coll-no' => 'Юҡ',
+	'coll-load_overwrite_text' => 'Һеҙҙең китабығыҙҙа бер нисә бит бар инде.
+Һеҙ ағымдағы китапты яңынан яҙҙырырға, яңы эстәлек өҫтәргә йәки был китапты тейәүҙе кире алырға теләһегеҙме?',
+	'coll-overwrite' => 'Яңынан яҙҙырырға',
+	'coll-append' => 'Өҫтәргә',
+	'coll-cancel' => 'Кире алырға',
+	'coll-update' => 'Яңыртырға',
+	'coll-limit_exceeded_title' => 'Китап бигерәк ҙур',
+	'coll-limit_exceeded_text' => 'Һеҙҙең китабығыҙ бигерәк ҙур.
+Уға биттәр өҫтәп булмай.',
+	'coll-rendering_title' => 'Яһау',
+	'coll-rendering_text' => '<p><strong>Зинһар, документ булдырылғансы көтөгөҙ.</strong></p>
+
+<p><strong>Эш барышы:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Был бит бер нисә секунд һайын үҙенән-үҙе яңырырға тейеш.
+Әгәр яңырмаһа, зинһар, браузерығыҙҙың яңыртыу төймәһенә баҫығыҙ.</p>',
+	'coll-rendering_status' => '<strong>Торошо:</strong> $1',
+	'coll-rendering_article' => '(вики бит: $1)',
+	'coll-rendering_page' => '(бит: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Бит тураһында мәғлүмәт текстын күһәтеү',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Йыйынтыҡ тураһында мәғлүмәт текстын күһәтеү',
+	'coll-rendering_finished_title' => 'Төшөрөү тамамланды',
+	'coll-rendering_finished_text' => '<strong>Документ булдырылды.</strong>
+<strong>[$1 Файлды күсереп алырға]</strong>.
+
+Иҫкәрмә:
+* Һөҙөмтә менән ҡәнәғәт түгелһегеҙме? Яҡшыртыу мөмкинлектәре тураһында [[{{MediaWiki:Coll-helppage}}|китаптар тураһында белешмә битендә]] уҡығыҙ.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Бит тураһында мәғлүмәт текстын күһәтеү',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Йыйынтыҡ тураһында мәғлүмәт текстын күһәтеү',
+	'coll-notfound_title' => 'Китап табылманы',
+	'coll-notfound_text' => 'Китаптың битен табып булмай.',
+	'coll-download_notfound_title' => 'Файл табылманы',
+	'coll-download_notfound_text' => 'Һеҙ күсереп алырға теләгән файл юҡ. Ул юйылған һәм уны тергеҙергә кәрәк булыуы ихтимал.',
+	'coll-download_failed_title' => 'Күсереп алыу ваҡытында хата',
+	'coll-download_failed_text' => 'Файды күсереп алыу ваҡытында хата килеп сыҡты: $1',
+	'coll-is_cached' => '<ul><li> Был документтың кэшланған өлгөһө табылды, төшөрөү талап ителмәне.
+<a href="$1">Яңынан төшөрөргә.</a></li></ul>',
+	'coll-excluded-templates' => '* [[:Category:$1|$1]] категорияһының ҡалыптары төшөрөп ҡалдырылды.',
+	'coll-blacklisted-templates' => '* [[:$1]] ҡара исемлегендәге ҡалыптар төшөрөп ҡалдырылды.',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a> китабына кире ҡайтырға</p>',
+	'coll-book_title' => 'Баҫтырылған китап рәүешендә заказ бирергә',
+	'coll-book_text' => 'Баҫтырылған китапты беҙҙең партнерҙан алырға:',
+	'coll-order_from_pp' => '$1 ярҙамында ҡарап сығыу',
+	'coll-about_pp' => '$1 тураһында',
+	'coll-invalid_podpartner_title' => 'POD (һорау буйынса баҫтырыусы) партнер дөрөҫ түгел',
+	'coll-invalid_podpartner_msg' => 'Һайланған POD (һорау буйынса баҫтырыусы) партнер дөрөҫ түгел.
+Зинһар, MediaWiki хакимына мөрәжәғәт итегеҙ.',
+	'coll-license' => 'Рөхсәтнамә',
+	'coll-return_to' => '[[:$1]] битенә кире ҡайтырға',
+	'coll-more_info' => 'Күберәк мәғлүмәт күрһәтергә',
+	'coll-hide_info' => 'Мәғлүмәтте йәшерергә',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress заказы тураһында мәғлүмәт',
+	'coll-suggest_title' => 'Һеҙҙең китабығыҙ өсөн тәҡдим ителгән биттәр',
+	'coll-suggest_intro_text' => 'Тәҡдимдәр һеҙҙең китабығыҙҙағы ағымдағы вики биттәр йыйынтығына нигеҙләнгән.
+Был исемлек һеҙ өҫтәү йәки юйыу төймәләренә баҫҡан һайын яңыра.',
+	'coll-suggested_articles' => 'Тәҡдимдәр',
+	'coll-suggest_reset_bans' => 'баштағы өлгөнө ҡайтарырға',
+	'coll-suggest_reset_bans_tooltip' => 'Алда юйылған тәҡдимдәрҙе күрһәтергә',
+	'coll-suggest_add_selected' => 'Һайланған биттәрҙе өҫтәргә',
+	'coll-suggest_ban_selected' => 'Һайланған биттәрҙе юйырға',
+	'coll-suggest_your_book' => 'Китабығыҙ',
+	'coll-suggest_show' => 'күрһәтергә',
+	'coll-suggest_ban_tooltip' => 'Был битте тәҡдимдәр исемлегенән юйырға',
+	'coll-suggest_article_ban' => '<strong>$1</strong> бите тәҡдимдәр исемлегенән юйылды ($2).',
+	'coll-suggest_article_add' => '<strong>$1</strong> бите китабығыҙға өҫтәлде ($2).',
+	'coll-suggest_article_remove' => '<strong>$1</strong> бите китабығыҙҙан юйылды ($2).',
+	'coll-suggest_undo_tooltip' => 'Был ғәмәлде кире алырға',
+	'coll-suggest_undo' => 'кире алырға',
+	'coll-load_local_book' => '%NUMPAGES% вики битле %TITLE% китабығыҙ менән дауам итеү өсөн, "OK" төймәһен баҫығыҙ. Уны юйып, буш китаптан башлау өсөн, "Кире алырға" төймәһен баҫығыҙ.',
+	'right-collectionsaveasuserpage' => 'Китаптарҙы ҡатнашыусының бите рәүешендә һаҡлау',
+	'right-collectionsaveascommunitypage' => 'Китаптарҙы берләшмәнең бите рәүешендә һаҡлау',
+);
+
+/** Bavarian (Boarisch)
+ * @author Mucalexx
+ */
+$messages['bar'] = array(
+	'coll-community_collection_label' => 'Gmoahschoftlichs Buach',
+);
+
+/** Belarusian (Беларуская)
+ * @author Тест
+ * @author Хомелка
+ */
+$messages['be'] = array(
+	'coll-desc' => '[[Special:Book|Стварэнне кніг]]',
+	'coll-book_creator_intro' => "<big>Разам з ''майстрам стварэння кнігі'' Вы можаце стварыць кнігу, якая ўтрымлівае вікі-старонкі па Вашаму выбару. Вы можаце экспартаваць кнігу ў розныя фарматы (напрыклад у PDF альбо ODF) альбо можаце замовіць надрукаваную копію.</big>",
+	'coll-manage_your_book' => 'Кіраванне Вашай кнігай',
+	'coll-book_creator_help' => 'Глядзіце [[{{MediaWiki:Coll-helppage}}|старонку дапамогі па кнігах]] для дадатковай інфармацыі.',
+	'coll-start_book_creator' => 'Пачаць стварэнне кнігі з дапамогай майстра',
+	'coll-book_creator_continue' => 'Працягваць выкарыстанне майстра стварэння кнігі',
+	'coll-book_creator_disable_text' => "''Майстар стварэння кнігі'' будзе выключаны, і кніга, над якой Вы працуеце, будзе выдаленая.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Тэкст майстра стварэння кнігі',
+	'coll-collection' => 'Кніга',
+	'coll-collections' => 'Кнігі',
+	'coll-exclusion_category_title' => 'Выключэнні з друку',
+	'coll-print_template_prefix' => 'Друк',
+	'coll-print_template_pattern' => '$1/Для друку',
+	'coll-unknown_subpage_title' => 'Невядомая падстаронка',
+	'coll-unknown_subpage_text' => 'Гэтай падстаронкі [[Special:Book|кнігі]] не існуе',
+	'coll-couldnotaddarticle_title' => 'Немагчыма дадаць вікі-старонку',
+	'coll-couldnotaddarticle_msg' => 'Вікі-старонка не можа быць дададзеная.',
+	'coll-couldnotremovearticle_title' => 'Немагчыма выдаліць вікі-старонку',
+	'coll-couldnotremovearticle_msg' => 'Вікі-старонка не можа быць выдаленая.',
+	'coll-noscript_text' => '<h1>Патрэбны JavaScript!</h1>
+<strong>Ваш браўзер не падтрымлівае JavaScript альбо падтрымка JavaScript была адключаная.
+Гэтая старонка не будзе працаваць правільна, калі JavaScript адключаны.</strong>',
+	'coll-savedbook_template' => 'захаваная_кнігі',
+	'coll-your_book' => 'Ваша кніга',
+	'coll-download_title' => 'Загрузіць',
+	'coll-download_text' => 'Каб загрузіць Вашу кнігу, выберыце фармат і націсніце кнопку.',
+	'coll-download_as_text' => 'Націсніце кнопку, каб загрузіць Вашу кнігу ў фармаце $1.',
+	'coll-download' => 'Загрузіць',
+	'coll-format_label' => 'Фармат:',
+	'coll-remove' => 'Выдаліць',
+	'coll-show' => 'Паказаць',
+	'coll-move_to_top' => 'Перанесці ўверх',
+	'coll-move_up' => 'Перанесці вышэй',
+	'coll-move_down' => 'Перанесці ніжэй',
+	'coll-move_to_bottom' => 'Перанесці ўніз',
+	'coll-title' => 'Назва:',
+	'coll-subtitle' => 'Падзагаловак:',
+	'coll-contents' => 'Змест',
+	'coll-drag_and_drop' => 'Карыстайся мышкай, каб змяніць паслядоўнасць вікі-старонак і раздзелаў',
+	'coll-create_chapter' => 'Стварыць раздзел',
+	'coll-sort_alphabetically' => 'Сартаваць па алфавіце',
+	'coll-rename' => 'Перанесці пад новую назву',
+	'coll-new_chapter' => 'Увядзіце назву для новага раздзелу',
+	'coll-rename_chapter' => 'Увядзіце новую назву раздзелу',
+	'coll-no_such_category' => 'Няма такой катэгорыі',
+	'coll-notitle_title' => 'Назва старонкі не можа быць вызначана.',
+	'coll-post_failed_title' => 'POST-запыт не выкананы',
+	'coll-post_failed_msg' => 'POST-запыт да $1 не выкананы ($2).',
+	'coll-mwserve_failed_title' => 'Памылка сервера адлюстравання',
+	'coll-mwserve_failed_msg' => 'На серверы адлюстравання ўзнікла памылка: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Памылка адказу сервера',
+	'coll-empty_collection' => 'Пустая кніга',
+	'coll-revision' => 'Версія: $1',
+	'coll-save_collection_title' => 'Захаваць Вашую кнігу і адкрыць да яе доступ',
+	'coll-save_collection_text' => 'Выберыце месцазнаходжанне:',
+	'coll-login_to_save' => 'Калі Вы жадаеце захаваць кнігу для далейшага карыстання, калі ласка, [[Special:UserLogin|увайдзіце ў сістэму альбо стварыце рахунак]].',
+	'coll-personal_collection_label' => 'Асабістая кніга:',
+	'coll-community_collection_label' => 'Кніга супольнасці:',
+	'coll-save_collection' => 'Захаваць кнігу',
+	'coll-save_category' => 'Усе захаваныя кнігі дададзеныя ў катэгорыю [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Старонка ўжо існуе. 
+Перазапісаць?',
+	'coll-overwrite_text' => 'Старонка з назвай [[:$1]] ужо існуе.
+Вы жадаеце, каб яна была перазапісана Вашай калекцыяй?',
+	'coll-yes' => 'Так',
+	'coll-no' => 'Не',
+	'coll-load_overwrite_text' => 'У Вашай кнізе ўжо існуе некалькі старонак.
+Вы жадаеце перазапісаць Вашу цяперашнюю кнігу, дадаць новы змест альбо адмяніць загрузку гэтай кнігі?',
+	'coll-overwrite' => 'Перазапісаць',
+	'coll-append' => 'Дадаць',
+	'coll-cancel' => 'Скасаваць',
+	'coll-update' => 'Абнавіць',
+	'coll-limit_exceeded_title' => 'Кніга занадта вялікая',
+	'coll-limit_exceeded_text' => 'Ваша кніга занадта вялікая.
+Да яе болей немагчыма дадаваць старонкі.',
+	'coll-rendering_title' => 'Адлюстраванне',
+	'coll-rendering_text' => '<p><strong>Пачакайце, пакуль ствараецца дакумент.</strong></p>
+
+<p><strong>Прагрэс:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Гэта старонка павінна аўтаматычна абнаўляцца кожныя некалькі секунд.
+Калі гэтага не адбываецца, калі ласка, націсніце кнопку «Абнавіць» у Вашым браўзеры.</p>',
+	'coll-rendering_status' => '<strong>Статус:</strong> $1',
+	'coll-rendering_article' => '(вікі-старонка: $1)',
+	'coll-rendering_page' => '(старонка: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Генерацыя тэксту са старонкі',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Генерацыя тэксту з калекцыі',
+	'coll-rendering_finished_title' => 'Адлюстраванне скончана',
+	'coll-rendering_finished_text' => "<strong>Файл дакументу быў створаны.</strong>
+<strong>[$1 Загрузіць файл]</strong> на Ваш камп'ютар.
+
+Заўвага:
+* Не задаволены створаным дакументам? Глядзіце [[{{MediaWiki:Coll-helppage}}|старонку дапамогі па калекцыі]], каб даведацца, як яго палепшыць.",
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Стварэнне тэксту з інфармацыяй пра старонку',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Стварэнне тэксту з інфармацыяй пра калекцыю',
+	'coll-notfound_title' => 'Кніга не знойдзеная',
+	'coll-notfound_text' => 'Немагчыма знайсці старонку кнігі.',
+	'coll-download_notfound_title' => 'Файл не знойдзены',
+	'coll-download_notfound_text' => 'Файл, які Вы спрабуеце загрузіць, не існуе. Магчыма, ён быў выдалены і патрабуе абнаўлення.',
+	'coll-download_failed_title' => 'Памылка пад час загрузкі',
+	'coll-download_failed_text' => 'Адбылася памылка пад час загрузкі файла: $1',
+	'coll-is_cached' => '<ul><li>Была знойдзеная кэшаваная вэрсія гэтага дакумэнта, таму перамалёўка не спатрэбілася. <a href="$1">Запусціць прымусовую перамалёўку.</a></li></ul>',
+	'coll-excluded-templates' => '* Шаблоны ў катэгорыі [[:Category:$1|$1]] былі выключаны.',
+	'coll-blacklisted-templates' => '* Шаблоны ў чорным спісе [[:$1]] былі выключаны.',
+	'coll-return_to_collection' => '<p>Вярнуцца да <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Замовіць як друкаваную кнігу',
+	'coll-book_text' => 'Атрымаць друкаваную кнігу ад нашага партнёра, які займаецца паслугамі друкавання па замове:',
+	'coll-order_from_pp' => 'Папярэдні прагляд праз $1',
+	'coll-about_pp' => 'Пра $1',
+	'coll-invalid_podpartner_title' => 'Нядзейны партнёр, які друкуе па замове',
+	'coll-invalid_podpartner_msg' => 'Выбраны партнёр, які друкуе па замове, нядзейны.
+Калі ласка, звяжыцеся з Вашым адміністратарам MediaWiki.',
+	'coll-license' => 'Ліцэнзія',
+	'coll-return_to' => 'Вярнуцца да [[:$1]]',
+	'coll-more_info' => 'Паказаць болей інфармацыі',
+	'coll-hide_info' => 'Схаваць інфармацыю',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Інфармацыя пра заказ у PediaPress',
+	'coll-suggest_title' => 'Прапанаваныя старонкі для Вашай кнігі',
+	'coll-suggest_intro_text' => 'Прапановы заснаваныя на цяперашніх настаўленнях вікі-старонак у Вашай кнізе.
+Спіс будзе абноўлены, калі б Вы не націснулі на кнопкі дадаць альбо выдаліць.',
+	'coll-suggested_articles' => 'Прапановы',
+	'coll-suggest_reset_bans' => 'скінуць',
+	'coll-suggest_reset_bans_tooltip' => 'Паказаць выдаленыя раней прапановы',
+	'coll-suggest_add_selected' => 'Дадаць выбраныя старонкі',
+	'coll-suggest_ban_selected' => 'Выдаліць выбраныя старонкі',
+	'coll-suggest_your_book' => 'Ваша кніга',
+	'coll-suggest_show' => 'паказаць',
+	'coll-suggest_ban_tooltip' => 'Выдаліць гэту старонку са спісу прапаноў',
+	'coll-suggest_article_ban' => 'Старонка <strong>$1</strong> была выдаленая з прапаноў ($2).',
+	'coll-suggest_article_add' => 'Старонка <strong>$1</strong> была дададзеная ў Вашую кнігу ($2).',
+	'coll-suggest_article_remove' => 'Старонка <strong>$1</strong> была выдаленая з Вашай кнігі ($2).',
+	'coll-suggest_undo_tooltip' => 'Адмяніць гэтае дзеянне',
+	'coll-suggest_undo' => 'скасаваць',
+	'coll-load_local_book' => 'Націсніце «Добра» каб працягваць працу з Вашай кнігай %TITLE%, якая ўтрымлівае %NUMPAGES% вікі-старонак. Націсніце «Адмена», каб выдаліць яе і пачаць з пустой кнігі.',
+	'right-collectionsaveasuserpage' => 'захаванне кніг як старонак ўдзельніка',
+	'right-collectionsaveascommunitypage' => 'захаванне кніг як старонак супольнасці',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
+ * @author Wizardist
  * @author Zedlik
  */
 $messages['be-tarask'] = array(
 	'coll-desc' => '[[Special:Book|Стварэньне кніг]]',
+	'coll-book_creator_intro' => "<big>Разам з ''майстрам стварэньня кнігі'' Вы можаце стварыць кнігу, якая ўтрымлівае вікі-старонкі па Вашаму выбару. Вы можаце экспартаваць кнігу ў розныя фарматы (напрыклад у PDF альбо ODF) альбо можаце замовіць надрукаваную копію.</big>",
+	'coll-manage_your_book' => 'Кіраваньне Вашай кнігай',
+	'coll-book_creator_help' => 'Глядзіце [[{{MediaWiki:Coll-helppage}}|старонку дапамогі па кнігах]] для дадатковай інфармацыі.',
+	'coll-start_book_creator' => 'Пачаць стварэньне кнігі з дапамогай майстра',
+	'coll-book_creator_continue' => 'Працягваць выкарыстаньне майстра стварэньня кнігі',
+	'coll-book_creator_disable_text' => "''Майстар стварэньня кнігі'' будзе выключаны, і кніга, над якой Вы працуеце, будзе выдаленая.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Тэкст майстра стварэньня кнігі',
 	'coll-collection' => 'Кніга',
 	'coll-collections' => 'Кнігі',
 	'coll-exclusion_category_title' => 'Выключэньні з друку',
 	'coll-print_template_prefix' => 'Друк',
 	'coll-print_template_pattern' => '$1/Для друку',
-	'coll-create_a_book' => 'Стварыць кнігу',
-	'coll-add_page' => 'Дадаць вікі-старонку',
-	'coll-add_page_tooltip' => 'Дадаць цяперашнюю вікі-старонку ў Вашую кнігу',
-	'coll-remove_page' => 'Выдаліць вікі-старонку',
-	'coll-remove_page_tooltip' => 'Выдаліць цяперашнюю вікі-старонку з Вашай кнігі',
-	'coll-add_category' => 'Дадаць катэгорыю',
-	'coll-add_category_tooltip' => 'Дадаць усе старонкі з гэтай катэгорыі ў Вашую кнігу',
-	'coll-load_collection' => 'Загрузіць кнігу',
-	'coll-load_collection_tooltip' => 'Загрузіць гэтую кнігу як Вашую цяперашнюю кнігу',
-	'coll-show_collection' => 'Паказаць кнігу',
-	'coll-show_collection_tooltip' => 'Націсьніце для рэдагаваньня/загрузкі/заказу Вашай кнігі',
-	'coll-help_collections' => 'Даведка пра кнігі',
-	'coll-help_collections_tooltip' => 'Паказаць даведку пра інструмэнты стварэньня кніг',
-	'coll-n_pages' => '$1 {{PLURAL:$1|старонка|старонкі|старонак}}',
 	'coll-unknown_subpage_title' => 'Невядомая падстаронка',
 	'coll-unknown_subpage_text' => 'Гэтай падстаронкі [[Special:Book|кнігі]] не існуе',
-	'coll-printable_version_pdf' => 'PDF-вэрсія',
-	'coll-download_as' => 'Загрузіць як $1',
+	'coll-couldnotaddarticle_title' => 'Немагчыма дадаць вікі-старонку',
+	'coll-couldnotaddarticle_msg' => 'Вікі-старонка ня можа быць дададзеная.',
+	'coll-couldnotremovearticle_title' => 'Немагчыма выдаліць вікі-старонку',
+	'coll-couldnotremovearticle_msg' => 'Вікі-старонка ня можа быць выдаленая.',
 	'coll-noscript_text' => '<h1>Патрэбны JavaScript!</h1>
 <strong>Ваш браўзэр не падтрымлівае JavaScript альбо падтрымка JavaScript была адключаная.
 Гэтая старонка ня будзе працаваць правільна, калі JavaScript адключаны.</strong>',
-	'coll-intro_text' => 'Стварэньне і кіраваньне Вашай індывідуальнай калекцыяй вікі-старонак. <br />Падрабязнасьці глядзіце на [[{{MediaWiki:Coll-helppage}}]].',
-	'coll-helppage' => 'Help:Кнігі',
-	'coll-bookscategory' => 'Кнігі',
 	'coll-savedbook_template' => 'захаваныя_кнігі',
 	'coll-your_book' => 'Ваша кніга',
 	'coll-download_title' => 'Загрузіць',
-	'coll-download_text' => 'Каб загрузіць аўтаномную вэрсію, выберыце фармат і націсьніце кнопку.',
-	'coll-download_as_text' => 'Націсьніце кнопку, каб загрузіць вэрсію ў фармаце $1.',
+	'coll-download_text' => 'Каб загрузіць Вашу кнігу, выберыце фармат і націсьніце кнопку.',
+	'coll-download_as_text' => 'Націсьніце кнопку, каб загрузіць Вашу кнігу ў фармаце $1.',
 	'coll-download' => 'Загрузіць',
 	'coll-format_label' => 'Фармат:',
 	'coll-remove' => 'Выдаліць',
@@ -605,9 +1369,6 @@
 	'coll-drag_and_drop' => 'Карыстайся мышкай, каб зьмяніць пасьлядоўнасьць вікі-старонак і разьдзелаў',
 	'coll-create_chapter' => 'Стварыць разьдзел',
 	'coll-sort_alphabetically' => 'Сартаваць па альфабэце',
-	'coll-clear_collection' => 'Ачысьціць кнігу',
-	'coll-clear_collection_tooltip' => 'Выдаліць усе старонкі з Вашай цяперашняй кнігі',
-	'coll-clear_collection_confirm' => 'Вы сапраўды жадаеце поўнасьцю ачысьціць Вашую кнігу?',
 	'coll-rename' => 'Перайменаваць',
 	'coll-new_chapter' => 'Увядзіце назву для новага разьдзелу',
 	'coll-rename_chapter' => 'Увядзіце новую назву разьдзелу',
@@ -626,7 +1387,7 @@
 	'coll-personal_collection_label' => 'Асабістая кніга:',
 	'coll-community_collection_label' => 'Кніга супольнасьці:',
 	'coll-save_collection' => 'Захаваць кнігу',
-	'coll-save_category' => 'Кнігі захаваныя ў катэгорыі [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Усе захаваныя кнігі дададзеныя ў катэгорыю [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Старонка ўжо існуе. 
 Перазапісаць?',
 	'coll-overwrite_text' => 'Старонка з назвай [[:$1]] ужо існуе.
@@ -637,7 +1398,7 @@
 Вы жадаеце перазапісаць Вашу цяперашнюю кнігу, дадаць новы зьмест альбо адмяніць загрузку гэтай кнігі?',
 	'coll-overwrite' => 'Перазапісаць',
 	'coll-append' => 'Дадаць',
-	'coll-cancel' => 'Адмяніць',
+	'coll-cancel' => 'Скасаваць',
 	'coll-update' => 'Абнавіць',
 	'coll-limit_exceeded_title' => 'Кніга занадта вялікая',
 	'coll-limit_exceeded_text' => 'Ваша кніга занадта вялікая.
@@ -652,45 +1413,84 @@
 	'coll-rendering_status' => '<strong>Статус:</strong> $1',
 	'coll-rendering_article' => '(вікі-старонка: $1)',
 	'coll-rendering_page' => '(старонка: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Генэрацыя тэксту са старонкі',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Генэрацыя тэксту з калекцыі',
 	'coll-rendering_finished_title' => 'Адлюстраваньне скончана',
 	'coll-rendering_finished_text' => '<strong>Файл дакумэнту быў створаны.</strong>
 <strong>[$1 Загрузіць файл]</strong> на Ваш кампутар.
 
 Заўвага:
 * Не задаволены створаным дакумэнтам? Глядзіце [[{{MediaWiki:Coll-helppage}}|старонку дапамогі па калекцыі]], каб даведацца, як яго палепшыць.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Стварэньне тэксту з інфармацыяй пра старонку',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Стварэньне тэксту з інфармацыяй пра калекцыю',
 	'coll-notfound_title' => 'Кніга ня знойдзеная',
 	'coll-notfound_text' => 'Немагчыма знайсьці старонку кнігі.',
+	'coll-download_notfound_title' => 'Файл ня знойдзены',
+	'coll-download_notfound_text' => 'Файл, які Вы спрабуеце загрузіць, не існуе. Магчыма, ён быў выдалены і патрабуе абнаўленьня.',
+	'coll-download_failed_title' => 'Памылка пад час загрузкі',
+	'coll-download_failed_text' => 'Адбылася памылка пад час загрузкі файла: $1',
 	'coll-is_cached' => '<ul><li>Была знойдзеная кэшаваная вэрсія гэтага дакумэнта, таму перамалёўка не спатрэбілася. <a href="$1">Запусьціць прымусовую перамалёўку.</a></li></ul>',
 	'coll-excluded-templates' => '* Шаблёны ў катэгорыі [[:Category:$1|$1]] былі выключаны.',
 	'coll-blacklisted-templates' => '* Шаблёны ў чорным сьпісе [[:$1]] былі выключаны.',
 	'coll-return_to_collection' => '<p>Вярнуцца да <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Замовіць як друкаваную кнігу',
 	'coll-book_text' => 'Атрымаць друкаваную кнігу ад нашага партнэра, які займаецца паслугамі друкаваньня па замове:',
-	'coll-order_from_pp' => 'Замовіць кнігу ў $1',
+	'coll-order_from_pp' => 'Папярэдні прагляд праз $1',
 	'coll-about_pp' => 'Пра $1',
 	'coll-invalid_podpartner_title' => 'Нядзейны партнэр, які друкуе па замове',
 	'coll-invalid_podpartner_msg' => 'Выбраны партнэр, які друкуе па замове, нядзейны.
 Калі ласка, зьвяжыцеся з Вашым адміністратарам MediaWiki.',
 	'coll-license' => 'Ліцэнзія',
 	'coll-return_to' => 'Вярнуцца да [[:$1]]',
+	'coll-more_info' => 'Паказаць болей інфармацыі',
+	'coll-hide_info' => 'Схаваць інфармацыю',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Інфармацыя пра заказ у PediaPress',
+	'coll-suggest_title' => 'Прапанаваныя старонкі для Вашай кнігі',
+	'coll-suggest_intro_text' => 'Прапановы заснаваныя на цяперашніх наладах вікі-старонак у Вашай кнізе.
+Сьпіс будзе абноўлены, калі б Вы не націснулі на кнопкі дадаць альбо выдаліць.',
+	'coll-suggested_articles' => 'Прапановы',
+	'coll-suggest_reset_bans' => 'скінуць',
+	'coll-suggest_reset_bans_tooltip' => 'Паказаць выдаленыя раней прапановы',
+	'coll-suggest_add_selected' => 'Дадаць выбраныя старонкі',
+	'coll-suggest_ban_selected' => 'Выдаліць выбраныя старонкі',
+	'coll-suggest_your_book' => 'Ваша кніга',
+	'coll-suggest_show' => 'паказаць',
+	'coll-suggest_ban_tooltip' => 'Выдаліць гэту старонку са сьпісу прапаноў',
+	'coll-suggest_article_ban' => 'Старонка <strong>$1</strong> была выдаленая з прапаноў ($2).',
+	'coll-suggest_article_add' => 'Старонка <strong>$1</strong> была дададзеная ў Вашую кнігу ($2).',
+	'coll-suggest_article_remove' => 'Старонка <strong>$1</strong> была выдаленая з Вашай кнігі ($2).',
+	'coll-suggest_undo_tooltip' => 'Адмяніць гэтае дзеяньне',
+	'coll-suggest_undo' => 'скасаваць',
+	'coll-load_local_book' => 'Націсьніце «Добра» каб працягваць працу з Вашай кнігай %TITLE%, якая ўтрымлівае %NUMPAGES% вікі-старонак. Націсьніце «Адмена», каб выдаліць яе і пачаць з пустой кнігі.',
+	'right-collectionsaveasuserpage' => 'захаваньне кніг як старонак ўдзельніка',
+	'right-collectionsaveascommunitypage' => 'захаваньне кніг як старонак супольнасьці',
 );
 
 /** Bulgarian (Български)
  * @author DCLXVI
+ * @author Spiritia
+ * @author Turin
  */
 $messages['bg'] = array(
-	'coll-desc' => 'Добавя възможност за [[Special:Collection|събиране на страници]] и преобразуването им в PDF',
+	'coll-desc' => '[[Special:Book|Създаване на книги]]',
+	'coll-manage_your_book' => 'Управление на книгата ви',
+	'coll-book_creator_help' => 'Вижте [[{{MediaWiki:Coll-helppage}}|страницата с помощ за книги]] за повече подробности.',
+	'coll-collection' => 'Книга',
+	'coll-collections' => 'Книги',
 	'coll-print_template_prefix' => 'Отпечатване',
-	'coll-add_page' => 'Добавяне на уики-страница',
-	'coll-remove_page' => 'Премахване на уики-страница',
-	'coll-add_category' => 'Добавяне на категория',
-	'coll-n_pages' => '$1 {{PLURAL:$1|страница|страници}}',
-	'coll-printable_version_pdf' => 'PDF версия',
-	'coll-download_as' => 'Изтегляне като $1',
+	'coll-unknown_subpage_title' => 'Непозната подстраница',
+	'coll-unknown_subpage_text' => 'Тази подстраница на [[Special:Book|книгата]] не съществува',
+	'coll-couldnotaddarticle_title' => 'Грешка при добавяне на уики-страницата',
+	'coll-couldnotaddarticle_msg' => 'Уики-страницата не може да бъде добавена.',
+	'coll-couldnotremovearticle_title' => 'Грешка при премахване на уики-страницата',
+	'coll-couldnotremovearticle_msg' => 'Уики-страницата не може да бъде премахната.',
 	'coll-noscript_text' => '<h1>Изисква се Джаваскрипт!</h1>
 <strong>Използваният браузър не поддържа Джаваскрипт или поддръжката на Джаваскрипт е изключена.
 Тази страница не може да работи правилно докато Джаваскриптът не бъде активиран.</strong>',
+	'coll-your_book' => 'Вашата книга',
 	'coll-download_title' => 'Изтегляне',
+	'coll-download_text' => 'За да изтеглите книгата си, изберете формат и натиснете бутона.',
+	'coll-download_as_text' => 'За да изтеглите книгата си във формат $1, натиснете бутона.',
 	'coll-download' => 'Изтегляне',
 	'coll-format_label' => 'Формат:',
 	'coll-remove' => 'Премахване',
@@ -702,73 +1502,405 @@
 	'coll-title' => 'Заглавие:',
 	'coll-subtitle' => 'Подзаглавие:',
 	'coll-contents' => 'Съдържание',
+	'coll-create_chapter' => 'Създаване на глава',
 	'coll-sort_alphabetically' => 'Подреждане по азбучен ред',
 	'coll-rename' => 'Преименуване',
+	'coll-new_chapter' => 'Въведете име за новата глава',
+	'coll-rename_chapter' => 'Въведете ново име за главата',
 	'coll-no_such_category' => 'Няма такава категория',
+	'coll-notitle_title' => 'Заглавието на страницата не може да бъде определено.',
+	'coll-post_failed_title' => 'Грешка при заявката POST',
+	'coll-post_failed_msg' => 'Грешка при заявката POST до $1 ($2).',
+	'coll-error_reponse' => 'Съобщение за грешка от сървъра',
+	'coll-empty_collection' => 'Празна книга',
 	'coll-revision' => 'Версия: $1',
 	'coll-save_collection_title' => 'Съхраняване и споделяне',
+	'coll-save_collection_text' => 'Изберете местоположение за съхраняване на книгата ви:',
+	'coll-login_to_save' => 'Ако искате да запазите книгите си за следваща употреба, моля [[Special:UserLogin|влезте или се регистрирайте]].',
+	'coll-personal_collection_label' => 'Лична книга:',
+	'coll-community_collection_label' => 'Книга на общността:',
 	'coll-save_collection' => 'Съхраняване',
+	'coll-save_category' => 'Всички записани книги са добавени към категорията [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Страницата съществува. Заместване?',
+	'coll-overwrite_text' => 'Вече съществува страница с име [[:$1]].
+Да бъде ли заменена с книгата ви?',
 	'coll-yes' => 'Да',
 	'coll-no' => 'Не',
 	'coll-overwrite' => 'Заместване',
 	'coll-append' => 'Добавяне',
-	'coll-cancel' => 'Отказване',
+	'coll-cancel' => 'Отказ',
 	'coll-update' => 'Актуализиране',
+	'coll-limit_exceeded_title' => 'Книгата е прекалено голяма',
+	'coll-limit_exceeded_text' => 'Вашата книга е прекалено голяма.
+Не може да се добавят повече страници.',
 	'coll-rendering_status' => '<strong>Статут:</strong> $1',
 	'coll-rendering_article' => '(уики-страница: $1)',
 	'coll-rendering_page' => '(страница: $1)',
+	'coll-notfound_title' => 'Книгата не е открита',
+	'coll-notfound_text' => 'Страницата от книга не е открита.',
+	'coll-download_notfound_title' => 'Файлът не беше намерен',
+	'coll-download_failed_title' => 'Грешка при изтеглянето',
+	'coll-download_failed_text' => 'Получи се грешка при изтеглянето на файла: $1',
 	'coll-excluded-templates' => '* Шаблоните в категория [[:Category:$1|$1]] бяха изключени.',
 	'coll-return_to_collection' => '<p>Връщане към <a href="$1">$2</a></p>',
-	'coll-order_from_pp' => 'Поръчване на книга от $1',
+	'coll-book_title' => 'Поръчване на печатно копие от книгата',
+	'coll-book_text' => 'Получаване на печатно копие от нашия партньор за отпечатване по поръчка.',
+	'coll-order_from_pp' => 'Предварителен преглед с $1',
 	'coll-about_pp' => 'За $1',
 	'coll-license' => 'Лиценз',
 	'coll-return_to' => 'Връщане към [[:$1]]',
+	'coll-more_info' => 'Показване на повече информация',
+	'coll-hide_info' => 'Скриване на информацията',
+	'coll-suggest_title' => 'Предложени страници към книгата ви',
+	'coll-suggested_articles' => 'Предположения',
+	'coll-suggest_reset_bans_tooltip' => 'Показване на предишно премахнати предложения',
+	'coll-suggest_add_selected' => 'Добавяне на избраните страници',
+	'coll-suggest_ban_selected' => 'Премахване на избраните страници',
+	'coll-suggest_your_book' => 'Вашата книга',
+	'coll-suggest_show' => 'показване',
+	'coll-suggest_ban_tooltip' => 'Премахване на тази страница от списъка с предложеиня',
+	'coll-suggest_article_ban' => 'Страницата <strong>$1</strong> е премахната от списъка с предложения ($2).',
+	'coll-suggest_article_add' => 'Страницата <strong>$1</strong> е добавена към книгата ви ($2).',
+	'coll-suggest_article_remove' => 'Страницата <strong>$1</strong> е премахната от книгата ви ($2).',
+	'coll-suggest_undo_tooltip' => 'Отмяна на това действие',
+	'coll-suggest_undo' => 'отмяна',
+	'right-collectionsaveasuserpage' => 'Запазване на книгата като потребителска страница',
+	'right-collectionsaveascommunitypage' => 'Запазване на книгата като страница на общността',
 );
 
+/** Banjar (Bahasa Banjar)
+ * @author J Subhi
+ */
+$messages['bjn'] = array(
+	'coll-show' => 'Tampaiakan',
+);
+
+/** Bengali (বাংলা)
+ * @author Bellayet
+ * @author Jayantanth
+ * @author Wikitanvir
+ */
+$messages['bn'] = array(
+	'coll-desc' => '[[Special:Book|বই তৈরি]]',
+	'coll-book_creator_intro' => "<big>''বই প্রস্তুতকারণ'' দিয়ে আপনি পছন্দের উইকি পাতাগুলো নিয়ে বই  তৈরি করতে পারেন। আপনি বিভিন্ন ফরমেটে আপনার বই এক্সপোর্ট করতে পারেন (যেমন PDF বা ODF) অথবা মুদ্রণ কপির জন্য অর্ডার দিতে পারেন।</big>",
+	'coll-manage_your_book' => 'বই ব্যবস্থাপনা',
+	'coll-book_creator_help' => 'আরও তথ্যের জন্য [[{{MediaWiki:Coll-helppage}}|বই সংক্রান্ত সহায়তা]] দেখুন।',
+	'coll-start_book_creator' => 'বই প্রস্তুতকারক আরম্ভ করো',
+	'coll-book_creator_continue' => 'বই প্রস্তুতকারক বহাল রাখো',
+	'coll-book_creator_disable_text' => "''বই প্রস্তুতকারক'' নিস্ক্রিয় করা হবে এবং আপনি যে বই নিয়ে কাজ করছেন তা অপসারণ করা হবে।",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/বই প্রস্তুতকারণ লেখ',
+	'coll-collection' => 'বই',
+	'coll-collections' => 'বইসমূহ',
+	'coll-exclusion_category_title' => 'মুদ্রণে বাদ রাখো',
+	'coll-print_template_prefix' => 'মুদ্রণ',
+	'coll-print_template_pattern' => '$1/মুদ্রণ',
+	'coll-unknown_subpage_title' => 'অজানা উপপাতা',
+	'coll-unknown_subpage_text' => '[[Special:Book|বই]] এর এই উপপাতাটি নাই।',
+	'coll-couldnotaddarticle_title' => 'উইকি পাতা যোগ করা যাচ্ছে না',
+	'coll-couldnotaddarticle_msg' => 'উইকি পাতা যোগ করা যাবে না।',
+	'coll-couldnotremovearticle_title' => 'উইকি পাতাটি অপসারণ করা যাচ্ছে না',
+	'coll-couldnotremovearticle_msg' => 'এই উইকি পাতা অপসারণ করা যাবে না।',
+	'coll-noscript_text' => '<h1>JavaScript প্রয়োজন!</h1>
+<strong>আপনার ব্রাউজার JavaScript সমর্থন করে না অথবা JavaScript নিস্ক্রিয় করা রয়েছে।
+JavaScript সক্রিয় না করা পর্যন্ত, এই পাতাটি ঠিক মত কাজ করবে না।</strong>',
+	'coll-savedbook_template' => 'সংরক্ষিত_বই',
+	'coll-your_book' => 'আপনার বই',
+	'coll-download_title' => 'ডাউনলোড',
+	'coll-download_text' => 'বই ডাউনলোড করতে ফরমেট পছন্দ করুন এবং বোতামে ক্লিক করুন।',
+	'coll-download_as_text' => '$1 ফরম্যাটে আপনার বইটি ডাউনলোড করতে বোতামটি ক্লিক করুন।',
+	'coll-download' => 'ডাউনলোড',
+	'coll-format_label' => 'বিন্যাস/ফরম্যাট:',
+	'coll-remove' => 'অপসারণ',
+	'coll-show' => 'দেখাও',
+	'coll-move_to_top' => 'শীর্ষে তুলুন',
+	'coll-move_up' => 'উপরে তুলুন',
+	'coll-move_down' => 'নিচে নামান',
+	'coll-move_to_bottom' => 'নিচে স্থানান্তর করো',
+	'coll-title' => 'শিরোনাম:',
+	'coll-subtitle' => 'উপশিরোনাম',
+	'coll-contents' => 'বিষয়বস্তু',
+	'coll-drag_and_drop' => 'উইকি পাতা এবং অধ্যায়ের ক্রম পুনরায় ঠিক করতে ড্র্যাগ এন্ড ড্রপ ব্যবহার করুন',
+	'coll-create_chapter' => 'পরিচ্ছেদ তৈরি করুন',
+	'coll-sort_alphabetically' => 'বর্ণানুক্রমিক সাজান',
+	'coll-rename' => 'নামান্তর',
+	'coll-new_chapter' => 'নতুন অধ্যায়ের নাম লিখুন',
+	'coll-rename_chapter' => 'অধ্যায়ের নতুন নাম লিখুন',
+	'coll-no_such_category' => 'এমন কোনো বিষয়শ্রেণি নেই',
+	'coll-notitle_title' => 'এই পাতার জন্য শিরোনামটি চিহ্নিত করা যাচ্ছে না।',
+	'coll-post_failed_title' => 'POST অনুরোধ ব্যর্থ',
+	'coll-post_failed_msg' => '$1 এর POST অনুরোধ ব্যর্থ হয়েছে ($2)।',
+	'coll-mwserve_failed_title' => 'রেন্ডার সার্ভার ত্রুটি',
+	'coll-mwserve_failed_msg' => 'রেন্ডার সার্ভারে একটি ত্রুটি ঘটেছে: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'সার্ভার থেকে ত্রুটি পাওয়া গেছে',
+	'coll-empty_collection' => 'শূন্য বই',
+	'coll-revision' => 'পরিমার্জন:$1',
+	'coll-save_collection_title' => 'সংরক্ষণ করুন এবং আপনার বই শেয়ার করুন',
+	'coll-save_collection_text' => 'আপনার বইয়ের জন্য একটি সংরক্ষণাগার অবস্থান বেছে নিন:',
+	'coll-login_to_save' => 'এই বইটি পরবর্তীতে ব্যবহার করতে চাইলে, অনুগ্রহ করে [[Special:UserLogin|প্রবেশ বা নতুন অ্যাকাউন্ট তৈরি করুন]]',
+	'coll-personal_collection_label' => 'ব্যক্তিগত বই:',
+	'coll-community_collection_label' => 'সম্প্রদায়ের বই:',
+	'coll-save_collection' => 'বই সংরক্ষণ করুন',
+	'coll-save_category' => 'সমস্ত বই [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] বিষয়শ্রেণীতে সংরক্ষণ করা হয়।',
+	'coll-overwrite_title' => 'পাতাটি বর্তমানে আছে</br>
+আপনি কি ওভাররাইট করবেন?',
+	'coll-overwrite_text' => '[[:$1]] নামের একটি পাতা ইতিমধ্যে রয়েছে। </br>
+আপনি কি আপনার বই এই নামে প্রতিস্থাপন করতে চান?',
+	'coll-yes' => 'হ্যাঁ',
+	'coll-no' => 'না',
+	'coll-load_overwrite_text' => 'আপনার বইয়ে আগে থেকেই কিছু পাতা রয়েছে।
+আপনি কি বর্তমান বই দিয়ে তা প্রতিস্থাপন করবেন, নতুন কন্টেন্ট আগের কন্টেন্টের শেষে যোগ করবেন, নাকি এই বইটি লোড বাতিল করবেন?',
+	'coll-overwrite' => 'প্রতিস্থাপন',
+	'coll-append' => 'পরিশেষ যোগ',
+	'coll-cancel' => 'বাতিল',
+	'coll-update' => 'হালনাগাদ',
+	'coll-limit_exceeded_title' => 'বইটি বেশি বড় হয়েছে',
+	'coll-limit_exceeded_text' => 'আপনার বইটি বেশি বড় হয়ে গেছে।
+নতুন কোনো পাতা যোগ করা সম্ভব নয়।',
+	'coll-rendering_title' => 'রেন্ডারিং',
+	'coll-rendering_text' => '<p><strong>আপনার বইটি তৈরি করা হচ্ছে অনুগ্রহ করে অপেক্ষা করুন।</strong></p>
+
+<p><strong>অগ্রগতি:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>এই পাতাটি কয়েক সেকেন্ড পরপর স্বয়ংক্রিয়ভাবে হালনাগাদ হবে।
+যদি তা না হয়, তাহলে আপনার ব্রাউজারের রিফ্রেস বোতামটি ক্লিক করুন।</p>',
+	'coll-rendering_status' => '<strong>অবস্থা:</strong> $1',
+	'coll-rendering_article' => '(উইকি পাতা: $1)',
+	'coll-rendering_page' => '(পাতা: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/পাতার তথ্যের লেখা মুদ্রিত হচ্ছে',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/সংগ্রহের তথ্যাদির লেখা মুদ্রিত হচ্ছে',
+	'coll-rendering_finished_title' => 'রেন্ডারিং সম্পন্ন হয়েছে',
+	'coll-rendering_finished_text' => '<strong>ডকুমেন্ট ফাইল তৈরি হয়ে গেছে।</strong>
+আপনার কম্পিউটারে <strong>[$1 ফাইলটি ডাউলোড করুন]</strong> ।
+
+টীকা:
+* আউটপুটে আপনি সন্তুষ্ট নন? উন্নয়নের সম্ভাবনা জানতে [[{{MediaWiki:Coll-helppage}}|বই সংক্রান্ত সহায়িকা]] দেখুন।',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/পাতার তথ্যাদির লেখা মুদ্রিত হচ্ছে',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/সংগ্রহের তথ্যাদির লেখা মুদ্রিত হচ্ছে',
+	'coll-notfound_title' => 'বই পাওয়া যায়নি',
+	'coll-notfound_text' => 'বইয়ের পাতা খুঁজে পাওয়া যায়নি।',
+	'coll-download_notfound_title' => 'ফাইল পাওয়া যায়নি',
+	'coll-download_notfound_text' => 'যে ফাইলটি আপনি ডাউনলোড করতে চাইছেন তা নাই:
+সম্ভবত ফাইলটি মুছে ফেলা হয়েছে নতুবা তৈরি করতে হবে।',
+	'coll-download_failed_title' => 'ডাউনলোডের সময় ত্রুটি',
+	'coll-download_failed_text' => 'যে ফাইলটি ডাউনলোড করতে ত্রুটি দেখা দিয়েছে: $1',
+	'coll-is_cached' => '<ul><li>ডকুমেন্টের ক্যাশকৃত সংস্করণ পাওয়া গেছে, তাই রেন্ডারিং এর প্রয়োজন নাই।
+<a href="$1">জোড় পূর্বক রি-রেন্ডারিং করুন।</a></li></ul>',
+	'coll-excluded-templates' => '* [[:Category:$1|$1]]  বিষয়শ্রেণীতে থাকা টেম্পলেট বাদ দেওয়া হয়েছে।',
+	'coll-blacklisted-templates' => '* টেম্পলেটের কালোতালিকা [[:$1]] বাদ দেওয়া হয়েছে।',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a> এ ফিরে যান</p>',
+	'coll-book_title' => 'মুদ্রিত বই হিসেবে অর্ডার দিন',
+	'coll-book_text' => 'আমাদের প্রিন্ট-অন-ডিমান্ড সহযোগী প্রতিষ্ঠানের কাছ থেকে মুদ্রিত বই সংগ্রহ করুন।',
+	'coll-order_from_pp' => 'যা দ্বারা প্রাকপ্রদর্শিত $1',
+	'coll-about_pp' => 'পরিচিতি $1',
+	'coll-invalid_podpartner_title' => 'ভুল POD সহযোগী প্রতিষ্ঠান',
+	'coll-invalid_podpartner_msg' => 'আপনার দেওয়া POD সহযোগী প্রতিষ্ঠানটি ভুল।
+অনুগ্রহ করে আপনার মিডিয়াউইকি প্রশাসকের সাথে যোগাযোগ করুন।',
+	'coll-license' => 'লাইসেন্স',
+	'coll-return_to' => '[[:$1]] এ ফিরে যাও',
+	'coll-more_info' => 'আরও তথ্য দেখাও',
+	'coll-hide_info' => 'তথ্য আড়াল করো',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress অর্ডারের তথ্য',
+	'coll-suggest_title' => 'আপনার বইয়ের জন্য যে পাতাগুলো পরামর্শ দেওয়া হচ্ছে',
+	'coll-suggest_intro_text' => 'পরামর্শগুলো আপনার বইতে থাকা বর্তমান উইকি পাতা গুলোর উপর ভিত্তি করে করা হয়েছে।
+এই তালিকাটি যোগ অথবা অপসারণ বোতাম ক্লিক করার সাথে সাথেই হালনাগাদ হবে।',
+	'coll-suggested_articles' => 'পরামর্শসমূহ',
+	'coll-suggest_reset_bans' => 'পুনরায় আরম্ভ',
+	'coll-suggest_reset_bans_tooltip' => 'পূর্বে অপসারিত পরামর্শগুলো দেখাও',
+	'coll-suggest_add_selected' => 'নির্বাচিত পাতাগুলো যোগ করো',
+	'coll-suggest_ban_selected' => 'নির্বাচিত পাতাগুলো অপসারণ করো',
+	'coll-suggest_your_book' => 'আপনার বই',
+	'coll-suggest_show' => 'দেখাও',
+	'coll-suggest_ban_tooltip' => 'পরামর্শের তালিকা থেকে এই পাতাটি অপসারণ করো',
+	'coll-suggest_article_ban' => '<strong>$1</strong> পাতাটি ($2) পরামর্শ তালিকা থেকে অপসারণ করা হয়েছে।',
+	'coll-suggest_article_add' => '<strong>$1</strong> পাতাটি আপনার ($2) বইয়ে যোগ করা হয়েছে।',
+	'coll-suggest_article_remove' => '<strong>$1</strong> পাতা আপনার ($2) বই থেকে অপসারণ করা হয়েছে।',
+	'coll-suggest_undo_tooltip' => 'এই কাজটি আনডু করো',
+	'coll-suggest_undo' => 'পূর্বাবস্থায় আনো',
+	'right-collectionsaveasuserpage' => 'বইগুলো ব্যবহারকারী পাতা হিসেবে সংরক্ষণ করো',
+	'right-collectionsaveascommunitypage' => 'বইগুলো কমিউনিটি পাতা হিসেবে সংরক্ষণ করো',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fohanno
+ * @author Fulup
+ * @author Y-M D
+ */
+$messages['br'] = array(
+	'coll-desc' => '[[Special:Book|Sevel levrioù]]',
+	'coll-book_creator_intro' => "<big>Gant ar ''c'hrouer levrioù'' e c'hallit sevel ul levr a ya d'e ober pajennoù wiki dibabet ganeoc'h. Gallout a rit ezporzhiañ al levr e furmadoù disheñvel (evel, da skouer, PDF pe ODF) pe urzhiañ ur stumm moullet anezhañ.</big>",
+	'coll-manage_your_book' => 'Merañ ho levr',
+	'coll-book_creator_help' => "Gwelet [[{{MediaWiki:Coll-helppage}}|ar bajenn skoazell diwar-benn al levrioù]] evit gouzout hiroc'h.",
+	'coll-start_book_creator' => "Lañsañ ar c'hrouer levrioù",
+	'coll-book_creator_continue' => "Kenderc'hel da implijout ar c'hrouer levrioù",
+	'coll-book_creator_disable_text' => "Diweredekaet e vo ar ''c'hrouer levrioù'' ha diverket al levr a labourit warnañ.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Testenn ar mod levr',
+	'coll-collection' => 'Levr',
+	'coll-collections' => 'Levrioù',
+	'coll-exclusion_category_title' => 'Lakaat a-gostez pa vo moullet',
+	'coll-print_template_prefix' => 'Moullañ',
+	'coll-print_template_pattern' => '$1/Moullañ',
+	'coll-unknown_subpage_title' => 'Ispajenn dianav',
+	'coll-unknown_subpage_text' => "N'eus ket eus an ispajenn-mañ el [[Special:Book|Levr]]",
+	'coll-couldnotaddarticle_title' => 'Dibosupl ouzhpennañ ar bajenn wiki',
+	'coll-couldnotaddarticle_msg' => "N'eus ket bet gallet ouzhpennañ ar bajenn.",
+	'coll-couldnotremovearticle_title' => 'Dibosupl lemel kuit ar bajenn wiki',
+	'coll-couldnotremovearticle_msg' => "N'eus ket bet gallet lemel kuit pajenn ar wiki.",
+	'coll-noscript_text' => "<h1>Rekis eo JavaScript!</h1>
+<strong>N'eo ket skoret JavaScript gant ho merdeer pe diweredekaet eo JavaScript ganeoc'h.
+Ne'z aio ket plaen ar bajenn-mañ en-dro e-keit ha ma ne vo ket gweredekaet JavaScript.</strong>",
+	'coll-savedbook_template' => 'levr enrollet',
+	'coll-your_book' => 'Ho levr',
+	'coll-download_title' => 'Pellgargañ',
+	'coll-download_text' => 'Evit pellgargañ ho levr, dibabit ur furmad ha klikit war ar bouton.',
+	'coll-download_as_text' => 'Evit pellgargañ ho levr er furmad $1, klikit war ar bouton.',
+	'coll-download' => 'Pellgargañ',
+	'coll-format_label' => 'Furmad :',
+	'coll-remove' => 'Dilemel',
+	'coll-show' => 'Diskouez',
+	'coll-move_to_top' => "Mont d'al laez-tout",
+	'coll-move_up' => 'Pignat',
+	'coll-move_down' => 'Diskenn',
+	'coll-move_to_bottom' => 'Mont betek an traoñ',
+	'coll-title' => 'Titl :',
+	'coll-subtitle' => 'Istitl :',
+	'coll-contents' => 'Danvez',
+	'coll-drag_and_drop' => "Grit gant riklañ-dilec'hiañ evit adurzhiañ ar rannbennadoù hag ar pajennoù wiki.",
+	'coll-create_chapter' => 'Krouiñ ur rannbennad',
+	'coll-sort_alphabetically' => 'Urzhiañ en urzh al lizherenneg',
+	'coll-rename' => 'Adenvel',
+	'coll-new_chapter' => 'Merkañ anv ar rannbennad nevez',
+	'coll-rename_chapter' => 'Merkañ titl nevez ar rannbennad-mañ',
+	'coll-no_such_category' => "N'eus ket eus ar rummad-mañ",
+	'coll-notitle_title' => "N'eus ket bet gallet didermeniñ titl ar bajenn.",
+	'coll-post_failed_title' => "C'hwitet eo ar goulenn POST",
+	'coll-post_failed_msg' => "C'hwitet ($2) eo ar goulenn POST war-du $1.",
+	'coll-mwserve_failed_title' => 'Fazi gant ar servijer amdreiñ',
+	'coll-mwserve_failed_msg' => 'Ur fazi zo bet war ar servijer amdreiñ : <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Respont fazi distro gant ar servijer',
+	'coll-empty_collection' => 'Levr goullo',
+	'coll-revision' => 'Adweladenn : $1',
+	'coll-save_collection_title' => 'Enrollañ ho levr ha rannañ anezhañ gant tud all',
+	'coll-save_collection_text' => "Dibabit ul lec'h stokañ evit ho levr :",
+	'coll-login_to_save' => "Mar fell deoc'h enrollañ levrioù da vezañ implijet diwezhatoc'h, [[Special:UserLogin|en em lugit pe krouit ur gont]]",
+	'coll-personal_collection_label' => 'Levr personel',
+	'coll-community_collection_label' => 'Levr eus ar gumuniezh',
+	'coll-save_collection' => 'Enrollañ al levr',
+	'coll-save_category' => 'Emañ renket an holl levrioù enrollet er rummad [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => "Bez'ez eus eus ar bajenn c'hoazh.
+Skrivañ war-c'horre ?",
+	'coll-overwrite_text' => "Ur bajenn dezhi an anv [[:$1]] zo dija.
+Ha fellout a ra deoc'h erlerc'hiañ anezhi en ho levr?",
+	'coll-yes' => 'Ya',
+	'coll-no' => 'Ket',
+	'coll-load_overwrite_text' => "Un nebeud pajennoù zo en ho levr dija.
+Ha fellout a ra deoc'h frikañ ho levr a-vremañ, ouzhpennañ an danvez nevez ennañ, pe nullañ kargadenn al levr-mañ ?",
+	'coll-overwrite' => "Skrivañ war-c'horre",
+	'coll-append' => 'Ouzhpennañ',
+	'coll-cancel' => 'Nullañ',
+	'coll-update' => 'Hizivaat',
+	'coll-limit_exceeded_title' => 'Levr re vras',
+	'coll-limit_exceeded_text' => "Re vras eo ho levr.
+N'haller ket ouzhpennañ pajennoù ennañ ken.",
+	'coll-rendering_title' => 'O pledin ganti',
+	'coll-rendering_text' => '<p><strong>Gortozit p\'emeur o c\'henel an teul mar plij.</strong></p>
+
+<p><strong>Araokadur :</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Freskaet e tlefe ar bajenn-mañ bezañ ent emgefre bep un nebeud eilennoù.
+Ma ne\'z a ket en-dro, pouezit war bouton freskaat ho merdeer.</p>',
+	'coll-rendering_status' => '<strong>Stad :</strong> $1',
+	'coll-rendering_article' => '(pajenn wiki : $1)',
+	'coll-rendering_page' => '(pajenn : $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Testenn titouroù war deouez ar pajennoù',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Testenn titouroù war deouez an dastumadegoù',
+	'coll-rendering_finished_title' => 'Argerzh echu',
+	'coll-rendering_finished_text' => "<strong>Ganet eo bet ar restr teul.</strong>
+<strong>[$1 Pellgargit ar restr]</strong> war hoc'h urzhiataer.
+
+Notennoù :
+* N'eo ket an disoc'h diouzhoc'h ? Gwelit [[{{MediaWiki:Coll-helppage}}|ar bajenn skoazell diwar-benn al levrioù]] evit kavout doareoù da wellaat an traoù.",
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Deouez testenn titouroù ar bajenn',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Deouez testenn titouroù an dastumadeg',
+	'coll-notfound_title' => "N'eo ket bet kavet al levr",
+	'coll-notfound_text' => "N'eus ket bet tu da gavout pajenn al levr.",
+	'coll-download_notfound_title' => "N'eo ket bet kavet ar restr",
+	'coll-download_notfound_text' => "O klask pellgargañ ur restr n'eus ket anezhi emaoc'h :
+Marteze eo bet diverket hag ezhomm zo he genel en-dro.",
+	'coll-download_failed_title' => 'Fazi e-ser pellgargañ',
+	'coll-download_failed_text' => 'Ur fazi zo bet e-ser pellgargañ ar restr : $1',
+	'coll-is_cached' => '<ul><li>Kavet ez eus bet ur stumm krubuilhet eus an teul, setu n\'eo ket bet dav amdreiñ.
+<a href="$1">Amdreiñ dre ret.</a></li></ul>',
+	'coll-excluded-templates' => "* N'eo ket bet kemeret patromoù zo e kont er rummad [[:Category:$1|$1]].",
+	'coll-blacklisted-templates' => "* N'eo ket bet kemeret ar patromoù war al listenn zu e kont [[:$1]].",
+	'coll-return_to_collection' => '<p>Distreiñ da <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Urzhiañ dindan stumm ul levr moullet',
+	'coll-book_text' => "Kaout ul levr moullet dre hor c'heveler moullañ diouzh ar goulenn :",
+	'coll-order_from_pp' => 'Rakwelet gant $1',
+	'coll-about_pp' => 'Diwar-benn $1',
+	'coll-invalid_podpartner_title' => 'Keveler moullañ diouzh ar goulenn (POD) direizh',
+	'coll-invalid_podpartner_msg' => "N'eo ket mat ar c'heveler moullañ diouzh ar goulenn (POD) merket.
+Kit e darempred gant ur merour MediaWiki.",
+	'coll-license' => 'Aotre-implijout',
+	'coll-return_to' => 'Distreiñ da [[:$1]]',
+	'coll-more_info' => "Diskouez muioc'h a ditouroù",
+	'coll-hide_info' => 'Kuzhat an titouroù',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress urzhiañ titouroù',
+	'coll-suggest_title' => 'Pajennoù kinniget evit ho levr',
+	'coll-suggest_intro_text' => "Diazezet eo ar c'hinnigoù war an torkad pajennoù wiki zo en ho levr evit poent.
+Hizivaet e vez ar roll bep tro ma klikit war ar bouton ouzhpennañ pe tennañ.",
+	'coll-suggested_articles' => 'Kinnigoù',
+	'coll-suggest_reset_bans' => 'adderaouekaat',
+	'coll-suggest_reset_bans_tooltip' => "Diskouez ar c'hinnigoù kozh tennet kuit a-raok",
+	'coll-suggest_add_selected' => 'Ouzhpennañ ar pajennoù diuzet',
+	'coll-suggest_ban_selected' => 'Diverkañ ar pajennoù diuzet',
+	'coll-suggest_your_book' => 'Ho levr',
+	'coll-suggest_show' => 'diskouez',
+	'coll-suggest_ban_tooltip' => "Tennañ kuit ar bajenn-mañ eus roll ar c'hinnigoù",
+	'coll-suggest_article_ban' => "Tennet eo bet ar bajenn <strong>$1</strong> eus ar c'hinnigoù ($2).",
+	'coll-suggest_article_add' => "Ouzhpennet eo bet ar bajenn <strong>$1</strong> d'ho levr ($2).",
+	'coll-suggest_article_remove' => 'Tennnet eo bet ar bajenn <strong>$1</strong> eus ho levr ($2).',
+	'coll-suggest_undo_tooltip' => 'Dizober an ober-mañ',
+	'coll-suggest_undo' => 'dizober',
+	'coll-load_local_book' => "Klikit war Mat eo evit kenderc'hel ho levr %TITLE% hag en deus %NUMPAGES% pajenn wiki. Klikit war Nullañ evit dilemel ha kregiñ gant ul levr goullo.",
+	'right-collectionsaveasuserpage' => 'Enrollañ levrioù evel pajenn implijer',
+	'right-collectionsaveascommunitypage' => 'Enrollañ levrioù evel ur bajenn eus ar gumuniezh',
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
 $messages['bs'] = array(
-	'coll-desc' => '[[Special:Collection|Napravite knjige]]',
+	'coll-desc' => '[[Special:Book|Napravite knjige]]',
+	'coll-book_creator_intro' => "<big>Pomoću ''pravljenja knjiga'' možete napraviti knjigu koja sadrži wiki stranice po Vašem izboru. Možete izvesti knjigu u raznim formatima (na primjer PDF ili ODF) ili naručiti štampanu kopiju.</big>",
+	'coll-manage_your_book' => 'Upravljanje Vašom knjigom',
+	'coll-book_creator_help' => 'Pogledajte [[{{MediaWiki:Coll-helppage}}|stranicu pomoći za knjige]] za više informacija.',
+	'coll-start_book_creator' => 'Započni pravljenje knjiga',
+	'coll-book_creator_continue' => 'Nastavi korištenje pravljenja knjiga',
+	'coll-book_creator_disable_text' => "''Pravljenje knjiga'' će biti onemogućeno a knjiga na kojoj radite će biti uklonjena.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst pravljenja knjiga',
 	'coll-collection' => 'Knjiga',
 	'coll-collections' => 'Knjige',
 	'coll-exclusion_category_title' => 'Isključivanja pri štampanju',
 	'coll-print_template_prefix' => 'Štampanje',
 	'coll-print_template_pattern' => '$1/Štampaj',
-	'coll-create_a_book' => 'Napravi knjigu',
-	'coll-add_page' => 'Dodaj wiki stranicu',
-	'coll-add_page_tooltip' => 'Dodaj trenutnu wiki stranicu u Vašu knjigu',
-	'coll-remove_page' => 'Ukloni wiki stranicu',
-	'coll-remove_page_tooltip' => 'Ukloni trenutnu wiki stranicu iz Vaše knjige',
-	'coll-add_category' => 'Dodaj kategoriju',
-	'coll-add_category_tooltip' => 'Dodaj sve wiki članke iz ove kategorije u Vašu knjigu',
-	'coll-load_collection' => 'Učitaj knjigu',
-	'coll-load_collection_tooltip' => 'Učitaj ovu knjigu kao Vašu trenutnu knjigu',
-	'coll-show_collection' => 'Prikaži knjigu',
-	'coll-show_collection_tooltip' => 'Kliknite za uređivanje/download/naručivanje Vaše knjige',
-	'coll-help_collections' => 'Pomoć pri knjigama',
-	'coll-help_collections_tooltip' => 'Prikaži pomoć o ovom alatu za knjige',
-	'coll-n_pages' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
 	'coll-unknown_subpage_title' => 'Nepoznata podstranica',
 	'coll-unknown_subpage_text' => 'Ova podstranica [[Special:Book|knjige]] ne postoji',
-	'coll-printable_version_pdf' => 'PDF verzija',
-	'coll-download_as' => 'Učitaj kao $1',
+	'coll-couldnotaddarticle_title' => 'Ne može se dodati wiki stranica',
+	'coll-couldnotaddarticle_msg' => 'Wiki stranica se nije mogla dodati.',
+	'coll-couldnotremovearticle_title' => 'Ne može se ukloniti wiki stranica',
+	'coll-couldnotremovearticle_msg' => 'Wiki stranica se nije mogla ukloniti.',
 	'coll-noscript_text' => '<h1>JavaScript je neophodan!</h1>
 <strong>Vaš preglednik ne podržava JavaScript ili je JavaScript isključen.
 Ova stranica se neće pravilno prikazati, sve dok se JavaScript ne omogući.</strong>',
-	'coll-intro_text' => 'Napravite i uredite Vaš lični odabir wiki stranica.<br />Pogledajte [[{{MediaWiki:Coll-helppage}}]] za više informacija.',
-	'coll-helppage' => 'Help:Knjige',
-	'coll-bookscategory' => 'Knjige',
 	'coll-savedbook_template' => 'spremljena_knjiga',
 	'coll-your_book' => 'Vaša knjiga',
 	'coll-download_title' => 'Učitavanje',
-	'coll-download_text' => 'Da bi ste preuzeli offline verziju odaberite format i kliknite dugme.',
-	'coll-download_as_text' => 'Da bi ste preuzeli vanmrežnu verziju u formatu $1 kliknite na dugme.',
+	'coll-download_text' => 'Da bi ste preuzeli vašu knjigu odaberite format i kliknite dugme.',
+	'coll-download_as_text' => 'Da bi ste preuzeli vašu knjigu u formatu $1 kliknite na dugme.',
 	'coll-download' => 'Učitavanje',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Ukloni',
-	'coll-show' => 'Prikaži',
+	'coll-show' => 'Pokaži',
 	'coll-move_to_top' => 'Pomjeri na vrh',
 	'coll-move_up' => 'Premjesti gore',
 	'coll-move_down' => 'Premjesti dole',
@@ -779,9 +1911,6 @@
 	'coll-drag_and_drop' => 'Koristi mogućnost povuci-i-spusti za preuređenje wiki stranica i poglavlja',
 	'coll-create_chapter' => 'Napravi poglavlje',
 	'coll-sort_alphabetically' => 'Poredaj po abecedi',
-	'coll-clear_collection' => 'Očisti knjigu',
-	'coll-clear_collection_tooltip' => 'Ukloni sve wiki članke iz Vaše trenutne knjige',
-	'coll-clear_collection_confirm' => 'Da li zaista želite da potpuno očistite Vašu knjigu?',
 	'coll-rename' => 'Promijeni ime',
 	'coll-new_chapter' => 'Unesi ime za novo poglavlje',
 	'coll-rename_chapter' => 'Unesite novo ime za poglavlje',
@@ -800,7 +1929,7 @@
 	'coll-personal_collection_label' => 'Lična knjiga:',
 	'coll-community_collection_label' => 'Knjiga zajednice:',
 	'coll-save_collection' => 'Sačuvaj knjigu',
-	'coll-save_category' => 'Knjige su spremljene u kategoriju [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Sve spremljene knjige su dodane u kategoriju [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Stranica postoji.
 Prepiši preko postojeće?',
 	'coll-overwrite_text' => 'Stranica pod imenom [[:$1]] već postoji.
@@ -826,65 +1955,100 @@
 	'coll-rendering_status' => '<strong>Stanje:</strong> $1',
 	'coll-rendering_article' => '(wiki stranica: $1)',
 	'coll-rendering_page' => '(stranica: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Stranica za iscrtavanje informativnog teksta',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Iscrtavanje kolekcije informativnog teksta',
 	'coll-rendering_finished_title' => 'Iscrtavanje završeno',
 	'coll-rendering_finished_text' => '<strong>Datoteka dokumenta je generisana.</strong>
 <strong>[$1 Spremite datoteku]</strong> na Vaš računar.
 
 Napomene:
 * Da li ste zadovoljni sa rezultatom? Pogledajte [[{{MediaWiki:Coll-helppage}}|stranicu pomoći kod kolekcija]] za moguća poboljšanja rezultata.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Stranica za iscrtavanje informativnog teksta',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Iscrtavanje kolekcije informativnog teksta',
 	'coll-notfound_title' => 'Knjiga nije pronađena',
 	'coll-notfound_text' => 'Nije moguće pronaći stranicu knjige.',
+	'coll-download_notfound_title' => 'Datoteka nije pronađena',
+	'coll-download_notfound_text' => 'Datoteka koju pokušavate da skinete ne postoji: Možda je obrisana i treba biti regenerisana.',
+	'coll-download_failed_title' => 'Greška pri preuzimanju',
+	'coll-download_failed_text' => 'Desila se greška pri preuzimanju datoteke: $1',
 	'coll-is_cached' => '<ul><li>Pronađena je keširana verzija dokumenta, tako da je ponovno iscrtavanje nepotrebno. <a href="$1">Traži ponovno iscrtavanje.</a></li></ul>',
 	'coll-excluded-templates' => '* Šabloni u kategoriji [[:Category:$1|$1]] su isključeni.',
 	'coll-blacklisted-templates' => '* Šabloni sa spiska nepoželjnih [[:$1]] su isključeni.',
 	'coll-return_to_collection' => '<p>Povratak na <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Naruči kao štampanu knjigu',
 	'coll-book_text' => 'Preuzmite štampanu knjigu od našeg print-on-demand partnera:',
-	'coll-order_from_pp' => 'Naruči knjigu od $1',
+	'coll-order_from_pp' => 'Pregled sa $1',
 	'coll-about_pp' => 'O $1',
 	'coll-invalid_podpartner_title' => 'POD partner nije validan',
 	'coll-invalid_podpartner_msg' => 'Pruženi POD partner nije validan.
 Molimo da kontaktirate Vašeg MediaWiki administratora.',
 	'coll-license' => 'Licenca',
 	'coll-return_to' => 'Vrati na [[:$1]]',
+	'coll-more_info' => 'Prikaži više informacija',
+	'coll-hide_info' => 'Sakrij informacije',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress informacije o narudžbi',
+	'coll-suggest_title' => 'Predložene stranice za Vašu knjigu',
+	'coll-suggest_intro_text' => 'Prijedlozi su zasnovani na trenutnom setu wiki stranica u Vašoj knjizi.
+Spisak se ažurira kad god kliknete na dugme za dodavanje ili uklanjanje.',
+	'coll-suggested_articles' => 'Prijedlozi',
+	'coll-suggest_reset_bans' => 'poništi',
+	'coll-suggest_reset_bans_tooltip' => 'Pokaži prethodno uklonjene prijedloge',
+	'coll-suggest_add_selected' => 'Dodaj odabrane stranice',
+	'coll-suggest_ban_selected' => 'Ukloni odabrane stranice',
+	'coll-suggest_your_book' => 'Vaša knjiga',
+	'coll-suggest_show' => 'pokaži',
+	'coll-suggest_ban_tooltip' => 'Ukloni ovu stranicu iz spiska prijedloga',
+	'coll-suggest_article_ban' => 'Stranica <strong>$1</strong> je uklonjena iz prijedloga ($2).',
+	'coll-suggest_article_add' => 'Stranica <strong>$1</strong> je dodana u Vašu knjigu ($2).',
+	'coll-suggest_article_remove' => 'Stranica <strong>$1</strong> je uklonjena iz Vaše knjige ($2).',
+	'coll-suggest_undo_tooltip' => 'Vrati ovu akciju',
+	'coll-suggest_undo' => 'vrati',
+	'coll-load_local_book' => 'Kliknite OK da nastavite sa vašom knjigom %TITLE% koja sadrži %NUMPAGES% wiki stranica. Kliknite Cancel da je obrišete i da započnete sa praznom knjigom.',
+	'right-collectionsaveasuserpage' => 'Spremanje knjiga u vidu korisničkih stranica',
+	'right-collectionsaveascommunitypage' => 'Spremanje knjiga kao stranica zajednice',
 );
 
 /** Catalan (Català)
  * @author Aleator
+ * @author El libre
  * @author Jordi Roqué
+ * @author Martorell
+ * @author Paucabot
  * @author SMP
+ * @author Solde
  * @author Vriullop
  */
 $messages['ca'] = array(
-	'coll-desc' => '[[Special:Book|Crear llibres]]',
+	'coll-desc' => '[[Special:Book|Crea llibres]]',
+	'coll-book_creator_intro' => "<big>Amb el ''mode llibre'', podeu crear un llibre format per les pàgines wiki que volgueu. Podeu exportar-lo en diferents formats (per exemple PDF o ODF) o  demanar una còpia impresa.</big>",
+	'coll-manage_your_book' => 'Gestioneu la vostra biblioteca',
+	'coll-book_creator_help' => "Veure [[{{MediaWiki:Coll-helppage}}|la pàgina d'ajuda sobre els llibres]] per més informació.",
+	'coll-start_book_creator' => 'Inicia el creador de llibres',
+	'coll-book_creator_continue' => 'Continua utilitzant el creador de llibres',
+	'coll-book_creator_disable_text' => "Es desactivarà el ''creador de llibres'' i s'esborrarà el llibre en el que esteu treballant",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text en mode llibre',
 	'coll-collection' => 'Llibre',
 	'coll-collections' => 'Llibres',
 	'coll-exclusion_category_title' => 'Excloure en imprimir',
 	'coll-print_template_prefix' => 'Imprimir',
-	'coll-create_a_book' => 'Crear llibre',
-	'coll-add_page' => 'Afegir pàgina wiki',
-	'coll-remove_page' => 'Esborrar pàgina wiki',
-	'coll-add_category' => 'Afegir categoria',
-	'coll-load_collection' => 'Carregar llibre',
-	'coll-show_collection' => 'Mostrar llibre',
-	'coll-help_collections' => 'Ajuda (llibres)',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pàgina|pàgines}}',
+	'coll-print_template_pattern' => '$1/Imprimir',
 	'coll-unknown_subpage_title' => 'Subpàgina desconeguda',
 	'coll-unknown_subpage_text' => 'No existeix aquesta subpàgina de [[Special:Book|Llibre]]',
-	'coll-printable_version_pdf' => 'Versió en PDF',
-	'coll-download_as' => 'Descarregar com $1',
-	'coll-noscript_text' => "<h1>Es necessita el JavaScript!</h1>
-<strong>El vostre navegador no suporta el JavaScript o aquest hi està blocat.
-Aquesta pàgina no funcionarà correctament si no el poseu o l'activeu.</strong>",
-	'coll-intro_text' => 'Creeu i gestioneu la vostra selecció personal de pàgines wiki.<br />Vegeu [[{{MediaWiki:Coll-helppage}}]] per a més informació.',
-	'coll-helppage' => 'Help:Llibres',
-	'coll-bookscategory' => 'Llibres',
+	'coll-couldnotaddarticle_title' => "No s'ha pogut afegir la pàgina wiki",
+	'coll-couldnotaddarticle_msg' => "No s'ha pogut afegir la pàgina wiki.",
+	'coll-couldnotremovearticle_title' => "No s'ha pogut eliminar la pàgina",
+	'coll-couldnotremovearticle_msg' => "No s'ha pogut eliminar la pàgina wiki.",
+	'coll-noscript_text' => "<h1>Es necessita JavaScript!</h1>
+<strong>El vostre navegador no admet el JavaScript o el té desactivat.
+Aquesta pàgina no funcionarà correctament si no l'activeu.</strong>",
+	'coll-savedbook_template' => 'llibre_desat',
 	'coll-your_book' => 'El vostre llibre',
 	'coll-download_title' => 'Descarrega',
-	'coll-download_text' => 'Per a descarregar una versió escull el format i clica el botó.',
-	'coll-download_as_text' => 'Per a descarregar una versió en format $1 clica el botó.',
+	'coll-download_text' => 'Per a descarregar el vostre llibre escolliu el format i cliqueu el botó.',
+	'coll-download_as_text' => 'Per a descarregar el vostre llibre en format $1 cliqueu el botó.',
 	'coll-download' => 'Descarregar',
-	'coll-remove' => 'Eliminar',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Elimina',
 	'coll-show' => 'Mostrar',
 	'coll-move_to_top' => 'Moure al principi',
 	'coll-move_up' => 'Pujar',
@@ -893,11 +2057,9 @@
 	'coll-title' => 'Títol:',
 	'coll-subtitle' => 'Subtítol:',
 	'coll-contents' => 'Contingut',
-	'coll-drag_and_drop' => 'Feu servir el mètode de drag and drop per reordenar les pàgines wiki i els capítols',
+	'coll-drag_and_drop' => 'Arrossegueu el cursor per a reordenar els capítols i les pàgines wiki',
 	'coll-create_chapter' => 'Crear un nou capítol',
 	'coll-sort_alphabetically' => 'Ordena alfabèticament',
-	'coll-clear_collection' => 'Buidar llibre',
-	'coll-clear_collection_confirm' => 'Esteu segur de voler buidar el vostre llibre?',
 	'coll-rename' => 'Reanomena',
 	'coll-new_chapter' => 'Introduïu un nom per al nou capítol',
 	'coll-rename_chapter' => 'Introduïu un nou nom per al capítol',
@@ -915,17 +2077,17 @@
 	'coll-login_to_save' => 'Si voleu desar un llibre per a ús posterior, si us plau [[Special:UserLogin|iniciï la sessió o crei un compte]]',
 	'coll-personal_collection_label' => 'Llibre personal:',
 	'coll-community_collection_label' => 'Llibre de la comunitat:',
-	'coll-save_collection' => 'Desar llibre',
+	'coll-save_collection' => 'Desa llibre',
 	'coll-save_category' => 'Tots els llibres queden desats en la categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'La pàgina existeix. Voleu substituir-la?',
 	'coll-overwrite_text' => 'Ja existeix una pàgina amb el mateix nom [[:$1]].
 Voleu substituir-la amb el vostre llibre?',
-	'coll-yes' => 'Sí',
+	'coll-yes' => 'Sí',
 	'coll-no' => 'No',
 	'coll-load_overwrite_text' => "Ja teniu algunes pàgines al vostre llibre.
 Voleu sobreescriure el vostre llibre actual, annexar el nou contingut, o canceŀlar la càrrega d'aquest llibre?",
 	'coll-overwrite' => 'Sobreescriu',
-	'coll-append' => 'Annexar',
+	'coll-append' => 'Annexa',
 	'coll-cancel' => 'Canceŀla',
 	'coll-update' => 'Actualitza',
 	'coll-limit_exceeded_title' => 'Llibre massa gran',
@@ -941,29 +2103,71 @@
 	'coll-rendering_status' => '<strong>Estat:</strong> $1',
 	'coll-rendering_article' => '(pàgina wiki: $1)',
 	'coll-rendering_page' => '(pàgina: $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Processant text d'informació de la pàgina",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Processant text d'informació de la col·lecció",
 	'coll-rendering_finished_title' => 'Renderització finalitzada',
 	'coll-rendering_finished_text' => "<strong>S'ha generat l'arxiu.</strong>
 <strong>[$1 Descarregueu l'arxiu]</strong> al vostre ordinador.
 
 Notes:
 * No esteu satisfet amb el resultat? Vegeu [[{{MediaWiki:Coll-helppage}}|la pàgina d'ajuda sobre llibres]] per a conéixer més opcions per millorar-lo.",
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Processant texte d'informació de la pàgina",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Processant text d'informació de la col·lecció",
 	'coll-notfound_title' => 'Llibre no trobat',
 	'coll-notfound_text' => "No s'ha pogut trobar la pàgina del llibre.",
+	'coll-download_notfound_title' => "No s'ha trobat el fitxer",
+	'coll-download_notfound_text' => 'El fitxer que intenteu descarregar no existeix: Potser ha estat esborrat i cal que sigui regenerat.',
+	'coll-download_failed_title' => 'Error durant la baixada',
+	'coll-download_failed_text' => "S'ha produït un error en descarregar l'arxiu: $1",
 	'coll-is_cached' => '<ul><li>S\'ha trobat una versió del document en la memòria cau i per tant no ha estat necessària cap renderització. <a href="$1">Forçar renderització.</a></li></ul>',
-	'coll-excluded-templates' => "* No s'han inclós les plantilles de la categoria [[:Categoria:$1|$1]].",
+	'coll-excluded-templates' => "* No s'han inclòs les plantilles de la categoria [[:Category:$1|$1]].",
 	'coll-blacklisted-templates' => "* S'han exclòs les plantilles de la llista negra [[:$1]].",
 	'coll-return_to_collection' => '<p>Tornar a <a href="$1">$2</a></p>',
-	'coll-book_title' => 'Encarregar llibre imprès',
+	'coll-book_title' => 'Encarrega-ho com a llibre imprès',
 	'coll-book_text' => "Obtenir el llibre imprès del nostre soci de peticions d'impressió:",
-	'coll-order_from_pp' => 'Sol·licitar llibre a $1',
+	'coll-order_from_pp' => 'Previsualització amb $1',
 	'coll-about_pp' => 'Quant a $1',
 	'coll-invalid_podpartner_title' => "Soci de peticions d'impressió no vàlid",
 	'coll-invalid_podpartner_msg' => "El soci de peticions d'impressió indicat no és vàlid.
 Si us plau, contacteu amb el vostre administrador de MediaWiki.",
 	'coll-license' => 'Llicència',
 	'coll-return_to' => 'Tornar a [[:$1]]',
+	'coll-more_info' => 'Mostra més informació',
+	'coll-hide_info' => 'Amaga informació',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Ordena informacó de PediaPress',
+	'coll-suggest_title' => 'Pàgines suggerides per al vostre llibre',
+	'coll-suggest_intro_text' => "Els suggeriments estan basats en la llista actual de pàgines al llibre.
+La llista s'actualitza cada vegada que feu clic als botons d'afegir o treure.",
+	'coll-suggested_articles' => 'Suggeriments',
+	'coll-suggest_reset_bans' => 'restablir',
+	'coll-suggest_reset_bans_tooltip' => 'Mostra els suggeriments descartats',
+	'coll-suggest_add_selected' => 'Afegeix les pàgines seleccionades',
+	'coll-suggest_ban_selected' => 'Elimina les pàgines seleccionades',
+	'coll-suggest_your_book' => 'El teu llibre',
+	'coll-suggest_show' => 'mostra',
+	'coll-suggest_ban_tooltip' => 'Treu aquesta pàgina de la llista de suggeriments',
+	'coll-suggest_article_ban' => 'La pàgina <strong>$1</strong> ha estat retirada dels suggeriments ($2).',
+	'coll-suggest_article_add' => 'La pàgina <strong>$1</strong> ha estat afegida al llibre ($2).',
+	'coll-suggest_article_remove' => 'La pàgina <strong>$1</strong> ha estat retirada del vostre llibre ($2).',
+	'coll-suggest_undo_tooltip' => "Desfés l'acció",
+	'coll-suggest_undo' => 'desfés',
+	'coll-load_local_book' => 'Feu clic a OK per a continuar el vostre llibre %TITLE% que conté %NUMPAGES% pàgines del wiki. Feu clic a Canceŀla per a esborrar-lo i començar amb un llibre buit.',
+	'right-collectionsaveasuserpage' => "Desar els llibres com a pàgina d'usuari",
+	'right-collectionsaveascommunitypage' => 'Desar els llibres com una pàgina de la comunitat',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'coll-collections' => 'Жайнаш',
+	'coll-couldnotaddarticle_msg' => 'Хlара яззам чутоьхна хила цамега.',
+	'coll-couldnotremovearticle_msg' => 'Хlара яззам дlабайина хила цамега.',
+	'coll-no_such_category' => 'Ишта кадегар яц',
+	'coll-yes' => 'Хlаъ',
+	'coll-rendering_article' => '(яззам: $1)',
+);
+
 /** Czech (Česky)
  * @author Danny B.
  * @author Li-sung
@@ -972,33 +2176,31 @@
  */
 $messages['cs'] = array(
 	'coll-desc' => '[[Special:Book|Vytváření knih]]',
+	'coll-book_creator_intro' => "<big>Pomocí ''editoru knih'' si můžete vytvořit knihu sestávající z libovolných stránek wiki. Knihu pak můžete vyexportovat do různých formátů (např. PDF či ODF) nebo si objednat tištěnou verzi.</big>",
+	'coll-manage_your_book' => 'Správa knihy',
+	'coll-book_creator_help' => 'Další informace najdete na [[{{MediaWiki:Coll-helppage}}|stránce nápovědy ke knihám]].',
+	'coll-start_book_creator' => 'Spustit editor knih',
+	'coll-book_creator_continue' => 'Nechat editor knih zapnutý',
+	'coll-book_creator_disable_text' => "''Editor knih'' bude vypnut a kniha, na které pracujete, bude smazána.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text k editoru knih',
 	'coll-collection' => 'Kniha',
 	'coll-collections' => 'Knihy',
 	'coll-exclusion_category_title' => 'Netisknout',
 	'coll-print_template_prefix' => 'Tisk',
 	'coll-print_template_pattern' => '$1/Tisk',
-	'coll-create_a_book' => 'Vytvořit knihu',
-	'coll-add_page' => 'Přidat tuto stránku',
-	'coll-remove_page' => 'Odebrat tuto stránku',
-	'coll-add_category' => 'Přidat kategorii',
-	'coll-load_collection' => 'Načíst knihu',
-	'coll-show_collection' => 'Zobrazit knihu',
-	'coll-help_collections' => 'Nápověda ke knihám',
-	'coll-n_pages' => '$1 {{PLURAL:$1|stránka|stránky|stránek}}',
 	'coll-unknown_subpage_title' => 'Neznámá podstránka',
 	'coll-unknown_subpage_text' => 'Tato podstránka [[Special:Book|knihy]] neexistuje',
-	'coll-printable_version_pdf' => 'PDF verze',
-	'coll-download_as' => 'Stáhnout jako $1',
+	'coll-couldnotaddarticle_title' => 'Nepodařilo se přidat stránku',
+	'coll-couldnotaddarticle_msg' => 'Stránka nemohla být přidána.',
+	'coll-couldnotremovearticle_title' => 'Stránka nemohla být odebrána',
+	'coll-couldnotremovearticle_msg' => 'Nepodařilo se odebrat stránku.',
 	'coll-noscript_text' => '<h1>Je vyžadován JavaScript!</h1>
 <strong>Váš prohlížeč nepodporuje JavaScript nebo máte JavaScript vypnutý.
 Tato stránka nebude správně fungovat, dokud JavaScript nezapnete.</strong>',
-	'coll-intro_text' => 'Zde můžete vytvářet a spravovat své osobní výběry stránek wiki.<br />Další informace najdete v [[{{MediaWiki:Coll-helppage}}|nápovědě ke kolekcím]].',
-	'coll-helppage' => 'Help:Knihy',
-	'coll-bookscategory' => 'Knihy',
 	'coll-savedbook_template' => 'uložená_kniha',
 	'coll-your_book' => 'Vaše kniha',
 	'coll-download_title' => 'Stáhnout',
-	'coll-download_text' => 'Pokud si chcete stáhnout offline verzi, zvolte si formát a klikněte na tlačítko.',
+	'coll-download_text' => 'Pro stažení knihy si zvolte formát a klikněte na tlačítko.',
 	'coll-download_as_text' => 'Verzi ve formátu $1 si můžete stáhnout kliknutím na tlačítko.',
 	'coll-download' => 'Stáhnout',
 	'coll-format_label' => 'Formát:',
@@ -1014,8 +2216,6 @@
 	'coll-drag_and_drop' => 'Pořadí článků a kapitol můžete změnit přetáhnutím myší',
 	'coll-create_chapter' => 'Vytvořit kapitolu',
 	'coll-sort_alphabetically' => 'Seřadit abecedně',
-	'coll-clear_collection' => 'Vyčistit knihu',
-	'coll-clear_collection_confirm' => 'Skutečně chcete úplně vyčistit tuto knihu?',
 	'coll-rename' => 'Přejmenovat',
 	'coll-new_chapter' => 'Zadejte název nové kapitoly',
 	'coll-rename_chapter' => 'Zadejte nový název kapitoly',
@@ -1034,7 +2234,7 @@
 	'coll-personal_collection_label' => 'Osobní kniha:',
 	'coll-community_collection_label' => 'Komunitní kniha:',
 	'coll-save_collection' => 'Uložit knihu',
-	'coll-save_category' => 'Knihy se ukládají do kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Všechny uložené knihy se přidávají do kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Stránka existuje. Přepsat?',
 	'coll-overwrite_text' => 'Stránka s názvem [[:$1]] už existuje.
 Chcete ji nahradit svojí kolekcí?',
@@ -1044,7 +2244,7 @@
 Chcete přepsat svoji existující knihu, přidat do ní obsah nebo zrušit operaci s touto knihou?',
 	'coll-overwrite' => 'Přepsat',
 	'coll-append' => 'Přidat',
-	'coll-cancel' => 'Zrušit',
+	'coll-cancel' => 'Storno',
 	'coll-update' => 'Aktualizovat',
 	'coll-limit_exceeded_title' => 'Kniha je příliš velká',
 	'coll-limit_exceeded_text' => 'Vaše kniha je příliš velká.
@@ -1059,102 +2259,413 @@
 	'coll-rendering_status' => '<strong>Stav:</strong> $1',
 	'coll-rendering_article' => '(článek: $1)',
 	'coll-rendering_page' => '(stránka: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informace při vykreslování stránky',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informace při vykreslování knihy',
 	'coll-rendering_finished_title' => 'Vykreslování dokončeno',
 	'coll-rendering_finished_text' => '<strong>Soubor s dokumentem byl vytvořen.</strong>
 Můžete si ho <strong>[$1 stáhnout do svého počítače]</strong>.
 
 Poznámky:
 * Nejste spokojeni s výsledkem? Podívejte se na [[{{MediaWiki:Coll-helppage}}|stránku s nápovědou ke kolekcím]], jak ho vylepšit.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informace při vykreslování stránky',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informace při vykreslování knihy',
 	'coll-notfound_title' => 'Kniha nenalezena',
 	'coll-notfound_text' => 'Nebylo možné najít stránku knihy.',
+	'coll-download_notfound_title' => 'Soubor nenalezen',
+	'coll-download_notfound_text' => 'Soubor, který se snažíte stáhnout, neexistuje: Možná byl smazán a je potřeba ho znovu vytvořit.',
+	'coll-download_failed_title' => 'Chyba při stahování',
+	'coll-download_failed_text' => 'Při stahování souboru došlo k chybě: $1',
 	'coll-is_cached' => '<ul><li>Byla nalezena cachovaná verze tohoto dokumentu, takže nebylo třeba vykreslovat. <a href="$1">Vynutit nové vykreslení.</a></li></ul>',
 	'coll-excluded-templates' => '* Šablony v kategorii [[:Category:$1|$1]] byly vynechány.',
 	'coll-blacklisted-templates' => '* Šablony na černé listině [[:$1]] byly vynechány.',
 	'coll-return_to_collection' => '<p>Vrátit se na <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Objednat jako tištěnou knihu',
 	'coll-book_text' => 'Od našeho partnera pro tisk na vyžádání můžete získat tištěnou knihu:',
-	'coll-order_from_pp' => 'Objednat knihu od {{grammar:2sg|$1}}',
+	'coll-order_from_pp' => 'Náhled knihy prostřednictvím {{grammar:2sg|$1}}',
 	'coll-about_pp' => 'O {{grammar:7sg|$1}}',
 	'coll-invalid_podpartner_title' => 'Neplatný partner pro tisk na vyžádání',
 	'coll-invalid_podpartner_msg' => 'Zvolený partner pro tisk na vyžádání není platný.
 Kontaktujte svého správce MediaWiki.',
 	'coll-license' => 'Licence',
 	'coll-return_to' => 'Návrat na stránku „[[:$1]]“.',
+	'coll-more_info' => 'Zobrazit další informace',
+	'coll-hide_info' => 'Skrýt informace',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Objednávky od PediaPress',
+	'coll-suggest_title' => 'Doporučené stránky pro vaší knihu',
+	'coll-suggest_intro_text' => 'Návrhy byly vybrány podle stránek, které už v knize máte.
+Seznam se aktualizuje při každém kliknutím na tlačítka přidat a odebrat.',
+	'coll-suggested_articles' => 'Návrhy',
+	'coll-suggest_reset_bans' => 'obnovit',
+	'coll-suggest_reset_bans_tooltip' => 'Zobrazit dříve odstraněné návrhy',
+	'coll-suggest_add_selected' => 'Přidat vybrané stránky',
+	'coll-suggest_ban_selected' => 'Odstranit vybrané stránky',
+	'coll-suggest_your_book' => 'Vaše kniha',
+	'coll-suggest_show' => 'zobrazit',
+	'coll-suggest_ban_tooltip' => 'Odstranit tuto stránku ze seznamu návrhů',
+	'coll-suggest_article_ban' => 'Stránka <strong>$1</strong> byla odstraněna ze seznamu návrhů. ($2)',
+	'coll-suggest_article_add' => 'Stránka <strong>$1</strong> byla přidána do vaší knihy. ($2)',
+	'coll-suggest_article_remove' => 'Stránka <strong>$1</strong> byla odstraněna z vaší knihy. ($2)',
+	'coll-suggest_undo_tooltip' => 'Vrátit tuto akci zpět',
+	'coll-suggest_undo' => 'zpět',
+	'coll-load_local_book' => 'Pokračovat v tvorbě knihy %TITLE%, která obsahuje %NUMPAGES% stran wiki, můžete kliknutím na OK. Kliknutím na Storno ji smažete a začnete s prázdnou knihou.',
+	'right-collectionsaveasuserpage' => 'Ukládání knih jako uživatelských stránek',
+	'right-collectionsaveascommunitypage' => 'Ukládání knih jako stránek komunity',
 );
 
+/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
+ * @author ОйЛ
+ */
+$messages['cu'] = array(
+	'coll-no' => 'нѣ́тъ',
+);
+
+/** Welsh (Cymraeg)
+ * @author Lloffiwr
+ */
+$messages['cy'] = array(
+	'coll-desc' => '[[Special:Book|Llunio llyfrau]]',
+	'coll-book_creator_intro' => "<big>Gallwch ddefnyddio'r ''teclyn llyfr'' i lunio llyfr yn cynnwys tudalennau'r wici o'ch dewis eich hun. Gallwch allforio'r llyfr ar sawl ffurf (er enghraifft PDF neu ODF), neu gallwch archebu copi ohono ar bapur.</big>",
+	'coll-manage_your_book' => "Rheoli'ch llyfr",
+	'coll-book_creator_help' => 'Gweler [[{{MediaWiki:Coll-helppage}}|y dudalen gymorth ar lyfrau]] i gael rhagor o wybodaeth.',
+	'coll-start_book_creator' => "Dechrau'r teclyn llunio llyfr",
+	'coll-book_creator_continue' => "Parhau i ddefnyddio'r lluniwr llyfrau",
+	'coll-book_creator_disable_text' => "Fe gaiff y ''lluniwr llyfrau'' ei analluogi a chaiff y llyfr yr ydych wrthi'n llunio ei ddiddymu.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Testun ar lun llyfr',
+	'coll-collection' => 'Llyfr',
+	'coll-collections' => 'Llyfrau',
+	'coll-exclusion_category_title' => 'Hepgor wrth argraffu',
+	'coll-print_template_prefix' => 'Argraffu',
+	'coll-print_template_pattern' => '$1/Argraffu',
+	'coll-unknown_subpage_title' => 'Isdudalen anhysbys',
+	'coll-unknown_subpage_text' => "Nid yw'r isdudalen [[Special:Book|llyfr]] hon ar gael",
+	'coll-couldnotaddarticle_title' => 'Aflwyddiant ychwanegu tudalen wici',
+	'coll-couldnotaddarticle_msg' => "Ni lwyddwyd ychwanegu'r dudalen wici",
+	'coll-couldnotremovearticle_title' => 'Aflwyddiant tynnu tudalen wici',
+	'coll-couldnotremovearticle_msg' => "Ni lwyddwyd tynnu'r dudalen wici.",
+	'coll-noscript_text' => "<h1>Rhaid cael JavaScript!</h1>
+<strong>Nid yw'ch porwr yn gallu defnyddio JavaScript, neu mae JavaScript wedi ei ddiffodd.
+Ni fydd y dudalen hon yn gweithio'n gywir os nad yw JavaScript wedi ei alluogi.</strong>",
+	'coll-savedbook_template' => 'Llyfr ar gadw',
+	'coll-your_book' => 'Eich llyfr',
+	'coll-download_title' => 'Islwytho',
+	'coll-download_text' => "I lwytho'th llyfr i lawr dewiswch fformat ac yna pwyswch ar y botwm.",
+	'coll-download_as_text' => "I lwytho'th llyfr i lawr ar fformat $1 pwyswch y botwm.",
+	'coll-download' => 'Islwytho',
+	'coll-format_label' => 'Fformat:',
+	'coll-remove' => 'Tynnu',
+	'coll-show' => 'Dangos',
+	'coll-move_to_top' => "Symud i'r brig",
+	'coll-move_up' => 'Symud am lan',
+	'coll-move_down' => 'Symud am lawr',
+	'coll-move_to_bottom' => "Symud i'r gwaelod",
+	'coll-title' => 'Teitl:',
+	'coll-subtitle' => 'Isdeitl:',
+	'coll-contents' => 'Cynnwys',
+	'coll-drag_and_drop' => "Ad-drefnu'r tudalennau a'r penodau trwy lusgosod.",
+	'coll-create_chapter' => 'Llunio pennod',
+	'coll-sort_alphabetically' => 'Gosod yn nhrefn yr wyddor',
+	'coll-rename' => 'Ailenwi',
+	'coll-new_chapter' => 'Rhowch enw ar y bennod newydd',
+	'coll-rename_chapter' => 'Rhowch yr enw newydd ar y bennod',
+	'coll-no_such_category' => 'Y categori ddim ar gael',
+	'coll-notitle_title' => 'Ni lwyddwyd i ddirnad teitl y dudalen.',
+	'coll-post_failed_title' => 'Methodd y cais POST',
+	'coll-post_failed_msg' => 'Methodd y cais POST i $1 ($2).',
+	'coll-mwserve_failed_title' => 'Gwall gan y gweinydd cynhyrchu',
+	'coll-mwserve_failed_msg' => 'Digwyddodd gwall ar y gweinydd cynhyrchu: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Hysbysiad gwall oddi wrth y gweinydd',
+	'coll-empty_collection' => "Gwacáu'r llyfr",
+	'coll-revision' => 'Diwygiad: $1',
+	'coll-save_collection_title' => "Cadw'r llyfr a'i rannu",
+	'coll-save_collection_text' => "Dewiswch fan i roi'ch llyfr ar gadw:",
+	'coll-login_to_save' => 'Os ydych am roi llyfr ar gadw er mwyn ei ddefnyddio rhywdro arall, rhaid ichi [[Special:UserLogin|fewngofnodi neu greu cyfrif]].',
+	'coll-personal_collection_label' => 'Llyfr personol:',
+	'coll-community_collection_label' => 'Llyfr cymunedol:',
+	'coll-save_collection' => "Rhoi'r llyfr ar gadw",
+	'coll-save_category' => 'Mae llyfrau i gyd yn cael eu gosod yn y categori [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] wrth eu cadw.',
+	'coll-overwrite_title' => 'Y dudalen ar gael yn barod.
+Am drosysgrifo?',
+	'coll-overwrite_text' => "Mae tudalen a'r enw [[:$1]] eisoes ar gael.
+Ydych chi am i'ch llyfr ddisodli'r dudalen?",
+	'coll-yes' => 'Ydw',
+	'coll-no' => 'Nacydw',
+	'coll-load_overwrite_text' => "Mae rhai tudalennau eisoes i gael yn eich llyfr.
+Ydych chi am drosysgrifo eich llyfr presennol, neu ychwanegu deunydd newydd ato, neu ddiddymu llwytho'r llyfr?",
+	'coll-overwrite' => 'Trosysgrifo',
+	'coll-append' => 'Atodi',
+	'coll-cancel' => 'Diddymu',
+	'coll-update' => 'Diweddaru',
+	'coll-limit_exceeded_title' => 'Y llyfr yn rhy fawr',
+	'coll-limit_exceeded_text' => "Mae'ch llyfr yn rhy fawr.
+Ni ellir ychwanegu rhagor o dudalennau.",
+	'coll-rendering_title' => "Wrthi'n cynhyrchu",
+	'coll-rendering_text' => '<p><strong>Mae\'r ddogfen wrthi\'n cael ei chynhyrchu.</strong></p>
+
+<p><strong>Wedi cwblhau:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Fe ddylai\'r dudalen hon ail-lwytho\'n awtomatig bob yn ychydig eiliadau.
+Os nac ydy\'n ail-lwytho o ran ei hun, gwasgwch y botwm ail-lwytho ar eich porwr.</p>',
+	'coll-rendering_status' => '<strong>Statws:</strong> $1',
+	'coll-rendering_article' => '(tudalen wici: $1)',
+	'coll-rendering_page' => '(tudalen: $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y dudalen",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y casgliad",
+	'coll-rendering_finished_title' => 'Wedi gorffen cynhyrchu',
+	'coll-rendering_finished_text' => "<strong>Mae ffeil y ddogfen wedi cael ei gynhyrchu.</strong>
+<strong>[$1 Llwytho'r ffeil i lawr]</strong> i'ch cyfrifiadur.
+
+Nodiadau:
+* Os nad ydych yn bles â'r cynnyrch gwelwch [[{{MediaWiki:Coll-helppage}}|y dudalen gymorth ar gynhyrchu llyfrau]] er mwyn deall sut mae gwella arno.",
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y dudalen",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Wrthi'n cynhyrchu'r wybodaeth am y casgliad",
+	'coll-notfound_title' => 'Heb ganfod y llyfr',
+	'coll-notfound_text' => 'Heb ganfod y dudalen yn y llyfr.',
+	'coll-download_notfound_title' => 'Heb lwyddo canfod y ffeil',
+	'coll-download_notfound_text' => "Nid yw'r ffeil yr ydych yn ceisio ei lwytho i lawr ar gael:
+Efallai ei fod wedi ei ddileu ac felly bod angen ei gynhyrchu o'r newydd.",
+	'coll-download_failed_title' => 'Cafwyd gwall wrth islwytho',
+	'coll-download_failed_text' => "Cafwyd gwall wrth islwytho'r ffeil: $1",
+	'coll-is_cached' => '<ul><li>Cafwyd hyd i fersiwn o\'r ddogfen mewn celc, felly nid oedd rhaid ei gynhyrchu.
+<a href="$1">Gorfodi ei chynhyrchu o\'r newydd.</a></li></ul>',
+	'coll-excluded-templates' => '* Wedi hepgor y nodiadau yn y categori [[:Category:$1|$1]].',
+	'coll-blacklisted-templates' => '* Ni chynhwyswyd nodiadau sydd ar y rhestr gwaharddedig [[:$1]].',
+	'coll-return_to_collection' => '<p>Dychwelyd i\'r dudalen <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Archebu fel llyfr printiedig',
+	'coll-book_text' => "Archebu llyfr oddi wrth ein partner argraffu ''print-on-demand''.",
+	'coll-order_from_pp' => 'Gweld rhagolwg ar $1',
+	'coll-about_pp' => 'Ynglŷn â $1',
+	'coll-invalid_podpartner_title' => 'Partner POD annilys',
+	'coll-invalid_podpartner_msg' => "Nid yw'r partner argraffu POD yn ddilys.
+Cysylltwch â'ch gweinyddwyr MediaWiki.",
+	'coll-license' => 'Trwydded',
+	'coll-return_to' => 'Yn ôl i [[:$1]]',
+	'coll-more_info' => 'Dangos rhagor o wybodaeth',
+	'coll-hide_info' => "Cuddio'r wybodaeth",
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Gwybodaeth am archebu oddi wrth PediaPress',
+	'coll-suggest_title' => 'Awgrymu tudalennau ar gyfer eich llyfr',
+	'coll-suggest_intro_text' => "Mae'r awgrymiadau hyn wedi eu seilio ar y detholiad presennol o dudalennau wici yn eich llyfr.
+Mae'r rhestr yn cael ei adnewyddu bob tro yr ydych yn pwyso ar y botymau ychwanegu neu tynnu.",
+	'coll-suggested_articles' => 'Awgrymiadau',
+	'coll-suggest_reset_bans' => 'ailosod',
+	'coll-suggest_reset_bans_tooltip' => 'Dangos yr awgrymiadau a dynnwyd i ffwrdd ynghynt',
+	'coll-suggest_add_selected' => "Ychwanegu'r tudalennau dethol",
+	'coll-suggest_ban_selected' => "Tynnu'r tudalennau dethol",
+	'coll-suggest_your_book' => 'Eich llyfr',
+	'coll-suggest_show' => 'dangos',
+	'coll-suggest_ban_tooltip' => "Tynnu'r dudalen hon o'r rhestr awgrymiadau",
+	'coll-suggest_article_ban' => "Tynnwyd y dudalen <strong>$1</strong> o'r awgrymiadau ($2).",
+	'coll-suggest_article_add' => 'Ychwanegwyd y dudalen <strong>$1</strong> at eich llyfr ($2).',
+	'coll-suggest_article_remove' => "Tynnwyd y dudalen <strong>$1</strong> o'ch llyfr ($2).",
+	'coll-suggest_undo_tooltip' => 'Dadwneud y weithred hon',
+	'coll-suggest_undo' => 'dadwneud',
+	'coll-load_local_book' => "Pwyswch ar 'Iawn' i barhau â'ch llyfr %TITLE%, ag iddo %NUMPAGES% o dudalennau wici. Pwyswch ar 'Diddymu' i'w ddileu a dechrau eto gyda llyfr gwag.",
+	'right-collectionsaveasuserpage' => 'Gallu cadw llyfrau ar dudalennau yn y parth defnyddiwr',
+	'right-collectionsaveascommunitypage' => 'Gallu rhoi llyfrau ar gadw ar dudalennau cymunedol',
+);
+
 /** Danish (Dansk)
+ * @author Hylle
  * @author Jon Harald Søby
+ * @author Peter Alberti
+ * @author Thomas81
  */
 $messages['da'] = array(
+	'coll-desc' => '[[Special:Book|Skab bøger]]',
+	'coll-book_creator_intro' => '<big>Med bogværktøjslinien kan du oprette en bog, der indeholder valgfrie wikisider. Du kan eksportere bogen i forskellige formater (fx PDF eller ODF) eller bestille et trykt eksemplar.</big>',
+	'coll-manage_your_book' => 'Administrer din bog',
+	'coll-book_creator_help' => 'Se [[{{MediaWiki:Coll-helppage}}|hjælpesiden om bøger]] for mere information.',
+	'coll-start_book_creator' => 'Start bogværktøjslinien',
+	'coll-book_creator_continue' => 'Forsæt med at bruge bogværktøjslinien',
+	'coll-book_creator_disable_text' => "''Bogværktøjet'' vil blive deaktiveret, og den bog du arbejder på vil blive fjernet.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Bogskabertekst',
+	'coll-collection' => 'Bog',
+	'coll-collections' => 'Bøger',
+	'coll-exclusion_category_title' => 'Udeluk på tryk',
+	'coll-print_template_prefix' => 'Udskriv',
+	'coll-print_template_pattern' => '$1/udskriv',
+	'coll-unknown_subpage_title' => 'Ukendt underside',
+	'coll-unknown_subpage_text' => 'Denne underside til [[Special:Book|Bog]] findes ikke',
+	'coll-couldnotaddarticle_title' => 'Kunne ikke tilføje wikisiden',
+	'coll-couldnotaddarticle_msg' => 'Wiki-siden kunne ikke tilføjes.',
+	'coll-couldnotremovearticle_title' => 'Kunne ikke fjerne wikisiden',
+	'coll-couldnotremovearticle_msg' => 'Wiki-siden kunne ikke fjernes.',
+	'coll-noscript_text' => '<h1>JavaScript er påkrævet!</h1> 
+<strong>Din browser understøtter ikke JavaScript eller JavaScript er slået fra. 
+Denne side vil ikke virke korrekt, medmindre JavaScript er aktiveret.</strong>',
+	'coll-savedbook_template' => 'gemt_bog',
+	'coll-your_book' => 'Din bog',
+	'coll-download_title' => 'Download',
+	'coll-download_text' => 'For at downloade din bog skal du vælge et format og klikke på knappen.',
+	'coll-download_as_text' => 'Klik på knappen for at downloade din bog i $1-format.',
+	'coll-download' => 'Download',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Fjern',
+	'coll-show' => 'Vis',
+	'coll-move_to_top' => 'Flyt til toppen',
+	'coll-move_up' => 'Flyt op',
+	'coll-move_down' => 'Flyt ned',
+	'coll-move_to_bottom' => 'Flyt til bunden',
 	'coll-title' => 'Titel:',
+	'coll-subtitle' => 'Undertitel:',
+	'coll-contents' => 'Indhold',
+	'coll-drag_and_drop' => 'Brug træk & slip for at ændre rækkefølgen på wikisider og kapitler',
+	'coll-create_chapter' => 'Opret kapitel',
+	'coll-sort_alphabetically' => 'Sorter alfabetisk',
+	'coll-rename' => 'Omdøb',
+	'coll-new_chapter' => 'Indtast navnet på nyt kapitel',
+	'coll-rename_chapter' => 'Indtast nyt navn til kapitel',
+	'coll-no_such_category' => 'Ingen kategori med det navn',
+	'coll-notitle_title' => 'Sidens titel kunne ikke bestemmes.',
+	'coll-post_failed_title' => 'POST-forespørgsel mislykkedes',
+	'coll-post_failed_msg' => 'POST-forespørgslen til $1 mislykkedes ($2).',
+	'coll-mwserve_failed_title' => 'Genererings-serverfejl',
+	'coll-mwserve_failed_msg' => 'En fejl opstod på renderingsserveren: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Fejlrespons fra serveren',
+	'coll-empty_collection' => 'Tom bog',
+	'coll-revision' => 'Version: $1',
+	'coll-save_collection_title' => 'Gem og del din bog',
+	'coll-save_collection_text' => 'Vælg en placering til din bog:',
+	'coll-login_to_save' => 'Hvis du vil gemme bøger til senere brug, skal du [[Special:UserLogin|logge ind eller oprette en konto]].',
+	'coll-personal_collection_label' => 'Personlig bog:',
+	'coll-community_collection_label' => 'Fællesskabsbog:',
+	'coll-save_collection' => 'Gem bog',
+	'coll-save_category' => 'Alle gemte bøger tilføjes til kategorien [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Siden eksisterer.
+Overskriv den?',
+	'coll-overwrite_text' => 'En side med navnet [[:$1]] eksisterer allerede.
+Ønsker du at erstatte den med din bog?',
 	'coll-yes' => 'Ja',
 	'coll-no' => 'Nej',
+	'coll-load_overwrite_text' => 'Du har allerede nogle sider i din bog. 
+Vil du overskrive din aktuelle bog, tilføje det nye indhold, eller afbryde indlæsningen af denne bog?',
+	'coll-overwrite' => 'Overskriv',
+	'coll-append' => 'Tilføj',
 	'coll-cancel' => 'Afbryd',
+	'coll-update' => 'Opdater',
+	'coll-limit_exceeded_title' => 'Bogen er for stor',
+	'coll-limit_exceeded_text' => 'Din bog er for stor. 
+Der kan ikke tilføjes flere sider.',
+	'coll-rendering_title' => 'Genererer',
+	'coll-rendering_text' => '<p><strong>Vent venligst mens dokumentet bliver genereret.</strong></p>
+
+<p><strong>Status:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Denne side skulle opdatere sig selv automatisk med få sekunders mellemrum. Hvis dette ikke virker, så tryk venligst på opdater-knappen i din browser.</p>',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(wikiside: $1)',
+	'coll-rendering_page' => '(side: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Skriver sideinformation',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Skriver information om samling',
+	'coll-rendering_finished_title' => 'Generering færdig',
+	'coll-rendering_finished_text' => '<strong>Dit dokument er blevet genereret.</strong>
+<strong>[$1 Download filen]</strong> til din computer. 
+
+Note: 
+* Er du ikke tilfreds med resultatet? Se [[{{MediaWiki:Coll-helppage}}|hjælpesiden omkring bøger]] for eventuelle muligheder til at forbedre det.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Skriver sideinformation',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Skriver information om samling',
+	'coll-notfound_title' => 'Bog ikke fundet',
+	'coll-notfound_text' => 'Kunne ikke finde bogsiden.',
+	'coll-download_notfound_title' => 'Fil ikke fundet',
+	'coll-download_notfound_text' => 'Filen du forsøger at downloade eksisterer ikke: 
+Måske er den blevet slettet og skal regenereres.',
+	'coll-download_failed_title' => 'Fejl under download',
+	'coll-download_failed_text' => 'Det opstod en fejl ved download af filen: $1',
+	'coll-is_cached' => '<ul><li>En cachet version af dokumentet er blevet fundet, så en ny generering var unødvendig. 
+<a href="$1">Fremtving gen-generering.</a> </li></ul>',
+	'coll-excluded-templates' => '* Skabeloner i kategorien [[:Category:$1|$1]], er blevet udelukket.',
+	'coll-blacklisted-templates' => '* Skabeloner på sortlisten [[:$1]] er blevet udelukket.',
+	'coll-return_to_collection' => '<p>Tilbage til <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Bestil som en trykt bog',
+	'coll-book_text' => 'Bestil en trykt udgave fra vores print-on-demand partner.',
+	'coll-order_from_pp' => 'Forhåndsvis med $1',
+	'coll-about_pp' => 'Om $1',
+	'coll-invalid_podpartner_title' => 'Ugyldig POD-partner',
+	'coll-invalid_podpartner_msg' => 'Den valgte POD partner er ugyldig. 
+Kontakt venligst din MediaWiki-administrator.',
+	'coll-license' => 'Licens',
+	'coll-return_to' => 'Tilbage til [[:$1]]',
+	'coll-more_info' => 'Vis mere information',
+	'coll-hide_info' => 'Skjul information',
+	'coll-order_info_article' => '((MediaWiki:Coll-Helppage))/PediaPress ordreoplysninger',
+	'coll-suggest_title' => 'Foreslåede sider til din bog',
+	'coll-suggest_intro_text' => 'Forslagene er baseret på de wikisider, der udgør din bog i øjeblikket.
+Listen opdateres når du klikker på tilføj- eller fjernknapperne.',
+	'coll-suggested_articles' => 'Forslag',
+	'coll-suggest_reset_bans' => 'nulstil',
+	'coll-suggest_reset_bans_tooltip' => 'Vis tidligere fjernede forslag',
+	'coll-suggest_add_selected' => 'Tilføj valgte sider',
+	'coll-suggest_ban_selected' => 'Fjern valgte sider',
+	'coll-suggest_your_book' => 'Din bog',
+	'coll-suggest_show' => 'vis',
+	'coll-suggest_ban_tooltip' => 'Fjerne denne side fra listen over forslag',
+	'coll-suggest_article_ban' => 'Siden <strong>$1</strong> er blevet fjernet fra forslagene ($2).',
+	'coll-suggest_article_add' => 'Siden <strong>$1</strong> er blevet tilføjet til din bog ($2).',
+	'coll-suggest_article_remove' => 'Siden <strong>$1</strong> er blevet fjernet fra din bog ($2).',
+	'coll-suggest_undo_tooltip' => 'Fortryd denne handling',
+	'coll-suggest_undo' => 'fortryd',
+	'coll-load_local_book' => 'Klik på OK for at fortsætte med din bog, %TITLE%, som indeholder %NUMPAGES% wikisider. Klik på Cancel for at slette den og begynde forfra med en tom bog.',
+	'right-collectionsaveasuserpage' => 'Gem bøger som brugerside',
+	'right-collectionsaveascommunitypage' => 'Gem bøger som en fælles side',
 );
 
 /** German (Deutsch)
  * @author Heuler06
  * @author Jbeigel
+ * @author Kghbln
  * @author Melancholie
  * @author Metalhead64
+ * @author Pill
+ * @author Purodha
  * @author Raimond Spekking
  * @author Revolus
+ * @author The Evil IP address
  * @author Umherirrender
  * @author VolkerHaas
  */
 $messages['de'] = array(
-	'coll-desc' => '[[Special:Book|Erstelle Bücher]]',
+	'coll-desc' => 'Ermöglicht eine [[Special:Book|Spezialseite]] zum Erstellen von Büchern',
+	'coll-book_creator_intro' => "<big>Mit der ''Buchfunktion'' kannst du ein Buch aus beliebigen Wikiseiten erstellen.
+Du kannst das Buch in unterschiedlichen Formaten exportieren (beispielsweise PDF oder ODF) oder in gedruckter Form bestellen.</big>",
+	'coll-manage_your_book' => 'Dein Buch verwalten',
+	'coll-book_creator_help' => 'Siehe die [[{{MediaWiki:Coll-helppage}}|Hilfe zu Büchern]] für weitere Informationen.',
+	'coll-start_book_creator' => 'Buchfunktion starten',
+	'coll-book_creator_continue' => 'Buchgenerator verwenden',
+	'coll-book_creator_disable_text' => "Der ''Buchgenerator'' wird deaktiviert und das Buch, an dem du arbeitest, wird gelöscht.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text für Buchmodus',
 	'coll-collection' => 'Buch',
 	'coll-collections' => 'Bücher',
 	'coll-exclusion_category_title' => 'Vom Druck ausschließen',
 	'coll-print_template_prefix' => 'Drucken',
 	'coll-print_template_pattern' => '$1/Druck',
-	'coll-create_a_book' => 'Buch erstellen',
-	'coll-add_page' => 'Wikiseite hinzufügen',
-	'coll-add_page_tooltip' => 'Die aktuelle Wikiseite deinem Buch hinzufügen',
-	'coll-remove_page' => 'Wikiseite entfernen',
-	'coll-remove_page_tooltip' => 'Die aktuelle Wikiseite aus deinem Buch entfernen',
-	'coll-add_category' => 'Kategorie hinzufügen',
-	'coll-add_category_tooltip' => 'Alle Wikiseiten dieser Kategorie deinem Buch hinzufügen',
-	'coll-load_collection' => 'Buch laden',
-	'coll-load_collection_tooltip' => 'Dieses Buch als dein aktuelles Buch laden',
-	'coll-show_collection' => 'Buch zeigen',
-	'coll-show_collection_tooltip' => 'Klicken, um dein Buch zu bearbeiten/herunterzuladen/bestellen',
-	'coll-help_collections' => 'Hilfe zu Büchern',
-	'coll-help_collections_tooltip' => 'Hilfe über das Buchwerkzeug zeigen',
-	'coll-n_pages' => '$1 {{PLURAL:$1|Wikiseite|Wikiseiten}}',
 	'coll-unknown_subpage_title' => 'Unbekannte Unterseite',
 	'coll-unknown_subpage_text' => 'Diese Unterseite von [[Special:Book|Buch]] existiert nicht',
-	'coll-printable_version_pdf' => 'PDF-Version',
-	'coll-download_as' => 'Als $1 herunterladen',
+	'coll-couldnotaddarticle_title' => 'Wikiseite konnte nicht hinzugefügt werden',
+	'coll-couldnotaddarticle_msg' => 'Die Wikiseite konnte nicht hinzugefügt werden.',
+	'coll-couldnotremovearticle_title' => 'Wikiseite konnte nicht entfernt werden',
+	'coll-couldnotremovearticle_msg' => 'Die Wikiseite konnte nicht entfernt werden.',
 	'coll-noscript_text' => '<h1>JavaScript wird benötigt!</h1>
 <strong>Dein Browser unterstützt kein JavaScript oder JavaScript wurde deaktiviert.
 Diese Seite wird nicht richtig funktionieren, solange JavaScript nicht verfügbar ist.</strong>',
-	'coll-intro_text' => 'Erstelle und verwalte deine individuelle Sammlung von Wikiseiten.<br />Siehe die [[{{MediaWiki:Coll-helppage}}|Hilfe zu Büchern]] für weitere Informationen.',
-	'coll-helppage' => 'Help:Bücher',
-	'coll-bookscategory' => 'Bücher',
 	'coll-savedbook_template' => 'Gespeichertes Buch',
 	'coll-your_book' => 'Dein Buch',
 	'coll-download_title' => 'Herunterladen',
-	'coll-download_text' => 'Um eine Offline-Version herunterzuladen, wähle ein Format und klicke auf die Schaltfläche.',
-	'coll-download_as_text' => 'Um eine Offline-Version im Format $1 herunterzuladen, klicke auf die Schaltfläche.',
+	'coll-download_text' => 'Um eine Offline-Version deines Buches herunterzuladen, wähle ein Format und klicke auf die Schaltfläche.',
+	'coll-download_as_text' => 'Um eine Offline-Version deines Buches im Format $1 herunterzuladen, klicke auf die Schaltfläche.',
 	'coll-download' => 'Herunterladen',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Entfernen',
 	'coll-show' => 'Zeigen',
-	'coll-move_to_top' => 'an den Anfang',
+	'coll-move_to_top' => 'an den Anfang verschieben',
 	'coll-move_up' => 'hoch',
-	'coll-move_down' => 'herunter',
-	'coll-move_to_bottom' => 'an das Ende',
+	'coll-move_down' => 'nach unten verschieben',
+	'coll-move_to_bottom' => 'an das Ende verschieben',
 	'coll-title' => 'Titel:',
 	'coll-subtitle' => 'Untertitel:',
 	'coll-contents' => 'Inhalt',
 	'coll-drag_and_drop' => 'Mit der Maus kannst du Wikiseiten und Kapitel verschieben, um die Reihenfolge zu ändern',
 	'coll-create_chapter' => 'Kapitel erzeugen',
 	'coll-sort_alphabetically' => 'Alphabetisch sortieren',
-	'coll-clear_collection' => 'Buch löschen',
-	'coll-clear_collection_tooltip' => 'Alle Wikiseiten aus deinem aktuellen Buch entfernen',
-	'coll-clear_collection_confirm' => 'Möchtest du wirklich dein Buch löschen?',
 	'coll-rename' => 'Umbenennen',
 	'coll-new_chapter' => 'Gib einen Namen für ein neues Kapitel ein',
 	'coll-rename_chapter' => 'Gib einen neuen Namen für das Kapitel ein',
@@ -1173,7 +2684,7 @@
 	'coll-personal_collection_label' => 'Persönliches Buch:',
 	'coll-community_collection_label' => 'Gemeinschaftliches Buch:',
 	'coll-save_collection' => 'Buch speichern',
-	'coll-save_category' => 'Alle Bücher werden der Kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] zugeordnet.',
+	'coll-save_category' => 'Alle gespeicherten Bücher werden der Kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] zugeordnet.',
 	'coll-overwrite_title' => 'Seite vorhanden, überschreiben?',
 	'coll-overwrite_text' => 'Eine Seite mit dem Namen [[:$1]] ist bereits vorhanden. Möchtest du sie durch dein Buch ersetzen?',
 	'coll-yes' => 'Ja',
@@ -1187,55 +2698,84 @@
 	'coll-limit_exceeded_title' => 'Buch zu groß',
 	'coll-limit_exceeded_text' => 'Dein Buch ist zu groß. Es können keine Seiten mehr hinzugefügt werden.',
 	'coll-rendering_title' => 'Beim Erstellen',
-	'coll-rendering_text' => '<p><strong>Bitte habe Geduld, während das Dokument erstellt wird.</strong></p>
+	'coll-rendering_text' => '<p><strong>Bitte habe etwas Geduld, während das Dokument erstellt wird.</strong></p>
 
 <p><strong>Fortschritt:</strong> <span id="renderingProgress">$1</span> % <span id="renderingStatus">$2</span></p>
 
 <p>Diese Seite sollte sich alle paar Sekunden von selbst aktualisieren.
-Wenn das jedoch nicht geschieht, drücke bitte den „Aktualisieren“-Knopf (meist F5) deines Browsers.</p>',
+Sollte dies nicht geschehen, drücke bitte den „Aktualisieren“-Knopf (meist F5) deines Browsers.</p>',
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(Wikiseite: $1)',
 	'coll-rendering_page' => '(Seite: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informationen über die Darstellung von Seiten',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informationen über das Darstellen von Sammlungen',
 	'coll-rendering_finished_title' => 'Fertig erstellt',
 	'coll-rendering_finished_text' => '<strong>Die Datei wurde erfolgreich erstellt.</strong>
 <strong>[$1 Dokument herunterladen]</strong>.
 
 Hinweise:
 * Bist du mit dem Ergebnis nicht zufrieden? Möglichkeiten zur Verbesserung der Ausgabe findest du auf der [[{{MediaWiki:Coll-helppage}}|Hilfeseite über Bücher]].',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Darstellung der Seiteninformation',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Darstellung des Buchs',
 	'coll-notfound_title' => 'Buch nicht gefunden',
 	'coll-notfound_text' => 'Dein Buch konnte nicht gefunden werden.',
+	'coll-download_notfound_title' => 'Datei nicht gefunden',
+	'coll-download_notfound_text' => 'Die Datei, die du versuchst herunterzuladen, existiert nicht: Möglicherweise wurde sie gelöscht oder sie muss neu generiert werden.',
+	'coll-download_failed_title' => 'Fehler beim Herunterladen',
+	'coll-download_failed_text' => 'Es gab einen Fehler beim Herunterladen der Datei: $1',
 	'coll-is_cached' => '<ul><li>Es ist eine zwischengespeicherte Version des Dokumentes vorhanden, so dass kein Rendern notwendig war. <a href="$1">Neurendern erzwingen.</a></li></ul>',
-	'coll-excluded-templates' => '* Vorlagen aus der Kategorie [[:Category:$1|$1]] wurden ausgeschlossen.',
+	'coll-excluded-templates' => '* Vorlagen aus der Kategorie „[[:Category:$1|$1]]“ wurden ausgeschlossen.',
 	'coll-blacklisted-templates' => '* Vorlagen von der Schwarzen Liste [[:$1]] wurden ausgeschlossen.',
 	'coll-return_to_collection' => 'Zurück zu <a href="$1">$2</a>',
 	'coll-book_title' => 'Als gedrucktes Buch bestellen',
-	'coll-book_text' => 'Bestelle eine gedruckte Buchausgabe bei unserem Print-on-Demand-Partner:',
-	'coll-order_from_pp' => 'Buch bei $1 bestellen',
+	'coll-book_text' => 'Bestelle eine gedruckte Buchausgabe bei unserem Print-on-Demand-Partner.',
+	'coll-order_from_pp' => 'Vorschau bei $1',
 	'coll-about_pp' => 'Über $1',
 	'coll-invalid_podpartner_title' => 'Ungültiger Print-on-Demand-Partner',
 	'coll-invalid_podpartner_msg' => 'Die Angaben zum Print-on-Demand-Partner sind fehlerhaft. Bitte kontaktiere den MediaWiki-Administrator.',
 	'coll-license' => 'Lizenz',
 	'coll-return_to' => 'Zurück zu [[:$1]]',
+	'coll-more_info' => 'Weitere Informationen zeigen',
+	'coll-hide_info' => 'Informationen verstecken',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress Bestellinformation',
+	'coll-suggest_title' => 'Vorgeschlagene Seiten für dein Buch',
+	'coll-suggest_intro_text' => 'Die Vorschläge basieren auf die aktuell in deinem Buch vorhandenen Wikiseiten.
+Immer, wenn du auf die Hinzufügen- oder Entfernen-Buttons klickst, wird die Liste aktualisiert.',
+	'coll-suggested_articles' => 'Vorschläge',
+	'coll-suggest_reset_bans' => 'zurücksetzen',
+	'coll-suggest_reset_bans_tooltip' => 'Zuletzt entfernte Vorschläge anzeigen',
+	'coll-suggest_add_selected' => 'Ausgewählte Seiten hinzufügen',
+	'coll-suggest_ban_selected' => 'Ausgewählte Seiten entfernen',
+	'coll-suggest_your_book' => 'Dein Buch',
+	'coll-suggest_show' => 'zeigen',
+	'coll-suggest_ban_tooltip' => 'Diese Seite aus der Vorschlagsliste entfernen',
+	'coll-suggest_article_ban' => 'Die Seite <strong>$1</strong> wurde aus den Vorschlägen entfernt ($2).',
+	'coll-suggest_article_add' => 'Die Seite <strong>$1</strong> wurde zu deinem Buch hinzugefügt ($2).',
+	'coll-suggest_article_remove' => 'Die Seite <strong>$1</strong> wurde aus deinem Buch entfernt ($2).',
+	'coll-suggest_undo_tooltip' => 'Diese Aktion rückgängig machen',
+	'coll-suggest_undo' => 'rückgängig machen',
+	'coll-load_local_book' => 'Klicke auf OK, um mit deinem Buch %TITLE% fortzufahren, bestehend aus %NUMPAGES% Wikiseiten. Klicke auf Abbrechen, um es zu löschen und um mit einem leeren Buch zu starten.',
+	'right-collectionsaveasuserpage' => 'Bücher als Benutzerseite speichern',
+	'right-collectionsaveascommunitypage' => 'Bücher als Gemeinschaftsseite speichern',
 );
 
-/** German (formal address) (Deutsch (Sie-Form))
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Dst
  * @author MichaelFrey
  * @author Umherirrender
  */
 $messages['de-formal'] = array(
-	'coll-add_page_tooltip' => 'Die aktuelle Wikiseite Ihrem Buch hinzufügen',
-	'coll-remove_page_tooltip' => 'Die aktuelle Wikiseite aus Ihrem Buch entfernen',
-	'coll-add_category_tooltip' => 'Alle Wikiseiten dieser Kategorie Ihrem Buch hinzufügen',
-	'coll-load_collection_tooltip' => 'Dieses Buch als Ihr aktuelles Buch laden',
-	'coll-show_collection_tooltip' => 'Klicken, um Ihr Buch zu bearbeiten/herunterzuladen/bestellen',
+	'coll-book_creator_intro' => "<big>Mit der ''Buchfunktion'' können Sie ein Buch aus beliebigen Wikiseiten erstellen.
+Sie können das Buch in unterschiedlichen Formaten exportieren (beispielsweise PDF oder ODF) oder in gedruckter Form bestellen.</big>",
+	'coll-manage_your_book' => 'Ihr Buch verwalten',
+	'coll-book_creator_disable_text' => "Der ''Buchgenerator'' wird deaktiviert und das Buch, an dem Sie arbeiten, wird gelöscht.",
 	'coll-noscript_text' => '<h1>JavaScript wird benötigt!</h1>
 <strong>Ihr Browser unterstützt kein JavaScript oder JavaScript wurde deaktiviert.
 Diese Seite wird nicht richtig funktionieren, solange JavaScript nicht verfügbar ist.</strong>',
-	'coll-intro_text' => 'Erstellen und verwalten Sie Ihre individuelle Sammlung von Wikiseiten.<br />Siehe die [[{{MediaWiki:Coll-helppage}}|Hilfe zu Büchern]] für weitere Informationen.',
 	'coll-your_book' => 'Ihr Buch',
+	'coll-download_text' => 'Um eine Offline-Version Ihres Buches herunterzuladen, wählen Sie bitte ein Format und klicken Sie auf die Schaltfläche.',
+	'coll-download_as_text' => 'Um eine Offline-Version Ihres Buches im Format $1 herunterzuladen, klicken Sie bitte auf die Schaltfläche.',
 	'coll-drag_and_drop' => 'Mit der Maus können Sie Wikiseiten und Kapitel verschieben, um die Reihenfolge zu ändern',
-	'coll-clear_collection_tooltip' => 'Alle Wikiseiten aus Ihrem aktuellen Buch entfernen',
-	'coll-clear_collection_confirm' => 'Möchten Sie wirklich Ihr Buch löschen?',
 	'coll-new_chapter' => 'Geben Sie einen Namen für ein neues Kapitel ein',
 	'coll-rename_chapter' => 'Geben Sie einen neuen Namen für das Kapitel ein',
 	'coll-save_collection_title' => 'Ihr Buch speichern und teilen',
@@ -1245,59 +2785,205 @@
 	'coll-load_overwrite_text' => 'Ihr Buch enthält bereits Seiten.
 Möchten Sie das aktuelle Buch überschreiben, die neuen Seiten anhängen oder das Laden dieses Buches abbrechen?',
 	'coll-limit_exceeded_text' => 'Ihr Buch ist zu groß. Es können keine Seiten mehr hinzugefügt werden.',
-	'coll-rendering_text' => '<p><strong>Bitte haben Sie Geduld, während das Dokument erstellt wird.</strong></p>
+	'coll-rendering_text' => '<p><strong>Bitte haben Sie etwas Geduld, während das Dokument erstellt wird.</strong></p>
 
 <p><strong>Fortschritt:</strong> <span id="renderingProgress">$1</span> % <span id="renderingStatus">$2</span></p>
 
 <p>Diese Seite sollte sich alle paar Sekunden von selbst aktualisieren.
-Wenn das jedoch nicht geschieht, drücke bitte den „Aktualisieren“-Knopf (meist F5) Ihres Browsers.</p>',
+Sollte dies nicht geschehen, drücken Sie bitte den „Aktualisieren“-Knopf (meist F5) Ihres Browsers.</p>',
 	'coll-rendering_finished_text' => '<strong>Die Datei wurde erfolgreich erstellt.</strong>
 <strong>[$1 Dokument herunterladen]</strong>.
 
 Hinweise:
 * Sind Sie mit dem Ergebnis nicht zufrieden? Möglichkeiten zur Verbesserung der Ausgabe finden Sie auf der [[{{MediaWiki:Coll-helppage}}|Hilfeseite über Bücher]].',
 	'coll-notfound_text' => 'Ihr Buch konnte nicht gefunden werden.',
+	'coll-download_notfound_text' => 'Die Datei, die Sie versuchen herunterzuladen, existiert nicht: Möglicherweise wurde sie gelöscht oder sie muss neu generiert werden.',
+	'coll-book_text' => 'Bestellen Sie eine gedruckte Buchausgabe bei unserem Print-on-Demand-Partner.',
+	'coll-invalid_podpartner_msg' => 'Die Angaben zum Print-on-Demand-Partner sind fehlerhaft. Bitte kontaktieren Sie den MediaWiki-Administrator.',
+	'coll-suggest_title' => 'Vorgeschlagene Seiten für Ihr Buch',
+	'coll-suggest_intro_text' => 'Die Vorschläge basieren auf die aktuell in Ihrem Buch vorhandenen Wikiseiten.
+Immer, wenn Sie auf die Hinzufügen- oder Entfernen-Buttons klicken, wird die Liste aktualisiert.',
+	'coll-suggest_your_book' => 'Ihr Buch',
+	'coll-suggest_article_add' => 'Die Seite <strong>$1</strong> wurde zu Ihrem Buch hinzugefügt ($2).',
+	'coll-suggest_article_remove' => 'Die Seite <strong>$1</strong> wurde aus Ihrem Buch entfernt ($2).',
 );
 
+/** Zazaki (Zazaki)
+ * @author Mirzali
+ * @author Xoser
+ */
+$messages['diq'] = array(
+	'coll-desc' => '[[Special:Book|Kitabî viraze]]',
+	'coll-book_creator_intro' => '<big>Pê "viraştoğê kitabî ti eşkeno yew kitabê ke pelanê wîkîyan ra virazo. Ti eşkeno kitab formatanê bînan de (mavacî PDF ya zi ODF) export bike ya zi kitab şipariş bike.</big>',
+	'coll-manage_your_book' => 'Kitabê xo îdare bike',
+	'coll-book_creator_help' => 'Qe enformasyonî [[{{MediaWiki:Coll-helppage}}|elê yardimî ke ser kitabî]] bivîne.',
+	'coll-start_book_creator' => 'Viraştoğê kitabî başli bike',
+	'coll-book_creator_continue' => 'Viraştoğê kitabî de dewam bike',
+	'coll-book_creator_disable_text' => "\"kitab viraştoğ'' qefiliyeno u kitabê ke ti ho ser hebîtiyeno ey wedariyeno.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Nuşteyê kitab viraştoğî',
+	'coll-collection' => 'Kitab',
+	'coll-collections' => 'Kitaban',
+	'coll-exclusion_category_title' => 'Çap meke',
+	'coll-print_template_prefix' => 'Çap bike',
+	'coll-print_template_pattern' => '$1/Çap bike',
+	'coll-unknown_subpage_title' => 'Senameyê binî yê nizanyeno',
+	'coll-unknown_subpage_text' => 'Ena binê sername yê [[Special:Book|Book]]î çini yo',
+	'coll-couldnotaddarticle_title' => 'Nieşkeno pelê wîkîyî de bike',
+	'coll-couldnotaddarticle_msg' => 'Ena pelê wîkîyî de nibiyo.',
+	'coll-couldnotremovearticle_title' => 'Nieşkeno pelê wîkîyî wedare',
+	'coll-couldnotremovearticle_msg' => 'Ena pelê wîkîyî niwedariya.',
+	'coll-noscript_text' => '<h1>JavaScript lazim o!</h1>
+<strong>Ya browserê tu de JavaScript çini yo ya zi JavaScript qefilnayiyo.
+Heta ti JavaScript a nike, ena pel hewl nihebitiyeno.</strong>',
+	'coll-savedbook_template' => 'kitab_keydke',
+	'coll-your_book' => 'Kitabê tu',
+	'coll-download_title' => 'Bar bike',
+	'coll-download_text' => 'Eka ti wazeno kitabê xo bar bike, yew formet weçine u goceke klik bike.',
+	'coll-download_as_text' => 'Eka ti wazeno kitabê xo formetê $1î de bar bike, goceke klik bike.',
+	'coll-download' => 'Bar bike',
+	'coll-format_label' => 'Formet:',
+	'coll-remove' => 'Wedarne',
+	'coll-show' => 'Bimucne',
+	'coll-move_to_top' => 'Ser rê şî',
+	'coll-move_up' => 'Yew sire şî cêr',
+	'coll-move_down' => 'Yew sire şî cor',
+	'coll-move_to_bottom' => 'Bin rê şî',
+	'coll-title' => 'Sername:',
+	'coll-subtitle' => 'Sernameyê binî',
+	'coll-contents' => 'Tedeesteyî',
+	'coll-drag_and_drop' => 'Pê drag & drop pelan u qisimanê wîkîyî sira bike',
+	'coll-create_chapter' => 'Qisim viraze',
+	'coll-sort_alphabetically' => 'Goreyê alfabeyî ra sira bike',
+	'coll-rename' => 'Reyna name bide',
+	'coll-new_chapter' => 'Qismê newî ra yew sername binuse',
+	'coll-rename_chapter' => 'Qism ra yew sernameyê newî binuse',
+	'coll-no_such_category' => 'Ena kategorî çini yo',
+	'coll-notitle_title' => 'Sernameyê pelî mizan çita wo.',
+	'coll-post_failed_title' => 'Telebê POSTî nibiyo',
+	'coll-post_failed_msg' => '$1 rê talebê POSTî nibiyo ($2).',
+	'coll-mwserve_failed_title' => 'Ğeletê servera render',
+	'coll-mwserve_failed_msg' => 'Servera render de yew ğelet biyo: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Server ra responseyê ğeletî',
+	'coll-empty_collection' => 'Kitabê vengî',
+	'coll-revision' => 'Revizyon: $1',
+	'coll-save_collection_title' => 'Kitabê xo qeyd ke',
+	'coll-save_collection_text' => 'Qe kitabê tu rê yew embar weçine:',
+	'coll-login_to_save' => 'Eka ti wazena kitabê xo bace biwane, ma rica keno [[Special:UserLogin|Cıkewt ya zi yew hesab vıraz]].',
+	'coll-personal_collection_label' => 'Kitabê şexsî:',
+	'coll-community_collection_label' => 'Kitabê cemaetî:',
+	'coll-save_collection' => 'Kitab qeyd biker',
+	'coll-save_category' => 'Kitabanê ke qeyd biyê înan kategorî rê de bîyo [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Pele zaten est o.
+Sero binusi?',
+	'coll-overwrite_text' => 'Yew pel ser nameyê [[:$1]]î zatî esto.
+Ti wazeno ey kitab pê kitabê xo rê bivurne?',
+	'coll-yes' => 'Ye',
+	'coll-no' => 'Ne',
+	'coll-load_overwrite_text' => 'Kitabê xo de zatî pelan esto. 
+Ti wazeno ser kitabê xo de binuse, kontendê newe ya zi bar kerdişê kitabî îptal bike?',
+	'coll-overwrite' => 'Sero binuş',
+	'coll-append' => 'Penî ra de biker',
+	'coll-cancel' => 'Îptal biker',
+	'coll-update' => 'Rocaniye',
+	'coll-limit_exceeded_title' => 'Kitab zaf gird o.',
+	'coll-limit_exceeded_text' => 'Kitabê tu zaf gird o.
+Ma nieşkenî pel de biker.',
+	'coll-rendering_title' => 'Render keno',
+	'coll-rendering_text' => '<p><strong>Yew di dekika vinder nika dokumant ho viraziyeno.</strong></p>
+
+<p><strong>Progress:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Ena pele gani xo xo otomatik rocaniye biko.
+Eka ena nihebitiyeno, ma rica keno browser xo reyna ciwane bike</p>',
+	'coll-rendering_status' => 'strong>Statu:</strong> $1',
+	'coll-rendering_article' => '(pelê wîkîyî: $1)',
+	'coll-rendering_page' => '(pel: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Enformasyonê nuştişê pele render keni',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Enformasyonê tope pele render keni',
+	'coll-rendering_finished_title' => 'Render kerdişî qediya',
+	'coll-rendering_finished_text' => '<strong>Ena dosyayê documentî viraziyayo.</strong>
+<strong>[$1 Dosya bar bike]</strong> komputerê xo.
+
+Notan:
+* Ti ena miwazeno? [[{{MediaWiki:Coll-helppage}}|Qe kitaban de pelê yardimî]] bivîne ke belki ti hewlyer keno.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Enformasyonê nuştişê pele render keni',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Enformasyonê tope pele render keni',
+	'coll-notfound_title' => 'Kitab nedîy',
+	'coll-notfound_text' => 'Pelê kitabî nedîy',
+	'coll-download_notfound_title' => 'Dosya nedîy',
+	'coll-download_notfound_text' => 'Dosyayê ke ti wazeno bar bike îtiya de çini yo:
+Belki o dosya esteriyayo u gani reyna viraziyayo.',
+	'coll-download_failed_title' => 'Bar kerdişî de ğeletî biyo',
+	'coll-download_failed_text' => 'Ma key dosya bar kerdî, yew ğelet biyo: $1',
+	'coll-is_cached' => '<ul><li>Ma yew versiyonê cachedî nidiy, aye ra ma gani render kerd.
+<a href="$1">Reyna Render bike.</a></li></ul>',
+	'coll-excluded-templates' => '* Templatanê ke ho ho caetegoriyê [[:Category:$1|$1]]î de înan de nikerd.',
+	'coll-blacklisted-templates' => '* Templatanê ke ho listeyê ma siyayî [[:$1]] de înan de nikerd.',
+	'coll-return_to_collection' => '<p>Reyna şi <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Kitab çap bike u hind sipariş bike',
+	'coll-book_text' => 'Kitab xo partnerê ma ra biger.',
+	'coll-order_from_pp' => 'Verqayt be $1',
+	'coll-about_pp' => 'Heqa $1',
+	'coll-invalid_podpartner_title' => 'Partnerê PODî ğeletî',
+	'coll-invalid_podpartner_msg' => 'Partnerê PODî raşt niyo.
+Ma rica keno îdarekarê MedîyaWîkîyî ra yew mesaj bişirav.',
+	'coll-license' => 'Lisans',
+	'coll-return_to' => 'Reyna şi [[:$1]]',
+	'coll-more_info' => 'Enformasyon bimucne',
+	'coll-hide_info' => 'Enformasyon binumne',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress enformasyon şîparîş bike',
+	'coll-suggest_title' => 'Kitabê tu rê pelanê tavsîyayî',
+	'coll-suggest_intro_text' => 'Tevsiyayan sero setanê pel ê wîkî newe ke kitabê tu de.
+Çi wext ti gocakanê de kerdişî u wedarayîşî ra klik bike, liste beno rocaniye.',
+	'coll-suggested_articles' => 'Tavsiyeyan',
+	'coll-suggest_reset_bans' => 'sifir bike',
+	'coll-suggest_reset_bans_tooltip' => 'Tavsiyayan ke vernî de wedariye înan bimucne',
+	'coll-suggest_add_selected' => 'Pelanê weçinaye de bike',
+	'coll-suggest_ban_selected' => 'Pelanê weçinaye wedarne',
+	'coll-suggest_your_book' => 'Kitabê tu',
+	'coll-suggest_show' => 'bimucne',
+	'coll-suggest_ban_tooltip' => 'Ena pel listeyê tavsiye rê wedarne',
+	'coll-suggest_article_ban' => 'Pel <strong>$1</strong> tavsiyeran ra wedarne ($2).',
+	'coll-suggest_article_add' => 'Pel <strong>$1</strong> kitabê tu rê de biyo ($2).',
+	'coll-suggest_article_remove' => 'Pel <strong>$1</strong> kitabê tu ra wedarnaye ($2).',
+	'coll-suggest_undo_tooltip' => 'Hereket reyna biyar',
+	'coll-suggest_undo' => 'reyna biyar',
+	'coll-load_local_book' => 'OK rê bitexne ke ti kitabê xo %TITLE% de %NUMPAGES% pelanê wikiyi esta ay de dewam bike. Cancel ra bitexne ke wedarne u yew kitabê newi ra dest pê bike.',
+	'right-collectionsaveasuserpage' => 'Kitab ze pelê karberî qeyd bike',
+	'right-collectionsaveascommunitypage' => 'Kitab ze pelê cemeatî qeyd bike',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
 	'coll-desc' => '[[Special:Book|Knigły napóraś]]',
+	'coll-book_creator_intro' => "<big>Z ''funkciju knigłow'' móžoš knigły napóraś, kótarež wopśimuju wikiboki twójeje wólby. Móžoš knigły do rozdźělnych formatow eksportěrowaś (na pśikład PDF abo ODF) abo wuśišćany eksemplar skazaś.",
+	'coll-manage_your_book' => 'Twóje knigły zrědowaś',
+	'coll-book_creator_help' => 'Glědaj [[{{MediaWiki:Coll-helppage}}|bok pomocy wó knigłach]] za dalšne informacije.',
+	'coll-start_book_creator' => 'Funkciju knigłow startowaś',
+	'coll-book_creator_continue' => 'Funkciju knigłow dalej wužywaś',
+	'coll-book_creator_disable_text' => "''Funkcija knigłow'' buźo se znjemóžnjaś a knigły, kótarež wobźěłujoš, buźo se z twójogo wobglědowaka wótpóraś.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst funkcije knigłow',
 	'coll-collection' => 'Knigły',
 	'coll-collections' => 'Knigły',
 	'coll-exclusion_category_title' => 'Wót śišća wuzamknuś',
 	'coll-print_template_prefix' => 'Śišćaś',
 	'coll-print_template_pattern' => '$1/Śišćaś',
-	'coll-create_a_book' => 'Knigły napóraś',
-	'coll-add_page' => 'Wikijowy bok pśidaś',
-	'coll-add_page_tooltip' => 'Aktualny wikibok twójim knigłam pśidaś',
-	'coll-remove_page' => 'Wikijowy bok wótwónoźeś',
-	'coll-remove_page_tooltip' => 'Aktualny wikibok z twójich knigłow wótpóraś',
-	'coll-add_category' => 'Kategoriju pśidaś',
-	'coll-add_category_tooltip' => 'Wšě nastawki w toś tej kategoriji twójim knigłam pśidaś',
-	'coll-load_collection' => 'Knigły zacytaś',
-	'coll-load_collection_tooltip' => 'Toś te knigły ako twóje aktualne knigły zacytaś',
-	'coll-show_collection' => 'Knigły pokazaś',
-	'coll-show_collection_tooltip' => 'Klikni, aby wobźěłał/ześěgnuł/skazał swóje knigły',
-	'coll-help_collections' => 'Pomoc ku knigłam',
-	'coll-help_collections_tooltip' => 'Pomoc wó funkciji knigłow pokazaś',
-	'coll-n_pages' => '$1 {{PLURAL:$1|bok|boka|boki|bokow}}',
 	'coll-unknown_subpage_title' => 'Njeznaty pódbok',
 	'coll-unknown_subpage_text' => 'Toś ten pódbok [[Special:Book|knigłow]] njeeksistěrujo',
-	'coll-printable_version_pdf' => 'PDF-wersija',
-	'coll-download_as' => 'Ako $1 ześěgnuś',
+	'coll-couldnotaddarticle_title' => 'Nastawk njejo se dał pśidaś',
+	'coll-couldnotaddarticle_msg' => 'Nastawk njejo se dał pśidaś.',
+	'coll-couldnotremovearticle_title' => 'Nastawk njejo se dał wótpóraś.',
+	'coll-couldnotremovearticle_msg' => 'Nastawk njejo se dał wótpóraś.',
 	'coll-noscript_text' => '<h1>JavaScript jo trěbny!</h1>
 <strong>Twój wobglědowak njepódpěrujo JavaScript abo JavaScript jo znjemóžnjony.
 Toś ten bok njebuźo pšawje funkcioněrowaś, tak dłujko až JavaScript njejo zmóžnjony.</strong>',
-	'coll-intro_text' => 'Napóraj a zastoj swój indiwiduelny wuběrk wikijowych bokow.<br />Glědaj [[{{MediaWiki:Coll-helppage}}]] ta dalšne informacije.',
-	'coll-helppage' => 'Help:Knigły',
-	'coll-bookscategory' => 'Knigły',
 	'coll-savedbook_template' => 'składowane_knigły',
 	'coll-your_book' => 'Twóje knigły',
 	'coll-download_title' => 'Ześěgnuś',
-	'coll-download_text' => 'Aby ześěgnuł wersiju offline, wubjeŕ format a klikni na tłocašk.',
-	'coll-download_as_text' => 'Aby ześěgnuł wersiju offline w formaś $1, klikni na tłocašk.',
+	'coll-download_text' => 'Aby ześěgnuł swóje knigły, wubjeŕ format a klikni na tłocašk.',
+	'coll-download_as_text' => 'Aby ześěgnuł swóje knigły we formaśe $1, klikni na tłocašk.',
 	'coll-download' => 'Ześěgnuś',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Wótwónoźeś',
@@ -1312,9 +2998,6 @@
 	'coll-drag_and_drop' => 'Pśesuni z myšku, aby pśerědował wikijowe boki a kapitle',
 	'coll-create_chapter' => 'Kapitel napóraś',
 	'coll-sort_alphabetically' => 'Alfabetiski sortěrowaś',
-	'coll-clear_collection' => 'Knigły wuprozniś',
-	'coll-clear_collection_tooltip' => 'Wše nastawki z twójich aktualnych knigłow wótpóraś',
-	'coll-clear_collection_confirm' => 'Coš napšawdu swóje knigły dopołnje wuprozniś?',
 	'coll-rename' => 'Pśemjeniś',
 	'coll-new_chapter' => 'Zapódaj mě za nowy kapitel',
 	'coll-rename_chapter' => 'Zapódaj nowe mě za kapitel',
@@ -1333,7 +3016,7 @@
 	'coll-personal_collection_label' => 'Wósobinske knigły:',
 	'coll-community_collection_label' => 'Knigły zgromaźeństwa:',
 	'coll-save_collection' => 'Knigły składowaś',
-	'coll-save_category' => 'Knigły składuju se w kategoriji [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Wšykne skłaźone knigły pśidawaju se kategoriji [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Bok eksistěrujo.
 Pśepisaś?',
 	'coll-overwrite_text' => 'Bok z mjenim [[:$1]] južo eksistěrujo.
@@ -1349,7 +3032,7 @@
 	'coll-limit_exceeded_title' => 'Knigły pśewjelike',
 	'coll-limit_exceeded_text' => 'Twóje knigły su pśewjelike.
 Njedaju se boki pśidaś.',
-	'coll-rendering_title' => 'Kreslenje',
+	'coll-rendering_title' => 'Twórjenje',
 	'coll-rendering_text' => '<p><strong>Pšosym pócakaj, mjaztym až se dokument napórajo.</strong></p>
 
 <p><strong>Póstup:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
@@ -1359,27 +3042,57 @@
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(wikijowy bok: $1)',
 	'coll-rendering_page' => '(bok: $1)',
-	'coll-rendering_finished_title' => 'Kreslenje dokóńcone',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Cerjenje infoteksta boka',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Cerjenje infoteksta zběrki',
+	'coll-rendering_finished_title' => 'Twórjenje dokóńcone',
 	'coll-rendering_finished_text' => '<strong>Dokumentowa dataja jo se napórała.</strong>
 <strong>[$1 Ześěgni dataju]</strong> do swójogo licadła.
 
 Pśispomnjeśa:
 * Njespokojom z wudaśim? Glědaj [[{{MediaWiki:Coll-helppage}}|bok pomocy wó zběrkach]] za móžnosći, jo  pólěpšyś.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst boka wuceriś',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst zběrki wuceriś',
 	'coll-notfound_title' => 'Knigły njenamakane',
 	'coll-notfound_text' => 'Bok knigłow njejo se dał namakaś.',
+	'coll-download_notfound_title' => 'Dataja njenamakana',
+	'coll-download_notfound_text' => 'Dataja, kótaruž wopytujoš ześěgowaś, njeeksistěrujo: Snaź jo se wulašowała a musy se znowego napóraś.',
+	'coll-download_failed_title' => 'Zmólka pśi ześěgnjenju',
+	'coll-download_failed_text' => 'Pśi ześěgnjenju dataje jo zmólka nastała: $1',
 	'coll-is_cached' => '<ul><li>Mjazyskładowana wersija dokumenta jo se namakała, tak až kreslenje njejo było trěbne. <a href="$1">Kreslenje wunuziś.</a></li></ul>',
 	'coll-excluded-templates' => '* Pśedłogi w kategoriji [[:Category:$1|$1]] su se wuzamknuli.',
 	'coll-blacklisted-templates' => '* Pśedłogi na cornej lisćinje [[:$1]] su se wuzamknuli.',
 	'coll-return_to_collection' => '<p>Slědk k <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Ako wuśišćane knigły skazaś',
-	'coll-book_text' => 'Wuśišćane knigły wót našogo parnera za śišć na pominanje skazaś:',
-	'coll-order_from_pp' => 'Knigły wót $1 skazaś',
+	'coll-book_text' => 'Wuśišćane knigły wót našogo partnera za śišć na pominanje skazaś:',
+	'coll-order_from_pp' => 'Pśeglěd pla $1',
 	'coll-about_pp' => 'Wó $1',
 	'coll-invalid_podpartner_title' => 'Njepłaśiwy partner za śišć na pominanje',
 	'coll-invalid_podpartner_msg' => 'Pódany partner za śišć na pominanje jo njepłaśiwy.
 Skontaktuj pšosym swójogo administratora MediaWiki',
 	'coll-license' => 'Licenca',
-	'coll-return_to' => 'Slědk k [[:$1]]',
+	'coll-return_to' => 'Slědk k bokoju [[:$1]]',
+	'coll-more_info' => 'Dalšne informacije pokazaś',
+	'coll-hide_info' => 'Informacije schowaś',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress skazańske informacije',
+	'coll-suggest_title' => 'Naraźone boki za twóje knigły',
+	'coll-suggest_intro_text' => 'Naraźenja bazěruju na aktualnu sajźbu wikibokow w twójich knigłach.
+Lisćina se aktualizěrujo, gažkuli kliknjoš na tłocašk "pśidaś" abo "wótpóraś".',
+	'coll-suggested_articles' => 'Naraźenja',
+	'coll-suggest_reset_bans' => 'slědk stajiś',
+	'coll-suggest_reset_bans_tooltip' => 'Do togo wótpórane naraźenja pokazaś',
+	'coll-suggest_add_selected' => 'Wubrane boki pśidaś',
+	'coll-suggest_ban_selected' => 'Wubrane boki wótpóraś',
+	'coll-suggest_your_book' => 'Twóje knigły',
+	'coll-suggest_show' => 'pokazaś',
+	'coll-suggest_ban_tooltip' => 'Toś ten bok z lisćiny naraźenjow wótpóraś',
+	'coll-suggest_article_ban' => 'Bok <strong>$1</strong> jo se z naraźenjow wótpórał ($2).',
+	'coll-suggest_article_add' => 'Bok <strong>$1</strong> jo se twójim knigłam pśidał ($2).',
+	'coll-suggest_article_remove' => 'Bok <strong>$1</strong> jo se z twójich knigłow wótpórał ($2).',
+	'coll-suggest_undo_tooltip' => 'Akciju slědk wześ',
+	'coll-suggest_undo' => 'slědk wześ',
+	'coll-load_local_book' => 'Klikni na W pórědku, aby pókšacowak z knigłami %TITLE%, kótaraž wopśimujo %NUMPAGES% {{PLURAL:%NUMPAGES%|wikibok|wikiboka|wikiboki|wikibokow}}. Klikni na Pśetergnuś, aby ju wulašował a startuj z proznymi knigłami.',
+	'right-collectionsaveasuserpage' => 'Knigły ako wužywarski bok składowaś',
+	'right-collectionsaveascommunitypage' => 'Knigły ako bok zgromaźeństwa składowaś',
 );
 
 /** Ewe (Eʋegbe)
@@ -1392,41 +3105,43 @@
 );
 
 /** Greek (Ελληνικά)
+ * @author AK
  * @author Consta
+ * @author Crazymadlover
+ * @author Evropi
  * @author Geraki
  * @author Omnipaedista
+ * @author ZaDiak
  */
 $messages['el'] = array(
 	'coll-desc' => '[[Special:Book|Δημιουργία βιβλίων]]',
+	'coll-book_creator_intro' => "<big>Με τη ''λειτουργία βιβλίου'' μπορείτε να δημιουργήσετε ένα βιβλίο που αποτελείται από βικισελίδες της επιλογής σας. Μπορείτε να εξάγετε το βιβλίο σε διαφορετικές μορφές (για παράδειγμα PDF ή ODF) ή να παραγγείλετε ένα εκτυπωμένο αντίγραφο.</big>",
+	'coll-manage_your_book' => 'Διαχείριση του βιβλίου σας',
+	'coll-book_creator_help' => 'Δείτε [[{{MediaWiki:Coll-helppage}}|τη σελίδα βοήθειας για τα βιβλία]] για περισσότερες πληροφορίες.',
+	'coll-start_book_creator' => 'Έναρξη δημιουργίας βιβλίου',
+	'coll-book_creator_continue' => 'Συνέχιση χρήσης του δημιουργού βιβλίων',
+	'coll-book_creator_disable_text' => "Ο ''δημιουργός βιβλίων'' θα απενεργοποιηθεί και το βιβλίο πάνω στο οποίο δουλεύετε θα αφαιρεθεί.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Κείμενο κατάστασης βιβλίου',
 	'coll-collection' => 'Βιβλίο',
 	'coll-collections' => 'Βιβλία',
 	'coll-exclusion_category_title' => 'Εξαίρεση στην εκτύπωση',
 	'coll-print_template_prefix' => 'Εκτύπωση',
 	'coll-print_template_pattern' => '$1/Εκτύπωση',
-	'coll-create_a_book' => 'Δημιουργία βιβλίου',
-	'coll-add_page' => 'Προσθήκη σελίδας wiki',
-	'coll-remove_page' => 'Αφαίρεση σελίδας wiki',
-	'coll-add_category' => 'Προσθήκη κατηγορίας',
-	'coll-load_collection' => 'Φόρτωση βιβλίου',
-	'coll-show_collection' => 'Εμφάνιση βιβλίου',
-	'coll-help_collections' => 'Βοήθεια βιβλίων',
-	'coll-n_pages' => '$1 {{PLURAL:$1|σελίδα|σελίδες}}',
 	'coll-unknown_subpage_title' => 'Άγνωστη υποσελίδα',
 	'coll-unknown_subpage_text' => 'Αυτή η υποσελίδα [[Special:Book|Βιβλίου]] δεν υπάρχει',
-	'coll-printable_version_pdf' => 'έκδοση PDF',
-	'coll-download_as' => 'Κατέβασμα ως $1',
+	'coll-couldnotaddarticle_title' => 'Δεν ήταν εφικτό να προστεθεί σελίδα βίκι.',
+	'coll-couldnotaddarticle_msg' => 'Η σελίδα βίκι δεν ήταν δυνατό να προστεθεί.',
+	'coll-couldnotremovearticle_title' => 'Δεν ήταν εφικτό να αφαιρεθεί αυτή η σελίδα βίκι',
+	'coll-couldnotremovearticle_msg' => 'Η σελίδα βίκι δεν μπορούσε να αφαιρεθεί.',
 	'coll-noscript_text' => '<h1>Χρειάζεται JavaScript!</h1>
 <strong>Ο περιηγητής σας δεν υποστηρίζει JavaScript ή η JavaScript έχει απενεργοποιηθεί.
 Αυτή η σελίδα δεν θα λειτουργεί κανονικά, εκτός και αν ενεργοποιηθεί η JavaScript.</strong>',
-	'coll-intro_text' => 'Δημιουργήστε και διαχειριστείτε την δική σας επιλογή σελίδων wiki.<br />Δείτε την [[{{MediaWiki:Coll-helppage}}|σελίδα βοήθειας για συλλογές]] για περισσότερες πληροφορίες.',
-	'coll-helppage' => 'Help:Βιβλία',
-	'coll-bookscategory' => 'Βιβλία',
 	'coll-savedbook_template' => 'αποθηκευμένο_βιβλίο',
 	'coll-your_book' => 'Το βιβλίο σας',
-	'coll-download_title' => 'Κατέβασμα',
-	'coll-download_text' => 'Για να κατεβάσετε μια έκδοση επιλέξτε την μορφή και πατήστε το κουμπί.',
-	'coll-download_as_text' => 'Για να κατεβάσετε μια έκδοση σε μορφή $1 πατήστε το κουμπί.',
-	'coll-download' => 'Κατέβασμα',
+	'coll-download_title' => 'Λήψη',
+	'coll-download_text' => 'Για να κατεβάσετε το βιβλίο σας επιλέξτε την μορφή και πατήστε το κουμπί.',
+	'coll-download_as_text' => 'Για να κατεβάσετε το βιβλίο σας σε μορφή $1 πατήστε το κουμπί.',
+	'coll-download' => 'Λήψη',
 	'coll-format_label' => 'Μορφή:',
 	'coll-remove' => 'Αφαίρεση',
 	'coll-show' => 'Εμφάνιση',
@@ -1440,8 +3155,6 @@
 	'coll-drag_and_drop' => 'Χρησιμοποιήστε drag & drop για να ταξινομήσετε σελίδες wiki και κεφάλαια',
 	'coll-create_chapter' => 'Δημιουργία κεφαλαίου',
 	'coll-sort_alphabetically' => 'Ταξινόμηση αλφαβητικά',
-	'coll-clear_collection' => 'Εκκαθάριση βιβλίου',
-	'coll-clear_collection_confirm' => 'Αλήθεια θέλετε να καθαρίσετε εντελώς το βιβλίο σας;',
 	'coll-rename' => 'Μετονομασία',
 	'coll-new_chapter' => 'Γράψτε όνομα για το νέο κεφάλαιο',
 	'coll-rename_chapter' => 'Γράψτε νέο όνομα για το κεφάλαιο',
@@ -1460,7 +3173,7 @@
 	'coll-personal_collection_label' => 'Προσωπικό βιβλίο:',
 	'coll-community_collection_label' => 'Κοινοτικό βιβλίο:',
 	'coll-save_collection' => 'Αποθήκευση βιβλίου',
-	'coll-save_category' => 'Όλα τα βιβλία αποθηκεύονται στην κατηγορία [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Όλα τα αποθηκευμένα βιβλία προστίθενται στην κατηγορία [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Η σελίδα υπάρχει.
 Επικάλυψη;',
 	'coll-overwrite_text' => 'Μια σελίδα με το όνομα [[:$1]] υπάρχει ήδη.
@@ -1486,6 +3199,8 @@
 	'coll-rendering_status' => '<strong>Πρόοδος:</strong> $1',
 	'coll-rendering_article' => '(σελίδα wiki: $1)',
 	'coll-rendering_page' => '(σελίδα: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Μορφοποίηση κειμένου πληροφοριών σελίδας',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Μορφοποίηση κειμένου πληροφοριών συλλογής',
 	'coll-rendering_finished_title' => 'Η μορφοποίηση ολοκληρώθηκε',
 	'coll-rendering_finished_text' => '<strong>Το αρχείο εγγράφου έχει δημιουργηθεί.</strong>
 <strong>[$1 Κατεβάστε το αρχείο]</strong> στον υπολογιστή σας.
@@ -1494,55 +3209,84 @@
 * Δεν είστε ικανοποιημένος με το αποτέλεσμα; Δείτε την [[{{MediaWiki:Coll-helppage}}|σελίδα βοήθειας για τα βιβλία]] για πιθανούς τρόπους να το βελτιώσετε.',
 	'coll-notfound_title' => 'Το βιβλίο δεν βρέθηκε',
 	'coll-notfound_text' => 'Δεν βρέθηκε η σελίδα βιβλίου.',
+	'coll-download_notfound_title' => 'Το αρχείο δεν βρέθηκε',
+	'coll-download_notfound_text' => 'Το αρχείο που προσπαθείτε να κατεβάσετε δεν υπάρχει: Ίσως έχει διαγραφεί και πρέπει να επαναπαραχθεί.',
+	'coll-download_failed_title' => 'Σφάλμα κατά το κατέβασμα',
+	'coll-download_failed_text' => 'Προέκυψε σφάλμα κατά το κατέβασμα του αρχείου: $1',
 	'coll-is_cached' => '<ul><li>Μια αποθηκευμένη έκδοση του εγγράφου έχει βρεθεί, οπότε καμία μορφοποίηση δεν ήταν απαραίτητη. <a href="$1">Επιβολή επαναμορφοποίησης .</a></li></ul>',
 	'coll-excluded-templates' => '* Πρότυπα στην κατηγορία [[:Category:$1|$1]] έχουν εξαιρεθεί.',
 	'coll-blacklisted-templates' => '* Πρότυπα στην μαύρη λίστα [[:$1]] έχουν εξαιρεθεί.',
 	'coll-return_to_collection' => '<p>Επιστροφή στο <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Παραγγελία ως εκτυπωμένο βιβλίο',
 	'coll-book_text' => 'Πάρτε ένα τυπωμένο βιβλίο από τον συνεργάτη μας εκτύπωσης-κατά-παραγγελία:',
-	'coll-order_from_pp' => 'Παραγγελία βιβλίου από το $1',
+	'coll-order_from_pp' => 'Προεπισκόπηση με $1',
 	'coll-about_pp' => 'Σχετικά με το $1',
 	'coll-invalid_podpartner_title' => 'Ανύπαρκτος συνεργάτης ΕΚΠ',
 	'coll-invalid_podpartner_msg' => 'Ο ζητούμενος συνεργάτης ΕΚΠ δεν υπάρχει.
 Παρακαλούμε επικοινωνήστε με ένα διαχειριστή του MediaWiki.',
 	'coll-license' => 'Άδεια',
 	'coll-return_to' => 'Επιστροφή στο [[:$1]]',
+	'coll-more_info' => 'Εμφάνιση περισσότερων πληροφοριών',
+	'coll-hide_info' => 'Απόκρυψη πληροφοριών',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress απαίτηση για πληροφόρηση',
+	'coll-suggest_title' => 'Προτεινόμενες σελίδες για το βιβλίο σας',
+	'coll-suggest_intro_text' => 'Οι υποδείξεις βασίζονται στην τρέχουσα ρύθμιση βικισελίδων στο βιβλίο σας.
+Η λίστα θα ανανεώνεται κάθε φορά που θα κάνετε κλικ στα κουμπιά προσθήκης και αφαίρεσης.',
+	'coll-suggested_articles' => 'Υποδείξεις',
+	'coll-suggest_reset_bans' => 'ρύθμιση ξανά',
+	'coll-suggest_reset_bans_tooltip' => 'Εμφάνιση προτάσεων που έχουν αφαιρεθεί προηγουμένως',
+	'coll-suggest_add_selected' => 'Προσθήκη επιλεγμένων σελίδων',
+	'coll-suggest_ban_selected' => 'Αφαίρεση επιλεγμένων σελίδων',
+	'coll-suggest_your_book' => 'Το βιβλίο σας',
+	'coll-suggest_show' => 'προβολή',
+	'coll-suggest_ban_tooltip' => 'Αφαιρέστε αυτή τη σελίδα από τον κατάλογο των προτάσεων',
+	'coll-suggest_article_ban' => 'Η σελίδα <strong>$1</strong> έχει αφαιρεθεί από τις προτάσεις ($2).',
+	'coll-suggest_article_add' => 'Η σελίδα <strong>$1</strong> έχει προστεθεί στο βιβλίο σας ($2).',
+	'coll-suggest_article_remove' => 'Η σελίδα <strong>$1</strong> έχει αφαιρεθεί από το βιβλίο σας ($2).',
+	'coll-suggest_undo_tooltip' => 'Αναίρεση αυτής της ενέργειας',
+	'coll-suggest_undo' => 'αναίρεση',
+	'coll-load_local_book' => "Κάντε κλικ στο κουμπί Εντάξει για να συνεχίσετε με το βιβλίο %TITLE% το οποίο περιέχει %NUMPAGES% βικισελίδες. Κάντε κλικ στο κουμπί Άκυρο για να το διαγράψετε και να ξεκινήσετε μ' ένα άδειο βιβλίο.",
+	'right-collectionsaveasuserpage' => 'Αποθήκευση βιβλίων ως σελίδας χρήστη',
+	'right-collectionsaveascommunitypage' => 'Αποθήκευση βιβλίων ως σελίδας κοινότητας',
 );
 
 /** Esperanto (Esperanto)
+ * @author Airon90
  * @author Amikeco
+ * @author ArnoLagrange
+ * @author Castelobranco
+ * @author Petrus Adamus
  * @author Yekrats
+ * @author Александр Сигачёв
  */
 $messages['eo'] = array(
 	'coll-desc' => '[[Special:Book|Krei librojn]]',
+	'coll-book_creator_intro' => "<big>Per la ''libro-kreilo'' vi povas krei libron enhavantan vikipaĝojn de via elekto. Vi povas eksporti la libro en variaj formoj (ekz-e PDF aŭ ODF) aŭ peti presitan kopion.</big>",
+	'coll-manage_your_book' => 'Administri vian libron',
+	'coll-book_creator_help' => 'Vidi [[{{MediaWiki:Coll-helppage}}|la help-paĝon pri libroj]] por pliaj informoj.',
+	'coll-start_book_creator' => 'Komenci libro-kreilon',
+	'coll-book_creator_continue' => 'Daŭre uzante libro-kreilon',
+	'coll-book_creator_disable_text' => "''Libra kreilo'' estos malŝalta kaj la libro kiun vi laboras estos forigita.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Teksto por libra reĝimo',
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libroj',
 	'coll-exclusion_category_title' => 'Ekskludi de printado',
 	'coll-print_template_prefix' => 'Printi',
 	'coll-print_template_pattern' => '$1/Printi',
-	'coll-create_a_book' => 'Krei libron',
-	'coll-add_page' => 'Aldoni vikipaĝon',
-	'coll-remove_page' => 'Forigi vikipaĝon',
-	'coll-add_category' => 'Aldoni kategorion',
-	'coll-load_collection' => 'Alŝuti libron',
-	'coll-show_collection' => 'Montri libron',
-	'coll-help_collections' => 'Helpo pri libroj',
-	'coll-n_pages' => '$1 {{PLURAL:$1|paĝo|paĝoj}}',
 	'coll-unknown_subpage_title' => 'Nekonata subpaĝo',
-	'coll-unknown_subpage_text' => 'Ĉi tiu subpaĝo de [[Special:Book:Libro]] ne ekzistas',
-	'coll-printable_version_pdf' => 'PDF-versio',
-	'coll-download_as' => 'Elŝuti kiel $1',
+	'coll-unknown_subpage_text' => 'Ĉi tiu subpaĝo de [[Special:Book|Libro]] ne ekzistas',
+	'coll-couldnotaddarticle_title' => 'Ne eblis aldoni vikian paĝon',
+	'coll-couldnotaddarticle_msg' => 'Ne eblis aldoni ĉi tiun vikian paĝon.',
+	'coll-couldnotremovearticle_title' => 'Ne povis forigi vikipaĝon',
+	'coll-couldnotremovearticle_msg' => 'Ne eblis forigi ĉi tiun vikian paĝon.',
 	'coll-noscript_text' => '<h1>JavaScript-o estas deviga!<h1>
 <strong>Via retumilo ne subtenas JavaScript-on aŭ JavaScript-o estis malŝaltita.
 Ĉi tiu paĝo ne funkcius bone, ĝis JavaScript-o estas ŝaltita.</strong>',
-	'coll-intro_text' => 'Krei kaj administri individuan selektaĵon de vikiaj paĝoj.<br />Vidu [[{{MediaWiki:Coll-helppage}}]] por plua informo.',
-	'coll-helppage' => 'Help:Libroj',
-	'coll-bookscategory' => 'Libroj',
 	'coll-savedbook_template' => 'konservita_libro',
 	'coll-your_book' => 'Via libro',
 	'coll-download_title' => 'Elŝuti',
-	'coll-download_text' => 'Por elŝuti malkonektan version, elektu formato kaj klaku la butonon.',
-	'coll-download_as_text' => 'Por elŝuti version en formato $1, klaku la butonon.',
+	'coll-download_text' => 'Por elŝuti vian libron, elektu formato kaj klaku la butonon.',
+	'coll-download_as_text' => 'Por elŝuti vian libron en formato $1, klaku la butonon.',
 	'coll-download' => 'Elŝuto',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Forigi',
@@ -1557,8 +3301,6 @@
 	'coll-drag_and_drop' => 'Uzu musan tren-kaj-maltenon por reordigi vikiajn paĝojn kaj ĉapitrojn',
 	'coll-create_chapter' => 'Krei ĉapitron',
 	'coll-sort_alphabetically' => 'Ordigi laŭ alfabeto',
-	'coll-clear_collection' => 'Forviŝi libron',
-	'coll-clear_collection_confirm' => 'Ĉu vi ja volas plene forviŝi vian libron?',
 	'coll-rename' => 'Alinomigi',
 	'coll-new_chapter' => 'Enigi nomon por nova ĉapitro',
 	'coll-rename_chapter' => 'Enigi novan nomon por ĉapitro',
@@ -1577,7 +3319,7 @@
 	'coll-personal_collection_label' => 'Propra libro:',
 	'coll-community_collection_label' => 'Komuna libro:',
 	'coll-save_collection' => 'Konservi libron',
-	'coll-save_category' => 'Ĉiuj libroj estas konservitaj en la [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Ĉiuj konservitaj libroj estas aldonitaj al la kategorio [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Paĝo ekzistas. Ĉu anstataŭigi?',
 	'coll-overwrite_text' => 'Paĝo kun la nomo [[:$1]] jam ekzistas.
 Ĉu vi volas anstatŭigi ĝin kun via kolekto?',
@@ -1585,7 +3327,7 @@
 	'coll-no' => 'Ne',
 	'coll-load_overwrite_text' => 'Vi jam havas iujn paĝojn en via libro.
 Ĉu vi volas anstataŭigi vian nunan libron, aldoni la novan enhavon, aŭ nuligi ŝarĝadon de ĉi tiu libro?',
-	'coll-overwrite' => 'Anstataŭigu',
+	'coll-overwrite' => 'Anstataŭigi',
 	'coll-append' => 'Aldoni',
 	'coll-cancel' => 'Nuligi',
 	'coll-update' => 'Ĝisdatigi',
@@ -1593,36 +3335,66 @@
 	'coll-limit_exceeded_text' => 'Via libro estas tro granda.
 Neniom da pliaj paĝoj estas aldoneblaj.',
 	'coll-rendering_title' => 'Generante',
-	'coll-rendering_text' => '<p><strong>Bonvolu atendi dum la dokumento generiĝis.</strong></p>
+	'coll-rendering_text' => '<p><strong>Bonvolu atendi dum la dokumento generiĝas.</strong></p>
 
 <p><strong>Progreso:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
-<p>Ĉi tiu paĝo aŭtomatike refreŝigu kelksekunde.
+<p>Ĉi tiu paĝo aŭtomate refreŝiĝas ĉiuj kelksekundoj.
 Se ne funkcias, bonvolu klaki refreŝigo-butonon de via retumilo.</p>',
 	'coll-rendering_status' => '<strong>Statuso:</strong> $1',
 	'coll-rendering_article' => '(vikipaĝo: $1)',
 	'coll-rendering_page' => '(paĝo: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Generanta helpan paĝon',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Generanta helpan paĝon pri kolektoj',
 	'coll-rendering_finished_title' => 'Generado finiĝis.',
 	'coll-rendering_finished_text' => '<strong>La dokumento estis generita.</strong>
 <strong>[$1 Elŝuti la dosieron]</strong> al via komputilo.
 
 Notoj:
 * Ĉu la eligo ne plaĉus al vi? Vidu [[{{MediaWiki:Coll-helppage}}|la helpan paĝon pri kolektoj]] por fojoj por plibonigi ĝin.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informoteksto pri bildigante paĝon',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informoteksto pri bildigante kolekton',
 	'coll-notfound_title' => 'Libro ne trovita',
-	'coll-notfound_text' => 'Ne eblas trovi libran paĝon.',
+	'coll-notfound_text' => 'Ne povis trovi libran paĝon.',
+	'coll-download_notfound_title' => 'Dosiero ne trovita',
+	'coll-download_notfound_text' => 'La dosiero kiun vi celas elŝuti ne ekzistas. Eble ĝi estis forigita kaj bezonas esti regenerata.',
+	'coll-download_failed_title' => 'Eraro dum elŝuto',
+	'coll-download_failed_text' => 'Estis eraro kiam elŝutante la dosieron: $1',
 	'coll-is_cached' => '<ul><li>Kaŝmemora versio de la dokumento estis trovita, tial bildigado ne bezonis.<a href="$1">Devigi re-bildigadon.</a></li></ul>',
 	'coll-excluded-templates' => '* Ŝablonoj en kategorio [[:Category:$1|$1]] estis ekskluzivita.',
 	'coll-blacklisted-templates' => '* Ŝablonoj en nigralisto [[:$1]] estis malebligitaj.',
 	'coll-return_to_collection' => '<p>Reiru al <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Mendi kiel presitan libron',
 	'coll-book_text' => 'Akiri presitan libron de nia ek-eldoneja partnero:',
-	'coll-order_from_pp' => 'Mendi libron de $1',
+	'coll-order_from_pp' => 'Antaŭvidi kun $1',
 	'coll-about_pp' => 'Pri $1',
-	'coll-invalid_podpartner_title' => 'Nevalida ek-eldoneja partnero',
-	'coll-invalid_podpartner_msg' => 'La donita ek-eldoneja partnero estas nevalida.
+	'coll-invalid_podpartner_title' => 'Malvalida ek-eldoneja partnero',
+	'coll-invalid_podpartner_msg' => 'La donita ek-eldoneja partnero estas malvalida.
 Bonvolu kontakti vian administranton de MediaWiki.',
-	'coll-license' => 'Licenco',
+	'coll-license' => 'Permesilo',
 	'coll-return_to' => 'Reiri al [[:$1]]',
+	'coll-more_info' => 'Montri plian informon',
+	'coll-hide_info' => 'Kaŝi informon',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress mendo-informo',
+	'coll-suggest_title' => 'Sugestitaj paĝoj por via libro',
+	'coll-suggest_intro_text' => 'Sugestoj estas bazita de la nuna aro de vikipaĝoj en via libro.
+La listo estas ĝisdatigita iam ajn vi klakas la butonojn aldoni aŭ forigi.',
+	'coll-suggested_articles' => 'Sugestoj',
+	'coll-suggest_reset_bans' => 'restarigi',
+	'coll-suggest_reset_bans_tooltip' => 'Montri antaŭe forigitajn sugestojn',
+	'coll-suggest_add_selected' => 'Aldoni elektitajn paĝojn',
+	'coll-suggest_ban_selected' => 'Forigi elektitajn paĝojn',
+	'coll-suggest_your_book' => 'Via libro',
+	'coll-suggest_show' => 'montri',
+	'coll-suggest_ban_tooltip' => 'Forigi ĉi tiun paĝon el la listo de sugestoj',
+	'coll-suggest_article_ban' => 'Paĝo <strong>$1</strong> estis forigita de la sugestoj ($2).',
+	'coll-suggest_article_add' => 'Paĝo <strong>$1</strong> estis aldonita al via libro ($2).',
+	'coll-suggest_article_remove' => 'Paĝo <strong>$1</strong> estis forigita de via libro ($2).',
+	'coll-suggest_undo_tooltip' => 'Malfari ĉi tiun agon',
+	'coll-suggest_undo' => 'malfari',
+	'coll-load_local_book' => 'Alklaki OK por daŭrigi kun via libro %TITOLO% kiu enhavas %NUMPAGES% viki-paĝojn. Alklaki "Nuligi" por komenci kun malplena libro.',
+	'right-collectionsaveasuserpage' => 'Konservi librojn kiel uzanto-paĝo',
+	'right-collectionsaveascommunitypage' => 'Konservi librojn kiel komunuma paĝo',
 );
 
 /** Spanish (Español)
@@ -1632,39 +3404,44 @@
  * @author Imre
  * @author Jatrobat
  * @author Lin linao
+ * @author Locos epraix
+ * @author Manuelt15
+ * @author McDutchie
+ * @author Mor
+ * @author Pertile
+ * @author Platonides
  * @author Remember the dot
  * @author Sanbec
+ * @author Translationista
  */
 $messages['es'] = array(
 	'coll-desc' => '[[Special:Book|Crear libros]]',
+	'coll-book_creator_intro' => "<big>Con el ''creador de libros'' puedes crear un libro consistente de páginas wiki de tu preferencia. Puedes exportar tu libro en diferentes formatos (por ejemplo PDF o ODF) u ordenar una copia impresa.</big>",
+	'coll-manage_your_book' => 'Gestionar tu libro',
+	'coll-book_creator_help' => 'Para más información véase [[{{MediaWiki:Coll-helppage}}|la página de ayuda acerca de los libros]].',
+	'coll-start_book_creator' => 'Comenzar creador de libro',
+	'coll-book_creator_continue' => 'Continuar usando creador de libro',
+	'coll-book_creator_disable_text' => "''Creador de libros'' se descargará y el libro en que estás trabajando será eliminado.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texto en modo libro',
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libros',
 	'coll-exclusion_category_title' => 'Excluir al imprimir',
 	'coll-print_template_prefix' => 'Imprimir',
 	'coll-print_template_pattern' => '$1/Imprimir',
-	'coll-create_a_book' => 'Crear un libro',
-	'coll-add_page' => 'Añadir página wiki',
-	'coll-remove_page' => 'Quitar página wiki',
-	'coll-add_category' => 'Añadir categoría',
-	'coll-load_collection' => 'Cargar libro',
-	'coll-show_collection' => 'Mostrar libro',
-	'coll-help_collections' => 'Ayuda de libros',
-	'coll-n_pages' => '$1 {{PLURAL:$1|página|páginas}}',
 	'coll-unknown_subpage_title' => 'Subpágina desconocida',
 	'coll-unknown_subpage_text' => 'Esta subpágina del [[Special:Book|libro]] no existe',
-	'coll-printable_version_pdf' => 'Versión PDF',
-	'coll-download_as' => 'Descargar como $1',
+	'coll-couldnotaddarticle_title' => 'No pudo agregar página wiki',
+	'coll-couldnotaddarticle_msg' => 'La página wiki no pudo ser agregada.',
+	'coll-couldnotremovearticle_title' => 'No es posible eliminar la página wiki',
+	'coll-couldnotremovearticle_msg' => 'La página wiki no pudo ser eliminada.',
 	'coll-noscript_text' => '<h1>¡Se necesita JavaScript!</h1>
 <strong>Tu navegador no permite JavaScript o está deshabilitado.
 Esta página no funcionará correctamente mientras no esté habilitado.</strong>',
-	'coll-intro_text' => 'Crear y gestionar tu selección individual de páginas wiki.<br />Lee [[{{MediaWiki:Coll-helppage}}]] para más información.',
-	'coll-helppage' => 'Help:Libros',
-	'coll-bookscategory' => 'Libros',
 	'coll-savedbook_template' => 'libro_guardado',
 	'coll-your_book' => 'Tu libro',
 	'coll-download_title' => 'Descargar',
-	'coll-download_text' => 'Para descargar una versión fuera de línea, elige un formato y pulsa el botón.',
-	'coll-download_as_text' => 'Oprimir el botón para obtener una versión en formato $1.',
+	'coll-download_text' => 'Para descargar tu libro escoge un formato y pulsa el botón.',
+	'coll-download_as_text' => 'Para descargar tu libro en el formato $1 pulsa el botón.',
 	'coll-download' => 'Descargar',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Quitar',
@@ -1679,8 +3456,6 @@
 	'coll-drag_and_drop' => "Usa arrastrar y soltar (''drag & drop'') para reordenar capítulos y páginas wiki",
 	'coll-create_chapter' => 'Crear capítulo',
 	'coll-sort_alphabetically' => 'Ordenar alfabéticamente',
-	'coll-clear_collection' => 'Vaciar libro',
-	'coll-clear_collection_confirm' => '¿Realmente quieres borrar completamente su libro?',
 	'coll-rename' => 'Renombrar',
 	'coll-new_chapter' => 'Introducir nombre del capítulo nuevo',
 	'coll-rename_chapter' => 'Introducir un nombre nuevo para el capítulo',
@@ -1694,12 +3469,12 @@
 	'coll-empty_collection' => 'libro vacío',
 	'coll-revision' => 'Revisión: $1',
 	'coll-save_collection_title' => 'Guardar y compartir tu libro',
-	'coll-save_collection_text' => 'Escoger una localización:',
+	'coll-save_collection_text' => 'Escoge una localización:',
 	'coll-login_to_save' => 'Si quieres guardar libros para uso posterior, por favor [[Special:UserLogin|identifícate o crea una cuenta]].',
 	'coll-personal_collection_label' => 'libro personal:',
 	'coll-community_collection_label' => 'libro de la comunidad:',
 	'coll-save_collection' => 'Guardar libro',
-	'coll-save_category' => 'Los libros están guardadas en la categoría [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Todos los libros grabados están agregados a la categoría [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'La página ya existe.
 ¿Sobreescribir?',
 	'coll-overwrite_text' => 'Ya existe una página con el nombre [[:$1]].
@@ -1713,7 +3488,7 @@
 	'coll-cancel' => 'Cancelar',
 	'coll-update' => 'Actualizar',
 	'coll-limit_exceeded_title' => 'libro demasiado grande',
-	'coll-limit_exceeded_text' => 'Tu libro de páginas es demasiado grande.
+	'coll-limit_exceeded_text' => 'Tu libro es demasiado grande.
 No se pueden añadir más páginas.',
 	'coll-rendering_title' => 'Procesando',
 	'coll-rendering_text' => '<p><strong>Por favos, espera mientras se genera el documento.</strong></p>
@@ -1722,95 +3497,229 @@
 
 <p>Esta página se refrescará automáticamente cada pocos segundos.
 Si no funciona, pulsa el botón de refrescar de tu navegador.</p>',
-	'coll-rendering_status' => '<strong>Estatus:</strong> $1',
+	'coll-rendering_status' => '<strong>Estado:</strong> $1',
 	'coll-rendering_article' => '(página wiki: $1)',
 	'coll-rendering_page' => '(página: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ Procesando texto de información de la página',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ Procesando texto de información de la colección',
 	'coll-rendering_finished_title' => 'Proceso finalizado',
 	'coll-rendering_finished_text' => '<strong>Se ha generado el documento.</strong>
-<strong>[$1 Baja el archivo]</strong> a tu ordenador.
+<strong>[$1 Descarga el archivo]</strong>.
 
 Notas:
-* ¿No estás satisfecho con el resultado? Mira [[{{MediaWiki:Coll-helppage}}|la página de ayuda sobre compilaciones]] para ver las  posibilidades de mejorarlo.',
+* ¿No estás satisfecho con el resultado? Mira [[{{MediaWiki:Coll-helppage}}|la página de ayuda sobre libros]] para ver las  posibilidades de mejorarlo.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo de la página de renderización',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo de la colección de renderización',
 	'coll-notfound_title' => 'No se encuentra el libro',
 	'coll-notfound_text' => 'No se encuentra la página de libro.',
+	'coll-download_notfound_title' => 'Archivo no encontrado',
+	'coll-download_notfound_text' => 'El archivo que estás tratando de descargar no existe: Puede ser que haya sido borrado y necesite ser regenerado.',
+	'coll-download_failed_title' => 'Error durante descarga',
+	'coll-download_failed_text' => 'Hubo un error cuando se descargaba el archivo: $1',
 	'coll-is_cached' => '<ul><li>Se ha encontrado una versión procesada del documento, por lo que no es necesario procesarlo. <a href="$1">Forzar reprocesado.</a></li></ul>',
 	'coll-excluded-templates' => '* Se han excluido las plantillas de la categoría [[:Category:$1|$1]].',
 	'coll-blacklisted-templates' => '* Se han excluido las plantillas [[:$1]] por estar en la lista negra.',
 	'coll-return_to_collection' => '<p>Volver a <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Solicitar el libro impreso',
 	'coll-book_text' => 'Obtener un libro impreso de uno de nuestros socios para solicitudes de impresión:',
-	'coll-order_from_pp' => 'Solicitar libro a $1',
+	'coll-order_from_pp' => 'Previsualizar con $1',
 	'coll-about_pp' => 'Acerca de $1',
 	'coll-invalid_podpartner_title' => 'Socio de solicitudes de impresión (POD) no válido',
 	'coll-invalid_podpartner_msg' => 'El socio para solicitudes de impresión (POD) indicado no es válido.
 Por favor, contacta con tu administrador MediaWiki.',
 	'coll-license' => 'Licencia',
 	'coll-return_to' => 'Volver a [[:$1]].',
+	'coll-more_info' => 'Mostrar más información',
+	'coll-hide_info' => 'Ocultar información',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress ordenar información',
+	'coll-suggest_title' => 'Páginas sugeridas para tu libro',
+	'coll-suggest_intro_text' => 'Las sugerencias están basadas en el conjunto actual de páginas wiki de tu libro.
+La lista se actualiza cada vez que haces click en los botones de agregar o quitar.',
+	'coll-suggested_articles' => 'Sugerencias',
+	'coll-suggest_reset_bans' => 'reestablecer',
+	'coll-suggest_reset_bans_tooltip' => 'Mostrar sugerencias previamente eliminadas',
+	'coll-suggest_add_selected' => 'Agregar páginas seleccionadas',
+	'coll-suggest_ban_selected' => 'Quitar las páginas seleccionadas',
+	'coll-suggest_your_book' => 'Tu libro',
+	'coll-suggest_show' => 'mostrar',
+	'coll-suggest_ban_tooltip' => 'Quitar esta página de la lista de sugerencias',
+	'coll-suggest_article_ban' => 'La página <strong>$1</strong> ha sido eliminada de las sugerencias ($2).',
+	'coll-suggest_article_add' => 'Página <strong>$1</strong> ha sido agregada a tu libro ($2).',
+	'coll-suggest_article_remove' => 'La página <strong>$1</strong> ha sido eliminada de tu libro ($2).',
+	'coll-suggest_undo_tooltip' => 'Deshacer esta acción',
+	'coll-suggest_undo' => 'deshacer',
+	'coll-load_local_book' => 'Haz click en OK para continuar con tu libro %TITLE% que contiene %NUMPAGES% página wiki. Haz click en Cancelar para borrarlo y comenzar con un libro vacío.',
+	'right-collectionsaveasuserpage' => 'Grabar libros como página de usuario',
+	'right-collectionsaveascommunitypage' => 'Grabar libros como página de la comunidad',
 );
 
 /** Estonian (Eesti)
  * @author Avjoska
+ * @author Pikne
  */
 $messages['et'] = array(
+	'coll-desc' => 'Võimaldab [[Special:Book|raamatuid luua]].',
+	'coll-book_creator_intro' => '<big>Raamatuloojaga saad luua suvalistest viki lehekülgedest koosneva raamatu. Saad oma raamatu erinevatesse vormingutesse (näiteks PDF või ODF) eksportida või tellida trükitud eksemplari.</big>',
+	'coll-manage_your_book' => 'Raamatu haldamine',
+	'coll-book_creator_help' => 'Täiendava teabe jaoks vaata [[{{MediaWiki:Coll-helppage}}|raamatute abilehte]].',
+	'coll-start_book_creator' => 'Käivita raamatulooja',
+	'coll-book_creator_continue' => 'Jätka raamatulooja kasutamist',
+	'coll-book_creator_disable_text' => "''Raamatulooja'' lülitatakse välja ja raamat, mille loomise kallal töötad, eemaldatakse.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Raamatulooja tekst',
+	'coll-collection' => 'Raamat',
+	'coll-collections' => 'Raamatud',
+	'coll-exclusion_category_title' => 'Trükikeeluga',
 	'coll-print_template_prefix' => 'Prindi',
-	'coll-create_a_book' => 'Loo raamat',
-	'coll-add_page' => 'Lisa wiki lehekülg',
-	'coll-add_category' => 'Lisa kategooria',
+	'coll-print_template_pattern' => '$1/Trükk',
+	'coll-unknown_subpage_title' => 'Tundmatu alaleht',
+	'coll-unknown_subpage_text' => 'Sellist [[Special:Book|raamatu]] alamlehekülge pole.',
+	'coll-couldnotaddarticle_title' => 'Vikilehekülge ei saa lisada',
+	'coll-couldnotaddarticle_msg' => 'Vikilehekülge ei saa lisada.',
+	'coll-couldnotremovearticle_title' => 'Vikilehekülge ei saa eemaldada',
+	'coll-couldnotremovearticle_msg' => 'Vikilehekülge ei saa eemaldada.',
+	'coll-noscript_text' => '<h1>Vaja on JavaScripti!</h1>
+<strong>Sinu veebilehitsejal puudub JavaScripti tugi või JavaScript on välja lülitatud.
+See lehekülg ei tööta korralikult, kui JavaScript pole lubatud.</strong>',
+	'coll-savedbook_template' => 'Talletatud raamat',
+	'coll-your_book' => 'Sinu raamat',
+	'coll-download_title' => 'Allalaadimine',
+	'coll-download_text' => 'Raamatu allalaadimiseks vali vorming ja klõpsa nuppu.',
+	'coll-download_as_text' => '$1-vormingus raamatu allalaadimiseks klõpsa nuppu.',
 	'coll-download' => 'Laadi alla',
-	'coll-format_label' => 'Formaat:',
+	'coll-format_label' => 'Vorming:',
 	'coll-remove' => 'Eemalda',
 	'coll-show' => 'Näita',
 	'coll-move_to_top' => 'Liiguta üles',
+	'coll-move_up' => 'Liigu üles',
+	'coll-move_down' => 'Liigu alla',
+	'coll-move_to_bottom' => 'Mine lõppu',
 	'coll-title' => 'Pealkiri:',
 	'coll-subtitle' => 'Alapealkiri:',
-	'coll-sort_alphabetically' => 'Sorteeri tähestiku järjekorras',
+	'coll-contents' => 'Sisukord',
+	'coll-drag_and_drop' => 'Kasuta vikilehekülgede ja peatükkide ümberjärjestamiseks pukseerimist.',
+	'coll-create_chapter' => 'Loo peatükk',
+	'coll-sort_alphabetically' => 'Järjesta tähestikuliselt',
 	'coll-rename' => 'Nimeta ümber',
+	'coll-new_chapter' => 'Sisesta uue peatüki pealkiri',
+	'coll-rename_chapter' => 'Sisesta uue peatüki pealkiri',
 	'coll-no_such_category' => 'Sellist kategooriat ei ole',
+	'coll-notitle_title' => 'Lehekülje pealkirja ei saa määrata.',
+	'coll-mwserve_failed_title' => 'Küljendamisserveri tõrge',
+	'coll-mwserve_failed_msg' => 'Küljendamisserveril ilmnes tõrge: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Tõrketeade serverist',
+	'coll-empty_collection' => 'Tühi raamat',
+	'coll-revision' => 'Redaktsioon: $1',
+	'coll-save_collection_title' => 'Raamatu salvestamine ja jagamine',
+	'coll-save_collection_text' => 'Vali oma raamatu talletuskoht:',
+	'coll-login_to_save' => 'Kui tahad raamatud hilisemaks kasutamiseks salvestada, [[Special:UserLogin|logi palun sisse või loo konto]].',
+	'coll-personal_collection_label' => 'Eraraamat:',
+	'coll-community_collection_label' => 'Ühisraamat:',
+	'coll-save_collection' => 'Salvesta raamat',
+	'coll-save_category' => 'Kõik salvestatud raamatud lisatakse kategooriasse [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Lehekülg eksisteerib.
 Kas kirjutada üle?',
+	'coll-overwrite_text' => 'Lehekülg pealkirjaga [[:$1]] on juba olemas.
+Kas tahad selle oma raamatuga asendada?',
 	'coll-yes' => 'Jah',
 	'coll-no' => 'Ei',
+	'coll-load_overwrite_text' => 'Su raamatus on juba mõni lehekülg.
+Kas soovid oma praeguse raamatu üle kirjutada, uue sisu liita või selle raamatu laadimise tühistada?',
 	'coll-overwrite' => 'Kirjuta üle',
 	'coll-append' => 'Lisa',
-	'coll-cancel' => 'Tühista',
+	'coll-cancel' => 'Loobu',
 	'coll-update' => 'Uuenda',
+	'coll-limit_exceeded_title' => 'Raamat on liiga suur',
+	'coll-limit_exceeded_text' => 'Su raamat on liiga suur.
+Rohkem lehekülgi ei saa lisada.',
+	'coll-rendering_title' => 'Küljendamine',
+	'coll-rendering_text' => '<p><strong>Palun oota kuni dokumenti luuakse.</strong></p>
+
+<p><strong>Edenemine:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>See lehekülg peaks ennast iga paari sekundi järel uuesti laadima.
+Kui see ei toimi, vajuta palun oma veebilehitseja värskendusnuppu.</p>',
+	'coll-rendering_status' => '<strong>Olek:</strong> $1',
+	'coll-rendering_article' => '(vikilehekülg: $1)',
+	'coll-rendering_page' => '(lehekülg: $1)',
+	'coll-rendering_finished_title' => 'Küljendamine on lõppenud',
+	'coll-rendering_finished_text' => '<strong>Dokumendifail on loodud.</strong>
+<strong>[$1 Laadi fail]</strong> oma arvutisse alla.
+
+Märkused:
+* Sa ei ole väljastatuga rahul? Vaata [[{{MediaWiki:Coll-helppage}}|raamatute abilehte]] võimalike lahenduste jaoks.',
+	'coll-notfound_title' => 'Raamatut ei leidu',
+	'coll-notfound_text' => 'Raamatu lehekülge ei leidu.',
+	'coll-download_notfound_title' => 'Faili ei leidu',
+	'coll-download_notfound_text' => 'Faili, mida üritad alla laadida, ei ole olemas.
+Võib-olla on see kustutatud ja tuleb taasluua.',
+	'coll-download_failed_title' => 'Tõrge allalaadimisel',
+	'coll-download_failed_text' => 'Allalaadimisel ilmnes tõrge: $1',
+	'coll-is_cached' => '<ul><li>Leitud on dokumendi puhverdatud versioon ja küljendamine polnud vajalik.
+<a href="$1">Käse taasküljendada.</a></li></ul>',
+	'coll-excluded-templates' => '* Mallid kategoorias [[:Category:$1|$1]] on välja jäetud.',
+	'coll-blacklisted-templates' => '* Mustas nimekirjas [[:$1]] olevad mallid on välja jäetud.',
+	'coll-return_to_collection' => '<p>Naase leheküljele <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Trükitud raamatu tellimine',
+	'coll-book_text' => 'Hangi trükitud raamat meie nõudetrükkimispartnerilt.',
+	'coll-order_from_pp' => 'Vaata trükikoja $1 eelvaadet',
+	'coll-about_pp' => 'Trükikoja $1 teave',
 	'coll-license' => 'Litsents',
 	'coll-return_to' => 'Naase [[:$1]]',
+	'coll-more_info' => 'Näita lisainfot',
+	'coll-hide_info' => 'Peida info',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPressi tellimisteave',
+	'coll-suggest_title' => 'Raamatusse pakutavad leheküljed',
+	'coll-suggest_intro_text' => 'Lehekülgede soovitamisel on lähtutud hetkel raamatus olevatest lehekülgedest. Seda loetelu uuendatakse iga kord, kui klõpsad lisamis- või eemaldamisnupul.',
+	'coll-suggested_articles' => 'Soovitused',
+	'coll-suggest_reset_bans' => 'lähtesta',
+	'coll-suggest_reset_bans_tooltip' => 'Näita varem eemaldatud soovitusi',
+	'coll-suggest_add_selected' => 'Lisa valitud leheküljed',
+	'coll-suggest_ban_selected' => 'Eemalda valitud leheküljed',
+	'coll-suggest_your_book' => 'Sinu raamat',
+	'coll-suggest_show' => 'näita',
+	'coll-suggest_ban_tooltip' => 'Eemalda see lehekülg pakutavate lehekülgede loetelust',
+	'coll-suggest_article_ban' => 'Lehekülg <strong>$1</strong> on soovituste hulgast eemaldatud ($2).',
+	'coll-suggest_article_add' => 'Lehekülg <strong>$1</strong> on raamatusse lisatud ($2).',
+	'coll-suggest_article_remove' => 'Lehekülg <strong>$1</strong> on raamatust eemaldatud ($2).',
+	'coll-suggest_undo_tooltip' => 'Võta see toiming tagasi',
+	'coll-suggest_undo' => 'võta tagasi',
+	'right-collectionsaveasuserpage' => 'Salvestada raamatud kasutajaleheküljena',
+	'right-collectionsaveascommunitypage' => 'Salvestada raamat ühisleheküljena',
 );
 
 /** Basque (Euskara)
  * @author An13sa
+ * @author Kobazulo
  * @author Theklan
  */
 $messages['eu'] = array(
 	'coll-desc' => '[[Special:Book|Liburuak sortu]]',
+	'coll-book_creator_intro' => "<big>''Liburu sortzailearekin'' zuk aukeratzen dituzun artikuluak dituen liburua sor dezakezu. Liburu hau formatu ezberdinetara esportatu ahal duzu (adibidez PDF edo ODF) edo kopia bat inprimatzea eskatu.</big>",
+	'coll-manage_your_book' => 'Zure liburua kudeatu',
+	'coll-book_creator_help' => 'Ikus [[{{MediaWiki:Coll-helppage}}|liburuen laguntza orrialdea]] informazio gehiagorako.',
+	'coll-start_book_creator' => 'Hasi liburu sortzailearekin',
+	'coll-book_creator_continue' => 'Jarraitu liburu sortzailea erabiltzen',
+	'coll-book_creator_disable_text' => "''Liburu sortzailea'' ezgaituta geratuko da eta lantzen ari zaren liburua desagertuko da.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Liburu sortzailearen testua',
 	'coll-collection' => 'Liburua',
 	'coll-collections' => 'Liburuak',
 	'coll-exclusion_category_title' => 'Inprimatzerakoan ez bildu',
 	'coll-print_template_prefix' => 'Inprimatu',
-	'coll-create_a_book' => 'Liburu bat sortu',
-	'coll-add_page' => 'Wiki orrialdea gehitu',
-	'coll-remove_page' => 'Wiki orrialdea ezabatu',
-	'coll-add_category' => 'Kategoria gehitu',
-	'coll-load_collection' => 'Liburua kargatu',
-	'coll-show_collection' => 'Liburua erakutsi',
-	'coll-help_collections' => 'Liburuen laguntza',
-	'coll-n_pages' => '{{PLURAL:$1|Orrialde 1|$1 orrialde}}',
+	'coll-print_template_pattern' => '$1/Inprimatu',
 	'coll-unknown_subpage_title' => 'Azpiorrialde ezezaguna',
 	'coll-unknown_subpage_text' => '[[Special:Book|Liburu]] honen azpiorrialde hau ez da existitzen',
-	'coll-printable_version_pdf' => 'PDF bertsioa',
-	'coll-download_as' => '$1 gisa jaitsi',
+	'coll-couldnotaddarticle_title' => 'Ezin da wiki orrialdea gehitu',
+	'coll-couldnotaddarticle_msg' => 'Wiki orrialdea ezin izan da gehitu.',
+	'coll-couldnotremovearticle_title' => 'Ezin da wiki orrialdea kendu',
+	'coll-couldnotremovearticle_msg' => 'Wiki orrialdea ezin izan da kendu.',
 	'coll-noscript_text' => '<h1>JavaScript beharrezkoa da!</h1>
 <strong>Zure nabigatzaileak ezin du JavaScripteduki edo JavaScript itzalita du.
 Orrialde honek ez du egoki funtzionatuko JavaScript pizten ez den bitartean.</strong>',
-	'coll-intro_text' => 'Sortu eta kudeatu wiki orrialdeen aukeraketa indibidueal bat. <br />Ikus [[{{MediaWiki:Coll-helppage}}]] informazio gehiagorako.',
-	'coll-helppage' => 'Help:Liburuak',
-	'coll-bookscategory' => 'Liburuak',
 	'coll-savedbook_template' => 'gordetako_liburua',
 	'coll-your_book' => 'Zure liburua',
 	'coll-download_title' => 'Jaitsi',
-	'coll-download_text' => 'Sarean ez dagoen bertsio bat jaisteko formatu bat aukeratu eta botoian klik egin.',
-	'coll-download_as_text' => '$1 formatuan dagoen bertsioa jaisteko botoia sakatu',
+	'coll-download_text' => 'Zure liburua jaisteko formatu bat aukeratu eta botoian klik egin.',
+	'coll-download_as_text' => 'Zure liburua $1 formatuan jaisteko botoia sakatu',
 	'coll-download' => 'Jaitsi',
 	'coll-format_label' => 'Formatua:',
 	'coll-remove' => 'Ezabatu',
@@ -1825,8 +3734,6 @@
 	'coll-drag_and_drop' => 'Wiki orrialdeak eta atalak ordenatzeko drag & drop erabili',
 	'coll-create_chapter' => 'Atala sortu',
 	'coll-sort_alphabetically' => 'Alfabetikoki ordenatu',
-	'coll-clear_collection' => 'Liburua ezabatu',
-	'coll-clear_collection_confirm' => 'Benetan ezabatu nahi al duzu zure liburu osoa?',
 	'coll-rename' => 'Izena aldatu',
 	'coll-new_chapter' => 'Atal berriarentzat izena sartu',
 	'coll-rename_chapter' => 'Atalarentzat izen berria sartu',
@@ -1845,7 +3752,7 @@
 	'coll-personal_collection_label' => 'Norberaren liburua:',
 	'coll-community_collection_label' => 'Komunitatearen liburua:',
 	'coll-save_collection' => 'Liburua gorde',
-	'coll-save_category' => '[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategorian gordetzen dira liburuak.',
+	'coll-save_category' => 'Gordetako liburu guztiak [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategorian gordetzen dira.',
 	'coll-overwrite_title' => 'Orrialdea bada.
 Gainetik idatzi?',
 	'coll-overwrite_text' => '[[:$1]] izena duen orrialde bat badago dagoeneko.
@@ -1856,8 +3763,8 @@
 Nahi al duzu zure liburuaren gainetik idaztea, eduki berriak zerrendatzea edo liburu honen kargatzea ezeztatzea?',
 	'coll-overwrite' => 'Gainetik idatzi',
 	'coll-append' => 'Zerrendatu',
-	'coll-cancel' => 'Ezeztatu',
-	'coll-update' => 'Berritu',
+	'coll-cancel' => 'Utzi',
+	'coll-update' => 'Eguneratu',
 	'coll-limit_exceeded_title' => 'Liburua handiegia da',
 	'coll-limit_exceeded_text' => 'Zure liburua handiegia da.
 Ezin dira orri gehiago gehitu.',
@@ -1871,61 +3778,99 @@
 	'coll-rendering_status' => '<strong>Egoera:</strong> $1',
 	'coll-rendering_article' => '(wiki orrialdea: $1)',
 	'coll-rendering_page' => '(orrialdea: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Orrialdea testuan bilakatzen',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Bilduma testuan bilakatzen',
 	'coll-rendering_finished_title' => 'Renderizazioa bukatu da',
 	'coll-rendering_finished_text' => '<strong>Dokumentuaren fitxategia sortu da.</strong>
 <strong>[$1 Jaitsi fitxategia]</strong> zure ordenagailuan.
 
 Oharrak:
 * Ez zaizu emaitza gustatu? Ikus [[{{MediaWiki:Coll-helppage}}|bildumen inguruko laguntza orrialdea]] berau hobetzeko aukerak ikusteko.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Orrialdearen informazio testua prozesatzen',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Bilduraren informazio testua prozesatzen',
 	'coll-notfound_title' => 'Liburua ez da aurkitu',
 	'coll-notfound_text' => 'Ezin izan da liburuko orria aurkitu.',
+	'coll-download_notfound_title' => 'Ez da fitxategirik aurkitu',
+	'coll-download_notfound_text' => 'Jaisten saiatzen ari zaren fitxategia ez da existitzen:
+Agian ezabatua izan da eta birsortzea behar du.',
+	'coll-download_failed_title' => 'Akatsa suertatu da jaisterakoan',
+	'coll-download_failed_text' => 'Akats bat egon da $1 fitxategia jaisten ari zela',
 	'coll-is_cached' => '<ul><li>Katxean dokumentuaren bertsio bat aurktiu da, beraz renderizatzea ez da beharrezkoa izan. <a href="$1">Berriro renderizatzera derrigortu.</a></li></ul>',
 	'coll-excluded-templates' => '* [[:Category:$1|$1]] kategorian dauden txantiloiak ez dira sartu.',
 	'coll-blacklisted-templates' => '* [[:$1]] zerrenda beltzeko txantiloiak ez dira sartu.',
 	'coll-return_to_collection' => '<p><a href="$1">$2</a>(e)ra itzuli</p>',
 	'coll-book_title' => 'Inprimatutako liburu gisa eskatu',
 	'coll-book_text' => 'Eska iezaiozu inprimatutako liburu bat gure eskatutakoa-inprimatu kideari:',
-	'coll-order_from_pp' => '$1(e)tik liburua eskatu',
+	'coll-order_from_pp' => '$1-(e)kin aurrikusi',
 	'coll-about_pp' => '$1(r)i buruz',
 	'coll-invalid_podpartner_title' => 'EI kide ez baliagarria',
 	'coll-invalid_podpartner_msg' => 'Jarritako EI kidea ez da baliagarria.
 Kontakta ezazu, mesedez MediaWiki administratzailea.',
 	'coll-license' => 'Lizentzia',
 	'coll-return_to' => '[[:$1]]era itzuli',
+	'coll-more_info' => 'Informazio gehiago erakutsi',
+	'coll-hide_info' => 'Informazioa ezkutatu',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress eskaera informazioa',
+	'coll-suggest_title' => 'Zure liburuarentzako orrialde gomendioak',
+	'coll-suggest_intro_text' => 'Gomendioak orain dituzun orrialdeetan oinarriturik agertzen dira.
+Zerrenda gaurkotzen da gehitu edo kendu botoietan klik egiten duzun bakoitzean.',
+	'coll-suggested_articles' => 'Iradokizunak',
+	'coll-suggest_reset_bans' => 'hasieratu',
+	'coll-suggest_reset_bans_tooltip' => 'Erakutsi aurretik ezabatutako gomendioak',
+	'coll-suggest_add_selected' => 'Gehitu aukeratutako orrialdeak',
+	'coll-suggest_ban_selected' => 'Kendu aukeratutako orrialdeak',
+	'coll-suggest_your_book' => 'Zure liburua',
+	'coll-suggest_show' => 'erakutsi',
+	'coll-suggest_ban_tooltip' => 'Ezabatu orrialde hau gomendio zerrendatik',
+	'coll-suggest_article_ban' => '<strong>$1</strong> orrialdea gomendioen artetik ezabatua izan da ($2).',
+	'coll-suggest_article_add' => '<strong>$1</strong> orrialdea zure liburura gehitu da ($2).',
+	'coll-suggest_article_remove' => '<strong>$1</strong> orrialdea zure liburutik ezabatu da ($2).',
+	'coll-suggest_undo_tooltip' => 'Ekintza hau desegin',
+	'coll-suggest_undo' => 'desegin',
+	'coll-load_local_book' => 'Egin klik OK gainean jarraitzeko zure %TITLE% liburuarekin, %NUMPAGES% wiki orrialde dituena. Klik egin Cancel gainean ezabatzeko eta berri hasteko liburu huts batekin.',
+	'right-collectionsaveasuserpage' => 'Gorde liburuak lankide orrialde bezala',
+	'right-collectionsaveascommunitypage' => 'Gorde liburuak komunitate orrialde bezala',
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
  * @author Komeil 4life
+ * @author Ladsgroup
+ * @author Reza1615
+ * @author Sahim
  * @author Spacebirdy
+ * @author Wayiran
+ * @author ZxxZxxZ
  */
 $messages['fa'] = array(
-	'coll-desc' => '[[Special:Book|ایجاد کتاب]]',
+	'coll-desc' => '[[Special:Book|کتاب‌ساز]]',
+	'coll-book_creator_intro' => "<big>با ''کتاب‌ساز'' می‌توانید کتابی بسازید که دارای صفحه‌های دلخواه شما از ویکی‌است. می‌توانید کتاب را در فرمت‌های مختلف (برای مثال پی‌دی‌اف یا اودی‌اف) برون‌بری کنید یا یک کپی چاپی را سفارش بدهید.</big>",
+	'coll-manage_your_book' => 'کتاب خود را مدیریت کنید',
+	'coll-book_creator_help' => 'برای اطلاعات بیشتر [[{{MediaWiki:Coll-helppage}}|صفحهٔ راهنمای کتاب‌ها]] را ببینید.',
+	'coll-start_book_creator' => 'کتاب‌ساز را آغاز کن',
+	'coll-book_creator_continue' => 'به استفاده از کتاب‌ساز ادامه بده',
+	'coll-book_creator_disable_text' => "''پدیدآور کتاب'' غیرفعال خواهد شد و کتابی که شما بر آن کار می‌کنید حذف خواهد شد.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/متن پدیدآور کتاب',
 	'coll-collection' => 'کتاب',
 	'coll-collections' => 'کتاب‌ها',
-	'coll-exclusion_category_title' => 'صرف نظر در چاپ',
+	'coll-exclusion_category_title' => 'مستثنی از چاپ',
 	'coll-print_template_prefix' => 'چاپ',
-	'coll-create_a_book' => 'ایجاد کتاب',
-	'coll-add_page' => 'افزودن این صفحه',
-	'coll-remove_page' => 'حذف این صفحه',
-	'coll-add_category' => 'اضافه کردن رده',
-	'coll-load_collection' => 'بارکردن کتاب',
-	'coll-show_collection' => 'نمایش کتاب',
-	'coll-help_collections' => 'راهنمای کتاب‌ها',
-	'coll-n_pages' => '$1 {{PLURAL:$1|صفحه|صفحه}}',
+	'coll-print_template_pattern' => 'چاپ/$1',
 	'coll-unknown_subpage_title' => 'زیرصفحهٔ ناشناس',
 	'coll-unknown_subpage_text' => 'این زیرصفحه از [[Special:Book|کتاب]] وجود ندارد',
-	'coll-printable_version_pdf' => 'نسخهٔ پی‌دی‌اف',
-	'coll-download_as' => 'بارگیری با عنوان $1',
+	'coll-couldnotaddarticle_title' => 'نتوانست صفحه ویکی را اضافه کند',
+	'coll-couldnotaddarticle_msg' => 'نمی‌توان صفحهٔ ویکی را افزود.',
+	'coll-couldnotremovearticle_title' => 'نتوانست صفحه ویکی را حذف کند',
+	'coll-couldnotremovearticle_msg' => 'صفحهٔ ویکی نتوانست حذف شود.',
 	'coll-noscript_text' => '<h1>جاوااسکریپت لازم دارید!</h1>
-<strong>مرورگر شما جاوا اسکریپت را پشتیبانی نمی‌کند یا جاوا اسکیریپت شما خاموش است.
+<strong>مرورگر شما جاوااسکریپت را پشتیبانی نمی‌کند یا جاوااسکیریپت شما خاموش است.
 این صفحه به طور صحیح عمل نخواهد کرد، مگر اینکه جاوااسکیریپت فعال شود.</strong>',
-	'coll-intro_text' => 'صفحه‌های انتخابی خود از ویکی را ایجاد و مدیریت کنید.<br />برای کسب اطلاعات بیشتر [[{{MediaWiki:Coll-helppage}}]] را بخوانید.',
-	'coll-helppage' => 'Help:کتاب‌ها',
-	'coll-bookscategory' => 'کتاب‌ها',
+	'coll-savedbook_template' => 'کتاب_ذخیره‌شده',
 	'coll-your_book' => 'کتاب شما',
 	'coll-download_title' => 'دریافت',
-	'coll-download_text' => 'برای بارگیری یک نسخهٔ غیر برخط یک قالب برگزینید و دکمه را بزنید.',
+	'coll-download_text' => 'برای بارگیری کتابتان یک قالب برگزینید و دکمه را بزنید.',
+	'coll-download_as_text' => 'برای بارگیری کتابتان در قالب $1 دکمه را بزنید.',
 	'coll-download' => 'دریافت',
 	'coll-format_label' => 'قالب:',
 	'coll-remove' => 'حذف',
@@ -1936,31 +3881,29 @@
 	'coll-move_to_bottom' => 'حرکت به انتها',
 	'coll-title' => 'عنوان:',
 	'coll-subtitle' => 'زیرعنوان:',
-	'coll-contents' => 'مندرجات',
+	'coll-contents' => 'محتویات',
 	'coll-drag_and_drop' => 'از کشیدن و رها کردن برای مرتب کردن صفحه‌های ویکی و فصل‌ها استفاده کنید',
 	'coll-create_chapter' => 'ایجاد فصل',
 	'coll-sort_alphabetically' => 'مرتب‌سازی الفبایی',
-	'coll-clear_collection' => 'پاک کردن کتاب',
-	'coll-clear_collection_confirm' => 'آیا واقعاً می‌خواهید که کتاب خود را به طور کامل پاک کنید؟',
-	'coll-rename' => 'تغيير نام',
+	'coll-rename' => 'تغییر نام',
 	'coll-new_chapter' => 'برای بخش جدید یک نام وارد کنید',
 	'coll-rename_chapter' => 'برای بخش یک نام جدید وارد کنید',
 	'coll-no_such_category' => 'چنین رده‌ای وجود ندارد',
 	'coll-notitle_title' => 'عنوان صفحه قابل تشخیص نبود.',
 	'coll-post_failed_title' => 'خطا در درخواست POST',
 	'coll-post_failed_msg' => 'درخواست POST به $1 شکست خورد ($2).',
-	'coll-mwserve_failed_title' => 'خطا در کارگزار ترجمه‌کننده',
-	'coll-mwserve_failed_msg' => 'خطایی در کارگزار ترجمه‌کننده رخ داد: <nowiki>$1</nowiki>',
+	'coll-mwserve_failed_title' => 'خطا در کارگزار رندرکننده',
+	'coll-mwserve_failed_msg' => 'خطایی در کارگزار رندرکننده رخ داد: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'پیغام خطا از طرف کارگزار',
 	'coll-empty_collection' => 'کتاب خالی',
 	'coll-revision' => 'نسخه: $1',
 	'coll-save_collection_title' => 'کتابتان را ذخیره کنید و به اشتراک بگذارید',
 	'coll-save_collection_text' => 'انتخاب یک مکان:',
-	'coll-login_to_save' => 'اگر می‌خواهید کتاب‌ها را برای کاربران بعدی ذخیره کنید، لطفا [[Special:UserLogin|به سیستم وارد شوید یا یک حساب کاربری بسازید]].',
+	'coll-login_to_save' => 'اگر می‌خواهید کتاب‌ها را برای کاربران بعدی ذخیره کنید، لطفا [[Special:UserLogin|به سامانه وارد شوید یا یک حساب کاربری بسازید]].',
 	'coll-personal_collection_label' => 'کتاب شخصی:',
 	'coll-community_collection_label' => 'کتاب عمومی:',
 	'coll-save_collection' => 'ذخیره کردن کتاب',
-	'coll-save_category' => 'کتاب‌ها در ردهٔ [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] ذخیره شده‌اند.',
+	'coll-save_category' => 'همه کتابهای ذخیره شده در رده‌  [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] موجود هستند.',
 	'coll-overwrite_title' => 'صفحه وجود دارد.
 رونویسی شود؟',
 	'coll-overwrite_text' => 'یک صفحه با نام [[:$1]] در حال حاضر موجود است.
@@ -1973,11 +3916,11 @@
 	'coll-overwrite' => 'رونویسی',
 	'coll-append' => 'افزودن',
 	'coll-cancel' => 'لغو',
-	'coll-update' => 'به روز کردن',
+	'coll-update' => 'به روز رسانی',
 	'coll-limit_exceeded_title' => 'کتاب بیش از اندازه بزرگ است',
 	'coll-limit_exceeded_text' => 'کتاب شما بیش از اندازه بزرگ است است.
 امکان افزودن صفحهٔ جدیدی را ندارید.',
-	'coll-rendering_title' => 'در حال ترجمه دادن',
+	'coll-rendering_title' => 'در حال پردازش',
 	'coll-rendering_text' => '<p><strong>لطفاً در مدتی که سند در حال ایجاد است شکیبا باشید.</strong></p>
 
 <p><strong>پیشرفت:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
@@ -1987,80 +3930,112 @@
 	'coll-rendering_status' => '<strong>وضعیت:</strong> $1',
 	'coll-rendering_article' => '(صفحهٔ ویکی: $1)',
 	'coll-rendering_page' => '(صفحه: $1)',
-	'coll-rendering_finished_title' => 'پایان ترجمه',
-	'coll-rendering_finished_text' => '<strong>پروندهٔ سند ایجاد شده‌است.</strong>
-آن را به روی رایانهٔ خود <strong>[$1 بارگیری کنید]</strong>.
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/تحویل متن اطلاعات صفحه',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/تحویل مجموعه متون اطلاعات',
+	'coll-rendering_finished_title' => 'رندر به پایان رسید',
+	'coll-rendering_finished_text' => '<strong>پرونده ایجاد شده‌است.</strong>
+آن را بر روی رایانهٔ خود <strong>[$1 بارگیری کنید]</strong>.
 
-نکته:
-* از خروجی راضی نیستید؟ [[{{MediaWiki:Coll-helppage}}|صفحهٔ راهنمای مجموعه‌ها]] را ببینید تا از امکان بهبود آن با خبر شوید.',
+نکته‌ها:
+* از خروجی راضی نیستید؟ برای مطلع‌شدن از شیوه‌های بهبود آن، [[{{MediaWiki:Coll-helppage}}|راهنمای کتاب‌ها]] را مطالعه فرمایید.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/تحویل متن اطلاعات صفحه',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/تحویل مجموعه متون اطلاعات',
 	'coll-notfound_title' => 'کتاب پیدا نشد',
 	'coll-notfound_text' => 'صفحهٔ کتاب پیدا نشد.',
-	'coll-is_cached' => '<ul><li>یک نسخهٔ کاشه‌گیری شده از این سند پیدا شد، به همین خاطر ترجمه لازم نبود. <a href="$1">ترجمهٔ اجباری.</a></li></ul>',
-	'coll-excluded-templates' => '* از الگوهای رده [[:Category:$1|$1]] صرف نظر شد.',
-	'coll-blacklisted-templates' => '* از الگوهای فهرست سیاه [[:$1]] صرف نظر شد.',
+	'coll-download_notfound_title' => 'پرونده یافت نشد',
+	'coll-download_notfound_text' => 'پرونده‌ای که برای بارگیری‌اش تلاش می‌کنید وجود ندارد:
+شاید پاک شده باشد و به بازتولید نیاز داشته باشد.',
+	'coll-download_failed_title' => 'خطا در طول بارگیری',
+	'coll-download_failed_text' => 'هنگام بارگیری پروندهٔ $1 خطا داده شد',
+	'coll-is_cached' => '<ul><li>یک نسخهٔ کاشه‌گیری شده از این سند پیدا شد، به همین خاطر رندرکردن لازم نبود. <a href="$1">ترجمهٔ اجباری.</a></li></ul>',
+	'coll-excluded-templates' => '* از الگوهای ردهٔ [[:Category:$1|$1]] صرف نظر شده‌است.',
+	'coll-blacklisted-templates' => '* از الگوهای فهرست سیاه [[:$1]] صرف نظر شده‌است.',
 	'coll-return_to_collection' => '<p>بازگشت به <a href="$1">$2</a></p>',
 	'coll-book_title' => 'سفارش به صورت کتاب چاپ شده',
 	'coll-book_text' => 'با مراجعه به این شرکای چاپ-با-درخواست یک کتاب چاپ شده تهیه کنید:',
-	'coll-order_from_pp' => 'سفارش کتاب از $1',
+	'coll-order_from_pp' => 'پیش‌نمایش با $1',
 	'coll-about_pp' => 'دربارهٔ $1',
 	'coll-invalid_podpartner_title' => 'شریک چاپ-با-درخواست غیر مجاز',
 	'coll-invalid_podpartner_msg' => 'شریک چاپ-با-درخواست تعیین شده غیر مجاز است.
 لطفاً با مدیر مدیاویکی خود تماس بگیرید.',
 	'coll-license' => 'اجازه‌نامه',
 	'coll-return_to' => 'بازگشت به [[:$1]]',
+	'coll-more_info' => 'اطلاعات بیشتر را نشان بده',
+	'coll-hide_info' => 'اطلاعات را پنهان کن',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/دسته‌بندی اطلاعات پدیاپرس',
+	'coll-suggest_title' => 'صفحات پیشنهادی برای کتابتان',
+	'coll-suggest_intro_text' => 'پیشنهادات بر پایهٔ مجموعهٔ کنونی صفحات ویکی در کتاب شما قرار دارند.
+هر گاه که بر دکمه‌های افزودن یا حذف کلیک کنید، فهرست به‌روز خواهد شد.',
+	'coll-suggested_articles' => 'پیشنهادات',
+	'coll-suggest_reset_bans' => 'بازنشانی',
+	'coll-suggest_reset_bans_tooltip' => 'نمایش قبل از پاک کردن پیشنهاد‌ها',
+	'coll-suggest_add_selected' => 'اضافه‌کردن صفحه‌های انتخاب شده',
+	'coll-suggest_ban_selected' => 'حذف صفحه‌های انتخاب شده',
+	'coll-suggest_your_book' => 'کتاب شما',
+	'coll-suggest_show' => 'نمایش',
+	'coll-suggest_ban_tooltip' => 'این صفحه را از فهرست پیشنهادات حذف کنید',
+	'coll-suggest_article_ban' => 'صفحهٔ <strong>$1</strong> از پیشنهادات حذف شده است ($2).',
+	'coll-suggest_article_add' => 'صفحهٔ <strong>$1</strong> به کتاب شما افزوده شده است ($2).',
+	'coll-suggest_article_remove' => 'صفحهٔ <strong>$1</strong> از کتاب شما حذف شده است ($2).',
+	'coll-suggest_undo_tooltip' => 'این اقدام را خنثی کن',
+	'coll-suggest_undo' => 'خنثی‌سازی',
+	'coll-load_local_book' => 'برای ادامهٔ کتاب %TITLE% که دارندهٔ %NUMPAGES% صفحهٔ ویکی است، بر روی پذیرش کلیک کنید. برای حذف آن و آغاز با کتابی خالی، بر روی لغو کلیک کنید.',
+	'right-collectionsaveasuserpage' => 'ذخیره کردن کتاب‌ها به صورت یک صفحهٔ کاربری',
+	'right-collectionsaveascommunitypage' => 'ذخیره کردن کتاب‌ها به صورت یک صفحه عمومی',
 );
 
 /** Finnish (Suomi)
  * @author Cimon Avaro
  * @author Crt
  * @author Nike
+ * @author Olli
  * @author Silvonen
  * @author Str4nd
  * @author Tarmo
+ * @author Zache
  */
 $messages['fi'] = array(
 	'coll-desc' => '[[Special:Book|Laadi kirjoja]].',
+	'coll-book_creator_intro' => "<big>''Kirjan luontitilassa'' voit luoda kirjan, joka koostuu haluamistasi wikisivuista. Voit viedä kirjasi eri muodoissa (esimerkiksi PDF- tai ODF-tiedostona) tai tilata sen painettuna.</big>",
+	'coll-manage_your_book' => 'Hallinnoi kirjaa',
+	'coll-book_creator_help' => 'Katso [[{{MediaWiki:Coll-helppage}}|ohjesivulta lisätietoja kirjoista]].',
+	'coll-start_book_creator' => 'Käynnistä kirjan luontitila',
+	'coll-book_creator_continue' => 'Jatka kirjan luontitilan käyttämistä',
+	'coll-book_creator_disable_text' => "''Kirjan luontitila'' poistetaan käytöstä ja kirja, jota olet tekemässä poistetaan.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Kirjan luontitilan teksti',
 	'coll-collection' => 'Kirja',
 	'coll-collections' => 'Kirjat',
 	'coll-exclusion_category_title' => 'Tulosteesta poisjätettävät',
 	'coll-print_template_prefix' => 'Tulosta',
-	'coll-create_a_book' => 'Luo kirja',
-	'coll-add_page' => 'Lisää wikisivu',
-	'coll-remove_page' => 'Poista wikisivu',
-	'coll-add_category' => 'Lisää luokkaan',
-	'coll-load_collection' => 'Lataa kirja',
-	'coll-show_collection' => 'Näytä kirja',
-	'coll-help_collections' => 'Ohje kirjoille',
-	'coll-n_pages' => '$1 {{PLURAL:$1|sivu|sivua}}',
+	'coll-print_template_pattern' => '$1/Tulosta',
 	'coll-unknown_subpage_title' => 'Tuntematon alasivu',
 	'coll-unknown_subpage_text' => 'Tätä [[Special:Book|kirjan]] alasivua ei ole olemassa',
-	'coll-printable_version_pdf' => 'PDF-versio',
-	'coll-download_as' => 'Lataa $1-tiedostona',
+	'coll-couldnotaddarticle_title' => 'Wikisivua ei voitu lisätä',
+	'coll-couldnotaddarticle_msg' => 'Wikisivua ei voitu lisätä.',
+	'coll-couldnotremovearticle_title' => 'Wikisivua ei voitu poistaa',
+	'coll-couldnotremovearticle_msg' => 'Wikisivua ei voitu poistaa.',
 	'coll-noscript_text' => '<h1>Vaatii toimiakseen JavaScriptin</h1>
 <strong>Selaimesi ei tue JavaScriptiä tai JavaScript on poistettu käytöstä.
 Tämä sivu ei toimi oikein, ellei JavaScript ole käytössä.</strong>',
-	'coll-intro_text' => 'Laadi ja hallinnoi omia henkilökohtaisia wikisivujen valikoimiasi.<br />Lisätietoja sivulla [[{{MediaWiki:Coll-helppage}}]].',
-	'coll-helppage' => 'Help:Kirjat',
-	'coll-bookscategory' => 'Kirjat',
+	'coll-savedbook_template' => 'tallennettu_kirja',
 	'coll-your_book' => 'Sinun kirjasi',
 	'coll-download_title' => 'Lataa',
-	'coll-download_text' => 'Jos haluat tallentaa kirjan omalle koneellesi, valitse tiedostomuoto ja napsauta painiketta.',
+	'coll-download_text' => 'Ladataksesi kirjan, valitse tiedostomuoto ja napsauta painiketta.',
+	'coll-download_as_text' => 'Voit ladata kirjasi $1-muodossa napsauttamalla painiketta.',
 	'coll-download' => 'Lataa',
-	'coll-format_label' => 'Muoto:',
+	'coll-format_label' => 'Muoto',
 	'coll-remove' => 'Poista',
 	'coll-show' => 'Näytä',
 	'coll-move_to_top' => 'Siirrä alkuun',
 	'coll-move_up' => 'Siirrä ylös',
 	'coll-move_down' => 'Siirrä alas',
 	'coll-move_to_bottom' => 'Siirrä loppuun',
-	'coll-title' => 'Otsikko:',
-	'coll-subtitle' => 'Alaotsikko:',
+	'coll-title' => 'Otsikko',
+	'coll-subtitle' => 'Alaotsikko',
 	'coll-contents' => 'Sisältö',
 	'coll-drag_and_drop' => 'Raahaa wikisivut ja luvut haluamaasi järjestykseen.',
 	'coll-create_chapter' => 'Luo luku',
 	'coll-sort_alphabetically' => 'Lajittele aakkosjärjestykseen',
-	'coll-clear_collection' => 'Tyhjennä kirja',
-	'coll-clear_collection_confirm' => 'Haluatko varmasti tyhjentää kirjasi?',
 	'coll-rename' => 'Vaihda nimeä',
 	'coll-new_chapter' => 'Anna uuden luvun nimi',
 	'coll-rename_chapter' => 'Anna uuden luvun nimi',
@@ -2079,8 +4054,9 @@
 	'coll-personal_collection_label' => 'Henkilökohtainen kirja:',
 	'coll-community_collection_label' => 'Yhteinen kirja:',
 	'coll-save_collection' => 'Tallenna kirja',
-	'coll-save_category' => 'Kirjat lisätään luokkaan [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
-	'coll-overwrite_title' => 'Sivu on olemassa. Ylikirjoitetaanko?',
+	'coll-save_category' => 'Kaikki tallennetut kirjat lisätään luokkaan [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Sivu on olemassa.
+Korvataanko?',
 	'coll-overwrite_text' => 'Sivu nimellä [[:$1]] on jo olemassa.
 Haluatko korvata sen kokoelmallasi?',
 	'coll-yes' => 'Kyllä',
@@ -2104,80 +4080,107 @@
 	'coll-rendering_status' => '<strong>Tila:</strong> $1',
 	'coll-rendering_article' => '(wikisivu: $1)',
 	'coll-rendering_page' => '(sivu: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Muotoillaan sivu -tiedote',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Muotoillaan kokoelma -tiedote',
 	'coll-rendering_finished_title' => 'Renderöinti valmis',
 	'coll-rendering_finished_text' => '<strong>Tiedosto on generoitu.</strong>
 <strong>[$1 Lataa tiedosto]</strong> tietokoneellesi.
 
 Huomautuksia:
 * Etkö ole tyytyväinen lopputulokseen? Katso [[{{MediaWiki:Coll-helppage}}|kirjojen ohjesivulta]] mahdollisuuksista parantaa sitä.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Muotoillaan sivu -tiedote',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Muotoillaan kokoelma -tiedote',
 	'coll-notfound_title' => 'Kirjaa ei löydy',
 	'coll-notfound_text' => 'Kirjan sivua ei löydy.',
+	'coll-download_notfound_title' => 'Tiedostoa ei löydy',
+	'coll-download_notfound_text' => 'Tiedostoa, jota yritit ladata ei ole olemassa: Se on ehkä poistettu ja tarvitsee luoda uudelleen.',
+	'coll-download_failed_title' => 'Virhe ladatessa',
+	'coll-download_failed_text' => 'Virhe ladatessa tiedostoa: $1',
 	'coll-is_cached' => '<ul><li>Dokumentti löytyi välimuistista, joten renderöintiä ei tarvittu. <a href="$1">Pakota uudelleenrenderöinti.</a></li></ul>',
 	'coll-excluded-templates' => '* Mallineet luokassa [[:Category:$1|$1]] on ohitettu.',
 	'coll-blacklisted-templates' => '* Mallineet sulkulistalla [[:$1]] on ohitettu.',
 	'coll-return_to_collection' => '<p>Palaa takaisin sivulle <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Tilaa painettuna kirjana',
-	'coll-book_text' => 'Hanki painettuna kirjana pikapainosta:',
-	'coll-order_from_pp' => 'Tilaa kirja kohteesta $1',
+	'coll-book_text' => 'Hanki painettuna kirjana pikapainosta.',
+	'coll-order_from_pp' => 'Esikatsele kohteessa $1',
 	'coll-about_pp' => 'Tietoja kohteesta $1',
 	'coll-invalid_podpartner_title' => 'Epäkelpo POD-partneri',
 	'coll-invalid_podpartner_msg' => 'Annettu POD-partneri ei kelpaa.
 Ota yhteys MediaWiki-ylläpitäjääsi.',
 	'coll-license' => 'Lisenssi',
 	'coll-return_to' => 'Palaa sivulle [[:$1]]',
+	'coll-more_info' => 'Näytä lisätietoja',
+	'coll-hide_info' => 'Piilota tiedot',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPressin tilaustiedot',
+	'coll-suggest_title' => 'Ehdotetut sivut kirjaasi',
+	'coll-suggest_intro_text' => 'Ehdotukset perustuvat kirjasi nykyisiin wikisivuihin.
+Lista päivittyy aina kun napsautat lisää- tai poista-painikkeita.',
+	'coll-suggested_articles' => 'Ehdotukset',
+	'coll-suggest_reset_bans' => 'tyhjennä',
+	'coll-suggest_reset_bans_tooltip' => 'Näytä äskettäin poistetut ehdotukset',
+	'coll-suggest_add_selected' => 'Lisää valitut sivut',
+	'coll-suggest_ban_selected' => 'Poista valitut sivut',
+	'coll-suggest_your_book' => 'Kirjasi',
+	'coll-suggest_show' => 'näytä',
+	'coll-suggest_ban_tooltip' => 'Poista tämä sivu ehdotuksista',
+	'coll-suggest_article_ban' => 'Sivu <strong>$1</strong> on poistettu ehdotuksista ($2).',
+	'coll-suggest_article_add' => 'Sivu <strong>$1</strong> on lisätty kirjaasi ($2).',
+	'coll-suggest_article_remove' => 'Sivu <strong>$1</strong> on poistettu kirjastasi ($2).',
+	'coll-suggest_undo_tooltip' => 'Kumoa tämä toiminto',
+	'coll-suggest_undo' => 'kumoa',
+	'coll-load_local_book' => 'Napsauta OK jatkaaksesi kirjan %TITLE% (%NUMPAGES% sivua) työstämistä. Napsauta Peruuta poistaaksesi sen ja aloittaaksesi uuden kirjan.',
+	'right-collectionsaveasuserpage' => 'Tallentaa kirjoja käyttäjäsivuna',
+	'right-collectionsaveascommunitypage' => 'Tallentaa kirjoja yhteisösivuina',
 );
 
 /** French (Français)
+ * @author Antaya
  * @author Crochet.david
+ * @author Dodoïste
  * @author Grondin
  * @author Guillom
  * @author IAlex
+ * @author Jean-Frédéric
  * @author Korrigan
  * @author McDutchie
  * @author Meithal
+ * @author Peter17
  * @author PieRRoMaN
  * @author Verdy p
+ * @author Zetud
  */
 $messages['fr'] = array(
 	'coll-desc' => 'Permet de [[Special:Book|créer des livres]]',
+	'coll-book_creator_intro' => "<big>Avec le ''créateur de livres'', vous pouvez créer un livre contenant les pages du wiki de votre choix. Vous pouvez exporter le livre dans différents formats (par exemple PDF ou ODF) ou en commander une copie imprimée.</big>",
+	'coll-manage_your_book' => 'Gérer votre livre',
+	'coll-book_creator_help' => 'Consultez [[{{MediaWiki:Coll-helppage}}|la page d’aide sur les livres]] pour plus d’informations.',
+	'coll-start_book_creator' => 'Démarrer le créateur de livres',
+	'coll-book_creator_continue' => 'Continuer en utilisant le créateur de livres',
+	'coll-book_creator_disable_text' => "Le ''créateur de livres'' sera désactivé et les livres sur lesquels vous travaillez seront supprimés de la session de votre navigateur.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texte du créateur de livres',
 	'coll-collection' => 'Livre',
 	'coll-collections' => 'Livres',
 	'coll-exclusion_category_title' => "Exclure lors de l'impression",
 	'coll-print_template_prefix' => 'Imprimer',
-	'coll-print_template_pattern' => '$1/Print',
-	'coll-create_a_book' => 'Créer un livre',
-	'coll-add_page' => 'Ajouter une page wiki',
-	'coll-add_page_tooltip' => 'Ajouter la page courante à votre livre',
-	'coll-remove_page' => 'Enlever une page wiki',
-	'coll-remove_page_tooltip' => 'Retirer la page courante de votre livre',
-	'coll-add_category' => 'Ajouter une catégorie',
-	'coll-add_category_tooltip' => 'Ajouter tous les articles de cette catégorie à votre livre',
-	'coll-load_collection' => 'Charger un livre',
-	'coll-load_collection_tooltip' => 'Charger ce livre en tant que votre livre actuel',
-	'coll-show_collection' => 'Afficher le livre',
-	'coll-show_collection_tooltip' => 'Cliquez pour modifier / télécharger / commander votre livre',
-	'coll-help_collections' => 'Aide sur les livres',
-	'coll-help_collections_tooltip' => "Afficher l'aide sur les outils des livres",
-	'coll-n_pages' => '$1 page{{PLURAL:$1||s}}',
+	'coll-print_template_pattern' => '$1/Imprimer',
 	'coll-unknown_subpage_title' => 'Sous-page inconnue',
-	'coll-unknown_subpage_text' => "Cette sous-page de [[Special:Book|livre]] n'existe pas",
-	'coll-printable_version_pdf' => 'Version PDF',
-	'coll-download_as' => 'Télécharger comme $1',
+	'coll-unknown_subpage_text' => 'Cette sous-page de [[Special:Book|livre]] n’existe pas',
+	'coll-couldnotaddarticle_title' => 'Impossible d’ajouter la page du wiki',
+	'coll-couldnotaddarticle_msg' => 'La page du wiki ne peut pas être ajouté.',
+	'coll-couldnotremovearticle_title' => 'Impossible de supprimer la page du wiki',
+	'coll-couldnotremovearticle_msg' => 'La page du wiki ne peut pas être enlevée.',
 	'coll-noscript_text' => '<h1>Javascript est nécessaire !</h1>
 <strong>Votre navigateur ne supporte pas Javascript ou bien vous l’avez désactivé.
 Cette page ne fonctionnera pas correctement tant que Javascript n’est pas activé.</strong>',
-	'coll-intro_text' => "Créez et gérez votre sélection individuelle de pages wiki.<br />Consultez la [[{{MediaWiki:Coll-helppage}}|page d'aide sur les collections]] pour plus d’informations.",
-	'coll-helppage' => 'Help:Livres',
-	'coll-bookscategory' => 'Livres',
-	'coll-savedbook_template' => 'livre_enregistré',
+	'coll-savedbook_template' => 'Livre sauvegardé',
 	'coll-your_book' => 'Votre livre',
 	'coll-download_title' => 'Télécharger',
-	'coll-download_text' => 'Pour télécharger une version hors-ligne, choisissez un format et cliquez sur le bouton.',
-	'coll-download_as_text' => 'Pour télécharger une version hors-ligne au format $1, cliquez sur le bouton.',
+	'coll-download_text' => 'Pour télécharger votre livre, choisissez un format et cliquez sur le bouton.',
+	'coll-download_as_text' => 'Pour télécharger votre livre au format $1, cliquez sur le bouton.',
 	'coll-download' => 'Télécharger',
 	'coll-format_label' => 'Format :',
 	'coll-remove' => 'Enlever',
-	'coll-show' => 'Visionner',
+	'coll-show' => 'Afficher',
 	'coll-move_to_top' => 'Déplacer tout en haut',
 	'coll-move_up' => 'Monter',
 	'coll-move_down' => 'Descendre',
@@ -2185,12 +4188,9 @@
 	'coll-title' => 'Titre :',
 	'coll-subtitle' => 'Sous-titre :',
 	'coll-contents' => 'Contenus',
-	'coll-drag_and_drop' => 'Utiliser le glisser-déposer pour réordonner les pages et chapitres wiki.',
+	'coll-drag_and_drop' => 'Utiliser le glisser-déposer pour réordonner les pages wiki et chapitres.',
 	'coll-create_chapter' => 'Créer un chapitre',
 	'coll-sort_alphabetically' => 'Trier alphabétiquement',
-	'coll-clear_collection' => 'Vider le livre',
-	'coll-clear_collection_tooltip' => 'Retirer tous les articles de votre livre actuel',
-	'coll-clear_collection_confirm' => 'Voulez-vous réellement effacer l’intégralité de votre livre ?',
 	'coll-rename' => 'Renommer',
 	'coll-new_chapter' => 'Entrer le titre du nouveau chapitre',
 	'coll-rename_chapter' => 'Entrer le nouveau titre de ce chapitre',
@@ -2209,7 +4209,7 @@
 	'coll-personal_collection_label' => 'Livre personnel :',
 	'coll-community_collection_label' => 'Livre collectif :',
 	'coll-save_collection' => 'Sauvegarder le livre',
-	'coll-save_category' => 'Les livres sont sauvegardés dans la catégorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Tous les livres sont sauvegardés dans la catégorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'La page existe déjà.
 L’écraser ?',
 	'coll-overwrite_text' => 'Une page nommée [[:$1]] existe déjà.
@@ -2235,34 +4235,234 @@
 	'coll-rendering_status' => '<strong>État :</strong> $1',
 	'coll-rendering_article' => '(page wiki : $1)',
 	'coll-rendering_page' => '(page : $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informations sur le rendu des pages',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informations sur le rendu des collections',
 	'coll-rendering_finished_title' => 'Rendu terminé',
 	'coll-rendering_finished_text' => '<strong>Le fichier document a été généré.</strong>
 <strong>[$1 Télécharger le fichier]</strong> sur votre ordinateur.
 
 Notes :
 * Vous n’êtes pas satisfait du résultat ? Consultez [[{{MediaWiki:Coll-helppage}}|la page d’aide des livres]] pour les façons possibles de l’améliorer.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informations sur le rendu des pages',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informations sur le rendu des collections',
 	'coll-notfound_title' => 'Livre non trouvé',
 	'coll-notfound_text' => 'La page du livre n’a pas pu être trouvée.',
+	'coll-download_notfound_title' => 'Fichier introuvable',
+	'coll-download_notfound_text' => "Le fichier que vous essayez de télécharger n'existe pas : il a peut-être été supprimé et doit être généré à nouveau",
+	'coll-download_failed_title' => 'Erreur lors du téléchargement',
+	'coll-download_failed_text' => 'Une erreur est survenue pendant le téléchargement du fichier : $1',
 	'coll-is_cached' => '<ul><li>Une version en cache du document a été trouvée, aussi aucun rendu n’était nécessaire. <a href="$1">Forcer un nouveau rendu.</a></li></ul>',
 	'coll-excluded-templates' => '* Des modèles de la catégorie [[:Category:$1|$1]] ont été exclus.',
 	'coll-blacklisted-templates' => '* Des modèles de la liste noire ([[:$1]]) ont été exclus.',
 	'coll-return_to_collection' => '<p>Revenir à la page <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Commander sous la forme d‘un livre imprimé',
 	'coll-book_text' => 'Obtenez un livre imprimé par notre partenaire d’impression à la demande :',
-	'coll-order_from_pp' => 'Commander le livre à $1',
+	'coll-order_from_pp' => 'Aperçu avec $1',
 	'coll-about_pp' => 'À propos de $1',
 	'coll-invalid_podpartner_title' => 'Partenaire d’impression à la demande incorrect.',
 	'coll-invalid_podpartner_msg' => 'Le partenaire d’impression à la demande indiqué est incorrect.
 Veuillez contacter votre administrateur MediaWiki.',
 	'coll-license' => 'Licence',
 	'coll-return_to' => 'Retourner vers [[:$1]]',
+	'coll-more_info' => 'Afficher d’autres informations',
+	'coll-hide_info' => 'Masquer les informations',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress commander des informations',
+	'coll-suggest_title' => 'Pages suggérées pour votre livre',
+	'coll-suggest_intro_text' => "Les suggestions sont fondées sur l'ensemble des pages wiki actuellement dans votre livre.
+La liste est mise à jour à chaque fois que vous cliquez sur les boutons d'ajout ou de suppression.",
+	'coll-suggested_articles' => 'Suggestions',
+	'coll-suggest_reset_bans' => 'réinitialiser',
+	'coll-suggest_reset_bans_tooltip' => 'Montrer les suggestions précédemment supprimées',
+	'coll-suggest_add_selected' => 'Ajouter les pages sélectionnées',
+	'coll-suggest_ban_selected' => 'Supprimer les pages sélectionnées',
+	'coll-suggest_your_book' => 'Votre livre',
+	'coll-suggest_show' => 'afficher',
+	'coll-suggest_ban_tooltip' => 'Supprimer cette page de la liste des suggestions',
+	'coll-suggest_article_ban' => 'La page <strong>$1</strong> a été retirée des suggestions ($2).',
+	'coll-suggest_article_add' => 'La page <strong>$1</strong> a été ajoutée à votre livre ($2).',
+	'coll-suggest_article_remove' => 'La page <strong>$1</strong> a été retirée de votre livre ($2).',
+	'coll-suggest_undo_tooltip' => 'Défaire cette action',
+	'coll-suggest_undo' => 'défaire',
+	'coll-load_local_book' => 'Cliquez sur OK pour continuer votre livre %TITLE% qui contient %NUMPAGES% pages wiki. Cliquez sur Annuler pour le supprimer et commencer avec un livre vide.',
+	'right-collectionsaveasuserpage' => 'Sauvegarder des livres sur des pages utilisateur',
+	'right-collectionsaveascommunitypage' => 'Sauvegarder des livres sur des pages communautaires',
 );
 
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'coll-desc' => 'Pèrmèt de [[Special:Book|fâre des lévros]].',
+	'coll-book_creator_intro' => "<big>Avouéc lo ''crèator de lévros'', vos pouede fâre un lévro que contint les pâges du vouiqui de voutron choièx. Vos pouede èxportar lo lévro dens difèrents formats (per ègzemplo PDF ou ben ODF) ou nen comandar una copia emprimâ.</big>",
+	'coll-manage_your_book' => 'Administrar voutron lévro',
+	'coll-book_creator_help' => 'Vêde la [[{{MediaWiki:Coll-helppage}}|pâge d’éde sur los lévros]] por més d’enformacions.',
+	'coll-start_book_creator' => 'Emmodar lo crèator de lévros',
+	'coll-book_creator_continue' => 'Continuar en utilisent lo crèator de lévros',
+	'coll-book_creator_disable_text' => "Lo ''crèator de lévros'' serat dèsactivâ et pués los lévros sur losquints vos travalyéd seront suprimâs de la sèance de voutron navigator.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tèxto du crèator de lévros',
+	'coll-collection' => 'Lévro',
+	'coll-collections' => 'Lévros',
+	'coll-exclusion_category_title' => 'Èxcllure pendent l’emprèssion',
+	'coll-print_template_prefix' => 'Emprimar',
+	'coll-print_template_pattern' => '$1/Emprimar',
+	'coll-unknown_subpage_title' => 'Sot-pâge encognua',
+	'coll-unknown_subpage_text' => 'Ceta sot-pâge de [[Special:Book|lévro]]  ègziste pas',
+	'coll-couldnotaddarticle_title' => 'Empossiblo d’apondre la pâge du vouiqui',
+	'coll-couldnotaddarticle_msg' => 'La pâge du vouiqui pôt pas étre apondua.',
+	'coll-couldnotremovearticle_title' => 'Empossiblo d’enlevar la pâge du vouiqui',
+	'coll-couldnotremovearticle_msg' => 'La pâge du vouiqui pôt pas étre enlevâ.',
+	'coll-noscript_text' => '<h1>JavaScript est nècèssèro !</h1>
+<strong>Voutron navigator recognêt pas JavaScript ou ben vos l’éd dèsactivâ.
+Ceta pâge fonccionerat pas bien tant que JavaScript est pas activâ.</strong>',
+	'coll-savedbook_template' => 'lévro_sôvâ',
+	'coll-your_book' => 'Voutron lévro',
+	'coll-download_title' => 'Tèlèchargiér',
+	'coll-download_text' => 'Por tèlèchargiér voutron lévro chouèsésséd un format et pués clicâd sur lo boton.',
+	'coll-download_as_text' => 'Por tèlèchargiér una vèrsion de voutron lévro u format $1, clicâd sur lo boton.',
+	'coll-download' => 'Tèlèchargiér',
+	'coll-format_label' => 'Format :',
+	'coll-remove' => 'Enlevar',
+	'coll-show' => 'Fâre vêre',
+	'coll-move_to_top' => 'Dèplaciér tot lé-d’amont',
+	'coll-move_up' => 'Alar amont',
+	'coll-move_down' => 'Alar avâl',
+	'coll-move_to_bottom' => 'Dèplaciér tot lé-d’avâl',
+	'coll-title' => 'Titro :',
+	'coll-subtitle' => 'Sot-titro :',
+	'coll-contents' => 'Contegnu',
+	'coll-drag_and_drop' => 'Utilisar lo glissiér-dèposar por tornar ordonar les pâges vouiqui et los chapitros.',
+	'coll-create_chapter' => 'Fâre un chapitro',
+	'coll-sort_alphabetically' => 'Triyér per ôrdre alfabètico',
+	'coll-rename' => 'Renomar',
+	'coll-new_chapter' => 'Buchiér lo titro du chapitro novél',
+	'coll-rename_chapter' => 'Buchiér lo titro novél de ceti chapitro',
+	'coll-no_such_category' => 'Catègorie entrovâbla',
+	'coll-notitle_title' => 'Lo titro de la pâge at pas possu étre dètèrmenâ.',
+	'coll-post_failed_title' => 'La requéta POST at pas reussia',
+	'coll-post_failed_msg' => 'La requéta POST de vers $1 at pas reussia ($2).',
+	'coll-mwserve_failed_title' => 'Èrror du sèrvor de rendu',
+	'coll-mwserve_failed_msg' => 'Una èrror est arrevâ sur lo sèrvor de rendu : <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Rèponsa d’èrror retornâ per lo sèrvor',
+	'coll-empty_collection' => 'Lévro vouedo',
+	'coll-revision' => 'Vèrsion : $1',
+	'coll-save_collection_title' => 'Sôvar et partagiér voutron lévro',
+	'coll-save_collection_text' => 'Chouèsésséd un emplacement de stocâjo por voutron lévro :',
+	'coll-login_to_save' => 'Se vos voléd sôvar des lévros por un usâjo a vegnir, vos volyéd [[Special:UserLogin|branchiér ou ben fâre un compto]].',
+	'coll-personal_collection_label' => 'Lévro a sè :',
+	'coll-community_collection_label' => 'Lévro colèctif :',
+	'coll-save_collection' => 'Sôvar lo lévro',
+	'coll-save_category' => 'Tôs los lévros sont sôvâs dens la catègorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'La pâge ègziste ja.
+L’ècllafar ?',
+	'coll-overwrite_text' => 'Una pâge apelâ [[:$1]] ègziste ja.
+La voléd-vos remplaciér per voutron lévro ?',
+	'coll-yes' => 'Ouè',
+	'coll-no' => 'Nan',
+	'coll-load_overwrite_text' => 'Vos avéd ja des pâges dens voutron lévro.
+Voléd-vos ècllafar voutron lévro d’ora, y apondre lo novél contegnu ou ben anular lo chargement de cél lévro ?',
+	'coll-overwrite' => 'Ècllafar',
+	'coll-append' => 'Apondre',
+	'coll-cancel' => 'Anular',
+	'coll-update' => 'Betar a jorn',
+	'coll-limit_exceeded_title' => 'Lévro trop grant',
+	'coll-limit_exceeded_text' => 'Voutron lévro est trop grant.
+Niona pâge y pôt étre apondua.',
+	'coll-rendering_title' => 'Rendu',
+	'coll-rendering_text' => '<p><strong>Volyéd pacientar pendent la g·ènèracion du document.</strong></p>
+
+<p><strong>Avance :</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Ceta pâge sè devrêt betar a jorn ôtomaticament per entèrvalos règuliérs de doux-três secondes.
+S’o ére pas lo câs, volyéd clicar sur lo boton « Rechargiér » de voutron navigator.</p>',
+	'coll-rendering_status' => '<strong>Ètat :</strong> $1',
+	'coll-rendering_article' => '(pâge vouiqui : $1)',
+	'coll-rendering_page' => '(pâge : $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tèxto d’enformacion sur lo rendu de les pâges',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tèxto d’enformacion sur lo rendu de les colèccions',
+	'coll-rendering_finished_title' => 'Rendu chavonâ',
+	'coll-rendering_finished_text' => '<strong>Lo fichiér document at étâ fêt.</strong>
+<strong>[$1 Tèlèchargiér lo fichiér]</strong> sur voutron ordenator.
+
+Notes :
+* Vos éte pas satisfêt du rèsultat ? Vêde la [[{{MediaWiki:Coll-helppage}}|pâge d’éde des lévros]] por les façons possibles de lo mèlyorar.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tèxto d’enformacion sur lo rendu de les pâges',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tèxto d’enformacion sur lo rendu de les colèccions',
+	'coll-notfound_title' => 'Lévro entrovâblo',
+	'coll-notfound_text' => 'La pâge du lévro at pas possu étre trovâ.',
+	'coll-download_notfound_title' => 'Fichiér entrovâblo',
+	'coll-download_notfound_text' => 'Lo fichiér que vos tâchiéd de tèlèchargiér ègziste pas :
+il at pôt-étre étâ suprimâ et dêt étre refêt.',
+	'coll-download_failed_title' => 'Èrror pendent lo tèlèchargement',
+	'coll-download_failed_text' => 'Una èrror est arrevâ pendent lo tèlèchargement du fichiér : $1',
+	'coll-is_cached' => '<ul><li>Una vèrsion en cache du document at étâ trovâ, nion rendu ére nècèssèro.
+<a href="$1">Forciér un novél rendu.</a></li></ul>',
+	'coll-excluded-templates' => '* Des modèlos de la catègorie [[:Category:$1|$1]] ont étâ èxcllus.',
+	'coll-blacklisted-templates' => '* Des modèlos de la lista nêre [[:$1]] ont étâ èxcllus.',
+	'coll-return_to_collection' => '<p>Tornar a la pâge <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Comandar desot la fôrma d’un lévro emprimâ',
+	'coll-book_text' => 'Avéd un lévro emprimâ per noutron partenèro d’emprèssion a la demanda :',
+	'coll-order_from_pp' => 'Apèrçu avouéc $1',
+	'coll-about_pp' => 'A propôs de $1',
+	'coll-invalid_podpartner_title' => 'Partenèro d’emprèssion a la demanda fôx.',
+	'coll-invalid_podpartner_msg' => 'Lo partenèro d’emprèssion a la demanda balyê est fôx.
+Vos volyéd veriér vers voutron administrator MediaWiki.',
+	'coll-license' => 'Licence',
+	'coll-return_to' => 'Tornar a [[:$1]]',
+	'coll-more_info' => 'Fâre vêre d’ôtres enformacions',
+	'coll-hide_info' => 'Cachiér les enformacions',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress comandar des enformacions',
+	'coll-suggest_title' => 'Pâges conselyês por voutron lévro',
+	'coll-suggest_intro_text' => 'Los consèlys sont basâs sur l’ensemblo de les pâges vouiqui d’ora dens voutron lévro.
+La lista est betâ a jorn a châque côp que vos clicâd sur los botons d’aponsa ou ben de suprèssion.',
+	'coll-suggested_articles' => 'Consèlys',
+	'coll-suggest_reset_bans' => 'tornar inicialisar',
+	'coll-suggest_reset_bans_tooltip' => 'Montrar los consèlys enlevâs dês devant',
+	'coll-suggest_add_selected' => 'Apondre les pâges chouèsies',
+	'coll-suggest_ban_selected' => 'Enlevar les pâges chouèsies',
+	'coll-suggest_your_book' => 'Voutron lévro',
+	'coll-suggest_show' => 'fâre vêre',
+	'coll-suggest_ban_tooltip' => 'Enlevar ceta pâge de la lista des consèlys',
+	'coll-suggest_article_ban' => 'La pâge <strong>$1</strong> at étâ enlevâ des consèlys ($2).',
+	'coll-suggest_article_add' => 'La pâge <strong>$1</strong> at étâ apondua a voutron lévro ($2).',
+	'coll-suggest_article_remove' => 'La pâge <strong>$1</strong> at étâ enlevâ de voutron lévro ($2).',
+	'coll-suggest_undo_tooltip' => 'Dèfâre ceta accion',
+	'coll-suggest_undo' => 'dèfâre',
+	'coll-load_local_book' => 'Clicâd dessus « OK » por continuar voutron lévro %TITLE% que contint %NUMPAGES% pâges vouiqui. Clicâd dessus « Cancel » por lo suprimar et pués comenciér avouéc un lévro vouedo.',
+	'right-collectionsaveasuserpage' => 'Sôvar des lévros sur des pâges usanciér',
+	'right-collectionsaveascommunitypage' => 'Sôvar des lévros sur des pâges a la comunôtât',
+);
+
+/** Friulian (Furlan)
+ * @author Klenje
+ */
+$messages['fur'] = array(
+	'coll-collection' => 'Libri',
+	'coll-collections' => 'Libris',
+	'coll-print_template_prefix' => 'Stampe',
+	'coll-your_book' => 'Il to libri',
+	'coll-download_title' => 'Discjame',
+	'coll-download' => 'Discjame',
+	'coll-title' => 'Titul:',
+	'coll-rename' => 'Gambie non',
+	'coll-save_collection' => 'Salve libri',
+	'coll-yes' => 'Sì',
+	'coll-no' => 'No',
+	'coll-rendering_status' => '<strong>Stât:</strong> $1',
+	'coll-rendering_page' => '(pagjine: $1)',
+	'coll-about_pp' => 'Informazions su $1',
+	'coll-suggested_articles' => 'Sugjeriments',
+	'coll-suggest_add_selected' => 'Zonte lis pagjinis selezionadis',
+	'coll-suggest_ban_selected' => 'Gjave lis pagjinis selezionadis',
+	'coll-suggest_show' => 'mostre',
+);
+
 /** Western Frisian (Frysk)
+ * @author SK-luuut
  * @author Snakesteuben
  */
 $messages['fy'] = array(
 	'coll-yes' => 'Ja',
+	'coll-cancel' => 'Ofbrekke',
 );
 
 /** Galician (Galego)
@@ -2271,57 +4471,46 @@
  */
 $messages['gl'] = array(
 	'coll-desc' => '[[Special:Book|Crear libros]]',
+	'coll-book_creator_intro' => "<big>Co ''creador de libros'' pode crear un libro composto por páxinas do wiki da súa escolla. Pode exportar o libro en diferentes formatos (por exemplo, PDF ou ODF) ou solicitar unha copia impresa.</big>",
+	'coll-manage_your_book' => 'Xestionar o seu libro',
+	'coll-book_creator_help' => 'Olle [[{{MediaWiki:Coll-helppage}}|a páxina de axuda sobre os libros]] para obter máis información.',
+	'coll-start_book_creator' => 'Iniciar o creador de libros',
+	'coll-book_creator_continue' => 'Continuar usando o creador de libros',
+	'coll-book_creator_disable_text' => "O ''creador de libros'' será desactivado e o libro no que está a traballar será eliminado da sesión do seu navegador.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texto do creador de libros',
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libros',
 	'coll-exclusion_category_title' => 'Excluír na impresión',
 	'coll-print_template_prefix' => 'Imprimir',
 	'coll-print_template_pattern' => '$1/Imprimir',
-	'coll-create_a_book' => 'Crear un libro',
-	'coll-add_page' => 'Engadir a páxina',
-	'coll-add_page_tooltip' => 'Engadir a páxina wiki actual ao seu libro',
-	'coll-remove_page' => 'Eliminar a páxina',
-	'coll-remove_page_tooltip' => 'Eliminar a páxina wiki actual do seu libro',
-	'coll-add_category' => 'Engadir categoría',
-	'coll-add_category_tooltip' => 'Engadir todos os artigos desta categoría ao seu libro',
-	'coll-load_collection' => 'Cargar un libro',
-	'coll-load_collection_tooltip' => 'Cargar este libro como o seu libro actual',
-	'coll-show_collection' => 'Mostrar o libro',
-	'coll-show_collection_tooltip' => 'Prema para editar/descargar/pedir o seu libro',
-	'coll-help_collections' => 'Axuda cos libros',
-	'coll-help_collections_tooltip' => 'Mostrar a axuda sobre a ferramenta de libros',
-	'coll-n_pages' => '$1 {{PLURAL:$1|páxina|páxinas}}',
 	'coll-unknown_subpage_title' => 'Subpáxina descoñecida',
 	'coll-unknown_subpage_text' => 'Esta subpáxina de [[Special:Book|Libro]] non existe',
-	'coll-printable_version_pdf' => 'Versión PDF',
-	'coll-download_as' => 'Descargar como $1',
+	'coll-couldnotaddarticle_title' => 'Non se puido engadir o artigo',
+	'coll-couldnotaddarticle_msg' => 'O artigo non puido ser engadido.',
+	'coll-couldnotremovearticle_title' => 'Non se puido eliminar o artigo',
+	'coll-couldnotremovearticle_msg' => 'O artigo non puido ser eliminado.',
 	'coll-noscript_text' => '<h1>Requírese o JavaScript!</h1>
 <strong>O seu navegador non soporta o JavaScript ou o JavaScript foi deshabilitado.
 Esta páxina non funcionará correctamente, polo menos ata que o JavaScript sexa habilitado.</strong>',
-	'coll-intro_text' => 'Cree e xestione a súa escolla individual de páxinas wiki.<br />Bótelle unha ollada a [[{{MediaWiki:Coll-helppage}}]] para máis información.',
-	'coll-helppage' => 'Help:Libros',
-	'coll-bookscategory' => 'Libros',
 	'coll-savedbook_template' => 'libro_gardado',
 	'coll-your_book' => 'O seu libro',
 	'coll-download_title' => 'Descargar',
-	'coll-download_text' => 'Para descargar sen conexión unha versión vella do ficheiro, escolla un formato e faga clic no botón.',
-	'coll-download_as_text' => 'Para descargar unha versión en formato $1, prema no botón.',
+	'coll-download_text' => 'Para descargar o seu libro, escolla un formato e faga clic no botón.',
+	'coll-download_as_text' => 'Para descargar o seu libro en formato $1, prema no botón.',
 	'coll-download' => 'Descargar',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Eliminar',
 	'coll-show' => 'Mostrar',
-	'coll-move_to_top' => 'Ir arriba',
+	'coll-move_to_top' => 'Ir ao inicio',
 	'coll-move_up' => 'Mover arriba',
 	'coll-move_down' => 'Mover abaixo',
-	'coll-move_to_bottom' => 'Ir abaixo',
+	'coll-move_to_bottom' => 'Ir ao final',
 	'coll-title' => 'Título:',
 	'coll-subtitle' => 'Subtítulo:',
 	'coll-contents' => 'Contidos',
-	'coll-drag_and_drop' => 'Use amosar e agochar para reordenar as páxinas e os capítulos wiki',
+	'coll-drag_and_drop' => 'Use arrastrar e soltar para reordenar as páxinas wiki e os capítulos',
 	'coll-create_chapter' => 'Crear un capítulo',
 	'coll-sort_alphabetically' => 'Ordenar alfabeticamente',
-	'coll-clear_collection' => 'Borrar o libro',
-	'coll-clear_collection_tooltip' => 'Eliminar todos os artigos do seu libro actual',
-	'coll-clear_collection_confirm' => 'Realmente quere eliminar por completo o seu libro?',
 	'coll-rename' => 'Renomear',
 	'coll-new_chapter' => 'Insira un nome para o novo capítulo',
 	'coll-rename_chapter' => 'Insira un novo nome para o capítulo',
@@ -2340,52 +4529,83 @@
 	'coll-personal_collection_label' => 'Libro persoal:',
 	'coll-community_collection_label' => 'Libro da comunidade:',
 	'coll-save_collection' => 'Gardar o libro',
-	'coll-save_category' => 'Os libros son gardados na categoría [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
-	'coll-overwrite_title' => 'A páxina existe. Desexa sobreescribir?',
+	'coll-save_category' => 'Todos os libros son engadidos á categoría [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'A páxina existe.
+Quere sobrescribila?',
 	'coll-overwrite_text' => 'Xa existe unha páxina chamada [[:$1]].
 Quere reemprazala coa súa colección?',
 	'coll-yes' => 'Si',
 	'coll-no' => 'Non',
 	'coll-load_overwrite_text' => 'Xa ten algunhas páxinas no seu libro.
-Desexa sobreescribir o seu libro actual, adxuntar o novo contido ou cancelar a carga deste libro?',
-	'coll-overwrite' => 'Sobreescribir',
-	'coll-append' => 'Adxuntar',
+Desexa sobrescribir o seu libro actual, anexar o novo contido ou cancelar a carga deste libro?',
+	'coll-overwrite' => 'Sobrescribir',
+	'coll-append' => 'Anexar',
 	'coll-cancel' => 'Cancelar',
 	'coll-update' => 'Actualizar',
 	'coll-limit_exceeded_title' => 'Libro moi grande',
 	'coll-limit_exceeded_text' => 'O seu libro é moi grande.
 Non se poden engadir máis páxinas.',
 	'coll-rendering_title' => 'Renderizando',
-	'coll-rendering_text' => '<p><strong>Por favor, agarde mentres o documento é xerado.</strong></p>
+	'coll-rendering_text' => '<p><strong>Por favor, agarde mentres se xera o documento.</strong></p>
 
 <p><strong>Progreso:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
 <p>Esta páxina debería refrescarse cada poucos segundos.
-Se non vai, por favor, prema no botón "Refrescar" do seu navegador.</p>',
+Se non vai, prema no botón "Refrescar" do seu navegador.</p>',
 	'coll-rendering_status' => '<strong>Estado:</strong> $1',
 	'coll-rendering_article' => '(páxina wiki: $1)',
 	'coll-rendering_page' => '(páxina: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre o renderizado de páxinas',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre o renderizado de coleccións',
 	'coll-rendering_finished_title' => 'Finalizou a renderización',
-	'coll-rendering_finished_text' => '<strong>O ficheiro do documento foi xerado.</strong>
+	'coll-rendering_finished_text' => '<strong>Xerouse o documento.</strong>
 <strong>[$1 Descargue o ficheiro]</strong> no seu ordenador.
 
 Notas:
-*Non está satisfeito co ficheiro obtido? Vexa [[{{MediaWiki:Coll-helppage}}|a páxina de axuda acerca das coleccións]] para comprobar as posibilidades de melloralo.',
+*Non está satisfeito co ficheiro obtido? Vexa [[{{MediaWiki:Coll-helppage}}|a páxina de axuda acerca dos libros]] para comprobar as posibilidades de melloralo.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre o renderizado de páxinas',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre o renderizado de coleccións',
 	'coll-notfound_title' => 'Non se pode atopar o libro',
 	'coll-notfound_text' => 'Non se pode atopar a páxina do libro.',
+	'coll-download_notfound_title' => 'Non se atopou o ficheiro',
+	'coll-download_notfound_text' => 'O ficheiro que está intentando descargar non existe: talvez foi borrado e necesita ser rexerado.',
+	'coll-download_failed_title' => 'Produciuse un erro durante a descarga',
+	'coll-download_failed_text' => 'Houbo un erro durante a descarga do ficheiro: $1',
 	'coll-is_cached' => '<ul><li>Atopouse unha versión do documento na memoria caché, polo que non vai ser necesaria a renderización. <a href="$1">Forzala.</a></li></ul>',
 	'coll-excluded-templates' => '* O modelos que están na categoría "[[:Category:$1|$1]]" foron excluídos.',
 	'coll-blacklisted-templates' => '* O modelos da lista negra "[[:$1]]" foron excluídos.',
-	'coll-return_to_collection' => '<p>Voltar a <a href="$1">$2</a></p>',
+	'coll-return_to_collection' => '<p>Volver a "<a href="$1">$2</a>"</p>',
 	'coll-book_title' => 'Encargar como un libro impreso',
 	'coll-book_text' => 'Obteña un libro impreso desde un dos nosos seguintes compañeiros de solicitudes de impresión:',
-	'coll-order_from_pp' => 'Encargar un libro a $1',
+	'coll-order_from_pp' => 'Vista previa con $1',
 	'coll-about_pp' => 'Acerca de $1',
 	'coll-invalid_podpartner_title' => 'Compañeiro de solicitudes de impresión (POD) inválido',
 	'coll-invalid_podpartner_msg' => 'O compañeiro de solicitudes de impresión (POD) indicado é inválido.
 Por favor, contacte co seu administrador MediaWiki.',
 	'coll-license' => 'Licenza',
-	'coll-return_to' => 'Voltar a "[[:$1]]"',
+	'coll-return_to' => 'Volver a "[[:$1]]"',
+	'coll-more_info' => 'Obter máis información',
+	'coll-hide_info' => 'Agochar a información',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Información de pedido a PediaPress',
+	'coll-suggest_title' => 'Páxinas recomendadas para o seu libro',
+	'coll-suggest_intro_text' => 'As suxestións están baseadas no conxunto actual de páxinas do wiki no seu libro.
+A lista actualízase sempre que preme no botón engadir ou eliminar.',
+	'coll-suggested_articles' => 'Suxestións',
+	'coll-suggest_reset_bans' => 'restablecer',
+	'coll-suggest_reset_bans_tooltip' => 'Mostrar as suxestións previamente eliminadas',
+	'coll-suggest_add_selected' => 'Engadir as páxinas seleccionadas',
+	'coll-suggest_ban_selected' => 'Eliminar as páxinas seleccionadas',
+	'coll-suggest_your_book' => 'O seu libro',
+	'coll-suggest_show' => 'mostrar',
+	'coll-suggest_ban_tooltip' => 'Eliminar esta páxina da lista de suxestións',
+	'coll-suggest_article_ban' => 'A páxina "<strong>$1</strong>" foi eliminada das suxestións ($2).',
+	'coll-suggest_article_add' => 'A páxina "<strong>$1</strong>" foi engadida ao seu libro ($2).',
+	'coll-suggest_article_remove' => 'A páxina "<strong>$1</strong>" foi eliminada do seu libro ($2).',
+	'coll-suggest_undo_tooltip' => 'Desfacer esta acción',
+	'coll-suggest_undo' => 'desfacer',
+	'coll-load_local_book' => 'Prema en "Aceptar" para continuar co seu libro titulado "%TITLE%", formado por %NUMPAGES% páxinas wiki. Prema en "Cancelar" para borralo e comezar un libro novo.',
+	'right-collectionsaveasuserpage' => 'Gardar libros como unha páxina de usuario',
+	'right-collectionsaveascommunitypage' => 'Gardar libros como unha páxina da comunidade',
 );
 
 /** Ancient Greek (Ἀρχαία ἑλληνικὴ)
@@ -2393,16 +4613,23 @@
  * @author Omnipaedista
  */
 $messages['grc'] = array(
+	'coll-collection' => 'Βιβλίον',
+	'coll-collections' => 'Βιβλία',
+	'coll-download_title' => 'καταφορτίζειν',
 	'coll-download' => 'Καταφόρτισις',
 	'coll-remove' => 'Άφαιρεῖν',
 	'coll-show' => 'Δεικνύναι',
 	'coll-title' => 'Ἐπιγραφή:',
 	'coll-subtitle' => 'Ὑποεπιγραφή:',
 	'coll-contents' => 'Περιεχόμενα',
+	'coll-rename' => 'Ἐπανωνομάζειν',
+	'coll-revision' => 'Ἀναθεώρησις: $1',
 	'coll-yes' => 'Ναί',
 	'coll-no' => 'Οὐ',
 	'coll-cancel' => 'Ἀκυροῦν',
+	'coll-update' => 'Ἐνημεροῦν',
 	'coll-rendering_title' => 'Ἀπόδοσις',
+	'coll-rendering_status' => '<strong>Κατάστασις:</strong> $1',
 	'coll-about_pp' => 'Περὶ $1',
 	'coll-license' => 'Ἄδεια',
 	'coll-return_to' => 'Ἐπανιέναι εἰς [[:$1]]',
@@ -2415,40 +4642,33 @@
  */
 $messages['gsw'] = array(
 	'coll-desc' => '[[Special:Book|Leg Biecher aa]]',
+	'coll-book_creator_intro' => "<big>Mit em ''Buechmodus'' chasch Du ne Buech us beliebige Wikisyte aalege.
+Du chasch d Buech in unterschidlige Format exportiere (zem Byschpel PDF oder ODF) oder in ere druckte Form bstelle.</big>",
+	'coll-manage_your_book' => 'Dyy Buech verwalte',
+	'coll-book_creator_help' => 'Luege d [[{{MediaWiki:Coll-helppage}}|Hilf zue Biecher]] fir meh Informatione.',
+	'coll-start_book_creator' => 'Buechmodus starte',
+	'coll-book_creator_continue' => 'Buechgenerator wyter verwände',
+	'coll-book_creator_disable_text' => "Dr ''Buchgenerator'' wird deaktiviert un s Buech, wu Du dra schaffsch, wird glescht.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text fir Buechmodus',
 	'coll-collection' => 'Buech',
 	'coll-collections' => 'Biecher',
 	'coll-exclusion_category_title' => 'Vum Druck usschließe',
 	'coll-print_template_prefix' => 'Drucke',
 	'coll-print_template_pattern' => '$1/Druck',
-	'coll-create_a_book' => 'Buech aalege',
-	'coll-add_page' => 'Artikel zuefiege',
-	'coll-add_page_tooltip' => 'Di aktuäll Wikisyte zue Dyynem Buech zuefiege',
-	'coll-remove_page' => 'Artikel useneh',
-	'coll-remove_page_tooltip' => 'Di aktuäll Wikisyte us Dyynem Buech uuseneh',
-	'coll-add_category' => 'Kategorii zuefiege',
-	'coll-add_category_tooltip' => 'Alli Wikisyte in däre Kategorii in Dyy Buech yyfiege',
-	'coll-load_collection' => 'Buech lade',
-	'coll-load_collection_tooltip' => 'Des Buech as Dyy aktuäll Buech lade',
-	'coll-show_collection' => 'Buech zeige',
-	'coll-show_collection_tooltip' => 'Druck do go Dyy Buech bearbeite/abelade/bstelle',
-	'coll-help_collections' => 'Hilf zue Biecher',
-	'coll-help_collections_tooltip' => 'D Hilf zum Buech-Tool aazeige',
-	'coll-n_pages' => '$1 {{PLURAL:$1|Syte|Syte}}',
 	'coll-unknown_subpage_title' => 'Nit bekannti Untersyte',
 	'coll-unknown_subpage_text' => 'Die Untersyte vu dr [[Special:Book|Buech]] git s nit',
-	'coll-printable_version_pdf' => 'PDF-Version',
-	'coll-download_as' => 'As $1 abelade',
+	'coll-couldnotaddarticle_title' => 'Cha d Wikisyte nit zuefiege',
+	'coll-couldnotaddarticle_msg' => 'D Wikisyte het nit chenne zuegfiegt wäre.',
+	'coll-couldnotremovearticle_title' => 'D Wikisyte het nit chenne usegnuu wäre',
+	'coll-couldnotremovearticle_msg' => 'D Wikisyte het nit chenne uusegnuu wäre.',
 	'coll-noscript_text' => '<h1>S brucht JavaScript!</h1>
 <strong>Dyy Browser unterstitzt kei JavaScript oder s JavaScript isch deaktiviert.
 Die Syte funktioniert eso lang nit richtig, solang JavaScript nit verfiegbar isch.</strong>',
-	'coll-intro_text' => 'Leg Dyyni individuäll Sammlig vu Syte aa un verwalt si.<br />Lueg d [[{{MediaWiki:Coll-helppage}}|Hilf zue Sammlige]] fir wyteri Informatione.',
-	'coll-helppage' => 'Help:Biecher',
-	'coll-bookscategory' => 'Biecher',
-	'coll-savedbook_template' => 'gspycheret_buech',
+	'coll-savedbook_template' => 'gspycheret_Buech',
 	'coll-your_book' => 'Dyy Buech',
 	'coll-download_title' => 'Abelade',
-	'coll-download_text' => 'Go ne Offline-Version abelade, wehl e Format un druck uf d Schaltflächi.',
-	'coll-download_as_text' => 'Go ne Offline-Version im Format $1 abezlade, druck uf d Schaltflächi.',
+	'coll-download_text' => 'Go Dyy Buech abelade, wehl e Format un druck uf d Schaltflächi.',
+	'coll-download_as_text' => 'Go Dyy Buech im Format $1 abelade, druck uf d Schaltflächi.',
 	'coll-download' => 'Abelade',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Useneh',
@@ -2463,9 +4683,6 @@
 	'coll-drag_and_drop' => 'Mit dr Muus chasch Syten un Kapitel verschiebe go d Reihefolg ändere',
 	'coll-create_chapter' => 'Kapitel aalege',
 	'coll-sort_alphabetically' => 'Noch em Alfabet sortiere',
-	'coll-clear_collection' => 'Buech lesche',
-	'coll-clear_collection_tooltip' => 'Alli Wikisyte us Dyynem aktuälle Buech useneh',
-	'coll-clear_collection_confirm' => 'Mechtsch Dyy Buech ächt lesche?',
 	'coll-rename' => 'Umnänne',
 	'coll-new_chapter' => 'Gib e Name fir e nej Kapitel yy',
 	'coll-rename_chapter' => 'Gib e neije Name fir s Kapitel yy',
@@ -2484,7 +4701,7 @@
 	'coll-personal_collection_label' => 'Persenlig Buech:',
 	'coll-community_collection_label' => 'Community-Buech:',
 	'coll-save_collection' => 'Buech spychere',
-	'coll-save_category' => 'Biecher wäre in dr Kategorii [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] gspycheret.',
+	'coll-save_category' => 'Alli gspycherete Biecher wäre in d Kategorii [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] yygfiegt.',
 	'coll-overwrite_title' => 'Syte git s scho, iberschryybe?',
 	'coll-overwrite_text' => 'E Syte mit em Name [[:$1]] git s scho. Mechtsch si dur Dyyni Sammlig ersetze?',
 	'coll-yes' => 'Jo',
@@ -2504,51 +4721,230 @@
 
 <p>Die Syte sott si alli paar Sekunde vu sälber aktualisiere.
 Wänn des aber nit gschiht, no druck bitte dr „Aktualisiere“-Chnopf (meischt F5) vu Dyynem Browser.</p>',
-	'coll-rendering_status' => 'strong>Status:</strong> $1',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(Artikel: $1)',
 	'coll-rendering_page' => '(Syte: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Am Rendere vum Syteninfotext',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Am Rendere vum Sammligsinfotext',
 	'coll-rendering_finished_title' => 'Fertig aagleit',
 	'coll-rendering_finished_text' => '<strong>D Datei isch mit Erfolg aagleit wore.</strong>
 <strong>[$1 Dokument abelade]</strong>.
 
 Hiiwyys:
 * Bisch mit em Ergebnis nit zfride? Megligkeite d Uusgab z verbessere findsch uf dr [[{{MediaWiki:Coll-helppage}}|Hilfsyte iber d Sammlige]].',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendere vu dr Syteinformation',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendere vum Buech',
 	'coll-notfound_title' => 'Buech nit gfunde',
 	'coll-notfound_text' => 'Dyyni Buech het nit chenne gfunde wäre.',
-	'coll-is_cached' => '<ul><li>S git e Version vum Dokumänt, wu zwischegspycheret isch, so dass kein Rendering notwändig gsi isch. <a href="$1">Nej-Rendering erzwinge.</a></li></ul>',
+	'coll-download_notfound_title' => 'Datei nit gfunde',
+	'coll-download_notfound_text' => 'D Datei, wu Du versuechsch abezlade, git s nit: Villicht isch si glescht wore oder si muess nej generiert wäre.',
+	'coll-download_failed_title' => 'Fähler bim Abelade',
+	'coll-download_failed_text' => 'S het e Fähler gee bim Abelade vu dr Datei: $1',
+	'coll-is_cached' => '<ul><li>S git e Version vum Dokumänt, wu zwischegspycheret isch, so dass kei Erstellig notwändig gsi isch (<a href="$1">Nejerstellig erzwinge</a>).</li></ul>',
 	'coll-excluded-templates' => '* Vorlage us dr Kategorii [[:Category:$1|$1]] sin usgschlosse wore.',
 	'coll-blacklisted-templates' => '* Vorlage vu dr Schwarze Lischt [[:$1]] sin usgschlosse wore.',
 	'coll-return_to_collection' => 'Zruck zue <a href="$1">$2</a>',
 	'coll-book_title' => 'As druckts Buech bstelle',
 	'coll-book_text' => 'Bstell e druckti Buechusgab bi unserem Print-on-Demand-Partner:',
-	'coll-order_from_pp' => 'Bstell Buech bi $1',
+	'coll-order_from_pp' => 'Vorschau bi $1',
 	'coll-about_pp' => 'Iber $1',
 	'coll-invalid_podpartner_title' => 'Nit giltige Print-on-Demand-Partner',
 	'coll-invalid_podpartner_msg' => 'In dr Aagabe zum Print-on-Demand-Partner het s Fähler. Bitte nimm Kontakt uf zu MediaWiki-Administrator.',
 	'coll-license' => 'Lizänz',
 	'coll-return_to' => 'Zruck zue [[:$1]]',
+	'coll-more_info' => 'Meh Informatione zeige',
+	'coll-hide_info' => 'Informatione verstecke',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress Bstellinformation',
+	'coll-suggest_title' => 'Vorgschlageni Syte fir Dyy Buech',
+	'coll-suggest_intro_text' => 'Vorschleg basieren uf dr aktuälle Wikisytenyystellige in Dyym Buech.
+Alliwyl, wänn Du uf d Zuefiege- oder Useneh-Schaltflechine drucksch, wird die Lischt aktualisiert.',
+	'coll-suggested_articles' => 'Vorschleg',
+	'coll-suggest_reset_bans' => 'zrucksetze',
+	'coll-suggest_reset_bans_tooltip' => 'Vorschleg aazeige, wu zletscht uusegnuu wore sin',
+	'coll-suggest_add_selected' => 'Uusgwehlti Syte zuefiege',
+	'coll-suggest_ban_selected' => 'Uusgwehlti Syte uuseneh',
+	'coll-suggest_your_book' => 'Dyy Buech',
+	'coll-suggest_show' => 'zeige',
+	'coll-suggest_ban_tooltip' => 'Die Syte us dr Vorschlagslischt uuseneh',
+	'coll-suggest_article_ban' => 'D Syte <strong>$1</strong> isch us dr Vorschleg uusegnuu wore ($2).',
+	'coll-suggest_article_add' => 'D Syte <strong>$1</strong> isch zue Dyym Buech zuegfiegt wore ($2).',
+	'coll-suggest_article_remove' => 'D Syte <strong>$1</strong> isch us Dyym Buech uusegnuu wore ($2).',
+	'coll-suggest_undo_tooltip' => 'Die Aktion ruckgängig mache',
+	'coll-suggest_undo' => 'ruckgängig',
+	'coll-load_local_book' => 'Druck uf OK, go mit Dyym Buech %TITLE% wytermache, wu us %NUMPAGES% Wikisyte bstoht. Druck uf Abbräche go s wider lesche un mit eme lääre Buech aafange.',
+	'right-collectionsaveasuserpage' => 'Biecher as Benutzersyte spychere',
+	'right-collectionsaveascommunitypage' => 'Biecher as Gmeinschaftssyte spychere',
 );
 
+/** Gujarati (ગુજરાતી)
+ * @author Ashok modhvadia
+ * @author Dsvyas
+ */
+$messages['gu'] = array(
+	'coll-desc' => '[[ખાસ:પુસ્તક|પુસ્તક બનાવો]]',
+	'coll-book_creator_intro' => "<big>''પુસ્તક નિર્માતા'' વડે તમે તમારી પસંદના વિકિ પાનાંઓ ભેગા કરીને પુસ્તક બનાવી શકો છો. તમે વિવિધ શૈલી (જેમકે PDF કે ODF)માં આ પુસ્તકની નિકાસ કરી શકો છો અથવા છાપેલું પુસ્તક મેળવવાની ફરમાયશ કરી શકો છો.</big>",
+	'coll-manage_your_book' => 'તમારું પુસ્તક સંભાળો',
+	'coll-book_creator_help' => 'વધુ માહિતી માટે [[{{MediaWiki:Coll-helppage}}|પુસ્તક અંગે મદદનું પાનું]] જુઓ',
+	'coll-start_book_creator' => 'પુસ્તક નિર્માતા શરૂ કરો',
+	'coll-book_creator_continue' => 'પુસ્તક નિર્માતાનો વપરાશ ચાલુ રાખો',
+	'coll-book_creator_disable_text' => "''પુસ્તક નિર્માતા'' નિષ્ક્રિય થઈ જશે અને તમે જે પુસ્તક પર કામ કરી રહ્યાં છો તે હટાવવામાં આવશે",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/પુસ્તક નિર્માતા લખાણ',
+	'coll-collection' => 'પુસ્તક',
+	'coll-collections' => 'પુસ્તકો',
+	'coll-exclusion_category_title' => 'છપાઇમાં સામેલ નહીં',
+	'coll-print_template_prefix' => 'છપાઇ',
+	'coll-print_template_pattern' => '$1/છપાઇ',
+	'coll-unknown_subpage_title' => 'અજ્ઞાત ઉપપાનું',
+	'coll-unknown_subpage_text' => '[[ખાસ:પુસ્તક|પુસ્તક]]નું આ ઉપપાનું ઉપલબ્ધ નથી',
+	'coll-couldnotaddarticle_title' => 'વિકિ પાનું ઉમેરી શકાયું નથી',
+	'coll-couldnotaddarticle_msg' => 'આ વિકિ પાનું ઉમેરી શકાય તેમ નથી.',
+	'coll-couldnotremovearticle_title' => 'વિકિ પાનું હટાવી શકાયું નથી',
+	'coll-couldnotremovearticle_msg' => 'આ વિકિ પાનું હટાવી શકાય તેમ નથી',
+	'coll-noscript_text' => '<h1>જાવાસ્ક્રિપ્ટ જરૂરી!</h1>
+<strong>તમારું બ્રાઉઝર જાવાસ્ક્રિપ્ટને સમર્થન કરતું નથી અથવાતો જાવાસ્ક્રિપ્ટ નિષ્ક્રિય કરેલ છે.</br>
+જ્યાં સુધી જાવાસ્ક્રિપ્ટ સક્રિય કરાશે નહીં ત્યાં સુધી આ પાનું બરાબર કામ આપશે નહીં.</strong>',
+	'coll-savedbook_template' => 'સાચવેલ_પુસ્તક',
+	'coll-your_book' => 'તમારૂં પુસ્તક',
+	'coll-download_title' => 'ડાઉનલોડ',
+	'coll-download_text' => 'તમારું પુસ્તક ડાઉનલોડ કરવા શૈલી પસંદ કરો અને બટન પર ક્લિક કરો.',
+	'coll-download_as_text' => 'તમારું પુસ્તક $1 શૈલીમાં ડાઉનલોડ કરવા બટન પર ક્લિક કરો.',
+	'coll-download' => 'ડાઉનલોડ',
+	'coll-format_label' => 'શૈલી:',
+	'coll-remove' => 'દુર કરો',
+	'coll-show' => 'બતાવો',
+	'coll-move_to_top' => 'મથાળે લઇ જાઓ',
+	'coll-move_up' => 'ઉપર લઇ જાઓ',
+	'coll-move_down' => 'નીચે લઇ જાઓ',
+	'coll-move_to_bottom' => 'તળીયે લઇ જાઓ',
+	'coll-title' => 'મથાળું:',
+	'coll-subtitle' => 'પેટામથાળું:',
+	'coll-contents' => 'વિષય સૂચિ',
+	'coll-drag_and_drop' => 'વિકિ પાનાઓ અને પ્રકરણોને ફરી ગોઠવવા માટે ઘસડી અને મૂકો',
+	'coll-create_chapter' => 'પ્રકરણ બનાવો',
+	'coll-sort_alphabetically' => 'મૂળાક્ષરો પ્રમાણે ગોઠવો',
+	'coll-rename' => 'નામ બદલો',
+	'coll-new_chapter' => 'નવા પ્રકરણને નામ આપો',
+	'coll-rename_chapter' => 'પ્રકરણને નવું નામ આપો',
+	'coll-no_such_category' => 'આવી કોઇ શ્રેણી નથી',
+	'coll-notitle_title' => 'પાનાનું મથાળું નિર્ધારિત થઇ શકતું નથી.',
+	'coll-post_failed_title' => 'પ્રસિધ્ધ કરવાની વિનંતી નિષ્ફળ',
+	'coll-post_failed_msg' => '$1ને પ્રસિધ્ધ કરવાની વિનંતી નિષ્ફળ ($2).',
+	'coll-mwserve_failed_title' => 'હેવાલ સર્વર ત્રુટિ',
+	'coll-mwserve_failed_msg' => 'હેવાલ સર્વર <nowiki>$1</nowiki> પર ત્રુટિ છે',
+	'coll-error_reponse' => 'સર્વર પરથી ત્રુટિ પ્રતિક્રિયા',
+	'coll-empty_collection' => 'ખાલી પુસ્તક',
+	'coll-revision' => 'સુધારો: $1',
+	'coll-save_collection_title' => 'તમારૂં પુસ્તક સાચવો અને વહેંચો',
+	'coll-save_collection_text' => 'તમારૂં પુસ્તક સાચવવા માટેની જગ્યા પસંદ કરો:',
+	'coll-login_to_save' => 'જો તમે ભવિષ્યમાં ઉપયોગ માટે પુસ્તક સાચવવા માંગતા હોવ તો [[Special:UserLogin|પ્રવેશ કરો અથવા ખાતું ખોલો]].',
+	'coll-personal_collection_label' => 'વ્યક્તિગત પુસ્તક:',
+	'coll-community_collection_label' => 'સમૂહ પુસ્તક',
+	'coll-save_collection' => 'પુસ્તક સાચવો',
+	'coll-save_category' => 'સાચવેલા બધા પુસ્તકો શ્રેણી [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]માં ઉમેરવામાં આવે છે',
+	'coll-overwrite_title' => 'પાનું અસ્તિત્વમાં છે.
+જૂનું ભૂંસી નવું લખાણ સાચવવું છે?',
+	'coll-overwrite_text' => '[[:$1]] નામ વાળું પાનું પહેલેથી અસ્તિત્વમાં છે.
+તેની જગ્યાએ તમે તમારું પુસ્તક સાચવવા માંગો છો?',
+	'coll-yes' => 'હા',
+	'coll-no' => 'ના',
+	'coll-load_overwrite_text' => 'તમારા પુસ્તકમાં પહેલેથી જ અમુક પાનાં છે.
+તમે તમારા પુસ્તકનાં જૂના પાનાંને બદલે નવાં ઉમેરવા ચાહો છો કે નવી માહિતી ઉમેરવા માંગો છો? કે પછી આ પુસ્તક લાદવાનું માંડી વાળવું છે?',
+	'coll-overwrite' => 'જૂનું ભૂંસી નવું લખો',
+	'coll-append' => 'ઉમેરણ',
+	'coll-cancel' => 'રદ કરો',
+	'coll-update' => 'અદ્યતન કરો',
+	'coll-limit_exceeded_title' => 'ઘણું મોટું પુસ્તક',
+	'coll-limit_exceeded_text' => 'પુસ્તક ઘણું મોટું થઈ ગયું છે.
+એક પણ વધુ પાનું ઉમેરી શકાશે નહી.',
+	'coll-rendering_title' => 'ચિત્રણ',
+	'coll-rendering_text' => '<p><strong>દસ્તાવેજ તૈયાર થાય ત્યાં સુધી રાહ જુઓ.</strong></p>
+
+<p><strong>પ્રગતિ:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>આ પાનું અમુક પળો બાદ આપોઆપ તાજું કરવામાં આવશે.
+જો તેમ ના થાય તો તમારા બ્રાઉઝરનું રિફ્રેશ બટન ક્લિક કરો.</p>',
+	'coll-rendering_status' => '<strong>સ્થિતિ:</strong> $1',
+	'coll-rendering_article' => '(વિકિ પૃષ્ઠ: $1)',
+	'coll-rendering_page' => '(પૃષ્ઠ: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering page info text',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering collection info text',
+	'coll-rendering_finished_title' => 'ચિત્રણ સંપૂર્ણ',
+	'coll-rendering_finished_text' => '<strong>દસ્તાવેજ ફાઇલ તૈયાર છે.</strong>
+તમારા કમ્પ્યૂટર પર <strong>[$1 ફાઇલ ડાઉનલોડ કરો]</strong>.
+
+નોંધ:
+* પરિણામથી સંતુષ્ટ નથી? ગુણવત્તા સુધારવાની શક્યતાઓ માટે [[{{MediaWiki:Coll-helppage}}|પુસ્તક માટેની મદદનું પાનું]] જુઓ.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering page info text',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rendering collection info text',
+	'coll-notfound_title' => 'પુસ્તક મળ્યું નથી',
+	'coll-notfound_text' => 'પુસ્તકનું પાનું મળી શક્યું નથી.',
+	'coll-download_notfound_title' => 'ફાઇલ મળી નથી',
+	'coll-download_notfound_text' => 'તમે જે ફાઇલ ડાઉનલોડ કરવા માંગો છો તે અસ્તિત્વમાં નથી:
+કદાચ તે દૂર કરવામાં આવી છે અને તેને નવેસરથી બનાવવાની જરૂર છે.',
+	'coll-download_failed_title' => 'ડાઉનલોડ દરમ્યાન ત્રુટિ',
+	'coll-download_failed_text' => 'ફાઇલ $1 ડાઉનલોડ કરતાં ત્રુટિ ઉદ્ભવી છે',
+	'coll-is_cached' => '<ul><li>A cached version of the document has been found, so no rendering was necessary.
+<a href="$1">Force re-rendering.</a></li></ul>',
+	'coll-excluded-templates' => '[[:Category:$1|$1]]માં રહેલા ઢાંચાઓ બાકાત રાખવામાં આવ્યાં છે.',
+	'coll-blacklisted-templates' => 'બ્લેકલિસ્ટ [[:$1]]માંના ઢાંચાઓ બાકાત રાખવામાં આવ્યા છે.',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a> પર પાછા જાવ</p>',
+	'coll-book_title' => 'છાપેલા પુસ્તકની ફરમાયશ કરો',
+	'coll-book_text' => 'અમારા પ્રિન્ટ-ઓન-ડિમાન્ડ (આવશ્યકતા સમયે છાપી આપતા) ભાગીદાર પાસેથી પુસ્તક છપાવો',
+	'coll-order_from_pp' => '$1માં ઝલક બતાવો',
+	'coll-about_pp' => '$1 વિષે',
+	'coll-invalid_podpartner_title' => 'Invalid POD partner',
+	'coll-invalid_podpartner_msg' => 'પસંદ કરેલ POD ભાગીદાર અમાન્ય છે.
+તમારા મીડિયાવિકિ પ્રબંધકનો સંપર્ક કરો.',
+	'coll-license' => 'પરવાનો',
+	'coll-return_to' => '[[:$1]] પર પાછા વળો',
+	'coll-more_info' => 'વધુ માહિતી બતાવો',
+	'coll-hide_info' => 'માહિતી છુપાવો',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/પીડિયાપ્રેસ ફરમાયશ માહિતી',
+	'coll-suggest_title' => 'તમારા પુસ્તક માટે પાનાંના સુઝાવ',
+	'coll-suggest_intro_text' => 'સુઝાવો તમારા પુસ્તકમાં હાલમાં રહેલા વિકિ પૃષ્ઠોને આધારે કરવામાં આવ્યાં છે.
+જ્યારે જ્યારે તમે ઉમેરો કે કાઢી નાંખો બટન પર ક્લિક કરશો ત્યારે ત્યારે આ યાદી બદલાતી જશે.',
+	'coll-suggested_articles' => 'સુઝાવ',
+	'coll-suggest_reset_bans' => 'reset',
+	'coll-suggest_reset_bans_tooltip' => 'પહેલા કાઢી નાંખેલા પાનાં બતાવો',
+	'coll-suggest_add_selected' => 'પસંદ કરેલાં પાનાં ઉમેરો',
+	'coll-suggest_ban_selected' => 'પસંદ કરેલાં પાનાં કાઢી નાંખો',
+	'coll-suggest_your_book' => 'તમારૂં પુસ્તક',
+	'coll-suggest_show' => 'બતાવો',
+	'coll-suggest_ban_tooltip' => 'સુઝાવોમાંથી આ પાનું કાઢી નાંખો',
+	'coll-suggest_article_ban' => 'સુઝાવોમાંથી પાનું <strong>$1</strong> દૂર કરવામાં આવ્યું છે ($2).',
+	'coll-suggest_article_add' => 'તમારા પુસ્તકમાં પાનું <strong>$1</strong> ઉમેરવામાં આવ્યું છે ($2).',
+	'coll-suggest_article_remove' => 'પાનું <strong>$1</strong> તમારા પુસ્તકમાંથી દૂર કરવામાં આવ્યું છે ($2).',
+	'coll-suggest_undo_tooltip' => 'આ ક્રિયા રદ કરો',
+	'coll-suggest_undo' => 'undo',
+	'coll-load_local_book' => 'તમારા પુસ્તક %TITLE% જેમાં %NUMPAGES% પાન છે તેની સાથે આગળ વધવા માટે OK પર ક્લિક કરો. તેને દૂર કરીને નવેસરથી શરૂઆત કરવા માટે Cancel પર ક્લિક કરો.',
+	'right-collectionsaveasuserpage' => 'પુસ્તકોને સભ્યના પાનાં તરીકે સાચવો',
+	'right-collectionsaveascommunitypage' => 'પુસ્તકોને સમાજ પૃષ્ઠ તરીકે સાચવો',
+);
+
 /** Manx (Gaelg)
  * @author MacTire02
  */
 $messages['gv'] = array(
-	'coll-collection' => 'Çhaglym',
-	'coll-collections' => 'Çhaglymyn',
-	'coll-create_a_book' => 'My haglym',
-	'coll-helppage' => 'Cooney:Çhaglymyn',
+	'coll-collection' => 'Lioar',
+	'coll-collections' => 'Lioaryn',
 	'coll-title' => 'Ard-ennym:',
 	'coll-contents' => 'Cummal',
 	'coll-create_chapter' => 'Croo cabdil noa',
-	'coll-sort_alphabetically' => 'Sorçhaghey duillagyn rere lettyr',
-	'coll-personal_collection_label' => 'Çhaglym persoonagh:',
-	'coll-community_collection_label' => 'Çhaglym y chohionnal:',
+	'coll-sort_alphabetically' => 'Rang-oardraghey rere yn abbyrlhit',
+	'coll-personal_collection_label' => 'Lioar phersoonagh:',
+	'coll-community_collection_label' => 'Lioar voodeeys:',
 	'coll-yes' => 'Ta',
 	'coll-no' => 'Cha',
 	'coll-cancel' => 'Dolley magh',
 	'coll-about_pp' => 'Mychione $1',
 );
 
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'coll-cancel' => 'Soke',
+	'coll-suggest_show' => 'nuna',
+);
+
 /** Hawaiian (Hawai`i)
  * @author Singularity
  */
@@ -2559,45 +4955,39 @@
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
+ * @author Rotemliss
  * @author YaronSh
  */
 $messages['he'] = array(
 	'coll-desc' => '[[Special:Book|איסוף דפים לספר]], יצירת קובצי PDF',
+	'coll-book_creator_intro' => '<big>באמצעות "יוצר הספרים" ניתן ליצור ספר הכולל דפי ויקי לבחירתך. ניתן לייצא את הספר שלך בסוגי קבצים שונים (לדוגמה, PDF או ODF) או להזמין עותק מודפס.</big>',
+	'coll-manage_your_book' => 'ניהול הספר שלכם',
+	'coll-book_creator_help' => 'ניתן לעיין ב[[{{MediaWiki:Coll-helppage}}|דף העזרה על ספרים]] למידע נוסף.',
+	'coll-start_book_creator' => 'הפעלת יוצר הספרים',
+	'coll-book_creator_continue' => 'המשך השימוש ביוצר הספרים',
+	'coll-book_creator_disable_text' => "''מצב ספר'' יבוטל והספר שאתם עובדים עליו יוסר.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/טקסט במצב ספר',
 	'coll-collection' => 'ספר',
 	'coll-collections' => 'ספרים',
-	'coll-exclusion_category_title' => 'דפים שאינם להדפסה',
+	'coll-exclusion_category_title' => 'לא לכלול בהדפסה',
 	'coll-print_template_prefix' => 'הדפסה',
 	'coll-print_template_pattern' => '$1/הדפסה',
-	'coll-create_a_book' => 'יצירת ספר',
-	'coll-add_page' => 'הוספת דף ויקי',
-	'coll-add_page_tooltip' => 'הוספת דף הוויקי הנוכחי לספר שלך',
-	'coll-remove_page' => 'הסרת דף ויקי',
-	'coll-remove_page_tooltip' => 'הסרת דף הוויקי הנוכחי מהספר שלך',
-	'coll-add_category' => 'הוספת קטגוריה',
-	'coll-add_category_tooltip' => 'הוספת כל הדפים בקטגוריה זו לספר שלך',
-	'coll-load_collection' => 'פתיחת ספר',
-	'coll-load_collection_tooltip' => 'פתיחת הספר הזה כספר הנוכחי שלך',
-	'coll-show_collection' => 'הצגת ספר',
-	'coll-show_collection_tooltip' => 'עריכת/הורדת/הזמנת הספר שלך',
-	'coll-help_collections' => 'עזרה לספרים',
-	'coll-help_collections_tooltip' => 'הצגת עזרה על כלי הספרים',
-	'coll-n_pages' => '{{PLURAL:$1|דף אחד|$1 דפים}}',
 	'coll-unknown_subpage_title' => 'דף משנה בלתי ידוע',
 	'coll-unknown_subpage_text' => 'דף משנה זה של ה[[Special:Book|ספר]] אינו קיים',
-	'coll-printable_version_pdf' => 'גרסת PDF',
-	'coll-download_as' => 'הורדה בפורמט $1',
+	'coll-couldnotaddarticle_title' => 'דף הוויקי לא נוסף',
+	'coll-couldnotaddarticle_msg' => 'לא ניתן היה להוסיף את דף הוויקי.',
+	'coll-couldnotremovearticle_title' => 'דף הוויקי לא הוסר',
+	'coll-couldnotremovearticle_msg' => 'לא ניתן היה להסיר את דף הוויקי.',
 	'coll-noscript_text' => '<h1>JavaScript נדרש!</h1>
 <strong>הדפדפן שלכם אינו תומך ב־JavaScript או שביטלתם את JavaScript בדפדפן זה.
 דף זה לא יעבוד כדרוש, אלא אם כן JavaScript יופעל.</strong>',
-	'coll-intro_text' => 'באפשרותכם ליצור ולנהל אוספים של דפי ויקי שבחרתם.<br />ראו [[{{MediaWiki:Coll-helppage}}]] למידע נוסף.',
-	'coll-helppage' => 'Help:ספרים',
-	'coll-bookscategory' => 'ספרים',
 	'coll-savedbook_template' => 'ספר_שמור',
 	'coll-your_book' => 'הספר שלכם',
 	'coll-download_title' => 'הורדה',
-	'coll-download_text' => 'להורדת גרסה, בחרו פורמט ולחצו על הכפתור.',
-	'coll-download_as_text' => 'להורדת גרסה בפורמט $1, לחצו על הכפתור.',
+	'coll-download_text' => 'להורדת הספר שלכם, בחרו פורמט ולחצו על הכפתור.',
+	'coll-download_as_text' => 'להורדת הספר שלכם בפורמט $1, לחצו על הכפתור.',
 	'coll-download' => 'הורדה',
 	'coll-format_label' => 'פורמט:',
 	'coll-remove' => 'הסרה',
@@ -2612,28 +5002,25 @@
 	'coll-drag_and_drop' => 'השתמשו בגרירה ושחרור כדי לסדר מחדש את הערכים ואת הפרקים',
 	'coll-create_chapter' => 'פרק חדש',
 	'coll-sort_alphabetically' => 'סידור אלפביתי',
-	'coll-clear_collection' => 'ניקוי הספר',
-	'coll-clear_collection_tooltip' => 'הסרת כל הדפים מהספר הנוכחי שלך',
-	'coll-clear_collection_confirm' => 'האם אתם בטוחים שברצונכם לנקות לגמרי את הספר שלכם?',
 	'coll-rename' => 'שינוי שם',
 	'coll-new_chapter' => 'הקלידו שם לפרק החדש',
 	'coll-rename_chapter' => 'הקלידו שם חדש לפרק',
 	'coll-no_such_category' => 'אין קטגוריה כזו',
-	'coll-notitle_title' => 'לא ניתן היה לבדוק מהי כותרת הדף.',
+	'coll-notitle_title' => 'לא ניתן היה לקבוע מהי כותרת הדף.',
 	'coll-post_failed_title' => 'בקשת ה־POST נכשלה',
-	'coll-post_failed_msg' => 'בקשת ה־POST ל־$1 נכשלה ($2).',
+	'coll-post_failed_msg' => 'בקשת ה־POST לכתובת $1 נכשלה ($2).',
 	'coll-mwserve_failed_title' => 'שגיאה בשרת היצירה',
 	'coll-mwserve_failed_msg' => 'אירעה שגיאה בשרת יצירת המסמכים: <nowiki>$1</nowiki>',
-	'coll-error_reponse' => 'שגיאה בשרת',
+	'coll-error_reponse' => 'מהשרת הגיעה תשובת שגיאה',
 	'coll-empty_collection' => 'ספר ריק',
 	'coll-revision' => 'גרסה: $1',
-	'coll-save_collection_title' => 'שמירת ושיתוף הספר',
+	'coll-save_collection_title' => 'שמירת הספר ושיתופו',
 	'coll-save_collection_text' => 'בחרו מקום לאיחסון הספר שלכם:',
 	'coll-login_to_save' => 'אם ברצונכם לשמור ספרים לשימוש מאוחר יותר, אנא [[Special:UserLogin|היכנסו לחשבון או צרו חשבון]].',
 	'coll-personal_collection_label' => 'ספר פרטי:',
 	'coll-community_collection_label' => 'ספר קהילתי:',
 	'coll-save_collection' => 'שמירת הספר',
-	'coll-save_category' => 'כל הספרים נשמרים בקטגוריה [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-collections}}]].',
+	'coll-save_category' => 'כל הספרים השמורים מתווספים לקטגוריה [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-collections}}]].',
 	'coll-overwrite_title' => 'הדף כבר קיים.
 האם לדרוס אותו?',
 	'coll-overwrite_text' => 'דף בשם [[:$1]] כבר קיים.
@@ -2649,7 +5036,7 @@
 	'coll-limit_exceeded_title' => 'הספר גדול מדי',
 	'coll-limit_exceeded_text' => 'הספר שלכם גדול מדי.
 לא ניתן להוסיף דפים נוספים.',
-	'coll-rendering_title' => 'ביצירה',
+	'coll-rendering_title' => 'יצירת הספר מתבצעת כעת',
 	'coll-rendering_text' => '<p><strong>אנא המתינו בעת יצירת המסמך.</strong></p>
 
 <p><strong>התקדמות התהליך:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
@@ -2657,49 +5044,88 @@
 <p>הדפדפן אמור לבצע ריענון אוטומטי לדף זה כל מספר שניות.
 אם זה לא עובד, אנא לחצו על כפתור הריענון בדפדפן שלכם.</p>',
 	'coll-rendering_status' => '<strong>מצב:</strong> $1',
-	'coll-rendering_article' => '(דף תוכן: $1)',
+	'coll-rendering_article' => '(דף ויקי: $1)',
 	'coll-rendering_page' => '(דף: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/הכנת טקסט של מידע על הדף',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/הכנת טקסט של מידע על האוסף',
 	'coll-rendering_finished_title' => 'היצירה הסתיימה',
 	'coll-rendering_finished_text' => '<strong>קובץ המסמך נוצר.</strong>
 <strong>[$1 הורדת הקובץ]</strong> למחשבכם.
 
 הערות:
 * אינכם מרוצים מהפלט? ב[[{{MediaWiki:Coll-helppage}}|דף העזרה על ספרים]] תוכלו למצוא אפשרויות לשיפורו.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/הכנת טקסט של מידע על הדף',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/הכנסת טקסט של מידע על הדף',
 	'coll-notfound_title' => 'הספר לא נמצא',
 	'coll-notfound_text' => 'לא ניתן למצוא את דף הספר.',
+	'coll-download_notfound_title' => 'הקובץ לא נמצא',
+	'coll-download_notfound_text' => 'הקובץ שאתם מנסים להוריד לא נמצא: אולי הוא נמחק ויש ליצור אותו מחדש.',
+	'coll-download_failed_title' => 'שגיאה במהלך ההורדה',
+	'coll-download_failed_text' => 'אירעה שגיאה בעת הורדת הקובץ: $1',
 	'coll-is_cached' => '<ul><li>גרסה שמורה של המסמך נמצאה, כך שאין צורך ביצירתו. <a href="$1">יצירה מחדש.</a></li></ul>',
 	'coll-excluded-templates' => '* תבניות בקטגוריה [[:Category:$1|$1]] אינן כלולות.',
 	'coll-blacklisted-templates' => '* תבניות ברשימה השחורה [[:$1]] אינן כלולות.',
-	'coll-return_to_collection' => '<p>חזרה ל<a href="$1">$2</a></p>',
+	'coll-return_to_collection' => '<p>חזרה לדף <a href="$1">$2</a></p>',
 	'coll-book_title' => 'הזמנה כספר מודפס',
-	'coll-book_text' => 'קבלת ספר מודפס משירות ההדפסה לפי דרישה:',
-	'coll-order_from_pp' => 'הזמנת ספר מ־$1',
+	'coll-book_text' => 'קבלת ספר מודפס משירות ההדפסה לפי דרישה.',
+	'coll-order_from_pp' => 'הצגה מקדימה באמצעות $1',
 	'coll-about_pp' => 'אודות $1',
 	'coll-invalid_podpartner_title' => 'שירות שגוי',
 	'coll-invalid_podpartner_msg' => 'שירות ההדפסה לפי דרישה שהוזן שגוי.
 אנא צרו קשר עם מנהל של מדיה־ויקי.',
 	'coll-license' => 'רישיון',
 	'coll-return_to' => 'חזרה ל[[:$1]]',
+	'coll-more_info' => 'הצגת מידע נוסף',
+	'coll-hide_info' => 'הסתרת מידע',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/מידע על הזמנה ב־PediaPress',
+	'coll-suggest_title' => 'דפים מוצעים לספר',
+	'coll-suggest_intro_text' => 'ההצעות מבוססות על האוסף הנוכחי של דפי הוויקי בתוך הספר.
+הרשימה תעודכן בעת הלחיצה על כפתורי ההוספה או ההסרה.',
+	'coll-suggested_articles' => 'הצעות',
+	'coll-suggest_reset_bans' => 'איפוס',
+	'coll-suggest_reset_bans_tooltip' => 'הצגת הצעות שהוסרו בעבר',
+	'coll-suggest_add_selected' => 'הוספת הדפים שנבחרו',
+	'coll-suggest_ban_selected' => 'הסרת הדפים שנבחרו',
+	'coll-suggest_your_book' => 'הספר שלכם',
+	'coll-suggest_show' => 'הצגה',
+	'coll-suggest_ban_tooltip' => 'הסרת דף זה מרשימת ההצעות',
+	'coll-suggest_article_ban' => 'הדף <strong>$1</strong> הוסר מרשימת ההצעות ($2).',
+	'coll-suggest_article_add' => 'הדף <strong>$1</strong> נוסף לספר שלכם ($2).',
+	'coll-suggest_article_remove' => 'הדף <strong>$1</strong> הוסר מהספר שלכם ($2).',
+	'coll-suggest_undo_tooltip' => 'ביטול פעולה זו',
+	'coll-suggest_undo' => 'ביטול',
+	'coll-load_local_book' => 'נא ללחוץ על אישור כדי להמשיך עם הספר שלך %TITLE% המכיל %NUMPAGES% עמודי ויקי. יש ללחוץ על ביטול כדי למחוק אותו ולהתחיל עם ספר ריק.',
+	'right-collectionsaveasuserpage' => 'שמירת ספרים כדפי משתמש',
+	'right-collectionsaveascommunitypage' => 'שמירת ספרים כדפי קהילה',
 );
 
 /** Hindi (हिन्दी)
+ * @author Ansumang
  * @author Kaustubh
  */
 $messages['hi'] = array(
 	'coll-desc' => '[[Special:Collection|पन्ने जमा करें]], पीडीएफ बनायें',
-	'coll-collection' => 'कलेक्शन',
-	'coll-collections' => 'कलेक्शन',
-	'coll-create_a_book' => 'मेरा कलेक्शन',
-	'coll-add_page' => 'पन्ना बढायें',
-	'coll-remove_page' => 'पन्ना हटायें',
-	'coll-add_category' => 'श्रेणी बढायें',
-	'coll-load_collection' => 'कलेक्शन लोड करें',
-	'coll-show_collection' => 'कलेक्शन दर्शायें',
-	'coll-help_collections' => 'कलेक्शन सहायता',
-	'coll-helppage' => 'Help:कलेक्शन',
+	'coll-manage_your_book' => 'आपकी पुस्तक का प्रबंधन',
+	'coll-start_book_creator' => 'पुस्तक निर्माता आरंभ करें',
+	'coll-book_creator_continue' => 'पुस्तक निर्माता की उपयोग जारी रखें',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/पुस्तक निर्माता लेख',
+	'coll-collection' => 'पुस्तक',
+	'coll-collections' => 'पुस्तकें',
+	'coll-print_template_prefix' => 'मुद्रित करें',
+	'coll-print_template_pattern' => '$1/ मुद्रण',
+	'coll-unknown_subpage_title' => 'अज्ञात उपपृष्ठ',
+	'coll-couldnotaddarticle_title' => 'विकि पृष्ठ नहीं जोड़ सका',
+	'coll-couldnotaddarticle_msg' => 'यह विकि पृष्ठ जोड़ा नहीं जा सका।',
+	'coll-couldnotremovearticle_title' => 'विकि पृष्ठ नहीं निकाल सका',
+	'coll-couldnotremovearticle_msg' => 'यह विकि पृष्ठ को हटा नहीं जा सका।',
+	'coll-savedbook_template' => 'सहजा गया पुस्तक',
+	'coll-your_book' => 'आपकी पुस्तक',
 	'coll-download_title' => 'कलेक्शन पीडिएफ डाउनलोड करें',
 	'coll-download_text' => 'आपके कलेक्शनका पीडिएफ अवतरण डाउनलोड करने के लिये, दिये हुए बटन पर क्लिक करें।',
+	'coll-download' => 'डाउनलोड',
+	'coll-format_label' => 'प्रारूप:',
 	'coll-remove' => 'हटायें',
+	'coll-show' => 'दिखाएँ',
 	'coll-move_to_top' => 'सबसे उपर भेजें',
 	'coll-move_up' => 'उपर भेजें',
 	'coll-move_down' => 'नीचे भेजें',
@@ -2709,7 +5135,6 @@
 	'coll-contents' => 'अनुक्रम',
 	'coll-create_chapter' => 'नया अध्याय बनायें',
 	'coll-sort_alphabetically' => 'अक्षरोंके अनुसार पन्ने लगायें',
-	'coll-clear_collection' => 'कलेक्शन खाली करें',
 	'coll-rename' => 'नाम बदलें',
 	'coll-new_chapter' => 'नये अध्याय के लिये नाम दें',
 	'coll-rename_chapter' => 'नये अध्याय के लिये नाम दें',
@@ -2736,16 +5161,43 @@
 	'coll-overwrite' => 'पुनर्लेखन करें',
 	'coll-append' => 'बढायें',
 	'coll-cancel' => 'रद्द करें',
+	'coll-update' => 'अद्यतन',
 	'coll-limit_exceeded_title' => 'कलेक्शन बहुत बडा हुआ हैं',
 	'coll-limit_exceeded_text' => 'आपका कलेक्शन बहुत बडा हुआ हैं।
 और पन्ने बढा नहीं सकतें।',
+	'coll-rendering_title' => 'प्रतिपादन',
+	'coll-rendering_status' => '<strong>स्थिति:</strong> $1',
+	'coll-rendering_article' => '(विकी  पृष्ठ : $1)',
+	'coll-rendering_page' => '(पृष्ठ: $1)',
+	'coll-rendering_finished_title' => 'प्रतिपादन समाप्त',
 	'coll-notfound_title' => 'कलेक्शन मिला नहीं',
 	'coll-notfound_text' => 'कलेक्शन पन्ना मिला नहीं।',
+	'coll-download_notfound_title' => 'फ़ाइल नहीं मिली',
+	'coll-download_failed_title' => 'डाउनलोड के समय त्रुटि',
 	'coll-return_to_collection' => '<p><a href="$1">$2</a></p> पर वापस जायें',
 	'coll-book_title' => 'छपा हुआ अवतरण माँगे',
 	'coll-book_text' => 'आप नीचे दिये हुए प्रिन्ट-ऑन-डिमांड पार्टनर्ससे आपके कलेक्शनमें उपलब्ध पन्नोंका छपा हुआ अवतरण पा सकतें हैं:',
 	'coll-order_from_pp' => '$1 से बुक मंगायें',
 	'coll-about_pp' => '$1 के बारे में',
+	'coll-invalid_podpartner_title' => 'अमान्य POD साथी',
+	'coll-license' => 'लाइसेंस',
+	'coll-return_to' => 'वापसी  [[:$1]] को',
+	'coll-more_info' => 'और अधिक जानकारी दिखाएँ',
+	'coll-hide_info' => 'जानकारी छुपाएँ',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/पीडियाप्रैस आदेश जानकारी',
+	'coll-suggest_title' => 'अपनी किताब के लिए सुझाए गए पृष्ठों',
+	'coll-suggested_articles' => 'सुझाव',
+	'coll-suggest_reset_bans' => 'रीसेट करें',
+	'coll-suggest_reset_bans_tooltip' => 'पेहले निकाले गए सुझाव दिखाएँ',
+	'coll-suggest_add_selected' => 'चयनित पृष्ठ जोड़ें',
+	'coll-suggest_ban_selected' => 'चयनित पृष्ठ निकालें',
+	'coll-suggest_your_book' => 'आपकी पुस्तक',
+	'coll-suggest_show' => 'दिखाएँ',
+	'coll-suggest_ban_tooltip' => 'इस पृष्ठ को सुझाव तालिका से हटाएँ',
+	'coll-suggest_undo_tooltip' => 'इस क्रिया को पूर्ववत् करें',
+	'coll-suggest_undo' => 'पूर्ववत करें',
+	'right-collectionsaveasuserpage' => 'सदस्य पृष्ठ की रूप में पुस्तक सहेजें',
+	'right-collectionsaveascommunitypage' => 'पुस्तकों को समुदाय पृष्ठ के रूप में सहेजें',
 );
 
 /** Hiligaynon (Ilonggo)
@@ -2757,37 +5209,36 @@
 
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
+ * @author Ex13
  * @author SpeedyGonsales
- * @author Suradnik13
  */
 $messages['hr'] = array(
 	'coll-desc' => '[[Special:Book|Stvori zbirku]]',
+	'coll-book_creator_intro' => "<big>S ''kreatorom knjiga'' možete stvoriti knjigu koja se sastoji od proizvoljnih wiki stranica. Možete izvesti odnosno snimiti svoju knjigu u različitim formatima (npr. PDF ili ODF) ili naručiti tiskani primjerak.</big>",
+	'coll-manage_your_book' => 'Upravljanje Vašom zbirkom',
+	'coll-book_creator_help' => 'Pogledajte [[{{MediaWiki:Coll-helppage}}|stranicu za pomoć o knjigama]] za više informacija.',
+	'coll-start_book_creator' => 'Pokrenite uređivanje wikiknjige',
+	'coll-book_creator_continue' => 'Nastavi s uporabom uređivača zbirke',
+	'coll-book_creator_disable_text' => "''Uređivač zbirke'' će biti onemogućen, a zbirka na kojoj radite bit će uklonjena.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst načina zbirke',
 	'coll-collection' => 'Zbirka',
 	'coll-collections' => 'Zbirke',
 	'coll-exclusion_category_title' => 'Izuzmi u ispisu',
 	'coll-print_template_prefix' => 'Ispiši',
-	'coll-create_a_book' => 'Napravi knjigu',
-	'coll-add_page' => 'Dodaj wiki stranicu',
-	'coll-remove_page' => 'Ukloni wiki stranicu',
-	'coll-add_category' => 'Dodaj kategoriju',
-	'coll-load_collection' => 'Učitaj zbirku',
-	'coll-show_collection' => 'Pokaži zbirku',
-	'coll-help_collections' => 'Zbirke pomoć',
-	'coll-n_pages' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
+	'coll-print_template_pattern' => '$1/Tiskaj',
 	'coll-unknown_subpage_title' => 'Nepoznata podstranica',
 	'coll-unknown_subpage_text' => 'Ova podstranica [[Special:Book|zbirke]] ne postoji',
-	'coll-printable_version_pdf' => 'PDF inačica',
-	'coll-download_as' => 'Preuzmi kao $1',
+	'coll-couldnotaddarticle_title' => 'Nije bilo moguće dodati wiki stranicu',
+	'coll-couldnotaddarticle_msg' => 'Wiki stranica nije mogla biti dodana.',
+	'coll-couldnotremovearticle_title' => 'Nije bilo moguće ukloniti wiki stranicu',
+	'coll-couldnotremovearticle_msg' => 'Wiki stranica ne može biti uklonjena.',
 	'coll-noscript_text' => '<h1>Potreban je JavaScript!</h1>
 <strong>Vaš preglednik nema podršku za JavaScript ili je isključena. Ova stranica neće raditi ispravno, ako JavaScript nije omogućen.</strong>',
-	'coll-intro_text' => 'Napravite i uređujte svoj osobni odabir wiki stranica.<br />Vidi [[{{MediaWiki:Coll-helppage}}|stranicu za pomoć o zbirkama]] za više obavijesti.',
-	'coll-helppage' => 'Help:Zbirke',
-	'coll-bookscategory' => 'Zbirke',
 	'coll-savedbook_template' => 'snimljena_zbirka',
-	'coll-your_book' => 'Vaša knjiga',
+	'coll-your_book' => 'Vaša zbirka',
 	'coll-download_title' => 'Preuzmi',
-	'coll-download_text' => 'Za preuzimanje izvanmrežne inačice, odaberite format i kliknite tipku.',
-	'coll-download_as_text' => 'Za preuzimanje inačice u $1 formatu kliknite na gumb.',
+	'coll-download_text' => 'Za preuzimanje vaše knjige odaberite format i kliknite na gumb.',
+	'coll-download_as_text' => 'Za preuzimanje vaše knjige u $1 formatu kliknite na gumb.',
 	'coll-download' => 'Preuzmi',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Ukloni',
@@ -2802,8 +5253,6 @@
 	'coll-drag_and_drop' => 'Koristite "povuci i stavi" za preslagivanje wiki stranica i poglavlja.',
 	'coll-create_chapter' => 'Napravi poglavlje',
 	'coll-sort_alphabetically' => 'Rasporedi abecedno',
-	'coll-clear_collection' => 'Očisti zbirku',
-	'coll-clear_collection_confirm' => 'Želite li stvarno očistiti svoju cijelu zbirku?',
 	'coll-rename' => 'Preimenuj',
 	'coll-new_chapter' => 'Upišite ime za novo poglavlje',
 	'coll-rename_chapter' => 'Upišite novo ime za poglavlje',
@@ -2818,25 +5267,25 @@
 	'coll-revision' => 'Izmjena: $1',
 	'coll-save_collection_title' => 'Spremi i dijeli svoju zbirku',
 	'coll-save_collection_text' => 'Odaberite lokaciju:',
-	'coll-login_to_save' => 'Ako želite spremiti knjige za kasniju uporabu, molimo [[Special:UserLogin|prijavite se ili napravite suradnički račun]].',
-	'coll-personal_collection_label' => 'Osobna knjiga:',
-	'coll-community_collection_label' => 'Zajednička knjiga:',
-	'coll-save_collection' => 'Spremi knjigu',
-	'coll-save_category' => 'Sve knjige su spremljene u kategoriju [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-login_to_save' => 'Ako želite spremiti zbirke za kasniju uporabu, molimo [[Special:UserLogin|prijavite se ili napravite suradnički račun]].',
+	'coll-personal_collection_label' => 'Osobna zbirka:',
+	'coll-community_collection_label' => 'Zajednička zbirka:',
+	'coll-save_collection' => 'Spremi zbirku',
+	'coll-save_category' => 'Sve snimljene knjige dodane su u kategoriju [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Stranica postoji.
 Prepisati preko?',
 	'coll-overwrite_text' => 'Stranica s nazivom [[:$1]] već postoji.
 Želite li da bude zamijenjena s vašom zbirkom?',
 	'coll-yes' => 'Da',
 	'coll-no' => 'Ne',
-	'coll-load_overwrite_text' => 'Već imate neke stranice u svojoj knjizi.
-Želite li prepisati svoju trenutačnu knjigu novom, samo dodati novi sadržaj ili zaustaviti učitavanje ove knjige?',
+	'coll-load_overwrite_text' => 'Već imate neke stranice u svojoj zbirci.
+Želite li prepisati svoju trenutačnu zbirku novoj, samo dodati novi sadržaj ili zaustaviti učitavanje ove zbirke?',
 	'coll-overwrite' => 'Prepisati preko',
 	'coll-append' => 'Nadodaj',
 	'coll-cancel' => 'Zaustavi',
 	'coll-update' => 'Ažuriranje',
 	'coll-limit_exceeded_title' => 'Knjiga je prevelika',
-	'coll-limit_exceeded_text' => 'Vaša knjiga je prevelika.
+	'coll-limit_exceeded_text' => 'Vaša zbirka je prevelika.
 Nove stranice ne mogu biti dodane.',
 	'coll-rendering_title' => 'Izvođenje',
 	'coll-rendering_text' => '<p><strong>Molimo pričekajte dok se dokument radi.</strong></p>
@@ -2848,6 +5297,8 @@
 	'coll-rendering_status' => '<strong>Stanje:</strong> $1',
 	'coll-rendering_article' => '(wiki stranica: $1)',
 	'coll-rendering_page' => '(stranica: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Info tekst stranice za stvaranje knjige',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Info tekst stranice za stvaranje zbirki',
 	'coll-rendering_finished_title' => 'Izvođenje završeno',
 	'coll-rendering_finished_text' => '<strong>Datoteka dokumenta je stvorena.</strong>
 <strong>[$1 Preuzmite datoteku]</strong> na svoje računalo.
@@ -2855,21 +5306,50 @@
 Napomene:
 * Niste zadovoljni dobivenim rezultatom? Pogledajte [[{{MediaWiki:Coll-helppage}}|
 stranicu za pomoć o zbirkama]] za mogućnosti njegovog poboljšanja.',
-	'coll-notfound_title' => 'Knjiga nije nađena',
-	'coll-notfound_text' => 'Ne mogu pronaći stranicu knjige.',
-	'coll-is_cached' => '<ul><li>Pronađena je verzija datoteke u pričuvnoj memoriji, stoga izvođenje datoteke nije potrebno.. <a href="$1">Zahtijevaj ponovno izvođenje.</a></li></ul>',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Info tekst stranice za stvaranje knjige',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Info tekst stranice za stvaranje zbirki',
+	'coll-notfound_title' => 'Zbirka nije nađena',
+	'coll-notfound_text' => 'Ne mogu pronaći stranicu zbirke.',
+	'coll-download_notfound_title' => 'Datoteka nije pronađena',
+	'coll-download_notfound_text' => 'Datoteka koju pokušavate preuzeti ne postoji: možda je obrisana i treba biti obnovljena.',
+	'coll-download_failed_title' => 'Pogreška tijekom preuzimanja',
+	'coll-download_failed_text' => 'Došlo je do pogreške pri preuzimanju datoteke: $1',
+	'coll-is_cached' => '<ul><li>Pronađena je verzija datoteke u pričuvnoj memoriji, stoga izvođenje datoteke nije potrebno.
+<a href="$1">Zahtijevaj ponovno izvođenje.</a></li></ul>',
 	'coll-excluded-templates' => '* Predlošci u kategoriji [[:Category:$1|$1]] su ostali isključeni.',
 	'coll-blacklisted-templates' => '* Predlošci na crnoj listi [[:$1]] su ostali isključeni.',
 	'coll-return_to_collection' => '<p>Vrati se na <a href="$1">$2</a></p>',
-	'coll-book_title' => 'Naručite kao ispisanu knjigu',
-	'coll-book_text' => 'Naručiti ispisanu knjigu od slijedećih partnera za ispisivanje na zahtjev (POD):',
-	'coll-order_from_pp' => 'Naručite knjigu od $1',
+	'coll-book_title' => 'Naručite kao ispisanu zbirku',
+	'coll-book_text' => 'Naručiti ispisanu zbirku od sljedećih partnera za ispisivanje na zahtjev (POD):',
+	'coll-order_from_pp' => 'Pregledaj s $1',
 	'coll-about_pp' => 'O $1',
 	'coll-invalid_podpartner_title' => 'Neispravan POD partner',
 	'coll-invalid_podpartner_msg' => 'Ponuđeni POD partner nije valjan.
 Molimo kontaktirajte svog MediaWiki administratora.',
 	'coll-license' => 'Licencija',
 	'coll-return_to' => 'Vrati se na [[:$1]]',
+	'coll-more_info' => 'Prikaži više informacija',
+	'coll-hide_info' => 'Sakrij informacije',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/informacije o narudžbi PediaPressa',
+	'coll-suggest_title' => 'Predložene stranice za vašu knjigu',
+	'coll-suggest_intro_text' => 'Prijedlozi se temelje na trenutnom skupu wiki stranica u vašoj knjizi.
+Popis se ažurira svaki put kada dodate ili uklonite neku stranicu.',
+	'coll-suggested_articles' => 'Prijedlozi',
+	'coll-suggest_reset_bans' => 'poništi',
+	'coll-suggest_reset_bans_tooltip' => 'Pokaži ranije uklonjene prijedloge',
+	'coll-suggest_add_selected' => 'Dodaj odabrane stranice',
+	'coll-suggest_ban_selected' => 'Ukloni odabrane stranice',
+	'coll-suggest_your_book' => 'Vaša zbirka',
+	'coll-suggest_show' => 'prikaži',
+	'coll-suggest_ban_tooltip' => 'Ukloni ovu stranicu s popisa prijedloga',
+	'coll-suggest_article_ban' => 'Stranica <strong>$1</strong> uklonjena je iz popisa prijedloga ($2).',
+	'coll-suggest_article_add' => 'Stranica <strong>$1</strong> dodana je u vašu knjigu ($2).',
+	'coll-suggest_article_remove' => 'Stranica <strong>$1</strong> uklonjena je iz vaše knjige ($2).',
+	'coll-suggest_undo_tooltip' => 'Vrati zadnju akciju',
+	'coll-suggest_undo' => 'vrati',
+	'coll-load_local_book' => 'Kliknite OK za nastavak svoje knjige %NASLOV% koja sadrži %NUMPAGES% wiki stranica. Kliknite Odustani da biste ju izbrisali i počeli s praznom knjigom.',
+	'right-collectionsaveasuserpage' => 'Spremi zbirke kao suradničku stranicu',
+	'right-collectionsaveascommunitypage' => 'Spremi zbirke kao stranicu zajednice',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
@@ -2877,40 +5357,32 @@
  */
 $messages['hsb'] = array(
 	'coll-desc' => '[[Special:Book|Knihi wutworić]]',
+	'coll-book_creator_intro' => "<big>Z ''knižnej funkciju'' móžeš knihu wutworić, kotraž wikistrony twojeje wólby wobsahuje. Móžeš knihu do rozdźělnych formatow eksportować (na přikład PDF abo ODF) abo wućišćany eksemplar skazać.</big>",
+	'coll-manage_your_book' => 'Twoju knihu zrjadować',
+	'coll-book_creator_help' => 'Hlej [[{{MediaWiki:Coll-helppage}}|stronu pomocy wo knihach]] za dalše informacije.',
+	'coll-start_book_creator' => 'Knižnu funkciju startować',
+	'coll-book_creator_continue' => 'Knižnu funkciju dale wužiwać',
+	'coll-book_creator_disable_text' => "''Knižna funkcija'' budźe so znjemóžnjeć a kniha, kotruž wobdźěłuješ, budźe so z twojeho posedźenja wobhladowaka wotstronjeć.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst knižneje funkcije',
 	'coll-collection' => 'Kniha',
 	'coll-collections' => 'Knihi',
 	'coll-exclusion_category_title' => 'Wot ćišćenja wuzamknyć',
 	'coll-print_template_prefix' => 'Ćišćeć',
 	'coll-print_template_pattern' => '$1/Ćišćeć',
-	'coll-create_a_book' => 'Knihu wutworić',
-	'coll-add_page' => 'Wikijowu stronu přidać',
-	'coll-add_page_tooltip' => 'Aktualnu wikijowu stronu twojej knize přidać',
-	'coll-remove_page' => 'Wikijowu stronu wotstronić',
-	'coll-remove_page_tooltip' => 'Aktualnu wikijowu stronu z twojeje knihi wotstronić',
-	'coll-add_category' => 'Kategoriju přidać',
-	'coll-add_category_tooltip' => 'Wšě nastawki w tutej kategoriji twojej knize přidać',
-	'coll-load_collection' => 'Knihu začitać',
-	'coll-load_collection_tooltip' => 'Tutu knihu jako twoju aktualnu knihu začitać',
-	'coll-show_collection' => 'Knihu pokazać',
-	'coll-show_collection_tooltip' => 'Klikń, zo by swoju knihu wobdźěłał/sćahnył/skazał',
-	'coll-help_collections' => 'Pomoc ke kniham',
-	'coll-help_collections_tooltip' => 'Pomoc wo knižnej funkciji pokazać',
-	'coll-n_pages' => '$1 {{PLURAL:$1|strona|stronje|strony|stronow}}',
 	'coll-unknown_subpage_title' => 'Njeznata podstrona',
 	'coll-unknown_subpage_text' => 'Tuta podstrona [[Special:Book|knihi]] njeeksistuje',
-	'coll-printable_version_pdf' => 'PDF-wersija',
-	'coll-download_as' => 'Jako $1 sćahnyć',
+	'coll-couldnotaddarticle_title' => 'Nastawk njeda so přidać',
+	'coll-couldnotaddarticle_msg' => 'Nastawk njeje so přidać dał.',
+	'coll-couldnotremovearticle_title' => 'Nastawk njeda so wotstronić',
+	'coll-couldnotremovearticle_msg' => 'Nastawk njeje so wotstronić dał.',
 	'coll-noscript_text' => '<h1>JavaScript je trěbny!</h1>
 <strong>Twój wobhladowak njepodpěruje JavaScript abo JavaScript je wupinjeny.
 Tuta strona njebudźe prawje fungować, doniž JavaScript zmóžnjeny njeje.</strong>',
-	'coll-intro_text' => 'Wutwor a zrjaduj swój indiwiduelny wuběr wikijowych stronow.<br />Hlej [[{{MediaWiki:Coll-helppage}}|Pomoc wo zběrkach]] za dalše informacije.',
-	'coll-helppage' => 'Help:Knihi',
-	'coll-bookscategory' => 'Knihi',
 	'coll-savedbook_template' => 'składowana_kniha',
 	'coll-your_book' => 'Twoja kniha',
 	'coll-download_title' => 'Sćahnyć',
-	'coll-download_text' => 'Zo by wersiju offline sćahnył, wubjer format a klikń na tłóčatko.',
-	'coll-download_as_text' => 'Zo by wersiju offline w formaće $1 sćahnył, klikń na tłóčatko.',
+	'coll-download_text' => 'Zo by swoju knihu sćahnył, wubjer format a klikń na tłóčatko.',
+	'coll-download_as_text' => 'Zo by swoju knihu w formaće $1 sćahnył, klikń na tłóčatko.',
 	'coll-download' => 'Sćahnyć',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Wotstronić',
@@ -2925,9 +5397,6 @@
 	'coll-drag_and_drop' => 'Přez přesunjenje z myšu móžeš wikijowe strony a kapitle přerjadować',
 	'coll-create_chapter' => 'Kapitl wutworić',
 	'coll-sort_alphabetically' => 'Alfabetisce sortěrować',
-	'coll-clear_collection' => 'Knihu wuprózdnić',
-	'coll-clear_collection_tooltip' => 'Wšě nastawki z twojeje aktualneje knihi wotstronić',
-	'coll-clear_collection_confirm' => 'Chceš woprawdźe swoju knihu dospołnje wuprózdnić?',
 	'coll-rename' => 'Přemjenować',
 	'coll-new_chapter' => 'Zapodaj mjeno za nowy kapitl',
 	'coll-rename_chapter' => 'Zapodaj nowe mjeno za kapitl',
@@ -2946,7 +5415,7 @@
 	'coll-personal_collection_label' => 'Wosobinska kniha:',
 	'coll-community_collection_label' => 'Kniha zhromadźenstwa:',
 	'coll-save_collection' => 'Knihu składować',
-	'coll-save_category' => 'Knihi składuja so w kategoriji [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Wšě składowane knihi přidawaja so kategoriji [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Strona eksistuje. Přepisać?',
 	'coll-overwrite_text' => 'Strona z mjenom [[:$1]] hižo eksistuje.
 Chceš ju přez swoju zběrku narunać?',
@@ -2969,148 +5438,215 @@
 <p>Tuta strona dyrbjała so awtomatisce kóžde por sekundow aktualizować.
 Jeli so to njestawa, klikń prošu na tłóčatko "Znowa" swojeho wobhladowaka.</p>',
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
-	'coll-rendering_article' => '(wikijowa strona: $1)',
+	'coll-rendering_article' => '(wikistrona: $1)',
 	'coll-rendering_page' => '(strona: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rysowanje infoteksta strony',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Rysowanje infoteksta zběrki',
 	'coll-rendering_finished_title' => 'Tworjenje dokónčene',
 	'coll-rendering_finished_text' => '<strong>Dokumentowa dataja je so wuspěšnje wutworiła.</strong>
 <strong>[$1 Dataju na twój ličak sćahnyć]</strong>.
 
 Přispomnjenka:
 * Njejsy spokojny z wudaćom? Hlej [[{{MediaWiki:Coll-helppage}}|stronu pomocy wo zběrkach]] za móžnosće je polěpšić.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst strony rysować',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informaciski tekst zběrki rysować',
 	'coll-notfound_title' => 'Kniha njenamakana',
 	'coll-notfound_text' => 'Strona knihi njebu namakana.',
+	'coll-download_notfound_title' => 'Dataja njenamakana',
+	'coll-download_notfound_text' => 'Dataja, kotruž pospytuješ sćahować, njeeksistuje: Snano bu wona wušmórnjena a dyrbi so znowa wutworić.',
+	'coll-download_failed_title' => 'Zmylk při sćehnjenju',
+	'coll-download_failed_text' => 'Při sćehnjenju dataje je zmylk wustupił: $1',
 	'coll-is_cached' => '<ul><li>Pufrowana wersija dokumenta bu namakana, tohodla tworjenje njeje trěbne było. <a href="$1">Znowatworjenje wunuzować.</a></li></ul>',
 	'coll-excluded-templates' => '* Předłohi w kategoriji [[:Category:$1|$1]] buchu wuzamknjene.',
 	'coll-blacklisted-templates' => '* Předłohi na čornej lisćinje [[:$1]] buchu wuzamknjene.',
 	'coll-return_to_collection' => '<p>Wróćo k <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Jako wućišćanu knihu skazać',
 	'coll-book_text' => 'Wućišćanu knihu wot našeho partnera za ćišćenje na žadanje:',
-	'coll-order_from_pp' => 'Knihu pola $1 skazać',
+	'coll-order_from_pp' => 'Přehlad pola $1',
 	'coll-about_pp' => 'Wo $1',
 	'coll-invalid_podpartner_title' => 'Njepłaćiwy partner za ćišć na žadanje',
 	'coll-invalid_podpartner_msg' => 'Podaty partner za ćišć na žadanje je njepłaćiwy.
 Skontaktuj prošu swojeho administratora MediaWiki.',
 	'coll-license' => 'Licenca',
-	'coll-return_to' => 'Wróćo k [[:$1]]',
+	'coll-return_to' => 'Wróćo k stronje [[:$1]]',
+	'coll-more_info' => 'Dalše informacije pokazać',
+	'coll-hide_info' => 'Informacije schować',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress skazanske informacije',
+	'coll-suggest_title' => 'Namjetowane strony za twoju knihu',
+	'coll-suggest_intro_text' => 'Namjety bazuja na aktualnu sadźbu wikistronow w twojej knize.
+Lisćina aktualizuje so, hdyžkuli kliknješ na tłóčatko "přidać" abo "wotstronić".',
+	'coll-suggested_articles' => 'Namjety',
+	'coll-suggest_reset_bans' => 'wróćo stajić',
+	'coll-suggest_reset_bans_tooltip' => 'Prjedy wotstronjene namjety pokazać',
+	'coll-suggest_add_selected' => 'Wubrane strony přidać',
+	'coll-suggest_ban_selected' => 'Wubrane strony wotstronić',
+	'coll-suggest_your_book' => 'Twoja kniha',
+	'coll-suggest_show' => 'pokazać',
+	'coll-suggest_ban_tooltip' => 'Tutu stronu z lisćiny namjetow wotstronić',
+	'coll-suggest_article_ban' => 'Strona <strong>$1</strong> bu z namjetow wotstronjena ($2).',
+	'coll-suggest_article_add' => 'Strona <strong>$1</strong> bu twojej knize přidata ($2).',
+	'coll-suggest_article_remove' => 'Strona <strong>$1</strong> bu z twojeje knihi wotstronjena ($2).',
+	'coll-suggest_undo_tooltip' => 'Tutu akciju cofnyć',
+	'coll-suggest_undo' => 'cofnyć',
+	'coll-load_local_book' => 'Klikń W porjadku, zo by ze swojej knihu %TITLE% pokročował , kotraž %NUMPAGES% {{PLURAL:%NUMPAGES%|wikistronu|wikistronje|wikistrony|wikistronow}} wobsahuje. Klikń na Přetorhnyć, zo by ju zhašał a startuj z prózdnej knihu.',
+	'right-collectionsaveasuserpage' => 'Knihi jako wužiwarsku stronu składować',
+	'right-collectionsaveascommunitypage' => 'Knihi jako stronu zhromadźenstwa składować',
 );
 
+/** Haitian (Kreyòl ayisyen)
+ * @author Boukman
+ */
+$messages['ht'] = array(
+	'coll-suggest_undo_tooltip' => 'Defè aksyon sa a',
+	'coll-suggest_undo' => 'Defè',
+);
+
 /** Hungarian (Magyar)
  * @author Bdamokos
  * @author Dani
+ * @author Glanthor Reviol
  */
 $messages['hu'] = array(
-	'coll-desc' => '[[Special:Book|Készíts könyveket!]]',
+	'coll-desc' => '[[Special:Book|Könyvek készítése]]',
+	'coll-book_creator_intro' => "<big>A ''könyvkészítővel'' összeállíthatsz egy könyvet az általad választott wikilapokból. A könyvet letöltheted különböző formátumokban (például PDF vagy ODF), vagy rendelhetsz egy nyomtatott példányt.</big>",
+	'coll-manage_your_book' => 'Könyv kezelése',
+	'coll-book_creator_help' => 'Lásd a [[{{MediaWiki:Coll-helppage}}|könyvekről szóló segítséglapot]] további információkért.',
+	'coll-start_book_creator' => 'Könyvkészítő indítása',
+	'coll-book_creator_continue' => 'A könyvkészítő használatának folytatása',
+	'coll-book_creator_disable_text' => "A ''könyvkészítő'' le lesz tiltva, és a könyv amit jelenleg készítesz el lesz távolítva.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Könyvmód szöveg',
 	'coll-collection' => 'Könyv',
 	'coll-collections' => 'Könyvek',
 	'coll-exclusion_category_title' => 'Nyomtatásban kihagyandó',
 	'coll-print_template_prefix' => 'Nyomtatott',
-	'coll-create_a_book' => 'Készíts egy könyvet',
-	'coll-add_page' => 'Wiki oldal hozzáadása',
-	'coll-remove_page' => 'Wiki oldal eltávolítása',
-	'coll-add_category' => 'Kategória hozzáadása',
-	'coll-load_collection' => 'Könyv betöltése',
-	'coll-show_collection' => 'Könyv mutatása',
-	'coll-help_collections' => 'Könyvek segítség',
-	'coll-n_pages' => '$1 oldal',
-	'coll-unknown_subpage_title' => 'Ismeretlen aloldal',
-	'coll-unknown_subpage_text' => 'A [[Special:Book|könyv]] ezen allapja nem létezik.',
-	'coll-printable_version_pdf' => 'PDF változat',
-	'coll-download_as' => 'Letöltés mint $1',
-	'coll-noscript_text' => '<h1>JavaScript szüséges!</h1>
+	'coll-print_template_pattern' => '$1/nyomtatott',
+	'coll-unknown_subpage_title' => 'Ismeretlen allap',
+	'coll-unknown_subpage_text' => 'A [[Special:Book|Könyv]]nek nincs ilyen allapja.',
+	'coll-couldnotaddarticle_title' => 'Nem lehet hozzáadni a wiki lapot',
+	'coll-couldnotaddarticle_msg' => 'A wikilapot nem sikerült hozzáadni.',
+	'coll-couldnotremovearticle_title' => 'Nem lehet eltávolítani a wiki lapot',
+	'coll-couldnotremovearticle_msg' => 'A wiki lapot nem lehet eltávolítani.',
+	'coll-noscript_text' => '<h1>A lap használatához JavaScript szükséges!</h1>
 <strong>A böngésződ nem támogatja a JavaScriptet, vagy az ki lett kapcsolva.
-Ez az oldal nem működik megfelelően amíg a JavaScript nincs bekapcsolva.</strong>',
-	'coll-intro_text' => 'Készíts és kezelj saját wiki oldal gyűjteményeket.<br />Lásd [[{{MediaWiki:Coll-helppage}}]] oldalt további információkért.',
-	'coll-helppage' => 'Segítség:Könyvek',
-	'coll-bookscategory' => 'Könyvek',
+Ez az oldal nem fog megfelelően működni, amíg a JavaScript nincs bekapcsolva.</strong>',
 	'coll-savedbook_template' => 'elmentett_könyv',
-	'coll-your_book' => 'A Te könyved',
+	'coll-your_book' => 'A te könyved',
 	'coll-download_title' => 'Letöltés',
-	'coll-download_text' => 'Egy változat letöltéséhez válaszd ki a formátumot és nyomd meg a gombot!',
-	'coll-download_as_text' => '$1 formátumú változat letöltéséhez nyomd meg a gombot!',
+	'coll-download_text' => 'A könyved letöltéséhez válaszd ki a formátumot, majd kattints a gombra.',
+	'coll-download_as_text' => 'A könyved $1 formátumú változatának letöltéséhez kattints a gombra!',
 	'coll-download' => 'Letöltés',
 	'coll-format_label' => 'Formátum:',
 	'coll-remove' => 'Eltávolítás',
 	'coll-show' => 'Mutat',
-	'coll-move_to_top' => 'Tetejére mozgat',
-	'coll-move_up' => 'Feljebb mozgat',
-	'coll-move_down' => 'Lejjebb mozgat',
-	'coll-move_to_bottom' => 'Alulra mozgat',
+	'coll-move_to_top' => 'Mozgatás legfelülre',
+	'coll-move_up' => 'Mozgatás felfelé',
+	'coll-move_down' => 'Mozgatás lefelé',
+	'coll-move_to_bottom' => 'Mozgatás legalulra',
 	'coll-title' => 'Cím:',
 	'coll-subtitle' => 'Alcím:',
 	'coll-contents' => 'Tartalomjegyzék',
-	'coll-drag_and_drop' => 'Fogd és vidd módszerrel rendezd át a wiki oldalak és fejezetek sorrendjét',
+	'coll-drag_and_drop' => 'Fogd és vidd módszerrel rendezd át a lapok és fejezetek sorrendjét',
 	'coll-create_chapter' => 'Fejezet készítése',
 	'coll-sort_alphabetically' => 'Rendezés ábécésorrend szerint',
-	'coll-clear_collection' => 'Könyv törlése',
-	'coll-clear_collection_confirm' => 'Valóban törölni szeretnéd a könyved?',
 	'coll-rename' => 'Átnevezés',
-	'coll-new_chapter' => 'Írd be az új fejezet címét',
+	'coll-new_chapter' => 'Add meg az új fejezet címét',
 	'coll-rename_chapter' => 'Add meg a fejezet új címét',
 	'coll-no_such_category' => 'Nincs ilyen kategória',
-	'coll-notitle_title' => 'Az oldal címe nem volt megállapítható.',
-	'coll-post_failed_title' => 'POST kérés sikertelen',
-	'coll-post_failed_msg' => 'A $1-nak küldött POST kérés sikertelen ($2).',
+	'coll-notitle_title' => 'Nem sikerült megállapítani a lap címét.',
+	'coll-post_failed_title' => 'A POST kérés nem sikerült',
+	'coll-post_failed_msg' => 'A(z) $1 számára küldött POST kérés nem sikerült ($2).',
 	'coll-mwserve_failed_title' => 'A renderelő szerver hibát észlelt',
 	'coll-mwserve_failed_msg' => 'Hiba történt a renderelő szerveren: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'Hibaüzenet érkezett a szervertől',
 	'coll-empty_collection' => 'Üres könyv',
 	'coll-revision' => 'Változat: $1',
-	'coll-save_collection_title' => 'Mentsd el és oszd meg a könyved',
+	'coll-save_collection_title' => 'Könyv elmentése és megosztása',
 	'coll-save_collection_text' => 'Válassz egy tárolási helyet a könyvednek:',
-	'coll-login_to_save' => 'Amennyiben elszeretnéd menteni a könyved későbbi használatra, kérlek [[Special:UserLogin|jelentkezz be vagy készíts egy felhasználói fiókot]].',
+	'coll-login_to_save' => 'Amennyiben elszeretnéd menteni a könyved későbbi használatra, [[Special:UserLogin|jelentkezz be vagy készíts egy felhasználói fiókot]].',
 	'coll-personal_collection_label' => 'Személyes könyv:',
 	'coll-community_collection_label' => 'Közösségi könyv:',
 	'coll-save_collection' => 'Könyv mentése',
-	'coll-save_category' => 'A könyvek a [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategóriába mentődnek.',
-	'coll-overwrite_title' => 'Az oldal már létezik.
+	'coll-save_category' => 'Minden mentett könyv bekerül a(z) [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategóriába.',
+	'coll-overwrite_title' => 'A lap már létezik.
 Felülírjam?',
-	'coll-overwrite_text' => '„[[:$1]]” nevű oldal már létezik.
+	'coll-overwrite_text' => 'Már létezik „[[:$1]]” című lap.
 Szeretnéd lecserélni a saját könyvedre?',
 	'coll-yes' => 'Igen',
 	'coll-no' => 'Nem',
-	'coll-load_overwrite_text' => 'Már van néhány oldal a könyvedben.
-Szeretnéd felülírni, az új tartalommal kiegészíteni a könyved vagy abbahagyni e könyv betöltését?',
-	'coll-overwrite' => 'Felülír',
-	'coll-append' => 'Hozzáad',
+	'coll-load_overwrite_text' => 'Már van néhány lap a könyvedben.
+Szeretnéd felülírni, az új tartalmat hozzáfűzni könyvhöz vagy abbahagyni a betöltését?',
+	'coll-overwrite' => 'Felülírás',
+	'coll-append' => 'Hozzáfűzés',
 	'coll-cancel' => 'Mégse',
-	'coll-update' => 'Frissít',
+	'coll-update' => 'Frissítés',
 	'coll-limit_exceeded_title' => 'A könyv túl nagy',
 	'coll-limit_exceeded_text' => 'A könyved túl nagy.
-Nem lehet több oldalt hozzáadni.',
+Nem adhatsz hozzá több lapot.',
 	'coll-rendering_title' => 'Renderelés',
 	'coll-rendering_text' => '<p><strong>Kérlek várj amíg a dokumentum elkészül!</strong></p>
 
-<p><strong>Készültség:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+<p><strong>Állapot:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
 <p>Ez az oldal automatikusan frissül pár másodpercenként.
 Ha ez nem történik meg, kérlek nyomd meg a böngésződ frissítés gombját!</p>',
 	'coll-rendering_status' => '<strong>Állapot:</strong> $1',
-	'coll-rendering_article' => '(wiki oldal: $1)',
+	'coll-rendering_article' => '(lap: $1)',
 	'coll-rendering_page' => '(oldal: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Lap információinak renderelése',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Gyűjtemény információinak renderelése',
 	'coll-rendering_finished_title' => 'A renderelés befejeződött',
-	'coll-rendering_finished_text' => '<strong>A dokumentum ekészült.</strong>
-<strong>[$1 Töltsd le a fájlt]</strong> a számítógépedre.
+	'coll-rendering_finished_text' => '<strong>A dokumentum elkészült.</strong>
+<strong>[$1 Fájl letöltése]</strong> a számítógépedre.
 
 Megjegyzés:
 * Nem vagy elégedett az eredménnyel? Lásd a  [[{{MediaWiki:Coll-helppage}}|könyvekről szóló segítség oldalt]] a javítási lehetőségekről.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Lapinformációk renderelése',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Gyűjtemény információinak renderelése',
 	'coll-notfound_title' => 'A könyv nem található',
 	'coll-notfound_text' => 'A könyvoldal nem található.',
-	'coll-is_cached' => '<ul><li>A dokumentum egy gyorsítótárazott változata megtalálható volt így nem volt szükség renderelésre.<a href="$1">Újra renderelés kényszerítése.</a></li></ul>',
+	'coll-download_notfound_title' => 'A fájl nem található',
+	'coll-download_notfound_text' => 'A fájl, amit megpróbáltál letölteni, nem létezik. Valószínűleg törölve lett, így újra el kell készíteni.',
+	'coll-download_failed_title' => 'Hiba a letöltés közben',
+	'coll-download_failed_text' => 'Hiba történt a fájl letöltése közben: $1',
+	'coll-is_cached' => '<ul><li>Sikerült megtalálni a dokumentum egy gyorsítótárazott változatát, így nem kellett újra elkészíteni.<a href="$1">Mindenképpen készítse el újra.</a></li></ul>',
 	'coll-excluded-templates' => 'A(z) [[:Category:$1|$1]] kategóriában lévő sablonok figyelmen kívül lettek hagyva.',
 	'coll-blacklisted-templates' => '* A(z) [[:$1]] feketelistán található sablonok figyelmen kívül lettek hagyva.',
 	'coll-return_to_collection' => '<p>Visszatérés ide: <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Megrendelés nyomtatott könyvként',
 	'coll-book_text' => 'Nyomtatott könyv rendelése a kérésre nyomtató partnerünktől:',
-	'coll-order_from_pp' => 'Könyv rendelése a következőtől: $1',
+	'coll-order_from_pp' => 'Előnézet: $1',
 	'coll-about_pp' => 'A $1ről',
 	'coll-invalid_podpartner_title' => 'Érvénytelen nyomdai partner',
 	'coll-invalid_podpartner_msg' => 'A megadott nyomdai partner érvénytelen.
-Kérlek lépj kapcsolatba a MediaWiki adminisztrátoroddal.',
+Kérlek lépj kapcsolatba a MediaWiki adminisztrátorával.',
 	'coll-license' => 'Licenc',
 	'coll-return_to' => 'Visszatérés a(z) [[:$1]] laphoz',
+	'coll-more_info' => 'További információk megjelenítése',
+	'coll-hide_info' => 'További információk elrejtése',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress rendelési információk',
+	'coll-suggest_title' => 'Javasolt lapok a könyvedbe',
+	'coll-suggest_intro_text' => 'A javaslatok jelenleg a könyvedben szereplő wikilapokon alapulnak.
+A lista minden alkalommal frissül, amikor a „hozzáadás” vagy „eltávolítás” gombra kattintasz.',
+	'coll-suggested_articles' => 'Javaslatok',
+	'coll-suggest_reset_bans' => 'alaphelyzet',
+	'coll-suggest_reset_bans_tooltip' => 'Előzőleg eltávolított javaslatok mutatása',
+	'coll-suggest_add_selected' => 'Kiválasztott lapok hozzáadása',
+	'coll-suggest_ban_selected' => 'Kijelölt lapok eltávolítása',
+	'coll-suggest_your_book' => 'A könyved',
+	'coll-suggest_show' => 'mutat',
+	'coll-suggest_ban_tooltip' => 'Távolítsd el ezt az oldalt a javaslatok listájáról',
+	'coll-suggest_article_ban' => 'A(z) <strong>$1</strong> lap eltávolítva a javaslatok listájáról ($2).',
+	'coll-suggest_article_add' => 'A(z) <strong>$1</strong> lap hozzáadva a könyvedhez ($2).',
+	'coll-suggest_article_remove' => 'A(z) <strong>$1</strong> lap eltávolítva a könyvedből ($2).',
+	'coll-suggest_undo_tooltip' => 'Művelet visszavonása',
+	'coll-suggest_undo' => 'visszavonás',
+	'coll-load_local_book' => 'Kattints az „OK” gombra a(z) %TITLE% című könyved folytatásához, ami %NUMPAGES% wikilapot tartalmaz. Kattints a „Mégse” gombra a törléséhez, és kezdéshez egy üres könyvvel.',
+	'right-collectionsaveasuserpage' => 'Könyvek mentése mint felhasználói lap',
+	'right-collectionsaveascommunitypage' => 'Könyvek mentése közösségi lapként',
 );
 
 /** Armenian (Հայերեն)
+ * @author Chaojoker
  * @author Teak
  */
 $messages['hy'] = array(
@@ -3120,24 +5656,11 @@
 	'coll-exclusion_category_title' => 'Չընդգրկել տպագրման մեջ',
 	'coll-print_template_prefix' => 'Տպման',
 	'coll-print_template_pattern' => '$1/Տպման',
-	'coll-create_a_book' => 'Ստեղծել գիրք',
-	'coll-add_page' => 'Ավելացնել էջը',
-	'coll-remove_page' => 'Ջնջել էջը',
-	'coll-add_category' => 'Ավելացնել կատեգորիան',
-	'coll-load_collection' => 'Բեռնել գիրքը',
-	'coll-show_collection' => 'Ցույց տալ գիրքը',
-	'coll-help_collections' => 'Գրքի օգնություն',
-	'coll-n_pages' => '$1 {{PLURAL:$1|էջ|էջ}}',
 	'coll-unknown_subpage_title' => 'Անհայտ ենթաէջ',
 	'coll-unknown_subpage_text' => '[[Special:Book|Գրքի]] այս ենթաէջը գոյություն չունի',
-	'coll-printable_version_pdf' => 'PDF-տարբերակ',
-	'coll-download_as' => 'Քաշել որպես $1',
 	'coll-noscript_text' => '<h1>Պահանջո՜ւմ է JavaScript։</h1>
-<strong>Ձեր բրաուզերը չունի JavaScript հնարավորություն կամ JavaScript-ը անջատած է։
+<strong>Ձեր զննարկիչը չունի JavaScript հնարավորություն կամ JavaScript-ը անջատած է։
 Այս էջը ճիշտ չի գործի, եթե JavaScript-ը միացված չէ։</strong>',
-	'coll-intro_text' => 'Ստեղծեք և կառավարեք վիքի էջերի ձեր անջնական հավաքածուն։<br />Մանրամասների համար տես [[{{MediaWiki:Coll-helppage}}]]։',
-	'coll-helppage' => 'Help:Գրքեր',
-	'coll-bookscategory' => 'Գրքեր',
 	'coll-savedbook_template' => 'պահպանված_գիրք',
 	'coll-your_book' => 'Ձեր գիրքը',
 	'coll-download_title' => 'Քաշել',
@@ -3157,8 +5680,6 @@
 	'coll-drag_and_drop' => 'Վիքի էջերը և գլուխները վերադասավորելու համար քաշեք-տարեք մկնիկով',
 	'coll-create_chapter' => 'Ստեղծել նոր գլուխ',
 	'coll-sort_alphabetically' => 'Դասավորել այբուբենով',
-	'coll-clear_collection' => 'Ջնջել գիրքը',
-	'coll-clear_collection_confirm' => 'Դուք իսկապես ցանկանում եք ամբողջությամբ ջնջե՞լ ձեր գիրքը։',
 	'coll-rename' => 'Վերանվանել',
 	'coll-new_chapter' => 'Մուտքագրեք նոր գլխի վերնագիրը',
 	'coll-rename_chapter' => 'Մուտքագրեք գլխի նոր վերնագիրը',
@@ -3194,24 +5715,24 @@
 	'coll-limit_exceeded_text' => 'Ձեր գիրքը շատ մեծ է։
 Նոր էջեր չեն կարող ավելացվել։',
 	'coll-rendering_title' => 'Ստեղծում',
-	'coll-rendering_text' => '<p><strong>Խնդրում ենք սպասել մինչև ֆայլը ստեղծվում է։</strong></p>
+	'coll-rendering_text' => '<p><strong>Խնդրում ենք սպասել մինչև նիշքը ստեղծվում է։</strong></p>
 
 <p><strong>Ընթացքը.</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
 <p>Այս էջը պետք է ավտոմատիկ թարմացվի վայրկյանում մի քանի անգամ։
-Եթե դա տեղի չի ունենում, ապա խնդրում ենք սեղմել ձեր բրաուզերի «թարմացնել» կոճակը։</p>',
+Եթե դա տեղի չի ունենում, ապա խնդրում ենք սեղմել ձեր զննարկիչի «թարմացնել» կոճակը։</p>',
 	'coll-rendering_status' => '<strong>Կարգավիճակ.</strong> $1',
 	'coll-rendering_article' => '(վիքի էջ. $1)',
 	'coll-rendering_page' => '(էջ. $1)',
 	'coll-rendering_finished_title' => 'Ստեղծումն ավարտված է',
-	'coll-rendering_finished_text' => '<strong>Ֆայլը ստեղծված է։</strong>
-<strong>[$1 Քաշել ֆայլը]</strong> ձեր համակարգչի մեջ։
+	'coll-rendering_finished_text' => '<strong>Նիշքը ստեղծված է։</strong>
+<strong>[$1 Քաշել նիշքը]</strong> ձեր համակարգչի մեջ։
 
 Նշում.
 * Բավարարված չե՞ք արդյունքով։ Տես [[{{MediaWiki:Coll-helppage}}|գրքերի մասին օգնության էջը]] այն լավացնելու հնարավորությունների համար։',
 	'coll-notfound_title' => 'Գիրքը չգտնվեց',
 	'coll-notfound_text' => 'Հնարավոր չէ գտնել գրքի էջը։',
-	'coll-is_cached' => '<ul><li>Այս ֆայլի պատճենը կա քեշում, ուստի ստեղծում չի պահանջվում։ <a href="$1">Հարկադրել վերստեղծում։</a></li></ul>',
+	'coll-is_cached' => '<ul><li>Այս նիշքի պատճենը կա հիշապահեստում (քեշում), ուստի ստեղծում չի պահանջվում։ <a href="$1">Հարկադրել վերստեղծում։</a></li></ul>',
 	'coll-excluded-templates' => '* [[:Category:$1|$1]] կատեգորիայի կաղապարները չեն ընդգրկվել։',
 	'coll-blacklisted-templates' => '* [[:$1]] սև ցուցակի կաղապարները չեն ընդգրկվել։',
 	'coll-return_to_collection' => '<p>Վերադառնալ <a href="$1">$2</a></p>',
@@ -3222,7 +5743,7 @@
 	'coll-invalid_podpartner_title' => 'Չգործող POD գործընկեր',
 	'coll-invalid_podpartner_msg' => 'Առաջարկված POD գործընկերը չի գործում։
 Խնդրում ենք կապնվել ձեր MediaWiki ադմինիստրատորի հետ։',
-	'coll-license' => 'Լիցենզիա',
+	'coll-license' => 'Արտոնագիր',
 	'coll-return_to' => 'Վերադառնալ [[:$1]]',
 );
 
@@ -3231,34 +5752,32 @@
  */
 $messages['ia'] = array(
 	'coll-desc' => '[[Special:Book|Crear libros]]',
+	'coll-book_creator_intro' => "<big>Con le ''creator de libros'' tu pote crear un libro continente paginas wiki de tu preferentia. Tu pote exportar le libro in differente formatos (per examplo PDF o ODF) o ordinar un copia imprimite.</big>",
+	'coll-manage_your_book' => 'Gerer tu libro',
+	'coll-book_creator_help' => 'Vide [[{{MediaWiki:Coll-helppage}}|le pagina de adjuta super libros]] pro plus informationes.',
+	'coll-start_book_creator' => 'Comenciar le creator de libros',
+	'coll-book_creator_continue' => 'Continuar a usar le creator de libros',
+	'coll-book_creator_disable_text' => "Le ''creator de libros'' essera disactivate e le libro al qual tu labora essera removite.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texto del creator de libros',
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libros',
 	'coll-exclusion_category_title' => 'Excluder del impression',
 	'coll-print_template_prefix' => 'Imprimer',
 	'coll-print_template_pattern' => '$1/Imprimer',
-	'coll-create_a_book' => 'Crear un libro',
-	'coll-add_page' => 'Adder un pagina wiki',
-	'coll-remove_page' => 'Remover pagina wiki',
-	'coll-add_category' => 'Adder categoria',
-	'coll-load_collection' => 'Cargar libro',
-	'coll-show_collection' => 'Monstrar libro',
-	'coll-help_collections' => 'Adjuta super le libros',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|paginas}}',
 	'coll-unknown_subpage_title' => 'Subpagina incognite',
 	'coll-unknown_subpage_text' => 'Iste subpagina de [[Special:Book|Libro]] non existe',
-	'coll-printable_version_pdf' => 'Version PDF',
-	'coll-download_as' => 'Discargar como $1',
+	'coll-couldnotaddarticle_title' => 'Non poteva adder pagina wiki',
+	'coll-couldnotaddarticle_msg' => 'Le pagina wiki non poteva esser addite.',
+	'coll-couldnotremovearticle_title' => 'Non poteva remover pagina wiki',
+	'coll-couldnotremovearticle_msg' => 'Le pagina wiki non poteva esser removite.',
 	'coll-noscript_text' => '<h1>JavaScript es requirite!</h1>
 <strong>Tu navigator non supporta JavaScript o JavaScript ha essite disactivate.
 Iste pagina non functionara correctemente si JavaScript non es activate.</strong>',
-	'coll-intro_text' => 'Crea e gere tu selection personal de paginas wiki.<br />Vide [[{{MediaWiki:Coll-helppage}}]] pro ulterior informationes.',
-	'coll-helppage' => 'Help:Libros',
-	'coll-bookscategory' => 'Libros',
 	'coll-savedbook_template' => 'libro_immagazinate',
 	'coll-your_book' => 'Tu libro',
 	'coll-download_title' => 'Discargar',
-	'coll-download_text' => 'Pro discargar un version foras linea, selige un formato e clicca super le button.',
-	'coll-download_as_text' => 'Pro discargar un version in le formatio $1 clicca super le button.',
+	'coll-download_text' => 'Pro discargar tu libro, selige un formato e clicca super le button.',
+	'coll-download_as_text' => 'Pro discargar tu libro le formato $1, clicca super le button.',
 	'coll-download' => 'Discargar',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Remover',
@@ -3273,8 +5792,6 @@
 	'coll-drag_and_drop' => 'Usa "traher & lassar cader" pro reordinar le paginas wiki e le capitulos',
 	'coll-create_chapter' => 'Crear capitulo',
 	'coll-sort_alphabetically' => 'Ordinar alphabeticamente',
-	'coll-clear_collection' => 'Vacuar libro',
-	'coll-clear_collection_confirm' => 'Esque tu realmente vole vacuar completemente tu libro?',
 	'coll-rename' => 'Renominar',
 	'coll-new_chapter' => 'Entra nomine pro nove capitulo',
 	'coll-rename_chapter' => 'Entra nove nomine pro capitulo',
@@ -3287,13 +5804,13 @@
 	'coll-error_reponse' => 'Responsa de error ab servitor',
 	'coll-empty_collection' => 'Libro vacue',
 	'coll-revision' => 'Version: $1',
-	'coll-save_collection_title' => 'Immagazinar tu libro pro uso in commun',
+	'coll-save_collection_title' => 'Salveguardar e condivider tu libro',
 	'coll-save_collection_text' => 'Selige un location:',
-	'coll-login_to_save' => 'Si tu vole immagazinar libros pro uso futur, per favor [[Special:UserLogin|aperi un session o crea un conto]].',
+	'coll-login_to_save' => 'Si tu vole salveguardar libros pro uso futur, per favor [[Special:UserLogin|aperi un session o crea un conto]].',
 	'coll-personal_collection_label' => 'Libro personal:',
 	'coll-community_collection_label' => 'Libro communitari:',
-	'coll-save_collection' => 'Immagazinar libro',
-	'coll-save_category' => 'Le libros es immagazinate in le categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_collection' => 'Salveguardar libro',
+	'coll-save_category' => 'Tote le libros immagazinate es addite al categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Le pagina existe ja.
 Superscriber lo?',
 	'coll-overwrite_text' => 'Existe ja un pagina con le nomine [[:$1]].
@@ -3319,40 +5836,378 @@
 	'coll-rendering_status' => '<strong>Stato:</strong> $1',
 	'coll-rendering_article' => '(pagina wiki: $1)',
 	'coll-rendering_page' => '(pagina: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto de information super le rendition de paginas',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto de information super le rendition de collectiones',
 	'coll-rendering_finished_title' => 'Rendition finite',
 	'coll-rendering_finished_text' => '<strong>Le file del documento ha essite generate.</strong>
 <strong>[$1 Discarga le file]</strong> verso tu computator.
 
 Notas:
 * Non satisfacite con le resultato? Vide [[{{MediaWiki:Coll-helppage}}|le pagina de adjuta super le libros]] pro possibilitates de meliorar lo.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informative super le rendition de paginas',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informative super le rendition de collectiones',
 	'coll-notfound_title' => 'Libro non trovate',
 	'coll-notfound_text' => 'Non poteva trovar le pagina del libro.',
+	'coll-download_notfound_title' => 'File non trovate',
+	'coll-download_notfound_text' => 'Le file que tu tenta discargar non existe. Forsan illo ha essite delite e debe esser regenerate.',
+	'coll-download_failed_title' => 'Error durante le discargamento',
+	'coll-download_failed_text' => 'Il occurreva un error durante le discargamento del file: $1',
 	'coll-is_cached' => '<ul><li>Un version del documento ha essite trovate in le cache, ergo non esseva necessari facer un altere rendition. <a href="$1">Fortiar le re-rendition.</a></li></ul>',
 	'coll-excluded-templates' => '* Le patronos in le categoria [[:Category:$1|$1]] ha essite excludite.',
 	'coll-blacklisted-templates' => '* Le patronos in le lista nigre [[:$1]] ha essite excludite.',
 	'coll-return_to_collection' => '<p>Retornar a <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Commandar como libro imprimite',
 	'coll-book_text' => 'Obtene un libro imprimite de nostre partenario de impression a requesta (print on demand):',
-	'coll-order_from_pp' => 'Commandar libro ab $1',
+	'coll-order_from_pp' => 'Previsualisar con $1',
 	'coll-about_pp' => 'A proposito de $1',
 	'coll-invalid_podpartner_title' => 'Partenario de impression a requesta (POD) non valide',
 	'coll-invalid_podpartner_msg' => 'Le partenario indicate de impression a requesta (POD) non es valide.
 Per favor contacta tu administrator de MediaWiki.',
 	'coll-license' => 'Licentia',
 	'coll-return_to' => 'Retornar a [[:$1]]',
+	'coll-more_info' => 'Monstrar plus informationes',
+	'coll-hide_info' => 'Celar informationes',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Commanda a PediaPress',
+	'coll-suggest_title' => 'Paginas suggerite pro tu libro',
+	'coll-suggest_intro_text' => 'Le suggestiones es basate super le collection actual de paginas wiki in tu libro.
+Le lista es actualisate cata vice que tu clicca super le buttones "adder" o "remover".',
+	'coll-suggested_articles' => 'Suggestiones',
+	'coll-suggest_reset_bans' => 'reinitialisar',
+	'coll-suggest_reset_bans_tooltip' => 'Monstrar suggestiones previemente removite',
+	'coll-suggest_add_selected' => 'Adder paginas seligite',
+	'coll-suggest_ban_selected' => 'Remover paginas seligite',
+	'coll-suggest_your_book' => 'Tu libro',
+	'coll-suggest_show' => 'monstrar',
+	'coll-suggest_ban_tooltip' => 'Remover iste pagina del lista de suggestiones',
+	'coll-suggest_article_ban' => 'Le pagina <strong>$1</strong> ha essite removite del suggestiones ($2).',
+	'coll-suggest_article_add' => 'Le pagina <strong>$1</strong> ha essite addite a tu libro ($2).',
+	'coll-suggest_article_remove' => 'Le pagina <strong>$1</strong> ha essite removite de tu libro ($2).',
+	'coll-suggest_undo_tooltip' => 'Disfacer iste action',
+	'coll-suggest_undo' => 'disfacer',
+	'coll-load_local_book' => 'Clicca super OK pro continuar con tu libro %TITLE% que contine %NUMPAGES% paginas wiki. Clicca super Cancellar pro deler lo e comenciar con un libro vacue.',
+	'right-collectionsaveasuserpage' => 'Salveguardar libros como pagina de usator',
+	'right-collectionsaveascommunitypage' => 'Salveguardar libros como pagina de communitate',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author -iNu-
+ * @author Bennylin
+ * @author Farras
  * @author Irwangatot
+ * @author IvanLanin
+ * @author Iwan Novirion
  * @author Rex
  */
 $messages['id'] = array(
+	'coll-desc' => '[[Special:Book|Buat buku]]',
+	'coll-book_creator_intro' => "<big>Dengan ''pembuat buku'', Anda dapat membuat buku berisi halaman wiki pilihan Anda. Anda dapat mengekspor buku dalam berbagai format (misalnya, PDF atau ODF) atau memesan versi cetaknya.</big>",
+	'coll-manage_your_book' => 'Pengelolaan buku',
+	'coll-book_creator_help' => 'Lihat [[{{MediaWiki:Coll-helppage}}|halaman bantuan tentang buku]] untuk informasi selengkapnya.',
+	'coll-start_book_creator' => 'Mulai pembuat buku',
+	'coll-book_creator_continue' => 'Lanjutkan penggunaan pembuat buku',
+	'coll-book_creator_disable_text' => "''Pembuat buku'' akan dinonaktifkan dan buku yang sedang Anda kerjakan akan dihapus.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Teks pembuat buku',
+	'coll-collection' => 'Buku',
+	'coll-collections' => 'Buku',
+	'coll-exclusion_category_title' => 'Halaman yang tidak turut dicetak',
+	'coll-print_template_prefix' => 'Cetak',
+	'coll-print_template_pattern' => '$1/Cetak',
+	'coll-unknown_subpage_title' => 'Subhalaman tak dikenal',
+	'coll-unknown_subpage_text' => 'Subhalaman dari [[Special:Book|buku]] ini tak tersedia',
+	'coll-couldnotaddarticle_title' => 'Tidak dapat menambahkan halaman wiki',
+	'coll-couldnotaddarticle_msg' => 'Halaman wiki ini tidak dapat ditambahkan.',
+	'coll-couldnotremovearticle_title' => 'Tidak dapat membuang halaman wiki',
+	'coll-couldnotremovearticle_msg' => 'Halaman wiki tidak dapat dibuang.',
+	'coll-noscript_text' => '<h1>Diperlukan JavaScript!</h1>
+<strong>Penjelajah web Anda tidak mendukung JavaScript atau JavaScript telah dimatikan.
+Halaman ini tidak akan bekerja dengan benar, kecuali jika JavaScript diaktifkan.</strong>',
+	'coll-savedbook_template' => 'buku_tersimpan',
+	'coll-your_book' => 'Buku Anda',
+	'coll-download_title' => 'Unduh',
+	'coll-download_text' => 'Untuk mengunduh buku Anda, pilih format dan klik tombol Unduh.',
+	'coll-download_as_text' => 'Untuk mengunduh buku Anda dengan format $1, klik tombol Unduh.',
+	'coll-download' => 'Unduh',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Hapus',
+	'coll-show' => 'Tampilkan',
+	'coll-move_to_top' => 'Pindahkan ke paling atas',
+	'coll-move_up' => 'Pindahkan ke atas',
+	'coll-move_down' => 'Pindahkan ke bawah',
+	'coll-move_to_bottom' => 'Pindahkan ke paling bawah',
 	'coll-title' => 'Judul:',
+	'coll-subtitle' => 'Subjudul:',
+	'coll-contents' => 'Daftar isi',
+	'coll-drag_and_drop' => 'Seret & lepas untuk mengubah urutan halaman wiki dan bab',
+	'coll-create_chapter' => 'Buat bab',
+	'coll-sort_alphabetically' => 'Urutkan secara alfabetis',
+	'coll-rename' => 'Ganti nama',
+	'coll-new_chapter' => 'Masukkan nama bab baru',
+	'coll-rename_chapter' => 'Masukkan nama baru bab',
+	'coll-no_such_category' => 'Tidak ada kategori tersebut',
+	'coll-notitle_title' => 'Judul halaman tidak bisa ditentukan.',
+	'coll-post_failed_title' => 'Permintaan POST gagal',
+	'coll-post_failed_msg' => 'Permintaan POST untuk $1 gagal ($2).',
+	'coll-mwserve_failed_title' => 'Kesalahan server pengolahan',
+	'coll-mwserve_failed_msg' => 'Terjadi suatu kesalahan berikut pada server pengolahan: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Respons kesalahan dari server',
+	'coll-empty_collection' => 'Buku kosong',
+	'coll-revision' => 'Revisi: $1',
+	'coll-save_collection_title' => 'Simpan dan bagikan buku Anda',
+	'coll-save_collection_text' => 'Pilih suatu tempat penyimpanan untuk buku Anda:',
+	'coll-login_to_save' => 'Jika Anda ingin menyimpan buku untuk digunakan nanti, silakan [[Special:UserLogin|masuk log atau buat akun]].',
+	'coll-personal_collection_label' => 'Buku pribadi:',
+	'coll-community_collection_label' => 'Buku komunitas:',
+	'coll-save_collection' => 'Simpan buku',
+	'coll-save_category' => 'Semua buku disimpan di kategori  [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Halaman sudah ada.
+Timpa?',
+	'coll-overwrite_text' => 'Suatu halaman dengan nama [[:$1]] sudah ada.
+Apakah Anda ingin menggantikannya dengan buku Anda?',
 	'coll-yes' => 'Ya',
 	'coll-no' => 'Tidak',
+	'coll-load_overwrite_text' => 'Anda telah memiliki beberapa halaman pada buku Anda.
+Apakah Anda ingin menimpa buku Anda itu, menambahkan isi baru, atau batal memuat buku ini?',
+	'coll-overwrite' => 'Timpa',
+	'coll-append' => 'Tambah',
 	'coll-cancel' => 'Batalkan',
+	'coll-update' => 'Perbarui',
+	'coll-limit_exceeded_title' => 'Buku terlalu besar',
+	'coll-limit_exceeded_text' => 'Buku Anda terlalu besar.
+Tidak bisa menambahkan halaman lagi.',
+	'coll-rendering_title' => 'Pengolahan',
+	'coll-rendering_text' => '<p><strong>Harap tunggu buku ini dibuat.</strong></p>
+
+<p><strong>Kemajuan:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Halaman ini seharusnya dimuat ulang secara otomatis setiap beberapa detik.
+Jika tidak, silakan tekan tombol muat ulang di penjelajah web Anda.</p>',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(halaman wiki: $1)',
+	'coll-rendering_page' => '(halaman: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mengubah teks halaman info',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mengubah teks koleksi info',
+	'coll-rendering_finished_title' => 'Pengolahan selesai',
+	'coll-rendering_finished_text' => '<strong>Berkas dokumen telah dibuat.</strong>
+<strong>[$1 Unduh berkas]</strong> ke komputer Anda.
+
+Catatan:
+* Tidak puas dengan hasilnya? Lihat [[{{MediaWiki:Coll-helppage}}|halaman bantuan tentang buku]] untuk kemungkinan mengembangkannya.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mengubah teks info halaman',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Mengubah teks info koleksi',
+	'coll-notfound_title' => 'Buku tak ditemukan',
+	'coll-notfound_text' => 'Tidak dapat menemukan halaman buku.',
+	'coll-download_notfound_title' => 'Berkas tak ditemukan',
+	'coll-download_notfound_text' => 'Berkas yang Anda coba unduh tidak ada: Mungkin sudah dihapus dan perlu dibuat ulang.',
+	'coll-download_failed_title' => 'Kesalahan selama pengunduhan',
+	'coll-download_failed_text' => 'Terjadi kesalahan ketika mengunduh berkas: $1',
+	'coll-is_cached' => '<ul><li>Versi tersimpan dari dokumen ini telah ditemukan, sehingga tidak diperlukan pengolahan apa pun. <a href="$1">Paksa pengolahan ulang.</a></li></ul>',
+	'coll-excluded-templates' => '* Templat di kategori [[:Category:$1|$1]] telah dikecualikan.',
+	'coll-blacklisted-templates' => '* Templat pada daftar hitam[[:$1]] telah dikecualikan.',
+	'coll-return_to_collection' => '<p>Kembali ke <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Pesan sebagai buku tercetak',
+	'coll-book_text' => 'Dapatkan buku tercetak dari rekanan cetak-sesuai-permintaan kami.',
+	'coll-order_from_pp' => 'Pesan buku dari $1',
+	'coll-about_pp' => 'Tentang $1',
+	'coll-invalid_podpartner_title' => 'Rekanan POD tak valid',
+	'coll-invalid_podpartner_msg' => 'Rekanan POD yang diberikan tak valid.
+Silakan hubungi pengelola MediaWiki Anda.',
+	'coll-license' => 'Lisensi',
+	'coll-return_to' => 'Kembali ke [[:$1]]',
+	'coll-more_info' => 'Tampilkan informasi lebih lanjut',
+	'coll-hide_info' => 'Sembunyikan informasi',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informasi pemesanan dari PediaPress',
+	'coll-suggest_title' => 'Halaman yang disarankan untuk buku Anda',
+	'coll-suggest_intro_text' => 'Saran berdasarkan pada pengaturan halaman wiki dalam buku Anda.
+Daftar diperbarui kapan pun Anda mengeklik tombol tambah atau hapus.',
+	'coll-suggested_articles' => 'Disarankan',
+	'coll-suggest_reset_bans' => 'tata ulang',
+	'coll-suggest_reset_bans_tooltip' => 'Tampilkan saran yang dihapus sebelumnya',
+	'coll-suggest_add_selected' => 'Tambahkan halaman yang dipilih',
+	'coll-suggest_ban_selected' => 'Hapus halaman yang dipilih',
+	'coll-suggest_your_book' => 'Buku anda',
+	'coll-suggest_show' => 'tampilkan',
+	'coll-suggest_ban_tooltip' => 'Hapus halaman ini dari daftar yang disarankan',
+	'coll-suggest_article_ban' => 'Halaman <strong>$1</strong> telah dihapus dari saran ($2).',
+	'coll-suggest_article_add' => 'Halaman <strong>$1</strong> telah ditambahkan pada ke dalam buku Anda ($2).',
+	'coll-suggest_article_remove' => 'Halaman <strong>$1</strong> telah dihapus dari buku Anda ($2).',
+	'coll-suggest_undo_tooltip' => 'Batalkan pilihan ini',
+	'coll-suggest_undo' => 'batalkan',
+	'coll-load_local_book' => 'Klik OK untuk melanjutkan dengan buku Anda yang berjudul %TITLE% yang berisi %NUMPAGES% halaman wiki. Klik Batal untuk menghapusnya dan memulai dengan buku kosong.',
+	'right-collectionsaveasuserpage' => 'Menyimpan koleksi buku sebagai halaman pengguna',
+	'right-collectionsaveascommunitypage' => 'Menyimpan koleksi buku sebagai halaman komunitas',
 );
 
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'coll-show' => 'Zi',
+	'coll-title' => 'Íshí:',
+	'coll-cancel' => 'Kàchá',
+	'coll-about_pp' => 'Maka $1',
+	'coll-suggest_show' => 'zi',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'coll-desc' => '[[Special:Book|Agaramid ti liblibro]]',
+	'coll-book_creator_intro' => "<big>Nga iti ''panagaramid ti libro'' makaaramid ka ti libro nga naglaon kadagiti pampanid ti wiki a napilim. Maipan mo ti libro kadagiti sabsabali a porma (kas pagarigan PDF wenno ODF) wenno agibilin ka ti naimaldit a kopia.<big>",
+	'coll-manage_your_book' => 'Taripatuem ti librom',
+	'coll-book_creator_help' => 'Kitaen ti [[{{MediaWiki:Coll-helppage}}|ti tulong a panid a maipanggep ti liblibro]] para iti adu pay a pakaammo.',
+	'coll-start_book_creator' => 'Mangrugi ti panagaramid ti libro',
+	'coll-book_creator_continue' => 'Agtultuloy nga agusar ti panagaramid ti libro',
+	'coll-book_creator_disable_text' => "''Panagaramid ti Libro'' ket mabaldadon to ken ti libro nga araramidem ket maikkat.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Teksto ti panagaramid ti libro',
+	'coll-collection' => 'Libro',
+	'coll-collections' => 'Dagiti libro',
+	'coll-exclusion_category_title' => 'Saan nga imaldit',
+	'coll-print_template_prefix' => 'Imaldit',
+	'coll-print_template_pattern' => '$1/Imaldit',
+	'coll-unknown_subpage_title' => 'Di amammo nga apo ti panid',
+	'coll-unknown_subpage_text' => 'Daytoy nga apo ti panid iti [[Special:Book|Libro]] ket awanen',
+	'coll-couldnotaddarticle_title' => 'Saan a mainayon ti panid ti wiki',
+	'coll-couldnotaddarticle_msg' => 'Ti panid ti wiki ket saan a mainayon.',
+	'coll-couldnotremovearticle_title' => 'Saan a maikkat ti panid ti wiki',
+	'coll-couldnotremovearticle_msg' => 'Ti panid ti wiki ket saan a maikkat.',
+	'coll-noscript_text' => '<h1>Masapul ti JavaScript!</h1>
+<strong>Ti pagbasabasam ket saan na asuportaran ti JavaScript wenno ti JavaScript ket naiddep.
+Daytoy a panid ket saan nga agbalin nga husto, malaksid no pakabaelam ti JavaScript.</strong>',
+	'coll-savedbook_template' => 'naidulin_ti_libro',
+	'coll-your_book' => 'Ti librom',
+	'coll-download_title' => 'Ikarga nga agpababa',
+	'coll-download_text' => 'Ti agikarga ti librom agpili ti porma ken agtakla ti buton.',
+	'coll-download_as_text' => 'Ti agikarga ti librom iti $1 a porma agtakla ti buton.',
+	'coll-download' => 'Ikarga nga agpababa',
+	'coll-format_label' => 'Pormat:',
+	'coll-remove' => 'Ikkaten',
+	'coll-show' => 'Ipakita',
+	'coll-move_to_top' => 'Mapan iti ngato',
+	'coll-move_up' => 'Agpangato',
+	'coll-move_down' => 'Agpababa',
+	'coll-move_to_bottom' => 'Mapan iti baba',
+	'coll-title' => 'Titulo:',
+	'coll-subtitle' => 'Maikadua a titulo:',
+	'coll-contents' => 'Dagiti linaon',
+	'coll-drag_and_drop' => 'Agusar ti agguyod ken agitinnag ti agibilin manen ti pampanid ti wiki ken dagiti kapitulo',
+	'coll-create_chapter' => 'Agaramid ti kapitulo',
+	'coll-sort_alphabetically' => 'Paglalasinen a pang-abedasario',
+	'coll-rename' => 'Naganan',
+	'coll-new_chapter' => 'Ikabil ti nagan ti baro a kapitulo',
+	'coll-rename_chapter' => 'Ikabil ti nagan para iti kapitulo',
+	'coll-no_such_category' => 'Awan ti kasta a kategoria',
+	'coll-notitle_title' => 'Saan a malasin ti titulo iti dayta a panid.',
+	'coll-post_failed_title' => 'Napaay ti kiniddaw a POST',
+	'coll-post_failed_msg' => 'Ti kiniddaw a POST ti $1 ket napaay ($2) .',
+	'coll-mwserve_failed_title' => 'Biddut ti ipaay ti server',
+	'coll-mwserve_failed_msg' => 'Addan ti biddut a napasamak idiay ipaay ti server: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Biddut ti sungbat manipud idiay server',
+	'coll-empty_collection' => 'Awan nagyan na a libro',
+	'coll-revision' => 'Panagbaliw: $1',
+	'coll-save_collection_title' => 'Idulin ken makibingay iti librom',
+	'coll-save_collection_text' => 'Agpili ti pagidulinam a lokasion para iti librom:',
+	'coll-login_to_save' => 'No kayatmo ti agidulin ti liblibro para iti panagusar no madadama, pangngaasi a [[Special:UserLogin|sumrek ka, wenno agaramid ti pakabilangant]].',
+	'coll-personal_collection_label' => 'Kinabukod a libro:',
+	'coll-community_collection_label' => 'Libro ti komunidad:',
+	'coll-save_collection' => 'Idulin ti libro',
+	'coll-save_category' => 'Amin dagiti liblibro a naidulin ket mainayon iti kategoria a [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Addaan ti panid.
+Suratam manen?',
+	'coll-overwrite_text' => 'Ti panid nga agnagan ti [[:$1]] ket addaanen.
+Kayatmo a sukatan na ti librom?',
+	'coll-yes' => 'Wen',
+	'coll-no' => 'Saan',
+	'coll-load_overwrite_text' => 'Addaan kan ti pampanid dita librom.
+Kayatmo a suratan manen ti agdama a librom, baliwan ti baro a linaon, wenno ukasen ti panagkarga iti daytoy a libro?',
+	'coll-overwrite' => 'Suratan manen',
+	'coll-append' => 'Baliwan',
+	'coll-cancel' => 'Ukasen',
+	'coll-update' => 'Pabaro',
+	'coll-limit_exceeded_title' => 'Dakkel unay daytoy a libro',
+	'coll-limit_exceeded_text' => 'Dakkel unay ti librom.
+Awanen ti panid a mainayon.',
+	'coll-rendering_title' => 'Agi-ipipaay',
+	'coll-rendering_text' => '<p><strong>Pangngaasi nga aguray bayat nga maararamid ti dokumento.</strong></p>
+
+<p><strong>Agrangrangay:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Daytoy a panid ket automatiko nga ag-pasaradiwaa iti manmanu a segundo.
+No saan ng a agbalin, pangngaasi a pindutem ti buton ti pagbasabasam.<p>',
+	'coll-rendering_status' => '<strong>Kasasaad:</strong> $1',
+	'coll-rendering_article' => '(panid ti wiki: $1)',
+	'coll-rendering_page' => '(panid: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Agip-ipaay ti teksto ti pakaammo ti panid',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Agip-ipaay ti naurnong a teksto ti pakaammo',
+	'coll-rendering_finished_title' => 'Ti panagipaay ket nalpasen',
+	'coll-rendering_finished_text' => '<strong>Naramiden ti dokumento ti papeles.</strong>
+<strong>[$1 Ikarga ti papeles]</strong> dita komputer mo.
+
+Dagitipaamo:
+* Saan mo a napennekan ti rimmuar? Kitaen ti [[{{MediaWiki:Coll-helppage}}|tulong ti panid a maipanggep ti liblibro]] para ti mabalin a mangparang-ay.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Agip-ipaay ti teksto ti pakaammo ti panid',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Agip-ipaay ti naurnong a teksto ti pakaammo',
+	'coll-notfound_title' => 'Saan a nabirukan ti libro',
+	'coll-notfound_text' => 'Saan a mabirukan ti panid ti libro.',
+	'coll-download_notfound_title' => 'Saan a mabirukan ti papeles',
+	'coll-download_notfound_text' => 'Ti papeles nga padpadasem nga ikarga ket awanen:
+Baka naikkaten ken masapul a maaramid.',
+	'coll-download_failed_title' => 'Biddut idi agkarkarga',
+	'coll-download_failed_text' => 'Addan ti biddut idi agkarkarga ti papeles: $1',
+	'coll-is_cached' => '<ul><li>Addan ti naidulin a bersion iti daytoy a dokumento,saanen a masapul a ipaay.
+<a href="$1">Pilitem ti agipaay.</a></li></ul>',
+	'coll-excluded-templates' => '* Dagiti plantilia iti kategoria [[:Category:$1|$1]] ket saanen a nairaman.',
+	'coll-blacklisted-templates' => '* Dagiti plantili iti blacklist [[:$1]] ket saanen a nairaman.',
+	'coll-return_to_collection' => '<p>Agsubli idiay <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Agbilin a kasla iti naimaldit a libro',
+	'coll-book_text' => 'Agala ti naimaldit a libro manipud idiay kadua mi nga agimalmaldit.',
+	'coll-order_from_pp' => 'Agipadas nga addaan ti $1',
+	'coll-about_pp' => 'Maipanggep ti  $1',
+	'coll-invalid_podpartner_title' => 'Imbalido a POD a kadua',
+	'coll-invalid_podpartner_msg' => 'Ti naited a POD a kadua ket imbalido.
+Pangngaasia kontaken ti administrador ti MediaWiki.',
+	'coll-license' => 'Lisensia',
+	'coll-return_to' => 'Agsubli idiay [[:$1]]',
+	'coll-more_info' => 'Agipakita ti adu pay a pakaammo',
+	'coll-hide_info' => 'Ilemmeng ti pakaammo',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Pakaammo ti panagbilin ti PediaPress',
+	'coll-suggest_title' => 'Naisingasing a pampanid para iti librom',
+	'coll-suggest_intro_text' => 'Ti naisingasing ket naibantay iti agdama a disso ti pampanid ti wiki nga addaan dita librom.
+Ti listaan ket maipabaro no agpatinayon ka nga agtakla iti agnayon wenno agikkat a buton.',
+	'coll-suggested_articles' => 'Dagiti singasing',
+	'coll-suggest_reset_bans' => 'isubli',
+	'coll-suggest_reset_bans_tooltip' => 'Iarang dagiti kallabes a naikkat a singasing',
+	'coll-suggest_add_selected' => 'Inayon dagiti napili a pampanid',
+	'coll-suggest_ban_selected' => 'Ikkaten dagiti napili a pampanid',
+	'coll-suggest_your_book' => 'Ti librom',
+	'coll-suggest_show' => 'ipakita',
+	'coll-suggest_ban_tooltip' => 'Ikkaten daytoy a panid manipud dita listaan dagiti singasing',
+	'coll-suggest_article_ban' => 'Ti panid <strong>$1</strong> ket naikkaten manipud kadagiti naisingasing ($2).',
+	'coll-suggest_article_add' => 'Ti panid <strong>$1</strong> ket nainayonen dita librom ($2).',
+	'coll-suggest_article_remove' => 'Ti panid <strong>$1</strong> ket naikkaten manipud dita librom ($2).',
+	'coll-suggest_undo_tooltip' => 'Isubli daytoy nga aksion',
+	'coll-suggest_undo' => 'ibabawi',
+	'coll-load_local_book' => 'Itaklam ti OK tapno agtuloy ka ti librom %TITLE% nga naglaon kadagiti %NUMPAGES% pampanid ti wiki. Itakla ti Cancel ti agikkat ken mangrugi ti awan nagyan na a libro.',
+	'right-collectionsaveasuserpage' => 'Idulin ti liblibro a kas panid ti agar-aramat',
+	'right-collectionsaveascommunitypage' => 'Idulin ti liblibro a kas panid ti komunidad',
+);
+
+/** Ingush (ГІалгІай Ğalğaj)
+ * @author Amire80
+ * @author Sapral Mikail
+ */
+$messages['inh'] = array(
+	'coll-collection' => 'Китаб',
+	'coll-collections' => 'Китабаш',
+	'coll-your_book' => 'Хьа китаб',
+	'coll-yes' => 'XӀаа',
+	'coll-no' => 'A',
+	'coll-notfound_title' => 'Китаб корая яц',
+	'coll-download_notfound_title' => 'Паьл корая яц',
+	'coll-suggest_your_book' => 'Хьа китаб',
+	'coll-suggest_show' => 'хьахокха',
+);
+
 /** Ido (Ido)
  * @author Malafaya
  */
@@ -3361,14 +6216,6 @@
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libri',
 	'coll-print_template_prefix' => 'Imprimar',
-	'coll-create_a_book' => 'Kreez un libro',
-	'coll-add_category' => 'Adjuntar kategorio',
-	'coll-load_collection' => 'Kargar libro',
-	'coll-show_collection' => 'Montrar libro',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pagino|pagini}}',
-	'coll-printable_version_pdf' => 'Versiono PDF',
-	'coll-helppage' => 'Help:Libri',
-	'coll-bookscategory' => 'Libri',
 	'coll-your_book' => 'Vua libro',
 	'coll-format_label' => 'Formato:',
 	'coll-show' => 'Montrez',
@@ -3379,10 +6226,17 @@
 	'coll-save_collection' => 'Registragar libro',
 	'coll-yes' => 'Yes',
 	'coll-no' => 'No',
+	'coll-cancel' => 'Anular',
+	'coll-update' => 'Aktualigar',
 	'coll-limit_exceeded_title' => 'Libro tro granda',
+	'coll-limit_exceeded_text' => 'Vua libro esas tro granda.
+On ne povas adjuntar plusa pagini.',
 	'coll-rendering_status' => '<strong>Stando:</strong> $1',
 	'coll-rendering_page' => '(pagino: $1)',
+	'coll-download_notfound_title' => 'Arkivo ne trovesis',
 	'coll-about_pp' => 'Pri $1',
+	'coll-suggest_your_book' => 'Vua libro',
+	'coll-suggest_undo' => 'desfacar',
 );
 
 /** Icelandic (Íslenska)
@@ -3391,13 +6245,6 @@
 $messages['is'] = array(
 	'coll-collection' => 'Safn',
 	'coll-collections' => 'Söfn',
-	'coll-create_a_book' => 'Safnið mitt',
-	'coll-add_page' => 'Bæta við síðu',
-	'coll-remove_page' => 'Fjarlægja síðu',
-	'coll-add_category' => 'Bæta við flokki',
-	'coll-load_collection' => 'Hlaða safn',
-	'coll-show_collection' => 'Sýna safn',
-	'coll-help_collections' => 'Safnhjálp',
 	'coll-remove' => 'Fjarlægja',
 	'coll-title' => 'Titill:',
 	'coll-rename' => 'Endurnefna',
@@ -3418,40 +6265,41 @@
 
 /** Italian (Italiano)
  * @author BrokenArrow
+ * @author Civvì
  * @author Darth Kule
  * @author Melos
+ * @author Nemo bis
  * @author Pietrodn
+ * @author Stefano-c
  */
 $messages['it'] = array(
 	'coll-desc' => '[[Special:Book|Crea libri]]',
+	'coll-book_creator_intro' => "<big>Con il ''creatore di libri'' è possibile creare un libro contenente pagine wiki a propria scelta. È possibile esportare il libro in diversi formati (per esempio PDF e ODF) oppure ordinare una copia stampata.</big>",
+	'coll-manage_your_book' => 'Gestisci il tuo libro',
+	'coll-book_creator_help' => 'Vedi [[{{MediaWiki:Coll-helppage}}|la pagina di aiuto sui libri]] per maggiori informazioni.',
+	'coll-start_book_creator' => 'Avvia il creatore di libri',
+	'coll-book_creator_continue' => 'Continua a usare il creatore di libri',
+	'coll-book_creator_disable_text' => "Il ''creatore di libri'' verrà disattivato e il libro a cui si sta lavorando sarà rimosso.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Testo del creatore di libri',
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libri',
 	'coll-exclusion_category_title' => 'Escludi dalla stampa',
 	'coll-print_template_prefix' => 'Stampa',
 	'coll-print_template_pattern' => '$1/Stampa',
-	'coll-create_a_book' => 'Crea un libro',
-	'coll-add_page' => 'Aggiungi pagina wiki',
-	'coll-remove_page' => 'Rimuovi pagina wiki',
-	'coll-add_category' => 'Aggiungi categoria',
-	'coll-load_collection' => 'Carica libro',
-	'coll-show_collection' => 'Mostra libro',
-	'coll-help_collections' => 'Aiuto sui libri',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|pagine}}',
 	'coll-unknown_subpage_title' => 'Sottopagina sconosciuta',
 	'coll-unknown_subpage_text' => 'Questa sottopagina di [[Special:Book|Libro]] non esiste',
-	'coll-printable_version_pdf' => 'Versione PDF',
-	'coll-download_as' => 'Scarica come $1',
+	'coll-couldnotaddarticle_title' => 'Impossibile aggiungere pagina wiki',
+	'coll-couldnotaddarticle_msg' => 'La pagina wiki non può essere aggiunta.',
+	'coll-couldnotremovearticle_title' => 'Impossibile rimuovere la pagina wiki',
+	'coll-couldnotremovearticle_msg' => 'La pagina wiki non può essere rimossa.',
 	'coll-noscript_text' => '<h1>È necessario avere JavaScript!</h1>
 <strong>Il tuo browser non supporta JavaScript oppure JavaScript è stato disattivato.
 La pagina non funzionerà correttamente se non verrà attivato JavaScript.</strong>',
-	'coll-intro_text' => 'Crea e gestisci le tue selezioni personali di pagine wiki.<br />Leggi [[{{MediaWiki:Coll-helppage}}]]',
-	'coll-helppage' => 'Help:Libri',
-	'coll-bookscategory' => 'Libri',
 	'coll-savedbook_template' => 'libro_salvato',
 	'coll-your_book' => 'Il tuo libro',
 	'coll-download_title' => 'Scarica',
-	'coll-download_text' => 'Per scaricare una versione offline scegli un formato e fai clic sul pulsante.',
-	'coll-download_as_text' => 'Per scaricare una versione nel formato $1 fare clic sul pulsante.',
+	'coll-download_text' => 'Per scaricare il tuo libro scegli un formato e fai clic sul pulsante.',
+	'coll-download_as_text' => 'Per scaricare il tuo libro nel formato $1 fai clic sul pulsante.',
 	'coll-download' => 'Scarica',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Rimuovi',
@@ -3466,8 +6314,6 @@
 	'coll-drag_and_drop' => 'Usa il drag and drop per riordinare le pagine wiki e i capitoli',
 	'coll-create_chapter' => 'Crea capitolo',
 	'coll-sort_alphabetically' => 'Ordina alfabeticamente',
-	'coll-clear_collection' => 'Svuota libro',
-	'coll-clear_collection_confirm' => 'Si desidera veramente pulire completamente il proprio libro?',
 	'coll-rename' => 'Rinomina',
 	'coll-new_chapter' => 'Inserisci il nome per il nuovo capitolo',
 	'coll-rename_chapter' => 'Inserisci un nuovo nome per il capitolo',
@@ -3486,7 +6332,7 @@
 	'coll-personal_collection_label' => 'Libro personale:',
 	'coll-community_collection_label' => 'Libro della comunità:',
 	'coll-save_collection' => 'Salva libro',
-	'coll-save_category' => 'I libri sono salvati nella categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Tutti i libri salvati sono aggiunti alla categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'La pagina esiste già.
 Sovrascriverla?',
 	'coll-overwrite_text' => 'Una pagina con il nome [[:$1]] esiste già.
@@ -3507,72 +6353,96 @@
 <p><strong>Avanzamento:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
 <p>Questa pagina dovrebbe aggiornarsi automaticamente ogni pochi secondi.
-Se questo non funziona, premi il pulsante di aggiornamento del tuo browser.</p>',
+Se ciò non succede, premi il pulsante di aggiornamento del tuo browser.</p>',
 	'coll-rendering_status' => '<strong>Stato:</strong> $1',
 	'coll-rendering_article' => '(pagina wiki: $1)',
 	'coll-rendering_page' => '(pagina: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering delle pagine',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering di collezioni',
 	'coll-rendering_finished_title' => 'Conversione terminata',
 	'coll-rendering_finished_text' => '<strong>Il documento è stato generato.</strong>
 <strong>[$1 Scarica il file]</strong> sul tuo computer.
 
 Note:
 * Non sei soddisfatto del risultato? Leggi [[{{MediaWiki:Coll-helppage}}|la pagina di aiuto sulle raccolte]] riguardo alle possibilità per migliorarlo.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering delle pagine',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informazioni sul rendering di collezioni',
 	'coll-notfound_title' => 'Libro non trovato',
 	'coll-notfound_text' => 'Non è possibile trovare la pagina del libro.',
+	'coll-download_notfound_title' => 'File non trovato',
+	'coll-download_notfound_text' => 'Il file che si sta cercando di scaricare non esiste; è possibile che sia stato cancellato e debba essere creato di nuovo.',
+	'coll-download_failed_title' => 'Errore durante il download',
+	'coll-download_failed_text' => 'Si è verificato un errore durante il download del file: $1',
 	'coll-is_cached' => '<ul><li>Una versione del documento è stata trovata nella cache; la conversione non è stata necessaria. <a href="$1">Forza la ri-conversione.</a></li></ul>',
 	'coll-excluded-templates' => '* I template nella categoria [[:Category:$1|$1]] sono stati esclusi.',
 	'coll-blacklisted-templates' => '* I template nella blacklist [[:$1]] sono stati esclusi.',
 	'coll-return_to_collection' => '<p>Torna a <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Ordina come libro stampato',
 	'coll-book_text' => 'Ottieni un libro stampato da uno dei nostri partner di stampa su richiesta (print-on-demand):',
-	'coll-order_from_pp' => 'Ordina libro da $1',
+	'coll-order_from_pp' => 'Anteprima con $1',
 	'coll-about_pp' => 'Informazioni su $1',
 	'coll-invalid_podpartner_title' => 'Partner POD non valido',
 	'coll-invalid_podpartner_msg' => 'Il partner POD fornito non è valido. Contatta il tuo amministratore MediaWiki.',
 	'coll-license' => 'Licenza',
 	'coll-return_to' => 'Torna a [[:$1]]',
+	'coll-more_info' => 'Mostra ulteriori informazioni',
+	'coll-hide_info' => 'Nascondi informazioni',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informazioni ordine PediaPress',
+	'coll-suggest_title' => 'Pagine suggerite per il proprio libro',
+	'coll-suggest_intro_text' => 'I suggerimenti sono basati sulla raccolta attuale di pagine presenti nel proprio libro.
+L\'elenco viene aggiornato ogni qualvolta si fa clic sui pulsanti "aggiungi" o "rimuovi".',
+	'coll-suggested_articles' => 'Suggerimenti',
+	'coll-suggest_reset_bans' => 'reimposta',
+	'coll-suggest_reset_bans_tooltip' => 'Mostra suggerimenti precedentemente rimossi',
+	'coll-suggest_add_selected' => 'Aggiungi pagine selezionate',
+	'coll-suggest_ban_selected' => 'Rimuovi pagine selezionate',
+	'coll-suggest_your_book' => 'Il tuo libro',
+	'coll-suggest_show' => 'mostra',
+	'coll-suggest_ban_tooltip' => "Rimuovi questa pagina dall'elenco dei suggerimenti",
+	'coll-suggest_article_ban' => 'La pagina <strong>$1</strong> è stata rimossa dai suggerimenti ($2).',
+	'coll-suggest_article_add' => 'La pagina <strong>$1</strong> è stata aggiunta al tuo libro ($2).',
+	'coll-suggest_article_remove' => 'La pagina <strong>$1</strong> è stata rimossa dal tuo libro ($2).',
+	'coll-suggest_undo_tooltip' => 'Annulla questa azione',
+	'coll-suggest_undo' => 'annulla',
+	'coll-load_local_book' => 'Fai clic su OK per continuare con il tuo libro %TITLE% composto da %NUMPAGES% pagine wiki. Clicca Annulla per cancellarlo e cominciare con un libro vuoto.',
+	'right-collectionsaveasuserpage' => 'Salva libri in pagine utente',
+	'right-collectionsaveascommunitypage' => 'Salva libri nelle pagine della comunità',
 );
 
 /** Japanese (日本語)
  * @author Aotake
  * @author Fryed-peach
  * @author JtFuruhata
+ * @author Marine-Blue
+ * @author 青子守歌
  */
 $messages['ja'] = array(
 	'coll-desc' => '[[Special:Book|ブックを作成する]]',
+	'coll-book_creator_intro' => '<big>「ブッククリエーター」を使うと、あなたが選んだウィキページを含むブックを作成することができます。ブックは様々な形式で書き出したり(例えば PDF や ODF)、印刷版を注文したりできます。</big>',
+	'coll-manage_your_book' => 'あなたのブックを管理',
+	'coll-book_creator_help' => 'より詳しくは[[{{MediaWiki:Coll-helppage}}|ブックについてのヘルプ]]を参照してください。',
+	'coll-start_book_creator' => 'ブッククリエーターを開始',
+	'coll-book_creator_continue' => 'ブッククリエーターを使い続ける',
+	'coll-book_creator_disable_text' => '「ブッククリエーター」は無効化され、あなたが作業しているブックは削除されます。',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/ブッククリエーター本文',
 	'coll-collection' => 'ブック',
 	'coll-collections' => 'ブック',
 	'coll-exclusion_category_title' => '印刷から除外',
 	'coll-print_template_prefix' => '印刷用',
 	'coll-print_template_pattern' => '$1/印刷用',
-	'coll-create_a_book' => 'ブックを新規作成',
-	'coll-add_page' => 'ウィキページの追加',
-	'coll-add_page_tooltip' => '現在のページをあなたのブックに追加する',
-	'coll-remove_page' => 'ウィキページの削除',
-	'coll-remove_page_tooltip' => '現在のページをあなたのブックから削除する',
-	'coll-add_category' => 'カテゴリの追加',
-	'coll-add_category_tooltip' => 'このカテゴリ中のすべてのページをあなたのブックに追加する',
-	'coll-load_collection' => 'ブックの読み込み',
-	'coll-load_collection_tooltip' => 'このブックをあなたの現在のブックとして読み込む',
-	'coll-show_collection' => 'ブックを表示',
-	'coll-show_collection_tooltip' => 'クリックしてあなたのブックを編集、ダウンロード、または注文する',
-	'coll-help_collections' => 'ブックのヘルプ',
-	'coll-help_collections_tooltip' => 'ブック作成ツールについてのヘルプを表示する',
-	'coll-n_pages' => '$1ページ',
 	'coll-unknown_subpage_title' => '不明なサブページ',
 	'coll-unknown_subpage_text' => 'この[[Special:Book|ブック]]のサブページは存在しません',
-	'coll-printable_version_pdf' => 'PDF版',
-	'coll-download_as' => '$1としてダウンロード',
+	'coll-couldnotaddarticle_title' => 'ページを追加できませんでした',
+	'coll-couldnotaddarticle_msg' => 'このページは追加できませんでした。',
+	'coll-couldnotremovearticle_title' => 'ページを削除できませんでした',
+	'coll-couldnotremovearticle_msg' => 'このページは削除できませんでした。',
 	'coll-noscript_text' => '<h1>JavaScriptを利用しています!</h1>
 <strong>ご利用のブラウザは JavaScript をサポートしていないか、JavaScript が無効になっています。このページは、JavaScript が有効になっていない場合、正しく動作しません。</strong>',
-	'coll-intro_text' => 'あなただけのウィキページのコレクションを作成・管理できます。<br />詳細は[[{{MediaWiki:Coll-helppage}}]]をご覧ください。',
-	'coll-helppage' => 'Help:ブック',
-	'coll-bookscategory' => 'ブック',
 	'coll-savedbook_template' => '保存済みブック',
 	'coll-your_book' => 'あなたのブック',
 	'coll-download_title' => 'ダウンロード',
-	'coll-download_text' => 'オフライン版をダウンロードするには、形式を選択してボタンをクリックしてください。',
-	'coll-download_as_text' => '$1形式のオフライン版をダウンロードするにはボタンをクリックしてください。',
+	'coll-download_text' => 'あなたのブックをダウンロードするには、形式を選択してボタンを押してください。',
+	'coll-download_as_text' => 'あなたのブックを $1 形式でダウンロードするにはこのボタンを押してください。',
 	'coll-download' => 'ダウンロード',
 	'coll-format_label' => '形式:',
 	'coll-remove' => '削除',
@@ -3587,9 +6457,6 @@
 	'coll-drag_and_drop' => 'ドラッグ・アンド・ドロップでウィキページや章を並べ換えます',
 	'coll-create_chapter' => '新しい章を作成',
 	'coll-sort_alphabetically' => 'ページを辞書順にソート',
-	'coll-clear_collection' => 'ブックを消去',
-	'coll-clear_collection_tooltip' => 'あなたの現在のブックからすべてのウィキページを削除する',
-	'coll-clear_collection_confirm' => '本当にブックを完全に消去しますか?',
 	'coll-rename' => '改名',
 	'coll-new_chapter' => '新しい章見出しを入力',
 	'coll-rename_chapter' => '新しい章見出しを入力',
@@ -3601,14 +6468,14 @@
 	'coll-mwserve_failed_msg' => 'レンダリングサーバーでエラーが発生しました: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'サーバからのエラー応答',
 	'coll-empty_collection' => '空のブック',
-	'coll-revision' => '特定版: $1',
+	'coll-revision' => '版:$1',
 	'coll-save_collection_title' => 'ブックを保存して共有する',
 	'coll-save_collection_text' => '保存先の選択:',
 	'coll-login_to_save' => '後の利用のためブックを保存するには、[[Special:UserLogin|ログインまたはアカウント作成]]を行ってください。',
 	'coll-personal_collection_label' => '個人的なブック:',
 	'coll-community_collection_label' => '共有するブック:',
 	'coll-save_collection' => 'ブックを保存',
-	'coll-save_category' => 'ブックはカテゴリ [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] に保存されました。',
+	'coll-save_category' => '保存したブックはすべて、カテゴリ「[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]」に加えられます。',
 	'coll-overwrite_title' => '同名のページが存在します。上書きしますか?',
 	'coll-overwrite_text' => '[[:$1]] という名前のページが既に存在しています。これをあなたのブックに置き換えますか?',
 	'coll-yes' => 'はい',
@@ -3629,26 +6496,55 @@
 	'coll-rendering_status' => '<strong>状況:</strong> $1',
 	'coll-rendering_article' => '(ウィキページ: $1)',
 	'coll-rendering_page' => '(ページ: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ページ情報文を生成中',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/コレクション情報文を生成中',
 	'coll-rendering_finished_title' => 'レンダリング完了',
 	'coll-rendering_finished_text' => '<strong>ドキュメントファイルは生成されました。</strong>
 あなたのコンピュータに<strong>[$1 ファイルをダウンロード]</strong>してください。
 
 注:
-* 出力に満足できませんか?改善が可能か、[[{{MediaWiki:Coll-helppage}}|コレクションについてのヘルプページ]]をご覧ください。',
+* 出力に満足できませんか?改善が可能か、[[{{MediaWiki:Coll-helppage}}|ブックについてのヘルプページ]]をご覧ください。',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ページ情報テキストを生成中',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/コレクション情報テキストを生成中',
 	'coll-notfound_title' => 'ブックが見つかりません',
 	'coll-notfound_text' => 'ブックの保存ページが見つかりませんでした。',
+	'coll-download_notfound_title' => 'ファイルが見つかりません',
+	'coll-download_notfound_text' => 'あなたがダウンロードしようとしたファイルは存在しません。削除された場合は再生成が必要となります。',
+	'coll-download_failed_title' => 'ダウンロード中にエラー',
+	'coll-download_failed_text' => '次のファイルのダウンロード中にエラーがおきました: $1',
 	'coll-is_cached' => '<ul><li>ドキュメントのキャッシュ済み版がみつかりましたので、レンダリングは必要ありません。<a href="$1">強制的に再レンダリングする。</a></li></ul>',
 	'coll-excluded-templates' => '* カテゴリ [[:Category:$1|$1]] にあるテンプレートは除外されています。',
 	'coll-blacklisted-templates' => '* ブラックリスト [[:$1]] にあるテンプレートは除外されています。',
 	'coll-return_to_collection' => '<p><a href="$1">$2</a></p>に戻る',
 	'coll-book_title' => '印刷済みの本として注文',
 	'coll-book_text' => '印刷済みの本をわれわれのオンデマンド印刷パートナーから入手:',
-	'coll-order_from_pp' => '$1に本を注文',
+	'coll-order_from_pp' => '$1でプレビュー',
 	'coll-about_pp' => '$1について',
 	'coll-invalid_podpartner_title' => '無効なオンデマンド印刷パートナー',
 	'coll-invalid_podpartner_msg' => '提供されたオンデマンド印刷パートナーは無効です。MediaWiki の管理者に連絡してください。',
 	'coll-license' => 'ライセンス',
 	'coll-return_to' => '[[:$1]]に戻る',
+	'coll-more_info' => '詳細を表示',
+	'coll-hide_info' => '詳細を非表示',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress注文情報',
+	'coll-suggest_title' => 'ブックに追加するページの候補',
+	'coll-suggest_intro_text' => '現在のあなたのブックに含まれるウィキページ群に基づき、候補を一覧表示しています。あなたが追加や除去のボタンを押すとすぐに一覧は更新されます。',
+	'coll-suggested_articles' => '候補',
+	'coll-suggest_reset_bans' => 'リセット',
+	'coll-suggest_reset_bans_tooltip' => '以前に一覧から取り除いた候補を表示',
+	'coll-suggest_add_selected' => '選択したページを追加',
+	'coll-suggest_ban_selected' => '選択したページを除去',
+	'coll-suggest_your_book' => 'あなたのブック',
+	'coll-suggest_show' => '表示',
+	'coll-suggest_ban_tooltip' => 'このページを候補の一覧から除く',
+	'coll-suggest_article_ban' => 'ページ「<strong>$1</strong>」は候補の一覧から除去されました($2)。',
+	'coll-suggest_article_add' => 'ページ「<strong>$1</strong>」はあなたのブックに追加されました($2)。',
+	'coll-suggest_article_remove' => 'ページ「<strong>$1</strong>」はあなたのブックから除去されました($2)。',
+	'coll-suggest_undo_tooltip' => 'この操作を取り消し',
+	'coll-suggest_undo' => '取り消し',
+	'coll-load_local_book' => 'OKをクリックすると %NUMPAGES% 件のウィキページを含む本を %TITLE% という題で作成します。この本を削除して新しい本を作成する場合はキャンセルをクリックしてください。',
+	'right-collectionsaveasuserpage' => 'ブックを利用者ページとして保存',
+	'right-collectionsaveascommunitypage' => 'ブックを共有ページとして保存',
 );
 
 /** Javanese (Basa Jawa)
@@ -3656,31 +6552,19 @@
  * @author Pras
  */
 $messages['jv'] = array(
-	'coll-desc' => '[[Special:Collection|Kolèksi kaca-kaca]], nggawé PDF',
-	'coll-collection' => 'Kolèksi',
-	'coll-collections' => 'Kolèksi-kolèksi',
+	'coll-desc' => '[[Special:Book|Gawé buku]]',
+	'coll-collection' => 'Buku',
+	'coll-collections' => 'Buku',
 	'coll-exclusion_category_title' => 'Ora mèlu dicithak',
 	'coll-print_template_prefix' => 'Cithak',
-	'coll-create_a_book' => 'Gawé buku',
-	'coll-add_page' => 'Tambah kaca wiki',
-	'coll-remove_page' => 'Busak kaca wiki',
-	'coll-add_category' => 'Tambah kategori',
-	'coll-load_collection' => 'Unggahna kolèksi',
-	'coll-show_collection' => 'Tuduhna kolèksi',
-	'coll-help_collections' => 'Pitulung kolèksi',
-	'coll-n_pages' => '$1 {{PLURAL:$1|kaca|kaca}}',
 	'coll-unknown_subpage_title' => 'Anak-kaca sing ora dikenal',
-	'coll-unknown_subpage_text' => 'Anak-kaca saka [[Special:Book|Kolèksi]] iki ora ana',
-	'coll-printable_version_pdf' => 'Vèrsi PDF',
-	'coll-download_as' => 'Undhuh minangka $1',
+	'coll-unknown_subpage_text' => 'Anak-kaca saka [[Special:Book|Buku]] iki ora ana',
 	'coll-noscript_text' => '<h1>JavaScript diperlokaké!</h1>
 <strong>Browser panjenengan ora ndhukung JavaScript utawa JavaScript wis dipatèni.
 Kaca iki ora bakal tampil kanthi bener, kajaba JavaScript di aktifaké.</strong>',
-	'coll-intro_text' => 'Gawé lan tata pilihan kaca wiki panjenengan.<br />Pirsani [[{{MediaWiki:Coll-helppage}}]] kanggo informasi luwih cetha.',
-	'coll-helppage' => 'Help:Collections',
 	'coll-your_book' => 'Buku panjenengan',
 	'coll-download_title' => 'Undhuh',
-	'coll-download_text' => "Kanggo ngundhuh vèrsi jaba-jaring (''offline'') pilih siji format lan klik tombolé.",
+	'coll-download_text' => 'Kanggo ngundhuh buku panjenengan piliha sawijining format lan klik tombolé.',
 	'coll-download' => 'Undhuh',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Ilangana',
@@ -3695,8 +6579,6 @@
 	'coll-drag_and_drop' => "Gunakaké ''drag & drop'' kanggo nata kaca lan bab ing wiki",
 	'coll-create_chapter' => 'Gawé bab',
 	'coll-sort_alphabetically' => 'Sortir miturut abjad',
-	'coll-clear_collection' => 'Kosongna kolèksi',
-	'coll-clear_collection_confirm' => 'Panjenengan pancèn arep mbusak kalèksi panjenengan?',
 	'coll-rename' => 'Ganti jeneng',
 	'coll-new_chapter' => 'Lebokna jeneng anyar kanggo bab',
 	'coll-rename_chapter' => 'Lebokna jeneng anyar kanggo bab',
@@ -3707,29 +6589,29 @@
 	'coll-mwserve_failed_title' => 'Ana kasalahan server',
 	'coll-mwserve_failed_msg' => 'Ana kasalahan ing server: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'Rèspon kasalahan saka server',
-	'coll-empty_collection' => 'Kolèksi kosong',
+	'coll-empty_collection' => 'Buku kothong',
 	'coll-revision' => 'Révisi: $1',
-	'coll-save_collection_title' => 'Simpen lan tuduhaké kolèksi panjenengan',
+	'coll-save_collection_title' => 'Simpen lan tuduhaké buku panjenengan',
 	'coll-save_collection_text' => 'Pilih lokasi',
-	'coll-login_to_save' => 'Yèn panjenengan arep nyimpen kolèksi kanggo kaperluan mangsa ngarep, mangga[[Special:UserLogin|mlebu log utawa gawé akun]].',
-	'coll-personal_collection_label' => 'Kolèksi pribadi:',
-	'coll-community_collection_label' => 'Kolèksi komunitas:',
-	'coll-save_collection' => 'Simpen kolèksi',
-	'coll-save_category' => 'Kolèksi disimpen ing kategori [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-login_to_save' => 'Yèn panjenengan arep nyimpen buku kanggo mangsa ngarep, mangga[[Special:UserLogin|mlebu log utawa gawé akun]].',
+	'coll-personal_collection_label' => 'Buku pribadi:',
+	'coll-community_collection_label' => 'Buku komunitas:',
+	'coll-save_collection' => 'Simpen buku',
+	'coll-save_category' => 'Kabèh buku disimpen ing kategori [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Kaca wis ana. Ditindhes waé?',
 	'coll-overwrite_text' => 'Kaca kanthi jeneng [[:$1]] wis ana.
 Apa arep diganti nganggo kolèksi panjenengan?',
 	'coll-yes' => 'Iya',
 	'coll-no' => 'Ora',
-	'coll-load_overwrite_text' => 'Panjenengan wis duwé sawetara kaca jroning kolèksi panjenengan.
-Apa arep nindhes kolèksi panjenengan, nambah isi anyar, utawa mbatalaké ngunggah kolèksi iki?',
+	'coll-load_overwrite_text' => 'Panjenengan wis duwé sawetara kaca jroning buku panjenengan.
+Apa arep nindhes buku panjenengan iku, nambah isi anyar, utawa mbatalaké ngunggah buku iki?',
 	'coll-overwrite' => 'Timpanen',
 	'coll-append' => 'Lampirna',
 	'coll-cancel' => 'Batal',
 	'coll-update' => 'Mutakir',
-	'coll-limit_exceeded_title' => 'Kolèksi Kegedhèn',
-	'coll-limit_exceeded_text' => 'Kolèksi kaca panjenengan iku kegedhèn.
-Ora bisa nambah kaca-kaca liya manèh.',
+	'coll-limit_exceeded_title' => 'Buku kagedhèn',
+	'coll-limit_exceeded_text' => 'Buku panjenengan kagedhèn.
+Ora bisa nambah kaca manèh.',
 	'coll-rendering_title' => 'Nggawé/ngowahi',
 	'coll-rendering_text' => "<p><strong>Mangga ditunggu sauntara dokumèn lagi digawé.</strong></p>
 
@@ -3746,8 +6628,8 @@
 
 Cathetan:
 * Kurang rena karo wetonan (''output'')é? Pirsani [[{{MediaWiki:Coll-helppage}}|kaca pitulung bab kolèksi]] kanggo kamungkinan ningkataké.",
-	'coll-notfound_title' => 'Kolèksi ora ditemokaké',
-	'coll-notfound_text' => 'Ora bisa nemokaké kaca kolèksi.',
+	'coll-notfound_title' => 'Buku ora ketemu',
+	'coll-notfound_text' => 'Ora bisa nemokaké kaca buku.',
 	'coll-is_cached' => "<ul><li>Dokumèn vèrsi ''cache'' wis ditemokaké, mula ora perlu ana pangowahan (''rendering''). <a href=\"\$1\">Peksa ''re-rendering''.</a></li></ul>",
 	'coll-excluded-templates' => '* Cithakan-cithakan ing kategori [[:Category:$1|$1]] wis di wetokaké.',
 	'coll-blacklisted-templates' => '* Cithakan-cithakan ing dhaptar-ireng [[:$1]] wis diwetokaké.',
@@ -3764,59 +6646,191 @@
 );
 
 /** Georgian (ქართული)
+ * @author BRUTE
  * @author Malafaya
  * @author Sopho
  * @author Temuri rajavi
+ * @author გიორგიმელა
  */
 $messages['ka'] = array(
+	'coll-desc' => '[[Special:Book|წიგნის შექმნა]]',
+	'coll-book_creator_intro' => '<big>წიგნის ოსტატის მეშვეობით თქვენ შეგიძლიათ შექმნათ წიგნი, რომელიც შეიცავს თქვენს მიერ არჩეულ ვიკი-გვერდებს. თქვენ შეგიძლიათ მოახდინოთ წიგნების ექსპორტირება სხვადასხვა ფორმატებში (მაგ. PDF ან ODF) ან გამოიწეროთ დაბეჭდილი ვერსია.</big>',
+	'coll-manage_your_book' => 'თქვენი წიგნის მართვა',
+	'coll-book_creator_help' => 'მეტი ინფორმაციისათვის იხილეთ [[{{MediaWiki:Coll-helppage}}|დახმარების გვერდი წიგნებზე]].',
+	'coll-start_book_creator' => 'წიგნის ოსტატის ჩართვა',
+	'coll-book_creator_continue' => 'წიგნის ოსტატის გამოყენების გაგრძელება',
+	'coll-book_creator_disable_text' => "'''წიგნის ოსტატი''' გაითიშება, ხოლო წიგნი რომელზეც თქვენ მუშაობთ გაითიშება.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/წიგნის ოსტატის ტექსტი',
 	'coll-collection' => 'წიგნი',
 	'coll-collections' => 'წიგნები',
-	'coll-create_a_book' => 'წიგნის შექმნა',
-	'coll-add_category' => 'კატეგორიის დამატება',
-	'coll-n_pages' => '$1 გვერდი',
-	'coll-printable_version_pdf' => 'PDF ვერსია',
-	'coll-helppage' => 'Help:წიგნები',
+	'coll-exclusion_category_title' => 'დაუბეჭდავი',
+	'coll-print_template_prefix' => 'დაბეჭვდა',
+	'coll-print_template_pattern' => '$1/დაბეჭვდა',
+	'coll-unknown_subpage_title' => 'უცნობი ქვეგვერდი',
+	'coll-unknown_subpage_text' => '[[Special:Book|წიგნის]] ეს ქვეგვერდები არ არსებობს',
+	'coll-couldnotaddarticle_title' => 'შეუძლებელია ვიკი-გვერდის დამატება',
+	'coll-couldnotaddarticle_msg' => 'შეუძლებელია ვიკი-გვერდის დამატება.',
+	'coll-couldnotremovearticle_title' => 'შეუძლებელია ვიკი-გვერდის მოშორება',
+	'coll-couldnotremovearticle_msg' => 'შეუძლებელია ვიკი-გვერდის წაშლა.',
+	'coll-noscript_text' => '<h1>საჭიროა JavaScript!</h1>
+<strong>თქვენ ინტერნეტ მიმომხილველს არა აქვს JavaScript მხარდაჭერა ან ეს მხარდაჭერა გათიშულია.
+ეს გვერდი ცერ იმუშავებს სწორად, სანამ JavaScript არ ჩაირთვება.</strong>',
+	'coll-savedbook_template' => 'შენახული_წიგნი',
 	'coll-your_book' => 'თქვენი წიგნი',
 	'coll-download_title' => 'ჩამოტვირთვა',
+	'coll-download_text' => 'წიგნის ფადმოსაწერად აირჩიეთ ფორმატი და დააჭირეთ ღილაკს.',
+	'coll-download_as_text' => 'დააჭირეთ თქვენი თქვენი წიგნის $1 ფორმატში გადასაწერად.',
 	'coll-download' => 'ჩამოტვირთვა',
 	'coll-format_label' => 'ფორმატი:',
+	'coll-remove' => 'წაშლა',
 	'coll-show' => 'ჩვენება',
+	'coll-move_to_top' => 'ასწიეთ',
+	'coll-move_up' => 'ჩაუშვითშ',
+	'coll-move_down' => 'ქვემოთ გადატანა',
+	'coll-move_to_bottom' => 'ფსკერამდე ჩასვლა',
 	'coll-title' => 'სათაური:',
+	'coll-subtitle' => 'ქვესათაური:',
+	'coll-contents' => 'შინაარსი',
+	'coll-drag_and_drop' => 'ვიკი გვერდებისა და თავების დასალაგებლად, გადმოიტანეთ ისინი თაგვით.',
+	'coll-create_chapter' => 'თავის შექმნა',
+	'coll-sort_alphabetically' => 'ანბანზე დალაგება',
+	'coll-rename' => 'გადრქმევა',
+	'coll-new_chapter' => 'შეიყვანეთ თავის ახალი სათაური',
+	'coll-rename_chapter' => 'შეიყვანეთ თავის ახალი სათაური',
+	'coll-no_such_category' => 'ამგვარი კატეგორია არ არსებობს',
+	'coll-notitle_title' => 'გვერდის სათაურის აღქმა ვერ ხერხდება',
+	'coll-post_failed_title' => 'POST-მოთხოვნა არ შესრულდა',
+	'coll-post_failed_msg' => 'POST-მოთხოვნა $1-სადმი ვერ შესრულდა ($2).',
+	'coll-mwserve_failed_title' => 'ჩახატვის სერვერის შეცდომა',
+	'coll-mwserve_failed_msg' => 'ჩახატვის სერვერზე შეცდომა: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'სერვერისგან პასუხის მიღების შეცდომა',
+	'coll-empty_collection' => 'ცარიელი წიგნი',
+	'coll-revision' => 'ვერსია: $1',
+	'coll-save_collection_title' => 'წიგნის შენახვა და მისი ხილვის დაშვება',
+	'coll-save_collection_text' => 'აირჩიეთ თქვენი წიგნის მდებარეობა:',
+	'coll-login_to_save' => 'წიგნის შენახვისთვის და მომვალი გამოყენებისთვის [[Special:UserLogin|წარადგინეთ თავი სისტემისადმი ან შექმენით ანგარიში]].',
+	'coll-personal_collection_label' => 'პირადი წიგნი:',
+	'coll-community_collection_label' => 'საზოგადოების წიგნი:',
+	'coll-save_collection' => 'წიგნის შენახვა',
+	'coll-save_category' => 'ყველა შენახული წიგნი ინახება [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] კატეგორიაში.',
+	'coll-overwrite_title' => 'გვერდი უკვე არსებობს.
+გსურთ მისი გადაწერა?',
+	'coll-overwrite_text' => 'გვერდი სახელით  [[:$1]] უკვე არსებობს.
+გსურთ მისი შეცვლა თქვენი გვერდით?',
+	'coll-yes' => 'ჰო',
 	'coll-no' => 'არა',
+	'coll-load_overwrite_text' => 'თქვენ უკვე გაგაჩნიათ რამდენიმე გვერდი წიგნში. 
+გსურთ თქვენი მოქმედი წიგნის თავიდან გადაწერა, ახალი მატერიალის დამატება თუ ამ წიგნის ატვირთვის გაუქმება?',
+	'coll-overwrite' => 'თავიდან გადაწერა',
+	'coll-append' => 'თანდართვა',
+	'coll-cancel' => 'გაუქმება',
+	'coll-update' => 'განახლება',
+	'coll-limit_exceeded_title' => 'ძალიან დიდი წიგნი',
+	'coll-limit_exceeded_text' => 'წიგნს აქვვს ძალიან დიდი ზომა.
+დამატებითი გვერდების ჩამატება შეუძლებელია.',
+	'coll-rendering_title' => 'შექმნა',
+	'coll-rendering_text' => '<p><strong>გთხოვთ დაიცადოთ, მიმდინარეობს დოკუმენტის შექმნა.</strong></p>
+
+<p><strong>მუშაობის პროგრესი:</strong> <span id="renderingProgress">$1</span> % <span id="renderingStatus">$2</span></p>
+
+<p>ეს გვერდი უნდა განახლდეს ყოველ რამდენიმე წამში.
+თუ ეს არ ხდება, გთხოვთ დააჭიროთ ბროუზერის «განახლების» ღილაკს.</p>',
+	'coll-rendering_status' => '<strong>სტატუსი:</strong> $1',
+	'coll-rendering_article' => '(სტატია: $1)',
+	'coll-rendering_page' => '(გვერდი: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/გვერდის შესახებ ტექსტის გადაყვანა',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/კოლექციის შესახებ ტექსტის გადაყვანა',
+	'coll-rendering_finished_title' => 'შექმნა დასრულებულია',
+	'coll-rendering_finished_text' => '<strong>დოკუმენტის ფაილი შექმნილია.</strong>
+<strong>[$1 ფაილის კომპიუტერზე]</strong> ჩამოტვირთვა.
+
+აღნიშვნა:
+* რეზულტატით უკმაყოფილებლობის შემთხვევაში შეიხედეთ [[{{MediaWiki:Coll-helppage}}|წიგნებზე დამხმარე გვერდზე]], შესაძლოა ამ გვერდზე აღწერილია გაუმჯობესების საშუალება.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/გვერდის ტექსტში გადაყვანა',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/კოლექციის ტექსტში გადაყვანა',
+	'coll-notfound_title' => 'წიგნი არ არის ნაპოვნი',
+	'coll-notfound_text' => 'შეუძლებელია გვერდის წიგნის პოვნა',
+	'coll-download_notfound_title' => 'ფაილი არ იქნა მოძიებული',
+	'coll-download_notfound_text' => 'ფაილი, რომლის ატვირთვასაც ცდილობს, არ არსებობს. შესაძლოა იგი წაიშალა და საჭიროა მისი აღდგენა.',
+	'coll-download_failed_title' => 'შეცდომა ჩაწერისას',
+	'coll-download_failed_text' => 'წარმოიშვა შეცდომა შემდეგ ფაილის ჩაწერისას: $1',
+	'coll-is_cached' => '<ul><li>აღმოჩენილია ამ დოკუმენტის ქეშირებული ვერსია, რენდირება საჭირო არ გახდა.<a href="$1">რენდირების მაინც გაშვება.</a></li></ul>',
+	'coll-excluded-templates' => '* თარგები კატეგორიიდან [[:Category:$1|$1]] ამოღებული იქნენ.',
+	'coll-blacklisted-templates' => '* შავი სიის თარგები [[:$1]] ამოღებული იქნენ.',
+	'coll-return_to_collection' => '<p>დაბრუნება <a href="$1">$2</a></p>',
+	'coll-book_title' => 'დაბეჭდელი წიგნის შეკვეთა',
+	'coll-book_text' => 'ჩვენი პარტნიორისგან დაბეჭდილი წიგნის შეკვეთა:',
+	'coll-order_from_pp' => 'წინასწარ გადახედვა $1 მესვეობით',
 	'coll-about_pp' => '$1-ის შესახებ',
+	'coll-invalid_podpartner_title' => 'არასწორი POD პარნიორი.',
+	'coll-invalid_podpartner_msg' => 'მოცემული POD-პარტნიორი არასწორია.
+დაუკავშირდით MediaWiki-ს თქვენს ადმინისტრატორს.',
 	'coll-license' => 'ლიცენზია',
+	'coll-return_to' => 'დაბრუნება [[:$1]]-ზე.',
+	'coll-more_info' => 'უფრო მეტი ინფორმაციის ჩვენება',
+	'coll-hide_info' => 'ინფორმაციის დამალვა',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/ინფორმაცია PediaPress-ის შეკვვეთაზე',
+	'coll-suggest_title' => 'შემოთავაზებული გვერდები თქვენი წიგნისათვის',
+	'coll-suggest_intro_text' => 'მოსაზრებატა სია დაფუძნებულია თქვენს წიგნში უკვე არსებულ გვერდებზე.
+სია ახლდება ყოველთვის, როდესაც თქვენ დააჭერთ განახლების ან წაშლის გვერდს.',
+	'coll-suggested_articles' => 'წინადადებები',
+	'coll-suggest_reset_bans' => 'გადატვირთვა',
+	'coll-suggest_reset_bans_tooltip' => 'აჩვენეთ ადრე წაშლილი მოსაზრებები',
+	'coll-suggest_add_selected' => 'არჩეული გვერდების დამატება',
+	'coll-suggest_ban_selected' => 'არჩეული გვერდების წაშლა',
+	'coll-suggest_your_book' => 'თქვენი წიგნი',
+	'coll-suggest_show' => 'ჩვენება',
+	'coll-suggest_ban_tooltip' => 'წინადადებების სიიდან ამ გვერდის ამოღება',
+	'coll-suggest_article_ban' => 'გვერდი <strong>$1</strong> იყო წაშლილი მოსაზრებათა რიგიდან ($2).',
+	'coll-suggest_article_add' => 'თქვენ ($2) წიგნში იყო ჩამატებული გვერდი <strong>$1</strong>.',
+	'coll-suggest_article_remove' => 'თქვენი წიგნიდან ($2) წაიშალა გვერდი <strong>$1</strong>.',
+	'coll-suggest_undo_tooltip' => 'ცვლილების გაუქმება',
+	'coll-suggest_undo' => 'გაუქმება',
+	'coll-load_local_book' => 'დააჭირეთ „OK“ თქვენი %NUMPAGES% გვერდების შემცვლელ %TITLE% წიგნთან მუშაობის გაგრძელებისთვის. დაააჭირეთ „გაუქმება“ ღილაკს რომ წაშალოთ იგი და დაიწყოთ ცარიელი წიგნი.',
+	'right-collectionsaveasuserpage' => 'შეინახე წიგნი, როგორც მომხმარებლის გვერდი',
+	'right-collectionsaveascommunitypage' => 'შეინახეთ წიგნი, როგორც საზოგადოების გვერდი',
 );
 
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬)
+ * @author GaiJin
+ */
+$messages['kk-cyrl'] = array(
+	'coll-format_label' => 'Пішім:',
+);
+
 /** Khmer (ភាសាខ្មែរ)
  * @author Chhorran
  * @author Lovekhmer
  * @author Thearith
  * @author គីមស៊្រុន
+ * @author វ័ណថារិទ្ធ
  */
 $messages['km'] = array(
-	'coll-desc' => '[[Special:Collection|ចងក្រងទំព័រ]]រួចបង្កើតឯកសារ PDF',
+	'coll-desc' => '[[Special:Book|បង្កើត​សៀវភៅ]]',
+	'coll-book_creator_intro' => "<big>អ្នកអាចបង្កើតសៀវភៅមួយដែលមានទំព័រវិគីតាមតែអ្នកជ្រើសរើស​ ដោយប្រើ''ឧបករណ៍បង្កើតសៀវភៅ''។ អ្នកអាចនាំចេញសៀវភៅនេះជាច្រើទំរង់ (ដូចជា PDF ឬ ODF) ឬបញ្ជាកក់ច្បាប់ចំលងបោះពុម្ភ។</big>",
+	'coll-manage_your_book' => 'រៀបចំសៀវភៅរបស់អ្នក',
+	'coll-book_creator_help' => 'សូមមើល [[{{MediaWiki:Coll-helppage}}|ទំព័រជំនួយអំពីសៀវភៅ]] សំរាប់ព័ត៌មានបន្ថែម។',
+	'coll-start_book_creator' => 'បើកប្រើឧបករណ៍បង្កើតសៀវភៅ',
+	'coll-book_creator_continue' => 'បន្តប្រើឧបករណ៍បង្កើតសៀវភៅ',
+	'coll-book_creator_disable_text' => "''ឧបករណ៍បង្កើតសៀវភៅ'' និងត្រូវបិទឈប់ប្រើ ហើយសៀវភៅដែលអ្នកកំពុងបង្កើតនឹងត្រូវដកចេញ។",
 	'coll-collection' => 'សៀវភៅ',
 	'coll-collections' => 'សៀវភៅ',
 	'coll-print_template_prefix' => 'បោះពុម្ព',
-	'coll-create_a_book' => 'កំរងឯកសារ',
-	'coll-add_page' => 'បន្ថែមទំព័រវិគី',
-	'coll-remove_page' => 'ដកទំព័រវិគីចេញ',
-	'coll-add_category' => 'បន្ថែមចំណាត់ថ្នាក់ក្រុម',
-	'coll-load_collection' => 'ផ្ទុកសៀវភៅ',
-	'coll-show_collection' => 'បង្ហាញ​សៀវភៅ',
-	'coll-help_collections' => 'ជំនួយ​អំពី​សៀវភៅ',
-	'coll-n_pages' => '$1 {{PLURAL:$1|ទំព័រ|ទំព័រ}}',
-	'coll-printable_version_pdf' => 'កំណែ PDF',
-	'coll-download_as' => 'ទាញយកជា $1',
+	'coll-print_template_pattern' => '$1/បោះពុម្ព',
+	'coll-unknown_subpage_title' => 'ទំពររងមិនស្គាល់',
+	'coll-unknown_subpage_text' => 'ទំព័ររងក្នុង[[Special:Book|សៀវភៅ]]នេះមិនមានទេ',
+	'coll-couldnotaddarticle_title' => 'មិនអាចបន្ថែមទំព័រវិគី',
+	'coll-couldnotaddarticle_msg' => 'ទំព័រវិគីនេះមិនអាចបន្ថែមបានទេ។',
+	'coll-couldnotremovearticle_title' => 'មិនអាចដកចេញទំព័រវិគី',
+	'coll-couldnotremovearticle_msg' => 'ទំព័រវិគីនេះមិនអាចដកចេញបានទេ។',
 	'coll-noscript_text' => '<h1>ត្រូវការ JavaScript!</h1>
 <strong>ឧបករណ៍រាវរក (browser) របស់អ្នកមិនគាំទ្រ JavaScript ឬ JavaScript ត្រូវបានបិទ។
 ទំព័រនេះមិនអាចដំណើរការបានត្រឹមត្រូវទេ លុះត្រាតែអ្នកបើកឱ្យ JavaScript ដើរ។</strong>',
-	'coll-intro_text' => 'អ្នកអាចចងក្រងទំព័រ បង្កើត និង ទាញយកឯកសារ PDF ពីទំព័រកម្រងឯកសារ និងអាចរក្សាទុកកម្រងឯកសារសម្រាប់ប្រើលើកក្រោយឬដាក់ហ៊ុនជាមួយអ្នកដទៃ។
-
-សូមមើល[[{{MediaWiki:Coll-helppage}}|ទំព័រជំនួយពីកម្រងឯកសារ]]សម្រាប់ព័ត៌មានបន្ថែម។',
-	'coll-helppage' => 'Help:សៀវភៅ',
+	'coll-savedbook_template' => 'សៀវភៅដែលបានរក្សាទុកហើយ',
 	'coll-your_book' => 'សៀវភៅ​របស់អ្នក',
 	'coll-download_title' => 'ទាញយក',
+	'coll-download_text' => 'ដើម្បីទាញយកសៀវភៅរបស់អ្នក សូមជ្រើសរើសទំរង់ដែលចង់ទាញយក រួចចុចប៊ូតុង។',
+	'coll-download_as_text' => 'ដើម្បីទាញយកសៀវភៅរបស់អ្នក ក្នុងទំរង់ជា $1 សូមចុចប៊ូតុង។',
 	'coll-download' => 'ទាញយក',
 	'coll-format_label' => 'ទម្រង់:',
 	'coll-remove' => 'ដកចេញ',
@@ -3828,25 +6842,26 @@
 	'coll-title' => 'ចំណងជើង៖',
 	'coll-subtitle' => 'ចំណងជើងរង៖',
 	'coll-contents' => 'ខ្លឹមសារ',
+	'coll-drag_and_drop' => 'ប្រើមុខងារ «ចាប់ដាក់» ដើម្បីរៀបលំដាប់ទំព័រវិគីនិងជំពូក',
 	'coll-create_chapter' => 'បង្កើត​ជំពូកថ្មី',
 	'coll-sort_alphabetically' => 'តម្រៀប​ទំព័រ​​តាម​អក្ខរក្រម',
-	'coll-clear_collection' => 'សំអាត​សៀវភៅ',
-	'coll-clear_collection_confirm' => 'តើ​អ្នក​ពិតជា​ចង់​ជម្រះ​សៀវភៅ​របស់​អ្នក​ទាំងស្រុង​ឬ​?',
 	'coll-rename' => 'ប្តូរឈ្មោះ',
 	'coll-new_chapter' => 'ដាក់ឈ្មោះឱ្យ ជំពូកថ្មី',
 	'coll-rename_chapter' => 'ដាក់ឈ្មោះថ្មី ឱ្យជំពូក',
 	'coll-no_such_category' => 'គ្មានចំណាត់ថ្នាក់ក្រុមបែបនេះទេ',
 	'coll-notitle_title' => 'មិន​អាចកំណត់​ចំណងជើង​នៃទំព័រ',
 	'coll-empty_collection' => 'សៀវភៅទទេ',
+	'coll-revision' => 'កំណែ​ប្រែ​៖ $1',
 	'coll-save_collection_title' => 'រក្សាទុក​និង​ចែករំលែក​សៀវភៅ',
 	'coll-save_collection_text' => 'ជ្រើសរើស​តំបន់៖',
-	'coll-login_to_save' => 'ប្របើសិនបើ​អ្នក​ចង់​រក្សាទុក​សៀវភៅ​សម្រាប់​ប្រើប្រាស់​លើកក្រោយ សូម​[[Special:UserLogin|ឡុកអ៊ីន​ឬ​បង្កើត​គណនី]]​។',
+	'coll-login_to_save' => 'ប្រសិនបើ​អ្នក​ចង់​រក្សាទុក​សៀវភៅ​សម្រាប់​ប្រើប្រាស់​លើកក្រោយ សូម​[[Special:UserLogin|កត់ឈ្មោះចូល​ឬ​បង្កើត​គណនី]]​។',
 	'coll-personal_collection_label' => 'សៀវភៅ​ផ្ទាល់ខ្លួន៖',
 	'coll-community_collection_label' => 'សៀវភៅ​សហគមន៍៖',
 	'coll-save_collection' => 'រក្សាទុកសៀវភៅ',
+	'coll-save_category' => 'សៀវភៅទាំងអស់ដែលបានរក្សាទុកត្រូវបានបន្ថែមទៅក្នុងចំណាត់ថ្នាក់ក្រុម[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]',
 	'coll-overwrite_title' => 'ទំព័រ​មានហើយ។ សរសេរ​ជាន់ពីលើ ?',
 	'coll-overwrite_text' => 'ទំព័រដែលមានឈ្មោះ [[:$1]] មានរួចហើយ។ តើអ្នកចង់ជំនួសវាដោយកម្រងឯកសាររបស់អ្នកឬ?',
-	'coll-yes' => 'បាទ / ចាស',
+	'coll-yes' => 'បាទ / ចាស៎',
 	'coll-no' => 'ទេ',
 	'coll-load_overwrite_text' => 'អ្នក​មាន​ទំព័រ​ខ្លះនៅក្នុង​សៀវភៅ​នេះ​រួចហើយ​។ តើ​អ្នក​ចង់​សរសេរ​ជាន់ពីលើ​សៀវភៅ​បច្ចុប្បន្ន​របស់​អ្នក ដោយ​បន្ថែម​មាតិកា​ថ្មី ឬក៏​ច្រានចោល​ការផ្ទុក​សៀវភៅនេះ​?',
 	'coll-overwrite' => 'សរសេរជាន់ពីលើ',
@@ -3855,47 +6870,87 @@
 	'coll-update' => 'ធ្វើឱ្យទាន់សម័យ',
 	'coll-limit_exceeded_title' => 'សៀវភៅ​ធំជ្រុល',
 	'coll-limit_exceeded_text' => 'សៀវភៅ​របស់អ្នក​ធំជ្រុលពេកហើយ​។ អ្នក​មិន​អាច​បន្ថែម​ទំព័រ​ទៅក្នុង​វា​ទៀតទេ​។',
-	'coll-rendering_status' => '<strong>ស្ថាបភាព៖</strong> $1',
+	'coll-rendering_status' => '<strong>ស្ថានភាព៖</strong> $1',
 	'coll-rendering_article' => '(ទំព័រវិគី៖ $1)',
 	'coll-rendering_page' => '(ទំព័រ៖ $1)',
 	'coll-notfound_title' => 'រកមិនឃើញ​សៀវភៅ',
 	'coll-notfound_text' => 'រកមិនឃើញសៀវភៅទេ។',
+	'coll-download_notfound_title' => 'ឯកសារ​រកមិនឃើញ​',
+	'coll-download_notfound_text' => 'ឯកសារដែលអ្នកព្យាយាមទាញយកមិនមានទេ៖
+នេះប្រហែលជាវាត្រូវបានគេលុបចោល​ហើយត្រូវការអោយបង្កើតឡើងវិញ។',
+	'coll-download_failed_title' => 'បញ្ហាពេលកំពុងទាញយក',
+	'coll-download_failed_text' => 'មានបញ្ហាមួយកើតឡើងពេលកំពុងទាញយកឯកសារ៖ $1',
 	'coll-return_to_collection' => '<p>ត្រឡប់ទៅកាន់<a href="$1">$2</a></p>វិញ',
 	'coll-book_title' => 'ទិញសៀវភៅដែលបានបោះពុម្ព',
-	'coll-order_from_pp' => 'បញ្ជាទិញ​សៀវភៅពី $1',
+	'coll-order_from_pp' => 'ការមើលមុនពី $1',
 	'coll-about_pp' => 'អំពី$1',
 	'coll-license' => 'អាជ្ញាប័ណ្ណ',
 	'coll-return_to' => 'ត្រឡប់ទៅកាន់ [[:$1]]',
+	'coll-more_info' => 'បង្ហាញ​ព័ត៌មានបន្ថែម​',
+	'coll-hide_info' => 'លាក់​ព័ត៌មាន​',
+	'coll-suggest_your_book' => 'សៀវភៅ​របស់អ្នក',
+	'coll-suggest_show' => 'បង្ហាញ',
+	'coll-suggest_ban_tooltip' => 'ដកទំព័រនេះចេញពីបញ្ជីបេក្ខភាព',
+	'coll-suggest_article_ban' => 'ទំព័រ <strong>$1</strong> ត្រូវបានដកចេញពីបញ្ជីបេក្ខភាព($2)រួចហើយ។',
+	'coll-suggest_article_add' => 'ទំព័រ <strong>$1</strong> ត្រូវបានបន្ថែមចូលទៅក្នុងសៀវភៅរបស់អ្នក($2)ហើយ។',
+	'coll-suggest_article_remove' => 'ទំព័រ <strong>$1</strong> ត្រូវបានដកចេញពីសៀវភៅរបស់អ្នក($2)ហើយ។',
+	'coll-suggest_undo_tooltip' => 'ត្រឡប់វិញ',
+	'coll-suggest_undo' => 'ត្រឡប់វិញ',
+	'coll-load_local_book' => 'ចុច «យល់ព្រម» ដើម្បីបន្តជាមួយសៀវភៅរបស់អ្នក %TITLE% ដែលមានទំព័រវិគីចំនួន %NUMPAGES%។ ចុច «ចាកចេញ» ដើម្បីលុបវាចោលរួចចាប់ផ្ដើមជាមួយសៀវភៅទទេមួយ។',
+	'right-collectionsaveasuserpage' => 'រក្សា​ទុកសៀវភៅ​​ជា​ទំព័រអ្នកប្រើប្រាស់',
+	'right-collectionsaveascommunitypage' => 'រក្សា​ទុកសៀវភៅ​​ជា​ទំព័រ​សហគមន៍​',
 );
 
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'coll-download_title' => 'ಡೌನ್‍ಲೋಡ್',
+	'coll-download' => 'ಡೌನ್‍ಲೋಡ್',
+	'coll-show' => 'ತೋರಿಸು',
+	'coll-title' => 'ಶೀರ್ಷಿಕೆ:',
+	'coll-yes' => 'ಹೌದು',
+	'coll-no' => 'ಇಲ್ಲ',
+	'coll-cancel' => 'ರದ್ದು ಮಾಡು',
+	'coll-rendering_status' => '<strong>ಸ್ಥಾನಮಾನ:</strong> $1',
+	'coll-suggest_show' => 'ತೋರಿಸು',
+);
+
 /** Korean (한국어)
+ * @author Albamhandae
+ * @author Ilovesabbath
+ * @author Klutzy
  * @author Kwj2772
  * @author Yknok29
  */
 $messages['ko'] = array(
 	'coll-desc' => '[[Special:Book|책 만들기]]',
+	'coll-book_creator_intro' => "<big>''책 생성기''로 당신의 선택에 따라 위키 문서를 담은 책을 생성할 수 있습니다.  다른 포맷(PDF 또는 ODF)으로 책을 내보낼 수 있으며 인쇄된 책을 주문할 수도 있습니다.</big>",
+	'coll-manage_your_book' => '책 관리하기',
+	'coll-book_creator_help' => '자세한 정보에 대해서는 [[{{MediaWiki:Coll-helppage}}|책에 대한 도움말]]을 참고하십시오.',
+	'coll-start_book_creator' => '책 생성기 시작하기',
+	'coll-book_creator_continue' => '책 생성기를 이용해 진행하기',
+	'coll-book_creator_disable_text' => "'''책 생성기'''가 비활성화되고 작업하던 책이 제거될 것입니다.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/책 생성기',
 	'coll-collection' => '책',
-	'coll-collections' => '책들',
+	'coll-collections' => '책',
 	'coll-exclusion_category_title' => '인쇄시 제외할 문서',
 	'coll-print_template_prefix' => '인쇄',
 	'coll-print_template_pattern' => '$1/인쇄',
-	'coll-create_a_book' => '책 만들기',
-	'coll-add_page' => '문서 추가',
-	'coll-remove_page' => '문서 제거',
-	'coll-add_category' => '분류 추가하기',
-	'coll-load_collection' => '책 불러오기',
-	'coll-show_collection' => '책 보여주기',
-	'coll-n_pages' => '$1개의 문서',
 	'coll-unknown_subpage_title' => '알 수 없는 하위 문서',
-	'coll-printable_version_pdf' => 'PDF 버전',
-	'coll-download_as' => '$1로 다운로드',
+	'coll-unknown_subpage_text' => '[[Special:Book|책]]의 이 하위 문서가 없습니다.',
+	'coll-couldnotaddarticle_title' => '문서 추가 실패',
+	'coll-couldnotaddarticle_msg' => '이 위키 문서를 추가하지 못했습니다.',
+	'coll-couldnotremovearticle_title' => '문서 제거 실패',
+	'coll-couldnotremovearticle_msg' => '해당 문서를 제거하지 못했습니다.',
 	'coll-noscript_text' => '<h1>자바스크립트가 필요합니다!</h1>
 <strong>당신의 브라우저는 자바스크립트를 지원하지 않거나 비활성화되어 있습니다.
 자바스크립트가 활성화되지 않으면 이 문서는 제대로 동작하지 않을 수 있습니다.</strong>',
-	'coll-helppage' => 'Help:책 만들기',
-	'coll-bookscategory' => '책들',
+	'coll-savedbook_template' => '책_완성본',
 	'coll-your_book' => '당신의 책',
 	'coll-download_title' => '다운로드',
+	'coll-download_text' => '책을 다운로드하려면 원하는 형식을 선택한 다음 버튼을 클릭해주세요.',
+	'coll-download_as_text' => '$1 형식으로 된 책을 다운로드하려면 버튼을 클릭해주세요.',
 	'coll-download' => '다운로드',
 	'coll-format_label' => '포맷:',
 	'coll-remove' => '제거',
@@ -3907,30 +6962,41 @@
 	'coll-title' => '제목:',
 	'coll-subtitle' => '부제목:',
 	'coll-contents' => '내용',
+	'coll-drag_and_drop' => '드래그&드롭 기능을 이용해 책 내용의 정렬이 가능합니다',
 	'coll-create_chapter' => '새로운 장 만들기',
 	'coll-sort_alphabetically' => '알파벳순으로 정렬',
-	'coll-clear_collection_confirm' => '정말로 책에 있는 내용을 완전히 삭제하길 원하세요?',
 	'coll-rename' => '이름 바꾸기',
-	'coll-no_such_category' => '이런 분류는 없습니다.',
+	'coll-new_chapter' => '새 장의 이름 입력',
+	'coll-rename_chapter' => '새 장의 제목 입력',
+	'coll-no_such_category' => '해당 분류가 존재하지 않음',
+	'coll-notitle_title' => '제목이 없습니다.',
 	'coll-post_failed_title' => 'POST 요청에 실패하였습니다.',
 	'coll-post_failed_msg' => '$1로의 POST 요청 실패 ($2)',
 	'coll-mwserve_failed_title' => '렌더 서버 오류',
-	'coll-empty_collection' => '비어있는 책',
+	'coll-mwserve_failed_msg' => '렌더링 서버에서 오류가 발생했습니다: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => '서버 오류',
+	'coll-empty_collection' => '빈 책',
 	'coll-revision' => '판: $1',
+	'coll-save_collection_title' => '책 저장/공유',
+	'coll-save_collection_text' => '책을 저장할 위치:',
 	'coll-login_to_save' => '나중에 사용하기 위해 책을 저장하길 원하신다면 [[Special:UserLogin|로그인하거나 계정을 생성]]해 주세요.',
 	'coll-personal_collection_label' => '개인 책:',
+	'coll-community_collection_label' => '공동체 책:',
 	'coll-save_collection' => '책 저장',
+	'coll-save_category' => '모든 저장된 책은 [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] 분류에 포함됩니다.',
 	'coll-overwrite_title' => '문서가 존재합니다.
 덮어쓰시겠습니까?',
 	'coll-overwrite_text' => '[[:$1]]이라는 이름을 가진 문서가 이미 존재합니다.
 정말로 당신의 책을 바꾸시겠습니까?',
 	'coll-yes' => '예',
 	'coll-no' => '아니오',
+	'coll-load_overwrite_text' => '기존 책에 이미 다른 내용이 들어 있습니다. 기존 책을 지우고 새로 만들거나, 이어서 사용하거나, 또는 책 불러오기를 취소할 수 있습니다.',
 	'coll-overwrite' => '덮어쓰기',
 	'coll-append' => '더하기',
 	'coll-cancel' => '취소',
 	'coll-update' => '업데이트',
 	'coll-limit_exceeded_title' => '책이 너무 큽니다.',
+	'coll-limit_exceeded_text' => '책 내용이 너무 많습니다. 더 이상 내용을 추가할 수 없습니다.',
 	'coll-rendering_title' => '렌더링',
 	'coll-rendering_text' => '<p><strong>문서가 생성될 때까지 잠시 기다려주십시오.</strong></p>
 
@@ -3941,22 +7007,56 @@
 	'coll-rendering_status' => '<strong>상태:</strong> $1',
 	'coll-rendering_article' => '(문서: $1)',
 	'coll-rendering_page' => '(페이지: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/책 만들기',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/책 만들기',
 	'coll-rendering_finished_title' => '렌더링 완료',
 	'coll-rendering_finished_text' => '<strong>문서 파일이 생성되었습니다.</strong>
 이 파일을 당신의 컴퓨터로 <strong>[$1 다운로드]</strong>하십시오.
 
 참고:
 * 출력 결과에 만족하지 않으신가요? 이 기능을 향상시킬 수 있도록 [[{{MediaWiki:Coll-helppage}}|책에 대한 도움말 문서]]를 참고해 주세요.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/책 만들기',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/책 만들기',
 	'coll-notfound_title' => '책을 찾을 수 없음',
+	'coll-notfound_text' => '해당 페이지를 찾을 수 없습니다.',
+	'coll-download_notfound_title' => '파일을 찾을 수 없습니다.',
+	'coll-download_notfound_text' => '다운로드 받을 파일이 없습니다: 파일을 지웠을 가능성이 있으며, 다시 만들 필요가 있습니다.',
+	'coll-download_failed_title' => '다운로드 중 오류',
+	'coll-download_failed_text' => '파일을 다운로드하는 중 오류가 있었습니다: $1',
 	'coll-is_cached' => '<ul><li>이 문서의 캐시된 버전이 발견되었습니다. 따라서 다시 렌더링하지 않으셔도 됩니다. <a href="$1">다시 렌더링하기</a></li></ul>',
 	'coll-excluded-templates' => '[[:Category:$1|$1]] 분류에 속한 틀은 제외되었습니다.',
 	'coll-blacklisted-templates' => '틀 블랙리스트 [[:$1]]에 있는 틀은 제외되었습니다.',
-	'coll-return_to_collection' => '<p><a href="$1">$2</a>로 돌아갑니다</p>',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a>(으)로 돌아갑니다.</p>',
 	'coll-book_title' => '인쇄된 책으로 주문',
-	'coll-order_from_pp' => '$1에서 책 주문하기',
+	'coll-book_text' => '인쇄 협력자를 통해 책을 인쇄합니다.',
+	'coll-order_from_pp' => '$1에서 책 미리 보기',
 	'coll-about_pp' => '$1에 대하여',
+	'coll-invalid_podpartner_title' => '인쇄 협력자 정보 잘못됨',
+	'coll-invalid_podpartner_msg' => '제공받은 인쇄 협력자 정보가 잘못되었습니다. 관리자에게 해당 문제를 연락해주세요.',
 	'coll-license' => '라이선스',
-	'coll-return_to' => '[[:$1]]으로 돌아갑니다.',
+	'coll-return_to' => '[[:$1]](으)로 돌아갑니다.',
+	'coll-more_info' => '정보 더 보기',
+	'coll-hide_info' => '정보 숨기기',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress 주문 정보',
+	'coll-suggest_title' => '당신의 책에 넣을 문서 제안',
+	'coll-suggest_intro_text' => '문서 제안은 지금 당신의 책에 있는 위키 문서의 집합을 바탕으로 이루어집니다.
+추가 또는 제거 버튼을 누를 때마다 목록이 업데이트됩니다.',
+	'coll-suggested_articles' => '추천하는 문서',
+	'coll-suggest_reset_bans' => '초기화',
+	'coll-suggest_reset_bans_tooltip' => '이전에 지운 문서 제안을 표시합니다.',
+	'coll-suggest_add_selected' => '선택한 문서를 추가하기',
+	'coll-suggest_ban_selected' => '선택한 문서 지우기',
+	'coll-suggest_your_book' => '당신의 책',
+	'coll-suggest_show' => '보기',
+	'coll-suggest_ban_tooltip' => '이 문서를 문서 제안 목록에서 빼기',
+	'coll-suggest_article_ban' => '<strong>$1</strong> 문서가 문서 제안 목록에서 지워졌습니다 ($2).',
+	'coll-suggest_article_add' => '<strong>$1</strong> 문서가 문서 제안 목록에 추가되었습니다 ($2).',
+	'coll-suggest_article_remove' => '<strong>$1</strong> 문서를 당신의 책에서 뺐습니다 ($2).',
+	'coll-suggest_undo_tooltip' => '이 동작 되돌리기',
+	'coll-suggest_undo' => '되돌리기',
+	'coll-load_local_book' => '문서 %NUMPAGES%개를 포함하고 있는 %TITLE% 책을 계속 작업하시려면 확인을 클릭하십시오. 책을 삭제하고 새 책으로 다시 시작하려면 취소를 클릭하십시오',
+	'right-collectionsaveasuserpage' => '사용자 문서에 책 저장하기',
+	'right-collectionsaveascommunitypage' => '프로젝트 문서에 책 저장하기',
 );
 
 /** Krio (Krio)
@@ -3967,7 +7067,6 @@
 	'coll-collections' => 'Buk-dèm',
 	'coll-exclusion_category_title' => 'Nò put dis-ya da di print',
 	'coll-print_template_prefix' => 'Print',
-	'coll-create_a_book' => 'Mek buk',
 );
 
 /** Kinaray-a (Kinaray-a)
@@ -3979,53 +7078,42 @@
 	'coll-about_pp' => 'Angut sa Iwan $1',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
 	'coll-desc' => '[[Special:Book|Böösher ußjäve]]',
+	'coll-book_creator_intro' => '<big>Mem „Bööscher Maache“ kanns De e Booch met Sigge uss_em Wiki maache, di De sellver ußjesöhk häs. Ding Booch kanns De en ongerscheidlijje Fommaate expotteere, zem Beishpöll als <i lang="en">PDF</i> udder <i lang="en">ODF</i>, un De kanns et och jedröck beshtelle.</big>',
+	'coll-manage_your_book' => 'Donn Ding Booch beärrbeide',
+	'coll-book_creator_help' => 'Loor op dä [[{{MediaWiki:Coll-helppage}}|Hölpsigg övver et Bööscher-Maache]], wann De mieh weße wells.',
+	'coll-start_book_creator' => 'Donn et Bööschermaache aanfange',
+	'coll-book_creator_continue' => 'Donn mem Bööschermaache wigger maache',
+	'coll-book_creator_disable_text' => 'Et „Bööschermache“ weed affjeschalldt, un dat Booch, woh De draan aam werke bes, jeiht verschött.',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Övver et Bööschermaache',
 	'coll-collection' => 'Booch',
 	'coll-collections' => 'Bööscher',
-	'coll-exclusion_category_title' => 'Nit met drokke',
+	'coll-exclusion_category_title' => 'Nit metdrökke',
 	'coll-print_template_prefix' => 'Dröcke',
 	'coll-print_template_pattern' => '$1/Dröcke',
-	'coll-create_a_book' => 'E Booch zesamme_ställe',
-	'coll-add_page' => 'En Sigg dobei donn',
-	'coll-add_page_tooltip' => '!!FUZZY!Donn de aktoälle Wiki-Sigg en Ding Sammlong erin',
-	'coll-remove_page' => 'En Sigg eruß nämme',
-	'coll-remove_page_tooltip' => 'Schmiiß hee di Sigg fum Wiki uß Dingem Booch eruß',
-	'coll-add_category' => 'En Saachjrupp dobei donn',
-	'coll-add_category_tooltip' => 'Dat deiht all de Atikelle en dä {{NS:Category}} en Ding Booch erin.',
-	'coll-load_collection' => 'Booch lade',
-	'coll-load_collection_tooltip' => 'Deiht dat Booch hee als Ding aktoälles Booch laade.',
-	'coll-show_collection' => 'Booch zeije',
-	'coll-show_collection_tooltip' => 'He met kanns De Ding Boch ändere, de zosamme jeshtalle Sigge erunger laade, un jedröck beshtelle.',
-	'coll-help_collections' => 'Hölp üvver Bööscher',
-	'coll-help_collections_tooltip' => 'Hölp övver et Werkzüch zum Bööscher maache',
-	'coll-n_pages' => '{{PLURAL:$1|ein Sigg|$1 Sigge|kein Sigge}}',
 	'coll-unknown_subpage_title' => 'Unbekannte Ungersigg',
 	'coll-unknown_subpage_text' => 'Di Ungersigg fun „[[Special:Book|Booch]]“ jidd_et nit',
-	'coll-printable_version_pdf' => 'PDF Version',
-	'coll-download_as' => 'Als $1 eronger laade',
+	'coll-couldnotaddarticle_title' => 'Kunnt de Wiki-Sigg nit dobei donn',
+	'coll-couldnotaddarticle_msg' => 'Di Sigg vum Wiki kunnt nit dobei jedonn wääde.',
+	'coll-couldnotremovearticle_title' => 'Kunnt de Wiki-Sigg nit fott lohße',
+	'coll-couldnotremovearticle_msg' => 'Di Sigg vum Wiki kunnt nit fott jelohße wääde.',
 	'coll-noscript_text' => '<h1>Bruch JavaSkripp!</h1>
 <strong>Dinge Brauser kann kei JavaSkripp udder et es affjeschalldt.
 Di Sigg hee weed oohne JavaSkripp nit donn.</strong>',
-	'coll-intro_text' => 'Do kanns Sammlonge vun Sigge zusamme ställe, beärrbeide, un för shpääder affspeijschere.<br />
-Loor Der de ußföhrlesche [[{{MediaWiki:Coll-helppage}}|Hölp övver Sammlonge]] aan,
-wann de noch mieh wesse wells.',
-	'coll-helppage' => 'Help:Bööscher',
-	'coll-bookscategory' => 'Bööscher',
 	'coll-savedbook_template' => 'Avjespeichert_Booch',
 	'coll-your_book' => 'Ding Boch',
 	'coll-download_title' => 'Eronger laade',
-	'coll-download_text' => 'Öm en automattesch jemaate Datei met Dinge Sammlong eronger ze laade,
-sök Der e Fommaat uß, un donn op dat Knöppsche klecke.',
-	'coll-download_as_text' => 'Öm en Version em $1-Fommaat erunger ze laade, donn dä Knopp dröcke.',
-	'coll-download' => 'Eronger Laade',
+	'coll-download_text' => 'Öm Ding Booch eronger ze laade, söhk Der e Fommaat uß, un donn op dat Knöppsche klecke.',
+	'coll-download_as_text' => 'Öm Ding Booch em $1-Fommaat erunger ze laade, donn dä Knopp klekke.',
+	'coll-download' => 'Eronger laade',
 	'coll-format_label' => 'Fommaat:',
 	'coll-remove' => 'Fott lohße',
 	'coll-show' => 'Zeich',
-	'coll-move_to_top' => 'aan der Aanfang donn',
+	'coll-move_to_top' => 'Aan der Aanfang donn',
 	'coll-move_up' => 'Erop schuve',
 	'coll-move_down' => 'Eronger schuve',
 	'coll-move_to_bottom' => 'An et Engk donn',
@@ -4035,9 +7123,6 @@
 	'coll-drag_and_drop' => 'Donn de Sigge un Kapittelle met de Muuß aan Dingem Kompjuter eröm trekke un schuve, wann De se en en ander Reijefollesch han wells.',
 	'coll-create_chapter' => 'Kapittel neu aanlääje',
 	'coll-sort_alphabetically' => 'Noh_m Allfabeet zoteere',
-	'coll-clear_collection' => 'Dat Booch leddisch maache',
-	'coll-clear_collection_tooltip' => 'Hee met schmiiß De alle Sigge fum Wiki uß Dingem aktoälle Booch eruß, un deihs et leddisch maache.',
-	'coll-clear_collection_confirm' => 'Wells De werklesch Ding Booch jannz fott schmieße?',
 	'coll-rename' => 'Ömnänne',
 	'coll-new_chapter' => 'Jif ene Name för e neu Kapittel aan',
 	'coll-rename_chapter' => 'Jif ene neu Name för dat Kapittel en',
@@ -4078,71 +7163,112 @@
 
 <p><strong>Jedonn:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
-<p>Di Sigg hee sullt alle paa Sekunde neu aanjezeisch wääde. Wann dat nit klapp, donn eijach op Dingem Brauser singe passende Knopp klikke, zom neu Aanzeije!</p>',
+<p>Di Sigg hee sullt alle paa Sekunde neu aanjezeisch wääde. Wann dat nit klapp, donn eijfach op Dingem Brauser singe Knopp zom neu Aanzeije klekke!</p>',
 	'coll-rendering_status' => '<strong>Shtattus:</strong> $1',
 	'coll-rendering_article' => '(Wiki-Sigge-Tittel: $1)',
 	'coll-rendering_page' => '(Sigg Nommer: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Aanjaabe zom Sigge Ußjävve',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Aanjaabe zom Booch Ußjävve',
 	'coll-rendering_finished_title' => 'Et Ußjävve eß jedonn',
 	'coll-rendering_finished_text' => '<strong>De Datei es paraat jestallt. [$1 Donn se erunger lade].</strong>
 
 Opjepaß:
 * Wann De nit zefredde beß, met dämm, wat eruß jekumme eß, dann loor Der op dä [[{{MediaWiki:Coll-helppage}}|Hölpsigg övver Sammlonge]] aan, wat mer velleisch besser maache künnt.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Aanjaabe zom Ußjävve vun de Aanjabe zoh de Sigge',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Aanjaabe zom Booch Ußjävve',
 	'coll-notfound_title' => 'Booch nit jefonge',
 	'coll-notfound_text' => 'Mer kunnte de Sigg för dat Booch nit fenge.',
+	'coll-download_notfound_title' => 'Di Datei ham_mer nit jefonge',
+	'coll-download_notfound_text' => 'Di Dattei, di De eronger laade wells, di jidd_et jaa_nit: müjjelesch, dat se fottjeschmeße wood, un neu opjebout wääde moß.',
+	'coll-download_failed_title' => 'Fähler beim eronger Laade',
+	'coll-download_failed_text' => 'Ene Fähler es opjetrodde beim eronger Laade vun dä Dattei „$1“',
 	'coll-is_cached' => '<ul><li>Mer han en Version fun dämm Dokkemänt em ZwescheShpeicher, et moot nit widder neu ußjejovve wääde. <a href="$1">Doch neu widder ußjevve.</a></li></ul>',
 	'coll-excluded-templates' => '* De Schablone us dä Saachjropp [[:Category:$1|$1]] wore ußjeschloße.',
 	'coll-blacklisted-templates' => '* Schabloone en de „Schwatze Leß“ ([[:$1]]) sin nit met dobei.',
 	'coll-return_to_collection' => '<p>Jangk Retur noh <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Donn der Drock vun däm Booch beshtälle',
-	'coll-book_text' => 'Donn e Booch bestelle en de Drockerei:',
-	'coll-order_from_pp' => 'Donn dat Booch bei $1 beshtälle',
+	'coll-book_text' => 'Donn e Booch bestelle en de Dröckerei:',
+	'coll-order_from_pp' => 'Vör-Aansich vun däm Booch bei $1',
 	'coll-about_pp' => 'Üvver $1',
-	'coll-invalid_podpartner_title' => 'Verkeehte Aajabe zom Drocke udder Drockerei',
-	'coll-invalid_podpartner_msg' => 'De Aajabe zom Drocke un wä dat maache sull sin verkeeht.
+	'coll-invalid_podpartner_title' => 'Verkeehte Aajabe zom Dröcke udder zor Dröckerei',
+	'coll-invalid_podpartner_msg' => 'De Aajabe zom Dröcke un wä dat maache sull sin verkeeht.
 Don dat enem Wikki-Köbes obb et Bruut schmiere.',
 	'coll-license' => 'Lizänz',
 	'coll-return_to' => 'Jangk zerök noh [[:$1]]',
+	'coll-more_info' => 'Mieh Enfommazjuhne aanzeije',
+	'coll-hide_info' => 'Winnijer Enfommazjuhne aanzeije',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Wie mer bei <i lang="en">PediaPress</i> beshtelle kann',
+	'coll-suggest_title' => 'Sigge-Vörshlähsch för Ding Booch',
+	'coll-suggest_intro_text' => 'Vöschlähsch jonn vun dä Sigge uß, di De ald en Dingem Booch dren häs.
+Di Leß weed neu opjebout, wann De op dä „Dobei donn“ udder dä „{{int:coll-remove}}“ Knopp klecks.',
+	'coll-suggested_articles' => 'Vörschlähsch',
+	'coll-suggest_reset_bans' => 'Zerök säze',
+	'coll-suggest_reset_bans_tooltip' => 'Donn de dovör fotjenumme Vörschläsch för Sigge aanzeije',
+	'coll-suggest_add_selected' => 'Donn de ußjesöhk Sigge derbei',
+	'coll-suggest_ban_selected' => 'Donn de ußjesöhk Sigge fott nämme',
+	'coll-suggest_your_book' => 'Ding Booch',
+	'coll-suggest_show' => 'aanzeije',
+	'coll-suggest_ban_tooltip' => 'Nämm di Sigg uß dä Leß met Vörschlähsch för Ding Booch eruß',
+	'coll-suggest_article_ban' => 'De Sigg „$1“ es uß dä Vörschlähsch för Ding Booch fott jenumme ($2).',
+	'coll-suggest_article_add' => 'De Sigg „$1“ es en Ding Booch erin jekumme ($2).',
+	'coll-suggest_article_remove' => 'De Sigg „$1“ es uß Dingem Booch fott jenumme ($2).',
+	'coll-suggest_undo_tooltip' => 'Donn zeröck nämme, wat De jedonn hats',
+	'coll-suggest_undo' => 'zeröck nämme',
+	'coll-load_local_book' => 'Donn „OK“ ußwähle, öm met Dingem Booch mem Naame %TITLE% un %NUMPAGES% Wikisigge dren wigger ze maache.
+Donn „Cancel“ ußwähle, för et fott ze schmiiße un met enem läddijje Booch neu aanzefange.',
+	'right-collectionsaveasuserpage' => 'E Boch als enem Metmaacher sing Sigg avspeichere',
+	'right-collectionsaveascommunitypage' => 'E Boch als en Jemeinschaffß_Sigg avspeichere',
 );
 
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'coll-collection' => 'Pirtûk',
+	'coll-title' => 'Sernav:',
+);
+
+/** Cornish (Kernowek)
+ * @author Kernoweger
+ * @author Kw-Moon
+ */
+$messages['kw'] = array(
+	'coll-rename' => 'Dashenwel',
+	'coll-cancel' => 'Hedhy',
+);
+
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
 	'coll-desc' => '[[Special:Book|Bicher uleeën]]',
+	'coll-book_creator_intro' => "<big>Mam ''Buchmodus (book creator)'' kënnt Dir e Buch uleeën dat aus Wikisäite besteet déi Dir eraussicht. Dir kënnt Äert Buch a verschidde Formater (zum Beispill PDF oder ODF) exportéieren oder eng gedréckte Kopie bestellen.</big>",
+	'coll-manage_your_book' => 'Geréiert Äert Buch',
+	'coll-book_creator_help' => "Kuckt d'[[{{MediaWiki:Coll-helppage}}|Hëllef fir Bicher]] fir méi Informatiounen.",
+	'coll-start_book_creator' => 'Buchfonctioun starten',
+	'coll-book_creator_continue' => "D'Buchfonctioun weider benotzen",
+	'coll-book_creator_disable_text' => "''Buchfonctioun'' gëtt ausgeschalt an d'Buch un deem Dir schafft gëtt ewechgeholl.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text vun der Buchfonctioun',
 	'coll-collection' => 'Buch',
 	'coll-collections' => 'Bicher',
 	'coll-exclusion_category_title' => 'Net mat drécken',
 	'coll-print_template_prefix' => 'Drécken',
 	'coll-print_template_pattern' => '$1/Drock',
-	'coll-create_a_book' => 'E Buch uleeën',
-	'coll-add_page' => 'Wiki-Säit derbäisetzen',
-	'coll-add_page_tooltip' => 'Déi aktuell Wiki-Säit an Ärt Buch derbäisetzen',
-	'coll-remove_page' => 'Wiki-Säit ewechhuelen',
-	'coll-remove_page_tooltip' => 'Dës Wiki-Säit aus Ärem buch eraushuelen',
-	'coll-add_category' => 'Kategorie derbäisetzen',
-	'coll-add_category_tooltip' => 'All Wiki-Säiten aus dëser Kategorie an Ärt Buch derbäisetzen',
-	'coll-load_collection' => 'Buch lueden',
-	'coll-load_collection_tooltip' => 'Dëst Buch als Ärt aktuellt Buch lueden',
-	'coll-show_collection' => "D'Buch weisen",
-	'coll-show_collection_tooltip' => "Klickt fir Ärt Buch z'änneren/erofzeluede/ze bestellen",
-	'coll-help_collections' => "Hellëf iwwert d'Bicher",
-	'coll-help_collections_tooltip' => 'Hëllef vun der Buch-Fonctioun weisen',
-	'coll-n_pages' => '$1 {{PLURAL:$1|Säit|Säiten}}',
 	'coll-unknown_subpage_title' => 'Onbekannten Ënnersäit',
 	'coll-unknown_subpage_text' => 'Dës Ënnersäit vum [[Special:Book|Buch]] gëtt et net',
-	'coll-printable_version_pdf' => 'PDF-Versioun',
-	'coll-download_as' => 'Als $1 eroflueden',
+	'coll-couldnotaddarticle_title' => 'Wikisäit konnt net derbäigesat ginn',
+	'coll-couldnotaddarticle_msg' => "D'Wikisäit konnt net derbäigesat ginn.",
+	'coll-couldnotremovearticle_title' => 'Wikisäit konnt net ewechgeholl ginn',
+	'coll-couldnotremovearticle_msg' => "D'Wikisäit konnt net ewechgeholl ginn.",
 	'coll-noscript_text' => '<h1>JavaScript gëtt gebraucht!</h1>
 <strong>Äre Browser ënnerstëtzt Java Script net oder JavaScript ass ausgeschalt.
 Dës Säit fonctionnéiert net richteg, ausser wa JavaScript ageschalt ass</strong>',
-	'coll-intro_text' => 'Uleeën a geréieren vun ärer individueller Auswiel vu Wiki-Säiten.<br />Kuckt [[{{MediaWiki:Coll-helppage}}]] fir méi Informatiounen.',
-	'coll-helppage' => 'Help:Bicher',
-	'coll-bookscategory' => 'Bicher',
-	'coll-savedbook_template' => 'gespäichert_buch',
-	'coll-your_book' => 'Ärt Buch',
+	'coll-savedbook_template' => 'gespäichert Buch',
+	'coll-your_book' => 'Äert Buch',
 	'coll-download_title' => 'Eroflueden',
-	'coll-download_text' => 'Fir eng offline Versioun erofzelueden, wielt w.e.g. e Format a klickt op de Knäppchen.',
-	'coll-download_as_text' => 'Fir eng Offline-Versioun am Format $1 erofzelueden, klickt w.e.g. op de Knäppchen.',
+	'coll-download_text' => 'Fir Äert Buch erofzelueden, wielt w.e.g. e Format a klickt op de Knäppchen.',
+	'coll-download_as_text' => 'Fir Äert Buch am Format $1 erofzelueden, klickt w.e.g. op de Knäppchen.',
 	'coll-download' => 'Eroflueden',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Ewechhuelen',
@@ -4154,16 +7280,16 @@
 	'coll-title' => 'Titel:',
 	'coll-subtitle' => 'Ënnertitel:',
 	'coll-contents' => 'Inhalter',
+	'coll-drag_and_drop' => "Benotzt d'Maus fir Wikisäiten a Kapitelen anescht ze zortéieren",
 	'coll-create_chapter' => 'E Kapitel maachen',
 	'coll-sort_alphabetically' => 'Alphabetesch sortéieren',
-	'coll-clear_collection' => 'Buch eidel maachen',
-	'coll-clear_collection_tooltip' => 'All Wiki-Säiten aus ärem aktuelle Buch eraushuelen',
-	'coll-clear_collection_confirm' => 'Wëllt Dir Ärt Buch wierklech ganz läschen?',
 	'coll-rename' => 'Ëmbenennen',
 	'coll-new_chapter' => 'Gitt den Numm fir dat neit Kapitel un',
-	'coll-rename_chapter' => "Gitt een neie Numm fir d'Kapitel un",
+	'coll-rename_chapter' => "Gitt en neien Numm fir d'Kapitel un",
 	'coll-no_such_category' => 'Keng esou Kategorie',
 	'coll-notitle_title' => 'Den Titel vun der Säit konnt net festgestallt ginn.',
+	'coll-post_failed_title' => 'POST Ufro huet net fonctionnéiert',
+	'coll-post_failed_msg' => "D'POST Ufro u(n) $1 huet net fonctionnéiert ($2).",
 	'coll-mwserve_failed_title' => 'Feeler vum Server',
 	'coll-mwserve_failed_msg' => 'Op dem Render-Server ass e Feeler geschitt: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'Feelermeldng vum Server',
@@ -4175,20 +7301,20 @@
 	'coll-personal_collection_label' => 'Perséinlecht Buch',
 	'coll-community_collection_label' => 'Kollektiv-Buch:',
 	'coll-save_collection' => 'Buch späicheren',
-	'coll-save_category' => 'Bicher ginn an der Kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] gespäichert.',
+	'coll-save_category' => "All gespäichert Bicher ginn an d'Kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] derbäigesat.",
 	'coll-overwrite_title' => "D'Säit gëtt et. Iwwerschreiwen?",
 	'coll-overwrite_text' => 'Et gëtt schonn eng Säit mam Numm [[:$1]].
 Wëllt Dir déi duerch är Sammlung ersetzen?',
 	'coll-yes' => 'Jo',
 	'coll-no' => 'Neen',
-	'coll-load_overwrite_text' => 'Dir hutt schon e puer Säiten an Ärem Buch.
-Wëllt Dir Ärt aktuellt Buch iwwerschreiwen, den nien Inhalt hanndrun hänken, oder luede vun dësm Buch ofbriechen?',
+	'coll-load_overwrite_text' => "Dir hutt schon e puer Säiten an Ärem Buch.
+Wëllt Dir Äert aktuellt Buch iwwerschreiwen, den neien Inhalt hannendrun hänken, oder d'Luede vun dësem Buch ofbriechen?",
 	'coll-overwrite' => 'Iwwerschreiwen',
 	'coll-append' => 'Derbäisetzen',
 	'coll-cancel' => 'Annulléieren',
 	'coll-update' => 'Aktualiséieren',
 	'coll-limit_exceeded_title' => 'Buch ze grouss',
-	'coll-limit_exceeded_text' => 'Ärt Buch ass ze grouss.
+	'coll-limit_exceeded_text' => 'Äert Buch ass ze grouss.
 Et kënne keng Säite méi derbäigesat ginn.',
 	'coll-rendering_title' => 'Maachen',
 	'coll-rendering_text' => '<p><strong>Gedëllegt Iech w.e.g. bis d\'Dokument zesummegestallt ass.</strong></p>
@@ -4200,58 +7326,96 @@
 	'coll-rendering_status' => '<strong>Statut :</strong> $1',
 	'coll-rendering_article' => '(Wiki Säit: $1)',
 	'coll-rendering_page' => '(Säit: $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Informatiounstext iwwert d'Verschaffe vu Säiten",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Informatiounstext iwwert d'Duerstelle vu Sammlungen",
 	'coll-rendering_finished_title' => 'Fäerdeg gemaach',
+	'coll-rendering_finished_text' => "<strong>De Fichier gouf generéiert.</strong>
+<strong>[$1 Luet de Fichier]</strong> op Äre Computer.
+
+Opgepasst:
+*Sidd Dir net zefridde mam Resultat? Kuckt [[{{MediaWiki:Coll-helppage}}|d'Hëllefssäit iwwer Bicher]] fir Méiglechkeete fir et ze verbesseren.",
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Informatiounstext iwwert d'Verschaffe vu Säiten",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Informatiounstext iwwert d'Duerstelle vu Sammlungen",
 	'coll-notfound_title' => 'Buch net fonnt',
 	'coll-notfound_text' => "D'Buch-Säit konnt net fonnt ginn.",
+	'coll-download_notfound_title' => 'Fichier gouf net fonnt',
+	'coll-download_notfound_text' => 'De Fichier deen Dir versicht erofzeluede gëtt et net: Méiglecherweis gouf e geläscht a muss nees generéiert ginn.',
+	'coll-download_failed_title' => 'Feeler beim eroflueden',
+	'coll-download_failed_text' => 'Et gouf e Feeler beim erofluede vum Fichier: $1',
+	'coll-is_cached' => "<ul><li>Eng tëschegespäichert Versioun vum dkument gouf fonnt, dofir war kee ''rendering'' néideg.
+<a href=\"\$1\">''re-rendering'' erzwengen.</a></li></ul>",
 	'coll-excluded-templates' => '* Schablounen aus der Kategorie [[:Category:$1|$1]] goufen ausgeschloss',
 	'coll-blacklisted-templates' => '* Schablounen op der schwaarzer Lëscht (blacklist) [[:$1]] goufen ausgeschloss.',
 	'coll-return_to_collection' => '<p>Zréck op <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Als gedréckte Buch bestellen',
 	'coll-book_text' => 'Bestellt e gedréckte Buch vun eisem Print-On-Demand Partner:',
-	'coll-order_from_pp' => "D'Buch bestelle bäi $1",
+	'coll-order_from_pp' => 'Mat $1 kucken',
 	'coll-about_pp' => 'Iwwer $1',
 	'coll-invalid_podpartner_title' => 'Ongëltege Print-On-Demand (POD) Partner',
+	'coll-invalid_podpartner_msg' => 'Donnéeën vum Print-On-Demand (POD) Partner sinn net valabel.
+Kontaktéiert w.e.g. Äre MediaWiki Adminstrateur.',
 	'coll-license' => 'Lizenz',
 	'coll-return_to' => 'Zréck op [[:$1]]',
+	'coll-more_info' => 'Méi Informatioune weisen',
+	'coll-hide_info' => 'Informatioune verstoppen',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress Bestellinformatiounen',
+	'coll-suggest_title' => 'Virgeschloe Säite fir Äert Buch',
+	'coll-suggest_intro_text' => "D'Virschléi baséieren op den aktuelle Säiten an Ärem Buch.
+D'Lëscht gëtt all kéier aktuliséiert wann dir op d'Knäppecher derbäisetzen oder ewechuele klickt.",
+	'coll-suggested_articles' => 'Virschléi',
+	'coll-suggest_reset_bans' => 'zrécksetzen',
+	'coll-suggest_reset_bans_tooltip' => 'Virschléi weisen déi virdrun ewechgeholl goufen',
+	'coll-suggest_add_selected' => 'Erausgesichte Säiten derbäisetzen',
+	'coll-suggest_ban_selected' => 'Erausgesichte Säiten ewechhuelen',
+	'coll-suggest_your_book' => 'Äert Buch',
+	'coll-suggest_show' => 'weisen',
+	'coll-suggest_ban_tooltip' => 'Dës Säit vun der Lëscht vun de Virschléi erofhuelen',
+	'coll-suggest_article_ban' => "D'Säit <strong>$1</strong> gouf vun de Virschléi ewechgeholl ($2).",
+	'coll-suggest_article_add' => "D'Säit <strong>$1</strong> gouf bäi Äert Buch derbäigesat ($2).",
+	'coll-suggest_article_remove' => "D'Säit <strong>$1</strong> gouf aus Ärem Buch erausgeholl ($2).",
+	'coll-suggest_undo_tooltip' => 'Dës Aktioun réckgängeg maachen',
+	'coll-suggest_undo' => 'réckgängeg maachen',
+	'coll-load_local_book' => 'Klickt OK fir mat Ärem Buch %TITLE% dat %NUMPAGES% Wikisäiten huet weiderzefueren. Klickt Ofbriechen fir et ze läschen a mat engem eidele Buch unzefänken.',
+	'right-collectionsaveasuserpage' => 'Bicher als Benotzersäit späicheren',
+	'right-collectionsaveascommunitypage' => 'Bicher als Gemeinschaftssäit späicheren',
 );
 
 /** Limburgish (Limburgs)
+ * @author Aelske
  * @author Ooswesthoesbes
  */
 $messages['li'] = array(
 	'coll-desc' => '[[Special:Book|Maak book]]',
+	'coll-book_creator_intro' => "<big>Mit de ''Bokemaker'' kins se e book make det wikipagina's nao dien eige inzich bevat.
+De kins t book exportere in versjillende bestandjsformate (bv. PDF of ODF) of e gedruk exemplaar bestelle.</big>",
+	'coll-manage_your_book' => 'Behieër die book',
+	'coll-book_creator_help' => 'Zuuch [[{{MediaWiki:Coll-helppage}}|hulppagina veur beuk]] veur meer informatie.',
+	'coll-start_book_creator' => 'Begin bokemaker',
+	'coll-book_creator_continue' => 'Gank door mitte bokemaker',
+	'coll-book_creator_disable_text' => "De ''bokemaker'' wurt oetgezat en t book wo se aan werks wurt verwiederd.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Bokemakerteks',
 	'coll-collection' => 'Book',
 	'coll-collections' => 'Beuk',
 	'coll-exclusion_category_title' => "Laot eweg bie 't oetdrejje",
 	'coll-print_template_prefix' => 'Oetdrej',
 	'coll-print_template_pattern' => '$1/Oetdrej',
-	'coll-create_a_book' => "Maak 'n book",
-	'coll-add_page' => 'Wikipaasj bievoge',
-	'coll-remove_page' => 'Wikipaasj wösje',
-	'coll-add_category' => 'Zeukgroop bievoge',
-	'coll-load_collection' => 'Laaj book',
-	'coll-show_collection' => 'Toean book',
-	'coll-help_collections' => 'Hölp bie beuk',
-	'coll-n_pages' => "$1 {{PLURAL:$1|pazjena|pazjena's}}",
 	'coll-unknown_subpage_title' => 'Ónbekèndje óngerpaasj',
-	'coll-unknown_subpage_text' => 'Dees óngerpaasj ven [[Sprecial:Book|Book]] besteit neet',
-	'coll-printable_version_pdf' => 'PDF-gaedering',
-	'coll-download_as' => 'Óphaole es $1',
+	'coll-unknown_subpage_text' => 'Dees óngerpaasj ven [[Special:Book|Book]] besteit neet',
+	'coll-couldnotaddarticle_title' => 'De wikipagina kos neet toegevoeg waere',
+	'coll-couldnotaddarticle_msg' => 'De wikipagina kos neet toegevoeg waere.',
+	'coll-couldnotremovearticle_title' => 'De wikipagina kos neet verwiederd waere',
+	'coll-couldnotremovearticle_msg' => 'De wikipagina kos neet verwiederd waere.',
 	'coll-noscript_text' => "<h1JavaScript is beneudj!</h1>
 <strong>Diene toeaner óngerstäöntj gènne JavaScript ódder 't is aafgezatj.
 Dees paasj wèrk neet goed, bezieje-s doe JavaScript aanzèts.</strong>",
-	'coll-intro_text' => "Maak dien eige seleksje ven wikipazjena's.<br />
-[[{{MediaWiki:Coll-helppage}}|Mieë-r weitesjap]].",
-	'coll-helppage' => 'Help:Beuk',
-	'coll-bookscategory' => 'Beuk',
 	'coll-savedbook_template' => 'vasgezatj_book',
 	'coll-your_book' => 'Dien book',
 	'coll-download_title' => 'Haol óp',
-	'coll-download_text' => "Drök óppe knoep óm 'n gaedering ven dien boke óp tö haole.",
-	'coll-download_as_text' => "Drök óppe knoep veur 't óphaole ven 'ner offline gaedering in g'm fórmaat $1.",
+	'coll-download_text' => 'Kees e formaat en klik oppe downloadknoep.',
+	'coll-download_as_text' => 'Klik óppe knoep om die book es $1 te downloade.',
 	'coll-download' => 'Haol óp',
 	'coll-format_label' => 'Fórmaat:',
-	'coll-remove' => 'Wösje',
+	'coll-remove' => 'weggoeje',
 	'coll-show' => 'Toean',
 	'coll-move_to_top' => 'Gans euveróppes',
 	'coll-move_up' => 'Euveróppes',
@@ -4263,10 +7427,8 @@
 	'coll-drag_and_drop' => "De kins de wikipazjena's en huidstukke sleipe óm ze te ordene",
 	'coll-create_chapter' => 'Huidstök make',
 	'coll-sort_alphabetically' => 'Alfabetisch sortere',
-	'coll-clear_collection' => 'Laeg book',
-	'coll-clear_collection_confirm' => 'Wils se dien book èch laege?',
 	'coll-rename' => 'Hèrnömme',
-	'coll-new_chapter' => "Veur de naam ven 't nuuj huidstök inne",
+	'coll-new_chapter' => "Veur de naam van 't nuuj hoofstök in",
 	'coll-rename_chapter' => "Veur 'ne nuuje naam in veur 't huidstök",
 	'coll-no_such_category' => 'De kattegorie besteit neet',
 	'coll-notitle_title' => "De titel ven g'r pazjena kós neet vasgesteldj waere.",
@@ -4295,7 +7457,7 @@
 	'coll-append' => "D'raanzètte",
 	'coll-cancel' => 'Aafbraeke',
 	'coll-update' => 'Vervèrse',
-	'coll-limit_exceeded_title' => 'Book is tö groeat',
+	'coll-limit_exceeded_title' => 'Book is te groet',
 	'coll-limit_exceeded_text' => "Dien book is tö groeat.
 De kins gein paazjes mieë d'raanzètte.",
 	'coll-rendering_title' => 'Renderendj',
@@ -4308,28 +7470,58 @@
 	'coll-rendering_status' => '<strong>Staat:</strong> $1',
 	'coll-rendering_article' => '(wikipaasj: $1)',
 	'coll-rendering_page' => '(paasj: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Paginarenderinformatie',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Verzamelingrenderinformatie',
 	'coll-rendering_finished_title' => 'Rendere aafgeröndj',
 	'coll-rendering_finished_text' => '<strong>Het document is aangemaak.</strong>
 <strong>[$1 t bestandj downloade]</strong>.
 
 Opmerkinge:
 * Neet tevrede mit de oetveur? Op de [[{{MediaWiki:Coll-helppage}}|hulppagina euver collecties]] staon tips om deze te verbaetere.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatieteks biw pagina rendere',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatieteks bie verzameling renderen',
 	'coll-notfound_title' => 'Book neet gevónje',
 	'coll-notfound_text' => 'Bookpaasj is neet gevónje.',
+	'coll-download_notfound_title' => 'Bestandj neet gevónje',
+	'coll-download_notfound_text' => "'t Bestandj det se perbieërs óp te haole besteit neet: Mesjiens is 't gewösj èn mót 't ópnuuj gemaak waere.",
+	'coll-download_failed_title' => 'Fout bie t downloade',
+	'coll-download_failed_text' => "d'r Is 'n fout opgetraoje bie 't downloade: $1",
 	'coll-is_cached' => '<ul><li>d\'r Is \'n versje ven \'t dokument besjikber inne cache, dös opnuuj rendere woor neet neudig.
 <a href="$1">Opnuuj rendere.</a></li></ul>',
-	'coll-excluded-templates' => '* Sjebloeaner inne kattegorie [[:Category:$1|$1]] waere genegeerdj.',
+	'coll-excluded-templates' => '* Sjeblone in de categorie [[:Category:$1|$1]] waere genegeerdj.',
 	'coll-blacklisted-templates' => '* Sjebloeaner óppe zwarte lies [[:$1]] waere genegeerdj.',
 	'coll-return_to_collection' => '<p>Trökgaon nao <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Bestèl es gedrök book',
 	'coll-book_text' => "De kins 'n gedrök book bestèlle bie 'ne print-on-demandpartner:",
-	'coll-order_from_pp' => 'Bestèl book bie $1',
+	'coll-order_from_pp' => 'Veurvertoning van $1',
 	'coll-about_pp' => 'Euver $1',
 	'coll-invalid_podpartner_title' => 'Óngèljige print-on-demandpartner',
 	'coll-invalid_podpartner_msg' => "D'n ópgegaeve print-on-demandpartner is óngèljig.
-Nöm kóntak óp mid öche MediaWikiadmin.",
+Nöm kóntak op mèt eure MediaWikiadmin.",
 	'coll-license' => 'Lisens',
 	'coll-return_to' => 'Trök göch [[:$1]]',
+	'coll-more_info' => 'Toean mieër inlichtinger',
+	'coll-hide_info' => 'Verbèrg inlichtinger',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Bestèlinlichtinger PediaPress',
+	'coll-suggest_title' => 'Paginasuggesties veur die book',
+	'coll-suggest_intro_text' => "Suggesties zeen gebaseerd op de hudige selectie van wikipagina's in die book.
+De lies wurt biegewerk es se op de knoep 'voog toe' of 'verwieder' kliks.",
+	'coll-suggested_articles' => 'Suggesties',
+	'coll-suggest_reset_bans' => 'Reset',
+	'coll-suggest_reset_bans_tooltip' => 'Tuun eerder verwiederde suggesties',
+	'coll-suggest_add_selected' => "Voeg geselecteerde pagina's toe",
+	'coll-suggest_ban_selected' => "Verwieder geselecteerde pagina's",
+	'coll-suggest_your_book' => 'Dien book',
+	'coll-suggest_show' => 'toean',
+	'coll-suggest_ban_tooltip' => 'Verwieder dees pagina oete lies met suggesties',
+	'coll-suggest_article_ban' => 'De pagina <strong>$1</strong> is verwiederd oet de suggesties ($2).',
+	'coll-suggest_article_add' => 'De pagina <strong>$1</strong> is toegevoeg aan die book ($2).',
+	'coll-suggest_article_remove' => 'De pagina <strong>$1</strong> is verwiederd oet die book ($2).',
+	'coll-suggest_undo_tooltip' => 'Maak dees hanjeling óngedaon',
+	'coll-suggest_undo' => 'maak óngedaon',
+	'coll-load_local_book' => 'Klik "gank" om door te gaon mit die book %TITLE% det %NUMPAGES% wikipagina\'s bevat. Klik op "braek aaf" om \'t te verwiedere en opnuuj te beginne mit e laeg book.',
+	'right-collectionsaveasuserpage' => 'Slaon book óp es gebroekerspagina',
+	'right-collectionsaveascommunitypage' => 'Slaon book óp es gemeinsjapspagina',
 );
 
 /** Lao (ລາວ)
@@ -4342,29 +7534,170 @@
 );
 
 /** Lithuanian (Lietuvių)
+ * @author Eitvys200
  * @author Homo
+ * @author Matasg
  */
 $messages['lt'] = array(
+	'coll-desc' => '[[Special:Book|Kurti knygas]]',
+	'coll-manage_your_book' => 'Tvarkyti jūsų knygą',
+	'coll-book_creator_help' => 'Žiūrėkite [[{{MediaWiki:Coll-helppage}}|the help page about books]] daugiau informacijos.',
+	'coll-start_book_creator' => 'Paleisti knygų kūrėją',
+	'coll-book_creator_continue' => 'Toliau naudoti book creator',
 	'coll-collection' => 'Knyga',
 	'coll-collections' => 'Knygos',
 	'coll-print_template_prefix' => 'Spausdinti',
-	'coll-create_a_book' => 'Kurti knygą',
-	'coll-add_category' => 'Pridėti kategoriją',
-	'coll-printable_version_pdf' => 'PDF versija',
+	'coll-unknown_subpage_title' => 'Nežinomas puslapis',
+	'coll-unknown_subpage_text' => 'Šis papildomas puslapis [[Special:Book|Book]] neegzistuoja',
+	'coll-couldnotaddarticle_title' => 'Nepavyko pridėti wiki puslapio',
+	'coll-couldnotaddarticle_msg' => 'Wiki puslapis negali būti pridėtas.',
+	'coll-couldnotremovearticle_title' => 'Nepavyko pašalinti wiki puslapio',
+	'coll-couldnotremovearticle_msg' => 'Wiki puslapio pašalinti negalima.',
+	'coll-noscript_text' => '<h1>JavaScript yra reikalings!</h1>
+<strong>Jūsų naršyklė nepalaiko JavaScript arba JavaScript  buvo išjungtas. Šis puslapis neveiks tinkamai jei neįjungsite JavaScript.</strong>',
+	'coll-savedbook_template' => 'išsaugota_knyga',
+	'coll-your_book' => 'Jūsų knyga',
 	'coll-download_title' => 'Atsisiųsti',
+	'coll-download_text' => 'Norėdami atsisiųsti knygą, pasirinkite formatą ir spustelėkite mygtuką.',
+	'coll-download_as_text' => 'Norėdami atsisiųsti knygą $1 formatu, spustelėkite mygtuką .',
+	'coll-download' => 'Atsisiųsti',
+	'coll-format_label' => 'Formatas:',
 	'coll-remove' => 'Pašalinti',
+	'coll-show' => 'Rodyti',
+	'coll-move_to_top' => 'Perkelti į viršų',
+	'coll-move_up' => 'Pakelti aukštyn',
+	'coll-move_down' => 'Nuleisti žemyn',
+	'coll-move_to_bottom' => 'Nuleisti į apačią',
+	'coll-title' => 'Pavadinimas:',
+	'coll-subtitle' => 'Poraštė',
+	'coll-sort_alphabetically' => 'Rūšiuoti abėcėlės tvarka',
 	'coll-rename' => 'Pervadinti',
 	'coll-no_such_category' => 'Nėra tokios kategorijos',
+	'coll-empty_collection' => 'Tuščia knyga',
+	'coll-save_collection_title' => 'Išsaugoti ir pasidalinti savo knygą',
+	'coll-save_collection_text' => 'Pasirinkite savo knygos saugojimo vietą:',
+	'coll-personal_collection_label' => 'Asmeninė knyga:',
+	'coll-save_collection' => 'Išsaugoti knygą',
+	'coll-overwrite_title' => 'Puslapio egzistuoja.
+Perrašyti?',
+	'coll-overwrite_text' => 'Puslapio pavadinimas [[:$1]] jau egzistuoja.
+Ar norite jį pakeisti su savo knyga?',
 	'coll-yes' => 'Taip',
 	'coll-no' => 'Ne',
+	'coll-overwrite' => 'Perrašyti',
 	'coll-cancel' => 'Atšaukti',
 	'coll-update' => 'Atnaujinti',
+	'coll-limit_exceeded_title' => 'Knyga per didelė',
+	'coll-limit_exceeded_text' => 'Jūsų knyga per didelė.
+Daugiau puslapių negali būti pridėta.',
+	'coll-rendering_text' => '<p><strong>Prašome palaukti kol dokumentas yra generuojamas.</strong></p>
+
+<p><strong>Progress:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Šis puslapis turėtu atsinaujinti kas kelias sekundęs.
+Jei tai neveikia prašome paspausti jūsų naršyklės atnaujinimo mygtuką.</p>',
+	'coll-rendering_status' => '<strong>Statusas:</strong> $1',
+	'coll-rendering_article' => '(wiki puslapis: $1 )',
+	'coll-rendering_page' => '(puslapis: $1 )',
 	'coll-notfound_title' => 'Knyga nerasta',
-	'coll-about_pp' => 'Apie',
+	'coll-notfound_text' => 'Nepavyko rasti knygos puslapio.',
+	'coll-download_notfound_title' => 'Failas nerastas',
+	'coll-download_notfound_text' => 'Bandote atsisiųsti failą kuris neegzistuoja:
+Gal jis buvo panaikintas ir turi būti regeneruojamas.',
+	'coll-download_failed_title' => 'Klaida atsiuntimo metu',
+	'coll-download_failed_text' => 'Įvyko klaida, atsiunčiat failą:$1',
+	'coll-return_to_collection' => '<p>Grįžti į <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Užsisakyti spausdintą knygą',
+	'coll-order_from_pp' => 'Peržiūrėti su $1',
+	'coll-about_pp' => 'Apie $1',
 	'coll-license' => 'Licencija',
 	'coll-return_to' => 'Grįžti į [[:$1]]',
+	'coll-more_info' => 'Rodyti daugiau informacijos',
+	'coll-hide_info' => 'Slėpti informaciją',
+	'coll-suggested_articles' => 'Pasiūlymai',
+	'coll-suggest_reset_bans' => 'perkrauti',
+	'coll-suggest_reset_bans_tooltip' => 'Rodyti anksčiau pašalintus pasiūlymus',
+	'coll-suggest_add_selected' => 'Pridėti pasirinktus puslapius',
+	'coll-suggest_ban_selected' => 'Pašalinti pasirinktus puslapius',
+	'coll-suggest_your_book' => 'Jūsų knyga',
+	'coll-suggest_show' => 'rodyti',
+	'coll-suggest_ban_tooltip' => 'Pašalinti šį puslapį iš pasiūlymų sąrašo',
+	'coll-suggest_article_ban' => 'Puslapis <strong>$1</strong> buvo pašalintas iš pasiūlymų ( $2 ).',
+	'coll-suggest_article_add' => 'Puslapis <strong>$1</strong> buvo įtrauktas į jūsų knyga ( $2 ).',
+	'coll-suggest_article_remove' => 'Puslapis <strong>$1</strong> buvo pašalintas iš jūsų knygos ( $2 ).',
+	'coll-suggest_undo_tooltip' => 'Anuliuoti šį veiksmą',
+	'coll-suggest_undo' => 'anuliuoti',
+	'coll-load_local_book' => 'Spustelėkite Gerai, kad testumėte toliaus zsu savo knyga %TITLE%, kurioje yra %NUMPAGES%  wiki puslapių. Spustelėkite Atšaukti, jei norite panaikinti knygą ir pradėti su tuščia knyga.',
+	'right-collectionsaveasuserpage' => 'Išsaugoti knygas kaip naudotojo puslapį',
+	'right-collectionsaveascommunitypage' => 'Išsaugoti knygas kaip bendruomenės puslapį',
 );
 
+/** Latgalian (Latgaļu)
+ * @author Dark Eagle
+ */
+$messages['ltg'] = array(
+	'coll-show' => 'Paruodeit',
+	'coll-update' => 'Atjaunynuot',
+	'coll-about_pp' => 'Ap $1',
+	'coll-suggest_show' => 'ruodeit',
+);
+
+/** Latvian (Latviešu)
+ * @author GreenZeb
+ * @author Papuass
+ */
+$messages['lv'] = array(
+	'coll-desc' => '[[Special:Book|Veidot grāmatas]]',
+	'coll-manage_your_book' => 'Pārvaldīt Jūsu grāmatu',
+	'coll-start_book_creator' => 'Palaist grāmatu veidotāju',
+	'coll-book_creator_continue' => 'Turpināt lietot grāmatu veidotāju',
+	'coll-collection' => 'Grāmata',
+	'coll-collections' => 'Grāmatas',
+	'coll-exclusion_category_title' => 'Neņemt vērā izdrukā',
+	'coll-your_book' => 'Jūsu grāmata',
+	'coll-download_title' => 'Lejupielādēt',
+	'coll-format_label' => 'Formāts:',
+	'coll-remove' => 'Noņemt',
+	'coll-show' => 'Rādīt',
+	'coll-move_to_top' => 'Pārvietot uz augšu',
+	'coll-move_up' => 'Pārvietot augšup',
+	'coll-move_down' => 'Pārvietot lejup',
+	'coll-move_to_bottom' => 'Pārvietot uz leju',
+	'coll-title' => 'Nosaukums:',
+	'coll-subtitle' => 'Apakšnosaukums:',
+	'coll-contents' => 'Saturs',
+	'coll-create_chapter' => 'Izveidot nodaļu',
+	'coll-sort_alphabetically' => 'Kārtot alfabētiskā secībā',
+	'coll-rename' => 'Pārsaukt',
+	'coll-new_chapter' => 'Ievadīt jaunu nodaļu',
+	'coll-rename_chapter' => 'Ievadīt jaunās nodaļas nosaukumu',
+	'coll-no_such_category' => 'Nav tādas kategorijas',
+	'coll-save_collection' => 'Saglabāt grāmatu',
+	'coll-overwrite_title' => 'Lapa pastāv.
+Pārrakstīt?',
+	'coll-yes' => 'Jā',
+	'coll-no' => 'Nē',
+	'coll-overwrite' => 'Pārrakstīt',
+	'coll-append' => 'Pievienot',
+	'coll-cancel' => 'Atcelt',
+	'coll-update' => 'Atjaunināt',
+	'coll-limit_exceeded_title' => 'Grāmata ir pārāk liela',
+	'coll-notfound_title' => 'Grāmata nav atrasta',
+	'coll-download_notfound_title' => 'Fails nav atrasts',
+	'coll-download_failed_title' => 'Kļūda lejupielādējot',
+	'coll-about_pp' => 'Par $1',
+	'coll-license' => 'Licence',
+	'coll-return_to' => 'Atgriezties uz [[:$1]]',
+	'coll-more_info' => 'Parādīt vairāk informācijas',
+	'coll-hide_info' => 'Paslēpt informāciju',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress pasūtījuma informācija',
+	'coll-suggest_title' => 'Ieteiktās lapas jūsu grāmatai',
+	'coll-suggested_articles' => 'Ieteikumi',
+	'coll-suggest_add_selected' => 'Pievienot izvēlētās lapas',
+	'coll-suggest_ban_selected' => 'Izņemt izvēlētās lapas',
+	'coll-suggest_your_book' => 'Tava grāmata',
+);
+
 /** Eastern Mari (Олык Марий)
  * @author Сай
  */
@@ -4373,93 +7706,342 @@
 	'coll-cancel' => 'Чараш',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'coll-desc' => '[[Special:Book|Создавање на книги]]',
+	'coll-book_creator_intro' => "<big>Со ''книговезницата'' можете да создадете книга која содржи вики-страници по ваш избор. Можете да ја извезувате книгата во различни формати (на пр. PDF или ODF) или пак да порачате отпечатен примерок.</big>",
+	'coll-manage_your_book' => 'Раководење со вашата книга',
+	'coll-book_creator_help' => 'За повеќе информации, погледајте ја нашата [[{{MediaWiki:Coll-helppage}}|помош за книги]].',
+	'coll-start_book_creator' => 'Пушти ја книговезницата',
+	'coll-book_creator_continue' => 'Продолжи со користење на книговезницата',
+	'coll-book_creator_disable_text' => "''Книговезницата'' ќе биде оневозможена и книгата на која работите ќе биде отстранета.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Текст на книговезницата',
+	'coll-collection' => 'Книга',
+	'coll-collections' => 'Книги',
+	'coll-exclusion_category_title' => 'Испушти при печатење',
+	'coll-print_template_prefix' => 'Печатење',
+	'coll-print_template_pattern' => '$1/Печатење',
+	'coll-unknown_subpage_title' => 'Непозната потстраница',
+	'coll-unknown_subpage_text' => 'Оваа потстраница на [[Special:Book|книгата]] не постои',
+	'coll-couldnotaddarticle_title' => 'Не можев да ја додадам вики-страницата',
+	'coll-couldnotaddarticle_msg' => 'Вики-страницата не може да се додаде.',
+	'coll-couldnotremovearticle_title' => 'Не можев да ја отстранам вики-страницата',
+	'coll-couldnotremovearticle_msg' => 'Вики-страницата не може да се отстрани.',
+	'coll-noscript_text' => '<h1>Потребен е JavaScript!</h1>
+<strong>Вашиот прелистувач не поддржува JavaScript или JavaScript е исклучен.
+Страницава нема да работи правилно ако не е овозможен JavaScript.</strong>',
+	'coll-savedbook_template' => 'зачувана_книга',
+	'coll-your_book' => 'Вашата книга',
+	'coll-download_title' => 'Преземи',
+	'coll-download_text' => 'За да ја преземете книгата, одберете формат и кикнете го копчето.',
+	'coll-download_as_text' => 'Кликнете го копчето за да ја преземете книгата во $1 формат.',
+	'coll-download' => 'Преземи',
+	'coll-format_label' => 'Формат:',
+	'coll-remove' => 'Отстрани',
+	'coll-show' => 'Прикажи',
+	'coll-move_to_top' => 'Премести најгоре',
+	'coll-move_up' => 'Премести нагоре',
+	'coll-move_down' => 'Премести надолу',
+	'coll-move_to_bottom' => 'Премести најдолу',
+	'coll-title' => 'Наслов:',
+	'coll-subtitle' => 'Поднаслов:',
+	'coll-contents' => 'Содржина',
+	'coll-drag_and_drop' => 'Влечете и пуштајте ги вики-страниците и главите за да ги подредите како што сакате',
+	'coll-create_chapter' => 'Создај глава',
+	'coll-sort_alphabetically' => 'Подреди по азбучен ред',
+	'coll-rename' => 'Преименувај',
+	'coll-new_chapter' => 'Внесете име за новата глава',
+	'coll-rename_chapter' => 'Внесете ново име за главата',
+	'coll-no_such_category' => 'Нема таква категорија',
+	'coll-notitle_title' => 'Насловот на страницата не може да се определи.',
+	'coll-post_failed_title' => 'POST-барањето не успеа',
+	'coll-post_failed_msg' => 'POST-барањето од $1 не успеа ($2).',
+	'coll-mwserve_failed_title' => 'Грешка во опслужувачот за исцртување',
+	'coll-mwserve_failed_msg' => 'Настана грешка во опслужувачот за отцртување: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Опслужувачот одговори со грешка',
+	'coll-empty_collection' => 'Празна книга',
+	'coll-revision' => 'Ревизија: $1',
+	'coll-save_collection_title' => 'Зачувај и сподели ја книгата',
+	'coll-save_collection_text' => 'Одберете место за чување на вашата книга:',
+	'coll-login_to_save' => 'Ако сакате да зачувувате книги за подоцнежна употреба, [[Special:UserLogin|најавете се или направете сметка]].',
+	'coll-personal_collection_label' => 'Лична книга:',
+	'coll-community_collection_label' => 'Книга на заедницата:',
+	'coll-save_collection' => 'Зачувај',
+	'coll-save_category' => 'Сите зачувани книги се додаваат во категоријата [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Страницата постои.
+Да ја заменам?',
+	'coll-overwrite_text' => 'Страницата со име [[:$1]] веќе постои,
+Дали сакате да ја замените со вашата книга?',
+	'coll-yes' => 'Да',
+	'coll-no' => 'Не',
+	'coll-load_overwrite_text' => 'Веќе имате некои страници во книгата.
+Дали сакате да ја замените вашата тековна книга, да ја додадете новата содржина, или пак да го откажете вчитувањето на оваа книга?',
+	'coll-overwrite' => 'Замени',
+	'coll-append' => 'Додај',
+	'coll-cancel' => 'Откажи',
+	'coll-update' => 'Обнови',
+	'coll-limit_exceeded_title' => 'Книгата е преголема',
+	'coll-limit_exceeded_text' => 'Книгата е преголема.
+Не можам да додавам повеќе страници.',
+	'coll-rendering_title' => 'Отцртување',
+	'coll-rendering_text' => '<p><strong>Ве молиме почекајте додека се создава документот.</strong></p>
+
+<p><strong>Прогрес:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Оваа страница треба да се обновува автоматски по еднаш на неколку секунди.
+Ако ова не работи, притиснете го копчето за превчитување во прелистувачот.</p>',
+	'coll-rendering_status' => '<strong>Статус:</strong> $1',
+	'coll-rendering_article' => '(вики-страница: $1)',
+	'coll-rendering_page' => '(страница: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Информативен текст за испишувањето на страници',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Информативен текст за испишувањето на збирки',
+	'coll-rendering_finished_title' => 'Отцртувањето заврши',
+	'coll-rendering_finished_text' => '<strong>Податотеката на документот е создадена.</strong>
+<strong>[$1 Преземете ја податотеката]</strong> на вашиот сметач.
+
+Белешки:
+* Не сте задоволни со резултатот? Погледајте ја нашата [[{{MediaWiki:Coll-helppage}}|страница за помош со книги]] за да ги видите можностите за нејзино подобрување.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Изработка на информативен текст за страницата',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Изработка на информативен текст за збирката',
+	'coll-notfound_title' => 'Книгата не е пронајдена',
+	'coll-notfound_text' => 'Не можев да ја пронајдам страницата.',
+	'coll-download_notfound_title' => 'Податотеката не е пронајдена',
+	'coll-download_notfound_text' => 'Податотеката која сакате да ја преземете не постои:
+Можеби била избришана и треба да се создаде одново.',
+	'coll-download_failed_title' => 'Грешка при преземањето',
+	'coll-download_failed_text' => 'Настана грешка при преземањето на податотеката: $1',
+	'coll-is_cached' => '<ul><li>Пронајдена е кеширана верзија на документот, па затоа немаше потреба да се отцртува.
+<a href="$1">Сепак отцртај.</a></li></ul>',
+	'coll-excluded-templates' => '* Шаблоните во категоријата [[:Category:$1|$1]] се исклучени.',
+	'coll-blacklisted-templates' => '* Шаблоните на црниот список [[:$1]] се исклучени.',
+	'coll-return_to_collection' => '<p>Назад на <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Порачај во печатен облик',
+	'coll-book_text' => 'Порачајте ја книгата во печатен облик од нашиот партнер.',
+	'coll-order_from_pp' => 'Прегледај со $1',
+	'coll-about_pp' => 'За $1',
+	'coll-invalid_podpartner_title' => 'Неважечки POD партнер',
+	'coll-invalid_podpartner_msg' => 'Наведениот POD партнер е неважечки.
+Контактирајте го вашиот MediaWiki администратор.',
+	'coll-license' => 'Лиценца',
+	'coll-return_to' => 'Врати се на [[:$1]]',
+	'coll-more_info' => 'Прикажи повеќе информации',
+	'coll-hide_info' => 'Скриј ги информациите',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Информации за порачувањето од PediaPress',
+	'coll-suggest_title' => 'Предложени страници за вашата книга',
+	'coll-suggest_intro_text' => 'Предлозите се засновани на тековниот збир од вики-страници во вашата книга.
+Списокот се обновува секојпат кога ќе кликнете на копчето за додавање или отстранување.',
+	'coll-suggested_articles' => 'Предлози',
+	'coll-suggest_reset_bans' => 'врати по основно',
+	'coll-suggest_reset_bans_tooltip' => 'Прикажи претходно отстранети предлози',
+	'coll-suggest_add_selected' => 'Додај ги избраните страници',
+	'coll-suggest_ban_selected' => 'Отстрани ги избраните страници',
+	'coll-suggest_your_book' => 'Вашата книга',
+	'coll-suggest_show' => 'прикажи',
+	'coll-suggest_ban_tooltip' => 'Отстрани ја страницава од списокот на предлози',
+	'coll-suggest_article_ban' => 'Страницата <strong>$1</strong> е отстранета од предлозите ($2).',
+	'coll-suggest_article_add' => 'Страницата <strong>$1</strong> е додадена во вашата книга ($2).',
+	'coll-suggest_article_remove' => 'Страницата <strong>$1</strong> е отстранета од вашата книга ($2).',
+	'coll-suggest_undo_tooltip' => 'Врати го ова дејство',
+	'coll-suggest_undo' => 'врати',
+	'coll-load_local_book' => 'Кликнете на „ОК“ за да продолжите со книгата %TITLE% којашто содржи %NUMPAGES% вики-страници. Кликнете на „Откажи“ за да ја избришете и да започнете со празна книга.',
+	'right-collectionsaveasuserpage' => 'Зачувување на книги како корисничка страница',
+	'right-collectionsaveascommunitypage' => 'Зачувување на книги како страница на заедницата',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'coll-desc' => '[[Special:Collection|താളുകളുടെ ശേഖരം]], PDF നിര്‍മ്മിക്കുക',
-	'coll-collection' => 'ശേഖരം',
-	'coll-collections' => 'ശേഖരങ്ങള്‍',
-	'coll-create_a_book' => 'എന്റെ ശേഖരം',
-	'coll-add_page' => 'താള്‍ ചേര്‍ക്കുക',
-	'coll-remove_page' => 'താള്‍ മാറ്റുക',
-	'coll-add_category' => 'വര്‍ഗ്ഗം ചേര്‍ക്കുക',
-	'coll-load_collection' => 'ശേഖരം ലോഡ് ചെയ്യുക',
-	'coll-show_collection' => 'ശേഖരം കാണിക്കുക',
-	'coll-help_collections' => 'ശേഖരങ്ങളുടെ സഹായം',
-	'coll-helppage' => 'Help:ശേഖരം',
-	'coll-download_title' => 'ശേഖരം PDF ആയി ഡൗണ്‍ലോഡ് ചെയ്യുക.',
-	'coll-download_text' => 'താളുകളുടെ ശേഖരത്തിന്റെ യാന്ത്രികമായി നിര്‍മ്മിക്കപ്പെട്ട PDF ഡൗലോഡ് ചെയ്യുന്നതിനു ബട്ടണില്‍ ഞെക്കുക.',
+	'coll-desc' => '[[Special:Book|പുസ്തകം സൃഷ്ടിക്കുക]]',
+	'coll-book_creator_intro' => '<big>പുസ്തകസൃഷ്ടി ഉപകരണം ഉപയോഗിച്ച് താങ്കൾക്ക് ഇഷ്ടമുള്ള വിക്കിതാളുകൾ യോജിപ്പിച്ച് താങ്കൾക്ക് പുസ്തകം സൃഷ്ടിക്കാൻ കഴിയുന്നതാണ്. അത് താങ്കളുടെ ഇച്ഛാനുസരണം ഏതെങ്കിലും ഫോർമാറ്റിൽ (ഉദാ: പി.ഡി.എഫ്. അല്ലെങ്കിൽ ഒ.ഡി.എഫ്.) എടുക്കാവുന്നതോ അച്ചടിച്ച പകർപ്പ് ആവശ്യപ്പെടാവുന്നതോ ആണ്.</big>',
+	'coll-manage_your_book' => 'താങ്കളുടെ പുസ്തകത്തിന്റെ കൈകാര്യനിർവഹണം',
+	'coll-book_creator_help' => 'കൂടുതൽ വിവരങ്ങൾക്ക് [[{{MediaWiki:Coll-helppage}}|പുസ്തകങ്ങളെ സംബന്ധിച്ച സഹായം]] താൾ കാണുക.',
+	'coll-start_book_creator' => 'പുസ്തക സൃഷ്ടി ഉപകരണം പ്രവർത്തിപ്പിക്കുക',
+	'coll-book_creator_continue' => 'പുസ്തകസൃഷ്ടി ഉപകരണം ഉപയോഗിക്കുന്നത് തുടരുക',
+	'coll-book_creator_disable_text' => "''പുസ്തക സൃഷ്ടി ഉപകരണം'' പ്രവർത്തനരഹിതവും, താങ്കൾ ചെയ്തുകൊണ്ടിരിക്കുന്ന പുസ്തകം നീക്കംചെയ്യുകയും ചെയ്യുന്നതാണ്.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/പുസ്തക സൃഷ്ടി ഉപകരണത്തിന്റെ എഴുത്ത്',
+	'coll-collection' => 'പുസ്തകം',
+	'coll-collections' => 'പുസ്തകങ്ങൾ',
+	'coll-exclusion_category_title' => 'അച്ചടിയിൽ നിന്ന് ഒഴിവാക്കുക',
+	'coll-print_template_prefix' => 'അച്ചടിയ്ക്കുക',
+	'coll-print_template_pattern' => '$1/അച്ചടിയ്ക്കുക',
+	'coll-unknown_subpage_title' => 'അജ്ഞാതമായ ഉപതാൾ',
+	'coll-unknown_subpage_text' => '[[Special:Book|പുസ്തകത്തിലെ]] ഈ ഉപതാൾ നിലനിൽക്കുന്നില്ല',
+	'coll-couldnotaddarticle_title' => 'വിക്കി താൾ കൂട്ടിച്ചേർക്കാൻ കഴിയില്ല',
+	'coll-couldnotaddarticle_msg' => 'വിക്കി താൾ കൂട്ടിച്ചേർക്കാൻ കഴിഞ്ഞില്ല.',
+	'coll-couldnotremovearticle_title' => 'വിക്കിതാൾ നീക്കം ചെയ്യാൻ കഴിയില്ല',
+	'coll-couldnotremovearticle_msg' => 'വിക്കി താൾ നീക്കം ചെയ്യാൻ കഴിയില്ല.',
+	'coll-noscript_text' => '<h1>ജാവാസ്ക്രിപ്റ്റ് വേണ്ടിയിരിക്കുന്നു!</h1>
+<strong>താങ്കളുടെ ബ്രൗസർ ജാവാസ്ക്രിപ്റ്റ് പിന്തുണയില്ലാത്തതോ ജാവാസ്ക്രിപ്റ്റ് സജ്ജമാക്കാത്തതോ ആണ്.
+ജാവാസ്ക്രിപ്റ്റ് സജ്ജമാക്കിയില്ലെങ്കിൽ, ഈ താൾ ശരിയായ രീതിയിൽ പ്രവർത്തിക്കില്ല.</strong>',
+	'coll-savedbook_template' => 'ശേഖരിക്കപ്പെട്ട_പുസ്തകം',
+	'coll-your_book' => 'താങ്കളുടെ പുസ്തകം',
+	'coll-download_title' => 'ഡൗൺലോഡ്',
+	'coll-download_text' => 'താങ്കളുടെ പുസ്തകം ഡൗൺലോഡ് ചെയ്യുന്നതിനായി ഫോർമാറ്റ് തിരഞ്ഞെടുത്ത ശേഷം ബട്ടൺ ഞെക്കുക.',
+	'coll-download_as_text' => 'താങ്കളുടെ പുസ്തകം $1 ഫോർമാറ്റിൽ ഡൗൺലോഡ് ചെയ്യാൻ ബട്ടൺ അമർത്തുക.',
+	'coll-download' => 'ഡൗൺലോഡ്',
+	'coll-format_label' => 'തരം:',
 	'coll-remove' => 'നീക്കം ചെയ്യുക',
+	'coll-show' => 'പ്രദർശിപ്പിക്കുക',
 	'coll-move_to_top' => 'ഏറ്റവും മുകളിലേക്ക് നീങ്ങുക',
 	'coll-move_up' => 'മുകളിലേക്കു നീങ്ങുക',
 	'coll-move_down' => 'താഴേക്ക് നീങ്ങുക',
 	'coll-move_to_bottom' => 'ഏറ്റവും താഴേക്ക് നീങ്ങുക',
-	'coll-title' => 'ശീര്‍ഷകം:',
-	'coll-subtitle' => 'ഉപശീര്‍ഷകം:',
+	'coll-title' => 'തലക്കെട്ട്:',
+	'coll-subtitle' => 'ഉപശീർഷകം:',
 	'coll-contents' => 'ഉള്ളടക്കം',
-	'coll-create_chapter' => 'പുതിയ അദ്ധ്യായം സൃഷ്ടിക്കുക',
-	'coll-sort_alphabetically' => 'താളുകള്‍ അകാദാരിക്രമത്തില്‍ ക്രമീകരിക്കുക',
-	'coll-clear_collection' => 'ശേഖരം മായ്ക്കുക',
-	'coll-rename' => 'പുനഃര്‍നാമകരണം ചെയ്യുക',
+	'coll-drag_and_drop' => 'വിക്കി താളുകളും അദ്ധ്യായങ്ങളും ക്രമം മാറ്റാൻ വലിച്ചിടൽ ഉപയോഗിക്കുക',
+	'coll-create_chapter' => 'അദ്ധ്യായം സൃഷ്ടിക്കുക',
+	'coll-sort_alphabetically' => 'താളുകൾ അകാദാരിക്രമത്തിൽ ക്രമീകരിക്കുക',
+	'coll-rename' => 'പുനഃർനാമകരണം ചെയ്യുക',
 	'coll-new_chapter' => 'പുതിയ അദ്ധ്യായത്തിനു ഒരു പേരു കൊടുക്കുക',
 	'coll-rename_chapter' => 'അദ്ധ്യായത്തിനു പുതിയൊരു പേരു കൊടുക്കുക',
-	'coll-no_such_category' => 'അങ്ങനെ ഒരു വര്‍ഗ്ഗം നിലവിലില്ല',
-	'coll-notitle_title' => 'താളിന്റെ തലക്കെട്ട് നിര്‍ണ്ണയിക്കുന്നതിനു കഴിഞ്ഞില്ല.',
-	'coll-error_reponse' => 'സെര്‍‌വറില്‍ നിന്നു പിഴവാണെന്ന മറുപടി കിട്ടി.',
-	'coll-empty_collection' => 'ശൂന്യമായ ശേഖരം',
+	'coll-no_such_category' => 'അങ്ങനെ ഒരു വർഗ്ഗം നിലവിലില്ല',
+	'coll-notitle_title' => 'താളിന്റെ തലക്കെട്ട് നിർണ്ണയിക്കുന്നതിനു കഴിഞ്ഞില്ല.',
+	'coll-post_failed_title' => 'POST അഭ്യർത്ഥന പരാജയപ്പെട്ടു',
+	'coll-post_failed_msg' => '$1 എന്നതിലേയ്ക്കുള്ള POST അഭ്യർത്ഥന പരാജയപ്പെട്ടു ($2).',
+	'coll-mwserve_failed_title' => 'റെൻഡർ സെർവർ പിഴവ്',
+	'coll-mwserve_failed_msg' => 'റെൻഡർ സെ‌‌ർവറിൽ പിഴവ് സംഭവിച്ചിരിക്കുന്നു: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'സെർവറിൽ നിന്നു പിഴവാണെന്ന മറുപടി കിട്ടി.',
+	'coll-empty_collection' => 'ശൂന്യമായ പുസ്തകം',
 	'coll-revision' => 'പതിപ്പ്: $1',
-	'coll-save_collection_title' => 'ശേഖരം സേവ് ചെയ്യുക',
-	'coll-save_collection_text' => 'ഈ ശേഖരം പിന്നിടുള്ള ഉപയോഗത്തിനായി സൂക്ഷിക്കണമെങ്കില്‍ ശേഖര തരം തിരഞ്ഞെടുത്ത് ഒരു ശീര്‍ഷകം നല്‍കുക:',
-	'coll-login_to_save' => 'ശേഖരങ്ങള്‍ പിന്നീടുള്ള ഉപയോഗത്തിനായി സൂക്ഷിക്കണമെങ്കില്‍, ദയവായി [[Special:UserLogin|ലോഗിന്‍ ചെയ്യുകയോ പുതിയൊരു അക്കൗണ്ട് ഉണ്ടാക്കുകയോ ചെയ്യുക]].',
-	'coll-personal_collection_label' => 'സ്വകാര്യ ശേഖരം:',
-	'coll-community_collection_label' => 'സമൂഹ ശേഖരം:',
-	'coll-save_collection' => 'ശേഖരം സേവ് ചെയ്യുക',
-	'coll-overwrite_title' => 'താള്‍ നിലവിലുണ്ട്. അതിനെ ഓവര്‍റൈറ്റ് ചെയ്യട്ടെ?',
-	'coll-overwrite_text' => '[[:$1]] എന്ന പേരില്‍ ഒരു താള്‍ നിലവിലുണ്ട്. താങ്കളുടെ ശേഖരം ആ താളിനു ബദലാക്കണോ?',
+	'coll-save_collection_title' => 'താങ്കളുടെ പുസ്തകം സേവ് ചെയ്യുക പങ്ക് വെയ്ക്കുക',
+	'coll-save_collection_text' => 'താങ്കളുടെ പുസ്തകം ശേഖരിച്ചു വെയ്ക്കേണ്ട സ്ഥലം തിരഞ്ഞെടുത്തു നൽകുക:',
+	'coll-login_to_save' => 'പുസ്തകങ്ങൾ പിന്നീടുള്ള ഉപയോഗത്തിനായി സൂക്ഷിക്കണമെങ്കിൽ, ദയവായി [[Special:UserLogin|ലോഗിൻ ചെയ്യുകയോ പുതിയൊരു അംഗത്വം ഉണ്ടാക്കുകയോ ചെയ്യുക]].',
+	'coll-personal_collection_label' => 'സ്വകാര്യ പുസ്തകം:',
+	'coll-community_collection_label' => 'സമൂഹ പുസ്തകം:',
+	'coll-save_collection' => 'പുസ്തകം സേവ് ചെയ്യുക',
+	'coll-save_category' => 'സേവ് ചെയ്ത പുസ്തകങ്ങളെല്ലാം [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] വർഗ്ഗത്തിലേയ്ക്ക് ചേർത്തിരിക്കുന്നു.',
+	'coll-overwrite_title' => 'താൾ നിലവിലുണ്ട്. അതിനെ ഓവർറൈറ്റ് ചെയ്യട്ടെ?',
+	'coll-overwrite_text' => '[[:$1]] എന്ന പേരിൽ ഒരു താൾ നിലവിലുണ്ട്. താങ്കളുടെ പുസ്തകം ആ താളിനു ബദലാക്കണോ?',
 	'coll-yes' => 'ശരി',
 	'coll-no' => 'ഇല്ല',
-	'coll-load_overwrite_text' => 'താങ്കളുടെ ശേഖരത്തില്‍ ഇപ്പോള്‍ തന്നെ കുറച്ചു താളുകള്‍ ഉണ്ട്.
-താങ്കള്‍ക്കു നിലവിലുള്ള ശേഖരം മാറ്റണോ, പുതിയ താളുകള്‍ നിലവിലുള്ളതില്‍ ചേര്‍ക്കണോ, അതോ ഈ പ്രക്രിയ നിരാകരിക്കണോ?',
-	'coll-overwrite' => 'ഓവര്‍റൈറ്റ്',
-	'coll-append' => 'കൂട്ടിചേര്‍ക്കുക',
+	'coll-load_overwrite_text' => 'താങ്കളുടെ പുസ്തകത്തിൽ ഇപ്പോൾ തന്നെ കുറച്ചു താളുകൾ ഉണ്ട്.
+താങ്കൾക്കു നിലവിലുള്ള പുസ്തകം മാറ്റണോ, പുതിയ താളുകൾ നിലവിലുള്ളതിൽ ചേർക്കണോ, അതോ പുസ്തകം ശേഖരിക്കുന്നതു റദ്ദാക്കണമോ?',
+	'coll-overwrite' => 'ഓവർറൈറ്റ്',
+	'coll-append' => 'കൂട്ടിചേർക്കുക',
 	'coll-cancel' => 'റദ്ദാക്കുക',
-	'coll-limit_exceeded_title' => 'ശേഖരത്തിന്റെ വലിപ്പം വളരെ കൂടുതലാണ്‌',
-	'coll-limit_exceeded_text' => 'താങ്കളുടെ ശേഖരം വളരെ വലുതാണ്‌. ഇനി കൂടുതല്‍ താളുകള്‍ ചേര്‍ക്കുന്നതിനു സാദ്ധ്യമല്ല.',
-	'coll-notfound_title' => 'ശേഖരം കണ്ടില്ല',
-	'coll-notfound_text' => 'ശേഖര താള്‍ കണ്ടെത്താന്‍ കഴിഞ്ഞില്ല.',
+	'coll-update' => 'പുതുക്കുക',
+	'coll-limit_exceeded_title' => 'പുസ്തകത്തിന്റെ വലിപ്പം വളരെ കൂടുതലാണ്‌',
+	'coll-limit_exceeded_text' => 'താങ്കളുടെ പുസ്തകം വളരെ വലുതാണ്‌.
+ഇനി കൂടുതൽ താളുകൾ ചേർക്കുന്നതിനു സാദ്ധ്യമല്ല.',
+	'coll-rendering_title' => 'റെൻഡർ ചെയ്യുന്നു',
+	'coll-rendering_text' => '<p><strong>പ്രമാണം സൃഷ്ടിക്കപ്പെടുന്നതു വരെ ദയവായി കാത്തിരിക്കുക.</strong></p>
+<p><strong>പുരോഗതി:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+<p>ഏതാനം സെക്കന്റുകൾക്കിടയിൽ ഈ താൾ പുതുക്കിക്കൊണ്ടിരിക്കും, ഇപ്രകാരം പ്രവർത്തിക്കുന്നില്ലങ്കിൽ ദയവായി താങ്കളുടെ ബ്രൗസറിലെ റിഫ്രഷ് ബട്ടൺ അമർത്തുക.</p>',
+	'coll-rendering_status' => '<strong>സ്ഥിതി:</strong> $1',
+	'coll-rendering_article' => '(‌‌വിക്കി താൾ:$1)',
+	'coll-rendering_page' => '(താൾ: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/താളിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ശേഖരത്തിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു',
+	'coll-rendering_finished_title' => 'റെൻഡർ ചെയ്യൽ പൂർണ്ണം',
+	'coll-rendering_finished_text' => '<strong>വിവര പ്രമാണം സൃഷ്ടിച്ചിരിക്കുന്നു.</strong>
+താങ്കളുടെ കമ്പ്യൂട്ടറിലേയ്ക്ക് <strong>[$1 പ്രമാണം ഡൗൺലോഡ് ചെയ്യുക]</strong>.
+
+കുറിപ്പുകൾ:
+* ലഭ്യമായതിൽ സംതൃപ്തനല്ലേ? അത് മെച്ചപ്പെടുത്താനുള്ള സാധ്യതകളെ കുറിച്ചറിയാൻ [[{{MediaWiki:Coll-helppage}}|പുസ്തകങ്ങൾ സംബന്ധിച്ച സഹായം താൾ കാണുക]]',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/താളിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ശേഖരത്തിന്റെ വിവരങ്ങളുള്ള എഴുത്ത് പ്രദർശനയോഗ്യമാക്കുന്നു',
+	'coll-notfound_title' => 'പുസ്തകം കണ്ടെത്താനായില്ല',
+	'coll-notfound_text' => 'പുസ്തക താൾ കണ്ടെത്താൻ കഴിഞ്ഞില്ല.',
+	'coll-download_notfound_title' => 'പ്രമാണം കണ്ടെത്താൻ കഴിഞ്ഞില്ല',
+	'coll-download_notfound_text' => 'താങ്കൾ ഡൗൺലോഡ് ചെയ്യാൻ ശ്രമിക്കുന്ന പ്രമാണം നിലവിലില്ല:
+ചിലപ്പോളത് മായ്ക്കപ്പെട്ടിരിക്കുന്നതാവാം, അങ്ങനെയെങ്കിൽ അത് പുനഃസൃഷ്ടിക്കേണ്ടതുണ്ട്.',
+	'coll-download_failed_title' => 'ഡൗൺലോഡ് ചെയ്യുമ്പോൾ പിഴവ് സംഭവിച്ചു',
+	'coll-download_failed_text' => '$1 എന്ന പ്രമാണം ഡൗൺലോഡ് ചെയ്തുകൊണ്ടിരിക്കുമ്പോൾ ഒരു പിഴവ് സംഭവിച്ചിരിക്കുന്നു',
+	'coll-is_cached' => '<ul><li>പ്രമാണത്തിന്റെ സംഭരിച്ചു വെച്ച പതിപ്പ് കണ്ടെത്താനായി, അതുകൊണ്ട് റെൻഡറിങ് ആവശ്യമില്ല.
+<a href="$1">പുനർ-റെൻഡറിങ് ചെയ്യുക.</a></li></ul>',
+	'coll-excluded-templates' => '*[[:Category:$1|$1]] എന്ന വർഗ്ഗത്തിലുൾപ്പെട്ട ഫലകങ്ങൾ ഒഴിവാക്കി.',
+	'coll-blacklisted-templates' => '*കരിമ്പട്ടികയിലുള്ള ഫലകങ്ങൾ [[:$1]] ഒഴിവാക്കിയിരിക്കുന്നു.',
 	'coll-return_to_collection' => '<p><a href="$1">$2</a></p>-ലേക്കു തിരിച്ചു പോവുക',
-	'coll-book_title' => 'അച്ചടിച്ച പുസ്തകം ഓര്‍ഡര്‍ ചെയ്യുക',
-	'coll-book_text' => 'താഴെ പ്രദര്‍ശിപ്പിച്ചിരിക്കുന്ന സേവനദാതാക്കളെ സന്ദര്‍ശിച്ച് നിങ്ങളുടെ ശേഖരത്തിന്റെ അച്ചടി രൂപം ഓര്‍ഡര്‍ ചെയ്യാവുന്നതാണ്‌:',
-	'coll-order_from_pp' => '$1-ല്‍ നിന്നു പുസ്തകം ഓര്‍ഡര്‍ ചെയ്യുക',
+	'coll-book_title' => 'അച്ചടിച്ച പുസ്തകം ഓർഡർ ചെയ്യുക',
+	'coll-book_text' => 'ഞങ്ങളുടെ ആവശ്യപ്പെട്ടാൽ-അച്ചടിച്ചു-തരുന്ന പങ്കാളിയുടെ പക്കൽ നിന്നും അച്ചടിച്ച പുസ്തകം സ്വന്തമാക്കുക.',
+	'coll-order_from_pp' => '$1 വഴി എങ്ങനെയുണ്ടെന്നു കാണുക',
 	'coll-about_pp' => '$1-നെ കുറിച്ച്',
+	'coll-invalid_podpartner_title' => 'അസാധുവായ POD പങ്കാളി',
+	'coll-invalid_podpartner_msg' => 'നൽകിയ POD പങ്കാളി അസാധുവാണ്.
+ദയവായി താങ്കളുടെ മീഡിയവിക്കി കാര്യനിർവാഹകനെ ബന്ധപ്പെടുക.',
+	'coll-license' => 'അനുമതി',
+	'coll-return_to' => '[[:$1]] താളിലേയ്ക്ക് തിരിച്ചു പോവുക',
+	'coll-more_info' => 'കൂടുതൽ വിവരങ്ങൾ പ്രദർശിപ്പിക്കുക',
+	'coll-hide_info' => 'വിവരങ്ങൾ മറയ്ക്കുക',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/പീഡിയപ്രസ്സ് ആവശ്യപ്പെടൽ വിവരങ്ങൾ',
+	'coll-suggest_title' => 'താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് നിർദ്ദേശിക്കുന്ന താളുകൾ',
+	'coll-suggest_intro_text' => 'താങ്കളുടെ പുസ്തകത്തിൽ ഇപ്പോഴുള്ള വിക്കിതാളുകളുടെ ഗണത്തെ അധിഷ്ഠിതമാക്കിയുള്ള നിർദ്ദേശങ്ങളാണിത്.
+ചേർക്കാനോ നീക്കംചെയ്യാനോ ഉള്ള ബട്ടണുകൾ ഞെക്കുമ്പോൾ പട്ടിക പുതുക്കപ്പെടുന്നതാണ്.',
+	'coll-suggested_articles' => 'നിർദ്ദേശങ്ങൾ',
+	'coll-suggest_reset_bans' => 'പുനഃക്രമീകരിക്കുക',
+	'coll-suggest_reset_bans_tooltip' => 'മുമ്പ് നീക്കം ചെയ്ത നിർദ്ദേശങ്ങൾ പ്രദർശിപ്പിക്കുക',
+	'coll-suggest_add_selected' => 'തിരഞ്ഞെടുത്ത താളുകൾ ചേർക്കുക',
+	'coll-suggest_ban_selected' => 'തിരഞ്ഞെടുത്ത താളുകൾ നീക്കംചെയ്യുക',
+	'coll-suggest_your_book' => 'താങ്കളുടെ പുസ്തകം',
+	'coll-suggest_show' => 'പ്രദർശിപ്പിക്കുക',
+	'coll-suggest_ban_tooltip' => 'ഈ താൾ നിർദ്ദേശങ്ങളുടെ പട്ടികയിൽ നിന്നും നീക്കം ചെയ്യുക',
+	'coll-suggest_article_ban' => 'നിർദ്ദേശങ്ങളിൽ നിന്നും <strong>$1</strong> എന്ന താൾ നീക്കം ചെയ്തിരിക്കുന്നു ($2).',
+	'coll-suggest_article_add' => 'താൾ <strong>$1</strong>, താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് ചേർത്തു ($2).',
+	'coll-suggest_article_remove' => 'താൾ <strong>$1</strong>, താങ്കളുടെ പുസ്തകത്തിൽ നിന്നും നീക്കം ചെയ്തു ($2).',
+	'coll-suggest_undo_tooltip' => 'ഈ പ്രവൃത്തി തിരസ്കരിക്കുക',
+	'coll-suggest_undo' => 'പ്രവൃത്തി തിരസ്കരിക്കുക',
+	'coll-load_local_book' => '%NUMPAGES% വിക്കി താളുകൾ ഉൾക്കൊള്ളുന്ന %TITLE% പുസ്തകത്തിന്റെ പ്രവൃത്തികൾ തുടരാൻ ശരി എന്നത് ഞെക്കുക. അത് മായ്ച്ച് ശൂന്യമായ പുസ്തകത്തിൽ തുടങ്ങാൻ റദ്ദാക്കുക ഞെക്കുക.',
+	'right-collectionsaveasuserpage' => 'പുസ്തകങ്ങൾ ഉപയോക്തൃതാളായി സേവ് ചെയ്യുക',
+	'right-collectionsaveascommunitypage' => 'പുസ്തകങ്ങൾ സമൂഹ താളായി സേവ് ചെയ്യുക',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'coll-show' => 'Үзүүлэх',
+	'coll-yes' => 'Тийм',
+	'coll-no' => 'Үгүй',
+	'coll-cancel' => 'Цуцлах',
+	'coll-suggest_show' => 'үзүүлэх',
+);
+
 /** Marathi (मराठी)
+ * @author Htt
+ * @author Kaajawa
  * @author Kaustubh
  * @author Mahitgar
+ * @author Prabodh1987
+ * @author Rahuldeshmukh101
+ * @author Sudhanwa
  */
 $messages['mr'] = array(
-	'coll-desc' => '[[Special:Collection|पाने गोळा करा]], पीडीएफ तयार करा',
-	'coll-collection' => 'गोळा केलेली पाने',
-	'coll-collections' => 'गोळा केलेली पाने',
-	'coll-create_a_book' => 'मी गोळा केलेली पाने',
-	'coll-add_page' => 'पानाचा समावेश करा',
-	'coll-remove_page' => 'पान काढा',
-	'coll-add_category' => 'वर्गाचा समावेश करा',
-	'coll-load_collection' => 'गोळाकेलेली पाने दाखवा',
-	'coll-show_collection' => 'गोळा केलेली पाने दाखवा',
-	'coll-help_collections' => 'पाने गोळा करण्यासाठी मदत',
+	'coll-desc' => '[[Special:Book|पुस्तक बनवा]]',
+	'coll-book_creator_intro' => '<big> ग्रंथ निर्माण द्वारा आपण आपल्या आवडीच्या विकी पानांचा ग्रंथ ग्रंथ बनू शकता. आपण ह्या ग्रंथास वेगवेगळ्या स्वरुपात निर्यात करूशकता (उदा. पी डि एफ किंवा ओ डि एफ) किंवा मुद्रित प्रतीसाठी मागणी नोंदवू शकता. </big>',
+	'coll-manage_your_book' => 'आपल्या ग्रंथाचे व्यवस्थापन करा',
+	'coll-book_creator_help' => 'अधिक माहितीसाठी [[{{MediaWiki:Coll-helppage}}|ग्रंथ संबंधी मदतीचे पृष्ठ ]]  पहा',
+	'coll-start_book_creator' => 'ग्रंथ निर्मिती सुरुकरा',
+	'coll-book_creator_continue' => 'पुस्तक निर्मात्याचा वापर चालू ठेवा',
+	'coll-book_creator_disable_text' => 'ग्रथ निर्माण अक्षम करण्यात  येईल आणि आपण ज्या ग्रंथावर काम  करीत  आहात तो ग्रंथ वगळण्यात येईल',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/ग्रंथ निर्माण मसुदा',
+	'coll-collection' => 'पुस्तके',
+	'coll-collections' => 'पुस्तके',
+	'coll-exclusion_category_title' => ' छापतांना वगळावे',
+	'coll-print_template_prefix' => 'छापा',
+	'coll-print_template_pattern' => '$1/ छापा',
+	'coll-unknown_subpage_title' => 'अनोळखी उपपान.',
+	'coll-unknown_subpage_text' => '[[Special:Book|Book]] चे  उपपान अस्तित्वात नाही',
+	'coll-couldnotaddarticle_title' => 'विकी पान वाढवता येत नाही',
+	'coll-couldnotaddarticle_msg' => 'विकी पान वाढवता येत नाही',
+	'coll-couldnotremovearticle_title' => 'विकी पान वगळता  येत नाही',
+	'coll-couldnotremovearticle_msg' => 'विकी पान वगळता  येत नाही',
 	'coll-noscript_text' => '<h1>जावास्क्रीप्ट आवश्यक!</h1>
 <strong>तुमचा ब्राउझार जावास्क्रीप्ट वापरू शकत नाही किंवा वापर बंद केलेला आहे.
 जावास्क्रीप्ट चालू केल्याशिवाय हे पान व्यवस्थित काम करणार नाही.</strong>',
-	'coll-intro_text' => 'तुम्ही काही पाने गोळा करू शकता, त्यांच्या पीडीएफ आवृत्त्या उतरवून घेऊ शकता किंवा गोळा केलेली पाने नंतर वापरण्यासाठी अथवा इतरांना देण्यासाठी जतन करून ठेऊ शकता.
-
-अधिक माहितीसाठी [[{{MediaWiki:Coll-helppage}}|पाने गोळा करण्यासाठी मदत]] पहा.',
-	'coll-helppage' => 'Help:गोळा केलेली पाने',
-	'coll-download_title' => 'गोळा केलेल्या पानांची पीडीएफ आवृत्ती उतरवून घ्या',
-	'coll-download_text' => 'तुम्ही गोळा केलेल्या पानांच्या पीडीएफ आवृत्त्या गोळा करण्यासाठी, दिलेली कळ दाबा.',
+	'coll-savedbook_template' => 'जतन केलेला ग्रंथ',
+	'coll-your_book' => 'आपला ग्रंथ',
+	'coll-download_title' => 'उतरवा',
+	'coll-download_text' => 'आपला ग्रन्थ   उतरवण्यासाठी , स्वरूप निवडा आणि  कळ दाबा',
+	'coll-download_as_text' => 'आपला ग्रन्थ $1   स्वरूपात उतरवण्यासाठी कळ दाबा',
+	'coll-download' => 'उतरवा',
+	'coll-format_label' => 'आराखडा',
 	'coll-remove' => 'वगळा',
+	'coll-show' => 'दाखवा',
 	'coll-move_to_top' => 'सर्वात वर हलवा',
 	'coll-move_up' => 'वर हलवा',
 	'coll-move_down' => 'खाली हलवा',
@@ -4467,9 +8049,9 @@
 	'coll-title' => 'शीर्षक:',
 	'coll-subtitle' => 'उपशीर्षक:',
 	'coll-contents' => 'अनुक्रमणिका',
-	'coll-create_chapter' => 'नवीन धडा बनवा',
-	'coll-sort_alphabetically' => 'अक्षरांप्रमाणे पानांचे वर्गीकरण करा',
-	'coll-clear_collection' => 'सर्व गोळा केलेली पाने पुसा',
+	'coll-drag_and_drop' => 'विकी पृष्ठे आणि अध्याय पुनःक्रमित करण्या साठी ओढा आणि सोडा',
+	'coll-create_chapter' => 'धडा बनवा',
+	'coll-sort_alphabetically' => 'अक्षरांप्रमाणे लावा',
 	'coll-rename' => 'नाव बदला',
 	'coll-new_chapter' => 'नवीन धड्याचे नाव लिहा',
 	'coll-rename_chapter' => 'नवीन धड्याचे नाव लिहा',
@@ -4477,74 +8059,132 @@
 	'coll-notitle_title' => 'या पानाचे शीर्षक ठरविता आलेले नाही.',
 	'coll-post_failed_title' => 'पोस्ट (POST) ची मागणी पूर्ण झालेली नाही',
 	'coll-post_failed_msg' => '$1 ची पोस्ट (POST) मागणी पूर्ण झालेली नाही ($2).',
+	'coll-mwserve_failed_title' => 'प्रतिपादन कार्यात त्रुटी',
+	'coll-mwserve_failed_msg' => 'कार्यात प्रतिपादनदातास  त्रूटी आढळली आहे : <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'सर्व्हर कडून चुकीचा संदेश आलेला आहे',
-	'coll-empty_collection' => 'रिकामे कलेक्शन',
+	'coll-empty_collection' => 'रिकामे ग्रंथ',
 	'coll-revision' => 'आवृत्ती: $1',
-	'coll-save_collection_title' => 'कलेक्शन जतन करा',
-	'coll-save_collection_text' => 'हे कलेक्शन नंतर वापरण्यासाठी पानाला शीर्षक देउन तसेच कलेक्शनचा प्रकार निवडून जतन करा:',
-	'coll-login_to_save' => 'जर तुम्ही कलेक्शन नंतर वापरण्यासाठी जतन करू इच्छित असाल, तर कृपया [[Special:UserLogin|प्रवेश करा अथवा सदस्य नोंदणी करा]].',
-	'coll-personal_collection_label' => 'वैयक्तिक कलेक्शन:',
-	'coll-community_collection_label' => 'सामुहिक कलेक्शन:',
-	'coll-save_collection' => 'कलेक्शन जतन करा',
+	'coll-save_collection_title' => 'ग्रंथ   जतन करा आणि सामायिक  करा',
+	'coll-save_collection_text' => 'आपल्या ग्रंथास संग्रहित करण्यासाठी जागा निवडा',
+	'coll-login_to_save' => 'जर तुम्ही ग्रंथ  नंतर वापरण्यासाठी जतन करू इच्छित असाल, तर कृपया [[Special:UserLogin|प्रवेश करा अथवा सदस्य नोंदणी करा]].',
+	'coll-personal_collection_label' => 'वैयक्तिक ग्रंथ:',
+	'coll-community_collection_label' => 'सामुहिक ग्रंथ',
+	'coll-save_collection' => 'ग्रंथ  जतन करा',
+	'coll-save_category' => '[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]. ह्या वर्गात सर्व सुरक्षित ग्रंथ जमा केले',
 	'coll-overwrite_title' => 'पान अस्तित्वात आहे. पुनर्लेखन करायचे का?',
 	'coll-overwrite_text' => '[[:$1]] या नावाचे पान अगोदरच अस्तित्वात आहे.
 तुम्ही त्यावर तुमचे कलेक्शन पुनर्लेखित करू इच्छिता का?',
 	'coll-yes' => 'होय',
 	'coll-no' => 'नाही',
-	'coll-load_overwrite_text' => 'तुमच्या कलेक्शन मध्ये अगोदरच काही पाने आहेत.
-तुम्ही तुमचे कलेक्शन पुनर्लेखित करू इच्छिता, की पाने वाढवू इच्छिता की रद्द करु इच्छिता?',
+	'coll-load_overwrite_text' => 'तुमच्या पुस्तकात अगोदरच काही पाने आहेत.
+तुम्ही तुमचे पुस्तक पुनर्लेखित करू इच्छिता, की पाने वाढवू इच्छिता, की रद्द करु इच्छिता?',
 	'coll-overwrite' => 'पुनर्लेखन करा',
 	'coll-append' => 'वाढवा',
 	'coll-cancel' => 'रद्द करा',
-	'coll-limit_exceeded_title' => 'कलेक्शन खूप मोठे झालेले आहे',
-	'coll-limit_exceeded_text' => 'तुमचे पानांचे कलेक्शन खूप मोठे झालेले आहे.
+	'coll-update' => 'अद्ययावत करा',
+	'coll-limit_exceeded_title' => '!!FUZZY!ग्रंथ खूप मोठा  झालेले आहे',
+	'coll-limit_exceeded_text' => 'तुमचे पुस्तक खूप मोठे झालेले आहे.
 आणखी पाने वाढविता येणार नाहीत.',
-	'coll-notfound_title' => 'कलेक्शन सापडले नाही',
-	'coll-notfound_text' => 'कलेक्शन पान सापडले नाही.',
+	'coll-rendering_title' => 'प्रतिपादन करीत आहे',
+	'coll-rendering_text' => '<p><strong> आपले पुस्तक तयार होत आहे. कृपया प्रतीक्षा करा. </strong></p>
+
+<p><strong>प्रगती:</strong> <span id="कामाची प्रगती">$1</span>% <span id="कामाची/सध्याची स्धिती">$2</span></p>
+
+<p>हे पान दर काही सेकंदानी आपोआप पुन्हा दाखवले जाईल.
+तसे झाले नाही तर ब्राउजर रीफ्रेश करा.</p>',
+	'coll-rendering_status' => '<strong>स्थिती:</strong> $1',
+	'coll-rendering_article' => '(विकी  पृष्ठ : $1)',
+	'coll-rendering_page' => '( पान : $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ प्रतिपादन होत असलेल्या पानाची माहिती',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ प्रतिपादणासाठी संग्रहित केलेल्या पानाची माहिती',
+	'coll-rendering_finished_title' => 'प्रतिपादन संम्पन्न',
+	'coll-rendering_finished_text' => '<strong>आपले पुस्तक तयार झाले आहे.</strong>
+<strong>[$1 तयार झालेले पुस्तक]</strong> आपल्या संगणकावर उतरवून घ्या.
+
+Notes:
+* या कामाबद्दल समाधानी नसाल तर ही [[{{MediaWiki:Coll-helppage}}| पुस्तकांबद्दलची मदतीची पाने बघा.]] अधिक चांगल्या कामासाठी त्याचा उपयोग होईल.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ प्रतिपादन होत असलेल्या पानाची माहिती',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ प्रतिपादणासाठी संग्रहित केलेल्या पानाची माहिती',
+	'coll-notfound_title' => 'पुस्तक सापडले नाही',
+	'coll-notfound_text' => 'पुस्तकातील पान सापडले नाही.',
+	'coll-download_notfound_title' => 'संचिका सापडली नाही.',
+	'coll-download_notfound_text' => 'आपण ज्य़ा सचिकेस उतरवण्याचा प्रयत्न करीत आहात ती उपलब्ध नाही.
+हि संचिका वगळण्यात आली असण्याची शक्यता असल्याने त्यास पुनर्निर्मित करण्याची गरज आहे.',
+	'coll-download_failed_title' => 'उतरवित असतांना त्रुटी',
+	'coll-download_failed_text' => 'संचिका उतरवित असतांना त्यात त्रुटी आलेल्या आहेत :  $1',
+	'coll-is_cached' => '<ul><li>पानाची सयीमधे साठवलेली प्रत मिळाली आहे, म्हणून पुन्हा पान आरेखले (render) नाही.<a href="$1">पुनश्च आरेखन करा</a></li></ul>',
+	'coll-excluded-templates' => '[[:Category:$1|$1]] ह्या वर्गातील साचे बहिष्कृत करण्यात आले आहेत',
+	'coll-blacklisted-templates' => '[[:$1]] ह्या काळ्या यादीतील  साचे बहिष्कृत करण्यात आले आहेत',
 	'coll-return_to_collection' => '<p><a href="$1">$2</a></p> कडे परत जा',
 	'coll-book_title' => 'छापील आवृत्तीची मागणी नोंदवा',
-	'coll-book_text' => 'तुम्ही खाली दिलेल्या मागणीनुसार छपाई करणार्‍या जोडीदारांच्या संकेतस्थळाला भेट देऊन तुमच्या कलेक्शन मधील पानांची छापील आवृत्ती मिळवू शकता:',
-	'coll-order_from_pp' => '$1 कडून छापील प्रत मागवा',
+	'coll-book_text' => 'आमच्या  सहयोगी मुद्रकाकडे मागणी नोंदवून आपण ग्रंथाची  छापील आवृत्ति मिळवा',
+	'coll-order_from_pp' => '$1 चे पूर्वावलोकन',
 	'coll-about_pp' => '$1 बद्दल',
 	'coll-invalid_podpartner_title' => 'चुकीचा POD भागीदार',
 	'coll-invalid_podpartner_msg' => 'दिलेला POD भागीदार चुकीचा आहे.
 कृपया मीडियाविकि प्रबंधकाशी संपर्क करा.',
+	'coll-license' => 'परवाना',
+	'coll-return_to' => '[[:$1]] कड़े परत जा',
+	'coll-more_info' => 'अधिक माहिती दाखवा',
+	'coll-hide_info' => 'माहिती लपवा',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/ पिडिया मुद्रणालयाकडे मागणी नोंदवण्याची माहिती',
+	'coll-suggest_title' => 'आपल्या ग्रंथासाठी सुचवलेली पाने',
+	'coll-suggested_articles' => 'सूचना',
+	'coll-suggest_reset_bans' => 'पूर्ववत करा',
+	'coll-suggest_reset_bans_tooltip' => 'मागील वगळलेल्या सूचना दाखवा',
+	'coll-suggest_add_selected' => 'निवडलेली पाने वाढवा',
+	'coll-suggest_ban_selected' => 'निवडलेली पाने वगळा',
+	'coll-suggest_your_book' => 'आपला ग्रंथ',
+	'coll-suggest_show' => 'दाखवा',
+	'coll-suggest_ban_tooltip' => ' सूचनांच्या यादीतून हे पान वगळा',
+	'coll-suggest_article_ban' => '<strong>$1</strong> हि पाने आपल्या ($2) ह्या  सुचवणीतून  वगळली',
+	'coll-suggest_article_add' => '<strong>$1</strong> हि पाने आपल्या ($2) ह्या  ग्रंथात जमा केलीत',
+	'coll-suggest_article_remove' => '<strong>$1</strong> हि पाने आपल्या ($2) ह्या  ग्रंथातून वगळली',
+	'coll-suggest_undo_tooltip' => 'उलटावा',
+	'coll-suggest_undo' => 'उलटवा',
+	'coll-load_local_book' => 'आपल्या %TITLE% या पुस्तकाचे संपादन चालू ठेवण्याकरीता, ज्यामध्ये %NUMPAGES% विकिपाने आहेत, OK वर टिचकी मारा. त्यास रद्द (delete) करून नव्या कोऱ्या पुस्तकाचे लिखाण चालू करण्यास Cancel वर टिचकी मारा.',
+	'right-collectionsaveasuserpage' => 'ग्रंथास सदस्य पान म्हणून जतन करा',
+	'right-collectionsaveascommunitypage' => 'ग्राथांना समाज पृष्ठ म्हणून जतन करा',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
  * @author Aviator
+ * @author Izzudin
+ * @author Kurniasan
  */
 $messages['ms'] = array(
 	'coll-desc' => '[[Special:Book|Mencipta buku]]',
+	'coll-book_creator_intro' => "<big>Dengan ''pencipta buku'', anda dapat mencipta buku yang terdiri daripada laman-laman wiki sembarangan. Anda boleh mengeksport buku dalam format-format berbeza (contohnya PDF atau ODF) ataupun memesan salinan tercetak.</big>",
+	'coll-manage_your_book' => 'Urus buku anda',
+	'coll-book_creator_help' => 'Lihat [[{{MediaWiki:Coll-helppage}}|laman bantuan tentang buku]] untuk maklumat lanjut.',
+	'coll-start_book_creator' => 'Mulakan pencipta buku',
+	'coll-book_creator_continue' => 'Terus menggunakan pencipta buku',
+	'coll-book_creator_disable_text' => "''Pencipta buku'' akan dilumpuhkan dan buku yang sedang anda kerjakan akan dihapuskan.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Teks mod buku',
 	'coll-collection' => 'Buku',
 	'coll-collections' => 'Buku',
 	'coll-exclusion_category_title' => 'Tidak dicetak',
 	'coll-print_template_prefix' => 'Cetak',
-	'coll-create_a_book' => 'Cipta buku',
-	'coll-add_page' => 'Tambah laman wiki',
-	'coll-remove_page' => 'Buang laman wiki',
-	'coll-add_category' => 'Tambah kategori',
-	'coll-load_collection' => 'Muat buku',
-	'coll-show_collection' => 'Papar buku',
-	'coll-help_collections' => 'Bantuan buku',
-	'coll-n_pages' => '$1 laman',
+	'coll-print_template_pattern' => '$1/Cetak',
 	'coll-unknown_subpage_title' => 'Sublaman tidak dikenali',
 	'coll-unknown_subpage_text' => 'Sublaman [[Special:Book|Buku]] ini tidak wujud',
-	'coll-printable_version_pdf' => 'Versi PDF',
-	'coll-download_as' => 'Muat turun $1',
+	'coll-couldnotaddarticle_title' => 'Tidak dapat menambah laman wiki',
+	'coll-couldnotaddarticle_msg' => 'Laman wiki tidak dapat ditambah.',
+	'coll-couldnotremovearticle_title' => 'Tidak dapat membuang laman wiki',
+	'coll-couldnotremovearticle_msg' => 'Laman wiki tidak dapat dibuang.',
 	'coll-noscript_text' => '<h1>JavaScript diperlukan!</h1>
-<strong>JavaScript tidak disokong oleh pelayan anda atau telah dilumpuhkan. Laman ini tidak dapat berfungsi sekiranya ciri JavaScript tidak diaktifkan.</strong>',
-	'coll-intro_text' => 'Cipta dan urus koleksi laman wiki untuk kegunaan persendirian.<br />Lihat [[{{MediaWiki:Coll-helppage}}]] untuk maklumat lanjut.',
-	'coll-helppage' => 'Help:Buku',
-	'coll-bookscategory' => 'Buku',
+<strong>JavaScript tidak disokong oleh pelayar anda atau telah dilumpuhkan. Laman ini tidak dapat berfungsi dengan betul sekiranya ciri JavaScript tidak diaktifkan.</strong>',
+	'coll-savedbook_template' => 'saved_book',
 	'coll-your_book' => 'Buku anda',
 	'coll-download_title' => 'Muat turun',
-	'coll-download_text' => 'Untuk memuat turun versi luar talian, sila pilih format dan klik butang yang berkenaan.',
-	'coll-download_as_text' => 'Untuk memuat turun versi luar talian dalam format $1, sila klik butang berikut.',
+	'coll-download_text' => 'Untuk memuat turun buku anda, pilih format dan klik butang yang berkenaan.',
+	'coll-download_as_text' => 'Untuk memuat turun buku anda dalam format $1, klik butang yang berkenaan.',
 	'coll-download' => 'Muat turun',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Buang',
-	'coll-show' => 'Papar',
+	'coll-show' => 'Paparkan',
 	'coll-move_to_top' => 'Naikkan ke puncak',
 	'coll-move_up' => 'Naikkan',
 	'coll-move_down' => 'Turunkan',
@@ -4555,8 +8195,6 @@
 	'coll-drag_and_drop' => 'Seret dan letak untuk menyusun semula laman dan bab',
 	'coll-create_chapter' => 'Cipta bab',
 	'coll-sort_alphabetically' => 'Susun mengikut tertib abjad',
-	'coll-clear_collection' => 'Kosongkan buku',
-	'coll-clear_collection_confirm' => 'Betul anda mahu mengosongkan buku anda?',
 	'coll-rename' => 'Tukar nama',
 	'coll-new_chapter' => 'Masukkan nama untuk bab baru',
 	'coll-rename_chapter' => 'Masukkan nama baru untuk bab',
@@ -4575,15 +8213,16 @@
 	'coll-personal_collection_label' => 'Buku peribadi:',
 	'coll-community_collection_label' => 'Buku komuniti:',
 	'coll-save_collection' => 'Simpan buku',
-	'coll-save_category' => 'Semua buku disimpan dalam kategori [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Semua buku tersimpan ditambah ke kategori [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Laman telah pun wujud. Tulis ganti?',
-	'coll-overwrite_text' => 'Laman dengan nama [[:$1]] telah pun wujud. Adakah anda mahu menggantikannya dengan koleksi anda?',
+	'coll-overwrite_text' => 'Laman yang bernama [[:$1]] sudah pun wujud.
+Adakah anda ingin menggantinya dengan buku anda?',
 	'coll-yes' => 'Ya',
 	'coll-no' => 'Tidak',
 	'coll-load_overwrite_text' => 'Buku anda telah pun mengandungi beberapa laman. Adakah anda mahu menulis ganti buku anda, menambah kandungan baru tersebut, atau batal?',
 	'coll-overwrite' => 'Tulis ganti',
 	'coll-append' => 'Tambah',
-	'coll-cancel' => 'Batal',
+	'coll-cancel' => 'Batalkan',
 	'coll-update' => 'Kemas kini',
 	'coll-limit_exceeded_title' => 'Buku terlalu besar',
 	'coll-limit_exceeded_text' => 'Buku anda terlalu besar dan laman tidak boleh ditambah lagi.',
@@ -4597,26 +8236,56 @@
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(laman wiki: $1)',
 	'coll-rendering_page' => '(laman: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Merender teks maklumat laman',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Merender teks maklumat koleksi',
 	'coll-rendering_finished_title' => 'Penjanaan selesai',
 	'coll-rendering_finished_text' => '<strong>Fail dokumen tersebut telah dijana.</strong>
 <strong>[$1 Muat turun fail ini]</strong> ke dalam komputer anda.
 
 Catatan:
 * Tidak berpuas hati dengan output yang dihasilkan? Lihat [[{{MediaWiki:Coll-helppage}}|laman bantuan mengenai koleksi]] untuk mengetahui bagaimana anda boleh memperbaikinya lagi.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Merender teks maklumat laman',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Merender teks maklumat koleksi',
 	'coll-notfound_title' => 'Buku tidak dijumpai',
 	'coll-notfound_text' => 'Laman buku tidak dapat dijumpai.',
-	'coll-is_cached' => '<ul><li>Versi simpanan (cache) bagi dokumen itu telah pun dijumpai, oleh itu penjanaan tidak diperlukan. <a href="$1">Arahkan penjanaan semula.</a></li></ul>',
+	'coll-download_notfound_title' => 'Tidak menemui fail',
+	'coll-download_notfound_text' => 'Fail yang anda cuba muat turun tidak wujud:
+Mungkin ia telah dipadam dan perlu dijanakan semula.',
+	'coll-download_failed_title' => 'Berlaku ralat ketika memuat turun',
+	'coll-download_failed_text' => 'Berlaku ralat ketika memuat turun fail ini: $1',
+	'coll-is_cached' => '<ul><li>Versi tercache bagi dokumen itu telah ditemui, jadi penjanaan tidak diperlukan. <a href="$1">Arahkan penjanaan semula.</a></li></ul>',
 	'coll-excluded-templates' => '* Templat-templat dalam kategori [[:Category:$1|$1]] telah dikecualikan.',
 	'coll-blacklisted-templates' => '* Templat-templat dalam senarai hitam [[:$1]] telah dikecualikan.',
 	'coll-return_to_collection' => '<p>Kembali ke <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Tempah buku bercetak',
 	'coll-book_text' => 'Dapatkan buku bercetak daripada rakan percetakan kami:',
-	'coll-order_from_pp' => 'Tempah buku daripada $1',
+	'coll-order_from_pp' => 'Pralihat dengan $1',
 	'coll-about_pp' => 'Perihal $1',
 	'coll-invalid_podpartner_title' => 'Rakan POD tidak sah',
 	'coll-invalid_podpartner_msg' => 'Rakan POD yang dibekalkan tidak sah. Sila hubungi pentadbir MediaWiki anda.',
 	'coll-license' => 'Lesen',
 	'coll-return_to' => 'Kembali ke [[:$1]]',
+	'coll-more_info' => 'Paparkan maklumat lanjut',
+	'coll-hide_info' => 'Sorokkan maklumat',
+	'coll-order_info_article' => 'Maklumat pesanan {{MediaWiki:Coll-helppage}}/PediaPress',
+	'coll-suggest_title' => 'Laman-laman cadangan untuk buku anda',
+	'coll-suggest_intro_text' => 'Cadangan-cadangan ini adalah berdasarkan laman-laman wiki semasa dalam buku anda. Senarai ini akan dikemaskinikan setiap kali anda mengklik butang tambah atau buang.',
+	'coll-suggested_articles' => 'Cadangan',
+	'coll-suggest_reset_bans' => 'set semula',
+	'coll-suggest_reset_bans_tooltip' => 'Papar cadangan-cadangan yang telah dibuang',
+	'coll-suggest_add_selected' => 'Tambah laman-laman yang dipilih',
+	'coll-suggest_ban_selected' => 'Buang laman-laman yang dipilih',
+	'coll-suggest_your_book' => 'Buku anda',
+	'coll-suggest_show' => 'paparkan',
+	'coll-suggest_ban_tooltip' => 'Buang laman ini daripada senarai cadangan',
+	'coll-suggest_article_ban' => 'Laman <strong>$1</strong> telah dibuang daripada senarai cadangan ($2).',
+	'coll-suggest_article_add' => 'Laman <strong>$1</strong> telah ditambah ke dalam buku anda ($2).',
+	'coll-suggest_article_remove' => 'Laman <strong>$1</strong> telah dibuang daripada buku anda ($2).',
+	'coll-suggest_undo_tooltip' => 'Buat asal tindakan ini',
+	'coll-suggest_undo' => 'buat asal',
+	'coll-load_local_book' => 'Klik OK untuk meneruskan dengan buku anda, %TITLE%, yang mengandungi %NUMPAGES% laman wiki. Klik Cancel untuk menghapuskannya dan mula dengan buku kosong.',
+	'right-collectionsaveasuserpage' => 'Menyimpan buku-buku sebagai laman pengguna',
+	'right-collectionsaveascommunitypage' => 'Menyimpan buku-buku sebagai laman masyarakat',
 );
 
 /** Maltese (Malti)
@@ -4630,20 +8299,73 @@
  * @author Botuzhaleny-sodamo
  */
 $messages['myv'] = array(
-	'coll-add_page' => 'Поладомс лопа',
-	'coll-add_category' => 'Поладомс категория',
+	'coll-collection' => 'Кинига',
+	'coll-collections' => 'Кинигат',
+	'coll-print_template_prefix' => 'Нолдамс',
+	'coll-download_title' => 'Таргамо',
 	'coll-download' => 'Таргамс',
+	'coll-format_label' => 'Форматозо:',
 	'coll-remove' => 'Нардык',
+	'coll-show' => 'Невтемс',
+	'coll-move_to_top' => 'Печтевтемс тёкшос',
+	'coll-move_up' => 'Печтевтемс верев',
+	'coll-move_down' => 'Печтевтемс алов',
+	'coll-move_to_bottom' => 'Печтевтемс алксонтень',
 	'coll-title' => 'Коняксозо:',
+	'coll-contents' => 'Потмокс',
 	'coll-rename' => 'Лемдемс одов',
 	'coll-no_such_category' => 'Истямо категория арась',
-	'coll-save_collection_title' => 'Ванстомс пурнавксонть',
-	'coll-community_collection_label' => 'Вейтьсэнь пурнавксось:',
+	'coll-empty_collection' => 'Чаво кинига',
+	'coll-save_collection_title' => 'Ванстомс пурнавксот ды панжомс лиятненень',
+	'coll-community_collection_label' => 'Велень-сядонь пурнавксось:',
+	'coll-save_collection' => 'Ванстомс киниганть',
 	'coll-yes' => 'Истя',
 	'coll-no' => 'Арась',
-	'coll-notfound_title' => 'Пурнавксось а муеви',
+	'coll-overwrite' => 'Нардамс сёрмадомсто',
+	'coll-notfound_title' => 'Кинигась а муеви',
+	'coll-suggested_articles' => 'Мельть-ушодкст',
+	'coll-suggest_show' => 'невтемс',
 );
 
+/** Mazanderani (مازِرونی)
+ * @author محک
+ */
+$messages['mzn'] = array(
+	'coll-book_creator_intro' => "<big>با ''کتاب‌ساج'' بنشنه کتابی بساتن که دارای صفحات دلخاه شما از ویکی‌ئه. بتونّی کتاب ره فرمت‌ئون مختلف دبه(مثل پی‌دی‌اف یا اودی‌اف) برون‌بری هاکنین یا سفارش ات کپی چاپی ره هادین.</big>",
+	'coll-manage_your_book' => 'شه کتاب ره مدیریت هاکنین',
+	'coll-book_creator_disable_text' => "''ساجنده‌ی کتاب'' غیرفعال بونه و کتابی که شما ونه سر کار کانّی حذف وونه.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/متن ساجنده‌ی کتاب',
+	'coll-collection' => 'کتاب',
+	'coll-exclusion_category_title' => 'مستثنی از چاپ',
+	'coll-print_template_prefix' => 'پرینت',
+	'coll-print_template_pattern' => 'پرینت/$1',
+	'coll-unknown_subpage_text' => 'این زیرصفحه [[Special:Book|کتاب]] جه وجود ندانّه',
+	'coll-your_book' => 'شمه کتاب',
+	'coll-empty_collection' => 'خالی کتاب',
+	'coll-personal_collection_label' => 'کتاب شخصی:',
+	'coll-community_collection_label' => 'کتاب عمومی:',
+	'coll-save_collection' => 'ذخیره هاکردن کتاب',
+	'coll-load_overwrite_text' => 'شما اسا صفحه‌ئونی شه کتاب دله دارنی.
+شما خانّی کتاب فعلی ره رونویسی هاکنین، محتوای جدید ره ونه دله دکشین یا بارگیری این کتاب ره إس هادین؟',
+	'coll-limit_exceeded_title' => 'کتاب خله خله گت هسته',
+	'coll-limit_exceeded_text' => 'شمه کتاب خله خله گته!
+شِما دیگه نتونّی ونسه صفحه بساجین.',
+	'coll-notfound_title' => 'کتاب پیدا نیّه',
+	'coll-notfound_text' => 'صفحهٔ کتاب پیدا نیّه.',
+	'coll-book_title' => 'سفارش به صورت کتاب چاپ بیی',
+	'coll-book_text' => 'با مراجعه به این شرکای چاپ-با-درخاست اتا کتاب چاپ بیی بَیرین:',
+	'coll-about_pp' => 'دربارهٔ $1',
+	'coll-invalid_podpartner_title' => 'شریک چاپ، با، درخاست غیرمجاز',
+	'coll-invalid_podpartner_msg' => 'شریک چاپ، با، درخاست معلوم بیی غیرمجاز هسته.
+لطفاً شه‌خادش، مودیر مدیاویکی جا تماس بَیرین.',
+	'coll-suggest_intro_text' => 'پیشنهادات بر پایهٔ مجموعهٔ اسایی صفحات ویکی شمه کتاب دله قرار دارنه.
+هرگادر که دکمه‌ئون اضافه هاکردن یا حذف سر کلیک هاکنین، فهرست به‌روز وونه.',
+	'coll-suggest_your_book' => 'شمه کتاب',
+	'coll-suggest_article_add' => 'صفحهٔ <strong>$1</strong> به شمه کتاب ایضافه بیّه($2).',
+	'coll-suggest_article_remove' => 'صفحهٔ <strong>$1</strong> شمه کتاب جه حذف بیی‌یه($2).',
+	'coll-load_local_book' => 'دمباله هدائن با کتاب %TITLE% که %NUMPAGES% صفحهٔ ویکی ره دانّه وسّه، پذیرش کلیک هاکنین. پاک بیّن و شروع وسّه با خالی کتاب، روی لغو کلیک هاکنین.',
+);
+
 /** Nahuatl (Nāhuatl)
  * @author Fluence
  */
@@ -4658,6 +8380,151 @@
 	'coll-update' => 'Tiquiyancuīyāz',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Boivie
+ * @author Event
+ * @author H92
+ * @author Harald Khan
+ * @author Jon Harald Søby
+ * @author Laaknor
+ * @author Nghtwlkr
+ * @author Simny
+ */
+$messages['nb'] = array(
+	'coll-desc' => '[[Special:Book|Lag bøker]]',
+	'coll-book_creator_intro' => "<big>Med ''bokfunksjonen'' kan du lage ei bok av valgfrie wikisider. Du kan eksportere boka til ulike formater, for eksempel PDF eller ODF, eller bestille en trykt kopi.</big>",
+	'coll-manage_your_book' => 'Administrer boken din',
+	'coll-book_creator_help' => 'Se [[{{MediaWiki:Coll-helppage}}|hjelpesiden om bøker]] for mer informasjon.',
+	'coll-start_book_creator' => 'Start bokfunksjonen',
+	'coll-book_creator_continue' => 'Fortsett å bruke bokskaperen',
+	'coll-book_creator_disable_text' => "''Bokskaperen'' vil bli slått av og boken du jobber med vil bli fjernet.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Bokskapertekst',
+	'coll-collection' => 'Bok',
+	'coll-collections' => 'Bøker',
+	'coll-exclusion_category_title' => 'Ekskluder ved utskrift',
+	'coll-print_template_prefix' => 'Skriv ut',
+	'coll-print_template_pattern' => '$1/Skriv ut',
+	'coll-unknown_subpage_title' => 'Ukjent underside',
+	'coll-unknown_subpage_text' => "Denne undersiden av ''[[Special:Book|Bok]]'' finnes ikke",
+	'coll-couldnotaddarticle_title' => 'Kunne ikke legge til wikiside',
+	'coll-couldnotaddarticle_msg' => 'Wikisiden kunne ikke legges til.',
+	'coll-couldnotremovearticle_title' => 'Kunne ikke fjerne wikisiden',
+	'coll-couldnotremovearticle_msg' => 'Wikisiden kunne ikke fjernes.',
+	'coll-noscript_text' => '<h1>JavaScript er påkrevd!</h1>
+<strong>Nettleseren din støtter ikke JavaScript, eller JavaScript har blitt slått av. Denne siden vil ikke fungere riktig med mindre JavaScript er slått på.</strong>',
+	'coll-savedbook_template' => 'lagret_bok',
+	'coll-your_book' => 'Din bok',
+	'coll-download_title' => 'Last ned',
+	'coll-download_text' => 'For å laste ned boken din, velg et format og trykk på knappen.',
+	'coll-download_as_text' => 'For å laste ned boken din i $1-format, trykk på knappen.',
+	'coll-download' => 'Last ned',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Fjern',
+	'coll-show' => 'Vis',
+	'coll-move_to_top' => 'Flytt til toppen',
+	'coll-move_up' => 'Flytt opp',
+	'coll-move_down' => 'Flytt ned',
+	'coll-move_to_bottom' => 'Flytt til bunnen',
+	'coll-title' => 'Tittel:',
+	'coll-subtitle' => 'Undertittel:',
+	'coll-contents' => 'Innhold',
+	'coll-drag_and_drop' => 'For å bruke dra og slipp for å endre på wikisider og kapitler',
+	'coll-create_chapter' => 'Opprett kapittel',
+	'coll-sort_alphabetically' => 'Sorter alfabetisk',
+	'coll-rename' => 'Gi nytt navn',
+	'coll-new_chapter' => 'Skriv inn navn for det nye kapittelet',
+	'coll-rename_chapter' => 'Skriv inn kapittelets nye navn',
+	'coll-no_such_category' => 'Ingen kategori ved dette navnet',
+	'coll-notitle_title' => 'Fant ikke ut av sidens tittel.',
+	'coll-post_failed_title' => 'POST-forespørsel mislyktes',
+	'coll-post_failed_msg' => 'POST-forespørselen til $1 mislyktes ($2).',
+	'coll-mwserve_failed_title' => 'Rendreringsserverfeil',
+	'coll-mwserve_failed_msg' => 'En feil oppsto på rendreringsserveren: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Feilrespons fra tjeneren',
+	'coll-empty_collection' => 'Tom bok',
+	'coll-revision' => 'Revisjon: $1',
+	'coll-save_collection_title' => 'Lagre og del boka',
+	'coll-save_collection_text' => 'Velg en plassering:',
+	'coll-login_to_save' => 'Om du vil lagre bøker for senere bruk, [[Special:UserLogin|logg inn eller opprett en konto]].',
+	'coll-personal_collection_label' => 'Personlig bok:',
+	'coll-community_collection_label' => 'Fellesskapsbok:',
+	'coll-save_collection' => 'Lagre bok',
+	'coll-save_category' => 'Alle lagrede bøker blir lagret i kategorien [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Siden finnes. Erstatte den?',
+	'coll-overwrite_text' => 'En side ved navn [[:$1]] finnes fra før. Vil du erstatte den med samlingen din?',
+	'coll-yes' => 'Ja',
+	'coll-no' => 'Nei',
+	'coll-load_overwrite_text' => 'Du har allerede noen sider i boka di.
+Vil du erstatte den eksisterende boka, legge til det nye innholdet eller avbryte lasting av boka?',
+	'coll-overwrite' => 'Erstatte',
+	'coll-append' => 'Legge til',
+	'coll-cancel' => 'Avbryt',
+	'coll-update' => 'Oppdater',
+	'coll-limit_exceeded_title' => 'Boka er for stor',
+	'coll-limit_exceeded_text' => 'Boka er for stor.
+Ingen flere sider kan legges til.',
+	'coll-rendering_title' => 'Oppretter',
+	'coll-rendering_text' => '<p><strong>Vennligst vent mens dokumentet genereres.</strong></p>
+
+<p><strong>Fremdrift:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Denne siden bør automatisk lastes på nytt med et par sekunders mellomrom. Hvis dette ikke fungerer, vennligst trykk på oppdateringsknappen i din nettleser.</p>',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(wikiside: $1)',
+	'coll-rendering_page' => '(side: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informasjonstekst om sidegjengivelse',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informasjonstekst om samlingsgjengivelse',
+	'coll-rendering_finished_title' => 'Opprettet',
+	'coll-rendering_finished_text' => '<strong>Dokumentfilen har blitt laget.</strong>
+<strong>[$1 Last ned filen]</strong> til din datamaskin.
+
+Merk:
+* Ikke fornøyd med resultatet? Se [[{{MediaWiki:Coll-helppage}}|hjelpsiden om samlinger]] for muligheter til å forbedre den.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Gjengir sideinformasjonstekst',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Gjengir samlingsinformasjonstekst',
+	'coll-notfound_title' => 'Bok ikke funnet',
+	'coll-notfound_text' => 'Kunne ikke finne bokside.',
+	'coll-download_notfound_title' => 'Fil ikke funnet',
+	'coll-download_notfound_text' => 'Filen du forsøker å laste ned finnes ikke: Kanskje den har blitt slettet eller trenger å bli regenerert.',
+	'coll-download_failed_title' => 'Feil under nedlasting',
+	'coll-download_failed_text' => 'Det oppsto en feil under nedlasting av filen: $1',
+	'coll-is_cached' => '<ul><li>En mellomlagret versjon av dokumentet ble funnet, så ingen rendrering var nødvendig. <a href="$1">Tving ny rendrering.</a></li></ul>',
+	'coll-excluded-templates' => '* Maler i kategorien [[:Category:$1|$1]] har blitt utelatt.',
+	'coll-blacklisted-templates' => '* Maler på svartelisten ([[:$1]]) har blitt utelatt.',
+	'coll-return_to_collection' => '<p>Tilbake til <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Bestill som en trykket bok',
+	'coll-book_text' => 'Få en printet bok fra vår print-på-bestilling-partner:',
+	'coll-order_from_pp' => 'Forhåndsvis med $1',
+	'coll-about_pp' => 'Om $1',
+	'coll-invalid_podpartner_title' => 'Ugyldig POD-partner',
+	'coll-invalid_podpartner_msg' => 'Den oppgitte POD-partneren er ugyldig.
+Kontakt din MediaWiki-administrator.',
+	'coll-license' => 'Lisens',
+	'coll-return_to' => 'Tilbake til [[:$1]]',
+	'coll-more_info' => 'Vis mer informasjon',
+	'coll-hide_info' => 'Skjul informasjon',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Bestillingsinformasjon PediaPress',
+	'coll-suggest_title' => 'Foreslåtte sider for boken din',
+	'coll-suggest_intro_text' => 'Forslag er basert på nåværende wikisider i boken din.
+Listen oppdateres når du klikker på legg til- eller fjern-knappene.',
+	'coll-suggested_articles' => 'Forslag',
+	'coll-suggest_reset_bans' => 'nullstill',
+	'coll-suggest_reset_bans_tooltip' => 'Vis tidligere fjernede forslag',
+	'coll-suggest_add_selected' => 'Legg til valgte sider',
+	'coll-suggest_ban_selected' => 'Fjern valgte sider',
+	'coll-suggest_your_book' => 'Din bok',
+	'coll-suggest_show' => 'vis',
+	'coll-suggest_ban_tooltip' => 'Fjern denne siden fra listen over forslag',
+	'coll-suggest_article_ban' => 'Siden <strong>$1</strong> har blitt fjernet fra forslagene ($2).',
+	'coll-suggest_article_add' => 'Siden <strong>$1</strong> har blitt lagt til boken din ($2).',
+	'coll-suggest_article_remove' => 'Siden <strong>$1</strong> har blitt fjernet fra boken din ($2).',
+	'coll-suggest_undo_tooltip' => 'Angre denne handligen',
+	'coll-suggest_undo' => 'Angre',
+	'coll-load_local_book' => 'Klikk OK for å fortsette med boken din %TITLE% som inneholder %NUMPAGES% wikisider. Klikk Avbryt for å slette den og starte med en tom bok.',
+	'right-collectionsaveasuserpage' => 'Lagre bøker som brukersider',
+	'right-collectionsaveascommunitypage' => 'Lagre bøker som samfunnsside',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -4668,24 +8535,11 @@
 	'coll-exclusion_category_title' => 'Bi’t Drucken weglaten',
 	'coll-print_template_prefix' => 'Drucken',
 	'coll-print_template_pattern' => '$1/Drucken',
-	'coll-create_a_book' => 'Book opstellen',
-	'coll-add_page' => 'Wikisied tofögen',
-	'coll-remove_page' => 'Wikisied rutnehmen',
-	'coll-add_category' => 'Kategorie tofögen',
-	'coll-load_collection' => 'Book laden',
-	'coll-show_collection' => 'Book wiesen',
-	'coll-help_collections' => 'Help to Böker',
-	'coll-n_pages' => '$1 {{PLURAL:$1|Sied|Sieden}}',
 	'coll-unknown_subpage_title' => 'Unbekannt Ünnersied',
 	'coll-unknown_subpage_text' => 'Disse Ünnersied vun dat [[Special:Book|Book]] gifft dat nich',
-	'coll-printable_version_pdf' => 'PDF-Version',
-	'coll-download_as' => 'As $1 dalladen',
 	'coll-noscript_text' => '<h1>Javascript nödig!</h1>
 <strong>Dien Browser ünnerstütt keen Javascript oder Javascript is utschalt.
 Disse Sied löppt blot richtig, wenn Javascript an is.</strong>',
-	'coll-intro_text' => 'Stell dien egen Utwahl an Sieden tohoop un verwalt jem.<br />Kiek na de [[{{MediaWiki:Coll-helppage}}|Help to Böker]] för mehr Infos.',
-	'coll-helppage' => 'Help:Böker',
-	'coll-bookscategory' => 'Böker',
 	'coll-savedbook_template' => 'Spiekert Book',
 	'coll-your_book' => 'Dien Book',
 	'coll-download_title' => 'Dalladen',
@@ -4705,8 +8559,6 @@
 	'coll-drag_and_drop' => 'Mit de Muus kannst du Sieden un Kapittels schuven un ümsorteren',
 	'coll-create_chapter' => 'Kapittel opstellen',
 	'coll-sort_alphabetically' => 'Alphabeetsch sorteren',
-	'coll-clear_collection' => 'Book leddigmaken',
-	'coll-clear_collection_confirm' => 'Wullt du dien Book worraftig leddig maken?',
 	'coll-rename' => 'Ne’en Naam geven',
 	'coll-new_chapter' => 'Ne’en Naam för dat ne’e Kapittel angeven',
 	'coll-rename_chapter' => 'Ne’en Naam för dat Kapittel angeven',
@@ -4750,13 +8602,15 @@
 	'coll-rendering_article' => '(Wikisied: $1)',
 	'coll-rendering_page' => '(Sied: $1)',
 	'coll-rendering_finished_title' => 'Rendern trech',
-	'coll-rendering_finished_text' => '<strong>De Datei is nu opstellt.</strong>
+	'coll-rendering_finished_text' => '<strong>De Datei is nu tohoopstellt.</strong>
 <strong>[$1 Datei dalladen]</strong>.
 
 Henwiesen:
-* Büst du nich tofreden mit de Datei? De Utgaav to verbetern, gifft dat Tipps bi de [[{{MediaWiki:Coll-helppage}}|Help to Böker]].',
+* Büst du nich tofreden mit de Datei? Üm de Utgaav to verbetern, gifft dat Tipps bi de [[{{MediaWiki:Coll-helppage}}|Hülp to Böker]].',
 	'coll-notfound_title' => 'Book nich funnen',
 	'coll-notfound_text' => 'Booksied kunn nich funnen warrn.',
+	'coll-download_notfound_title' => 'Datei nich funnen',
+	'coll-download_notfound_text' => 'De Datei, de du dalladen wullst, de gifft dat nich: Villicht is se wegdaan worrn oder se mutt nee opstellt warrn.',
 	'coll-is_cached' => '<ul><li>Dat geev en twischenspiekert Version vun dat Dokument, nee Rendern weer nich nödig. <a href="$1">Nu nee rendern.</a></li></ul>',
 	'coll-excluded-templates' => '* Vörlagen ut de Kategorie [[:Category:$1|$1]] sünd utslaten bleven.',
 	'coll-blacklisted-templates' => '* Vörlagen vun de Swarte List [[:$1]] sünd utslaten bleven.',
@@ -4769,6 +8623,9 @@
 	'coll-invalid_podpartner_msg' => 'De Angaven to’n Print-on-Demand-Partner sünd verkehrt. Neem Kuktakt op mit den MediaWiki-Administrater.',
 	'coll-license' => 'Lizenz',
 	'coll-return_to' => 'Trüch na [[:$1]]',
+	'coll-more_info' => 'Wies mehr Infos',
+	'coll-hide_info' => 'Informatschonen versteken',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress Bestellinformatschoon',
 );
 
 /** Nedersaksisch (Nedersaksisch)
@@ -4778,76 +8635,67 @@
 	'coll-desc' => '[[Special:Book|Boeken maken]]',
 	'coll-collection' => 'Boek',
 	'coll-collections' => 'Boeken',
-	'coll-exclusion_category_title' => "Vortlaoten bie 't ofdrokken",
-	'coll-print_template_prefix' => 'Ofdrokken',
-	'coll-print_template_pattern' => '$1/Ofdrokken',
-	'coll-create_a_book' => 'Boek maken',
-	'coll-add_page' => 'Wikipagina derbie',
-	'coll-remove_page' => 'Wikipagina deruut',
-	'coll-add_category' => 'Kattegerie derbie',
-	'coll-load_collection' => 'Boek laojen',
-	'coll-show_collection' => 'Boek laoten zien',
-	'coll-help_collections' => 'Hulpe bie boeken',
-	'coll-n_pages' => "$1 {{PLURAL:$1|pagina|pagina's}}",
+	'coll-exclusion_category_title' => 'Vortlaoten bie t aofdrokken',
+	'coll-print_template_prefix' => 'Aofdrokken',
+	'coll-print_template_pattern' => '$1/Aofdrokken',
 	'coll-unknown_subpage_title' => 'Onbekende subpagina',
-	'coll-unknown_subpage_text' => 'Disse subpagina van [[Special:Book|Boek]] besteet neet',
-	'coll-printable_version_pdf' => 'PDF-versie',
-	'coll-download_as' => 'Oflaojen as $1',
-	'coll-intro_text' => "Stel joew eigen selectie van wikipagina's samen en beheer 't.<br />Zie [[{{MediaWiki:Coll-helppage}}]] veur meer infermasie.",
-	'coll-helppage' => 'Help:Boeken',
-	'coll-bookscategory' => 'Boeken',
+	'coll-unknown_subpage_text' => 'Disse subpagina van [[Special:Book|Boek]] besteet niet',
 	'coll-savedbook_template' => 'op-esleugen_boek',
 	'coll-your_book' => 'Joew boek',
-	'coll-download_title' => 'Oflaojen',
-	'coll-download_text' => 'Um een versie van joew boek of te laojen, kies een fermaot en klik op de knoppe.',
+	'coll-download_title' => 'Binnenhaolen',
+	'coll-download_text' => 'Kies n bestaandsfermaot en klik op de knoppe um joew boek binnen te haolen.',
+	'coll-rename' => 'Herneumen',
 );
 
+/** Nepali (नेपाली)
+ * @author Bhawani Gautam
+ * @author Bhawani Gautam Rhk
+ */
+$messages['ne'] = array(
+	'coll-title' => 'शीर्षक:',
+	'coll-revision' => 'संशोधन: $1',
+	'coll-save_collection' => 'किताब संग्रह गर्ने',
+);
+
 /** Dutch (Nederlands)
- * @author Erwin85
+ * @author Erwin
  * @author GerardM
  * @author McDutchie
  * @author Mwpnl
+ * @author Romaine
  * @author SPQRobin
  * @author Siebrand
  * @author Tvdm
  */
 $messages['nl'] = array(
 	'coll-desc' => '[[Special:Book|Boeken maken]]',
+	'coll-book_creator_intro' => "<big>Met de ''Boekenmaker'' kunt u een boek maken dat wikipagina's naar uw eigen inzicht bevat.
+U kunt het boek exporteren in verschillende bestandsformaten (bijvoorbeeld PDF of ODF) of een gedrukt exemplaar bestellen.</big>",
+	'coll-manage_your_book' => 'Uw boek beheren',
+	'coll-book_creator_help' => 'Zie de [[{{MediaWiki:Coll-helppage}}|hulppagina over boeken]] voor meer informatie.',
+	'coll-start_book_creator' => 'Boekenmaker starten',
+	'coll-book_creator_continue' => 'Doorgaan met de Boekenmaker',
+	'coll-book_creator_disable_text' => "De ''Boekenmaker'' wordt uitgeschakeld en het boek waar u aan werkt wordt verwijderd.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Boekenmakertekst',
 	'coll-collection' => 'Boek',
 	'coll-collections' => 'Boeken',
 	'coll-exclusion_category_title' => 'Weglaten bij afdrukken',
 	'coll-print_template_prefix' => 'Afdruk',
 	'coll-print_template_pattern' => '$1/Afdrukken',
-	'coll-create_a_book' => 'Boek maken',
-	'coll-add_page' => 'Wikipagina toevoegen',
-	'coll-add_page_tooltip' => 'De huidige wikipagina aan uw boek toevoegen',
-	'coll-remove_page' => 'Wikipagina verwijderen',
-	'coll-remove_page_tooltip' => 'De huidige wikipagina uit uw boek verwijderen',
-	'coll-add_category' => 'Categorie toevoegen',
-	'coll-add_category_tooltip' => "Alle pagina's in deze categorie aan uw boek toevoegen",
-	'coll-load_collection' => 'Boek laden',
-	'coll-load_collection_tooltip' => 'Dit boek als uw huidige boek laden',
-	'coll-show_collection' => 'Boek weergeven',
-	'coll-show_collection_tooltip' => 'Klik om ow boek te bewerken/downloaden/bestellen',
-	'coll-help_collections' => 'Hulp bij boeken',
-	'coll-help_collections_tooltip' => 'De hulppagina voor boeken weergeven',
-	'coll-n_pages' => "$1 {{PLURAL:$1|pagina|pagina's}}",
 	'coll-unknown_subpage_title' => 'Onbekende subpagina',
 	'coll-unknown_subpage_text' => 'Deze subpagina van [[Special:Book|Boek]] bestaat niet',
-	'coll-printable_version_pdf' => 'PDF-versie',
-	'coll-download_as' => 'Downloaden als $1',
+	'coll-couldnotaddarticle_title' => 'De wikipagina kon niet toegevoegd worden',
+	'coll-couldnotaddarticle_msg' => 'De wikipagina kon niet toegevoegd worden.',
+	'coll-couldnotremovearticle_title' => 'De wikipagina kon niet verwijderd worden',
+	'coll-couldnotremovearticle_msg' => 'De wikipagina kon niet verwijderd worden.',
 	'coll-noscript_text' => '<h1>JavaScript is vereist!</h1>
-<strong>Uw browser understeunt geen JavaScript of JavaScript is uitgeschakeld.
+<strong>Uw browser ondersteunt geen JavaScript of JavaScript is uitgeschakeld.
 Deze pagina werkt niet correct tenzij u JavaScript inschakelt.</strong>',
-	'coll-intro_text' => "Maak uw eigen selectie van wikipagina's.<br />
-[[{{MediaWiki:Coll-helppage}}|Meer informatie]].",
-	'coll-helppage' => 'Help:Boeken',
-	'coll-bookscategory' => 'Boeken',
 	'coll-savedbook_template' => 'opgeslagen_boek',
 	'coll-your_book' => 'Uw boek',
 	'coll-download_title' => 'Downloaden',
-	'coll-download_text' => 'Klik op de knop om een versie van uw boek te downloaden.',
-	'coll-download_as_text' => 'Klik op de knop voor het downloaden van een offline versie in het formaat $1.',
+	'coll-download_text' => 'Kies een bestandsformaat en klik op de knop om uw boek te downloaden.',
+	'coll-download_as_text' => 'Klik op de knop om uw boek te downloaden in het bestandsformaat $1.',
 	'coll-download' => 'Downloaden',
 	'coll-format_label' => 'Formaat:',
 	'coll-remove' => 'Verwijderen',
@@ -4862,9 +8710,6 @@
 	'coll-drag_and_drop' => "U kunt de wikipagina's en hoofstukken slepen om ze te ordenen",
 	'coll-create_chapter' => 'Hoofdstuk maken',
 	'coll-sort_alphabetically' => 'Alfabetisch sorteren',
-	'coll-clear_collection' => 'Boek leegmaken',
-	'coll-clear_collection_tooltip' => "Alle pagina's uit uw huidige boek verwijderen",
-	'coll-clear_collection_confirm' => 'Wilt u uw boek werkelijk leegmaken?',
 	'coll-rename' => 'Hernoemen',
 	'coll-new_chapter' => 'Voer de naam van het nieuwe hoofdstuk in',
 	'coll-rename_chapter' => 'Voer een nieuwe naam in voor het hoofdstuk',
@@ -4883,10 +8728,10 @@
 	'coll-personal_collection_label' => 'Persoonlijk boek:',
 	'coll-community_collection_label' => 'Gemeenschappelijk boek:',
 	'coll-save_collection' => 'Boek opslaan',
-	'coll-save_category' => 'Boeken worden opgeslagen in de categorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Alle opgeslagen boeken worden toegevoegd aan de categorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'De pagina bestaat al. Overschrijven?',
-	'coll-overwrite_text' => 'Er bestaat al een pagina met de naam [[:$1]].
-Wil u die pagina vervangen door uw collectie?',
+	'coll-overwrite_text' => "Er bestaat al een pagina met de naam [[:$1]].
+Wil u die pagina vervangen door uw verzameling wikipagina's?",
 	'coll-yes' => 'Ja',
 	'coll-no' => 'Nee',
 	'coll-load_overwrite_text' => "U hebt al een aantal pagina's in uw boek.
@@ -4895,7 +8740,7 @@
 	'coll-append' => 'Toevoegen',
 	'coll-cancel' => 'Annuleren',
 	'coll-update' => 'Verversen',
-	'coll-limit_exceeded_title' => 'Boek is te groot',
+	'coll-limit_exceeded_title' => 'Het boek is te groot',
 	'coll-limit_exceeded_text' => "Uw boek is te groot.
 U kunt geen pagina's meer toevoegen.",
 	'coll-rendering_title' => 'Bezig met renderen',
@@ -4908,14 +8753,23 @@
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(wikipagina: $1)',
 	'coll-rendering_page' => '(pagina: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Paginarenderinformatie',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Verzamelingrenderinformatie',
 	'coll-rendering_finished_title' => 'Renderen afgerond',
 	'coll-rendering_finished_text' => '<strong>Het document is aangemaakt.</strong>
 <strong>[$1 Het bestand downloaden]</strong>.
 
 Opmerkingen:
-* Niet tevreden met de uitvoer? Op de [[{{MediaWiki:Coll-helppage}}|hulppagina over collecties]] staan tips om deze uitvoer te verbeteren.',
-	'coll-notfound_title' => 'Boek niet gevonden',
-	'coll-notfound_text' => 'Boekpagina is niet gevonden.',
+* Niet tevreden met de uitvoer? Op de [[{{MediaWiki:Coll-helppage}}|hulppagina over boeken]] staan tips om deze uitvoer te verbeteren.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatietekst bij renderen pagina',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatietekst bij renderen verzameling',
+	'coll-notfound_title' => 'Het boek is niet gevonden',
+	'coll-notfound_text' => 'De boekpagina is niet gevonden.',
+	'coll-download_notfound_title' => 'Het bestand is niet gevonden',
+	'coll-download_notfound_text' => 'Het bestand dat u probeert te downloaden bestaat niet.
+Het is mogelijk verwijderd en moet opnieuw aangemaakt worden.',
+	'coll-download_failed_title' => 'Fout bij het downloaden',
+	'coll-download_failed_text' => 'Er is een fout opgetreden bij het downloaden: $1',
 	'coll-is_cached' => '<ul><li>Er is een versie van het document beschikbaar in de cache, dus opnieuw renderen was niet nodig.
 <a href="$1">Opnieuw renderen.</a></li></ul>',
 	'coll-excluded-templates' => '* Sjablonen in de categorie [[:Category:$1|$1]] worden genegeerd.',
@@ -4923,13 +8777,35 @@
 	'coll-return_to_collection' => '<p>Teruggaan naar <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Als gedrukt boek bestellen',
 	'coll-book_text' => 'U kunt een gedrukt boek bestellen bij een print-on-demand-partner:',
-	'coll-order_from_pp' => 'Boek bij $1 bestellen',
+	'coll-order_from_pp' => 'Voorvertoning van $1',
 	'coll-about_pp' => 'Over $1',
 	'coll-invalid_podpartner_title' => 'Ongeldige print on demand-partner',
 	'coll-invalid_podpartner_msg' => 'De opgegeven print on demand-partner is ongeldig.
 Neem contact op met uw MediaWiki-beheerder.',
 	'coll-license' => 'Licentie',
 	'coll-return_to' => 'Terug naar [[:$1]]',
+	'coll-more_info' => 'Meer informatie weergeven',
+	'coll-hide_info' => 'Gegevens verbergen',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Bestelinformatie PediaPress',
+	'coll-suggest_title' => 'Paginasuggesties voor uw boek',
+	'coll-suggest_intro_text' => "Suggesties zijn gebaseerd op de huidige selectie van wikipagina's in uw boek.
+De lijst wordt bijgewerkt als u op de knop 'toevoegen' of 'verwijderen' klikt.",
+	'coll-suggested_articles' => 'Suggesties',
+	'coll-suggest_reset_bans' => 'opnieuw instellen',
+	'coll-suggest_reset_bans_tooltip' => 'Eerder verwijderde suggesties weergeven',
+	'coll-suggest_add_selected' => "Geselecteerde pagina's toevoegen",
+	'coll-suggest_ban_selected' => "Geselecteerde pagina's verwijderen",
+	'coll-suggest_your_book' => 'Uw boek',
+	'coll-suggest_show' => 'weergeven',
+	'coll-suggest_ban_tooltip' => 'Deze pagina uit de lijst met suggesties verwijderen',
+	'coll-suggest_article_ban' => 'De pagina <strong>$1</strong> is verwijderd uit de suggesties ($2).',
+	'coll-suggest_article_add' => 'De pagina <strong>$1</strong> is toegevoegd aan uw boek ($2).',
+	'coll-suggest_article_remove' => 'De pagina <strong>$1</strong> is verwijderd uit uw boek ($2).',
+	'coll-suggest_undo_tooltip' => 'Deze handeling ongedaan maken',
+	'coll-suggest_undo' => 'ongedaan maken',
+	'coll-load_local_book' => 'Klik "OK" om door te gaan met uw boek %TITLE% dat %NUMPAGES% wikipagina\'s bevat. Klik op "Annuleren" om het te verwijderen en opnieuw te beginnen met een leeg boek.',
+	'right-collectionsaveasuserpage' => 'Boeken opslaan als gebruikerspagina',
+	'right-collectionsaveascommunitypage' => 'Boeken opslaan als gemeenschapspagina',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
@@ -4939,34 +8815,32 @@
  */
 $messages['nn'] = array(
 	'coll-desc' => '[[Special:Book|Opprett bøker]]',
+	'coll-book_creator_intro' => "<big>Med ''bokfunksjonen'' kan du laga ei bok som inneheld wikisider du sjølv vel ut. Du kan eksportera boka til ulike format (til dømes PDF eller ODF) eller tinga ein trykt kopi.</big>",
+	'coll-manage_your_book' => 'Administrér boka di',
+	'coll-book_creator_help' => 'Sjå [[{{MediaWiki:Coll-helppage}}|hjelpesida om bøker]] for meir informasjon.',
+	'coll-start_book_creator' => 'Start bokfunksjonen',
+	'coll-book_creator_continue' => 'Hald fram med å bruka funksjonen for oppretting av bok',
+	'coll-book_creator_disable_text' => "''Bokskaparen'' vert slegen av og boka du held på med vil verta fjerna.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Bokskapartekst',
 	'coll-collection' => 'Bok',
 	'coll-collections' => 'Bøker',
 	'coll-exclusion_category_title' => 'Ekskluder ved utskrift',
 	'coll-print_template_prefix' => 'Skriv ut',
 	'coll-print_template_pattern' => '$1/Skriv ut',
-	'coll-create_a_book' => 'Opprett ei bok',
-	'coll-add_page' => 'Legg til wikisida',
-	'coll-remove_page' => 'Fjern wikisida',
-	'coll-add_category' => 'Legg til kategori',
-	'coll-load_collection' => 'Last bok',
-	'coll-show_collection' => 'Vis bok',
-	'coll-help_collections' => 'Bokhjelp',
-	'coll-n_pages' => '{{PLURAL:$1|éi sida|$1 sider}}',
 	'coll-unknown_subpage_title' => 'Ukjend undersida',
 	'coll-unknown_subpage_text' => 'Denne undersida av [[Special:Book|Bok]] finst ikkje',
-	'coll-printable_version_pdf' => 'PDF-versjon',
-	'coll-download_as' => 'Last ned som $1',
+	'coll-couldnotaddarticle_title' => 'Kunne ikkje leggja til wikiside',
+	'coll-couldnotaddarticle_msg' => 'Wikisida kunne ikkje leggjast til.',
+	'coll-couldnotremovearticle_title' => 'Kunne ikkje fjerna wikisida',
+	'coll-couldnotremovearticle_msg' => 'Wikisida kunne ikkje fjernast.',
 	'coll-noscript_text' => '<h1>JavaScript er påkravd!</h1>
 <strong>Nettlesaren din støttar ikkje JavaScript, eller JavaScript har blitt slege av. 
 Denne sida vil ikkje fungera på rett måte med mindre JavaScript er slege på.</strong>',
-	'coll-intro_text' => 'Lag og administrer di eiga samling av wikisider.<br /> Sjå [[{{MediaWiki:Coll-helppage}}]] for meir informasjon.',
-	'coll-helppage' => 'Help:Bøker',
-	'coll-bookscategory' => 'Bøker',
 	'coll-savedbook_template' => 'lagra_bok',
 	'coll-your_book' => 'Boka di',
 	'coll-download_title' => 'Last ned',
-	'coll-download_text' => 'For å lasta ned ein fråkopla versjon, vel eit format og trykk på knappen.',
-	'coll-download_as_text' => 'For å lasta ned ein versjon i $1-format, trykk på knappen.',
+	'coll-download_text' => 'For å lasta ned boka di, vel eit format og trykk på knappen.',
+	'coll-download_as_text' => 'For å lasta ned boka di i $1-format, trykk på knappen.',
 	'coll-download' => 'Last ned',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Fjern',
@@ -4981,8 +8855,6 @@
 	'coll-drag_and_drop' => 'Nytt dra og slepp for å endra på rekkjefølgja på wikisider og kapittel',
 	'coll-create_chapter' => 'Opprett kapittel',
 	'coll-sort_alphabetically' => 'Sorter alfabetisk',
-	'coll-clear_collection' => 'Tøm bok',
-	'coll-clear_collection_confirm' => 'Vil du verkeleg fjerna alle sidene i boka di?',
 	'coll-rename' => 'Gje nytt namn',
 	'coll-new_chapter' => 'Skriv inn namn for det nye kapittelet',
 	'coll-rename_chapter' => 'Skriv inn det nye namnet til kapittelet',
@@ -5001,7 +8873,7 @@
 	'coll-personal_collection_label' => 'Personleg bok:',
 	'coll-community_collection_label' => 'Fellesskapsbok:',
 	'coll-save_collection' => 'Lagra bok',
-	'coll-save_category' => 'Bøker er lagra i kategorien [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Alle lagra bøker vert lagde til i kategorien [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Sida finst.
 Skriva over ho?',
 	'coll-overwrite_text' => 'Ei sida med namnet [[:$1]] finst frå før. 
@@ -5012,191 +8884,100 @@
 Vil du erstatta den noverande boka di, leggja til det nye innhaldet eller avbryta lastinga av boka?',
 	'coll-overwrite' => 'Erstatta',
 	'coll-append' => 'Leggja til',
-	'coll-cancel' => 'Avbryta',
+	'coll-cancel' => 'Avbryt',
 	'coll-update' => 'Oppdater',
 	'coll-limit_exceeded_title' => 'Boka er for stor',
 	'coll-limit_exceeded_text' => 'Boka di er for stor.
 Fleire sider kan ikkje verta lagt til.',
 	'coll-rendering_title' => 'Opprettar',
-	'coll-rendering_text' => '<p><strong>Ver venleg og vent medan dokumentet blir oppretta.</strong></p>
+	'coll-rendering_text' => '<p><strong>Vent medan dokumentet vert oppretta.</strong></p>
 
-<p><strong>Framsteg:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+<p><strong>Framgang:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
 <p>Denne sida bør automatisk verta lasta inn på nytt med eit par sekunds mellomrom. Om dette ikkje fungerer, trykk på oppdateringsknappen i nettlesaren din.</p>',
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(wikisida: $1)',
 	'coll-rendering_page' => '(sida: $1)',
 	'coll-rendering_finished_title' => 'Oppretta',
-	'coll-rendering_finished_text' => '<strong>Dokumentfila har vorte oppretta.</strong>
+	'coll-rendering_finished_text' => '<strong>Dokumentfila er vorten oppretta.</strong>
 <strong>[$1 Last ned fila]</strong> til datamaskina di.
 
 Merk:
-* Ikkje nøgd med resultatet? Sjå [[{{Mediawiki:Coll-helppage}}|hjelpesida om samlingar]] for moglegheiter til å forbetra det.',
+* Ikkje nøgd med resultatet? Sjå [[{{MediaWiki:Coll-helppage}}|hjelpesida for bøker]] for moglegheiter til å betra det.',
 	'coll-notfound_title' => 'Boka vart ikkje funnen',
 	'coll-notfound_text' => 'Kunne ikkje finna boksida.',
-	'coll-is_cached' => '<ul><li>Ein mellomlagra versjon av dokumentet vart funnen, so ingen rendrering var naudsynleg. <a href="$1">Tving ny rendrering.</a></li></ul>',
+	'coll-download_notfound_title' => 'Fann ikkje fil',
+	'coll-download_notfound_text' => 'Fila du freistar å lasta ned finst ikkje: kan henda er ho vorten sletta og treng å verta regenerert.',
+	'coll-download_failed_title' => 'Feil i løpet av nedlastinga',
+	'coll-download_failed_text' => 'Det vart ein feil i samband med nedlasdting av fila: $1',
+	'coll-is_cached' => '<ul><li>Ein mellomlagra versjon av dokumentet vart funnen, so ingen rendering var naudsynleg. <a href="$1">Tving ny rendering.</a></li></ul>',
 	'coll-excluded-templates' => '* Malar i kategorien [[:Category:$1|$1]] har vortne utelatne.',
 	'coll-blacklisted-templates' => '* Malar på svartelista ([[:$1]]) har vortne utelatne.',
 	'coll-return_to_collection' => '<p>Attende til <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Ting som ei trykt bok',
-	'coll-book_text' => 'Få ei printa bok frå vår print-på-tinging-partnar:',
-	'coll-order_from_pp' => 'Ting bok frå $1',
+	'coll-book_text' => 'Få ei printa bok frå print-på-tinging-partnaren vår:',
+	'coll-order_from_pp' => 'Førehandsvis med $1',
 	'coll-about_pp' => 'Om $1',
 	'coll-invalid_podpartner_title' => 'Ikkje gyldig POD-partnar',
 	'coll-invalid_podpartner_msg' => 'Den oppgjevne POD-partneran er ugyldig.
 Kontakt MediaWiki-administratoren din.',
 	'coll-license' => 'Lisens',
 	'coll-return_to' => 'Attende til [[:$1]]',
+	'coll-more_info' => 'Syn meir informasjon',
+	'coll-hide_info' => 'Skjul informasjon',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress tingingsinformasjon',
+	'coll-suggest_title' => 'Framlegg til sider for boka di',
+	'coll-suggest_intro_text' => 'Framlegg er baserte på dei noverande wikisidene i boka di.
+Lista vert oppdatert kvar gong du trykkjer på «legg til»- eller «fjern»-knappen.',
+	'coll-suggested_articles' => 'Framlegg',
+	'coll-suggest_reset_bans' => 'nullstill',
+	'coll-suggest_reset_bans_tooltip' => 'Syn tidlegare fjerna framlegg',
+	'coll-suggest_add_selected' => 'Legg til valde sider',
+	'coll-suggest_ban_selected' => 'Fjern valde sider',
+	'coll-suggest_your_book' => 'Boka di',
+	'coll-suggest_show' => 'syn',
+	'coll-suggest_ban_tooltip' => 'Fjern denne sida frå lista over framlegg',
+	'coll-suggest_article_ban' => 'Sida <strong>$1</strong> er vorten fjerna frå framlegga ($2).',
+	'coll-suggest_article_add' => 'Sida <strong>$1</strong> vart lagd til i boka di ($2).',
+	'coll-suggest_article_remove' => 'Sida <strong>$1</strong> vart fjerna frå boka di ($2).',
+	'coll-suggest_undo_tooltip' => 'Gjer om denne handlinga',
+	'coll-suggest_undo' => 'gjer om',
+	'right-collectionsaveasuserpage' => 'Lagre bøker som brukarsider',
+	'right-collectionsaveascommunitypage' => 'Lagre bøker som ei sams side',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Boivie
- * @author H92
- * @author Harald Khan
- * @author Jon Harald Søby
- * @author Laaknor
- */
-$messages['no'] = array(
-	'coll-desc' => '[[Special:Book|Lag bøker]]',
-	'coll-collection' => 'Bok',
-	'coll-collections' => 'Bøker',
-	'coll-exclusion_category_title' => 'Ekskluder ved utskrift',
-	'coll-print_template_prefix' => 'Skriv ut',
-	'coll-create_a_book' => 'Opprett en bok',
-	'coll-add_page' => 'Legg til wikiside',
-	'coll-remove_page' => 'Fjern wikiside',
-	'coll-add_category' => 'Legg til kategori',
-	'coll-load_collection' => 'Last bok',
-	'coll-show_collection' => 'Vis bok',
-	'coll-help_collections' => 'Bokhjelp',
-	'coll-n_pages' => '$1 {{PLURAL:$1|side|sider}}',
-	'coll-unknown_subpage_title' => 'Ukjent underside',
-	'coll-unknown_subpage_text' => "Denne undersiden av ''[[Special:Book|Bok]]'' finnes ikke",
-	'coll-printable_version_pdf' => 'PDF-versjon',
-	'coll-download_as' => 'Last ned som $1',
-	'coll-noscript_text' => '<h1>JavaScript er påkrevd!</h1>
-<strong>Nettleseren din støtter ikke JavaScript, eller JavaScript har blitt slått av. Denne siden vil ikke fungere riktig med mindre JavaScript er slått på.</strong>',
-	'coll-intro_text' => 'Lag og administrer din egen samling av wikisider.<br /> Se [[{{MediaWiki:Coll-helppage}}]] for mer informasjon.',
-	'coll-helppage' => 'Help:Bøker',
-	'coll-bookscategory' => 'Bøker',
-	'coll-savedbook_template' => 'lagret_bok',
-	'coll-your_book' => 'Din bok',
-	'coll-download_title' => 'Last ned',
-	'coll-download_text' => 'For å laste ned en offline-versjon velg et format og trykk på knappen.',
-	'coll-download_as_text' => 'For å laste ned en versjon i $1-format, trykk på knappen.',
-	'coll-download' => 'Last ned',
-	'coll-format_label' => 'Format:',
-	'coll-remove' => 'Fjern',
-	'coll-show' => 'Vis',
-	'coll-move_to_top' => 'Flytt til toppen',
-	'coll-move_up' => 'Flytt opp',
-	'coll-move_down' => 'Flytt ned',
-	'coll-move_to_bottom' => 'Flytt til bunnen',
-	'coll-title' => 'Tittel:',
-	'coll-subtitle' => 'Undertittel:',
-	'coll-contents' => 'Innhold',
-	'coll-drag_and_drop' => 'For å bruke dra og slipp for å endre på wikisider og kapitler',
-	'coll-create_chapter' => 'Opprett kapittel',
-	'coll-sort_alphabetically' => 'Sorter alfabetisk',
-	'coll-clear_collection' => 'Tøm bok',
-	'coll-clear_collection_confirm' => 'Vil du virkelig tømme boka?',
-	'coll-rename' => 'Gi nytt navn',
-	'coll-new_chapter' => 'Skriv inn navn for det nye kapittelet',
-	'coll-rename_chapter' => 'Skriv inn kapittelets nye navn',
-	'coll-no_such_category' => 'Ingen kategori ved dette navnet',
-	'coll-notitle_title' => 'Fant ikke ut av sidens tittel.',
-	'coll-post_failed_title' => 'POST-forespørsel mislyktes',
-	'coll-post_failed_msg' => 'POST-forespørselen til $1 mislyktes ($2).',
-	'coll-mwserve_failed_title' => 'Rendreringsserverfeil',
-	'coll-mwserve_failed_msg' => 'En feil oppsto på rendreringsserveren: <nowiki>$1</nowiki>',
-	'coll-error_reponse' => 'Feilrespons fra tjeneren',
-	'coll-empty_collection' => 'Tom bok',
-	'coll-revision' => 'Revisjon: $1',
-	'coll-save_collection_title' => 'Lagre og del boka',
-	'coll-save_collection_text' => 'Velg en plassering:',
-	'coll-login_to_save' => 'Om du vil lagre bøker for senere bruk, [[Special:UserLogin|logg inn eller opprett en konto]].',
-	'coll-personal_collection_label' => 'Personlig bok:',
-	'coll-community_collection_label' => 'Fellesskapsbok:',
-	'coll-save_collection' => 'Lagre bok',
-	'coll-save_category' => 'Bøker lagres i kategorien [[:Category:{{MediaWiki:Coll-collection}}|{{MediaWiki:Coll-collection}}]].',
-	'coll-overwrite_title' => 'Siden finnes. Erstatte den?',
-	'coll-overwrite_text' => 'En side ved navn [[:$1]] finnes fra før. Vil du erstatte den med samlingen din?',
-	'coll-yes' => 'Ja',
-	'coll-no' => 'Nei',
-	'coll-load_overwrite_text' => 'Du har allerede noen sider i boka di.
-Vil du erstatte den eksisterende boka, legge til det nye innholdet eller avbryte lasting av boka?',
-	'coll-overwrite' => 'Erstatte',
-	'coll-append' => 'Legge til',
-	'coll-cancel' => 'Avbryt',
-	'coll-update' => 'Oppdater',
-	'coll-limit_exceeded_title' => 'Boka er for stor',
-	'coll-limit_exceeded_text' => 'Boka er for stor.
-Ingen flere sider kan legges til.',
-	'coll-rendering_title' => 'Oppretter',
-	'coll-rendering_text' => '<p><strong>Venligst vent mens dokumentet genereres.</strong></p>
-
-<p><strong>Fremskritt:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
-
-<p>Denne siden bør automatisk lastes på nytt med et par sekunders mellomrom. Hvis dette ikke fungerer, trykk på oppdateringsknappen i din nettleser.</p>',
-	'coll-rendering_status' => '<strong>Status:</strong> $1',
-	'coll-rendering_article' => '(wikiside: $1)',
-	'coll-rendering_page' => '(side: $1)',
-	'coll-rendering_finished_title' => 'Opprettet',
-	'coll-rendering_finished_text' => '<strong>Dokumentfilen har blitt laget.</strong>
-<strong>[$1 Last ned filen]</strong> til din datamaskin.
-
-Merk:
-* Ikke fornøyd med resultatet? Se [[{{MediaWiki:Coll-helppage}}|hjelpsiden om samlinger]] for muligheter til å forbedre den.',
-	'coll-notfound_title' => 'Bok ikke funnet',
-	'coll-notfound_text' => 'Kunne ikke finne bokside.',
-	'coll-is_cached' => '<ul><li>En mellomlagret versjon av dokumentet ble funnet, så ingen rendrering var nødvendig. <a href="$1">Tving ny rendrering.</a></li></ul>',
-	'coll-excluded-templates' => '* Maler i kategorien [[:Category:$1|$1]] har blitt utelatt.',
-	'coll-blacklisted-templates' => '* Maler på svartelisten ([[:$1]]) har blitt utelatt.',
-	'coll-return_to_collection' => '<p>Tilbake til <a href="$1">$2</a></p>',
-	'coll-book_title' => 'Bestill som en trykket bok',
-	'coll-book_text' => 'Få en printet bok fra vår print-på-bestilling-partner:',
-	'coll-order_from_pp' => 'Bestill bok fra $1',
-	'coll-about_pp' => 'Om $1',
-	'coll-invalid_podpartner_title' => 'Ugyldig POD-partner',
-	'coll-invalid_podpartner_msg' => 'Den oppgitte POD-partneren er ugyldig.
-Kontakt din MediaWiki-administrator.',
-	'coll-license' => 'Lisens',
-	'coll-return_to' => 'Tilbake til [[:$1]]',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
+ * @author Jfblanc
  */
 $messages['oc'] = array(
 	'coll-desc' => '[[Special:Book|Crear de libres]]',
+	'coll-book_creator_intro' => "<big>Amb lo ''mòde libre'' podètz crear un libre que se compausa de paginas del wiki qu'auretz causidas. Podètz exportar vòstre libre en de formats diferents (per exemple PDF o ODF) o comandar una còpia estampada.</big>",
+	'coll-manage_your_book' => 'Gerir vòstre libre',
+	'coll-book_creator_help' => "Vejatz [[{{MediaWiki:Coll-helppage}}|la pagina d'ajuda suls libres]] per mai d'entresenhas.",
+	'coll-start_book_creator' => 'Aviar lo mòde libre',
+	'coll-book_creator_continue' => 'Contunhar en utilizant lo creator de libres',
+	'coll-book_creator_disable_text' => "Lo ''creator de libres'' serà desactivat e los libres suls quals trabalhatz seràn suprimits de la sesilha de vòstre navigador.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tèxte del mòde libre',
 	'coll-collection' => 'Libre',
 	'coll-collections' => 'Libres',
 	'coll-exclusion_category_title' => "Exclaure al moment de l'estampatge",
 	'coll-print_template_prefix' => 'Estampar',
 	'coll-print_template_pattern' => '$1/Print',
-	'coll-create_a_book' => 'Crear un libre',
-	'coll-add_page' => 'Apondre una pagina wiki',
-	'coll-remove_page' => 'Levar una pagina wiki',
-	'coll-add_category' => 'Apondre una categoria',
-	'coll-load_collection' => 'Cargar un libre',
-	'coll-show_collection' => 'Afichar lo libre',
-	'coll-help_collections' => 'Ajuda suls libres',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|paginas}}',
 	'coll-unknown_subpage_title' => 'Sospagina desconeguda',
 	'coll-unknown_subpage_text' => 'Aquesta sospagina de [[Special:Book|libre]] existís pas',
-	'coll-printable_version_pdf' => 'Version del PDF',
-	'coll-download_as' => 'Telecargat coma $1',
+	'coll-couldnotaddarticle_title' => 'Impossible d’apondre la pagina del wiki',
+	'coll-couldnotaddarticle_msg' => 'La pagina del wiki pòt pas èsser aponduda.',
+	'coll-couldnotremovearticle_title' => 'Impossible de suprimir la pagina del wiki',
+	'coll-couldnotremovearticle_msg' => 'La pagina del wiki pòt pas èsser levada.',
 	'coll-noscript_text' => "<h1>Javascript es necessari !</h1>
 <strong>Vòstre navigador supòrta pas Javascript o se l'a desactivat.
 Aquesta pagina s'aficharà pas corrèctament tant que javascript serà pas activat.</strong>",
-	'coll-intro_text' => "Crear e gerir vòstra seleccion individuala de paginas wiki..<br />Vejatz [[{{MediaWiki:Coll-helppage}}|la pagina d'ajuda sus las colleccions]] per mai d'informacions.",
-	'coll-helppage' => 'Help:Libres',
-	'coll-bookscategory' => 'Libres',
 	'coll-savedbook_template' => 'libre_salvat',
 	'coll-your_book' => 'Vòstre libre',
 	'coll-download_title' => 'Telecargar',
-	'coll-download_text' => 'Per telecargar una version fòra de linha causissètz un format e picatz sul boton.',
-	'coll-download_as_text' => 'Per telecargar una version fòra-linha dins lo format $1 clicatz sul boton.',
+	'coll-download_text' => 'Per telecargar vòstre libre, causissètz un format e picatz sul boton.',
+	'coll-download_as_text' => 'Per telecargar una version de vòstre libre al format $1 clicatz sul boton.',
 	'coll-download' => 'Telecargar',
 	'coll-format_label' => 'Format :',
 	'coll-remove' => 'Levar',
@@ -5211,8 +8992,6 @@
 	'coll-drag_and_drop' => 'Utilizar lissar-depausar per reordenar las paginas e los capítols wiki.',
 	'coll-create_chapter' => 'Crear un capítol',
 	'coll-sort_alphabetically' => 'Triar per òrdre alfabetic',
-	'coll-clear_collection' => 'Voidar lo libre',
-	'coll-clear_collection_confirm' => 'Volètz vertadièrament escafar l’integralitat de vòstre libre ?',
 	'coll-rename' => 'Tornar nomenar',
 	'coll-new_chapter' => 'Entrar lo títol del capitol novèl',
 	'coll-rename_chapter' => 'Entrar lo títol novèl pel capitol',
@@ -5227,11 +9006,11 @@
 	'coll-revision' => 'Version : $1',
 	'coll-save_collection_title' => 'Salvar e partejar vòstre libre',
 	'coll-save_collection_text' => 'Causissètz un emplaçament :',
-	'coll-login_to_save' => 'Se volètz salvar vòstre libre, [[Special:UserLogin|vos cal vos connectar o vos crear un compte]].',
+	'coll-login_to_save' => 'Se volètz salvar vòstre libre, [[Special:UserLogin|vos cal connectar o vos crear un compte]].',
 	'coll-personal_collection_label' => 'Libre personal :',
 	'coll-community_collection_label' => 'Libre collectiu :',
 	'coll-save_collection' => 'Salvar lo libre',
-	'coll-save_category' => 'Los libres son salvats dins la categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Totes los libres son salvats dins la categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => "La pagina existís. L'espotir ?",
 	'coll-overwrite_text' => 'Una pagina amb lo títol [[:$1]] existís ja.
 La volètz remplaçar per vòstra compilacion ?',
@@ -5256,42 +9035,185 @@
 	'coll-rendering_status' => '<strong>Estatut :</strong> $1',
 	'coll-rendering_article' => '(pagina wiki : $1)',
 	'coll-rendering_page' => '(pagina : $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Tèxte d'informacion sul rendut de las paginas",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Tèxte d'informacion sul rendut de las colleccions",
 	'coll-rendering_finished_title' => 'Rendut acabat',
 	'coll-rendering_finished_text' => '<strong>Lo fichièr document es estat creat.</strong>
 <strong>[$1 Telecargatz-lo]</strong> sus vòstre ordenador.
 
 Nòtas :
 * Pas satisfach(a) de la sortida ? Vejatz [[{{MediaWiki:Coll-helppage}}|la pagina d’ajuda que concernís las colleccions]] per las possibilitats de melhorament.',
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rendut del tèxte d'informacion de la pagina",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rendut del tèxte d'informacion de la colleccion",
 	'coll-notfound_title' => 'Libre pas trobat',
 	'coll-notfound_text' => 'Pòt pas trobar lo libre.',
-	'coll-is_cached' => '<ul><li>Una version en amagatal del document es estada trobada, cap de rendut èra pas necessari. <a href="$1">Forçar lo rendut un còp de mai.</a></li></ul>',
+	'coll-download_notfound_title' => 'Fichièr introbable',
+	'coll-download_notfound_text' => "Lo fichièr qu'ensajatz de telecargar existís pas : benlèu es estat suprimit e deu èsser generit tornamai.",
+	'coll-download_failed_title' => 'Error al moment del telecargament',
+	'coll-download_failed_text' => "Una error s'es producha pendent lo telecargament del fichièr : $1",
+	'coll-is_cached' => '<ul><li>Una version en escondedor del document es estada trobada, cap de rendut èra pas necessari. <a href="$1">Forçar lo rendut un còp de mai.</a></li></ul>',
 	'coll-excluded-templates' => '* De modèls dins la categoria [[:Category:$1|$1]] son estats excluts.',
 	'coll-blacklisted-templates' => '* De modèls dins la tièra negra [[:$1]] son estats excluts.',
 	'coll-return_to_collection' => '<p>Tornar a <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Comandar tal coma un libre estampat',
 	'coll-book_text' => 'Obtenètz un libre estampat a partir de vòstre partenari d’estampatge a la demanda :',
-	'coll-order_from_pp' => 'Comandar lo libre dempuèi $1',
+	'coll-order_from_pp' => 'Apercebut amb $1',
 	'coll-about_pp' => 'A prepaus de $1',
 	'coll-invalid_podpartner_title' => 'Partenari POD incorrècte.',
 	'coll-invalid_podpartner_msg' => 'Lo partenari POD indicat es incorrècte.
 Contactatz vòstre administrator MediaWiki.',
 	'coll-license' => 'Licéncia',
 	'coll-return_to' => 'Tornar cap a [[:$1]]',
+	'coll-more_info' => 'Afichar d’autras informacions',
+	'coll-hide_info' => 'Amagar las informacions',
+	'coll-order_info_article' => "{{MediaWiki:Coll-helppage}}/PediaPress comandar d'informacions",
+	'coll-suggest_title' => 'Paginas suggeridas per vòstre libre',
+	'coll-suggest_intro_text' => "Las suggestions son fondadas sus l'ensemble de las paginas wiki actualament dins vòstre libre.
+La lista es mesa a jorn a cada còp que clicatz suls botons d'apondon o de supression.",
+	'coll-suggested_articles' => 'Suggestions',
+	'coll-suggest_reset_bans' => 'reïnicializar',
+	'coll-suggest_reset_bans_tooltip' => 'Far veire las suggestions suprimidas precedentament',
+	'coll-suggest_add_selected' => 'Apondre las paginas seleccionadas',
+	'coll-suggest_ban_selected' => 'Suprimir las paginas seleccionadas',
+	'coll-suggest_your_book' => 'Vòstre libre',
+	'coll-suggest_show' => 'afichar',
+	'coll-suggest_ban_tooltip' => 'Suprimir aquesta pagina de la lista de las suggestions',
+	'coll-suggest_article_ban' => 'La pagina <strong>$1</strong> es estada levada de las suggestions ($2).',
+	'coll-suggest_article_add' => 'La pagina <strong>$1</strong> es estada aponduda a vòstre libre ($2).',
+	'coll-suggest_article_remove' => 'La pagina <strong>$1</strong> es estada levada de vòstre libre ($2).',
+	'coll-suggest_undo_tooltip' => 'Desfar aquesta accion',
+	'coll-suggest_undo' => 'desfar',
+	'right-collectionsaveasuserpage' => "Salvar de libres sus de paginas d'utilizaire",
+	'right-collectionsaveascommunitypage' => 'Salvar de libres sus de paginas comunautàrias',
 );
 
-/** Ossetic (Иронау)
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Ansumang
+ * @author Jnanaranjan Sahu
+ * @author Odisha1
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'coll-desc' => '[[Special:Book|ବହି ତିଆରି]]',
+	'coll-manage_your_book' => 'ଆପଣଙ୍କ ବହିକୁ ପରିଚାଳନା କରିବେ',
+	'coll-start_book_creator' => 'ବହି ତିଆରି ଆରମ୍ଭ କରିବେ',
+	'coll-collection' => 'ବହି',
+	'coll-collections' => 'ବହିସବୁ',
+	'coll-exclusion_category_title' => 'ପ୍ରିଣ୍ଟରୁ ବାହାରେ ରଖିବେ',
+	'coll-print_template_prefix' => 'ପ୍ରିଣ୍ଟ',
+	'coll-print_template_pattern' => '$1/ମୁଦ୍ରଣ',
+	'coll-unknown_subpage_title' => 'ଅଜଣା ଉପପୃଷ୍ଠା',
+	'coll-unknown_subpage_text' => '[[Special:Book|Book]]ର ଏହି ଉପପୃଷ୍ଠାଟି ଉପଲବ୍ଧ ନାହିଁ',
+	'coll-couldnotaddarticle_title' => 'ଉଇକିପୃଷ୍ଠା ଯୋଡାଯାଇପାରିଲା ନାହିଁ',
+	'coll-couldnotaddarticle_msg' => 'ଉଇକି ପ୍ରୁଷ୍ଠାଟି ଯୋଡାଯାଇପାରିଲା ନାହିଁ ।',
+	'coll-couldnotremovearticle_title' => 'ଉଇକି ପୃଷ୍ଠା ବାହାର କରିହେଲା ନାହିଁ',
+	'coll-couldnotremovearticle_msg' => 'ଉଇକି ପୃଷ୍ଠାଟିକୁ ବାହାର କରାଯାଇ ପାରିବ ନାହିଁ ।',
+	'coll-savedbook_template' => 'ସାଇତା_ବହି',
+	'coll-your_book' => 'ଆପଣଙ୍କର ବହି',
+	'coll-download_title' => 'ଡାଉନଲୋଡ',
+	'coll-download' => 'ଡାଉନଲୋଡ',
+	'coll-format_label' => 'ସଜାଣି:',
+	'coll-remove' => 'ବାହାର କରିବା',
+	'coll-show' => 'ଦେଖାଇବେ',
+	'coll-move_to_top' => 'ଉପରକୁ ଯାଆନ୍ତୁ',
+	'coll-move_up' => 'ଉପରକୁ ଉଠିବେ',
+	'coll-move_down' => 'ତଳକୁ ଯିବେ',
+	'coll-move_to_bottom' => 'ତଳକୁ ଘୁଞ୍ଚାଇବେ',
+	'coll-title' => 'ଶିରୋନାମା:',
+	'coll-subtitle' => 'ଉପନାମ:',
+	'coll-contents' => 'ଭିତର ଚିଜ',
+	'coll-create_chapter' => 'ବିଭାଗ ତିଆରିବେ',
+	'coll-sort_alphabetically' => 'ଅକ୍ଷରର କ୍ରମ ଅନୁସାରେ ସଜାଇବେ',
+	'coll-rename' => 'ନାମବଦଳା',
+	'coll-new_chapter' => 'ନୂଆ ବିଭାଗ ପାଇଁ ନାମ ଦିଅନ୍ତୁ',
+	'coll-rename_chapter' => 'ବିଭାଗ ପାଇଁ ନୂଆ ନାମ ଦିଅନ୍ତୁ',
+	'coll-no_such_category' => 'ସେଭଳି କିଛି ଶ୍ରେଣୀ ନାହିଁ',
+	'coll-notitle_title' => 'ପୃଷ୍ଠାର ନାମ ସ୍ଥିର କରାଯାଇପାରିବ ନାହିଁ ।',
+	'coll-post_failed_title' => 'POST ଅନୁରୋଧ ବିଫଳ ହେଲା',
+	'coll-post_failed_msg' => '$1କୁ ସବୁଯାକ POST ଅନୁରୋଧ ବିଫଳ ହେଲା ($2) ।',
+	'coll-mwserve_failed_title' => 'ରେଣ୍ଡର ସର୍ଭର ଭୁଲ',
+	'coll-empty_collection' => 'ଖାଲି ବହି',
+	'coll-revision' => 'ପୁନରାବୃତ୍ତି: $1',
+	'coll-save_collection_title' => 'ଆପଣଙ୍କ ବହିକୁ ସାଇତିବେ ଓ ଅନ୍ୟମାନଙ୍କ ସହ ବାଣ୍ଟିବେ',
+	'coll-personal_collection_label' => 'ନିଜର ବହି:',
+	'coll-save_collection' => 'ବହି ସାଇତିବେ',
+	'coll-yes' => 'ହଁ',
+	'coll-no' => 'ନାହିଁ',
+	'coll-overwrite' => 'ନବଲିଖନ',
+	'coll-append' => 'ଅନ୍ତ ସଂଯୁକ୍ତି',
+	'coll-cancel' => 'ନାକଚ',
+	'coll-update' => 'ଅପଡେଟ',
+	'coll-rendering_status' => '<strong>ସ୍ଥିତି:</strong> $1',
+	'coll-rendering_page' => '(ପୃଷ୍ଠା: $1)',
+	'coll-download_notfound_title' => 'ଫାଇଲ ମିଳିଲା ନାହିଁ',
+	'coll-download_failed_title' => 'ଡ଼ାଉନଲୋଡ଼ ସମୟରେ ତ୍ରୁଟି',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a>କୁ ଫେରିଯାଆନ୍ତୁ</p>',
+	'coll-order_from_pp' => '$1 ସହ ଦେଖଣା',
+	'coll-about_pp' => 'ବାବଦରେ $1',
+	'coll-invalid_podpartner_title' => 'ଅଚଳ POD ପାର୍ଟନର',
+	'coll-license' => 'ଲାଇସେନ୍ସ',
+	'coll-return_to' => '[[:$1]]କୁ ଫେରିଯିବେ',
+	'coll-more_info' => 'ଅଧିକ ବିବରଣୀ ଦେଖାଇବେ',
+	'coll-hide_info' => 'ତଥ୍ୟ ଲୁଚାନ୍ତୁ',
+	'coll-suggested_articles' => 'ପ୍ରସ୍ତାବ',
+	'coll-suggest_reset_bans' => 'ପୁନସ୍ଥାପନ',
+	'coll-suggest_reset_bans_tooltip' => 'ଆଗରୁ ଦିଆଯାଇଥିବା ମତଗୁଡିକୁ ଦେଖାଇବେ',
+	'coll-suggest_add_selected' => 'ବାଛିଥିବା ପୃଷ୍ଠାଗୁଡିକୁ ଯୋଡନ୍ତୁ',
+	'coll-suggest_ban_selected' => 'ବାଛିଥିବା ପୃଷ୍ଠାଗୁଡିକୁ ହଟାଇବେ',
+	'coll-suggest_your_book' => 'ଆପଣଙ୍କର ବହି',
+	'coll-suggest_show' => 'ଦେଖାଇବେ',
+	'coll-suggest_ban_tooltip' => 'ମତାମତ ତାଲିକାରୁ ଏହି ପୃଷ୍ଠାଟିକୁ ହଟାଇବେ',
+	'coll-suggest_article_ban' => 'ପୃଷ୍ଠା <strong>$1</strong>ପ୍ରସ୍ତାବିତ ପୃଷ୍ଠାରୁ ହଟାଇ ଦିଆଯାଇଛି ($2) ।',
+	'coll-suggest_article_add' => 'ପୃଷ୍ଠା <strong>$1</strong> ଆପଣଙ୍କ ବହିରେ ଯୋଡ଼ି ଦିଆଯାଇଛି ($2) ।',
+	'coll-suggest_article_remove' => 'ପୃଷ୍ଠା <strong>$1</strong>ଆପଣଙ୍କ ବହିରୁ ହଟାଇ ଦିଆଯାଇଛି ($2) ।',
+	'coll-suggest_undo_tooltip' => 'ଏହି କାମଟିକୁ କରିବେ ନାହିଁ',
+	'coll-suggest_undo' => 'ପଛକୁ ଫେରିବା',
+);
+
+/** Ossetic (Ирон)
  * @author Amikeco
+ * @author Bouron
  */
 $messages['os'] = array(
-	'coll-download_as' => 'Æрбавгæн куыд $1',
 	'coll-download_title' => 'Æрбавгæн',
 	'coll-download' => 'Æрбавгæн',
 	'coll-title' => 'Сæргонд:',
 	'coll-yes' => 'О',
 	'coll-no' => 'Нæ',
-	'coll-cancel' => 'Нæ бæззы',
+	'coll-cancel' => 'Ныууадзын',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'coll-collection' => 'Buch',
+	'coll-collections' => 'Bicher',
+	'coll-print_template_prefix' => 'Drucke',
+	'coll-print_template_pattern' => '$1/Druck',
+	'coll-your_book' => 'Dei Buch',
+	'coll-download_title' => 'Runnerlaade',
+	'coll-download' => 'Runnerlaade',
+	'coll-remove' => 'Lösche',
+	'coll-show' => 'Zeige',
+	'coll-title' => 'Titel:',
+	'coll-rename' => 'Naame ennere',
+	'coll-empty_collection' => 'Leeres Buch',
+	'coll-revision' => 'Version: $1',
+	'coll-yes' => 'Ya',
+	'coll-no' => 'Nee',
+	'coll-overwrite' => 'Iwwerschreiwe',
+	'coll-limit_exceeded_title' => 'Buch zu gross',
+	'coll-rendering_article' => '(Wikiblatt: $1)',
+	'coll-rendering_page' => '(Blatt: $1)',
+	'coll-about_pp' => 'Iwwer $1',
+	'coll-return_to' => 'Zerick zu [[:$1]]',
+	'coll-suggest_your_book' => 'Dei Buch',
+	'coll-suggest_show' => 'zeige',
+	'coll-suggest_undo_tooltip' => 'Die Aktion losmache',
+	'coll-suggest_undo' => 'losmache',
+);
+
 /** Polish (Polski)
  * @author Derbeth
  * @author Jwitos
@@ -5303,41 +9225,33 @@
  * @author Wpedzich
  */
 $messages['pl'] = array(
-	'coll-desc' => '[[Special:Book|Utworzenie książki]]',
+	'coll-desc' => '[[Special:Book|Tworzenie książki]]',
+	'coll-book_creator_intro' => "<big>W trybie ''kompletowania książki'' możesz utworzyć książkę z wybranych stron wiki. Książkę możesz wyeksportować w różnych formatach (np. PDF czy ODF) lub zamówić jej wydrukowaną kopię.</big>",
+	'coll-manage_your_book' => 'Zarządzaj swoją książką',
+	'coll-book_creator_help' => 'Więcej informacji odnajdziesz na stronie [[{{MediaWiki:Coll-helppage}}|pomocy dotyczącej książek]].',
+	'coll-start_book_creator' => 'Włącz kreatora książki',
+	'coll-book_creator_continue' => 'Chcę nadal korzystać z kreatora książki',
+	'coll-book_creator_disable_text' => "''Kreator książki'' zostanie wyłączony, a książka nad którą pracowałeś zostanie usunięta.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst trybu książki',
 	'coll-collection' => 'Książka',
 	'coll-collections' => 'Książki',
 	'coll-exclusion_category_title' => 'Omiń w druku',
 	'coll-print_template_prefix' => 'Drukuj',
 	'coll-print_template_pattern' => '$1/Wydruk',
-	'coll-create_a_book' => 'Utwórz książkę',
-	'coll-add_page' => 'Dodaj stronę',
-	'coll-add_page_tooltip' => 'Dodaj bieżącą stronę wiki do książki',
-	'coll-remove_page' => 'Usuń stronę',
-	'coll-remove_page_tooltip' => 'Usuń bieżącą stronę wiki z książki',
-	'coll-add_category' => 'Dodaj kategorię',
-	'coll-add_category_tooltip' => 'Dodaj wszystkie strony wiki znajdujące się w tej kategorii do książki',
-	'coll-load_collection' => 'Załaduj książkę',
-	'coll-load_collection_tooltip' => 'Załaduj tę książkę jako bieżącą',
-	'coll-show_collection' => 'Pokaż książkę',
-	'coll-show_collection_tooltip' => 'Kliknij aby edytować, pobrać lub zamówić książkę',
-	'coll-help_collections' => 'Książki – pomoc',
-	'coll-help_collections_tooltip' => 'Pokaż pomoc dla narzędzia tworzenia książek',
-	'coll-n_pages' => '$1 {{PLURAL:$1|strona|strony|stron}}',
 	'coll-unknown_subpage_title' => 'Nieznana podstrona',
 	'coll-unknown_subpage_text' => 'Podstrona należąca do [[Special:Book|książki]] nie istnieje',
-	'coll-printable_version_pdf' => 'Wersja PDF',
-	'coll-download_as' => 'Pobierz jako $1',
+	'coll-couldnotaddarticle_title' => 'Nie można było dodać strony wiki',
+	'coll-couldnotaddarticle_msg' => 'Strona wiki nie może zostać dodana.',
+	'coll-couldnotremovearticle_title' => 'Nie można usunąć strony wiki',
+	'coll-couldnotremovearticle_msg' => 'Strona wiki nie może zostać usunięta.',
 	'coll-noscript_text' => '<h1>Potrzebny JavaScript!</h1>
 <strong>Twoja przeglądarka nie obsługuje JavaScriptu lub został on wyłączony.
 Strona nie będzie działać poprawnie, dopóki JavaScript nie zostanie włączony.</strong>',
-	'coll-intro_text' => 'Utwórz i zarządzaj swoimi indywidualnie wybranymi stronami wiki.<br />Więcej informacji na [[{{MediaWiki:Coll-helppage}}|stronie pomocy dotyczącej kolekcji]].',
-	'coll-helppage' => 'Help:Książki',
-	'coll-bookscategory' => 'Książki',
 	'coll-savedbook_template' => 'zapisane_książki',
 	'coll-your_book' => 'Twoja książka',
 	'coll-download_title' => 'Pobierz',
-	'coll-download_text' => 'By pobrać wersję offline wybierz format i naciśnij przycisk.',
-	'coll-download_as_text' => 'Aby ściągnąć wersję w formacie $1 naciśnij przycisk.',
+	'coll-download_text' => 'Aby pobrać wersję offline wybierz format i naciśnij przycisk.',
+	'coll-download_as_text' => 'Aby ściągnąć książkę w formacie $1 kliknij przycisk.',
 	'coll-download' => 'Pobierz',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Usuń',
@@ -5352,9 +9266,6 @@
 	'coll-drag_and_drop' => 'Przeciągnij i upuść, by zmienić kolejność stron i rozdziałów',
 	'coll-create_chapter' => 'Utwórz rozdział',
 	'coll-sort_alphabetically' => 'Sortuj alfabetycznie',
-	'coll-clear_collection' => 'Wyczyść książkę',
-	'coll-clear_collection_tooltip' => 'Usuń wszystkie strony wiki z bieżącej książki',
-	'coll-clear_collection_confirm' => 'Czy jesteś pewien, że chcesz wyczyścić całą zawartość książki?',
 	'coll-rename' => 'Zmień nazwę',
 	'coll-new_chapter' => 'Wprowadź nazwę dla nowego rozdziału',
 	'coll-rename_chapter' => 'Wprowadź nową nazwę dla rozdziału',
@@ -5373,7 +9284,7 @@
 	'coll-personal_collection_label' => 'Książka osobista:',
 	'coll-community_collection_label' => 'Ksiązka społeczności:',
 	'coll-save_collection' => 'Zapisz książkę',
-	'coll-save_category' => 'Książki zapisywane są w kategorii [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Wszystkie zapisywane książki dodawane są do kategorii [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Strona już istnieje. Nadpisać?',
 	'coll-overwrite_text' => 'Strona pod tytułem [[:$1]] już istnieje.
 Chcesz ją zastąpić swoją kolekcją?',
@@ -5398,15 +9309,24 @@
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(wiki strona: $1)',
 	'coll-rendering_page' => '(strona: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informacje na temat renderowania strony',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informacje na temat renderowania kolekcji',
 	'coll-rendering_finished_title' => 'Renderowanie zakończone',
 	'coll-rendering_finished_text' => '<strong>Dokument został wygenerowany.</strong>
 <strong>[$1 Pobierz plik]</strong> na swój komputer.
 
 Uwaga:
 * Nie jesteś zadowolony z wygenerowanego dokumentu? Zajrzyj na [[{{MediaWiki:Coll-helppage}}|stronę pomocy dotyczącą kolekcji]], aby dowiedzieć się jakie są możliwości poprawy dokumentu.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst informacyjny przetwarzania strony',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Tekst informacyjny przetwarzania kolekcji',
 	'coll-notfound_title' => 'Książki nie odnaleziono',
 	'coll-notfound_text' => 'Nie udało się odnaleźć strony z ksiązki.',
-	'coll-is_cached' => '<ul><li>Dokument został odnaleziono w pamięci podręcznej, więc nie ma potrzeby renderowania. <a href="$1">Wymuś ponowne renderowanie.</a></li></ul>',
+	'coll-download_notfound_title' => 'Nie odnaleziono pliku',
+	'coll-download_notfound_text' => 'Plik, który próbujesz pobrać, nie istnieje. Prawdopodobnie został usunięty i wymaga ponownego wygenerowania.',
+	'coll-download_failed_title' => 'Błąd podczas pobierania',
+	'coll-download_failed_text' => 'Wystąpił błąd podczas pobierania pliku $1',
+	'coll-is_cached' => '<ul><li>Dokument odnaleziono w pamięci podręcznej, więc nie ma potrzeby renderowania.
+<a href="$1">Wymuś ponowne wygenerowanie.</a></li></ul>',
 	'coll-excluded-templates' => '* Szablony w kategorii [[:Category:$1|$1]] zostały pominięte.',
 	'coll-blacklisted-templates' => '* Szablony z czarnej listy [[:$1]] zostały pominięte.',
 	'coll-return_to_collection' => '<p>Powróć do <a href="$1">$2</a></p>',
@@ -5419,76 +9339,278 @@
 Skontaktuj się z administratorem tego serwisu MediaWiki.',
 	'coll-license' => 'Licencja',
 	'coll-return_to' => 'Powrót do [[:$1]]',
+	'coll-more_info' => 'Pokaż więcej informacji',
+	'coll-hide_info' => 'Ukryj informacje',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Zamawianie PediaPress',
+	'coll-suggest_title' => 'Strony proponowane aby je dodać do książki',
+	'coll-suggest_intro_text' => 'Propozycje generowane są na podstawie analizy aktualnego zestawu stron wiki wchodzących w skład książki.
+Lista jest aktualizowana, gdy klikniesz na przyciski dodaj lub usuń.',
+	'coll-suggested_articles' => 'Propozycje',
+	'coll-suggest_reset_bans' => 'reset',
+	'coll-suggest_reset_bans_tooltip' => 'Pokaż wcześniej usunięte sugestie',
+	'coll-suggest_add_selected' => 'Dodaj wybrane strony',
+	'coll-suggest_ban_selected' => 'Usuń wybrane strony',
+	'coll-suggest_your_book' => 'Moja książka',
+	'coll-suggest_show' => 'pokaż',
+	'coll-suggest_ban_tooltip' => 'Usuń tę stronę z listy proponowanych',
+	'coll-suggest_article_ban' => 'Strona <strong>$1</strong> została usunięta z listy sugerowanych ($2).',
+	'coll-suggest_article_add' => 'Strona <strong>$1</strong> została dodana do Twojej książki ($2).',
+	'coll-suggest_article_remove' => 'Strona <strong>$1</strong> została usunięta z Twojej książki ($2).',
+	'coll-suggest_undo_tooltip' => 'Cofnij tę operację',
+	'coll-suggest_undo' => 'cofnij',
+	'coll-load_local_book' => 'Kliknij „OK” aby kontynuować tworzenie książki %TITLE% zawierającej %NUMPAGES% stron wiki. Kliknij „Anuluj” aby usunąć istniejącą i rozpocząć tworzenie nowej książki.',
+	'right-collectionsaveasuserpage' => 'Zapisywanie książek jako strony użytkownika',
+	'right-collectionsaveascommunitypage' => 'Zapisywanie książek jako wspólnej strony',
 );
 
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'coll-desc' => '[[Special:Book|Crea lìber]]',
+	'coll-book_creator_intro' => "<big>Con ël ''creator ëd lìber'' a peul creé un lìber contenent dle pàgine dla wiki ch'as sern chiel. A peul esporté ël lìber an formà diferent (për esempi PDF o ODF) o ordiné na còpia stampà.</big>",
+	'coll-manage_your_book' => 'Gestì sò lìber',
+	'coll-book_creator_help' => "Varda [[{{MediaWiki:Coll-helppage}}|la pàgina d'agiut an sij lìber]] për savèjne ëd pi.",
+	'coll-start_book_creator' => 'Fà parte ël creator ëd lìber',
+	'coll-book_creator_continue' => 'Continua a dovré ël creator ëd lìber',
+	'coll-book_creator_disable_text' => "Ël ''creator ëd lìber'' a sarà disabilità e ël lìber al qual a l'é ancamin ch'a travaja a sarà gavà.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Test dël creator ëd lìber',
+	'coll-collection' => 'Lìber',
+	'coll-collections' => 'Lìber',
+	'coll-exclusion_category_title' => 'Lassé fòra da la stampa',
+	'coll-print_template_prefix' => 'Stampa',
+	'coll-print_template_pattern' => '$1/Stampa',
+	'coll-unknown_subpage_title' => 'Sot-pàgina pa conossùa',
+	'coll-unknown_subpage_text' => 'Costa sot-pàgina ëd [[Special:Book|Lìber]] a esist pa',
+	'coll-couldnotaddarticle_title' => 'As peul pa gionté la pàgina dla wiki',
+	'coll-couldnotaddarticle_msg' => 'La pàgina wiki as peul pa giontesse',
+	'coll-couldnotremovearticle_title' => 'As peul pa gavessa la pàgina dla wiki',
+	'coll-couldnotremovearticle_msg' => 'La pàgina wiki as peul pa gavesse.',
+	'coll-noscript_text' => "<h1>A-i é damanca ëd javaScript!</h1>
+<strong>Sò navigador a manten pa JavaScript o JavaScript a l'é stàit disabilità.
+Sta pàgina-sì a travajërà pa bin, gavà che che JavaScript a sia abilità.</strong>.",
+	'coll-savedbook_template' => 'lìber_salvà',
+	'coll-your_book' => 'Tò lìber',
+	'coll-download_title' => 'Dëscaria',
+	'coll-download_text' => 'Për dëscarié tò lìber sern un formà e sgnaca ël boton.',
+	'coll-download_as_text' => 'Për dëscarié tò lìber an formà $1 sgnaca ël boton.',
+	'coll-download' => 'Dëscaria',
+	'coll-format_label' => 'Formà:',
+	'coll-remove' => 'Gava',
+	'coll-show' => 'Smon',
+	'coll-move_to_top' => 'Va an sima',
+	'coll-move_up' => 'Va an su',
+	'coll-move_down' => 'Va giù',
+	'coll-move_to_bottom' => 'Va al fond',
+	'coll-title' => 'Tìtol:',
+	'coll-subtitle' => 'Sot-tìtol:',
+	'coll-contents' => 'Contnù',
+	'coll-drag_and_drop' => 'Dovré ël tiré & lassé për riordiné le pàgine wiki e ij capìtoj',
+	'coll-create_chapter' => 'Crea capìtol',
+	'coll-sort_alphabetically' => 'Órdina alfabeticament',
+	'coll-rename' => 'Arbatia',
+	'coll-new_chapter' => 'Anserì ël tìtol dël neuv capìtol',
+	'coll-rename_chapter' => "Anserì ël neuv tìtol d'ës capìtol",
+	'coll-no_such_category' => 'Gnun-a categorìa parèj',
+	'coll-notitle_title' => 'Ël tìtol ëd la pàgina a peul pa esse determinà.',
+	'coll-post_failed_title' => 'Arcesta POST falìa',
+	'coll-post_failed_msg' => "L'arcesta POST a $1 a l'é falìa ($2).",
+	'coll-mwserve_failed_title' => 'Eror dël servent ëd conversion',
+	'coll-mwserve_failed_msg' => "A l'é capitaje n'eron an sël servent ëd conversion: <nowiki>$1</nowiki>",
+	'coll-error_reponse' => "Arspòsta d'eror dal sërvent",
+	'coll-empty_collection' => 'Lìber veuid',
+	'coll-revision' => 'Revision: $1',
+	'coll-save_collection_title' => 'Salvé e partagé sò lìber',
+	'coll-save_collection_text' => 'Sern na locassion ëd memorisassion për tò lìber:',
+	'coll-login_to_save' => "S'a veul salvé dij lìber da dovré apress, për piasì [[Special:UserLogin|ch'a intra ant ël sistema o ch'a crea un cont]].",
+	'coll-personal_collection_label' => 'Lìber përsonal:',
+	'coll-community_collection_label' => 'Lìber ëd comunità:',
+	'coll-save_collection' => 'Salva lìber',
+	'coll-save_category' => 'Tùit ij lìber salvà a son giontà a la categorìa [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'La pàgina a esist.
+Coatela?',
+	'coll-overwrite_text' => "Na pàgina con ël nòm [[:$1]] a esist già.
+It veule ch'a sia rimpiassà con tò lìber?",
+	'coll-yes' => 'É!',
+	'coll-no' => 'Nò',
+	'coll-load_overwrite_text' => "A l'ha già dle pàgine an sò lìber.
+Veul-lo coaté tò lìber corent, gionté contnù neuv, o scancelé ël cariament d'ës lìber?",
+	'coll-overwrite' => 'Coata',
+	'coll-append' => 'Gionta',
+	'coll-cancel' => 'Scancelé',
+	'coll-update' => 'Modìfica',
+	'coll-limit_exceeded_title' => 'Lìber tròp gròss',
+	'coll-limit_exceeded_text' => "Tò lìber a l'é tròp gròss.
+Pa pi gnun-e pàgine a peulo esse giontà.",
+	'coll-rendering_title' => 'Rapresentassion',
+	'coll-rendering_text' => '<p><strong>Për piasì, ch\'a speta antramentre ël document a l\'é generà.</strong></p>
+
+<p><strong>Progress:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Sta pàgina-sì a dovrìa agiornesse automaticament minca pòchi second.
+Se sòn a marcia pa, për piasì ch\'a sgnaca ël boton ëd rinfresch ëd sò navigador.</p>',
+	'coll-rendering_status' => '<strong>Stat:</strong> $1',
+	'coll-rendering_article' => '(pàgina wiki: $1)',
+	'coll-rendering_page' => '(pàgina: $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Test d'anformassion an sl'arpresentassion ëd le pàgine",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Rapresentassion dël test d'anformassion dla colession",
+	'coll-rendering_finished_title' => 'Conversion finìa',
+	'coll-rendering_finished_text' => "<strong>L'archivi document a l'é stàit generà.</strong>
+<strong>[$1 Dëscariél'archivi]</strong> su sò ordinator.
+
+Nòte:
+* Pa sodisfàit ëd l'arzultà? Ch'a varda [[{{MediaWiki:Coll-helppage}}|la pàgina d'agiut an sij lìber]] për dle possibilità d'ameliorelo.",
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/Visualisassion dël test d'anformassion ëd la pàgina",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/Visualisassion dël test d'anformassion dla colession",
+	'coll-notfound_title' => 'Lìber pa trovà',
+	'coll-notfound_text' => "La pàgina dël lìber a l'é pa podusse trové.",
+	'coll-download_notfound_title' => 'Archivi pa trovà',
+	'coll-download_notfound_text' => "L'archivi ch'a preuva a dëscarié a esist pa.
+A peul esse ch'a sia stàit scancelà e ch'a venta torna generelo.",
+	'coll-download_failed_title' => 'Eror durant ël dëscariament.',
+	'coll-download_failed_text' => "A l'é staje n'eror durant ël dëscariament ëd l'archivi: $1",
+	'coll-is_cached' => '<ul><li>A l\'é trovasse na version memorisà dël document, parèj a- é pa damanca ëd conversion.
+<a href="$1">Forsé la conversion.</a></li></ul>',
+	'coll-excluded-templates' => '* Jë stamp an categorìa [[:Category:$1|$1]] a son ëstàit escludù.',
+	'coll-blacklisted-templates' => '* Jë stamp ant la lista nèira [[:$1]] a son ëstàit escludù.',
+	'coll-return_to_collection' => '<p>Torné andaré a <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Órdina com un lìber stampà',
+	'coll-book_text' => 'Pijé un lìber stampà da nòstr sòcio dë stampa su arcesta.',
+	'coll-order_from_pp' => 'Preuva con $1',
+	'coll-about_pp' => 'A propòsit ëd $1',
+	'coll-invalid_podpartner_title' => 'Sòcio a la stampa su arcesta nen vàlid',
+	'coll-invalid_podpartner_msg' => "Ël sòcio dë stampa su arcesta dàit a l'é nen bon.
+Për piasì, ch'a contata sò aministrator MediaWiki.",
+	'coll-license' => 'Licensa',
+	'coll-return_to' => 'Torné andaré a [[:$1]]',
+	'coll-more_info' => "Smon-e pi d'anformassion",
+	'coll-hide_info' => 'Stërma anformassion',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Anformassion órdin PediaPress',
+	'coll-suggest_title' => 'Pàgine sugerìe për tò lìber',
+	'coll-suggest_intro_text' => "Ij sugeriment a son basà an sl'ansema corent dle pàgine wiki an sò lìber.
+La lista a l'é modificà minca vira ch'a sgnaca an sij boton për gionté o gavé.",
+	'coll-suggested_articles' => 'Sugeriment',
+	'coll-suggest_reset_bans' => 'spian-a',
+	'coll-suggest_reset_bans_tooltip' => 'Smon-e ij sugeriment gavà prima',
+	'coll-suggest_add_selected' => 'Gionté le pàgine selessionà',
+	'coll-suggest_ban_selected' => 'Gavé le pàgine selessionà',
+	'coll-suggest_your_book' => 'Tò lìber',
+	'coll-suggest_show' => 'smon-e',
+	'coll-suggest_ban_tooltip' => 'Gava sta pàgina-sì da la lista ëd sugeriment',
+	'coll-suggest_article_ban' => "La pàgina <strong>$1</strong> a l'é stàita gavà dai sugeriment ($2).",
+	'coll-suggest_article_add' => "La pàgina <strong>$1</strong> a l'é stàita giontà a sò lìber ($2).",
+	'coll-suggest_article_remove' => "La pàgina <strong>$1</strong> a l'é stàita gavà da sò lìber ($2).",
+	'coll-suggest_undo_tooltip' => "Anula st'assion-sì",
+	'coll-suggest_undo' => "buta 'me ch'a l'era",
+	'coll-load_local_book' => "Sgnaca Va bin për continué con tò lìber %TITLE% ch'a conten %NUMPAGES% pàgine wiki. Sgnaca Scancelé për scancelelo e parte con un lìber veuid.",
+	'right-collectionsaveasuserpage' => "Salvé dij lìber ansima a dle pàgine d'utent",
+	'right-collectionsaveascommunitypage' => 'Salvé dij lìber com dle pàgine dla comunità',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
-	'coll-collection' => 'غونډ',
-	'coll-collections' => 'غونډونه',
-	'coll-create_a_book' => 'يو کتاب جوړول',
-	'coll-add_page' => 'د ويکي مخ ورګډول',
-	'coll-add_category' => 'وېشنيزه ورګډول',
-	'coll-help_collections' => 'د غونډونو لارښود',
-	'coll-your_book' => 'ستاسو کتاب',
+	'coll-desc' => '[[Special:Book|کتابونه جوړول]]',
+	'coll-start_book_creator' => 'کتاب جوړونکی پرانيستل',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/د کتاب جوړونکي متن',
+	'coll-collection' => 'کتاب',
+	'coll-collections' => 'کتابونه',
+	'coll-print_template_prefix' => 'چاپول',
+	'coll-print_template_pattern' => '$1/چاپول',
+	'coll-your_book' => 'ستاسې کتاب',
+	'coll-download_title' => 'ښکته کول',
+	'coll-download' => 'ښکته کول',
+	'coll-format_label' => 'بڼه:',
 	'coll-remove' => 'غورځول',
 	'coll-show' => 'ښکاره کول',
+	'coll-move_to_top' => 'سر ته خوځښت',
+	'coll-move_up' => 'پورته خوځښت',
+	'coll-move_down' => 'ښکته خوځښت',
+	'coll-move_to_bottom' => 'پښو ته خوځښت',
 	'coll-title' => 'سرليک:',
 	'coll-subtitle' => 'لمنليک:',
-	'coll-contents' => 'مينځپانګه',
+	'coll-contents' => 'منځپانګه',
 	'coll-create_chapter' => 'څپرکی جوړول',
+	'coll-sort_alphabetically' => 'د ابېڅو له مخې اوډل',
 	'coll-rename' => 'نوم بدلول',
+	'coll-new_chapter' => 'د نوي څپرکي لپاره نوم وليکۍ',
+	'coll-rename_chapter' => 'د څپرکي لپاره يو نوی نوم وليکۍ',
 	'coll-no_such_category' => 'داسې هېڅ کومه وېشنيزه نشته',
-	'coll-save_collection_title' => 'خپل غونډ خوندي او شريک کول',
+	'coll-empty_collection' => 'تش کتاب',
+	'coll-save_collection_title' => 'خپل کتاب شريک او خوندي کول',
+	'coll-personal_collection_label' => 'شخصي کتاب:',
+	'coll-save_collection' => 'کتاب خوندي کول',
 	'coll-yes' => 'هو',
 	'coll-no' => 'نه',
-	'coll-notfound_title' => 'غونډ و نه موندلای شو',
+	'coll-cancel' => 'ناګارل',
+	'coll-update' => 'اوسمهالول',
+	'coll-limit_exceeded_title' => 'کتاب ډېر لوی دی',
+	'coll-limit_exceeded_text' => 'ستاسې کتاب ډېر لوی دی.
+نور مخونه پکې نه شي ډېرېدلی.',
+	'coll-rendering_article' => '(د ويکي مخ: $1)',
+	'coll-rendering_page' => '(مخ: $1)',
+	'coll-notfound_title' => 'کتاب و نه موندل شو',
+	'coll-download_notfound_title' => 'دوتنه و نه موندل شوه',
 	'coll-about_pp' => 'د $1 په اړه',
+	'coll-license' => 'منښتليک',
+	'coll-more_info' => 'نور مالومات ښکاره کول',
+	'coll-hide_info' => 'مالومات پټول',
+	'coll-suggest_title' => 'ستاسې د کتاب لپاره وړانديز شوي مخونه',
+	'coll-suggested_articles' => 'وړانديزونه',
+	'coll-suggest_reset_bans' => 'بياايښودل',
+	'coll-suggest_add_selected' => 'ټاکلي مخونه ورګډول',
+	'coll-suggest_ban_selected' => 'ټاکلي مخونه لرې کول',
+	'coll-suggest_your_book' => 'ستاسې کتاب',
+	'coll-suggest_show' => 'ښکاره کول',
+	'coll-suggest_undo' => 'ناکړل',
 );
 
 /** Portuguese (Português)
  * @author 555
+ * @author Giro720
+ * @author Hamilton Abreu
+ * @author Helder.wiki
  * @author Heldergeovane
  * @author Lijealso
+ * @author Luckas Blade
  * @author MF-Warburg
  * @author Malafaya
  * @author Waldir
  */
 $messages['pt'] = array(
-	'coll-desc' => '[[Special:Book|Cria livros]]',
+	'coll-desc' => '[[Special:Book|Criar livros]]',
+	'coll-book_creator_intro' => "<big>Com o ''criador de livros'' pode criar um livro que contém as páginas wiki que escolher. Pode exportar o livro em formatos diferentes (por exemplo, PDF ou ODF) ou solicitar uma cópia impressa.</big>",
+	'coll-manage_your_book' => 'Gerir o livro',
+	'coll-book_creator_help' => 'Consulte [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre livros]] para mais detalhes.',
+	'coll-start_book_creator' => 'Iniciar o criador de livros',
+	'coll-book_creator_continue' => 'Continue a usar o criador de livros',
+	'coll-book_creator_disable_text' => "O ''criador de livros'' será desactivado e o livro no qual está a trabalhar será removido.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texto do criador de livros',
 	'coll-collection' => 'Livro',
 	'coll-collections' => 'Livros',
-	'coll-exclusion_category_title' => 'Excluir da impressão',
+	'coll-exclusion_category_title' => 'Excluir ao imprimir',
 	'coll-print_template_prefix' => 'Imprime',
 	'coll-print_template_pattern' => '$1/Imprimir',
-	'coll-create_a_book' => 'Criar um livro',
-	'coll-add_page' => 'Adicionar página wiki',
-	'coll-remove_page' => 'Remover página wiki',
-	'coll-add_category' => 'Adicionar categoria',
-	'coll-load_collection' => 'Carregar livro',
-	'coll-show_collection' => 'Mostrar livro',
-	'coll-help_collections' => 'Ajuda sobre livros',
-	'coll-n_pages' => '$1 {{PLURAL:$1|página|páginas}}',
-	'coll-unknown_subpage_title' => 'Sub-página desconhecida',
+	'coll-unknown_subpage_title' => 'Subpágina desconhecida',
 	'coll-unknown_subpage_text' => 'Não existe esta sub-página do [[Special:Book|Livro]]',
-	'coll-printable_version_pdf' => 'Versão em PDF',
-	'coll-download_as' => 'Descarregar como $1',
-	'coll-noscript_text' => '<h1>JavaScript é Requerido!</h1>
-<strong>O seu "browser" não suporta JavaScript, ou o JavaScript foi desactivado.
-Esta página não funcionará correctamente, excepto se o JavaScript for activado.</strong>',
-	'coll-intro_text' => 'Crie e manipule sua selecção individual de páginas wiki.<br />Veja [[{{MediaWiki:Coll-helppage}}]] para mais detalhes.',
-	'coll-helppage' => 'Help:Livros',
-	'coll-bookscategory' => 'Livros',
+	'coll-couldnotaddarticle_title' => 'Não foi possível adicionar a página wiki',
+	'coll-couldnotaddarticle_msg' => 'Não foi possível adicionar a página wiki.',
+	'coll-couldnotremovearticle_title' => 'Não foi possível remover a página wiki',
+	'coll-couldnotremovearticle_msg' => 'Não foi possível remover a página wiki.',
+	'coll-noscript_text' => '<h1>É necessário o JavaScript!</h1>
+<strong>Ou o seu browser não suporta JavaScript ou o JavaScript foi desactivado.
+Esta página não funcionará correctamente sem o JavaScript.</strong>',
 	'coll-savedbook_template' => 'livro_gravado',
-	'coll-your_book' => 'Seu livro',
-	'coll-download_title' => 'Download',
-	'coll-download_text' => 'Para descarregar uma versão offline, seleccione um formato e pressione o botão correspondente.',
-	'coll-download_as_text' => "Para descarregar uma versão 'offline' em formato $1, clique no botão.",
+	'coll-your_book' => 'O seu livro',
+	'coll-download_title' => 'Descarregar',
+	'coll-download_text' => 'Para descarregar o seu livro, escolha um formato e clique o botão.',
+	'coll-download_as_text' => 'Para descarregar o seu livro no formato $1, clique o botão.',
 	'coll-download' => 'Descarregar',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Remover',
-	'coll-show' => 'Exibir',
+	'coll-show' => 'Mostrar',
 	'coll-move_to_top' => 'Mover para o topo',
 	'coll-move_up' => 'Mover acima',
 	'coll-move_down' => 'Mover abaixo',
@@ -5496,112 +9618,144 @@
 	'coll-title' => 'Título:',
 	'coll-subtitle' => 'Subtítulo:',
 	'coll-contents' => 'Conteúdo',
-	'coll-drag_and_drop' => 'Arraste-e-solte para re-ordenar as páginas wiki e capítulos',
+	'coll-drag_and_drop' => 'Para reordenar as páginas wiki e os capítulos, arraste-os com o rato e largue-os',
 	'coll-create_chapter' => 'Criar capítulo',
 	'coll-sort_alphabetically' => 'Ordenar alfabeticamente',
-	'coll-clear_collection' => 'Esvaziar livro',
-	'coll-clear_collection_confirm' => 'Deseja realmente limpar completamente o seu livro?',
-	'coll-rename' => 'Renomear',
+	'coll-rename' => 'Alterar o nome',
 	'coll-new_chapter' => 'Introduza o nome do novo capítulo',
-	'coll-rename_chapter' => 'Introduza o nome do capítulo',
-	'coll-no_such_category' => 'Não existe essa categoria',
+	'coll-rename_chapter' => 'Introduza um nome novo para o capítulo',
+	'coll-no_such_category' => 'Essa categoria não existe',
 	'coll-notitle_title' => 'Não foi possível determinar o título da página.',
 	'coll-post_failed_title' => 'Pedido POST falhou',
-	'coll-post_failed_msg' => 'O pedido POST feito à $1 falhou ($2).',
-	'coll-mwserve_failed_title' => 'Erro no servidor de renderização',
-	'coll-mwserve_failed_msg' => 'Ocorreu um erro no servidor de renderização: <nowiki>$1</nowiki>',
+	'coll-post_failed_msg' => 'O pedido POST feito a $1 falhou ($2).',
+	'coll-mwserve_failed_title' => 'Erro no servidor de composição do ficheiro',
+	'coll-mwserve_failed_msg' => 'Ocorreu um erro no servidor de composição do ficheiro: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'Resposta de erro do servidor',
 	'coll-empty_collection' => 'Livro vazio',
 	'coll-revision' => 'Revisão: $1',
 	'coll-save_collection_title' => 'Grave e partilhe o seu livro',
-	'coll-save_collection_text' => 'Defina a localização:',
+	'coll-save_collection_text' => 'Escolha a localização do seu livro:',
 	'coll-login_to_save' => 'Se pretende gravar livros para usar mais tarde, por favor, [[Special:UserLogin|autentique-se ou crie uma conta]].',
 	'coll-personal_collection_label' => 'Livro pessoal:',
 	'coll-community_collection_label' => 'Livro comunitário:',
 	'coll-save_collection' => 'Gravar livro',
-	'coll-save_category' => 'Todos os livros são gravados na categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Todos os livros gravados são adicionados à categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'A página existe. Escrever por cima?',
-	'coll-overwrite_text' => 'Um página com o nome [[:$1]] já existe.
-Deseja substituí-la pela sua colecção?',
+	'coll-overwrite_text' => 'Uma página com o nome [[:$1]] já existe.
+Deseja substituí-la com o seu livro?',
 	'coll-yes' => 'Sim',
 	'coll-no' => 'Não',
-	'coll-load_overwrite_text' => 'Você já possui algumas páginas no seu livro.
-Pretende reescrever o seu livro atual, adicionando o novo conteúdo, ou cancelar o carregamento deste livro?',
-	'coll-overwrite' => 'Reescrever',
+	'coll-load_overwrite_text' => 'O seu livro já possui algumas páginas.
+Pretende substituir o livro actual, adicionar-lhe o novo conteúdo ou cancelar o carregamento deste novo livro?',
+	'coll-overwrite' => 'Substituir',
 	'coll-append' => 'Adicionar',
 	'coll-cancel' => 'Cancelar',
 	'coll-update' => 'Actualizar',
 	'coll-limit_exceeded_title' => 'Livro demasiado grande',
 	'coll-limit_exceeded_text' => 'O seu livro é demasiado grande.
-Não poderão ser adicionadas mais páginas.',
-	'coll-rendering_title' => 'Renderizando',
+Não podem ser adicionadas mais páginas.',
+	'coll-rendering_title' => 'A compor ficheiro',
 	'coll-rendering_text' => '<p><strong>Por favor, aguarde enquanto o documento é gerado.</strong></p>
 
 <p><strong>Progresso:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
-<p>Este página deverá atualizar automaticamente após alguns segundos.
-Se isto não funcionar, por favor utilize o botão "atualizar" ("refresh") do seu navegador.</p>',
+<p>Esta página deverá actualizar-se automaticamente com frequência.
+Se não o fizer, por favor use o botão "actualizar" ("refresh") do seu browser.</p>',
 	'coll-rendering_status' => '<strong>Estado:</strong> $1',
 	'coll-rendering_article' => '(página wiki: $1)',
 	'coll-rendering_page' => '(página: $1)',
-	'coll-rendering_finished_title' => 'Renderização concluída',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre composição de páginas',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre composição de colecções',
+	'coll-rendering_finished_title' => 'Composição do ficheiro concluída',
 	'coll-rendering_finished_text' => '<strong>O ficheiro foi gerado.</strong>
 <strong>[$1 Transfira o ficheiro]</strong> para o seu computador.
 
 Notas:
-* Não está satisfeito com o resultado? Veja [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre coleções]] para possibilidades de aprimoramentos.',
-	'coll-notfound_title' => 'Livro não encontrado',
+* Não está satisfeito com o resultado? Consulte [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre livros]] para conhecer as possibilidades de aprimoramento.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre composição de páginas',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre composição de colecções',
+	'coll-notfound_title' => 'Livro não foi encontrado',
 	'coll-notfound_text' => 'Não foi possível encontrar a página do livro.',
-	'coll-is_cached' => '<ul><li>Foi encontrada uma versão deste documento em cache, dispensando a renderização. <a href="$1"> Forçar nova renderização.</a></li></ul>',
+	'coll-download_notfound_title' => 'Ficheiro não encontrado',
+	'coll-download_notfound_text' => 'O ficheiro que está a tentar descarregar não existe:
+Talvez tenha sido apagado e precise de ser regenerado.',
+	'coll-download_failed_title' => 'Erro durante o descarregamento',
+	'coll-download_failed_text' => 'Ocorreu um erro ao descarregar o ficheiro: $1',
+	'coll-is_cached' => '<ul><li>Foi encontrada uma versão deste documento em cache, dispensando a sua composição.
+<a href="$1">Forçar nova composição.</a></li></ul>',
 	'coll-excluded-templates' => '* As predefinições na categoria [[:Category:$1|$1]] foram excluídas.',
 	'coll-blacklisted-templates' => '* As predefinições na lista negra [[:$1]] foram excluídas.',
 	'coll-return_to_collection' => '<p>Regressar a <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Encomendar como livro impresso',
-	'coll-book_text' => 'Adquira um livro impresso do nosso parceiro de impressão-a-pedido:',
-	'coll-order_from_pp' => 'Encomendar o livro de $1',
+	'coll-book_text' => 'Adquira um livro impresso pelo nosso parceiro de impressão por encomenda.',
+	'coll-order_from_pp' => 'Antever o livro por $1',
 	'coll-about_pp' => 'Sobre $1',
-	'coll-invalid_podpartner_title' => 'Parceiro POD inválido',
-	'coll-invalid_podpartner_msg' => 'O parceiro POD é inválido.
+	'coll-invalid_podpartner_title' => 'Parceiro de impressão por encomenda inválido',
+	'coll-invalid_podpartner_msg' => 'O parceiro de impressão por encomenda é inválido.
 Por favor, contacte o seu administrador MediaWiki.',
 	'coll-license' => 'Licença',
 	'coll-return_to' => 'Voltar para [[:$1]]',
+	'coll-more_info' => 'Mostrar mais informação',
+	'coll-hide_info' => 'Ocultar informação',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informação sobre encomendas PediaPress',
+	'coll-suggest_title' => 'Páginas sugeridas para o seu livro',
+	'coll-suggest_intro_text' => 'As sugestões são baseadas no conjunto actual de páginas wiki no seu livro.
+A lista é actualizada sempre que clica os botões de adicionar ou remover.',
+	'coll-suggested_articles' => 'Sugestões',
+	'coll-suggest_reset_bans' => 'restabelecer',
+	'coll-suggest_reset_bans_tooltip' => 'Mostrar sugestões removidas anteriomente',
+	'coll-suggest_add_selected' => 'Adicionar páginas seleccionadas',
+	'coll-suggest_ban_selected' => 'Remover páginas seleccionadas',
+	'coll-suggest_your_book' => 'O seu livro',
+	'coll-suggest_show' => 'mostrar',
+	'coll-suggest_ban_tooltip' => 'Remover esta página da lista de sugestões',
+	'coll-suggest_article_ban' => 'A página <strong>$1</strong> foi removida das sugestões ($2).',
+	'coll-suggest_article_add' => 'A página <strong>$1</strong> foi adicionada ao seu livro ($2).',
+	'coll-suggest_article_remove' => 'A página <strong>$1</strong> foi removida do seu livro ($2).',
+	'coll-suggest_undo_tooltip' => 'Desfazer esta acção',
+	'coll-suggest_undo' => 'desfazer',
+	'coll-load_local_book' => 'Clique OK para continuar com o seu livro %TITLE% que contém %NUMPAGES% páginas wiki. Clique Cancelar para apagá-lo e começar com um livro vazio.',
+	'right-collectionsaveasuserpage' => 'Gravar livros como página de utilizador',
+	'right-collectionsaveascommunitypage' => 'Gravar livros como página comunitária',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Giro720
+ * @author Hamilton Abreu
+ * @author Helder.wiki
  * @author Heldergeovane
  * @author Jorge Morais
+ * @author Luckas Blade
  */
 $messages['pt-br'] = array(
 	'coll-desc' => '[[Special:Book|Criar livros]]',
+	'coll-book_creator_intro' => "<big>Com o ''criador de livros'' você pode criar um livro contendo as páginas wiki que desejar. Você pode exportar o livro para diferentes formatos (por exemplo PDF ou ODF) ou fazer o pedido de uma cópia impressa.</big>",
+	'coll-manage_your_book' => 'Gerir o seu livro',
+	'coll-book_creator_help' => 'Veja [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre livros]] para mais informações.',
+	'coll-start_book_creator' => 'Iniciar o criador de livros',
+	'coll-book_creator_continue' => 'Continuar usando o criador de livros',
+	'coll-book_creator_disable_text' => "O ''criador de livros'' será desabilitado e o livro no qual você está trabalhando será removido.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Texto do criador de livros',
 	'coll-collection' => 'Livro',
 	'coll-collections' => 'Livros',
-	'coll-exclusion_category_title' => 'Excluir da impressão',
-	'coll-print_template_prefix' => 'Imprime',
+	'coll-exclusion_category_title' => 'Excluir ao imprimir',
+	'coll-print_template_prefix' => 'Imprimir',
 	'coll-print_template_pattern' => '$1/Imprimir',
-	'coll-create_a_book' => 'Criar um livro',
-	'coll-add_page' => 'Adicionar página wiki',
-	'coll-remove_page' => 'Remover página wiki',
-	'coll-add_category' => 'Adicionar categoria',
-	'coll-load_collection' => 'Carregar livro',
-	'coll-show_collection' => 'Mostrar livro',
-	'coll-help_collections' => 'Ajuda sobre livros',
-	'coll-n_pages' => '$1 {{PLURAL:$1|página|páginas}}',
-	'coll-unknown_subpage_title' => 'Sub-página desconhecida',
+	'coll-unknown_subpage_title' => 'Subpágina desconhecida',
 	'coll-unknown_subpage_text' => 'Esta subpágina do [[Special:Book|Livro]] não existe',
-	'coll-printable_version_pdf' => 'Versão em PDF',
-	'coll-download_as' => 'Baixar como $1',
-	'coll-noscript_text' => '<h1>JavaScript é requerido!</h1>
-<strong>O seu navegador não suporta JavaScript, ou o JavaScript foi desactivado.
+	'coll-couldnotaddarticle_title' => 'Não foi possível adicionar a página wiki',
+	'coll-couldnotaddarticle_msg' => 'A página wiki não pôde ser adicionada.',
+	'coll-couldnotremovearticle_title' => 'Não pôde remover a página wiki',
+	'coll-couldnotremovearticle_msg' => 'A página wiki não pôde ser removida.',
+	'coll-noscript_text' => '<h1>É necessário o JavaScript!</h1>
+<strong>O seu navegador não suporta JavaScript, ou o JavaScript foi desativado.
 Esta página não funcionará corretamente, a menos que o JavaScript seja ativado.</strong>',
-	'coll-intro_text' => 'Crie e manipule sua seleção individual de páginas wiki.<br />Veja [[{{MediaWiki:Coll-helppage}}]] para mais detalhes.',
-	'coll-helppage' => 'Help:Livros',
-	'coll-bookscategory' => 'Livros',
-	'coll-savedbook_template' => 'livro_gravado',
+	'coll-savedbook_template' => 'livro_salvo',
 	'coll-your_book' => 'Seu livro',
 	'coll-download_title' => 'Baixar',
-	'coll-download_text' => "Para baixar uma versão ''offline'', selecione um formato e pressione o botão correspondente.",
-	'coll-download_as_text' => "Para descarregar uma versão 'offline' em formato $1, clique no botão.",
+	'coll-download_text' => 'Para baixar o seu livro escolha um formato e pressione o botão.',
+	'coll-download_as_text' => 'Para baixar o seu livro no formato $1, clique no botão.',
 	'coll-download' => 'Baixar',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Remover',
@@ -5611,13 +9765,11 @@
 	'coll-move_down' => 'Mover abaixo',
 	'coll-move_to_bottom' => 'Mover para o fundo',
 	'coll-title' => 'Título:',
-	'coll-subtitle' => 'Subtitle:',
+	'coll-subtitle' => 'Subtítulo:',
 	'coll-contents' => 'Conteúdo',
 	'coll-drag_and_drop' => 'Arraste-e-solte para re-ordenar as páginas wiki e os capítulos',
 	'coll-create_chapter' => 'Criar capítulo',
 	'coll-sort_alphabetically' => 'Ordenar alfabeticamente',
-	'coll-clear_collection' => 'Esvaziar livro',
-	'coll-clear_collection_confirm' => 'Realmente deseja esvaziar completamente o seu livro?',
 	'coll-rename' => 'Renomear',
 	'coll-new_chapter' => 'Introduza o nome para um novo capítulo',
 	'coll-rename_chapter' => 'Introduza um novo nome para o capítulo',
@@ -5630,21 +9782,21 @@
 	'coll-error_reponse' => 'Resposta de erro do servidor',
 	'coll-empty_collection' => 'Livro vazio',
 	'coll-revision' => 'Revisão: $1',
-	'coll-save_collection_title' => 'Salvar e partilhar o seu livro',
+	'coll-save_collection_title' => 'Salvar e compartilhar o seu livro',
 	'coll-save_collection_text' => 'Defina a localização:',
 	'coll-login_to_save' => 'Se pretende salvar livros para uso posterior, por favor, [[Special:UserLogin|autentique-se ou crie uma conta]].',
 	'coll-personal_collection_label' => 'Livro pessoal:',
 	'coll-community_collection_label' => 'Livro comunitário:',
 	'coll-save_collection' => 'Salvar livro',
-	'coll-save_category' => 'Os livros são salvos na categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Todos os livros salvos são adicionados à categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'A página já existe.
 Sobrescrever?',
 	'coll-overwrite_text' => 'Um página com o nome [[:$1]] já existe.
-Deseja substituí-la pela sua coleção?',
+Deseja substituí-la com o seu livro?',
 	'coll-yes' => 'Sim',
 	'coll-no' => 'Não',
 	'coll-load_overwrite_text' => 'Você já possui algumas páginas no seu livro.
-Pretende sobrescrever a sua coleção atual, adicionar o novo conteúdo, ou cancelar o carregamento desta coleção?',
+Pretende sobrescrever o seu livro atual, adicionar o novo conteúdo, ou cancelar o carregamento deste livro?',
 	'coll-overwrite' => 'Sobrescrever',
 	'coll-append' => 'Adicionar',
 	'coll-cancel' => 'Cancelar',
@@ -5662,140 +9814,517 @@
 	'coll-rendering_status' => '<strong>Estado:</strong> $1',
 	'coll-rendering_article' => '(página wiki: $1)',
 	'coll-rendering_page' => '(página: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre renderização de páginas',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre renderização de coleções',
 	'coll-rendering_finished_title' => 'Renderização concluída',
-	'coll-rendering_finished_text' => '<strong>O arquivo foi gerado.</strong>
+	'coll-rendering_finished_text' => '<strong>O arquivo do documento foi gerado.</strong>
 <strong>[$1 Baixe o arquivo]</strong> para o seu computador.
 
 Notas:
-* Não está satisfeito com o resultado? Veja [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre coleções]] para possibilidades de aprimoramentos.',
+* Não está satisfeito com o resultado? Veja [[{{MediaWiki:Coll-helppage}}|a página de ajuda sobre livros]] para possibilidades de aprimoramentos.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre renderização de páginas',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Texto informativo sobre renderização de coleções',
 	'coll-notfound_title' => 'Livro não encontrado',
 	'coll-notfound_text' => 'Não foi possível encontrar a página do livro.',
-	'coll-is_cached' => '<ul><li>Foi encontrada uma versão deste documento em cache, de modo que não foi necessária uma renderização. <a href="$1">Forçar nova renderização.</a></li></ul>',
+	'coll-download_notfound_title' => 'Arquivo não encontrado',
+	'coll-download_notfound_text' => 'O arquivo que você está tentando baixar não existe:
+Talvez ele tenha sido removido e precise ser regenerado.',
+	'coll-download_failed_title' => 'Erro ao baixar o arquivo',
+	'coll-download_failed_text' => 'Houve um erro ao baixar o arquivo: $1',
+	'coll-is_cached' => '<ul><li>Foi encontrada uma versão deste documento em cache, de modo que não foi necessária uma renderização.
+<a href="$1">Forçar nova renderização.</a></li></ul>',
 	'coll-excluded-templates' => '* Predefinições na categoria [[:Category:$1|$1]] foram excluídas.',
 	'coll-blacklisted-templates' => '* Predefinições na lista negra [[:$1]] foram excluídas.',
 	'coll-return_to_collection' => '<p>Retornar para <a href="$1">$2</a></p>',
-	'coll-book_title' => 'Encomendar como livro impresso',
-	'coll-book_text' => 'Adquira um livro impresso de nosso parceiro de impressão-sob-demanda (POD):',
-	'coll-order_from_pp' => 'Encomendar o livro de $1',
+	'coll-book_title' => 'Encomendar como um livro impresso',
+	'coll-book_text' => 'Adquira um livro impresso de nosso parceiro de impressão sob demanda:',
+	'coll-order_from_pp' => 'Previsualizar com $1',
 	'coll-about_pp' => 'Sobre $1',
-	'coll-invalid_podpartner_title' => 'Parceiro POD inválido',
-	'coll-invalid_podpartner_msg' => 'O parceiro POD fornecido é inválido.
+	'coll-invalid_podpartner_title' => 'Parceiro de impressão sob demanda inválido',
+	'coll-invalid_podpartner_msg' => 'O parceiro de impressão sob demanda fornecido é inválido.
 Por favor, contate o seu administrador MediaWiki.',
 	'coll-license' => 'Licença',
 	'coll-return_to' => 'Voltar para [[:$1]]',
+	'coll-more_info' => 'Exibir mais informações',
+	'coll-hide_info' => 'Esconder informações',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informações sobre pedidos feitos à PediaPress',
+	'coll-suggest_title' => 'Páginas sugeridas para seu livro',
+	'coll-suggest_intro_text' => 'Sugestões são baseadas no conjunto atual de páginas wiki no seu livro.
+A lista é atualizada toda vez que você clica nos botões adicionar ou remover.',
+	'coll-suggested_articles' => 'Sugestões',
+	'coll-suggest_reset_bans' => 'restabelecer',
+	'coll-suggest_reset_bans_tooltip' => 'Mostrar sugestões removidas anteriormente',
+	'coll-suggest_add_selected' => 'Adicionar páginas selecionadas',
+	'coll-suggest_ban_selected' => 'Remover páginas selecionadas',
+	'coll-suggest_your_book' => 'Seu livro',
+	'coll-suggest_show' => 'mostrar',
+	'coll-suggest_ban_tooltip' => 'Remover esta página da lista de sugestões',
+	'coll-suggest_article_ban' => 'A página <strong>$1</strong> foi removida das sugestões ($2).',
+	'coll-suggest_article_add' => 'A página <strong>$1</strong> foi adicionada ao seu livro ($2).',
+	'coll-suggest_article_remove' => 'A página <strong>$1</strong> foi removida do seu livro ($2).',
+	'coll-suggest_undo_tooltip' => 'Desfazer esta ação',
+	'coll-suggest_undo' => 'desfazer',
+	'coll-load_local_book' => 'Clique OK para continuar com o seu livro %TITLE% que contém %NUMPAGES% páginas wiki. Clique Cancelar para apagá-lo e começar com um livro vazio.',
+	'right-collectionsaveasuserpage' => 'Salvar livros como página de usuário',
+	'right-collectionsaveascommunitypage' => 'Salvar livros como páginas comunitárias',
 );
 
+/** Quechua (Runa Simi)
+ * @author AlimanRuna
+ */
+$messages['qu'] = array(
+	'coll-more_info' => 'Aswan willaykunata rikuchiy',
+	'coll-hide_info' => 'Willaykunata pakay',
+);
+
+/** Romansh (Rumantsch)
+ * @author Gion-andri
+ */
+$messages['rm'] = array(
+	'coll-desc' => '[[Special:Book|Crear cudeschs]]',
+	'coll-book_creator_intro' => "<big>Cun il ''generatur da cudeschs'' pos ti crear cudeschs che cuntegnan paginas da wiki tenor tia schelta. Ti pos exportar il cudesch en differents formats (per exempel PDF u ODF) u empustar in exemplar stampà.</big>",
+	'coll-manage_your_book' => 'Administrar tes cudesch',
+	'coll-book_creator_help' => "Legia [[{{MediaWiki:Coll-helppage}}|la pagina d'agid davart cudeschs]] per dapli infurmaziuns.",
+	'coll-start_book_creator' => 'Activar il generatur da cudeschs',
+	'coll-book_creator_continue' => 'Cuntinuar dad utilisar il generatur da cudeschs',
+	'coll-book_creator_disable_text' => "Il ''generatur da cudeschs'' vegn deactivà ed il cudesch vid il qual ti lavuras vegn stizzà.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text per il modus da cudeschs',
+	'coll-collection' => 'Cudesch',
+	'coll-collections' => 'Cudeschs',
+	'coll-exclusion_category_title' => 'Excluder da la stampa',
+	'coll-print_template_prefix' => 'Stampar',
+	'coll-print_template_pattern' => '$1/Stampa',
+	'coll-unknown_subpage_title' => 'Sutpagina nunenconuschenta',
+	'coll-unknown_subpage_text' => "Questa sutpagina da [[Special:Book|Cudesch]] n'exista betg",
+	'coll-couldnotaddarticle_title' => 'Impussibel dad agiuntar la pagina da wiki',
+	'coll-couldnotaddarticle_msg' => 'La pagina da wiki na pudeva betg vegnir agiuntada.',
+	'coll-couldnotremovearticle_title' => 'Impussibel dad allontanar la pagina da wiki',
+	'coll-couldnotremovearticle_msg' => 'La pagina da wiki na pudeva betg vegnir allontanada.',
+	'coll-noscript_text' => '<h1>Questa pagina basegna JavaScript!</h1>
+<strong>Tes navigatur na sustegna betg JavaScript u che ti has deactivà JavaScript.
+Questa pagina na funcziuna betg correctamain fin che ti activeschas JavaScript.</strong>',
+	'coll-savedbook_template' => 'cudesch_memorisà',
+	'coll-your_book' => 'Tes cudesch',
+	'coll-download_title' => 'Telechargiar',
+	'coll-download_text' => 'Per telechargiar tes cudesch stos ti tscherner in format e cliccar sin il buttun.',
+	'coll-download_as_text' => 'Per telechargiar tes cudesch en il format $1, clicca sin il buttun.',
+	'coll-download' => 'Telechargiar',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Allontanar',
+	'coll-show' => 'Mussar',
+	'coll-move_to_top' => "Spustar a l'entschatta",
+	'coll-move_up' => 'Ensi',
+	'coll-move_down' => 'Engiu',
+	'coll-move_to_bottom' => 'Spustar a la fin',
+	'coll-title' => 'Titel:',
+	'coll-subtitle' => 'Suttitel:',
+	'coll-contents' => 'Cuntegn',
+	'coll-drag_and_drop' => 'Utilisescha drag & drop per midar las successiuns da las paginas da wiki ed ils chapitels',
+	'coll-create_chapter' => 'Crear in chapitel',
+	'coll-sort_alphabetically' => 'Zavrar alfabeticamain',
+	'coll-rename' => 'Renumnar',
+	'coll-new_chapter' => 'Endatescha in num per il chapitel nov',
+	'coll-rename_chapter' => 'Endatescha in num per il chapitel',
+	'coll-no_such_category' => "Questa categoria n'exista betg",
+	'coll-notitle_title' => 'Betg pussaivel dad eruir il titel da la pagina.',
+	'coll-post_failed_title' => "La dumonda da POST n'è betg reussida",
+	'coll-post_failed_msg' => "La dumonda da POST a $1 n'è betg reussida ($2).",
+	'coll-mwserve_failed_title' => 'Errur dal server per calcular graficas',
+	'coll-mwserve_failed_msg' => 'Ina errur è capitada sin il server per calcular graficas: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => "Resposta d'errur dal server",
+	'coll-empty_collection' => 'Cudesch vid',
+	'coll-revision' => 'Versiun: $1',
+	'coll-save_collection_title' => 'Memorisar e cundivider tes cudesch',
+	'coll-save_collection_text' => 'Tscherna il lieu per memorisar tes cudesch:',
+	'coll-login_to_save' => "Sche ti vuls memorisar cudeschs per als utilisar pli tard stos ti [[Special:UserLogin|t'annunziar u crear in conto]].",
+	'coll-personal_collection_label' => 'Cudesch persunal:',
+	'coll-community_collection_label' => 'Cudesch da la communitad:',
+	'coll-save_collection' => 'Memorisar il cudesch',
+	'coll-save_category' => 'Tut ils cudeschs memorisads vegnan agiuntads a la categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Pagina exista gia. 
+Remplazzar?',
+	'coll-overwrite_text' => 'Ina pagina cun il num [[:$1]] exista gia.
+La vuls ti remplazzar cun tes cudesch?',
+	'coll-yes' => 'Gea',
+	'coll-no' => 'Na',
+	'coll-load_overwrite_text' => 'Tes cudesch cuntegnia gia intginas paginas.
+Vuls ti remplazzar tes cudesch actual, agiuntar cuntegn nov u interrumper da chargiar quest cudesch?',
+	'coll-overwrite' => 'Remplazzar',
+	'coll-append' => 'Agiuntar',
+	'coll-cancel' => 'Interrumper',
+	'coll-update' => 'Actualisar',
+	'coll-limit_exceeded_title' => 'Il cudesch è memia grond',
+	'coll-limit_exceeded_text' => 'Tes cudesch è memia grond.
+I na pon betg vegnir agiuntadas ulteriuras paginas.',
+	'coll-rendering_title' => 'Calcular graficas',
+	'coll-rendering_text' => '<p><strong>Spetga durant ch\'il document vegn generà.</strong></p>
+
+<p><strong>Progress:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Questa pagina duess rechargiar automaticamain mintga per secundas. 
+Sche quai na funcziuna betg, clicca en tes navigatur il buttun per rechargiar.</p>',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(pagina wiki: $1)',
+	'coll-rendering_page' => '(pagina: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Infurmaziuns davart la calculaziun grafica da las paginas',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Infurmaziuns davart la calculaziun grafica da collecziuns',
+	'coll-rendering_finished_title' => 'Terminà la calculaziun grafica',
+	'coll-rendering_finished_text' => "<strong>La datoteca dal document è vegnida generada.</strong>
+<strong>[$1 Telechargiar la datoteca]</strong> sin tes computer.
+
+Remartga:
+* Betg cuntent cun il resultat? Legia [[{{MediaWiki:Coll-helppage}}|la pagina d'agid davart cudeschs]] per pussaivladads per optimar el.",
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Infurmaziuns davart la calculaziun grafica da las paginas',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Infurmaziuns davart la calculaziun grafica da collecziuns',
+	'coll-notfound_title' => 'Betg chattà il cudesch',
+	'coll-notfound_text' => 'Betg pussaivel da chattar la pagina dal cudesch.',
+	'coll-download_notfound_title' => 'Betg chattà la datoteca',
+	'coll-download_notfound_text' => "La datoteca che ti emprovas da telechargiar n'exista betg:
+Forsa è ella vegnida stizzada e sto vegnir regenerada.",
+	'coll-download_failed_title' => 'Errur durant telechargiar',
+	'coll-download_failed_text' => 'I ha dà ina errur durant telechargiar la datoteca: $1',
+	'coll-is_cached' => '<ul><li>En il cache è vegnida chattada ina versiun da quest document, pia n\'è nagina calculaziun grafica necessaria.
+<a href="$1">Sfurzar da recalcular la grafica.</a></li></ul>',
+	'coll-excluded-templates' => '* Models en la categoria [[:Category:$1|$1]] èn vegnids exclus.',
+	'coll-blacklisted-templates' => '* Models sin la glista naira [[:$1]] èn vegnids exclus.',
+	'coll-return_to_collection' => '<p>Turnar a <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Empustar sco cudesch stampà',
+	'coll-book_text' => 'Empustar in cudesch stampà tar noss partenari per la stampa sin dumonda.',
+	'coll-order_from_pp' => 'Prevista tar $1',
+	'coll-about_pp' => 'Davart $1',
+	'coll-invalid_podpartner_title' => 'Partenari da stampa sin dumonda nunvalid',
+	'coll-invalid_podpartner_msg' => "Il partenari per la stampa sin dumonda inditgà n'è betg valaivel. 
+Contactescha tes administratur da MediaWiki.",
+	'coll-license' => 'Licenza',
+	'coll-return_to' => 'Turnar a [[:$1]]',
+	'coll-more_info' => 'Mussar ulteriuras infurmaziuns',
+	'coll-hide_info' => 'Zuppentar infurmaziuns',
+	'coll-order_info_article' => "{{MediaWiki:Coll-helppage}}/Infurmaziuns per l'empustaziun tar PediaPress",
+	'coll-suggest_title' => 'Paginas proponidas per tes cudesch',
+	'coll-suggest_intro_text' => 'Las propostas sa basan sin ils artitgels actuals en tes cudesch.
+La glista vegn actualisada sche ti cliccas sin ils buttuns per agiuntar u allontanar.',
+	'coll-suggested_articles' => 'Propostas',
+	'coll-suggest_reset_bans' => 'redefinir',
+	'coll-suggest_reset_bans_tooltip' => 'Mussar las propostas allontanadas ultimamain',
+	'coll-suggest_add_selected' => 'Agiuntar las paginas tschernidas',
+	'coll-suggest_ban_selected' => 'Allontanar las paginas tschernidas',
+	'coll-suggest_your_book' => 'Tes cudesch',
+	'coll-suggest_show' => 'mussar',
+	'coll-suggest_ban_tooltip' => 'Allontanar questa pagina da la glista da propostas',
+	'coll-suggest_article_ban' => 'La pagina <strong>$1</strong> è vegnida allontanada da las propostas ($2).',
+	'coll-suggest_article_add' => 'La pagina <strong>$1</strong> è vegnida agiuntada a tes cudesch ($2).',
+	'coll-suggest_article_remove' => 'La pagina <strong>$1</strong> è vegnida allontanada da tes cudesch ($2).',
+	'coll-suggest_undo_tooltip' => 'Revocar questa acziun',
+	'coll-suggest_undo' => 'revocar',
+	'coll-load_local_book' => 'Clicca sin OK per cuntinuar cun tes cudesch %TITLE% che cuntegna %NUMPAGES% paginas da wiki. Clicca sin Interrumper per al stizzar e cumenzar cun in cudesch vid.',
+	'right-collectionsaveasuserpage' => "Memorisar cudeschs sco pagina d'utilisader",
+	'right-collectionsaveascommunitypage' => 'Memorisar cudeschs sco pagina da la communitad',
+);
+
 /** Romanian (Română)
+ * @author Cin
+ * @author Danutz
+ * @author Firilacroco
  * @author KlaudiuMihaila
+ * @author Minisarm
+ * @author Stelistcristi
+ * @author Strainu
  */
 $messages['ro'] = array(
-	'coll-desc' => '[[Special:Collection|Colecţionează pagini]], generează fişiere PDF',
-	'coll-collection' => 'Colecţie',
-	'coll-collections' => 'Colecţii',
-	'coll-create_a_book' => 'Creează o carte',
-	'coll-add_page' => 'Adaugă pagină wiki',
-	'coll-remove_page' => 'Şterge pagină wiki',
-	'coll-add_category' => 'Adaugă categorie',
-	'coll-load_collection' => 'Încarcă colecţie',
-	'coll-show_collection' => 'Arată colecţie',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pagină|pagini}}',
-	'coll-your_book' => 'Cartea ta',
-	'coll-remove' => 'Elimină',
-	'coll-show' => 'Arată',
+	'coll-desc' => '[[Special:Book|Creare de cărți]]',
+	'coll-book_creator_intro' => "<big>Folosind ''creatorul de cărți'' puteți întocmi o carte care să conțină pagini wiki alese de dumneavoastră. O puteți exporta apoi în diverse formate de fișiere (cum ar fi de pildă PDF sau ODF) sau puteți comanda o copie tipărită a acesteia.</big>",
+	'coll-manage_your_book' => 'Gestionați-vă cartea',
+	'coll-book_creator_help' => 'Consultați [[{{MediaWiki:Coll-helppage}}|pagina de ajutor despre cărți]] pentru mai multe informații.',
+	'coll-start_book_creator' => 'Pornește creatorul de cărți',
+	'coll-book_creator_continue' => 'Continuați utilizarea creatorului de cărți',
+	'coll-book_creator_disable_text' => "''Creatorul de cărți'' va fi dezactivat, iar cartea la care lucrați va fi ștearsă.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text creator de cărți',
+	'coll-collection' => 'Carte',
+	'coll-collections' => 'Cărți',
+	'coll-exclusion_category_title' => 'Excludere de la tipărire',
+	'coll-print_template_prefix' => 'Tipărește',
+	'coll-print_template_pattern' => '$1/Tipărire',
+	'coll-unknown_subpage_title' => 'Subpagină necunoscută',
+	'coll-unknown_subpage_text' => 'Această subpagină a [[Special:Book|cărții]] nu există',
+	'coll-couldnotaddarticle_title' => 'Nu s-a putut adăuga pagina',
+	'coll-couldnotaddarticle_msg' => 'Pagina nu a putut fi adăugată.',
+	'coll-couldnotremovearticle_title' => 'Nu se poate elimina pagina',
+	'coll-couldnotremovearticle_msg' => 'Pagina nu a putut fi eliminată.',
+	'coll-noscript_text' => '<h1>Este necesar JavaScript!</h1>
+<strong>Navigatorul dumneavoastră fie nu suportă JavaScript, fie acest serviciu a fost oprit.
+Această pagină nu va putea fi corect încărcată atât timp cât JavaScript nu este pornit.</strong>',
+	'coll-savedbook_template' => 'carte_salvată',
+	'coll-your_book' => 'Cartea dumneavoastră',
+	'coll-download_title' => 'Descărcare',
+	'coll-download_text' => 'Pentru descărcarea cărții dumneavoastră alegeți un format și apăsați butonul.',
+	'coll-download_as_text' => 'Pentru descărcarea cărții dumneavoastră în formatul $1, apăsați butonul.',
+	'coll-download' => 'Descărcare',
+	'coll-format_label' => 'Formatare:',
+	'coll-remove' => 'Eliminare',
+	'coll-show' => 'Afișare',
+	'coll-move_to_top' => 'Mergi la început',
+	'coll-move_up' => 'Mergi sus',
+	'coll-move_down' => 'Mergi jos',
+	'coll-move_to_bottom' => 'Mergi la bază',
 	'coll-title' => 'Titlu:',
 	'coll-subtitle' => 'Subtitlu:',
 	'coll-contents' => 'Cuprins',
-	'coll-create_chapter' => 'Creează capitol',
+	'coll-drag_and_drop' => 'Folosiți funcția „glisare și plasare” pentru a ordona paginile și capitolele.',
+	'coll-create_chapter' => 'Creare capitol',
 	'coll-sort_alphabetically' => 'Ordonează alfabetic',
-	'coll-rename' => 'Redenumeşte',
-	'coll-post_failed_title' => 'Cerere POST eşuată',
-	'coll-post_failed_msg' => 'Cererea POST către $1 a eşuat ($2).',
-	'coll-error_reponse' => 'Răspuns de eroare de la server',
-	'coll-empty_collection' => 'Colecţie goală',
+	'coll-rename' => 'Redenumire',
+	'coll-new_chapter' => 'Introduceți numele noului capitol',
+	'coll-rename_chapter' => 'Introduceți noul nume al capitolului',
+	'coll-no_such_category' => 'Nu există o asemenea categorie',
+	'coll-notitle_title' => 'Titlul paginii nu a putut fi determinat.',
+	'coll-post_failed_title' => 'Cerere POST eșuată',
+	'coll-post_failed_msg' => 'Cererea POST către $1 a eșuat ($2).',
+	'coll-mwserve_failed_title' => 'Eroare de randare din partea serverului',
+	'coll-mwserve_failed_msg' => 'A apărut o eroare pe serverul de randare: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Mesaj de eroare de la server',
+	'coll-empty_collection' => 'Carte fără conținut',
 	'coll-revision' => 'Versiune: $1',
-	'coll-save_collection_title' => 'Salvează şi împarte colecţia',
-	'coll-personal_collection_label' => 'Colecţie personală:',
-	'coll-save_collection' => 'Salvează colecţia',
+	'coll-save_collection_title' => 'Salvarea și partajarea cărții',
+	'coll-save_collection_text' => 'Alegeți o locație de depozitare pentru cartea dumneavoastră:',
+	'coll-login_to_save' => 'Dacă doriți să salvați cărțile pentru o folosire ulterioară, vă rugăm [[Special:UserLogin|să vă autentificați sau să vă creați un cont]].',
+	'coll-personal_collection_label' => 'Carte personală:',
+	'coll-community_collection_label' => 'Carte a comunității:',
+	'coll-save_collection' => 'Salvează cartea',
+	'coll-save_category' => 'Toate cărțile salvate sunt introduse în categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Pagina există.
-Suprascrie?',
+Suprascriu?',
+	'coll-overwrite_text' => 'O pagină cu numele [[:$1]] există deja.
+Doriți ca aceasta să fie înlocuită de cartea dumneavoastră?',
 	'coll-yes' => 'Da',
 	'coll-no' => 'Nu',
-	'coll-overwrite' => 'Suprascrie',
-	'coll-cancel' => 'Anulează',
-	'coll-notfound_title' => 'Colecţie negăsită',
-	'coll-return_to_collection' => '<p>Întoarcere la <a href="$1">$2</a></p>',
-	'coll-order_from_pp' => 'Comandă carte de la $1',
+	'coll-load_overwrite_text' => 'Cartea dumneavoastră conține deja câteva pagini.
+Ce doriți să faceți în continuare: să suprascrieți actuala carte, să adăugați noul conținut sau să revocați încărcarea acestei cărți?',
+	'coll-overwrite' => 'Suprascriere',
+	'coll-append' => 'Adăugare',
+	'coll-cancel' => 'Renunțare',
+	'coll-update' => 'Actualizează',
+	'coll-limit_exceeded_title' => 'Carte prea mare',
+	'coll-limit_exceeded_text' => 'Cartea dumneavoastră este prea mare.
+Nicio altă pagină nu mai poate fi adăugată.',
+	'coll-rendering_title' => 'Se generează',
+	'coll-rendering_text' => '<p><strong>Vă rugăm să așteptați până când documentul este generat.</strong></p>
+
+<p><strong>Progres:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Această pagină ar trebui să se reîmprospăteze automat la fiecare câteva secunde.
+Dacă nu se întâmplă așa, vă rugăm să apăsați butonul de reîncărcare al navigatorului dumneavoastră.</p>',
+	'coll-rendering_status' => '<strong>Stare:</strong> $1',
+	'coll-rendering_article' => '(pagină wiki: $1)',
+	'coll-rendering_page' => '(pagină: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informații despre generarea paginilor',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informații despre generarea colecțiilor',
+	'coll-rendering_finished_title' => 'Generare finalizată',
+	'coll-rendering_finished_text' => '<strong>Fișierul documentului a fost generat.</strong>
+<strong>[$1 Descărcați-l]</strong> în calculatorul dumneavoastră.
+
+Note:
+* Nu sunteți mulțumit de rezultat? Consultați [[{{MediaWiki:Coll-helppage}}|pagina de ajutor destinată cărților]] pentru posibile modalități de îmbunătățire.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informații despre generarea paginilor',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informații despre generarea colecțiilor',
+	'coll-notfound_title' => 'Cartea nu a fost găsită',
+	'coll-notfound_text' => 'Pagina cărții nu a putut fi găsită.',
+	'coll-download_notfound_title' => 'Fișierul nu a putut fi găsit',
+	'coll-download_notfound_text' => 'Fișierul pe care încercați să îl descărcați nu există:
+Este posibil ca acesta să fi fost șters și trebuie regenerat.',
+	'coll-download_failed_title' => 'Eroare în timpul descărcării',
+	'coll-download_failed_text' => 'S-a produs o eroare în timpul descărcării fișierului: $1',
+	'coll-is_cached' => '<ul><li>O versiune din cache a documentului a fost găsită, deci nu a mai fost necesară o regenerare.
+<a href="$1">Forțează regenerarea.</a></li></ul>',
+	'coll-excluded-templates' => '* Formatele din categoria [[:Category:$1|$1]] au fost excluse.',
+	'coll-blacklisted-templates' => '* Formatele aflate în lista neagră de la [[:$1]] au fost excluse.',
+	'coll-return_to_collection' => '<p>Înapoi la <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Comandarea ca document tipărit',
+	'coll-book_text' => 'Obțineți o carte tipărită de la partenerul nostru.',
+	'coll-order_from_pp' => 'Previzualizează cu $1',
 	'coll-about_pp' => 'Despre $1',
-	'coll-license' => 'Licenţă',
+	'coll-invalid_podpartner_title' => 'Partener de tipărire incorect',
+	'coll-invalid_podpartner_msg' => 'Partenerul ales pentru tipărire este incorect.
+Vă rugăm să contactați administratorul sitului MediaWiki.',
+	'coll-license' => 'Licență',
+	'coll-return_to' => 'Înapoi la [[:$1]]',
+	'coll-more_info' => 'Arată mai multe informații',
+	'coll-hide_info' => 'Ascunde informațiile',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informații despre comanda către PediaPress',
+	'coll-suggest_title' => 'Pagini sugerate pentru cartea dumneavoastră',
+	'coll-suggest_intro_text' => 'Sugestiile se bazează pe actualul conținut al cărții dumneavoastră.
+Această listă este actualizată de fiecare dată când apăsați butoanele de adăugare sau eliminare.',
+	'coll-suggested_articles' => 'Sugestii',
+	'coll-suggest_reset_bans' => 'resetează',
+	'coll-suggest_reset_bans_tooltip' => 'Afișarea sugestiilor eliminate anterior',
+	'coll-suggest_add_selected' => 'Adaugă paginile selectate',
+	'coll-suggest_ban_selected' => 'Elimină paginile selectate',
+	'coll-suggest_your_book' => 'Cartea dumneavoastră',
+	'coll-suggest_show' => 'arată',
+	'coll-suggest_ban_tooltip' => 'Elimină această pagină din lista cu sugestii',
+	'coll-suggest_article_ban' => 'Pagina <strong>$1</strong> a fost eliminată de la sugestii ($2).',
+	'coll-suggest_article_add' => 'Pagina <strong>$1</strong> a fost adăugată în cartea dumneavoastră ($2).',
+	'coll-suggest_article_remove' => 'Pagina <strong>$1</strong> a fost eliminată din cartea dumneavostră ($2).',
+	'coll-suggest_undo_tooltip' => 'Anularea acestei acțiuni',
+	'coll-suggest_undo' => 'anulează',
+	'coll-load_local_book' => 'Apăsați OK pentru a continua cu actuala carte (intitulată %TITLE%), care conține %NUMPAGES% pagini. Apăsați Renunțare pentru a o șterge și a începe o nouă carte.',
+	'right-collectionsaveasuserpage' => 'Salvează cartea ca pagină de utilizator',
+	'right-collectionsaveascommunitypage' => 'Salvează cartea ca o pagină a comunității',
 );
 
 /** Tarandíne (Tarandíne)
  * @author Joetaras
+ * @author Reder
  */
 $messages['roa-tara'] = array(
 	'coll-desc' => '[[Special:Book|Ccreje le libbre]]',
+	'coll-manage_your_book' => "Gestisce 'u libbre tune",
+	'coll-start_book_creator' => "Accuminze 'nu crijatore de libbre",
+	'coll-book_creator_continue' => "Condinue ad ausà 'u crijatore de libbre",
+	'coll-book_creator_disable_text' => "'U ''Crijatore de libbre'' avrà da essere disabbiletate e le libbre sus a cui tu stè fatijanne honne a essere luàte.",
+	'coll-book_creator_text_article' => "{{MediaWiki:Coll-helppage}}/Teste d'u crijatore de libbre",
 	'coll-collection' => 'Libbre',
 	'coll-collections' => 'Libbre',
 	'coll-exclusion_category_title' => 'Esclude in stambe',
 	'coll-print_template_prefix' => 'Stambe',
-	'coll-create_a_book' => "Ccreje 'nu libbre",
-	'coll-add_page' => "Aggiunge 'na pàgene de Uicchi",
-	'coll-remove_page' => "Live 'na pàgene de Uicchi",
-	'coll-add_category' => "Aggiunge 'na categorije",
-	'coll-load_collection' => "Careche 'nu libbre",
-	'coll-show_collection' => "Fà vedè 'nu libbre",
-	'coll-help_collections' => "Aiute sus a 'u libbre",
-	'coll-n_pages' => '$1 {{PLURAL:$1|pàgene|pàggene}}',
+	'coll-print_template_pattern' => '$1/Stambe',
 	'coll-unknown_subpage_title' => 'Sottopàgene scanusciute',
+	'coll-unknown_subpage_text' => "Sta sottepàgene de [[Special:Book|Libbre]] non g'esiste",
+	'coll-couldnotaddarticle_title' => "Non ge puè aggiungere 'na pàgene de Uicchi",
+	'coll-couldnotaddarticle_msg' => "'A pàgene de uicchi non ge pòte essere aggiunde.",
+	'coll-couldnotremovearticle_title' => "Non ge puè luà 'na pàgene de Uicchi",
+	'coll-couldnotremovearticle_msg' => "'A pàgene de uicchi non ge pòte essere luàte.",
+	'coll-savedbook_template' => 'libbre_reggistrate',
+	'coll-your_book' => "'U libbre tune",
+	'coll-download_title' => 'Scareche',
+	'coll-download_text' => "Pè scarecà 'nu libbre scacchie 'nu furmate e cazze 'u bottone.",
+	'coll-download_as_text' => "Pè scarecà 'nu libbre jndr'ô furmate $1 cazze 'u bottone.",
+	'coll-download' => 'Scareche',
+	'coll-format_label' => 'Formate:',
+	'coll-remove' => 'Live',
+	'coll-show' => 'Fà vedè',
+	'coll-move_to_top' => 'Spuèste susa sus',
+	'coll-move_up' => "'Nghiane",
+	'coll-move_down' => 'Scinne',
+	'coll-move_to_bottom' => 'Spuèste sotta sotte',
+	'coll-title' => 'Titele:',
+	'coll-subtitle' => 'Sotto titele:',
+	'coll-contents' => 'Condenute',
+	'coll-drag_and_drop' => 'Ause spuèste & lasse pe ordenà le pàggene de uicchi e le capitole',
+	'coll-create_chapter' => "Ccreja 'nu capitele",
+	'coll-sort_alphabetically' => 'Ordene alfabbeticamende',
+	'coll-rename' => 'Renomene',
+	'coll-new_chapter' => "Mitte 'u nome pu capitele nuève",
+	'coll-rename_chapter' => "Mitte 'u nome nuève pu capitele",
+	'coll-no_such_category' => 'Nisciuna categorije',
+	'coll-notitle_title' => "'U titele d'a pàgene non ge pòte essere determinte.",
+	'coll-post_failed_title' => 'Richieste de POST fallite',
+	'coll-post_failed_msg' => "'A richieste de POST a $1 ha fallite ($2).",
+	'coll-mwserve_failed_title' => 'Server de rendere in errore',
+	'coll-error_reponse' => "Resposte cu l'errore da 'u server",
+	'coll-empty_collection' => 'Libbre vacande',
+	'coll-revision' => 'Revisione: $1',
+	'coll-save_collection_title' => "Reggistre e condivide 'u libbre tune",
+	'coll-save_collection_text' => "Scacchie 'na posiziune de archivijaziune pè 'u libbre tue:",
+	'coll-login_to_save' => "Ce tu vuè cu salve 'nu libbre pè le ausà cchiù nnande, sì pregate de [[Special:UserLogin|trasè o crijà 'nu cunde utinde]].",
+	'coll-personal_collection_label' => 'Libbre personale:',
+	'coll-community_collection_label' => "Libbre d'a comunitate:",
+	'coll-save_collection' => "Reggistre 'u libbre",
+	'coll-overwrite_title' => "'A pàgene esiste.
+Agghia sovrascrivere?",
+	'coll-overwrite_text' => "'Na pàgene cu 'u nome [[:$1]] esiste ggià.
+A vuè cange cu 'u libbre tune?",
+	'coll-yes' => 'Sine',
+	'coll-no' => 'None',
+	'coll-overwrite' => 'Sovrascrive',
+	'coll-append' => 'Mitte in code',
+	'coll-cancel' => 'Annulle',
+	'coll-update' => 'Aggiorne',
+	'coll-limit_exceeded_title' => 'Libbre troppe gruésse',
+	'coll-limit_exceeded_text' => "'U libbre tue jè grnne assaje.
+Non ge puè sckaffà cchiù otre pàgene.",
+	'coll-rendering_title' => 'Esecuzione',
+	'coll-rendering_status' => '<strong>State:</strong> $1',
+	'coll-rendering_article' => '(pàgene de uicchi: $1)',
+	'coll-rendering_page' => '(pàgene: $1)',
+	'coll-rendering_finished_title' => 'Renderizzazzione spicciate',
+	'coll-notfound_title' => 'Libbre non acchiate',
+	'coll-notfound_text' => "'Mbossibbele acchiere 'a pàgene d'u libbre.",
+	'coll-download_notfound_title' => 'File non acchiate',
+	'coll-download_failed_title' => "Errore durande 'u download",
+	'coll-download_failed_text' => "S'a verificate 'n'errore quanne ste scarecave 'u file: $1",
+	'coll-excluded-templates' => "* Le template jndr'à categorije [[:Category:$1|$1]] onne state escluse.",
+	'coll-blacklisted-templates' => '* Le template sus a lista gnore [[:$1]] onne state escluse.',
+	'coll-return_to_collection' => '<p>Tuèrne a <a href="$1">$2</a></p>',
+	'coll-book_title' => "Ordene cumme 'nu libbre stambate",
+	'coll-book_text' => "Pigghie 'u libbre stambate da le partner nuèstre de stambe a richieste.",
+	'coll-order_from_pp' => 'Andeprime cu $1',
+	'coll-about_pp' => 'Sus a $1',
+	'coll-invalid_podpartner_title' => 'Partner POD invalide',
+	'coll-license' => 'Licenze',
+	'coll-return_to' => 'Tuèrne a [[:$1]]',
+	'coll-more_info' => "Fa vedè cchiù 'mbormaziune",
+	'coll-hide_info' => "Scunne le 'mbormaziune",
+	'coll-order_info_article' => "{{MediaWiki:Coll-helppage}}/'Mbormaziune sus a l'ordine de PediaPress",
+	'coll-suggest_title' => 'Pàggene suggerite pu libbre tune',
+	'coll-suggested_articles' => 'Suggereminde',
+	'coll-suggest_reset_bans' => 'azeere',
+	'coll-suggest_reset_bans_tooltip' => 'Visualizze le commende luàte precedentemènde',
+	'coll-suggest_add_selected' => 'Aggiunge le pàggene scacchiate',
+	'coll-suggest_ban_selected' => 'Live le pàggene scacchiate',
+	'coll-suggest_your_book' => "'U libbre tune",
+	'coll-suggest_show' => 'fà vedè',
+	'coll-suggest_ban_tooltip' => "Luà stà pàgene d'a liste de le suggerimènde",
+	'coll-suggest_article_ban' => "'A pàgene <strong>$1</strong> ha state luàte da le suggerimènde ($2).",
+	'coll-suggest_article_add' => "'A pàgene <strong>$1</strong> ha state aggiunde a le libbre ($2).",
+	'coll-suggest_article_remove' => "'A pàgene <strong>$1</strong> ha state luàte da le libbre ($2).",
+	'coll-suggest_undo_tooltip' => "Annulle st'azione",
+	'coll-suggest_undo' => 'annulle',
+	'right-collectionsaveasuserpage' => "Salve 'u libbre cumme pàgene utinde",
+	'right-collectionsaveascommunitypage' => "Salve 'a pàgene cumme portale d'a comunitate",
 );
 
 /** Russian (Русский)
  * @author Ahonc
  * @author Aleksandrit
+ * @author Amikeco
  * @author EugeneZelenko
  * @author Ferrer
  * @author Innv
  * @author Kaganer
+ * @author Lockal
  * @author MaxSem
+ * @author Putnik
  * @author Sergey kudryavtsev
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
 	'coll-desc' => '[[Special:Book|Создаёт книги]]',
+	'coll-book_creator_intro' => "<big>С помощью ''книжного мастера'' вы можете создать книгу, содержащую выбранные вами вики-страницы. Вы сможете экспортировать книги в различные форматы (например, в PDF или ODF) или заказать печатный экземпляр.</big>",
+	'coll-manage_your_book' => 'Управление вашей книгой',
+	'coll-book_creator_help' => 'Дополнительную информацию см. в [[{{MediaWiki:Coll-helppage}}|справке о книгах]].',
+	'coll-start_book_creator' => 'Запустить книжного мастера',
+	'coll-book_creator_continue' => 'Продолжить использование книжного мастера',
+	'coll-book_creator_disable_text' => "''Книжный мастер'' будет отключён, книга, над которой вы сейчас работаете — удалена.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Текст книжного мастера',
 	'coll-collection' => 'Книга',
 	'coll-collections' => 'Книги',
 	'coll-exclusion_category_title' => 'Исключения из печати',
 	'coll-print_template_prefix' => 'Печать',
 	'coll-print_template_pattern' => '$1/Печать',
-	'coll-create_a_book' => 'Создать книгу',
-	'coll-add_page' => 'Добавить страницу',
-	'coll-add_page_tooltip' => 'Добавить текущую вики-страницу в книгу',
-	'coll-remove_page' => 'Удалить страницу',
-	'coll-remove_page_tooltip' => 'Удалить текущую вики-страницу из книги',
-	'coll-add_category' => 'Добавить категорию',
-	'coll-add_category_tooltip' => 'Добавить все статьи этой категории в книгу',
-	'coll-load_collection' => 'Загрузить книгу',
-	'coll-load_collection_tooltip' => 'Загрузить эту книгу как вашу текущую книгу',
-	'coll-show_collection' => 'Показать книгу',
-	'coll-show_collection_tooltip' => 'Нажмите для редактирования/загрузки/заказа книги',
-	'coll-help_collections' => 'Справка по книгам',
-	'coll-help_collections_tooltip' => 'Показать справку о «книжных» инструментах',
-	'coll-n_pages' => '$1 {{PLURAL:$1|страница|страницы|страниц}}',
 	'coll-unknown_subpage_title' => 'Неизвестная подстраница',
 	'coll-unknown_subpage_text' => 'Этой подстраницы [[Special:Book|книги]] не существует',
-	'coll-printable_version_pdf' => 'PDF-версия',
-	'coll-download_as' => 'Загрузить как $1',
+	'coll-couldnotaddarticle_title' => 'Не удалось добавить статью',
+	'coll-couldnotaddarticle_msg' => 'Эта статья не может быть добавлена.',
+	'coll-couldnotremovearticle_title' => 'Не удалось удалить статью',
+	'coll-couldnotremovearticle_msg' => 'Эта статья не может быть удалена.',
 	'coll-noscript_text' => '<h1>Требуется JavaScript!</h1>
 <strong>Ваш браузер не поддерживает JavaScript или данная поддержка была отключена.
 Эта страница не будет работать правильно, если JavaScript не включен.</strong>',
-	'coll-intro_text' => 'Создание и управление вашей персональной коллекцией вики-страниц.<br />Подробнее см. на [[{{MediaWiki:Coll-helppage}}]].',
-	'coll-helppage' => 'Help:Книги',
-	'coll-bookscategory' => 'Книги',
-	'coll-savedbook_template' => 'сохранённая_книга',
+	'coll-savedbook_template' => 'сохранённая книга',
 	'coll-your_book' => 'Ваша книга',
-	'coll-download_title' => 'Загрузить',
-	'coll-download_text' => 'Чтобы загрузить автономную версию, выберите формат и нажмите кнопку.',
-	'coll-download_as_text' => 'Нажмите кнопку, чтобы загрузить версию в формате $1.',
+	'coll-download_title' => 'Скачать',
+	'coll-download_text' => 'Чтобы скачать свою книгу, выберите формат и нажмите кнопку.',
+	'coll-download_as_text' => 'Нажмите кнопку, чтобы скачать свою книгу в формате $1.',
 	'coll-download' => 'Загрузить',
 	'coll-format_label' => 'Формат:',
 	'coll-remove' => 'Удалить',
@@ -5804,15 +10333,12 @@
 	'coll-move_up' => 'Передвинуть выше',
 	'coll-move_down' => 'Передвинуть ниже',
 	'coll-move_to_bottom' => 'Передвинуть вниз',
-	'coll-title' => 'Название:',
+	'coll-title' => 'Заголовок:',
 	'coll-subtitle' => 'Подзаголовок:',
 	'coll-contents' => 'Содержание',
 	'coll-drag_and_drop' => 'Чтобы упорядочить вики-страницы и главы, перетаскивайте их мышкой',
 	'coll-create_chapter' => 'Создать главу',
 	'coll-sort_alphabetically' => 'Упорядочивать по алфавиту',
-	'coll-clear_collection' => 'Очистить книгу',
-	'coll-clear_collection_tooltip' => 'Удалите все статьи из текущей книги',
-	'coll-clear_collection_confirm' => 'Вы действительно желаете полностью очистить вашу книгу?',
 	'coll-rename' => 'Переименовать',
 	'coll-new_chapter' => 'Введите имя для новой главы',
 	'coll-rename_chapter' => 'Введите новое имя главы',
@@ -5826,12 +10352,12 @@
 	'coll-empty_collection' => 'Пустая книга',
 	'coll-revision' => 'Версия: $1',
 	'coll-save_collection_title' => 'Сохранить книгу и открыть к ней доступ',
-	'coll-save_collection_text' => 'Выберите местоположение:',
-	'coll-login_to_save' => 'Чтобы сохранить книгу для дальнейшего использования, пожалуйста, [[Special:UserLogin|представьтесь системе или создайте учётную запись]].',
+	'coll-save_collection_text' => 'Выберите местоположение для вашей книги:',
+	'coll-login_to_save' => 'Чтобы сохранить книгу для дальнейшего использования, пожалуйста, [[Special:UserLogin|авторизуйтесь или создайте учётную запись]].',
 	'coll-personal_collection_label' => 'Личная книга:',
 	'coll-community_collection_label' => 'Книга сообщества:',
 	'coll-save_collection' => 'Сохранить книгу',
-	'coll-save_category' => 'Книги сохранены в категории [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Все сохраняемые книги добавляются в категорию [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Страница существует. Перезаписать?',
 	'coll-overwrite_text' => 'Страница с именем [[:$1]] уже существует.
 Вы хотите чтобы она была заменена вашей коллекцией?',
@@ -5847,70 +10373,248 @@
 	'coll-limit_exceeded_text' => 'Книга имеет слишком большой размер.
 В неё больше нельзя добавлять страницы.',
 	'coll-rendering_title' => 'Создание',
-	'coll-rendering_text' => '<p><strong>Пожалуйста, подождите, идёт создание документа.</strong></p>
+	'coll-rendering_text' => '<p><strong>Пожалуйста, подождите — идёт создание документа.</strong></p>
 
 <p><strong>Ход работы:</strong> <span id="renderingProgress">$1</span> % <span id="renderingStatus">$2</span></p>
 
 <p>Эта страница должна обновляться раз в несколько секунд.
-Если этого не происходит, пожалуйста, нажмите кнопку «обновить» браузера.</p>',
+Если этого не происходит, нажмите кнопку «обновить» браузера.</p>',
 	'coll-rendering_status' => '<strong>Статус:</strong> $1',
 	'coll-rendering_article' => '(статья: $1)',
 	'coll-rendering_page' => '(страница: $1)',
-	'coll-rendering_finished_title' => 'Создание завершено',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о странице',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о коллекции',
+	'coll-rendering_finished_title' => 'Отрисовка завершена',
 	'coll-rendering_finished_text' => '<strong>Файл документа создан.</strong>
-<strong>[$1 Загрузить файл]</strong> на свой компьютер.
+<strong>[$1 Скачать файл]</strong> на свой компьютер.
 
 Замечание:
 * Не удовлетворены результатом? Возможности его улучшения описаны на [[{{MediaWiki:Coll-helppage}}|справочной странице о книгах]].',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о странице',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Отрисовка текста сведений о коллекции',
 	'coll-notfound_title' => 'Книга не найдена',
 	'coll-notfound_text' => 'Невозможно найти страницу книги.',
+	'coll-download_notfound_title' => 'Файл не найден',
+	'coll-download_notfound_text' => 'Файла, который вы пытаетесь загрузить, не существует. Может быть, он был удален, и его необходимо воссоздать.',
+	'coll-download_failed_title' => 'Ошибка в процессе скачивания',
+	'coll-download_failed_text' => 'Обнаружена ошибка при скачивании файла: $1',
 	'coll-is_cached' => '<ul><li>Найдена закэшированная версия этого документа, отрисовка не потребовалась. <a href="$1">Всё-таки запустить отрисовку.</a></li></ul>',
 	'coll-excluded-templates' => '* Шаблоны из категории [[:Category:$1|$1]] были исключены.',
 	'coll-blacklisted-templates' => '* Шаблоны из чёрного списка [[:$1]] были исключены.',
 	'coll-return_to_collection' => '<p>Назад к <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Заказать печатную книгу',
 	'coll-book_text' => 'Получить печатную книгу от нашего партнёра:',
-	'coll-order_from_pp' => 'Заказ книги в $1',
+	'coll-order_from_pp' => 'Предпросмотр посредством $1',
 	'coll-about_pp' => 'О $1',
 	'coll-invalid_podpartner_title' => 'Недействительный POD-партнёр',
 	'coll-invalid_podpartner_msg' => 'Предоставляемый POD-партнёр недействителен.
 Пожалуйста, свяжитесь с вашим администратором MediaWiki.',
 	'coll-license' => 'Лицензия',
 	'coll-return_to' => 'Возврат к [[:$1]]',
+	'coll-more_info' => 'Показать больше информации',
+	'coll-hide_info' => 'Скрыть информацию',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Информация о заказе PediaPress',
+	'coll-suggest_title' => 'Предлагаемые для вашей книги страницы',
+	'coll-suggest_intro_text' => 'Предложения основываются на текущем наборе вики-страниц вашей книги.
+Список обновляется всякий раз, когда вы нажмете на кнопки добавления или удаления.',
+	'coll-suggested_articles' => 'Предложения',
+	'coll-suggest_reset_bans' => 'сбросить',
+	'coll-suggest_reset_bans_tooltip' => 'Показать ранее удалённые предложения',
+	'coll-suggest_add_selected' => 'Добавить выбранные страницы',
+	'coll-suggest_ban_selected' => 'Удалить выбранные страницы',
+	'coll-suggest_your_book' => 'Ваша книга',
+	'coll-suggest_show' => 'показывать',
+	'coll-suggest_ban_tooltip' => 'Удалить эту страницу из списка предложений',
+	'coll-suggest_article_ban' => 'Страница <strong>$1</strong> была удалена из списка предложений ($2).',
+	'coll-suggest_article_add' => 'В вашу книгу ($2) была добавлена страница <strong>$1</strong>.',
+	'coll-suggest_article_remove' => 'Из вашей книги ($2) была удалена страница <strong>$1</strong>.',
+	'coll-suggest_undo_tooltip' => 'Отменить это действие',
+	'coll-suggest_undo' => 'отменить',
+	'coll-load_local_book' => 'Нажмите «ОК», чтобы продолжить работу с вашей книгой %TITLE%, содержащей %NUMPAGES% вики-страниц. Нажмите «Отмена», чтобы удалить её и начать с пустой книги.',
+	'right-collectionsaveasuserpage' => 'сохранение книг как страниц участника',
+	'right-collectionsaveascommunitypage' => 'сохранение книг как страниц сообщества',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'coll-desc' => '[[Special:Book|Створює книгы]]',
+	'coll-book_creator_intro' => "<big>За помочі ''едітора книг'' собі можете створити книгу з вами выбраных вікі-сторінок. Пак собі книгу можете експортовати до різных форматів (наприклад PDF ці ODF) або собі обїднати друковану верзію.</big>",
+	'coll-manage_your_book' => 'Управлїня вашой книгы',
+	'coll-book_creator_help' => 'Далшы інформації найдете на [[{{MediaWiki:Coll-helppage}}|сторінцї помочі ку книгам]].',
+	'coll-start_book_creator' => 'Спустити едітор книг',
+	'coll-book_creator_continue' => 'Охабити едітор книг запнутый',
+	'coll-book_creator_disable_text' => "''Едітор книг'' буде выпнутый і книга, на котрій робите, буде змазана.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Текст ку едітору книг',
+	'coll-collection' => 'Книга',
+	'coll-collections' => 'Книгы',
+	'coll-exclusion_category_title' => 'Не друковати',
+	'coll-print_template_prefix' => 'Друк',
+	'coll-print_template_pattern' => '$1/Друк',
+	'coll-unknown_subpage_title' => 'Незнама підсторінка',
+	'coll-unknown_subpage_text' => 'Тота підсторінка [[Special:Book|книгы]] не єствує',
+	'coll-couldnotaddarticle_title' => 'Не подарило ся придати сторінку',
+	'coll-couldnotaddarticle_msg' => 'Вікі сторінка не може быти придана.',
+	'coll-couldnotremovearticle_title' => 'Сторінка не могла быти одобрана',
+	'coll-couldnotremovearticle_msg' => 'Вікі сторінка не могла быти одстранена.',
+	'coll-noscript_text' => '<h1>Треба JavaScript!</h1>
+<strong>Ваш переглядач не підпорує JavaScript або маєте JavaScript выпнутый.
+Тота сторінка не буде правилно фунґовати, покы JavaScript не запнете.</strong>',
+	'coll-savedbook_template' => 'уложена книга',
+	'coll-your_book' => 'Ваша книга',
+	'coll-download_title' => 'Скачати',
+	'coll-download_text' => 'Про скачаня книгы собі звольте формат і клікните на клапку.',
+	'coll-download_as_text' => 'Верзію у форматї $1 собі можете скачати клікнутём на клапку.',
+	'coll-download' => 'Скачати',
+	'coll-format_label' => 'Формат:',
+	'coll-remove' => 'Одстранити',
+	'coll-show' => 'Вказати',
+	'coll-move_to_top' => 'Пересунути горі',
+	'coll-move_up' => 'Пересунути высше',
+	'coll-move_down' => 'Пересунути ниже',
+	'coll-move_to_bottom' => 'Пересунути долов',
+	'coll-title' => 'Назва:',
+	'coll-subtitle' => 'Підтітул:',
+	'coll-contents' => 'Обсяг',
+	'coll-drag_and_drop' => 'Порадок статей і капітол можете змінити перетягнутём мышкы',
+	'coll-create_chapter' => 'Створити капітолу',
+	'coll-sort_alphabetically' => 'Сортовати за алфавітом',
+	'coll-rename' => 'Переменовати',
+	'coll-new_chapter' => 'Задайте назву новой капітолы',
+	'coll-rename_chapter' => 'Задайте нову назву капітолы',
+	'coll-no_such_category' => 'Така катеґорія не єствує',
+	'coll-notitle_title' => 'Не было можне становити назву сторінкы.',
+	'coll-post_failed_title' => 'Хыба пожадавку POST',
+	'coll-post_failed_msg' => 'Хыба почас пожадавку POST на сервер $1 ($2).',
+	'coll-mwserve_failed_title' => 'Хына выкреслёвачого сервера',
+	'coll-mwserve_failed_msg' => 'На выкреслёвачім сервері дішло ку хыбі: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Хыбна одповідь сервера',
+	'coll-empty_collection' => 'Порожня книга',
+	'coll-revision' => 'Ревізія: $1',
+	'coll-save_collection_title' => 'Уложыти і здїляти тоту книгу',
+	'coll-save_collection_text' => 'Выберте собі уміщіня:',
+	'coll-login_to_save' => 'Кідь хочете укладати книгы про пізнїше схоснованя, просиме, [[Special:UserLogin|приголосьте ся або собі створьте конто]].',
+	'coll-personal_collection_label' => 'Особна книга:',
+	'coll-community_collection_label' => 'Комунітна книга:',
+	'coll-save_collection' => 'Уложыти книгу',
+	'coll-save_category' => 'Вшыткы уложены книгы ся придавають [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Сторінка єствує.
+Переписати?',
+	'coll-overwrite_text' => 'Сторінка з назвов [[:$1]] уж єствує.
+Хочете єй нагородити своёв колексіёв?',
+	'coll-yes' => 'Гей',
+	'coll-no' => 'Нїт',
+	'coll-load_overwrite_text' => 'У вашій книзї ся находять даякы сторінкы.
+Хочете переписати свою книгу, придати до нёй обсяг або зрушыти дїю з тов книгов?',
+	'coll-overwrite' => 'Переписати',
+	'coll-append' => 'Придати',
+	'coll-cancel' => 'Сторно',
+	'coll-update' => 'Обновити',
+	'coll-limit_exceeded_title' => 'Книга барзже велика',
+	'coll-limit_exceeded_text' => 'Ваша книга є барз велика.
+До нёй не є можне веце придавати сторінкы.',
+	'coll-rendering_title' => 'Выкреслёваня',
+	'coll-rendering_text' => '<p><strong>Просиме чекайте, документ ся рихтує.</strong></p>
+
+<p><strong>Докінчено:</strong> <span id="renderingProgress">$1</span> % <span id="renderingStatus">$2</span></p>
+
+<p>Тота сторінка ся каждых пару секунд автоматічно обновить.
+Кідь то не фунґує стисните в переглядачі клапку <i>обновити</i>.</p>',
+	'coll-rendering_status' => '<strong>Статус:</strong> $1',
+	'coll-rendering_article' => '(сторінка: $1)',
+	'coll-rendering_page' => '(сторінка: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Інформація про выкреслёваня сторінкы',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Інформація про выкреслёваня колекції',
+	'coll-rendering_finished_title' => 'Выкреслёваня скінчіло',
+	'coll-rendering_finished_text' => '<strong>Файл з документом быв створеный.</strong>
+Можете собі го <strong>[$1 скачати до свого компютера]</strong>.
+
+Позначкы:
+* Не сьте спокійны з резултатом? Попозерайте ся на [[{{MediaWiki:Coll-helppage}}|сторінку помочі ку колекціям]], як го вылїпшыти.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Інформація про выкреслёваня сторінкы',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Інформація про выкреслёваня колекції',
+	'coll-notfound_title' => 'Книга не найджена',
+	'coll-notfound_text' => 'Не было можне найти сторінку книгы.',
+	'coll-download_notfound_title' => 'Файл не найдженый',
+	'coll-download_notfound_text' => 'Файл, котрый ся намагаєте скачати, не єствує. Може быв змазаный і є треба го знову створити.',
+	'coll-download_failed_title' => 'Хыба почас скачаня',
+	'coll-download_failed_text' => 'Почас скачаня файлу дішло ку хыбі: $1',
+	'coll-is_cached' => '<ul><li>Была найджена кешована верзія того документу, также не было треба выкреслёвати. <a href="$1">Вынутити нове выкреслїня.</a></li></ul>',
+	'coll-excluded-templates' => '* Шаблоны в катеґорії [[:Category:$1|$1]] были выключены.',
+	'coll-blacklisted-templates' => '* Шаблоны в чорному списку [[:$1]] были выключены.',
+	'coll-return_to_collection' => '<p>Назад до <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Обїднати як друковану книгу',
+	'coll-book_text' => 'Обтримати друковану книгу од нашого партнера.',
+	'coll-order_from_pp' => 'Нагляд книгы средством {{grammar:2sg|$1}}',
+	'coll-about_pp' => 'О {{grammar:7sg|$1}}',
+	'coll-invalid_podpartner_title' => 'Неплатный POD-партнер',
+	'coll-invalid_podpartner_msg' => 'Зволеный POD-партнер про друка на пожаданя не є платный.
+Контактуйте свого адміністратора MediaWiki.',
+	'coll-license' => 'Ліценція',
+	'coll-return_to' => 'Навернутя до [[:$1]]',
+	'coll-more_info' => 'Указати далшы інформації',
+	'coll-hide_info' => 'Сховати інформацію',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Обїднавкы од PediaPress',
+	'coll-suggest_title' => 'Пропонованы сторінкы про вашу книгу',
+	'coll-suggest_intro_text' => 'Пропозіції были выбраны подля сторінок, котры уж в книзї маєте.
+Список ся актуалізує по каждім клікнутю на клапкы одобрати і придати.',
+	'coll-suggested_articles' => 'Пропозіції',
+	'coll-suggest_reset_bans' => 'обновити',
+	'coll-suggest_reset_bans_tooltip' => 'Указати скоре одстранены пропозіції',
+	'coll-suggest_add_selected' => 'Придати выбраны сторінкы',
+	'coll-suggest_ban_selected' => 'Одстранити выбраны сторінкы',
+	'coll-suggest_your_book' => 'Ваша книга',
+	'coll-suggest_show' => 'вказати',
+	'coll-suggest_ban_tooltip' => 'Одстранити тоту сторінку із списку пропозіцій',
+	'coll-suggest_article_ban' => 'Сторінка <strong>$1</strong> вылучена з пропозіцій ($2).',
+	'coll-suggest_article_add' => 'Сторінка <strong>$1</strong> придана до вашой книгы ($2).',
+	'coll-suggest_article_remove' => 'Сторінка <strong>$1</strong> вылучена до вашой книгы ($2).',
+	'coll-suggest_undo_tooltip' => 'Вернути тоту дїю назад',
+	'coll-suggest_undo' => 'вернути назад',
+	'coll-load_local_book' => 'Продовжыти в створёваню книгы %TITLE%,  котра обсягує %NUMPAGES% сторінок вікі, можете клікнути на ОК. Клікнутём на Сторно єй змажете і зачнете з порожнёв книгов.',
+	'right-collectionsaveasuserpage' => 'Укладаня книг як хосновательскых сторінок',
+	'right-collectionsaveascommunitypage' => 'Укладаня книг як сторінок комуніты',
+);
+
+/** Sanskrit (संस्कृतम्)
+ * @author Ansumang
+ */
+$messages['sa'] = array(
+	'coll-yes' => 'आम्',
+	'coll-cancel' => 'निवर्तयते',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
 	'coll-desc' => '[[Special:Book|Кинигэлэри айар]]',
+	'coll-book_creator_intro' => '!<big>"Кинигэ маастарын" режимигэр киирэн бэйэҥ талбыт биики сирэйдэргиттэн турар кинигэ оҥоруоххун сөп. Бэйэҥ кинигэлэргин араас формаатынан экспортыаххын сөп (холобур, PDF эбэтэр ODF), эбэтэр бэчээттэммит барылын сакаастыаххытын сөп.</big>',
+	'coll-manage_your_book' => 'Кинигэҥ туруорууларын салайыы',
+	'coll-book_creator_help' => 'Сиһилии [[{{MediaWiki:Coll-helppage}}|кинигэ туһунан көмө сирэйи]] көр.',
+	'coll-start_book_creator' => 'Кинигэ таҥааччыны холбуурга',
+	'coll-book_creator_continue' => 'Кинигэни оҥорооччуну салгыы туһаныы',
+	'coll-book_creator_disable_text' => '"Кинигэ оҥорооччу" араарыллыа, билигин оҥоро олорор кинигэҥ сотуллуо.',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Кинигэ режимин тиэкиһэ',
 	'coll-collection' => 'Кинигэ',
 	'coll-collections' => 'Кинигэлэр',
 	'coll-exclusion_category_title' => 'Бэчээккэ ыытыллыбат',
 	'coll-print_template_prefix' => 'Бэчээт',
 	'coll-print_template_pattern' => '$1/Бэчээт',
-	'coll-create_a_book' => 'Кинигэни айарга',
-	'coll-add_page' => 'Сирэйи эбии',
-	'coll-remove_page' => 'Сирэйи сотуу',
-	'coll-add_category' => 'Категория эбии',
-	'coll-load_collection' => 'Кинигэни (атын сиртэн ылан) суруттар',
-	'coll-show_collection' => 'Кинигэни көрдөр',
-	'coll-help_collections' => 'Кинигэ туһунан ыйытыылар',
-	'coll-n_pages' => '$1 {{PLURAL:$1|сирэй|сирэйдээх}}',
 	'coll-unknown_subpage_title' => 'Биллибэт алын сирэй (подстраница)',
 	'coll-unknown_subpage_text' => '[[Special:Book|Кинигэҕэ]] бу сирэй суох',
-	'coll-printable_version_pdf' => 'PDF-барыла',
-	'coll-download_as' => 'Маннык $1 киллэр',
+	'coll-couldnotaddarticle_title' => 'Ыстатыйа кыайан эбиллибэтэ',
+	'coll-couldnotaddarticle_msg' => 'Бу ыстатыйа кыайан эбиллэр кыаҕа суох.',
+	'coll-couldnotremovearticle_title' => 'Ыстатыйа кыайан сотуллубата',
+	'coll-couldnotremovearticle_msg' => 'Бу ыстатыйа сотуллар кыаҕа суох.',
 	'coll-noscript_text' => '<h1>JavaScript ирдэнэр!</h1>
 <strong>Эн брааузерыҥ JavaScript`ы өйөөбөт эбит эбэтэр JavaScript араарыллыбыт. Бу сирэй JavaScript холбоммотох буоллаҕына сөпкө үлэлиэ уонна көстүө суоҕа.</strong>',
-	'coll-intro_text' => 'Биики-сирэйдэр тустаах, эйиэхэ бэйэҕэр эрэ аналлаах, хомуурунньуктарын оҥоруу уонна ону салайыы.<br />Сиһилии манна көр [[{{MediaWiki:Coll-helppage}}]].',
-	'coll-helppage' => 'Help:Кинигэлэр',
-	'coll-bookscategory' => 'Кинигэлэр',
 	'coll-savedbook_template' => 'уларытыыта_бигэргэтиллибит_кинигэ',
 	'coll-your_book' => 'Эн кинигэҥ',
 	'coll-download_title' => 'Хачайдаа',
-	'coll-download_text' => 'Оффлайн барылын көрөргө формаатын ый уонна анал тимэҕи баттаа.',
-	'coll-download_as_text' => '$1 форматтаах барылы хачайдыырга тимэҕи баттаа.',
+	'coll-download_text' => 'Кинигэҕин киллэрэргэ формаатын ый уонна анал тимэҕи баттаа.',
+	'coll-download_as_text' => '$1 форматтаах кинигэни киллэрэргэ тимэҕи баттаа.',
 	'coll-download' => 'Хачайдаа',
 	'coll-format_label' => 'Формаата:',
 	'coll-remove' => 'Сот',
@@ -5925,8 +10629,6 @@
 	'coll-drag_and_drop' => 'Сирэйдэри уонна сирэйдэр бөлөхтөрүн бэрээдэктииргэ мышканнан туһан',
 	'coll-create_chapter' => 'Баһы (главааны) оҥоруу',
 	'coll-sort_alphabetically' => 'Алпабыытынан наардааһын',
-	'coll-clear_collection' => 'Кинигэни ыраастаа',
-	'coll-clear_collection_confirm' => 'Кырдьык кинигэҕин ыраастаары гынаҕын дуо?',
 	'coll-rename' => 'Аатын уларытыы',
 	'coll-new_chapter' => 'Саҥа бас (глава) аатын киллэр',
 	'coll-rename_chapter' => 'Түһүмэх (глава) саҥа аатын киллэрии',
@@ -5945,7 +10647,7 @@
 	'coll-personal_collection_label' => 'Тус бэйэ кинигэтэ:',
 	'coll-community_collection_label' => 'Бөлөх кинигэтэ:',
 	'coll-save_collection' => 'Уларытыыларын бигэргэт',
-	'coll-save_category' => 'Кинигэлэр бу категорияҕа баар буоллулар: [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Киллэриллэр кинигэлэр бары бу категорияҕа киирэллэр: [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Маннык сирэй баар эбит.
 Хос суруттараҕын дуо?',
 	'coll-overwrite_text' => 'Маннык [[:$1]] ааттаах сирэй баар эбит.
@@ -5971,69 +10673,255 @@
 	'coll-rendering_status' => '<strong>Стаатуһа:</strong> $1',
 	'coll-rendering_article' => '(ыстатыйа: $1)',
 	'coll-rendering_page' => '(сирэй: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Сирэй туһунан тиэкиһи ортисовкалааһын',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Кэллиэксийэ туһунан тиэкис отрисовката (Rendering)',
 	'coll-rendering_finished_title' => 'Оҥоһулунна',
 	'coll-rendering_finished_text' => '<strong>Дөкүмүөн билэтэ оҥоһулунна.</strong>
 Бэйэ көмпүүтэригэр <strong>[$1 билэни хачайдаа]</strong>.
 
 Биллэрии:
 * Оччото суох дуо? [[{{MediaWiki:Coll-helppage}}|Кинигэлэри оҥорорго көмөҕө]] тупсарыы туһунан суруллубут.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Сирэй туһунан тиэкиһи ортисовкалааһын',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Кэллиэксийэ туһунан тиэкис отрисовката',
 	'coll-notfound_title' => 'Кинигэ көстүбэтэ',
 	'coll-notfound_text' => 'Кинигэ сирэйин булар табыллыбата.',
+	'coll-download_notfound_title' => 'Билэ көстүбэтэ',
+	'coll-download_notfound_text' => 'Киллэрэ сатыыр билэҥ суох. Баҕар сотуллубута буолуо, оччоҕо кинини бастаан төннөрүөххэ наада.',
+	'coll-download_failed_title' => 'Хачайдааһын кэмигэр алҕас тахсыбыт',
+	'coll-download_failed_text' => 'Билэни хачайдыыр кэмҥэ алҕас таҕыста: $1',
 	'coll-is_cached' => '<ul><li>Бу дөкүмүөн кээштэммит барыла баар эбит, отрисовка наадата суох буолан оҥоһуллубата. <a href="$1">Ол да буоллар отрисовканы оҥорорго.</a></li></ul>',
 	'coll-excluded-templates' => '* [[:Категория:$1|$1]] категорияттан халыыптар сотулуннулар.',
 	'coll-blacklisted-templates' => 'Халыыптар [[:$1]] хара тиһиктэн (чёрный список) сотулуннулар.',
 	'coll-return_to_collection' => '<p>Манна төнүн <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Бэчээттэммит кинигэни сакаастааһын',
 	'coll-book_text' => 'Бэчээттэммит кинигэни биһиги партнербутуттан ылыы:',
-	'coll-order_from_pp' => 'Кинигэни манна сакаастааһын: $1',
+	'coll-order_from_pp' => 'Эрдэ көрүү, бу нөҥүө - $1',
 	'coll-about_pp' => '$1 туһунан',
 	'coll-invalid_podpartner_title' => 'Дьиҥэ суох POD-партнёр',
 	'coll-invalid_podpartner_msg' => 'Дьиҥэ суох POD-партнёр эбит.
 Бука диэн MediaWiki дьаһабылын кытта кэпсэт.',
 	'coll-license' => 'Лицензия',
 	'coll-return_to' => 'Манна төннүү: [[:$1]]',
+	'coll-more_info' => 'Өссө эбии көрдөр',
+	'coll-hide_info' => 'Кистээ',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress сакаастааһын туһунан',
+	'coll-suggest_title' => 'Эн кинигэҕэр анаан бэриллэр сирэйдэр',
+	'coll-suggest_intro_text' => 'Саҥа этиилэр билиҥҥи биики-сирэйдэриҥ бөлөхтөрүгэр олоҕуран бэриллэллэр.
+Эбэр-көҕүрэтэр тимэхтэри баттаатаххына тиһик саҥардыллан биэрэр.',
+	'coll-suggested_articles' => 'Этии киллэрии',
+	'coll-suggest_reset_bans' => 'саҥаттан',
+	'coll-suggest_reset_bans_tooltip' => 'Урут сотуллубут этиилэри көрдөрүү',
+	'coll-suggest_add_selected' => 'Талбыт сирэйдэрбин эп',
+	'coll-suggest_ban_selected' => 'Талбыт сирэйдэрбин сот',
+	'coll-suggest_your_book' => 'Эн кинигэҥ',
+	'coll-suggest_show' => 'көрдөрүү',
+	'coll-suggest_ban_tooltip' => 'Саҥа этиилэр тиһиктэриттэн бу сирэйи сот',
+	'coll-suggest_article_ban' => '<strong>$1</strong> сирэй саҥа этиилэр ($2) тиһиктэриттэн сотулунна.',
+	'coll-suggest_article_add' => 'Эн ($2) кинигэҕэр <strong>$1</strong> сирэй эбилиннэ.',
+	'coll-suggest_article_remove' => 'Эн ($2) кинигэҕиттэн <strong>$1</strong> сирэй сотулунна.',
+	'coll-suggest_undo_tooltip' => 'Бу дьайыыны төннөрөргө',
+	'coll-suggest_undo' => 'төннөрөргө',
+	'coll-load_local_book' => '«Сөп» диэни баттаан, %TITLE% ахсааннаах сирэйдээх кинигэҕэр салгыы үлэлээ. «Төннөр» диэни баттаан, ол кинигэни сотон баран, саҥа кинигэни саҕалаа.',
+	'right-collectionsaveasuserpage' => 'кинигэлэри кытааччы тус сирэйин курдук хаалларыы',
+	'right-collectionsaveascommunitypage' => 'кинигэлэри бөлөх тус сирэйин курдук хаалларыы',
 );
 
+/** Sardinian (Sardu)
+ * @author Andria
+ */
+$messages['sc'] = array(
+	'coll-collection' => 'Libru',
+	'coll-collections' => 'Libros',
+	'coll-print_template_prefix' => 'Imprenta',
+	'coll-print_template_pattern' => '$1/Imprenta',
+	'coll-show' => 'Ammustra',
+	'coll-yes' => 'Eja',
+	'coll-suggest_show' => 'ammustra',
+);
+
+/** Sicilian (Sicilianu)
+ * @author Aushulz
+ */
+$messages['scn'] = array(
+	'coll-collection' => 'Libbru',
+	'coll-collections' => 'Libbra',
+	'coll-savedbook_template' => 'libbru_sarvatu',
+	'coll-remove' => 'Lèva',
+	'coll-show' => 'Ammustra',
+	'coll-title' => 'Tìtulu:',
+	'coll-rename' => 'Cancia nomu',
+	'coll-empty_collection' => 'Libbru vacanti',
+	'coll-save_collection' => 'Sarva libbru',
+	'coll-yes' => 'Sè',
+	'coll-no' => 'Nò',
+	'coll-limit_exceeded_title' => "Libbru troppu 'ranni",
+	'coll-limit_exceeded_text' => "Lu tò libbru è troppu 'ranni. Nun ci pò metteri autri paggini.",
+	'coll-rendering_page' => '(paggina: $1)',
+	'coll-suggested_articles' => 'Cunsigghi',
+	'coll-suggest_show' => 'ammustra',
+);
+
+/** Serbo-Croatian (Srpskohrvatski)
+ * @author OC Ripper
+ */
+$messages['sh'] = array(
+	'coll-show' => 'Prikaži',
+);
+
+/** Sinhala (සිංහල)
+ * @author පසිඳු කාවින්ද
+ * @author බිඟුවා
+ */
+$messages['si'] = array(
+	'coll-desc' => '[[Special:Book|පොත් තනන්න]]',
+	'coll-book_creator_intro' => "<big> ''පොත් තනන්නා''  සමඟ ඔබේ කැමැත්ත පරිදි විකි පිටු ඇතුලත් පොතක් තැනිය හැක. ඔබට වෙනස් අන්දමේ ආකෘති වලට පොත නිර්යාත කල හැක (නිදසුනක් ලෙස PDF හෝ ODF) හෝ මුද්‍රණය කෙරූ පිටපතක් ඇනවුම් කරන්න.</big>",
+	'coll-manage_your_book' => 'ඔබේ පොත හසුරවන්න',
+	'coll-book_creator_help' => 'වැඩිදුර තොරතුරු සඳහා  [[{{MediaWiki:Coll-helppage}}|පොත් සඳහා වූ උදව් පිටුව]] බලන්න.',
+	'coll-start_book_creator' => 'පොත් තනන්නා අරඹන්න',
+	'coll-book_creator_continue' => 'පොත් තනන්නා දිගටම භාවිතා කරන්න',
+	'coll-book_creator_disable_text' => "''පොත් තනන්නා'' අක්‍රීය වී ඔබ වැඩ කරමින් සිටින පොත මකා දැමෙනු ඇත.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/පොත් තනන්නාගේ පාඨය',
+	'coll-collection' => 'පොත',
+	'coll-collections' => 'පොත්',
+	'coll-exclusion_category_title' => 'මුද්‍රණයේදී බැහැර කරන්න',
+	'coll-print_template_prefix' => 'මුද්‍රණය කරන්න',
+	'coll-print_template_pattern' => '$1/මුද්‍රණය',
+	'coll-unknown_subpage_title' => 'නොදන්නා උපපිටුව',
+	'coll-unknown_subpage_text' => '[[Special:Book|පොතෙහි]] මෙම උපපිටුව නොපවතියි',
+	'coll-couldnotaddarticle_title' => 'විකි පිටුව එක් කල නොහැක',
+	'coll-couldnotaddarticle_msg' => 'විකි පිටුව එක් කල නොහැක.',
+	'coll-couldnotremovearticle_title' => 'විකි පිටුව ඉවත් කල නොහැක',
+	'coll-couldnotremovearticle_msg' => 'විකි පිටුව ඉවත් කල නොහැක.',
+	'coll-noscript_text' => '<h1>ජාවාස්ක්‍රිප්ට් අවශ්‍යයි!</h1>
+<strong>ඔබේ ගවේශකය ජාවාස්ක්‍රිප්ට් සඳහා සහය නොදක්වයි හෝ ජාවාස්ක්‍රිප්ට් අක්‍රීය කොට ඇත.
+ජාවාස්ක්‍රිප්ට් සක්‍රීය කෙරුවොත් මිසක්, මෙම පිටුව හොඳින් වැඩ කරන එකක් නැහැ.</strong>',
+	'coll-savedbook_template' => 'සුරක්ෂිත_පොත',
+	'coll-your_book' => 'ඔබේ පොත',
+	'coll-download_title' => 'භාගත කිරීම',
+	'coll-download_text' => 'ඔබේ පොත බාගැනීම සඳහා ආකෘතියක් තෝරාගෙන බොත්තම ඔබන්න.',
+	'coll-download_as_text' => 'ඔබේ පොත $1 ආකෘතියෙන් බාගැනීම සඳහා බොත්තම ඔබන්න.',
+	'coll-download' => 'භාගත කිරීම',
+	'coll-format_label' => 'ආකෘතිය:',
+	'coll-remove' => 'ඉවත් කරන්න',
+	'coll-show' => 'පෙන්වන්න',
+	'coll-move_to_top' => 'උඩට මාරු වන්න',
+	'coll-move_up' => 'උඩට යන්න',
+	'coll-move_down' => 'පහතට යන්න',
+	'coll-move_to_bottom' => 'මැදට මාරු වන්න',
+	'coll-title' => 'ශීර්ෂය:',
+	'coll-subtitle' => 'උප ශීර්ෂය:',
+	'coll-contents' => 'පටුන',
+	'coll-create_chapter' => 'මාතෘකාවක් නිර්මාණය කරන්න',
+	'coll-sort_alphabetically' => 'අකාරාදි පිළිවෙලට සකසන්න',
+	'coll-rename' => 'නැවත නාමකාරණය',
+	'coll-new_chapter' => 'නව පරිච්ඡේදය සඳහා නමක් යොදන්න',
+	'coll-rename_chapter' => 'පරිච්ඡේදය සඳහා නව නමක් යොදන්න',
+	'coll-no_such_category' => 'සත්‍ය ප්‍රවර්ගයක් නොමැත',
+	'coll-post_failed_title' => 'POST අයදුම අසාර්ථක වුණි',
+	'coll-post_failed_msg' => '$1 වෙත POST අයදුම අසාර්ථකයි ($2).',
+	'coll-mwserve_failed_title' => 'විදහාපෑම් සර්වරයේ දෝෂය',
+	'coll-mwserve_failed_msg' => 'විදහාපෑම් සර්වරයේ දෝෂයක් හට ගැනුණි: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'සර්වරයෙන් දෝෂ සහගත ප්‍රතිචාරය',
+	'coll-empty_collection' => 'හිස් පොත',
+	'coll-revision' => 'සංශෝධනය: $1',
+	'coll-save_collection_title' => 'ඔබේ පොත සුරකමින් හුවමාරු කරන්න',
+	'coll-save_collection_text' => 'ඔබේ පොත සඳහා ගබඩාකරන ස්ථානයක් දෙන්න:',
+	'coll-personal_collection_label' => 'පුද්ගලික පොත:',
+	'coll-community_collection_label' => 'ප්‍රජාවේ පොත:',
+	'coll-save_collection' => 'පොත සුරකින්න',
+	'coll-overwrite_title' => 'පිටුව පවතියි.
+උඩින් ලියන්නද?',
+	'coll-overwrite_text' => '[[:$1]] නම සහිත පිටුවක් දැනටමත් පවතියි.
+පොත සමඟ එය ප්‍රතිස්ථාපනය කිරීමට ඔබට අවශ්‍යද?',
+	'coll-yes' => 'ඔව්',
+	'coll-no' => 'නැත',
+	'coll-overwrite' => 'උඩින් ලිවීම',
+	'coll-append' => 'අමුණන්න',
+	'coll-cancel' => 'අත් හරින්න',
+	'coll-update' => 'යාවත්කාලීන කළ',
+	'coll-limit_exceeded_title' => 'පොත ලොකු වැඩියි',
+	'coll-limit_exceeded_text' => 'ඔබේ පොත ලොකු වැඩියි.
+තව දුරටත් පිටු එක් කල නොහැක.',
+	'coll-rendering_title' => 'විදහාපාමින්',
+	'coll-rendering_text' => '<p><strong>ලේඛනය ජනිත වන තුරු මොහොතක් රැඳී සිටින්න.</strong></p>
+
+<p><strong>ප්‍රගතිය:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>සෑම තත්පර කිහිපයකට වරක්ම මෙම පිටුව ස්වයංක්‍රීයව නැවත ප්‍රාණවත් වේ.
+මෙය වැඩ නොකළහොත්, කරුණාකර ඔබේ ගවේශකයේ refresh බොත්තම ඔබන්න.</p>',
+	'coll-rendering_status' => '<strong>තත්වය:</strong> $1',
+	'coll-rendering_article' => '(විකි පිටුව: $1)',
+	'coll-rendering_page' => '(පිටුව: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/විදහාපෑම් පිටුවේ විස්තර පාඨය',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/විදහාපෑම් එකතුවේ විස්තර පාඨය',
+	'coll-rendering_finished_title' => 'විදහාපෑම අවසානයි',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/විදහාපෑම් පිටුවේ විස්තර පාඨය',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/විදහාපෑම් එකතුවේ විස්තර පාඨය',
+	'coll-notfound_title' => 'පොත හමු නොවුණි',
+	'coll-notfound_text' => 'පොත් පිටුව සොයාගත නොහැක.',
+	'coll-download_notfound_title' => 'ගොනුව හමු නොවුණි',
+	'coll-download_failed_title' => 'බාගැනීම අතරතුර දෝෂය',
+	'coll-download_failed_text' => 'ගොනුව බාගැනීමේ දෝෂයක් හට ගැනුණි: $1',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a> වෙත නැවත යන්න</p>',
+	'coll-book_title' => 'මුද්‍රණය කෙරූ පොතක් ලෙස ඇනවුම් කරන්න',
+	'coll-order_from_pp' => '$1 සමඟ පෙරදසුන',
+	'coll-about_pp' => '$1 ගැන',
+	'coll-invalid_podpartner_title' => 'වලංගු නොවන POD සහකරු',
+	'coll-license' => 'බලපත්‍රය',
+	'coll-return_to' => '[[:$1]] වෙත නැවත යන්න',
+	'coll-more_info' => 'තවත් තොරතුරු පෙන්වන්න',
+	'coll-hide_info' => 'තොරතුරු සඟවන්න',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/පිඩියමුද්‍රණාල ඇනවුම් තොරතුරු',
+	'coll-suggest_title' => 'ඔබේ පොත සඳහා යෝජනා කල පිටුව',
+	'coll-suggested_articles' => 'යෝජනා',
+	'coll-suggest_reset_bans' => 'ප්‍රත්‍යාරම්භ කරන්න',
+	'coll-suggest_reset_bans_tooltip' => 'පූර්ව වශයෙන් ඉවත්කළ පරිවර්තන පෙන්වන්න',
+	'coll-suggest_add_selected' => 'තෝරාගත් පිටු එක් කරන්න',
+	'coll-suggest_ban_selected' => 'තෝරාගත් පිටු ඉවත් කරන්න',
+	'coll-suggest_your_book' => 'ඔබේ පොත',
+	'coll-suggest_show' => 'පෙන්වන්න',
+	'coll-suggest_ban_tooltip' => 'මෙම පිටුව ව්‍යංගාර්ථ පරිවර්තන ලැයිස්තුවෙන් ඉවත් කරන්න',
+	'coll-suggest_article_ban' => '<strong>$1</strong> පිටුව ව්‍යංගාර්ථ වලින් ඉවත් කරන ලදී ($2).',
+	'coll-suggest_article_add' => '<strong>$1</strong> පිටුව ඔබේ පොතට එක් කරන ලදී ($2).',
+	'coll-suggest_article_remove' => '<strong>$1</strong> පිටුව ඔබේ පොතෙන් ඉවත් කරන ලදී ($2).',
+	'coll-suggest_undo_tooltip' => 'මෙම ක්‍රියාව අහෝසි කරන්න',
+	'coll-suggest_undo' => 'අහෝසිය',
+	'right-collectionsaveasuserpage' => 'පරිශීලක පිටුව ලෙස පොත් සුරකින්න',
+	'right-collectionsaveascommunitypage' => 'ප්‍රජා පිටුව ලෙස පොත් සුරකින්න',
+);
+
 /** Slovak (Slovenčina)
  * @author Helix84
  * @author Mormegil
  */
 $messages['sk'] = array(
 	'coll-desc' => '[[Special:Book|Tvorba kníh]]',
+	'coll-book_creator_intro' => "<big>V režime ''tvorba knihy'' si môžete vytvoriť knihu zo stránok wiki, ktoré si zvolíte. Knihu môžete exportovať v rozličných formátoch (napr. PDF alebo ODF) alebo si objednať tlačenú kópiu.</big>",
+	'coll-manage_your_book' => 'Spravovať vašu knihu',
+	'coll-book_creator_help' => 'Ďalšie informácie nájdete na [[{{MediaWiki:Coll-helppage}}|stránke Pomocníka o knihách]].',
+	'coll-start_book_creator' => 'Spustiť tvorbu knihy',
+	'coll-book_creator_continue' => 'Pokračovať v používaní tvorby knihy',
+	'coll-book_creator_disable_text' => "''Tvorba knihy'' bude vypnutá a kniha, na ktorej pracujete bude odstránená.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Text režimu knihy',
 	'coll-collection' => 'Kniha',
 	'coll-collections' => 'Knihy',
 	'coll-exclusion_category_title' => 'Pri tlačení vynechať',
 	'coll-print_template_prefix' => 'Tlačiť',
 	'coll-print_template_pattern' => '$1/Tlač',
-	'coll-create_a_book' => 'Vytvoriť knihu',
-	'coll-add_page' => 'Pridať wiki stránku',
-	'coll-add_page_tooltip' => 'Pridať aktuálnu wiki stránku do vašej knihy',
-	'coll-remove_page' => 'Odstrániť wiki stránku',
-	'coll-remove_page_tooltip' => 'Odstrániť aktuálnu wiki stránku z vašej knihy',
-	'coll-add_category' => 'Pridať kategóriu',
-	'coll-add_category_tooltip' => 'Pridať všetky stránky wiki v tejto kategórii do vašej knihy',
-	'coll-load_collection' => 'Načítať knihu',
-	'coll-load_collection_tooltip' => 'Načítať túto knihu ako vašu aktuálnu knihu',
-	'coll-show_collection' => 'Zobraziť knihu',
-	'coll-show_collection_tooltip' => 'Kliknutím môžete upraviť/stiahnuť/objednať knihu',
-	'coll-help_collections' => 'Pomocník ku knihám',
-	'coll-help_collections_tooltip' => 'Zobraziť pomocníka ku knižnému nástroju',
-	'coll-n_pages' => '$1 {{PLURAL:$1|stránka|stránky|stránok}}',
 	'coll-unknown_subpage_title' => 'Neznáma podstránka',
 	'coll-unknown_subpage_text' => 'Táto podstránka [[Special:Book|Knihy]] neexistuje',
-	'coll-printable_version_pdf' => 'PDF verzia',
-	'coll-download_as' => 'Stiahnuť ako $1',
+	'coll-couldnotaddarticle_title' => 'Nepodarilo sa pridať stránku wiki',
+	'coll-couldnotaddarticle_msg' => 'Wiki stránku nebolo možné pridať.',
+	'coll-couldnotremovearticle_title' => 'Wiki stránku nebolo možné odstrániť',
+	'coll-couldnotremovearticle_msg' => 'Wiki stránku nebolo možné odstrániť.',
 	'coll-noscript_text' => '<h1>Vyžaduje sa JavaScript!</h1>
 <strong>Váš prehliadač nepodporuje JavaScript alebo máte JavaScript vypnutý.
 Táto stránka nebude správne fungovať ak nezapnete JavaScript.</strong>',
-	'coll-intro_text' => 'Môžete vytvárať vlastné výbery wiki stránok.<br />Pozri ďalšie informácie na [[{{MediaWiki:Coll-helppage}}|stránke pomocníka o kolekciách]].',
-	'coll-helppage' => 'Help:Knihy',
-	'coll-bookscategory' => 'Knihy',
 	'coll-savedbook_template' => 'uložená_kniha',
 	'coll-your_book' => 'Vaša kniha',
 	'coll-download_title' => 'Stiahnuť',
-	'coll-download_text' => 'Po zvolení formátu a kliknutí na tlačidlo môžete stiahnuť offline verziu.',
-	'coll-download_as_text' => 'Verziu pre čítanie offline vo formáte $1 môžete stiahnuť kliknutím na tlačidlo.',
+	'coll-download_text' => 'Po zvolení formátu a kliknutí na tlačidlo si môžete svoju knihu stiahnuť.',
+	'coll-download_as_text' => 'Svoju knihu vo formáte $1 môžete stiahnuť kliknutím na tlačidlo.',
 	'coll-download' => 'Stiahnuť',
 	'coll-format_label' => 'Formát:',
 	'coll-remove' => 'Odstrániť',
@@ -6048,9 +10936,6 @@
 	'coll-drag_and_drop' => 'Zmeniť poradie článkov a kapitol môžete pomocou ťahaj&pusť.',
 	'coll-create_chapter' => 'Vytvoriť kapitolu',
 	'coll-sort_alphabetically' => 'Zoradiť abecedne',
-	'coll-clear_collection' => 'Vyčistiť knihu',
-	'coll-clear_collection_tooltip' => 'Odstrániť všetky stránky wiki z vašej aktuálnej knihy',
-	'coll-clear_collection_confirm' => 'Skutočne chcete celkom vyčistiť svoju knihu?',
 	'coll-rename' => 'Premenovať',
 	'coll-new_chapter' => 'Zadajte názov novej kapitoly',
 	'coll-rename_chapter' => 'Zadajte nový názov kapitoly',
@@ -6069,7 +10954,7 @@
 	'coll-personal_collection_label' => 'Osobná kniha:',
 	'coll-community_collection_label' => 'Komunitná kniha:',
 	'coll-save_collection' => 'Uložiť knihu',
-	'coll-save_category' => 'Knihy sa ukladajú v kategórii [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Všetky knihy sa pridávajú do kategórie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Stránka existuje. Prepísať?',
 	'coll-overwrite_text' => 'Stránka s názvom [[:$1]] už existuje.
 Chcete ju nahradiť svojou kolekciou?',
@@ -6094,62 +10979,92 @@
 	'coll-rendering_status' => '<strong>Stav:</strong> $1',
 	'coll-rendering_article' => '(wiki stránka: $1)',
 	'coll-rendering_page' => '(stránka: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Vykresľovanie info textu stránky',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Vykresľovanie info textu kolekcie',
 	'coll-rendering_finished_title' => 'Vykresľovanie je dokončené',
 	'coll-rendering_finished_text' => '<strong>Súbor dokumentu bol vytvorený.</strong>
 Môžete ho <strong>[$1 stiahnuť]</strong> na svoj počítač.
 
 Poznámky:
 * Nie ste spokojný s výstupom? Spôsoby možnej nápravy nájdete na [[{{MediaWiki:Coll-helppage}}|stránke pomocníka o kolekciách]].',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Vykresľovanie info textu stránky',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Vykresľovanie info textu kolekcie',
 	'coll-notfound_title' => 'Kniha nenájdená',
 	'coll-notfound_text' => 'Nebolo možné nájsť stránku knihy.',
+	'coll-download_notfound_title' => 'Súbor nenájdený',
+	'coll-download_notfound_text' => 'Súbor, ktorý sa pokúšate stiahnuť neexistuje: Možno bol zamzaný a je potrebné ho znova vytvoriť.',
+	'coll-download_failed_title' => 'Chyba počas sťahovania',
+	'coll-download_failed_text' => 'Vyskytla sa chyba počas sťahovania súboru: $1',
 	'coll-is_cached' => '<ul><li>Bola nájdená verzia dokumentu vo vyrovnávacej pamäti, takže vykresľovanie nebolo potrebné. <a href="$1">Vynútiť opätovné vykreslenie.</a></li></ul>',
 	'coll-excluded-templates' => '* Boli vynechané šablóny v kategórii [[:Category:$1|$1]].',
 	'coll-blacklisted-templates' => '* Boli vynechané šablóny na čiernej listine [[:$1]].',
 	'coll-return_to_collection' => '<p>Vrátiť sa na <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Objednať ako tlačenú knihu',
 	'coll-book_text' => 'Môžete si objednať tlačenú knihu od jedného z našich partnerov, ktorí robia tlač na vyžiadanie:',
-	'coll-order_from_pp' => 'Objednať knihu od $1',
+	'coll-order_from_pp' => 'Náhľad pomocou $1',
 	'coll-about_pp' => 'O $1',
 	'coll-invalid_podpartner_title' => 'Neplatný POD partner',
 	'coll-invalid_podpartner_msg' => 'Zadaný POD partner je neplatný.
 Prosím, kontaktujte svojho správcu MediaWiki.',
 	'coll-license' => 'Licencia',
 	'coll-return_to' => 'Návrat na [[:$1]]',
+	'coll-more_info' => 'Zobraziť viac informácií',
+	'coll-hide_info' => 'Skryť informácie',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informácie o objednávkach PediaPress',
+	'coll-suggest_title' => 'Navrhované stránky pre vašu knihu',
+	'coll-suggest_intro_text' => 'Návrhy sa robia na základe stránok, ktoré sa momentálne nachádzajú vo vašej knihe.
+Zoznam sa aktualizuje vždy po kliknutí na tlačidlo Pridať alebo Odstrániť.',
+	'coll-suggested_articles' => 'Návrhy',
+	'coll-suggest_reset_bans' => 'obnoviť',
+	'coll-suggest_reset_bans_tooltip' => 'Zobraziť v minulosti odstránené návrhy',
+	'coll-suggest_add_selected' => 'Pridať vybrané stránky',
+	'coll-suggest_ban_selected' => 'Odstrániť vybrané stránky',
+	'coll-suggest_your_book' => 'Vaša kniha',
+	'coll-suggest_show' => 'zobraziť',
+	'coll-suggest_ban_tooltip' => 'Odstrániť túto stránku zo zoznamu návrhov',
+	'coll-suggest_article_ban' => 'Stránka <strong>$1</strong> bola odstránená z návrhov ($2).',
+	'coll-suggest_article_add' => 'Stránka <strong>$1</strong> bola pridaná do vašej knihy ($2).',
+	'coll-suggest_article_remove' => 'Stránka <strong>$1</strong> bola odstránená z vašej knihy ($2).',
+	'coll-suggest_undo_tooltip' => 'Vrátiť túto operáciu späť',
+	'coll-suggest_undo' => 'vrátiť',
+	'coll-load_local_book' => 'Kliknutím na tlačidlo OK pokračujte vo vašej knihe %TITLE%, ktorá obsahuje %NUMPAGES% stránok wiki. Kliknutím na tlačidlo Zrušiť ju vymažete a začnete s prázdnou knihu.',
+	'right-collectionsaveasuserpage' => 'Uložiť knihy ako používateľskú stránku',
+	'right-collectionsaveascommunitypage' => 'Uložiť knihy ako komunitnú stránku',
 );
 
 /** Slovenian (Slovenščina)
+ * @author Dbc334
+ * @author Freakolowsky
  * @author Smihael
  */
 $messages['sl'] = array(
 	'coll-desc' => '[[Special:Book|Ustvari e-knjige]]',
+	'coll-book_creator_intro' => "<big>Z ''Ustvarjalcem knjig'' lahko ustvarite knjigo, ki vsebuje wiki strani po vaši izbiri. Knjigo lahko nato izvozite v različnih oblikah (na primer PDF ali ODF), ali pa naročite natisnjen izvod.</big>",
+	'coll-manage_your_book' => 'Uredite vašo knjigo',
+	'coll-book_creator_help' => 'Glej [[{{MediaWiki:Coll-helppage}}|pomoč o knjigah]] za več informacij.',
+	'coll-start_book_creator' => 'Zaženi ustvarjalca knjig',
+	'coll-book_creator_continue' => 'Nadaljuj uporabo ustvarjalca knjig',
+	'coll-book_creator_disable_text' => "''Ustvarjalec knjig'' bo onemogočen in knjiga katero sestavljate bo odstranjena.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Besedilo ustvarjalca knjig',
 	'coll-collection' => 'Knjiga',
 	'coll-collections' => 'Knjige',
 	'coll-exclusion_category_title' => 'Izključi v tiskovini',
 	'coll-print_template_prefix' => 'Natisni',
 	'coll-print_template_pattern' => '$1/Natisni',
-	'coll-create_a_book' => 'Ustvari e-knjigo',
-	'coll-add_page' => 'Dodaj wiki-stran',
-	'coll-remove_page' => 'Odstrani wiki-stran',
-	'coll-add_category' => 'Dodaj kategorijo',
-	'coll-load_collection' => 'Naloži knjige',
-	'coll-show_collection' => 'Prikaži knjige',
-	'coll-help_collections' => 'Pomoč za knjige',
-	'coll-n_pages' => '$1 {{PLURAL:$1|stran|strani|strani|strani|strani}}',
 	'coll-unknown_subpage_title' => 'Neznana podstran',
 	'coll-unknown_subpage_text' => 'Ta podstran [[Special:Book|knjige]] ne obstaja',
-	'coll-printable_version_pdf' => 'Različica PDF',
-	'coll-download_as' => 'Prenesi kot $1',
+	'coll-couldnotaddarticle_title' => 'Wiki stran ni mogoče dodati',
+	'coll-couldnotaddarticle_msg' => 'Wiki stran ni bilo mogoče dodati.',
+	'coll-couldnotremovearticle_title' => 'Wiki stran ni mogoče odstraniti',
+	'coll-couldnotremovearticle_msg' => 'Wiki stran ni bilo mogoče odstraniti.',
 	'coll-noscript_text' => '<h1>Zahtevan je JavaScript!</h1>
 <strong>Vaš brskalnik ne podpira JavaScripta ali je podpora zanj izključena.
 Ta stran ne bo delovala pravilno bren omogočenega JavaScripta.</strong>',
-	'coll-intro_text' => 'Ustvarite in urejajte svoje individualno izbiro wiki-strani.<br />Glej [[{{MediaWiki:Coll-helppage}}]] za več informacij.',
-	'coll-helppage' => 'Help:Knjige',
-	'coll-bookscategory' => 'Knjige',
 	'coll-savedbook_template' => 'shranjena_knjiga',
 	'coll-your_book' => 'Vaša knjiga',
 	'coll-download_title' => 'Prenesi',
-	'coll-download_text' => 'Če želite naložiti različico, izberite obliko in kliknite na gumb.',
-	'coll-download_as_text' => 'Za prenos različice v obliki $1 kliknite na gumb.',
+	'coll-download_text' => 'Če želite prenesti knjigo, izberite obliko in kliknite gumb.',
+	'coll-download_as_text' => 'Za prenos vaše knjige v obliki $1 kliknite gumb.',
 	'coll-download' => 'Prenesi',
 	'coll-format_label' => 'Oblika:',
 	'coll-remove' => 'Odstrani',
@@ -6164,29 +11079,33 @@
 	'coll-drag_and_drop' => 'Uporabite metodo povleci in spusti, da preuredite vrstni red wiki-strani in poglavij',
 	'coll-create_chapter' => 'Ustvari poglavje',
 	'coll-sort_alphabetically' => 'Razvrsti po abecedi',
-	'coll-clear_collection' => 'Zbriši knjigo',
-	'coll-clear_collection_confirm' => 'Ali res želite popolnoma izbrisati vašo knjigo?',
 	'coll-rename' => 'Preimenuj',
 	'coll-new_chapter' => 'Vnesite ime za novo poglavje',
 	'coll-rename_chapter' => 'Vnesite novo ime za poglavje',
 	'coll-no_such_category' => 'Ne obstaja nobena taka kategorija',
 	'coll-notitle_title' => 'Naslov strani ni bi bilo mogoče določiti.',
-	'coll-post_failed_title' => 'POST-zahteva ni uspela',
+	'coll-post_failed_title' => 'Zahteva POST ni uspela',
+	'coll-post_failed_msg' => 'Zahteva POST za $1 ni uspela ($2).',
+	'coll-mwserve_failed_title' => 'Napaka na prevajalnem strežniku',
+	'coll-mwserve_failed_msg' => 'Na prevajalnem strežniku je prišlo do napake: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Strežnik je vrnil napako',
 	'coll-empty_collection' => 'Prazna knjiga',
-	'coll-revision' => 'Redakcija: $ 1',
+	'coll-revision' => 'Redakcija: $1',
 	'coll-save_collection_title' => 'Shranite in delite vaše knjige',
 	'coll-save_collection_text' => 'Izberite mesto za shranjevanje vaše knjige:',
-	'coll-login_to_save' => 'Če želite shraniti knjige za kasnejšo uporabo, se prosimo [[Special:Userlogin|prijavite ali ustvarite račun]].',
+	'coll-login_to_save' => 'Če želite shraniti knjige za kasnejšo uporabo, se prosimo [[Special:UserLogin|prijavite ali ustvarite račun]].',
 	'coll-personal_collection_label' => 'Osebna knjiga:',
 	'coll-community_collection_label' => 'Skupna knjiga:',
 	'coll-save_collection' => 'Shrani knjigo',
-	'coll-save_category' => 'Vse knjige so shranjene v kategoriji [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]',
+	'coll-save_category' => 'Vse shranjene knjige so dodane k kategoriji [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]',
 	'coll-overwrite_title' => 'Stran obstaja.
 Jo prepišem?',
 	'coll-overwrite_text' => 'Stran z imenom [[:$1]] že obstaja. 
 Ali želite, da se nadomesti z vašo knjigo?',
 	'coll-yes' => 'Da',
 	'coll-no' => 'Ne',
+	'coll-load_overwrite_text' => 'Vaša knjiga že vsebuje nekaj strani.
+Ali želite prepisati vsebino vaše knjige, dodati vsebino ali prekiniti nalaganje te knjige.',
 	'coll-overwrite' => 'Prepiši',
 	'coll-append' => 'Pripni',
 	'coll-cancel' => 'Prekliči',
@@ -6204,71 +11123,366 @@
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(wiki-stran: $1)',
 	'coll-rendering_page' => '(stran: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informativno besedilo prevajalne strani',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informativno besedilo prevajalne zbirke',
 	'coll-rendering_finished_title' => 'Upodabljanje končano',
 	'coll-rendering_finished_text' => '<strong>Datoteka je bila ustvarjena. [$1 Prenesi datoteko]</strong> na vaš računalnik.
 
 Opombe:
 * Niste zadovoljni z ustvarjeno datoteko? Glej [[{{MediaWiki:Coll-helppage}}|stran s pomočjo za razširitev Knjige]] za možnosti izboljšav.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Ustvarjanje informativnega besedila strani',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Ustvarjanje informativnega besedila zbirke',
 	'coll-notfound_title' => 'Knjiga ni bila najdena',
 	'coll-notfound_text' => 'Stran v knjigi ni bila najdena.',
+	'coll-download_notfound_title' => 'Datoteke ni mogoče najti',
+	'coll-download_notfound_text' => 'Datoteka, ki jo poskušate prenesti ne obstaja:
+Morda je bila izbrisana in jo je potrebno regenerirati.',
+	'coll-download_failed_title' => 'Napaka med prenosom',
+	'coll-download_failed_text' => 'Pri prenosu datoteke je prišlo do napake: $1',
 	'coll-is_cached' => '<ul><li>Najdena je bila shranjena različica tega dokumenta, zato upodabljanje ni bilo potrebno. <a href="$1">Vsili ponovno upodabljanje.</a></li></ul>',
 	'coll-excluded-templates' => '* Predloge v kategoriji [[:Category:$1|$1]], so bile izključene.',
 	'coll-blacklisted-templates' => '* Predloge na črnem seznamu [[:$1]], so bile izključene.',
 	'coll-return_to_collection' => '<p>Vrnitev na: <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Naroči kot tiskano knjigo',
 	'coll-book_text' => 'Naroči tiskano knjigo od našega partnerja za tisk na zahtevo:',
-	'coll-order_from_pp' => 'Naroči knjigo od $1',
+	'coll-order_from_pp' => 'Predoglej pri $1',
 	'coll-about_pp' => 'O $1',
 	'coll-invalid_podpartner_title' => 'Neveljaven partner TNZ',
-	'coll-license' => 'Licenca',
+	'coll-invalid_podpartner_msg' => 'Izbran POD partner ni veljaven.
+Kontaktirajte vašega MediaWiki skrbnika.',
+	'coll-license' => 'Dovoljenje',
 	'coll-return_to' => 'Nazaj na [[:$1]]',
+	'coll-more_info' => 'Prikaži več informacij',
+	'coll-hide_info' => 'Skrij informacije',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress podatki naročila',
+	'coll-suggest_title' => 'Predlagane strani za vašo knjigo',
+	'coll-suggest_intro_text' => 'Predlogi temeljijo na trenutnem izboru strani wiki v vaši knjigi.
+Seznam je posodobljen, ko kliknete na gumbe za dodajanje ali odstranjevanje.',
+	'coll-suggested_articles' => 'Predlogi',
+	'coll-suggest_reset_bans' => 'ponastavi',
+	'coll-suggest_reset_bans_tooltip' => 'Prikaži prejšnje odstranjene predloge',
+	'coll-suggest_add_selected' => 'Dodaj izbrane strani',
+	'coll-suggest_ban_selected' => 'Odstrani izbrane strani',
+	'coll-suggest_your_book' => 'Vaša knjiga',
+	'coll-suggest_show' => 'prikaži',
+	'coll-suggest_ban_tooltip' => 'Odstrani to stran s seznama predlogov',
+	'coll-suggest_article_ban' => 'Stran <strong>$1</strong> je bila odstranjena iz predlogov ($2).',
+	'coll-suggest_article_add' => 'Stran <strong>$1</strong> je bila dodana vaši knjigi ($2).',
+	'coll-suggest_article_remove' => 'Stran <strong>$1</strong> je bila odstranjena iz vaše knjige ($2).',
+	'coll-suggest_undo_tooltip' => 'Razveljavi to dejanje',
+	'coll-suggest_undo' => 'razveljavi',
+	'coll-load_local_book' => 'Kliknite V redu za nadaljevanje z vašo knjigo %TITLE%, ki vsebuje %NUMPAGES% wikistrani. Kliknite Prekliči za njen izbris in začnite s prazno knjigo.',
+	'right-collectionsaveasuserpage' => 'Shranjevanje knjig kot uporabniške strani',
+	'right-collectionsaveascommunitypage' => 'Shranjevanje knjig kot strani občestva',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Nikola Smolenski
+ * @author Rancher
  * @author Sasa Stefanovic
  * @author Јованвб
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
+ * @author Обрадовић Горан
  */
 $messages['sr-ec'] = array(
-	'coll-add_category' => 'Додај категорију',
-	'coll-printable_version_pdf' => 'PDF верзија',
+	'coll-desc' => '[[Special:Book|Писац књига]]',
+	'coll-book_creator_intro' => "<big>Са ''писцем књига'' можете направити књигу која садржи жељене странице са викије. Њу можете сачувати у различитим форматима (нпр. PDF или ODF) или је наручити у штампаном издању.</big>",
+	'coll-manage_your_book' => 'Управљање књигама',
+	'coll-book_creator_help' => 'Погледајте [[{{MediaWiki:Coll-helppage}}|страницу за помоћ о књигама]] за више информација.',
+	'coll-start_book_creator' => 'Покрени књиговезницу',
+	'coll-book_creator_continue' => 'Настави са коришћењем уређивача књига',
+	'coll-book_creator_disable_text' => "''Књиговезница'' ће бити онемогућена, а књига на којој радите ће бити уклоњена.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/текст писца књига',
+	'coll-collection' => 'Књига',
+	'coll-collections' => 'Књиге',
+	'coll-exclusion_category_title' => 'Изузето из штампања',
+	'coll-print_template_prefix' => 'Штампање',
+	'coll-print_template_pattern' => '$1/штампање',
+	'coll-unknown_subpage_title' => 'Непозната подстраница',
+	'coll-unknown_subpage_text' => 'Ова подстраница [[Special:Book|књиге]] не постоји.',
+	'coll-couldnotaddarticle_title' => 'Не могу да додам вики страницу',
+	'coll-couldnotaddarticle_msg' => 'Не могу да додам вики-страницу.',
+	'coll-couldnotremovearticle_title' => 'Не могу да уклоним вики страницу',
+	'coll-couldnotremovearticle_msg' => 'Вики страница се не може уклонити.',
+	'coll-noscript_text' => '<h1>Потребан је јаваскрипт</h1>
+<strong>Ваш прегледач не подржава јаваскрипт или он није омогућен.
+Ова страница неће радити исправно без њега.</strong>',
+	'coll-savedbook_template' => 'сачувана_књига',
+	'coll-your_book' => 'Ваша књига',
+	'coll-download_title' => 'Преузимање',
+	'coll-download_text' => 'Изаберите жељени формат и кликните на дугме за преузимање.',
+	'coll-download_as_text' => 'Кликните на дугме да бисте преузели књигу у формату $1.',
+	'coll-download' => 'Преузми',
+	'coll-format_label' => 'Формат:',
 	'coll-remove' => 'Уклони',
+	'coll-show' => 'Прикажи',
+	'coll-move_to_top' => 'Помери на врх',
+	'coll-move_up' => 'Помери нагоре',
+	'coll-move_down' => 'Помери надоле',
+	'coll-move_to_bottom' => 'Помери на дно',
 	'coll-title' => 'Наслов:',
-	'coll-revision' => 'Ревизија: $1',
+	'coll-subtitle' => 'Поднаслов:',
+	'coll-contents' => 'Садржај',
+	'coll-drag_and_drop' => 'Можете прераспоредити странице и поглавља превлачивши их.',
+	'coll-create_chapter' => 'Направи поглавље',
+	'coll-sort_alphabetically' => 'Поређај по азбучном реду',
+	'coll-rename' => 'Преименуј',
+	'coll-new_chapter' => 'Унесите назив новог поглавља:',
+	'coll-rename_chapter' => 'Унесите нови назив поглавља:',
+	'coll-no_such_category' => 'Нема такве категорије',
+	'coll-notitle_title' => 'Наслов ове странице није одређен.',
+	'coll-post_failed_title' => 'Захтев POST није успео',
+	'coll-post_failed_msg' => 'Захтев POST за $1 није успео ($2).',
+	'coll-mwserve_failed_title' => 'Грешка при израђивању',
+	'coll-mwserve_failed_msg' => 'Дошло је до грешке при израђивању: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Сервер је одговорио грешком',
+	'coll-empty_collection' => 'Књига је празна.',
+	'coll-revision' => 'Измена: $1',
+	'coll-save_collection_title' => 'Чување и дељење књиге',
+	'coll-save_collection_text' => 'Изаберите место за смештање своје књиге:',
+	'coll-login_to_save' => 'Ако желите да сачувате књиге за касније, [[Special:UserLogin|пријавите се или отворите налог]].',
+	'coll-personal_collection_label' => 'Лична књига:',
+	'coll-community_collection_label' => 'Заједничка књига:',
+	'coll-save_collection' => 'Сачувај књигу',
+	'coll-save_category' => 'Све сачуване књиге су додате у категорију [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Страница већ постоји.
+Заменити је?',
+	'coll-overwrite_text' => 'Страница с именом [[:$1]] већ постоји.
+Желите ли да је замените са својом књигом?',
 	'coll-yes' => 'Да',
 	'coll-no' => 'Не',
-	'coll-cancel' => 'Прекини',
-	'coll-update' => 'Апдејтуј',
-	'coll-rendering_article' => '(вики страница: $1)',
+	'coll-load_overwrite_text' => 'Неке странице већ поседујете у својој књизи.
+Желите ли да замените текућу књигу, додате нови садржај или поништите учитавање ове књиге?',
+	'coll-overwrite' => 'Замени',
+	'coll-append' => 'Додај',
+	'coll-cancel' => 'Откажи',
+	'coll-update' => 'Ажурирај',
+	'coll-limit_exceeded_title' => 'Књига је превелика',
+	'coll-limit_exceeded_text' => 'Ваша књига је превелика.
+Не можете додати још страница.',
+	'coll-rendering_title' => 'Израђивање',
+	'coll-rendering_text' => '<p><strong>Сачекајте да се документ изгради.</strong></p>
+
+<p><strong>Напредак:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Страница би требало да се освежи за неколико секунди, у зависности од количине садржаја.
+Ако се то не догоди, кликните на дугме за поновно учитавање странице у свом прегледачу.</p>',
+	'coll-rendering_status' => '<strong>Стање:</strong> $1',
+	'coll-rendering_article' => '(страница викија: $1)',
 	'coll-rendering_page' => '(страница: $1)',
-	'coll-order_from_pp' => 'Наручи књигу са $1',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/израђивање текста',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/израђивање збирног текста',
+	'coll-rendering_finished_title' => 'Израђивање је завршено',
+	'coll-rendering_finished_text' => '<strong>Документ је направљен.</strong>
+<strong>[$1 Преузмите датотеку]</strong> на свој рачунар.
+
+Напомена:
+* Незадовољни сте резултатом? Погледајте [[{{MediaWiki:Coll-helppage}}|страницу за помоћ о књигама]] где ћете наћи објашњење како да га побољшате.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/израђивање текста',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/израђивање збирног текста',
+	'coll-notfound_title' => 'Књига није пронађена',
+	'coll-notfound_text' => 'Страница књиге није пронађена.',
+	'coll-download_notfound_title' => 'Датотека није пронађена',
+	'coll-download_notfound_text' => 'Датотека коју желите да преузмете не постоји.
+Можда је обрисана и потребно је поновно стварање.',
+	'coll-download_failed_title' => 'Грешка при преузимању',
+	'coll-download_failed_text' => 'Дошло је до грешке при преузимању датотеке: $1',
+	'coll-is_cached' => '<ul><li>Пронађено је раније издање документа. Израђивање није неопходно.
+<a href="$1">Приморај поновно израђивање.</a></li></ul>',
+	'coll-excluded-templates' => '* Шаблони у категорији [[:Category:$1|$1]] су искључени.',
+	'coll-blacklisted-templates' => '* Шаблони на црној листи [[:$1]] су искључени.',
+	'coll-return_to_collection' => '<p>Назад на <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Наручивање у штампаном издању',
+	'coll-book_text' => 'Поручите штампану књигу од нашег партнера.',
+	'coll-order_from_pp' => 'Прегледај са $1-ом',
+	'coll-about_pp' => 'О $1',
+	'coll-invalid_podpartner_title' => 'Неисправан партнер за штампање на захтев',
+	'coll-invalid_podpartner_msg' => 'Изабрани партнер за штампање на захтев је неисправан.
+Контактирајте администратора Медијавикија.',
 	'coll-license' => 'Лиценца',
-	'coll-return_to' => 'Врати на [[:$1]]',
+	'coll-return_to' => 'Назад на [[:$1]]',
+	'coll-more_info' => 'Прикажи више података',
+	'coll-hide_info' => 'Сакриј податке',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/подаци о наручивању на Педијапресу',
+	'coll-suggest_title' => 'Предложене странице за вашу књигу',
+	'coll-suggest_intro_text' => 'Предлози су засновани на текућем скупу страница у вашој књизи.
+Списак се ажурира сваки пут када кликнете на дугмиће за додавање и уклањање.',
+	'coll-suggested_articles' => 'Предлози',
+	'coll-suggest_reset_bans' => 'поништи',
+	'coll-suggest_reset_bans_tooltip' => 'Прикажи скорашње уклоњене предлоге',
+	'coll-suggest_add_selected' => 'Додај изабране странице',
+	'coll-suggest_ban_selected' => 'Уклони изабране странице',
+	'coll-suggest_your_book' => 'Ваша књига',
+	'coll-suggest_show' => 'прикажи',
+	'coll-suggest_ban_tooltip' => 'Уклоните ову страницу са списка предлога',
+	'coll-suggest_article_ban' => 'Страница <strong>$1</strong> је уклоњена из предлога ($2).',
+	'coll-suggest_article_add' => 'Страница <strong>$1</strong> је додата у вашу књигу ($2).',
+	'coll-suggest_article_remove' => 'Страница <strong>$1</strong> је уклоњена из ваше књиге ($2).',
+	'coll-suggest_undo_tooltip' => 'Поништите ову радњу',
+	'coll-suggest_undo' => 'поништи',
+	'coll-load_local_book' => 'Кликните на OK да наставите рад с књигом %TITLE% која садржи %NUMPAGES% страница. Кликните на Cancel да је обришете и започнете с празном књигом.',
+	'right-collectionsaveasuserpage' => 'чување књига у виду корисничке странице',
+	'right-collectionsaveascommunitypage' => 'чување књига у виду заједничке странице',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ * @author Rancher
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
+ */
+$messages['sr-el'] = array(
+	'coll-desc' => '[[Special:Book|Napravi knjige]]',
+	'coll-book_creator_intro' => "<big>Sa ''piscem knjiga'' možete napraviti knjigu koja sadrži željene stranice sa vikije. Nju možete sačuvati u različitim formatima (npr. PDF ili ODF) ili je naručiti u štampanom izdanju.</big>",
+	'coll-manage_your_book' => 'Uredi svoju knjigu',
+	'coll-book_creator_help' => 'Vidi [[{{MediaWiki:Coll-helppage}}|pomoćnu stranu o knjigama]] za više podataka.',
+	'coll-start_book_creator' => 'Započni uređivač knjiga',
+	'coll-book_creator_continue' => 'Nastavi sa korišćenjem uređivača knjiga',
+	'coll-book_creator_disable_text' => "''Uređivač knjiga'' će biti onemogućen a knjiga na kojoj radite će biti uklonjena.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/tekst pisca knjiga',
+	'coll-collection' => 'Knjiga',
+	'coll-collections' => 'Knjige',
+	'coll-exclusion_category_title' => 'Izuzmi pri štampanju',
+	'coll-print_template_prefix' => 'Štampaj',
+	'coll-print_template_pattern' => '$1/Štampa',
+	'coll-unknown_subpage_title' => 'Nepoznata podstrana',
+	'coll-unknown_subpage_text' => 'Ova podstrana [[Special:Book|knjige]] ne postoji',
+	'coll-couldnotaddarticle_title' => 'Dodavanje viki strane nije uspelo',
+	'coll-couldnotaddarticle_msg' => 'Dodavanje viki stranice nije moguće.',
+	'coll-couldnotremovearticle_title' => 'Uklanjanje viki stranice nije moguće',
+	'coll-couldnotremovearticle_msg' => 'Viki stranicu nije moguće ukloniti.',
+	'coll-noscript_text' => '<h1>Javaskript je neophodan!</h1>
+<strong>Vaš brovzer ne podržava javaskript, ili je javaskript isključen.
+Ova stranica neće raditi ispravno bez javaskripta.</strong>',
+	'coll-savedbook_template' => 'snimljena_knjiga',
+	'coll-your_book' => 'Vaša knjiga',
+	'coll-download_title' => 'Preuzmi',
+	'coll-download_text' => 'Izaberite željeni format i pritisnite dugme da biste preuzeli Vašu knjigu.',
+	'coll-download_as_text' => 'Pritisnite dugme da biste preuzeli vašu knjigu u $1 formatu.',
+	'coll-download' => 'Preuzmi',
+	'coll-format_label' => 'Vrsta:',
+	'coll-remove' => 'Ukloni',
+	'coll-show' => 'Prikaži',
+	'coll-move_to_top' => 'Pomeri na vrh',
+	'coll-move_up' => 'Pomeri gore',
+	'coll-move_down' => 'Pomeri dole',
+	'coll-move_to_bottom' => 'Pomeri na dno',
+	'coll-title' => 'Naslov:',
+	'coll-subtitle' => 'Podnaslov:',
+	'coll-contents' => 'Sadržaj',
+	'coll-drag_and_drop' => 'Možete prerasporediti viki stranice i poglavlja prevlačivši ih',
+	'coll-create_chapter' => 'Napravi poglavlje',
+	'coll-sort_alphabetically' => 'Poređaj azbučno',
+	'coll-rename' => 'Preimenuj',
+	'coll-new_chapter' => 'Unesite ime novog poglavlja',
+	'coll-rename_chapter' => 'Unesite novo ime poglavlja',
+	'coll-no_such_category' => 'Nema takve kategorije',
+	'coll-notitle_title' => 'Naslov ove stranice nije mogao biti utvrđen.',
+	'coll-post_failed_title' => 'POST zahtev nije uspeo',
+	'coll-post_failed_msg' => 'POST zahtev za $1 nije uspeo ($2).',
+	'coll-mwserve_failed_title' => 'Greška na serveru za izrađivanje',
+	'coll-mwserve_failed_msg' => 'Na serveru za izrađivanje desila se greška: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Greška u odgovoru servera',
+	'coll-empty_collection' => 'Prazna knjiga',
+	'coll-revision' => 'Revizija: $1',
+	'coll-save_collection_title' => 'Snimi i deli svoju knjigu',
+	'coll-save_collection_text' => 'Izaberite mesto za smeštanje svoje knjige:',
+	'coll-login_to_save' => 'Ukoliko želite da snimite knjige za kasniju upotrebu, [[Special:UserLogin|prijavite se ili napravite nalog]].',
+	'coll-personal_collection_label' => 'Lična knjiga:',
+	'coll-community_collection_label' => 'Zajednička knjiga:',
+	'coll-save_collection' => 'Snimi knjigu',
+	'coll-save_category' => 'Sve snimljene knjige su dodate u kategoriju [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Stranica već postoji.
+Da je prebrišem?',
+	'coll-overwrite_text' => 'Stranica sa imenom [[:$1]] već postoji.
+Da li želite da bude prebrisana vašom knjigom?',
+	'coll-yes' => 'Da',
+	'coll-no' => 'Ne',
+	'coll-load_overwrite_text' => 'Već imate neke stranice u svojoj knjizi.
+Da li želite da prebrišete svoju trenutnu knjigu, dodate novi sadržaj, ili poništite učitavanje ove knjige?',
+	'coll-overwrite' => 'Prebriši',
+	'coll-append' => 'Nadoveži',
+	'coll-cancel' => 'Otkaži',
+	'coll-update' => 'Ažuriraj',
+	'coll-limit_exceeded_title' => 'Knjiga je prevelika',
+	'coll-limit_exceeded_text' => 'Vaša knjiga je prevelika.
+
+Ne može joj se dodati još strana.',
+	'coll-rendering_title' => 'Izrađujem',
+	'coll-rendering_text' => '<p><strong>Molim sačekajte dok se dokument stvara.</strong></p>
+
+<p><strong>Napredak:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>Ova stranica bi trebalo da se sama osvežava svakih par sekundi.
+Ako ovo ne radi, pritisnite dugme za osvežavanje svog brovzera.</p>',
+	'coll-rendering_status' => '<strong>Stanje:</strong> $1',
+	'coll-rendering_article' => '(viki stranica: $1)',
+	'coll-rendering_page' => '(stranica: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/izrađivanje teksta',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/izrađivanje zbirnog teksta',
+	'coll-rendering_finished_title' => 'Izrađivanje je završeno',
+	'coll-rendering_finished_text' => '<strong>Fajl sa dokumentom je napravljen.</strong>
+<strong>[$1 Preuzmite fajl]</strong> na svoj kompjuter.
+
+Napomena:
+* Nezadovoljni ste izlazom? Pogledajte [[{{MediaWiki:Coll-helppage}}|stranu pomoći o knjigama]] za mogućnosti da ga poboljšate.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/izrađivanje teksta',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/izrađivanje zbirnog teksta',
+	'coll-notfound_title' => 'Knjiga nije pronađena',
+	'coll-notfound_text' => 'Ne mogu da nađem stranu knjige.',
+	'coll-download_notfound_title' => 'Fajl nije pronađen',
+	'coll-download_notfound_text' => 'Fajl koji pokušavate da preuzmete ne postoji: moguće je da je je obrisan i mora biti ponovo napravljen.',
+	'coll-download_failed_title' => 'Greška prilikom skidanja',
+	'coll-download_failed_text' => 'Javila se greška prilikom skidanja fajla: $1',
+	'coll-is_cached' => '<ul><li>Izrađena verzija dokumenta je pronađena, tako da izrađivanje nije neophodno. <a href="$1">Nametni ponovno izrađivanje.</a></li></ul>',
+	'coll-excluded-templates' => '* Šabloni u kategoriji [[:Category:$1|$1]] su isključeni.',
+	'coll-blacklisted-templates' => '* Šabloni na crnoj listi [[:$1]] su isključeni.',
+	'coll-return_to_collection' => '<p>Nazad na <a href="$1">$2</a></p>',
+	'coll-book_title' => 'Naruči kao odštampanu knjigu',
+	'coll-book_text' => 'Dobijte odštampanu knjigu od našeg partnera za štampanje na zahtev:',
+	'coll-order_from_pp' => 'Pregledaj sa $1',
+	'coll-about_pp' => 'O „$1“',
+	'coll-invalid_podpartner_title' => 'Neispravan partner za štampanje na zahtev',
+	'coll-invalid_podpartner_msg' => 'Odabrani partner za štampanje na zahtev je neispravan.
+Molim kontaktirajte svog MedijaViki administratora.',
+	'coll-license' => 'Licenca',
+	'coll-return_to' => 'Vrati na [[:$1]]',
+	'coll-more_info' => 'Pokaži više informacija',
+	'coll-hide_info' => 'Skloni informacije',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/podaci o naručivanju na Pedijapresu',
+	'coll-suggest_title' => 'Strane predložene za vašu knjigu',
+	'coll-suggest_intro_text' => 'Predlozi su zasnovani na tekućem skupu stranica u vašoj knjizi.
+Spisak se ažurira svaki put kada kliknete na dugmiće za dodavanje i uklanjanje.',
+	'coll-suggested_articles' => 'Predlozi',
+	'coll-suggest_reset_bans' => 'poništi',
+	'coll-suggest_reset_bans_tooltip' => 'Prikaži skoro uklonjene predloge',
+	'coll-suggest_add_selected' => 'Dodaj označene strane',
+	'coll-suggest_ban_selected' => 'Ukloni odabrane strane',
+	'coll-suggest_your_book' => 'Tvoja knjiga',
+	'coll-suggest_show' => 'pokaži',
+	'coll-suggest_ban_tooltip' => 'Ukloni ovu stranu sa spiska predloga',
+	'coll-suggest_article_ban' => 'Stranica <strong>$1</strong> je uklonjena iz predloga ($2).',
+	'coll-suggest_article_add' => 'Stranica <strong>$1</strong> je dodata u vašu knjigu ($2).',
+	'coll-suggest_article_remove' => 'Stranica <strong>$1</strong> je uklonjena iz vaše knjige ($2).',
+	'coll-suggest_undo_tooltip' => 'Poništi ovu akciju',
+	'coll-suggest_undo' => 'poništi',
+	'coll-load_local_book' => 'Kliknite na OK da nastavite rad s knjigom %TITLE% koja sadrži %NUMPAGES% stranica. Kliknite na Cancel da je obrišete i započnete s praznom knjigom.',
+	'right-collectionsaveasuserpage' => 'čuvanje knjiga u vidu korisničke stranice',
+	'right-collectionsaveascommunitypage' => 'čuvanje knjiga u vidu zajedničke stranice',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'coll-desc' => '[[Special:Collection|Siedentouhoopestaalenge]], moak PDFs',
-	'coll-collection' => 'Touhoopestaalenge',
-	'coll-collections' => 'Touhoopestaalenge',
-	'coll-create_a_book' => 'Kollektion',
-	'coll-add_page' => 'Siede bietouföigje',
-	'coll-remove_page' => 'Siede wächhoalje',
-	'coll-add_category' => 'Kategorie bietouföigje',
-	'coll-load_collection' => 'Touhoopestaalenge leede',
-	'coll-show_collection' => 'Touhoopestaalenge wiese',
-	'coll-help_collections' => 'Hälpe tou Touhoopestaalengen',
-	'coll-n_pages' => '$1 {{PLURAL:$1|Siede|Sieden}}',
-	'coll-download_as' => 'As $1 deelleede',
+	'coll-desc' => '[[Special:Bouk|Bouke moakje]]',
+	'coll-collection' => 'Bouk',
+	'coll-collections' => 'Bouke',
 	'coll-noscript_text' => '<h1>JavaScript is nöödich!</h1>
 <strong>Dien Browser unnerstutset neen Javascript of Javascript wuude deaktivierd. Disse Siede däd nit gjucht funktionierje, soloange Javascript nit ferföigboar is.</strong>',
-	'coll-intro_text' => 'Du koast Sieden touhoopestaale, n PDF deerap moakje un deelleede as uk Touhoopestaalengen foar ne leetere Ferweendenge twiskespiekerje un mäd uur Benutsere deele.
-
-Sjuch ju [[{{MediaWiki:Coll-helppage}}|Hälpe bie Touhoopestaalengen]] foar wiedere Informatione.',
-	'coll-helppage' => 'Help:Touhoopestaalengen',
-	'coll-download_title' => 'Touhoopestaalenge as PDF deelleede',
-	'coll-download_text' => 'Uum ne automatisk moakede PDF-Doatäi fon dien Touhoopestaalenge deeltouleeden, klik ap ap ju Schaltfläche.',
+	'coll-download_title' => 'Deelleede',
+	'coll-download_text' => 'Uum ne Offline-Version fon dien Bouk deeltouleeden, wääl n Formoat un klik ap ap ju Skaltfläche.',
 	'coll-download' => 'Deelleede',
 	'coll-format_label' => 'Formoat:',
 	'coll-remove' => 'Wächhoalje',
@@ -6279,9 +11493,8 @@
 	'coll-title' => 'Tittel:',
 	'coll-subtitle' => 'Unnertittel:',
 	'coll-contents' => 'Inhoold',
-	'coll-create_chapter' => 'Näi Kapittel moakje',
-	'coll-sort_alphabetically' => 'Sieden alphabetisk sortierje',
-	'coll-clear_collection' => 'Touhoopestaalenge läskje',
+	'coll-create_chapter' => 'Kapittel moakje',
+	'coll-sort_alphabetically' => 'Alphabetisk sortierje',
 	'coll-rename' => 'Uumebenaame',
 	'coll-new_chapter' => 'Reek n Noome foar n näi Kapittel ien',
 	'coll-rename_chapter' => 'Reek n näien Noome foar dät Kapittel ien',
@@ -6292,64 +11505,75 @@
 	'coll-mwserve_failed_title' => 'Serverfailer',
 	'coll-mwserve_failed_msg' => 'Ap dän Renderer-Server is n Failer aptreeden: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'Failermäldenge fon dän Server',
-	'coll-empty_collection' => 'Loose Kollektion',
+	'coll-empty_collection' => 'Loos Bouk',
 	'coll-revision' => 'Version: $1',
-	'coll-save_collection_title' => 'Kollektion spiekerje',
-	'coll-save_collection_text' => 'Uum disse Kollektion tou spiekerjen, wääl n Typ un reek n Tittel ien:',
-	'coll-login_to_save' => 'Wan du Kollektione spiekerje moatest, [[Special:UserLogin|mäld die an of moak n Benutserkonto]].',
-	'coll-personal_collection_label' => 'Persöönelke Kollektion:',
-	'coll-community_collection_label' => 'Community Kollektion:',
-	'coll-save_collection' => 'Kollektion spiekerje',
-	'coll-overwrite_title' => 'Siede bestoant. Uurschrieuwe?',
+	'coll-save_collection_title' => 'Dien Bouk spiekerje un deele',
+	'coll-save_collection_text' => 'Wääl n Spiekersteede foar dien Bouk:',
+	'coll-login_to_save' => 'Wan du Bouke spiekerje moatest, [[Special:UserLogin|mäld die an of moak n Benutserkonto]].',
+	'coll-personal_collection_label' => 'Persöönelk Bouk:',
+	'coll-community_collection_label' => 'Gemeenskuppelk Bouk:',
+	'coll-save_collection' => 'Bouk spiekerje',
+	'coll-save_category' => 'Aal spiekerde Bouke wäide ju Kategorie [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] touoardend.',
+	'coll-overwrite_title' => 'Siede bestoant. Uurskrieuwe?',
 	'coll-overwrite_text' => 'Ne Siede mäd dän Noome [[:$1]] bestoant al.
 Moatest du ju truch dien Kollektion ärsätte?',
 	'coll-yes' => 'Jee',
 	'coll-no' => 'Noa',
 	'coll-load_overwrite_text' => 'Dien Kollektion änthaalt al wäkke Sieden.
-Moatest du ju aktuelle Kollektion uurschrieuwe, do näie Sieden anhongje of dät Leeden fon disse Kollektion oubreeke?',
-	'coll-overwrite' => 'Uurschrieuwe',
+Moatest du dät aktuelle Bouk uurskrieuwe, do näie Sieden anhongje of dät Leeden fon dit Bouk oubreeke?',
+	'coll-overwrite' => 'Uurskrieuwe',
 	'coll-append' => 'Anhongje',
 	'coll-cancel' => 'Oubreeke',
-	'coll-limit_exceeded_title' => 'Kollektion tou groot',
-	'coll-limit_exceeded_text' => 'Dien Kollektion is tou groot.
-Deer konnen neen Sieden moor bietouföiged wäide.',
+	'coll-update' => 'Aktualisierje',
+	'coll-limit_exceeded_title' => 'Bouk tou groot',
+	'coll-limit_exceeded_text' => 'Dien Bouk is tou groot. Deer konnen neen Sieden moor bietouföiged wäide.',
 	'coll-rendering_title' => 'An t Moakjen',
-	'coll-rendering_text' => "'''Täif, bit dät Dokument moaked wuuden is.'''
+	'coll-rendering_text' => '<p><strong>Täif, bit dät Dokument moaked wuuden is.</strong></p>
 
-Foutschrit: '''$1 %'''.
+<p><strong>Foutskrit:</strong> <span id="renderingProgress">$1</span> % <span id="renderingStatus">$2</span></p>
 
-Disse Siede schuul sik älke poor Sekunden fonsälwen aktualisierje.
-Fals dit daach nit geböärt, druk dan dän „Aktualisierje“-Knoop (maast F5) fon dien Browser.",
+<p>Disse Siede skuul sik älke poor Sekunden fonsälwen aktualisierje.
+Fals dit daach nit geböärt, druk dan dän „Aktualisierje“-Knoop (maast F5) fon dien Browser.</p>',
+	'coll-rendering_status' => '<strong>Stoatus:</strong> $1',
+	'coll-rendering_article' => '(Wikisiede: $1)',
+	'coll-rendering_page' => '(Siede: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informatione uur ju Deerstaalenge fon Sieden',
 	'coll-rendering_finished_title' => 'Kloor moaked',
-	'coll-rendering_finished_text' => '</strong>Ju Doatäi wuud mäd Ärfoulch moaked.</strong>
-<strong>[$1 Klik hier],</strong> uum ju Doatäi deeltouleeden.
+	'coll-rendering_finished_text' => '<strong>Ju Doatäi wuud mäd Ärfoulch moaked.</strong>
+<strong>[$1 Klik hier],</strong> uum ju Doatäi deeltouleeden.</strong>
 
 Bäst du nit mäd dät Resultoat toufree?
 Muugelkhaide tou ju Ferbeeterenge fon ju Uutgoawe finst du ap ju [[{{MediaWiki:Coll-helppage}}|Hälpesiede uur do Siedenkollektione]].',
-	'coll-notfound_title' => 'Kollektion nit fuunen',
-	'coll-notfound_text' => 'Dien Kollektion kuud nit fuunen wäide.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Deerstaalenge fon ju Siedeninformation',
+	'coll-notfound_title' => 'Bouk nit fuunen',
+	'coll-notfound_text' => 'Dien Bouk kuud nit fuunen wäide.',
+	'coll-download_notfound_title' => 'Doatäi nit fuunen',
 	'coll-is_cached' => '<ul><li>Der is ne twiskespiekerde Version fon dät Dokument foarhounden, so dät neen Renderjen nöödich waas. <a href="$1">Näiränderjen outwinge.</a></li></ul>',
 	'coll-excluded-templates' => '* Foarloagen uut ju Kategorie [[:Category:$1|$1]] wuuden uutsleeten.',
 	'coll-blacklisted-templates' => '* Foarloagen fon ju swotte Lieste [[:$1]] wuuden uutsleeten.',
 	'coll-return_to_collection' => 'Tourääch tou <a href="$1">$2</a>',
-	'coll-book_title' => 'Drukuutgoawe bestaale',
-	'coll-book_text' => "Du koast bie do foulgjende ''Print-on-Demand''-Partnere ne drukte Boukuutgoawe bestaale:",
-	'coll-order_from_pp' => 'Bestaal Bouk bie $1',
+	'coll-book_title' => 'As drukt Bouk bestaale',
+	'coll-book_text' => "Bestaal ne drukte Boukuutgoawe bie uus ''Print-on-Demand''-Partner.",
+	'coll-order_from_pp' => 'Foarbekiek bie $1',
 	'coll-about_pp' => 'Uur $1',
 	'coll-invalid_podpartner_title' => 'Uungultiger Print-on-Demand-Paatender',
 	'coll-invalid_podpartner_msg' => 'Do Angoawen tou dän Print-on-Demand-Paatender sunt failerhaft.
 Kontaktier dän MediaWiki-Administrator.',
 	'coll-license' => 'Lizenz',
 	'coll-return_to' => 'Tourääch tou [[:$1]]',
+	'coll-more_info' => 'Wiedere Informatione wiese',
+	'coll-hide_info' => 'Informatione fersteete',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress Bestaalinformation',
+	'coll-suggest_title' => 'Foarsloaine Sieden foar dien Bouk',
+	'coll-suggested_articles' => 'Foarsleeke',
+	'coll-suggest_reset_bans' => 'touräächsätte',
+	'coll-suggest_reset_bans_tooltip' => 'Toulääst wächhoalde Foarsleeke wiese',
 );
 
 /** Sundanese (Basa Sunda)
  * @author Irwangatot
  */
 $messages['su'] = array(
-	'coll-add_page' => 'Nambah kaca',
-	'coll-remove_page' => 'Miceun kaca',
-	'coll-add_category' => 'Nambah kategori',
 	'coll-move_to_top' => 'Mindahkeun ka luhur',
 	'coll-move_up' => 'Pindahkeun ka luhur',
 	'coll-move_down' => 'Mindahkeun ka handap',
@@ -6366,43 +11590,48 @@
 );
 
 /** Swedish (Svenska)
+ * @author Ainali
  * @author Boivie
+ * @author Dafer45
+ * @author GameOn
  * @author H92
  * @author Jon Harald Søby
+ * @author Lokal Profil
  * @author M.M.S.
+ * @author MagnusA
  * @author Najami
+ * @author Per
+ * @author Rotsee
  * @author Sannab
  */
 $messages['sv'] = array(
 	'coll-desc' => '[[Special:Book|Skapa böcker]]',
+	'coll-book_creator_intro' => "<big>Med ''bokfunktionen'' kan du skapa en bok som innehåller valfria wikisidor. Du kan exportera boken i olika format (till exempel PDF eller ODF) eller beställa en tryckt kopia.</big>",
+	'coll-manage_your_book' => 'Hantera din bok',
+	'coll-book_creator_help' => 'Se [[{{MediaWiki:Coll-helppage}}|hjälpsidan om böcker]] för mer information.',
+	'coll-start_book_creator' => 'Starta bokfunktionen',
+	'coll-book_creator_continue' => 'Fortsätt använda bokskapare',
+	'coll-book_creator_disable_text' => "''Bokskapare'' kommer att avaktiveras och boken du arbetar med kommer tas bort.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Bokskapartext',
 	'coll-collection' => 'Bok',
 	'coll-collections' => 'Böcker',
 	'coll-exclusion_category_title' => 'Uteslut vid utskrift',
 	'coll-print_template_prefix' => 'Utskrift',
 	'coll-print_template_pattern' => '$1/Skriv ut',
-	'coll-create_a_book' => 'Skapa en bok',
-	'coll-add_page' => 'Lägg till wikisida',
-	'coll-remove_page' => 'Ta bort wikisida',
-	'coll-add_category' => 'Lägg till kategori',
-	'coll-load_collection' => 'Hämta bok',
-	'coll-show_collection' => 'Visa bok',
-	'coll-help_collections' => 'Hjälp för böcker',
-	'coll-n_pages' => '$1 {{PLURAL:$1|sida|sidor}}',
 	'coll-unknown_subpage_title' => 'Okänd undersida',
 	'coll-unknown_subpage_text' => 'Denna undersida till [[Special:Book|Bok]] existerar inte',
-	'coll-printable_version_pdf' => 'PDF-version',
-	'coll-download_as' => 'Hämta som $1',
+	'coll-couldnotaddarticle_title' => 'Kunde inte lägga till wikisida',
+	'coll-couldnotaddarticle_msg' => 'Wikisidan kunde inte läggas till.',
+	'coll-couldnotremovearticle_title' => 'Kunde inte ta bort wikisida',
+	'coll-couldnotremovearticle_msg' => 'Wikisidan kunde inte tas bort.',
 	'coll-noscript_text' => '<h1>JavaScript är nödvändigt!</h1>
 <strong>Din webbläsare stödjer inte JavaScript eller så har JavaScript stängts av.
 Denna sida kommer inte att fungera korrekt innan JavaScript finns tillgängligt.</strong>',
-	'coll-intro_text' => 'Skapa och hantera din egna samling av wikisidor.<br />Se [[{{MediaWiki:Coll-helppage}}]] för mer information.',
-	'coll-helppage' => 'Help:Böcker',
-	'coll-bookscategory' => 'Böcker',
 	'coll-savedbook_template' => 'sparad_bok',
 	'coll-your_book' => 'Din bok',
 	'coll-download_title' => 'Hämta',
-	'coll-download_text' => 'För att hämta en offline-version välj ett format och klicka på knappen.',
-	'coll-download_as_text' => 'För att ladda ner en version i formatet $1, klicka på knappen.',
+	'coll-download_text' => 'För att ladda ner din bok, välj ett format och klicka på knappen.',
+	'coll-download_as_text' => 'Klicka på knappen för att ladda ner din bok i formatet $1.',
 	'coll-download' => 'Hämta',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Ta bort',
@@ -6417,9 +11646,7 @@
 	'coll-drag_and_drop' => 'Använd dra & släpp för att ändra ordning på wikisidor och kapitel',
 	'coll-create_chapter' => 'Skapa kapitel',
 	'coll-sort_alphabetically' => 'Sortera alfabetiskt',
-	'coll-clear_collection' => 'Töm bok',
-	'coll-clear_collection_confirm' => 'Vill du verkligen helt tömma din bok?',
-	'coll-rename' => 'Byt name',
+	'coll-rename' => 'Byt namn',
 	'coll-new_chapter' => 'Välj ett namn för det nya kapitlet',
 	'coll-rename_chapter' => 'Välj ett nytt namn för kapitlet',
 	'coll-no_such_category' => 'Ingen sådan kategori',
@@ -6437,7 +11664,7 @@
 	'coll-personal_collection_label' => 'Personlig bok:',
 	'coll-community_collection_label' => 'Gemensam bok:',
 	'coll-save_collection' => 'Spara bok',
-	'coll-save_category' => 'Böcker sparas i kategorin [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Alla sparade böcker läggs till i kategorin [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Sidan existerar. 
 Vill du skriva över den?',
 	'coll-overwrite_text' => 'En sida med namnet [[:$1]] finns redan.
@@ -6463,103 +11690,343 @@
 	'coll-rendering_status' => '<strong>Status:</strong> $1',
 	'coll-rendering_article' => '(wikisida: $1)',
 	'coll-rendering_page' => '(sida: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informationstext om sidrendering',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informationstext om samlingsrendering',
 	'coll-rendering_finished_title' => 'Rendering avslutad',
 	'coll-rendering_finished_text' => '<strong>Dokumentfilen har skapats.</strong>
 <strong>[$1 Hämta filen]</strong> till din dator.
 
 Noter:
 * Inte nöjd med resultatet? Se [[{{MediaWiki:Coll-helppage}}|hjälpsidan om samlingar]] för möjligheter att förbättra det.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Informationstext om sidrendering',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Återger informationstext om samlingar',
 	'coll-notfound_title' => 'Bok inte funnen',
 	'coll-notfound_text' => 'Kunde inte hitta boksida.',
+	'coll-download_notfound_title' => 'Hittade inte filen',
+	'coll-download_notfound_text' => 'Filen du försöker ladda ner finns inte: den kan ha raderats och behöver återskapas.',
+	'coll-download_failed_title' => 'Fel under nedladdning',
+	'coll-download_failed_text' => 'Det blev ett fel vid nedladdning av filen: $1',
 	'coll-is_cached' => '<ul><li>En cachad version av dokumentet har hittats, så ingen rendering behövdes. <a href="$1">Framtvinga omrendering.</a></li></ul>',
 	'coll-excluded-templates' => '* Mallar i kategorin [[:Category:$1|$1]] har uteslutits.',
 	'coll-blacklisted-templates' => '* Mallar på svartalistan [[:$1]] har uteslutits.',
 	'coll-return_to_collection' => '<p>Tillbaka till <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Beställ som en utskriven bok',
-	'coll-book_text' => 'Få en tryckt bok från vår print-on-demand partner:',
-	'coll-order_from_pp' => 'Beställ bok från $1',
+	'coll-book_text' => 'Få en tryckt bok från vår print-on-demand-partner:',
+	'coll-order_from_pp' => 'Förhandsgranska med $1',
 	'coll-about_pp' => 'Om $1',
 	'coll-invalid_podpartner_title' => 'Ogiltig POD-partner',
 	'coll-invalid_podpartner_msg' => 'Den erbjudna POD-partnern är ogiltig.
 Var god kontakta din MediaWiki-administratör.',
 	'coll-license' => 'Licens',
 	'coll-return_to' => 'Tillbaka till [[:$1]]',
+	'coll-more_info' => 'Visa mer information',
+	'coll-hide_info' => 'Göm information',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Beställningsinformation PediaPress',
+	'coll-suggest_title' => 'Föreslagna sidor för din bok',
+	'coll-suggest_intro_text' => 'Förslag baseras på nuvarande wikisidor i din bok.
+Listan uppdateras när du klickar på lägg till- eller ta bort-knappar.',
+	'coll-suggested_articles' => 'Förslag',
+	'coll-suggest_reset_bans' => 'återställ',
+	'coll-suggest_reset_bans_tooltip' => 'Visa tidigare borttagna förslag',
+	'coll-suggest_add_selected' => 'Lägg till valda sidor',
+	'coll-suggest_ban_selected' => 'Ta bort valda sidor',
+	'coll-suggest_your_book' => 'Din bok',
+	'coll-suggest_show' => 'visa',
+	'coll-suggest_ban_tooltip' => 'Ta bort denna sida från förslagslistan',
+	'coll-suggest_article_ban' => 'Sidan <strong>$1</strong> har tagits bort från förslagen ($2).',
+	'coll-suggest_article_add' => 'Sidan <strong>$1</strong> har blivit tillagt till din bok ($2).',
+	'coll-suggest_article_remove' => 'Sidan <strong>$1</strong> har blivit borttagen från din bok ($2).',
+	'coll-suggest_undo_tooltip' => 'Gör denna handling ogjord',
+	'coll-suggest_undo' => 'gör ogjord',
+	'coll-load_local_book' => 'Klicka på OK för att fortsätta med din bok %TITLE% som innehåller %NUMPAGES% wiki sidor. Klicka på Avbryt för att ta bort den och börja med en tom bok.',
+	'right-collectionsaveasuserpage' => 'Spara böcker som användarsidor',
+	'right-collectionsaveascommunitypage' => 'Spara böcker som gemenskapssida',
 );
 
+/** Swahili (Kiswahili)
+ * @author Ikiwaner
+ * @author Lloffiwr
+ */
+$messages['sw'] = array(
+	'coll-collection' => 'Kitabu',
+	'coll-collections' => 'Vitabu',
+	'coll-print_template_prefix' => 'Chapisha',
+	'coll-your_book' => 'Kitabu chako',
+	'coll-download' => 'Pakua',
+	'coll-remove' => 'Ondoa',
+	'coll-show' => 'Onyesha',
+	'coll-title' => 'Cheo:',
+	'coll-contents' => 'Yaliyomo',
+	'coll-empty_collection' => 'Kitabu kitupu',
+	'coll-revision' => 'Pitio la $1',
+	'coll-save_collection' => 'Hifadhi kitabu',
+	'coll-yes' => 'Ndiyo',
+	'coll-no' => 'Siyo',
+	'coll-cancel' => 'Batilisha',
+	'coll-update' => 'Sasisha',
+	'coll-limit_exceeded_title' => 'Kitabu ni kubwa mno',
+	'coll-rendering_page' => '(ukurasa: $1)',
+	'coll-download_notfound_title' => 'Faili halikupatikana',
+	'coll-about_pp' => 'Kuhusu $1',
+	'coll-more_info' => 'Onyesha taarifa zaidi',
+	'coll-hide_info' => 'Ficha taarifa',
+	'coll-suggested_articles' => 'Mapendekezo',
+	'coll-suggest_your_book' => 'Kitabu chako',
+	'coll-suggest_show' => 'fichua',
+	'coll-suggest_undo' => 'tengua',
+);
+
+/** Tamil (தமிழ்)
+ * @author Shanmugamp7
+ * @author TRYPPN
+ * @author செல்வா
+ */
+$messages['ta'] = array(
+	'coll-desc' => '[[Special:Book|புத்தகங்களை உருவாக்கு]]',
+	'coll-manage_your_book' => 'உங்கள் புத்தகத்தை நிர்வகி',
+	'coll-book_creator_help' => 'மேலும் தகவலுக்கு பார்க்கவும் [[{{MediaWiki:Coll-helppage}}  | புத்தகங்களை பற்றிய உதவி பக்கம்]] .',
+	'coll-start_book_creator' => 'புத்தக உருவாக்குநரை தொடங்கு',
+	'coll-book_creator_continue' => 'புத்தக உருவாக்குநர் பயன்படுத்துவதை தொடர்',
+	'coll-book_creator_disable_text' => "''புத்தக உருவாக்குநர்'' செயலிழக்க செய்யப்படும்  மற்றும் நீங்கள் உருவாக்கிக் கொண்டிருக்கும் புத்தகம் நீக்கப்படும்.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}} / புத்தக உருவாக்குநர் உரை',
+	'coll-collection' => 'புத்தகம்',
+	'coll-collections' => 'நூல்கள்',
+	'coll-exclusion_category_title' => 'அச்சிடுதலில்  இருந்து விலக்கு',
+	'coll-print_template_prefix' => 'அச்சிடு',
+	'coll-print_template_pattern' => '$1/ அச்சிடு',
+	'coll-unknown_subpage_title' => 'அறியப்படாத துணைபக்கம்',
+	'coll-unknown_subpage_text' => ' [[Special:புத்தகம்|புத்தகத்தின்]]  துணைப்பக்கம் எதுவும் இல்லை.',
+	'coll-couldnotaddarticle_title' => 'விக்கி பக்கத்தை சேர்க்க இயலாது',
+	'coll-couldnotaddarticle_msg' => 'விக்கி பக்கம் சேர்க்க இயலாது.',
+	'coll-couldnotremovearticle_title' => 'விக்கி பக்கத்தை நீக்க இயலாது.',
+	'coll-couldnotremovearticle_msg' => 'இந்த விக்கி பக்கத்தை நீக்க இயலாது.',
+	'coll-noscript_text' => '<h1>JavaScript தேவைப்படுகிறது!</h1>
+<strong>உங்கள் மேய்வான் JavaScript ஆதரிக்கவில்லை அல்லது JavaScript அணைக்கப்பட்டுள்ளது.
+JavaScript இயக்கப்பட்டால் ஒழிய இப்பக்கம் சரியாக வேலை செய்யாது.</strong>',
+	'coll-savedbook_template' => 'சேமிக்கப்பட்ட _புத்தகம்',
+	'coll-your_book' => 'உங்கள் புத்தகம்',
+	'coll-download_title' => 'இறக்கு (பதிவிறக்கம் செய்)',
+	'coll-download_text' => 'உங்கள் புத்தகத்தை தகவலிறக்கம் செய்ய வடிவமைப்பை தேர்ந்தெடுத்து, பொத்தானை கிளிக் செய்க.',
+	'coll-download_as_text' => 'உங்கள் புத்தகத்தை $1 வடிவமைப்பில் தகவலிறக்கம் செய்ய பொத்தானை கிளிக் செய்க.',
+	'coll-download' => 'பதிவிறக்கம் செய்',
+	'coll-format_label' => 'வடிவமைப்பு:',
+	'coll-remove' => 'நீக்குக',
+	'coll-show' => 'காட்டு',
+	'coll-move_to_top' => 'மேல்பகுதிக்கு நகர்த்து',
+	'coll-move_up' => 'மேல்நோக்கி நகர்த்து',
+	'coll-move_down' => 'கீழ்நோக்கி நகர்த்து',
+	'coll-move_to_bottom' => 'கீழ்பகுதிக்கு நகர்த்து',
+	'coll-title' => 'தலைப்பு:',
+	'coll-subtitle' => 'துணைத்தலைப்பு:',
+	'coll-contents' => 'பொருளடக்கம்',
+	'coll-drag_and_drop' => 'விக்கி பக்கங்கள் மற்றும் அத்தியாயங்களை மறுவரிசையாக்க இழுத்து விடுதலை (drag & drop) பயன்படுத்தவும்.',
+	'coll-create_chapter' => 'அத்தியாயத்தை உருவாக்கு',
+	'coll-sort_alphabetically' => 'அகரவரிசைப்படி ஒழுங்குப் படுத்துக',
+	'coll-rename' => 'பெயர் மாற்றம் செய்',
+	'coll-new_chapter' => 'புதிய அத்தியாயத்திற்கான பெயரை உள்ளிடவும்',
+	'coll-rename_chapter' => 'அத்தியாயத்திற்கான புதிய பெயரை உள்ளிடு',
+	'coll-no_such_category' => 'அப்படிப்பட்ட வகை எதுவும் இல்லை',
+	'coll-notitle_title' => 'பக்கத்தின் தலைப்பை வரையறுக்க இயலவில்லை.',
+	'coll-post_failed_title' => 'POST கோரிக்கை தோல்வியடைந்தது',
+	'coll-post_failed_msg' => ' POST கோரிக்கை  $1க்கு தோல்வியடைந்தது ($2).',
+	'coll-mwserve_failed_title' => 'வழங்கல் சேவகனில் பிழை',
+	'coll-mwserve_failed_msg' => 'வழங்கல் சேவகனில் ஒரு பிழை ஏற்பட்டுள்ளது:<nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'சேவகனிலிருந்து பிழை என பதில்',
+	'coll-empty_collection' => 'காலி புத்தகம்',
+	'coll-revision' => 'பரிசீலனை:$1',
+	'coll-save_collection_title' => 'சேமித்து மற்றும் உங்கள் புத்தகத்தை பகிரவும்',
+	'coll-save_collection_text' => 'உங்கள் புத்தகத்தை சேமிக்க  ஒரு பகுதியை தேர்ந்தெடுக்கவும்:',
+	'coll-personal_collection_label' => 'சுய புத்தகம்:',
+	'coll-community_collection_label' => 'சமுதாய புத்தகம்:',
+	'coll-save_collection' => 'புத்தகத்தை சேமி',
+	'coll-save_category' => 'எல்லா சேமிக்கப்பட்ட புத்தகங்களும் இந்த பிரிவில் சேர்க்கப்பட்டது [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'பக்கம் இருக்கிறது.
+மேல் எழுதவா ?',
+	'coll-overwrite_text' => 'ஒரு பக்கம்  [[: $1 ]]என்ற பெயரில் ஏற்கனவே உள்ளது.
+இதை உங்கள் புத்தகம் கொண்டு மாற்றப்பட விரும்புகிறீர்களா?',
+	'coll-yes' => 'ஆம்',
+	'coll-no' => 'இல்லை',
+	'coll-load_overwrite_text' => 'உங்கள் புத்தகத்தில் சில பக்கங்களை ஏற்கனவே கொண்டுள்ளீர்கள்.
+உங்கள் நடப்பு புத்தகம் மீது எழுத, புதிய உரையை இணைக்க அல்லது இந்த புத்தகம் ஏற்றுவதை ரத்து செய்ய வேண்டுமா?',
+	'coll-overwrite' => 'மேலெழுதுதல்',
+	'coll-append' => 'கடையிணைப்பு',
+	'coll-cancel' => 'விட்டுவிடு',
+	'coll-update' => 'புதுப்பி',
+	'coll-limit_exceeded_title' => 'புத்தகம் மிக பெரிதாக உள்ளது',
+	'coll-limit_exceeded_text' => 'உங்கள் புத்தகம் மிக பெரிதாக உள்ளது.
+மேலும் பக்கங்கள் எதுவும் சேர்க்க இயலாது.',
+	'coll-rendering_status' => '<strong>நிலைமை:</strong> $1',
+	'coll-rendering_article' => '(விக்கி பக்கம்:  $1 )',
+	'coll-rendering_page' => '(பக்கம்: $1)',
+	'coll-notfound_title' => 'புத்தகம் காணப்படவில்லை',
+	'coll-notfound_text' => 'புத்தகத்தின் பக்கத்தை கண்டுபிடிக்க இயலவில்லை.',
+	'coll-download_notfound_title' => 'கோப்பு கிடைக்கப்பெறவில்லை',
+	'coll-download_notfound_text' => 'நீங்கள் தகவலிறக்கம் செய்ய விரும்பும் கோப்பு இல்லை:
+மேலும் அது நீக்கப்பட்டிருக்கலாம் மற்றும் அதை  மறு உருவாக்கம் செய்யப்பட  வேண்டும்.',
+	'coll-download_failed_title' => 'தகவலிறக்கம் செய்யும் போது பிழை',
+	'coll-download_failed_text' => 'கோப்பை  தகவலிறக்கம் செய்யும் போது பிழை ஏற்பட்டுள்ளது:$1',
+	'coll-license' => 'அனுமதி',
+	'coll-more_info' => 'மேலும் தகவல்களை காண்பி',
+	'coll-hide_info' => 'தகவலை மறை',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}} / PediaPress உத்தரவு தகவல்',
+	'coll-suggest_title' => 'உங்கள் புத்தகத்திற்காக பரிந்துரைக்கப்பட்ட பக்கங்கள்',
+	'coll-suggested_articles' => 'பரிந்துரைகள்',
+	'coll-suggest_reset_bans' => 'மீட்டமை',
+	'coll-suggest_reset_bans_tooltip' => 'முன்பே நீக்கப்பட்ட பரிந்துரைகளை காண்பிக்கவும்',
+	'coll-suggest_add_selected' => 'தேர்ந்தெடுத்த பக்கங்களை சேர்',
+	'coll-suggest_ban_selected' => 'தேர்ந்தெடுத்த பக்கங்களை நீக்கு',
+	'coll-suggest_your_book' => 'உங்கள் புத்தகம்',
+	'coll-suggest_show' => 'காட்டு',
+	'coll-suggest_ban_tooltip' => 'இப்பக்கத்தை பரிந்துரைகள்  பட்டியலில் இருந்து நீக்கவும்.',
+	'coll-suggest_article_ban' => 'பக்கம் <strong> $1 </strong> பரிந்துரைகளிலிருந்து இருந்து நீக்கப்பட்டது ( $2 ).',
+	'coll-suggest_article_add' => 'பக்கம் <strong> $1 </strong> உங்கள் புத்தகத்துடன் சேர்க்கப்பட்டது ( $2 ).',
+	'coll-suggest_article_remove' => 'பக்கம் <strong> $1 </strong> இருந்து உங்கள் புத்தகத்திலிருந்து நீக்கப்பட்டது ( $2 ).',
+	'coll-suggest_undo_tooltip' => 'இந்த செயலை செயல்தவிர்',
+	'coll-suggest_undo' => 'மீளமை',
+	'right-collectionsaveasuserpage' => 'புத்தகங்களை பயனீட்டாளர் பக்கமாக சேமி',
+	'right-collectionsaveascommunitypage' => 'புத்தகங்களை சமுதாய பக்கமாக சேமி',
+);
+
 /** Telugu (తెలుగు)
+ * @author Chaduvari
+ * @author Kiranmayee
  * @author Veeven
  * @author వైజాసత్య
  */
 $messages['te'] = array(
 	'coll-desc' => '[[Special:Book|పుస్తకాలను తయారుచేసుకోండి]]',
+	'coll-manage_your_book' => 'మీ పుస్తకాన్ని నిర్వహించండి',
+	'coll-book_creator_help' => 'మరింత సమాచారం కొరకు [[{{MediaWiki:Coll-helppage}}|పుస్తకాల గురించిన సహాయపు పేజీ]]ని చూడండి.',
+	'coll-start_book_creator' => 'పుస్తకం సృష్టికర్తను ప్రారంభించు',
+	'coll-book_creator_continue' => 'పుస్తకం సృష్టికర్తను వాడటం కొనసాగించు',
+	'coll-book_creator_disable_text' => "''పుస్తకం సృష్టికర్త'' అచేతనం చెయ్యబడుతుంది, మీరు పనిచేస్తున్న పుస్తకం తీసెయ్యబడుతుంది.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/పుస్తకము సృష్టికర్త  పాఠ్యము',
 	'coll-collection' => 'పుస్తకం',
 	'coll-collections' => 'పుస్తకాలు',
-	'coll-create_a_book' => 'ఓ పుస్తకాన్ని సృష్టించండి',
-	'coll-add_page' => 'వికీ పేజీని చేర్చు',
-	'coll-remove_page' => 'వికీ పేజీని తొలగించు',
-	'coll-add_category' => 'వర్గాన్ని చేర్చు',
-	'coll-show_collection' => 'సేకరణని చూపించు',
-	'coll-help_collections' => 'పుస్తకాల సహాయం',
-	'coll-n_pages' => '$1 {{PLURAL:$1|పేజీ|పేజీలు}}',
-	'coll-printable_version_pdf' => 'PDF కూర్పు',
-	'coll-helppage' => 'Help:పుస్తకాలు',
-	'coll-bookscategory' => 'పుస్తకాలు',
+	'coll-exclusion_category_title' => 'ముద్రణలో చేర్చవద్దు',
+	'coll-print_template_prefix' => 'ముద్రించు',
+	'coll-print_template_pattern' => '$1/ముద్రించు',
+	'coll-unknown_subpage_title' => 'గుర్తుతెలియని ఉపపేజి',
+	'coll-unknown_subpage_text' => '[[Special:Book|పుస్తకం]] యొక్క ఉపపేజీ లేనే లేదు',
+	'coll-couldnotaddarticle_title' => 'వికి పేజిని కలుపలేకపోయాము',
+	'coll-couldnotaddarticle_msg' => 'వికీ పేజీని చేర్చలేకపోయాం.',
+	'coll-couldnotremovearticle_title' => 'వికి పేజిని తొలగించలేకపోయాము',
+	'coll-couldnotremovearticle_msg' => 'వికీ పేజీని తొలగించలేకపోయాం.',
+	'coll-noscript_text' => '<h1>JavaScript ఆవశ్యకం!</h1>
+<strong>మీ బ్రౌజరు JavaScript కు మద్దతివ్వదు. లేదా JavaScript అచేతనం చెయ్యబడి ఉంది.
+JavaScript చేతనం చేస్తే తప్ప, ఈ పేజీ సరిగ్గా పనిచెయ్యదు.</strong>',
+	'coll-savedbook_template' => 'భద్రపరచిన_పుస్తకం',
 	'coll-your_book' => 'మీ పుస్తకం',
-	'coll-download_title' => 'సేకరణని PDFగా దిగుమతి చేసుకోండి',
-	'coll-download_text' => 'మీ పేజీ సేకరణ నుండి ఆటోమెటిగ్గా తయారయిన PDF ఫైలుని దిగుమతిచేసుకోడానికి, ఈ బొత్తాన్ని నొక్కండి.',
+	'coll-download_title' => 'దింపుకోండి',
+	'coll-download_text' => 'మీ పుస్తకాన్ని దిగుమతి చేసుకోడానికి, ఫైలు ఫార్మాటుని ఎంచుకుని, ఈ బొత్తాన్ని నొక్కండి.',
+	'coll-download_as_text' => 'మీ పుస్తకాన్ని $1 ఫార్మాట్లో దించుకోవడానికి ఈ బొత్తాన్ని నొక్కండి.',
 	'coll-download' => 'దిగుమతి',
+	'coll-format_label' => 'ఫార్మాటు:',
 	'coll-remove' => 'తొలగించు',
+	'coll-show' => 'చూపించు',
+	'coll-move_to_top' => 'అన్నిటికన్నా పైన పెట్టు',
 	'coll-move_up' => 'పైకి కదుపు',
 	'coll-move_down' => 'క్రిందికి కదుపు',
 	'coll-move_to_bottom' => 'అడుగునకు కదుపు',
 	'coll-title' => 'శీర్షిక:',
 	'coll-subtitle' => 'ఉపశీర్షిక:',
 	'coll-contents' => 'విషయాలు',
-	'coll-create_chapter' => 'కొత్త అధ్యాయాన్ని ప్రారంభించు',
-	'coll-sort_alphabetically' => 'పేజీలను అక్షరక్రమంలో అమర్చు',
-	'coll-clear_collection' => 'సేకరణని తుడిచివేయి',
+	'coll-drag_and_drop' => 'వికీ పేజీలు, అధ్యాయాలను తిరిగి పేర్చడానికి డ్రాగ్ & డ్రాపును వాడండి',
+	'coll-create_chapter' => 'కొత్త అధ్యాయాన్ని సృష్టించు',
+	'coll-sort_alphabetically' => 'పుస్తకములోని పేజీలను అక్షరక్రమంలో అమర్చు',
 	'coll-rename' => 'పేరుమార్చు',
 	'coll-new_chapter' => 'కొత్త అధ్యాయానికి పేరు సూచించండి',
+	'coll-rename_chapter' => 'పుటకు క్రొత్త పేరు ఇవ్వండి',
 	'coll-no_such_category' => 'అటువంటి వర్గం లేదు',
 	'coll-notitle_title' => 'ఆ పేజీ యొక్క శీర్షికని నిర్ణయించలేకున్నాం.',
 	'coll-post_failed_title' => 'POST అభ్యర్థన విఫలమైంది',
+	'coll-post_failed_msg' => '$1 కు  POST అభ్యర్ధన విఫలమైంది ($2).',
 	'coll-error_reponse' => 'సర్వరునుండి పొరపాటు అని స్పందన వచ్చింది',
 	'coll-empty_collection' => 'ఖాళీ పుస్తకం',
 	'coll-revision' => 'కూర్పు: $1',
-	'coll-save_collection_title' => 'సేకరణని భద్రపరచండి',
-	'coll-save_collection_text' => 'ఈ సేకరణని తర్వాత వాడుకోడానికి భద్రపరచుకోవాలంటే, ఓ సేకరణ రకాన్ని ఎంచుకోండి మరియు పేజీ శీర్షిక ఇవ్వండి:',
-	'coll-login_to_save' => 'సేకరణలని మీరు తర్వాత వాడుకోవడానికి భద్రపరచుకోవాలనుకుంటే, [[Special:UserLogin|లోనికి ప్రవేశించండి లేదా ఖాతా సృష్టించుకోండి]].',
-	'coll-personal_collection_label' => 'వ్యక్తిగత సేరకణ:',
+	'coll-save_collection_title' => 'మీ పుస్తకమును భద్రపరచి పంచుకోండి',
+	'coll-save_collection_text' => 'మీ పుస్తకమును భద్రపరచుకోవడానికి ఒక భద్రపరచు స్థలమును ఎన్నుకోండి:',
+	'coll-login_to_save' => 'మీ పుస్తకములను మీరు తర్వాత వాడుకోవడానికి భద్రపరచుకోవాలనుకుంటే, [[Special:UserLogin|లోనికి ప్రవేశించండి లేదా ఖాతా సృష్టించుకోండి]].',
+	'coll-personal_collection_label' => 'వ్యక్తిగత పుస్తకము:',
 	'coll-community_collection_label' => 'సామూహిక పుస్తకం:',
-	'coll-save_collection' => 'సేకరణని భద్రపరచు',
+	'coll-save_collection' => 'పుస్తకముని భద్రపరచు',
+	'coll-save_category' => 'భద్రపరచిన పుస్తకాలన్నీ [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] వర్గానికి చేర్చబడ్డాయి.',
 	'coll-overwrite_title' => 'పేజీ ఉంది. దానిపైనే రాసేయాలా?',
 	'coll-overwrite_text' => '[[:$1]] అనే పేరుతో ఓ పేజీ ఇప్పటికే ఉంది.
 దాని స్ధానంలో మీ సేకరణని ఉంచాలా?',
 	'coll-yes' => 'అవును',
 	'coll-no' => 'కాదు',
+	'coll-load_overwrite_text' => 'మీ పుస్తకంలో ఈసరికే కొన్ని పేజీలున్నాయి.
+మీ పుస్తకన్ని ఓవరురైటు చేస్తారా? కొత్త కంటెంటును పాతిదాని వెనుక చేరుస్తారా? లేక పుస్తకం లోడు చెయ్యడాన్ని రద్దు చేస్తారా?',
+	'coll-overwrite' => 'ఓవరురైటు చెయ్యి',
 	'coll-append' => 'జతచేయి',
 	'coll-cancel' => 'రద్దు',
+	'coll-update' => 'తాజాకరించు',
 	'coll-limit_exceeded_title' => 'పుస్తకం మరీ పెద్దగా ఉంది',
-	'coll-limit_exceeded_text' => 'మీ పేజీ సేకరణ చాలా పెద్దగా ఉంది.
+	'coll-limit_exceeded_text' => 'మీ పుస్తకము చాలా పెద్దగా ఉంది.
 మరిన్ని పేజీలు చేర్చలేము.',
+	'coll-rendering_text' => '<p><strong>పత్రం జనరేటు చేస్తున్నాం, వేచియుండండి.</strong></p>
+
+<p><strong>ప్రగతి:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>ఈ పేజీ కొన్ని సెకండ్లకోసారి ఆటోమాటిగ్గా రిఫ్రెష్ కావాల్సి ఉంది. 
+అలా కాకపోతే, బ్రౌజరు రిఫ్రెష్ బొత్తాన్ని నొక్కండి.</p>',
 	'coll-rendering_status' => '<strong>స్థితి:</strong> $1',
 	'coll-rendering_article' => '(వికీ పేజీ: $1)',
 	'coll-rendering_page' => '  (పేజీ: $1)',
-	'coll-notfound_title' => 'సేకరణ కనబడలేదు',
-	'coll-notfound_text' => 'సేకరణ పేజీ కనబడలేదు.',
+	'coll-rendering_finished_title' => 'రెండరింగు పూర్తైంది',
+	'coll-rendering_finished_text' => '<strong>పత్రం ఫైలు సృష్టించబడింది.</strong>
+<strong>[$1 ఫైలును మీ కంప్యూటర్లోకి దించుకోండి]</strong>.
+
+గమనికలు:
+* ఔట్ పుట్ సంతృప్తికరంగా లేదా? దాన్ని మెరుగుపరచే సంభావ్యతల కోసం [[{{MediaWiki:Coll-helppage}}|the help page about books]] చూడండి.',
+	'coll-notfound_title' => 'పుస్తకము కనబడలేదు',
+	'coll-notfound_text' => 'పుస్తకము పేజీ కనబడలేదు.',
+	'coll-download_notfound_title' => 'ఫైలు దొరకలేదు',
+	'coll-download_notfound_text' => 'మీరు దింపుకోవాలని ప్రయత్నిస్తున్న ఫైలు ఉనికిలో లేదు:
+బహుశా దాన్ని తొలగించి ఉంటారు మరియు దాన్ని మళ్ళీ తయారుచేయాల్సి ఉంటుంది.',
+	'coll-download_failed_title' => 'దించుకోవడంలో లోపం తలెత్తింది',
+	'coll-download_failed_text' => 'ఈ ఫైలును దించుకునేటపుడు లోపం తలెత్తింది: $1',
+	'coll-is_cached' => '<ul><li>కాషెలో ఈ పత్రపు కూర్పు ఒకటి కనిపించింది. అంచేత రెండరింగు అవసరం లేదు.
+<a href="$1">మళ్ళీ రెండరింగు చెయ్యాలని ఫోర్సు చెయ్యి.</a></li></ul>',
+	'coll-excluded-templates' => '* [[:Category:$1|$1]] వర్గంలోని మూసలను చేర్చలేదు.',
+	'coll-blacklisted-templates' => '* నిరోధ జాబితా [[:$1]] లోని మూసలను చేర్చలేదు.',
 	'coll-return_to_collection' => '<p>తిరిగి <a href="$1">$2</a></p>కి',
-	'coll-order_from_pp' => '$1 నుండి పుస్తకాన్ని ఆర్డర్ చెయ్యండి',
+	'coll-book_title' => 'ముద్రించిన పుస్తకములా తెప్పించుకోండి',
+	'coll-order_from_pp' => '$1 తో మునుజూపు',
 	'coll-about_pp' => '$1 గురించి',
+	'coll-invalid_podpartner_title' => 'సరైన POD భాగస్వామి కాదు',
 	'coll-license' => 'లైసెన్సు',
 	'coll-return_to' => 'తిరిగి [[:$1]]కి',
+	'coll-more_info' => 'మరింత సమాచారాన్ని చూపించు',
+	'coll-hide_info' => 'సమాచారాన్ని దాచు',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/పీడియాప్రెస్ ఆర్డరు సమాచారం',
+	'coll-suggest_title' => 'మీ పుస్తకానికై సూచించబడిన పేజీలు',
+	'coll-suggested_articles' => 'సలహాలు',
+	'coll-suggest_reset_bans' => 'మునుపటివలె',
+	'coll-suggest_reset_bans_tooltip' => 'గతంలో తొలగించిన సూచనలని చూపించు',
+	'coll-suggest_add_selected' => 'ఎంచుకున్న పేజీలను చేర్చు',
+	'coll-suggest_ban_selected' => 'ఎంచుకున్న పేజీలను తీసివేయి',
+	'coll-suggest_your_book' => 'మీ పుస్తకము',
+	'coll-suggest_show' => 'చూపు',
+	'coll-suggest_ban_tooltip' => 'ఈ పేజీని సూచనల జాబితా నుండి తొలగించు',
+	'coll-suggest_article_ban' => '<strong>$1</strong> పేజీని సూచనల్లోని తొలగించాం ($2).',
+	'coll-suggest_article_add' => '<strong>$1</strong> అనే పేజీని మీ పుస్తకంలో చేర్చాం ($2).',
+	'coll-suggest_article_remove' => '<strong>$1</strong> అనే పుటని మీ పుస్తకంలో నుండి తొలగించాం ($2).',
+	'coll-suggest_undo_tooltip' => 'ఈ చర్యను రద్దు చెయ్యి',
+	'coll-suggest_undo' => 'రద్దు చెయ్యి',
+	'right-collectionsaveasuserpage' => 'పుస్తకములను సభ్యుని పేజి లాగ భద్రపరచుము',
+	'right-collectionsaveascommunitypage' => 'పుస్తకములను కమ్యూనిటీ పేజి లాగ భద్రపరచుము',
 );
 
 /** Tetum (Tetun)
  * @author MF-Warburg
  */
 $messages['tet'] = array(
-	'coll-create_a_book' => 'Kria livru ida',
-	'coll-your_book' => 'Ó-nia livru',
+	'coll-collection' => 'Livru',
+	'coll-collections' => 'Livru sira',
+	'coll-your_book' => 'Ita-nia livru',
+	'coll-remove' => 'Hasai',
 	'coll-title' => 'Títulu:',
 	'coll-contents' => 'Konteúdu',
 	'coll-yes' => 'Sin',
@@ -6567,9 +12034,10 @@
 	'coll-cancel' => 'Para',
 	'coll-about_pp' => 'Kona-ba $1',
 	'coll-return_to' => 'Fali ba [[:$1]]',
+	'coll-suggest_your_book' => 'Ita-nia livru',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -6577,24 +12045,10 @@
 	'coll-collection' => 'Гирдоварӣ',
 	'coll-collections' => 'Гирдовариҳо',
 	'coll-print_template_prefix' => 'Чоп',
-	'coll-create_a_book' => 'Эҷоди як китоб',
-	'coll-add_page' => 'Илова кардани вики саҳифа',
-	'coll-remove_page' => 'Пок кардани вики саҳифа',
-	'coll-add_category' => 'Илова кардани гурӯҳ',
-	'coll-load_collection' => 'Бор кардани гирдоварӣ',
-	'coll-show_collection' => 'Намоиши гирдоварӣ',
-	'coll-help_collections' => 'Роҳнамои гирдовариҳо',
-	'coll-n_pages' => '$1 {{PLURAL:$1|саҳифа|саҳифаҳо}}',
 	'coll-unknown_subpage_title' => 'Зерсаҳифаи ношинос',
-	'coll-printable_version_pdf' => 'Нусхаи PDF',
-	'coll-download_as' => 'Дарёфтан чун $1',
 	'coll-noscript_text' => '<h1>ҶаваСкрипт Лозим аст!</h1>
 <strong>Мурургари шумо ҶаваСкриптро дастгирӣ намекунад ё ҶаваСкрипт хомӯш карда шудааст.
 Ин саҳифа дуруст кор хоҳад карда, дар ҳолате, ки ҶаваСкрипт фаъол карда шуда бошад.</strong>',
-	'coll-intro_text' => 'Шумо метавонед саҳифаҳоро гирдовари кунед, тавлид ва бор кардани парвандаҳои PDF аз саҳифаҳои гирдовариҳо ва захир кардани гирдовариҳо барои истифодаи баъдӣ ё бо ҳам дидани онҳо бо дигарон.
-
-Барои иттилооти бештар нигаред ба [[{{MediaWiki:Coll-helppage}}|саҳифаи роҳнамо оиди гирдовариҳо]].',
-	'coll-helppage' => 'Help:Гирдовариҳо',
 	'coll-your_book' => 'Китоби шумо',
 	'coll-download_title' => 'Дарёфт',
 	'coll-download_text' => 'Барои бор кардани нусхаи бурунхатии як қолаберо интихоб карда тугмаро пахш кунед.',
@@ -6611,7 +12065,6 @@
 	'coll-contents' => 'Мундариҷа',
 	'coll-create_chapter' => 'Эҷоди фасл',
 	'coll-sort_alphabetically' => 'Ба тартиб даровардан аз рӯи алифбо',
-	'coll-clear_collection' => 'Тоза кардани гирдовари',
 	'coll-rename' => 'Тағйири ном',
 	'coll-new_chapter' => 'Барои фасли ҷадид номеро ворид кунед',
 	'coll-rename_chapter' => 'Барои фасл номи ҷадидеро ворид кунед',
@@ -6645,7 +12098,7 @@
 	'coll-rendering_status' => '<strong>Вазъият:</strong> $1',
 	'coll-rendering_article' => '(саҳифаи вики: $1)',
 	'coll-rendering_page' => '(саҳифа: $1)',
-	'coll-notfound_title' => 'Гирдовари Ёфт Нашуд',
+	'coll-notfound_title' => 'Китоб ёфт нашуд',
 	'coll-notfound_text' => 'Саҳифаи гирдоварӣ ёфт нашуд.',
 	'coll-return_to_collection' => '<p>Бозгашт ба <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Фармудани Китоби Чопӣ',
@@ -6657,39 +12110,96 @@
 	'coll-return_to' => 'Бозгашт ба [[:$1]]',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'coll-print_template_prefix' => 'Cop',
+	'coll-unknown_subpage_title' => 'Zersahifai noşinos',
+	'coll-noscript_text' => "<h1>ÇavaSkript Lozim ast!</h1>
+<strong>Mururgari şumo ÇavaSkriptro dastgirī namekunad jo ÇavaSkript xomūş karda şudaast.
+In sahifa durust kor xohad karda, dar holate, ki ÇavaSkript fa'ol karda şuda boşad.</strong>",
+	'coll-your_book' => 'Kitobi şumo',
+	'coll-download_title' => 'Darjoft',
+	'coll-download' => 'Darjoft',
+	'coll-format_label' => 'Qolab:',
+	'coll-remove' => 'Hazf',
+	'coll-show' => 'Namoiş',
+	'coll-move_to_top' => 'Harakat bo bolo',
+	'coll-move_up' => 'Ba bolo',
+	'coll-move_down' => 'Ba pojon',
+	'coll-move_to_bottom' => 'Harakat ba pojon',
+	'coll-title' => 'Unvon:',
+	'coll-subtitle' => 'Zerunvon:',
+	'coll-contents' => 'Mundariça',
+	'coll-create_chapter' => 'Eçodi fasl',
+	'coll-sort_alphabetically' => 'Ba tartib darovardan az rūi alifbo',
+	'coll-rename' => 'Taƣjiri nom',
+	'coll-new_chapter' => 'Baroi fasli çadid nomero vorid kuned',
+	'coll-rename_chapter' => 'Baroi fasl nomi çadidero vorid kuned',
+	'coll-no_such_category' => 'Cunin gurūh vuçud nadorad',
+	'coll-notitle_title' => 'Unvoni sahifa muşaxxas şuda nametavonad.',
+	'coll-mwserve_failed_title' => 'Xato dar korguzori tarçumakunanda',
+	'coll-error_reponse' => 'Posuxi xatoe az xidmatguzor',
+	'coll-revision' => 'Nusxa: $1',
+	'coll-save_collection_text' => 'Intixobi jak makon:',
+	'coll-overwrite_title' => 'Sahifa vuçud dorad. Ba rūi on az navişta şavad?',
+	'coll-overwrite_text' => 'Sahifae bo nomi [[:$1]] allakaj vuçud dorad.
+Ojo şumo mexohed onro bo girdovariji xud ivaz kuned?',
+	'coll-yes' => 'Bale',
+	'coll-no' => 'Ne',
+	'coll-overwrite' => 'Ba rūj naviştan',
+	'coll-append' => 'Afzudan',
+	'coll-cancel' => 'Laƣv',
+	'coll-update' => 'Barūz kardan',
+	'coll-rendering_title' => 'Dar holi tarçuma dodan',
+	'coll-rendering_status' => "<strong>Vaz'ijat:</strong> $1",
+	'coll-rendering_article' => '(sahifai viki: $1)',
+	'coll-rendering_page' => '(sahifa: $1)',
+	'coll-notfound_title' => 'Kitob joft naşud',
+	'coll-return_to_collection' => '<p>Bozgaşt ba <a href="$1">$2</a></p>',
+	'coll-about_pp' => 'Dar borai $1',
+	'coll-invalid_podpartner_title' => "Şariki Cop-bo-darxosti nomū'tabar",
+	'coll-license' => 'Içozatnoma',
+	'coll-return_to' => 'Bozgaşt ba [[:$1]]',
+);
+
 /** Thai (ไทย)
  * @author Ans
+ * @author Harley Hartwell
+ * @author Korrawit
  * @author Manop
+ * @author Octahedron80
+ * @author Woraponboonkerd
  */
 $messages['th'] = array(
 	'coll-desc' => '[[Special:Book|สร้างหนังสือ]]',
+	'coll-book_creator_intro' => "<big>ด้วย ''ตัวสร้างหนังสือ'' คุณสามารถสร้างหนังสือจากหน้าวิกิที่คุณเลือกได้ คุณสามารถดาวน์โหลดหนังสือในรูปแบบไฟล์ต่าง ๆ เช่น PDF หรือ ODF หรือสั่งพิมพ์หนังสือออกมาเป็นเล่มได้</big>",
+	'coll-manage_your_book' => 'จัดการหนังสือของคุณ',
+	'coll-book_creator_help' => 'ดู [[{{MediaWiki:Coll-helppage}}|หน้าความช่วยเหลือเกี่ยวกับหนังสือ]] สำหรับข้อมูลเพิ่มเติม',
+	'coll-start_book_creator' => 'เริ่มใช้ตัวสร้างหนังสือ',
+	'coll-book_creator_continue' => 'ใช้ตัวสร้างหนังสือต่อไป',
+	'coll-book_creator_disable_text' => "''ตัวสร้างหนังสือ'' จะถูกยกเลิก และหนังสือที่คุณกำลังสร้างอยู่จะถูกลบออก",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/ข้อความตัวสร้างหนังสือ',
 	'coll-collection' => 'หนังสือ',
 	'coll-collections' => 'หนังสือ',
 	'coll-exclusion_category_title' => 'ไม่รวมในส่วนพิมพ์',
 	'coll-print_template_prefix' => 'พิมพ์',
 	'coll-print_template_pattern' => '$1/พิมพ์',
-	'coll-create_a_book' => 'สร้างหนังสือ',
-	'coll-add_page' => 'เพิ่มหน้าวิกิ',
-	'coll-remove_page' => 'ลบหน้าวิกิ',
-	'coll-add_category' => 'เพิ่มหมวดหมู่',
-	'coll-load_collection' => 'โหลดหนังสือ',
-	'coll-show_collection' => 'แสดงหนังสือ',
-	'coll-help_collections' => 'ความช่วยเหลือในส่วนหนังสือ',
-	'coll-n_pages' => '$1 หน้า',
 	'coll-unknown_subpage_title' => 'หน้าย่อยที่ไม่รู้จัก',
 	'coll-unknown_subpage_text' => '[[Special:Book|หนังสือ]] ไม่มีหน้าย่อยนี้',
-	'coll-printable_version_pdf' => 'รุ่น PDF',
-	'coll-download_as' => 'ดาวน์โหลดในชื่อ $1',
+	'coll-couldnotaddarticle_title' => 'ไม่สามารถเพิ่มหน้าวิกิได้',
+	'coll-couldnotaddarticle_msg' => 'หน้าวิกิไม่สามารถเพิ่มลงไปได้',
+	'coll-couldnotremovearticle_title' => 'ไม่สามารถลบหน้าวิกิได้',
+	'coll-couldnotremovearticle_msg' => 'หน้าวิกิไม่สามารถถูกลบออกได้',
 	'coll-noscript_text' => '<h1>จำเป็นต้องใช้จาวาสคริปต์!</h1>
 <strong>เบราว์เซอร์ของคุณไม่รองรับจาวาสคริปต์หรือจาวาสคริปต์ถูกปิดการใช้งาน
 หน้านี้จะไม่สามารถทำงานได้อย่างถูกต้อง ถ้าไม่มีการเปิดใช้จาวาสคริปต์</strong>',
-	'coll-helppage' => 'Help:หนังสือ',
-	'coll-bookscategory' => 'หนังสือ',
-	'coll-savedbook_template' => 'หนังสือที่ถูกบันทึกไว้ก่อนหน้า',
+	'coll-savedbook_template' => 'หนังสือที่บันทึก',
 	'coll-your_book' => 'หนังสือของคุณ',
 	'coll-download_title' => 'ดาวน์โหลด',
-	'coll-download_text' => 'เลือกรูปแบบและกดที่ปุ่มเพื่อดาวน์โหลด',
-	'coll-download_as_text' => 'กดที่ปุ่มเพื่อดาวน์โหลดในรูปแบบ $1',
+	'coll-download_text' => 'เพื่อดาวน์โหลดหนังสือของคุณ เลือกรูปแบบและคลิกปุ่ม',
+	'coll-download_as_text' => 'เพื่อดาวน์โหลดหนังสือของคุณในรูปแบบ $1 คลิกปุ่ม',
 	'coll-download' => 'ดาวน์โหลด',
 	'coll-format_label' => 'รูปแบบ:',
 	'coll-remove' => 'ลบออก',
@@ -6698,6 +12208,8 @@
 	'coll-move_up' => 'ย้ายขึ้น',
 	'coll-move_down' => 'ย้ายลง',
 	'coll-move_to_bottom' => 'ย้ายไปล่างสุด',
+	'coll-title' => 'ชื่อเรื่อง:',
+	'coll-subtitle' => 'ชื่อเรื่องย่อย:',
 	'coll-contents' => 'เนื้อหา',
 	'coll-drag_and_drop' => 'ใช้การลากและปล่อย เพื่อจัดลำดับบทและหน้าวิกิ',
 	'coll-create_chapter' => 'สร้างบท',
@@ -6706,16 +12218,21 @@
 	'coll-new_chapter' => 'ใส่ชื่อสำหรับบทใหม่',
 	'coll-rename_chapter' => 'ใส่ชื่อใหม่สำหรับบทนี้',
 	'coll-no_such_category' => 'ไม่มีหมวดหมู่ดังกล่าว',
+	'coll-notitle_title' => 'หัวเรื่องของหน้าไม่สามารถกำหนดได้',
 	'coll-post_failed_title' => 'คำสั่ง POST ผิดพลาด',
 	'coll-post_failed_msg' => 'คำสั่ง POST ไปที่ $1 ผิดพลาด ($2)',
 	'coll-mwserve_failed_title' => 'ความผิดพลาดของเซิร์ฟเวอร์เรนเดอร์',
+	'coll-mwserve_failed_msg' => 'เกิดข้อผิดพลาดในเซิร์ฟเวอร์แปลงข้อมูล: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'มีความผิดพลาดตอบกลับมาจากเซิร์ฟเวอร์',
+	'coll-empty_collection' => 'หนังสือว่าง',
 	'coll-revision' => 'รุ่น: $1',
 	'coll-save_collection_title' => 'บันทึกและแบ่งปันหนังสือของคุณ',
 	'coll-save_collection_text' => 'เลือกตำแหน่งที่จะเก็บสำหรับหนังสือของคุณ:',
+	'coll-login_to_save' => 'หากคุณต้องการบันทึกหนังสือเพื่อใช้ในภายหลัง กรุณา[[Special:UserLogin|ล็อกอินหรือสร้างบัญชีผู้ใช้]]',
 	'coll-personal_collection_label' => 'หนังสือส่วนตัว:',
 	'coll-community_collection_label' => 'หนังสือชุมชน:',
 	'coll-save_collection' => 'บันทึกหนังสือ',
+	'coll-save_category' => 'หนังสือที่บันทึกทั้งหมดถูกเพิ่มในหมวดหมู่ [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]',
 	'coll-overwrite_title' => 'มีหน้านี้แล้ว
 เขียนทับ?',
 	'coll-overwrite_text' => 'หน้าที่อยู่ภายใต้ชื่อ [[:$1]] มีอยู่แล้ว
@@ -6732,54 +12249,238 @@
 	'coll-limit_exceeded_text' => 'หนังสือของคุณใหญ่เกินไป
 ไม่สามารถเพิ่มหน้าใดเข้าไปได้อีก',
 	'coll-rendering_title' => 'กำลังเรนเดอร์',
+	'coll-rendering_text' => '<p><strong>โปรดรอในระหว่างที่หนังสือถูกสร้าง</strong></p>
+
+<p><strong>ความคืบหน้า:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>หน้านี้ควรรีเฟรชตัวเองทุก ๆ สองถึงสามวินาที
+หากหน้านี้ไม่รีเฟรชตัวเอง กรุณากดปุ่มรีเฟรชบนเบราว์เซอร์ของคุณ</p>',
 	'coll-rendering_status' => '<strong>สถานะ:</strong> $1',
 	'coll-rendering_article' => '(หน้าวิกิ: $1)',
 	'coll-rendering_page' => '(หน้า: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/กำลังแปลงหน้าเป็นข้อความ',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ข้อความกำลังแปลงข้อมูลหน้า',
 	'coll-rendering_finished_title' => 'การเรนเดอร์เสร็จสิ้น',
+	'coll-rendering_finished_text' => '<strong>สร้างหนังสือเสร็จเรียบร้อยแล้ว</strong>
+<strong>[$1 ดาวน์โหลดหนังสือ]</strong> ลงเครื่องคอมพิวเตอร์ของคุณ
+
+หมายเหตุ:
+* หากคุณไม่พอใจกับการแสดงผลหนังสือที่ออกมา ให้ดูที่ [[{{MediaWiki:Coll-helppage}}|หน้าความช่วยเหลือเกี่ยวกับหนังสือ]] สำหรับความเป็นไปได้ที่จะปรับปรุงการแสดงผล',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/ข้อความกำลังแปลงข้อมูลหน้า',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/ข้อความกำลังแปลงข้อมูลที่รวบรวม',
 	'coll-notfound_title' => 'ไม่พบหนังสือที่ต้องการ',
 	'coll-notfound_text' => 'ไม่สามารถค้นหาหน้าหนังสือ',
+	'coll-download_notfound_title' => 'ไม่พบไฟล์',
+	'coll-download_notfound_text' => 'ไฟล์ที่คุณกำลังพยายามดาวน์โหลดนั้นไม่ปรากฏ:
+ไฟล์อาจจะถูกลบหรือต้องการการสร้างใหม่อีกครั้งหนึ่ง',
+	'coll-download_failed_title' => 'เกิดความผิดพลาดระหว่างการดาวน์โหลด',
+	'coll-download_failed_text' => 'มีความผิดพลาดเกิดขึ้นเมื่อดาวน์โหลดไฟล์: $1',
+	'coll-is_cached' => '<ul><li>พบรุ่นที่เก็บไว้ของหนังสือนี้ จึงไม่จำเป็นต้องสร้างหนังสือนี้ใหม่
+<a href="$1">บังคับสร้างหนังสือนี้ใหม่</a></li></ul>',
+	'coll-excluded-templates' => '* แม่แบบในหมวดหมู่ [[:Category:$1|$1]] ไม่ถูกนำเข้ามารวม',
 	'coll-blacklisted-templates' => '* แม่แบบในบัญชีดำ [[:$1]] ไม่ได้ถูกรวมไว้',
 	'coll-return_to_collection' => '<p>กลับไปที่ <a href="$1">$2</a></p>',
 	'coll-book_title' => 'สั่งหนังสือเป็นรูปเล่ม',
-	'coll-order_from_pp' => 'สั่งหนังสือจาก $1',
+	'coll-book_text' => 'รับหนังสือที่พิมพ์แล้วจากบริษัทรับพิมพ์หนังสือ',
+	'coll-order_from_pp' => 'แสดงตัวอย่างหนังสือ และสั่งหนังสือจาก $1',
 	'coll-about_pp' => 'เกี่ยวกับ $1',
+	'coll-invalid_podpartner_title' => 'ส่วนร่วม POD ไม่ถูกต้อง',
+	'coll-invalid_podpartner_msg' => 'ส่วนร่วม POD ที่จัดหาไม่ถูกต้อง
+กรุณาติดต่อผู้ดูแลมีเดียวิกิของคุณ',
 	'coll-license' => 'สัญญาอนุญาต (license)',
 	'coll-return_to' => 'กลับไปที่ [[:$1]]',
+	'coll-more_info' => 'แสดงข้อมูลเพิ่มเติม',
+	'coll-hide_info' => 'ซ่อนข้อมูลเพิ่มเติม',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/ข้อมูลการสั่งซื้อ PediaPress',
+	'coll-suggest_title' => 'หน้าแนะนำสำหรับหนังสือของคุณ',
+	'coll-suggest_intro_text' => 'คำแนะนำทั้งหมดนั้นอ้างอิงจากชุดของหน้าวิกิในหนังสือของคุณ
+รายการนี้จะถูกปรับปรุงเมื่อคุณคลิกเพิ่มหรือลบ',
+	'coll-suggested_articles' => 'คำแนะนำ',
+	'coll-suggest_reset_bans' => 'ล้าง',
+	'coll-suggest_reset_bans_tooltip' => 'แสดงคำแนะนำที่ผ่านมาที่ถูกลบ',
+	'coll-suggest_add_selected' => 'เพิ่มหน้าที่เลือก',
+	'coll-suggest_ban_selected' => 'ลบหน้าที่เลือก',
+	'coll-suggest_your_book' => 'หนังสือของคุณ',
+	'coll-suggest_show' => 'แสดง',
+	'coll-suggest_ban_tooltip' => 'นำหน้านี้ออกจากรายการคำแนะนำ',
+	'coll-suggest_article_ban' => 'หน้า <strong>$1</strong> ถูกลบออกจากรายการคำแนะนำแล้ว ($2)',
+	'coll-suggest_article_add' => 'เพิ่มหน้า <strong>$1</strong> ลงไปในหนังสือของคุณแล้ว ($2)',
+	'coll-suggest_article_remove' => 'นำหน้า <strong>$1</strong> ออกจากหนังสือของคุณแล้ว ($2)',
+	'coll-suggest_undo_tooltip' => 'ย้อนการกระทำนี้',
+	'coll-suggest_undo' => 'ย้อนกลับ',
+	'coll-load_local_book' => 'คลิกตกลงเพื่อดำเนินการต่อกับหนังสือ %TITLE% ของคุณซึ่งประกอบด้วยหน้าวิกิ %NUMPAGES% หน้า คลิกยกเลิกเพื่อลบออกและเริ่มต้นใหม่ด้วยหนังสือว่าง',
+	'right-collectionsaveasuserpage' => 'บันทึกหนังสือในหน้าผู้ใช้',
+	'right-collectionsaveascommunitypage' => 'บันทึกหนังสือเป็นหนังสือส่วนรวม',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'coll-desc' => '[[Special:Book|Kitap döret]]',
+	'coll-manage_your_book' => 'Öz kitabyňy dolandyr',
+	'coll-book_creator_help' => 'Has köp maglumat üçin [[{{MediaWiki:Coll-helppage}}|kitaplar hakdaky ýardam sahypasyna]] serediň.',
+	'coll-start_book_creator' => 'Kitap döredijini başlat',
+	'coll-book_creator_continue' => 'Kitap döredijini ulanmaga dowam et',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Kitap dörediji teksti',
+	'coll-collection' => 'Kitap',
+	'coll-collections' => 'Kitaplar',
+	'coll-exclusion_category_title' => 'Printe goşma',
+	'coll-print_template_prefix' => 'Print et',
+	'coll-print_template_pattern' => '$1/Print et',
+	'coll-unknown_subpage_title' => 'Näbelli kiçi sahypa',
+	'coll-unknown_subpage_text' => '[[Special:Book|Kitabyň]] bu kimi sahypasy ýok',
+	'coll-couldnotaddarticle_title' => 'Wiki sahypasyny goşup bolmaýar',
+	'coll-couldnotaddarticle_msg' => 'Wiki sahypasyny goşup bolmady.',
+	'coll-couldnotremovearticle_title' => 'Wiki sahypasyny aýryp bolmady',
+	'coll-couldnotremovearticle_msg' => 'Wiki sahypasyny aýryp bolmady',
+	'coll-savedbook_template' => 'ýazdyrylan_kitap',
+	'coll-your_book' => 'Kitabyňyz',
+	'coll-download_title' => 'Düşür',
+	'coll-download_text' => 'Kitabyňyzy düşürmek üçin bir format saýlaň we düwmä tyklaň.',
+	'coll-download_as_text' => 'Kitabyňyzy $1 formatynda düşürmek üçin düwmä tyklaň.',
+	'coll-download' => 'Düşür',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Aýyr',
+	'coll-show' => 'Görkez',
+	'coll-move_to_top' => 'Iň ýokaryk geçir',
+	'coll-move_up' => 'Ýokarlygyna geçir',
+	'coll-move_down' => 'Aşaklygyna geçir',
+	'coll-move_to_bottom' => 'Iň aşak geçir',
+	'coll-title' => 'At:',
+	'coll-subtitle' => 'Kiçi at:',
+	'coll-contents' => 'Mazmuny',
+	'coll-drag_and_drop' => 'Wiki sahypalaryny we  bölümleri gaýtadan tertiplemek üçin süýre & goý-y ulanyň',
+	'coll-create_chapter' => 'Bap döret',
+	'coll-sort_alphabetically' => 'Elipbiý boýunça düz',
+	'coll-rename' => 'Adyny üýtget',
+	'coll-new_chapter' => 'Täze bap üçin at ýazyň',
+	'coll-rename_chapter' => 'Bap üçin täze at ýazyň',
+	'coll-no_such_category' => 'Beýle kategoriýa ýok',
+	'coll-notitle_title' => 'Sahypanyň adyny kesgitläp bolmady.',
+	'coll-post_failed_title' => 'POST talaby şowsuz',
+	'coll-post_failed_msg' => '$1 üçin POST talaby şowsuz ($2).',
+	'coll-mwserve_failed_title' => 'Iş serweri säwligi',
+	'coll-mwserve_failed_msg' => 'İş serwerinde bir säwlik döredi: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => 'Serwerden säwlik jogaby',
+	'coll-empty_collection' => 'Boş kitap',
+	'coll-revision' => 'Wersiýa: $1',
+	'coll-save_collection_title' => 'Kitabyňy ýazdyr we paýlaş',
+	'coll-save_collection_text' => 'Kitabyňyz üçin bir ýer saýlaň:',
+	'coll-login_to_save' => 'Kitaplaryňyzy soňundan ulanmak üçin ýazdyrnak isleýän bolsaňyz, [[Special:UserLogin|sessiýa açyň ýa-da hasap dörediň]].',
+	'coll-personal_collection_label' => 'Şahsy kitap:',
+	'coll-community_collection_label' => 'Jemgyýetçilik kitaby:',
+	'coll-save_collection' => 'Kitaby ýazdyr',
+	'coll-save_category' => 'Ähli ýazdyrylan kitaplar [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategoriýasyna goşulýar.',
+	'coll-overwrite_title' => 'Sahypa bar.
+Üstüne ýazmalymy?',
+	'coll-overwrite_text' => '[[:$1]] atly sahypa eýýäm bar.
+Onuň kitabyňyz bilen bilelikde çalşyrylmagyny isleýärsiňizmi?',
+	'coll-yes' => 'Hawa',
+	'coll-no' => 'Ýok',
+	'coll-load_overwrite_text' => 'Kitabyňyzda eýýäm birnäçe sahypa bar.
+Şu wagtky kitabyňyzyň üsütne ýazdyrasyňyz, oňa täze mazmun goşasyňyz ýa-da bu kitaby ýüklemegi bes edesiňiz gelýärmi?',
+	'coll-overwrite' => 'Üstüne ýaz',
+	'coll-append' => 'Goş',
+	'coll-cancel' => 'Goýbolsun et',
+	'coll-update' => 'Täzele',
+	'coll-limit_exceeded_title' => 'Kitap aşa uly',
+	'coll-limit_exceeded_text' => 'Kitabyňyz aşa uly.
+Indi sahypa goşup bolmaýar.',
+	'coll-rendering_title' => 'Döredilýär',
+	'coll-rendering_text' => '<p><strong>Dokument döredilýänçä garaşyň.</strong></p>
+
+<p><strong>Işiň gidişi:</strong> %<span id="renderingProgress">$1</span> <span id="renderingStatus">$2</span></p>
+
+<p>Bu sahypa birnäçe sekuntdan täzelenip durmalydyr.
+Eger işlemýän bolsa, onda brauzeriňiziň täzele düwmesine basyň.</p>',
+	'coll-rendering_status' => '<strong>Status:</strong> $1',
+	'coll-rendering_article' => '(wiki sahypasy: $1)',
+	'coll-rendering_page' => '(sahypa: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Sahypanyň maglumat teksti işlenilýär',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kolleksiýanyň maglumat teksti işlenilýär',
+	'coll-rendering_finished_title' => 'Döretme tamamlandy',
+	'coll-rendering_finished_text' => '<strong>Dokument döredildi.</strong>
+Faýly kompýuteriňize <strong>[$1 göçürip alyň]</strong>.
+
+Bellik:
+* Netije sizi kanagatlandyrmaýarmy? Ony ösdürmegiň mümkinçilikleri üçin [[{{MediaWiki:Coll-helppage}}|kitaplar hakyndaky kömek sahypalaryna]] serediň.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Sahypanyň maglumat teksti işlenilýär',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kolleksiýanyň maglumat teksti işlenilýär',
+	'coll-notfound_title' => 'Kitap tapylmady',
+	'coll-notfound_text' => 'Kitap sahypasyny tapyp bolmady.',
+	'coll-download_notfound_title' => 'Faýl tapylmady',
+	'coll-download_notfound_text' => 'Göçürip aljak bolýan faýlyňyz ýok: Ol öçürilendir ýa-da täzeden döredilmelidir.',
+	'coll-download_failed_title' => 'Düşürilýän mahaly säwlik',
+	'coll-download_failed_text' => 'Faýl düşürilýärkä säwlik döredi: $1',
+	'coll-is_cached' => '<ul><li>Bu dokumantiň keşli wersiýasy tapyldy, şol sebäpli ony işlemek gerek bolmady. <a href="$1">Şonda-da täzeden işletdir.</a></li></ul>',
+	'coll-excluded-templates' => '* [[:Category:$1|$1]] kategoriýasyndaky şablonlar degişli edilmedi.',
+	'coll-blacklisted-templates' => '* [[:$1]] gara sanawyndaky şablonlar degişli edilmedi.',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a> kitabyna gaýdyp bar</p>',
+	'coll-book_title' => 'Çap edilen kitap hökmünde buýurma ber',
+	'coll-book_text' => 'Tlap boýunça print edýän partnýorymyzdan print edilen kitap al:',
+	'coll-order_from_pp' => '$1 bilen deslapky synla',
+	'coll-about_pp' => '$1 hakda',
+	'coll-invalid_podpartner_title' => 'Nädogry POD partneri',
+	'coll-invalid_podpartner_msg' => 'Üpjün edilen POD partneri nädogry.
+MediaWiki administratoryňyz bilen habarlaşyň.',
+	'coll-license' => 'Lisenziýa',
+	'coll-return_to' => '[[:$1]] sahypasyna gaýdyp bar',
+	'coll-more_info' => 'Has köp maglumat görkez',
+	'coll-hide_info' => 'Maglumaty gizle',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress buýurma maglumaty',
+	'coll-suggest_title' => 'Kitabyňyz üçin teklip edilýän sahypalar',
+	'coll-suggest_intro_text' => 'Teklipler häzirki wagtda kitabyňyzda bar bolan wiki sahypalaryna esaslanýar. 
+Goş ýa-da ýyr düwmelerine her basanyňyzda bu sanaw täzelenilýär.',
+	'coll-suggested_articles' => 'Teklipler',
+	'coll-suggest_reset_bans' => 'başky ýagdaýa getir',
+	'coll-suggest_reset_bans_tooltip' => 'Ozal aýrylan teklipleri görkez',
+	'coll-suggest_add_selected' => 'Saýlanylan sahypalary goş',
+	'coll-suggest_ban_selected' => 'Saýlanylan sahypalary aýyr',
+	'coll-suggest_your_book' => 'Kitabyňyz',
+	'coll-suggest_show' => 'görkez',
+	'coll-suggest_ban_tooltip' => 'Bu sahypany teklip sanawyndan aýyr',
+	'coll-suggest_article_ban' => '<strong>$1</strong> sahypasy tekliplerden ($2) aýyryldy.',
+	'coll-suggest_article_add' => '<strong>$1</strong> sahypasy kitabyňyza ($2) goşuldy.',
+	'coll-suggest_article_remove' => '<strong>$1</strong> sahypasy kitabyňyzdan ($2) aýyryldy.',
+	'coll-suggest_undo_tooltip' => 'Bu hereketi yzyna al',
+	'coll-suggest_undo' => 'yzyna al',
+	'coll-load_local_book' => '%NUMPAGES% wiki sahypasyny öz içine alýan kitabyňyz %TITLE% bilen dowam etmek üçin Bolýar-a basyň. Muny öçürmek we boş bir kitaba başlamak üçin Goýbolsun et-e basyň.',
+	'right-collectionsaveasuserpage' => 'Kitaplary ulanyjy sahypasy hökmünde ýazdyr',
+	'right-collectionsaveascommunitypage' => 'Kitaplary jemgyýetçilik sahypasy edip ýazdyr',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
 	'coll-desc' => '[[Special:Book|Lumikha ng mga aklat]]',
+	'coll-book_creator_intro' => "<big>Sa pamamagitan ng ''panglikha ng aklat'' maaari kang lumikha ng isang aklat na naglalaman ng mga pahinang pangwiki na pinili mo. Mailuluwas mo ang aklat sa iba't ibang mga anyo (halimbawa na ang PDF o ODF) o umorder ng kopyang nakalimbag.</big>",
+	'coll-manage_your_book' => 'Pamahalaan ang aklat mo',
+	'coll-book_creator_help' => 'Tingnan [[{{MediaWiki:Coll-helppage}}|ang pahina ng tulong tungkol sa mga aklat]] para sa marami pang kabatiran.',
+	'coll-start_book_creator' => 'Simulan ang panglikha ng aklat',
+	'coll-book_creator_continue' => 'Magpatuloy sa paggamit ng panglikha ng aklat',
+	'coll-book_creator_disable_text' => "Hindi pagaganahin ang '''panglikha ng aklat''' at tatanggalin ang aklat na ginagawa mo.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Tekstong panglikha ng aklat',
 	'coll-collection' => 'Aklat',
 	'coll-collections' => 'Mga aklat',
 	'coll-exclusion_category_title' => 'Huwag isama sa paglimbag',
 	'coll-print_template_prefix' => 'Ilimbag',
 	'coll-print_template_pattern' => '$1/Limbag',
-	'coll-create_a_book' => 'Lumikha ng isang aklat',
-	'coll-add_page' => 'Magdagdag ng pahinang wiki',
-	'coll-remove_page' => 'Tanggalin ang pahinang wiki',
-	'coll-add_category' => 'Magdagdag ng kaurian',
-	'coll-load_collection' => 'Ikarga ang aklat',
-	'coll-show_collection' => 'Ipakita ang aklat',
-	'coll-help_collections' => 'Tulong na pang-aklat',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pahina|mga pahina}}',
 	'coll-unknown_subpage_title' => 'Hindi nalalamang kabahaging pahina',
 	'coll-unknown_subpage_text' => 'Hindi umiiral ang kabahaging pahinang ito ng [[Special:Book|Aklat]]',
-	'coll-printable_version_pdf' => 'Bersyong PDF',
-	'coll-download_as' => 'Ikargang-pakuha bilang $1',
+	'coll-couldnotaddarticle_title' => 'Hindi maidagdag ang pahinang pangwiki',
+	'coll-couldnotaddarticle_msg' => 'Hindi maidaragdag ang pahinang pangwiki.',
+	'coll-couldnotremovearticle_title' => 'Hindi matanggal ang pahinang pangwiki',
+	'coll-couldnotremovearticle_msg' => 'Hindi matatanggal ang pahinang pangwiki.',
 	'coll-noscript_text' => "<h1>Kailangan ang JavaScript!</h1>
 <strong>Hindi sinusuportan ng iyong pantingin-tingin (''browser'') ang JavaScript o nakapatay ang JavaScript.
 Hindi aandar ng tama ang pahinang ito, maliban na lamang kung bubuhayin ang JavaScript.</strong>",
-	'coll-intro_text' => 'Likhain at pamahalaan ang iyong pansariling pilian ng mga pahina ng wiki.<br />Tingnan ang [[{{MediaWiki:Coll-helppage}}]] para sa mas maraming kabatiran.',
-	'coll-helppage' => 'Help:Mga Aklat',
-	'coll-bookscategory' => 'Mga aklat',
 	'coll-savedbook_template' => 'sinagip_na_aklat',
 	'coll-your_book' => 'Aklat mo',
 	'coll-download_title' => 'Ikargang-pakuha',
-	'coll-download_text' => "Upang makapagkargang-pakuha ng isang bersyong hindi-nakakonekta sa kompyuter (''offline'') pumili ng isang anyo/pormat at pindutin ang pindutan.",
-	'coll-download_as_text' => 'Upang makapagkargang pababa ng isang bersyong nasa pormat na $1 pindutin ang pindutan.',
+	'coll-download_text' => 'Upang maikargang-pababa ang aklat mo pumili ng isang anyo at pindutin ang pindutan.',
+	'coll-download_as_text' => 'Upang maikargang-pababa ang aklat mo sa anyong $1 pindutin ang pindutan.',
 	'coll-download' => 'Ikargang-pakuha',
 	'coll-format_label' => 'Pormat (anyo):',
 	'coll-remove' => 'Tanggalin',
@@ -6794,8 +12495,6 @@
 	'coll-drag_and_drop' => 'Gamitin ang "kaladkarin at ibagsak" upang muling maiayos ang mga pahina at mga kabanata ng wiki',
 	'coll-create_chapter' => 'Lumikha ng kabanata',
 	'coll-sort_alphabetically' => 'Ayusing ayon sa abakada (alpabeto)',
-	'coll-clear_collection' => 'Hawiin ang aklat',
-	'coll-clear_collection_confirm' => 'Talaga bang nais mong hawiin ng lubusan ang aklat mo?',
 	'coll-rename' => 'Pangalanang muli',
 	'coll-new_chapter' => 'Maglagay ng pangalan para sa bagong kabanata',
 	'coll-rename_chapter' => 'Maglagay ng bagong pangalan para sa kabanata',
@@ -6814,7 +12513,7 @@
 	'coll-personal_collection_label' => 'Pansariling aklat:',
 	'coll-community_collection_label' => 'Aklat ng pamayanan:',
 	'coll-save_collection' => 'Sagipin ang aklat',
-	'coll-save_category' => 'Nakasagip ang mga aklat sa loob ng kauriang [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Idinaragdag ang lahat ng nakasagip na mga aklat sa loob ng kategoryang [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Umiiral ang pahina.
 Patungan?',
 	'coll-overwrite_text' => 'Umiiral na ang isang pahinang may pangalang [[:$1]].
@@ -6840,72 +12539,95 @@
 	'coll-rendering_status' => '<strong>Kalagayan:</strong> $1',
 	'coll-rendering_article' => '(pahinang wiki: $1)',
 	'coll-rendering_page' => '(pahina: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Ibinibigay ang teksto pangkabatiran ng pahina',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Ibinibigay ang tekstong pangkabatiran ng kalipunan',
 	'coll-rendering_finished_title' => 'Tapos na ang paghahain',
 	'coll-rendering_finished_text' => '<strong>Nagawa na ang talaksang pangkasulatan (dokumento).</strong>
 <strong>[$1 Ikargang-pakuha ang talaksan]</strong> papunta sa iyong kompyuter.
 
 Mga tala:
 * Hindi ka ba nasiyahan sa kinalabasan? Tingnan [[{{MediaWiki:Coll-helppage}}|ang pahina ng tulong hinggil sa mga kalipunan]] para sa mga bagay-bagay na maaaring gawin (posibilidad) upang mapainam pa ito.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Ibinibigay ang tekstong pangkabatiran ng pahina',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Ibinibigay ang tekstong pangkabatiran ng kalipunan',
 	'coll-notfound_title' => 'Hindi natagpuan ang aklat',
 	'coll-notfound_text' => 'Hindi matagpuan ang pahina ng aklat.',
+	'coll-download_notfound_title' => 'Hindi natagpuan ang talaksan',
+	'coll-download_notfound_text' => 'Hindi umiiral ang talaksang sinusubok mong ikargang pababa: Binura na ito marahil at kinakailangang muling likhain.',
+	'coll-download_failed_title' => 'Kamalian habang ikinakargang-pababa',
+	'coll-download_failed_text' => 'Mayroon kamalian habang kinakargang pababa ang talaksan: $1',
 	'coll-is_cached' => '<ul><li>Natagpuan ang isang nakatagong bersyon ng kasulatan (dokumento), kaya\'t hindi na kailangan pa ang "paghahain". <a href="$1">Pilitin ang muling paghahain.</a></li></ul>',
 	'coll-excluded-templates' => '* Hindi isinali ang mga suleras na nasa kauriang [[:Category:$1|$1]].',
 	'coll-blacklisted-templates' => '* Hindi isinali ang mga suleras na nasa talaan ng mga pinagbabawalan [[:$1]]',
 	'coll-return_to_collection' => '<p>Magbalik sa <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Orderin bilang isang nakalimbag na aklat',
 	'coll-book_text' => 'Kumuha ng isang nakalimbag na aklat mula sa aming kasosyo sa "ilimbag-kapag-hiniling" (IKH):',
-	'coll-order_from_pp' => 'Umorder ng aklat mula sa $1',
+	'coll-order_from_pp' => 'Paunang tingnan na may $1',
 	'coll-about_pp' => 'Mga $1',
 	'coll-invalid_podpartner_title' => 'Hindi tanggap na kasosyo/kawaksing pang-IKH ("ilimbag-kapag-hiniling")',
 	'coll-invalid_podpartner_msg' => 'Hindi tanggap ang ibinigay na kawaksi/kasosyong pang-IKH ("ilimbag-kapag-hiniling").
 Makipagugnayan sa iyong tagapangasiwa ng MediaWiki.',
 	'coll-license' => 'Pahintulot (lisensya)',
 	'coll-return_to' => 'Bumalik sa [[:$1]]',
+	'coll-more_info' => 'Magpakita ng mas marami pang kabatiran',
+	'coll-hide_info' => 'Ikubli ang kabatiran',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PalimbagangPedya kabatiran ng hinihiling',
+	'coll-suggest_title' => 'Minumungkahing mga pahina para sa aklat mo',
+	'coll-suggest_intro_text' => 'Nakabatay ang mga mungkahi sa pangkasalukuyang pangkat ng mga pahinang pangwiki na nasa loob ng aklat mo.
+Isinasapanahon ang talaan sa tuwing pipindutin mo ang mga pinduting pandagdag o pantanggal.',
+	'coll-suggested_articles' => 'Mga mungkahi',
+	'coll-suggest_reset_bans' => 'muling itakda',
+	'coll-suggest_reset_bans_tooltip' => 'Ipakita ang dating mga tinanggal na mga mungkahi',
+	'coll-suggest_add_selected' => 'Idagdag ang napiling mga pahina',
+	'coll-suggest_ban_selected' => 'Tanggalain ang napiling mga pahina',
+	'coll-suggest_your_book' => 'Ang aklat mo',
+	'coll-suggest_show' => 'ipakita',
+	'coll-suggest_ban_tooltip' => 'Tanggalin ang pahinang ito mula sa talaan ng mga mungkahi',
+	'coll-suggest_article_ban' => 'Tinanggal ang pahinang <strong>$1</strong> mula sa mga mungkahi ($2).',
+	'coll-suggest_article_add' => 'Naidagdag ang pahinang <strong>$1</strong> sa aklat mo ($2).',
+	'coll-suggest_article_remove' => 'Naalis ang pahinang <strong>$1</strong> mula sa aklat mo ($2).',
+	'coll-suggest_undo_tooltip' => 'Bawiin ang galaw na ito',
+	'coll-suggest_undo' => 'ibalik',
+	'coll-load_local_book' => 'Pindutin ang Okey upang magpatuloy sa aklat mong %TITLE% na naglalaman ng %NUMPAGES% na mga pahinang pangwiki.  Pindutin ang Huwag ituloy upang burahin ito at magsimula ng isang aklat na wala pang laman.',
+	'right-collectionsaveasuserpage' => 'Sagipin ang mga aklat bilang pahina ng tagagamit',
+	'right-collectionsaveascommunitypage' => 'Sagipin ang mga aklat bilang pahina ng pamayanan',
 );
 
 /** Turkish (Türkçe)
  * @author Joseph
  * @author Karduelis
  * @author Mach
+ * @author Manco Capac
  * @author Srhat
  * @author Suelnur
  */
 $messages['tr'] = array(
 	'coll-desc' => '[[Special:Book|Kitap oluştur]]',
+	'coll-book_creator_intro' => "<big>''Kitap oluşturucu'' ile seçtiğiniz viki sayfalarından bir kitap oluşturabilirsiniz. Oluşturduğunuz kitabın diğer formatlardan (örneğin PDF veya ODF) çıktısını alabilir veya yazdırılmış bir kopya sipariş edebilirsiniz.</big>",
+	'coll-manage_your_book' => 'Kitabınızı düzenleyin',
+	'coll-book_creator_help' => 'Daha fazla bilgi için [[{{MediaWiki:Coll-helppage}}|kitaplar hakkındaki yardım sayfasına]] bakın.',
+	'coll-start_book_creator' => 'Kitap oluşturucuyu başlat',
+	'coll-book_creator_continue' => 'Kitap oluşturucuyu kullanmaya devam et',
+	'coll-book_creator_disable_text' => "''Kitap oluşturucu'' devre dışı bırakılacak ve üzerinde çalıştığınız kitap silinecektir.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Kitap oluşturucu metni',
 	'coll-collection' => 'Kitap',
 	'coll-collections' => 'Kitaplar',
 	'coll-exclusion_category_title' => 'Yazdırırken hariç tut',
 	'coll-print_template_prefix' => 'Yazdır',
 	'coll-print_template_pattern' => '$1/Yazdır',
-	'coll-create_a_book' => 'Bir kitap oluştur',
-	'coll-add_page' => 'Sayfa ekle',
-	'coll-add_page_tooltip' => 'Bu sayfayı koleksiyonunuza ekleyin',
-	'coll-remove_page' => 'Sayfayı çıkar',
-	'coll-remove_page_tooltip' => 'Bu sayfayı koleksiyonunuzdan çıkarın',
-	'coll-add_category' => 'Kategori ekle',
-	'coll-add_category_tooltip' => 'Bu kategorideki tüm viki sayfalarını koleksiyonunuza ekleyin',
-	'coll-load_collection' => 'Koleksiyonu yükle',
-	'coll-load_collection_tooltip' => 'Bu koleksiyonu varsayılan koleksiyonunuz olarak yükleyin',
-	'coll-show_collection' => 'Koleksiyonu göster',
-	'coll-show_collection_tooltip' => 'Tıklayıp koleksiyonunuzu düzenleyin/indirin/sipariş edin',
-	'coll-help_collections' => 'Koleksiyon yardımı',
-	'coll-help_collections_tooltip' => 'Koleksiyon aracı hakkında yardım',
-	'coll-n_pages' => '$1 {{PLURAL:$1|sayfa|sayfa}}',
 	'coll-unknown_subpage_title' => 'Bilinmeyen altsayfa',
-	'coll-unknown_subpage_text' => '[[Special:Book|Koleksiyonun]] bu altsayfası mevcut değil',
-	'coll-printable_version_pdf' => 'PDF sürümü',
-	'coll-download_as' => '$1 olarak indir',
+	'coll-unknown_subpage_text' => '[[Special:Book|Kitabın]] bu altsayfası mevcut değil',
+	'coll-couldnotaddarticle_title' => 'Viki sayfası eklenemiyor',
+	'coll-couldnotaddarticle_msg' => 'Viki sayfası eklenemedi.',
+	'coll-couldnotremovearticle_title' => 'Viki sayfası kaldırılamıyor',
+	'coll-couldnotremovearticle_msg' => 'Viki sayfası kaldırılamadı.',
 	'coll-noscript_text' => '<h1>JavaScript gerekli!</h1>
 <strong>Tarayıcınız JavaScript desteklemiyor ya da JavaScript kapalı.
 JavaScript devreye sokulmadıkça bu sayfa doğru çalışmayacaktır.</strong>',
-	'coll-intro_text' => 'Viki sayfalarının kişisel seçiminizi oluşturun ve yönetin<br />Daha fazla bilgi için [[{{MediaWiki:Coll-helppage}}]] sayfasına bakın.',
-	'coll-helppage' => 'Help:Koleksiyonlar',
-	'coll-bookscategory' => 'Koleksiyonlar',
 	'coll-savedbook_template' => 'kaydedilmiş_kitap',
-	'coll-your_book' => 'Koleksiyonunuz',
+	'coll-your_book' => 'Kitabınız',
 	'coll-download_title' => 'İndir',
-	'coll-download_text' => 'Çevrimdışı bir sürüm indirmek için bir format seçin ve düğmeye tıklayın.',
-	'coll-download_as_text' => '$1 formatında bir sürümü indirmek için tıklayın.',
+	'coll-download_text' => 'Kitabınızı bilgisayarınıza indirmek için bir format seçin ve butona tıklayın.',
+	'coll-download_as_text' => 'Kitabınızı $1 formatında bilgisayarınıza indirmek için butona tıklayın.',
 	'coll-download' => 'İndir',
 	'coll-format_label' => 'Format:',
 	'coll-remove' => 'Kaldır',
@@ -6920,42 +12642,39 @@
 	'coll-drag_and_drop' => "Viki sayfalarını ve bölümleri yeniden sıralamak için sürükle & bırak'ı kullanın",
 	'coll-create_chapter' => 'Bölüm oluştur',
 	'coll-sort_alphabetically' => 'Alfabetik olarak sırala',
-	'coll-clear_collection' => 'Kitabı temizle',
-	'coll-clear_collection_tooltip' => 'Mevcut koleksiyonunuzdaki tüm viki sayfalarını silin',
-	'coll-clear_collection_confirm' => 'Koleksiyonunuzu tamamen temizlemeyi istiyor musunuz?',
 	'coll-rename' => 'Yeniden adlandır',
 	'coll-new_chapter' => 'Yeni bölüm için isim girin',
 	'coll-rename_chapter' => 'Bölüm için yeni isim girin',
-	'coll-no_such_category' => 'Böyle bir kategori bululnmamaktadır',
+	'coll-no_such_category' => 'Böyle bir kategori bulunmamaktadır',
 	'coll-notitle_title' => 'Sayfanın başlığı belirlenemiyor.',
 	'coll-post_failed_title' => 'POST isteği başarısız',
 	'coll-post_failed_msg' => '$1 için POST isteği başarısız ($2).',
 	'coll-mwserve_failed_title' => 'İşlem sunucusu hatası',
 	'coll-mwserve_failed_msg' => 'İşlem sunucusunda bir hata oluştu: <nowiki>$1</nowiki>',
 	'coll-error_reponse' => 'Sunucudan hata cevabı',
-	'coll-empty_collection' => 'Boş koleksiyon',
+	'coll-empty_collection' => 'Boş kitap',
 	'coll-revision' => 'Revizyon: $1',
-	'coll-save_collection_title' => 'Koleksiyonunuzu kaydedip paylaşın',
+	'coll-save_collection_title' => 'Kitabınızı kaydedip paylaşın',
 	'coll-save_collection_text' => 'Bir konum seçin:',
-	'coll-login_to_save' => 'Koleksiyonlarınızı daha sonra kullanmak için kaydetmek istiyorsanız, lütfen [[Special:UserLogin|giriş yapın ya da bir hesap oluşturun]].',
-	'coll-personal_collection_label' => 'Kişisel koleksiyon:',
-	'coll-community_collection_label' => 'Topluluk koleksiyonu:',
-	'coll-save_collection' => 'Koleksiyonu kaydet',
-	'coll-save_category' => 'Koleksiyonlar [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategorisinde kaydedildi.',
+	'coll-login_to_save' => 'Kitaplarınızı daha sonra kullanmak için kaydetmek istiyorsanız, lütfen [[Special:UserLogin|giriş yapın ya da bir hesap oluşturun]].',
+	'coll-personal_collection_label' => 'Kişisel kitap:',
+	'coll-community_collection_label' => 'Topluluk kitabı:',
+	'coll-save_collection' => 'Kitabı kaydet',
+	'coll-save_category' => 'Tüm kaydedilen kitaplar [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] kategorisine eklenir.',
 	'coll-overwrite_title' => 'Sayfa zaten mevcut.
 Üzerine yazmak ister misiniz?',
 	'coll-overwrite_text' => '[[:$1]] adında bir sayfa zaten mevcut.
-Koleksiyonunuzla beraber değiştirilmesini istiyor musunuz?',
+Kitabınızla beraber değiştirilmesini istiyor musunuz?',
 	'coll-yes' => 'Evet',
 	'coll-no' => 'Hayır',
-	'coll-load_overwrite_text' => 'Koleksiyonunuzda birkaç sayfa zaten var.
-Şu anki koleksiyonunuzun üzerine yazmak mı, yeni içeriği eklemek mi, veya bu kitabı yüklemeyi iptal etmek mi istiyorsunuz?',
+	'coll-load_overwrite_text' => 'Kitabınızda birkaç sayfa zaten var.
+Şu anki kitabınızın üzerine yazmak mı, yeni içeriği eklemek mi, veya bu kitabı yüklemeyi iptal etmek mi istiyorsunuz?',
 	'coll-overwrite' => 'Üzerine yaz',
 	'coll-append' => 'Ekle',
 	'coll-cancel' => 'İptal',
 	'coll-update' => 'Güncelle',
-	'coll-limit_exceeded_title' => 'Koleksiyon çok büyük',
-	'coll-limit_exceeded_text' => 'Koleksiyonunuz çok büyük.
+	'coll-limit_exceeded_title' => 'Kitap çok büyük',
+	'coll-limit_exceeded_text' => 'Kitabınız çok büyük.
 Daha fazla sayfa eklenememektedir.',
 	'coll-rendering_title' => 'Oluşturuluyor',
 	'coll-rendering_text' => '<p><strong>Lütfen belge oluşturulurken bekleyin.</strong></p>
@@ -6967,63 +12686,152 @@
 	'coll-rendering_status' => '<strong>Durum:</strong> $1',
 	'coll-rendering_article' => '(viki sayfası: $1)',
 	'coll-rendering_page' => '(sayfa: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/İşleyici sayfası bilgi metni',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/İşleyici kolleksiyonu bilgi metni',
 	'coll-rendering_finished_title' => 'Oluşturma tamamlandı',
 	'coll-rendering_finished_text' => '<strong>Belge oluşturuldu.</strong>
 Dosyayı bilgisayarınıza <strong>[$1 indirin]</strong>.
 
 Not:
-* Çıktıdan memnun değil misiniz? Geliştirme olanakları için [[{{MediaWiki:Coll-helppage}}|koleksiyonlar hakkındaki yardım sayfalarına]] bakın.',
-	'coll-notfound_title' => 'Koleksiyon bulunamadı',
-	'coll-notfound_text' => 'Koleksiyon sayfası bulunamadı.',
+* Çıktıdan memnun değil misiniz? Geliştirme olanakları için [[{{MediaWiki:Coll-helppage}}|kitaplar hakkındaki yardım sayfalarına]] bakın.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/İşleyici sayfası bilgi metni',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/İşleyici koleksiyonu bilgi metni',
+	'coll-notfound_title' => 'Kitap bulunamadı',
+	'coll-notfound_text' => 'Kitap sayfası bulunamadı.',
+	'coll-download_notfound_title' => 'Dosya bulunamadı',
+	'coll-download_notfound_text' => 'İndirmeye çalıştığınız dosya mevcut değil: Silinmiş olabilir ve yeniden oluşturulması gerekebilir.',
+	'coll-download_failed_title' => 'İndirme sırasında hata',
+	'coll-download_failed_text' => 'Dosya indirilirken hata oluştu: $1',
 	'coll-is_cached' => '<ul><li>Belgenin önbellekteki bir sürümü bulundu, bu yüzden oluşturmaya gerekmemektedir. <a href="$1">Yeniden oluşturmaya zorla.</a></li></ul>',
 	'coll-excluded-templates' => '* [[:Category:$1|$1]] kategorisindeki şablonlar hariç tutuldu.',
 	'coll-blacklisted-templates' => '* [[:$1]] kara listesindeki şablonlar hariç tutuldu.',
-	'coll-return_to_collection' => '<p><a href="$1">$2</a> koleksiyonuna geri dön</p>',
+	'coll-return_to_collection' => '<p><a href="$1">$2</a> kitaba geri dön</p>',
 	'coll-book_title' => 'Basılı bir kitap olarak sipariş et',
 	'coll-book_text' => 'Talebe-göre-basım ortağımızdan basılı bir kitap al:',
-	'coll-order_from_pp' => '$1 firmasından kitap sipariş et',
+	'coll-order_from_pp' => '$1 ile önizle',
 	'coll-about_pp' => '$1 hakkında',
 	'coll-invalid_podpartner_title' => 'Geçersiz POD ortağı',
 	'coll-invalid_podpartner_msg' => 'Sağlanan POD ortağı geçersiz.
 Lütfen MedyaViki yöneticinizle irtibat kurun.',
 	'coll-license' => 'Lisans',
 	'coll-return_to' => '[[:$1]] sayfasına geri dön',
+	'coll-more_info' => 'Daha fazla bilgi göster',
+	'coll-hide_info' => 'Bilgiyi gizle',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress sipariş bilgisi',
+	'coll-suggest_title' => 'Kitabınız için önerilen sayfalar',
+	'coll-suggest_intro_text' => 'Öneriler şu anda kitabınızda bulunan viki sayfalarına dayalıdır. 
+Ekle veya sil butonlarına her bastığınızda liste yenilenir.',
+	'coll-suggested_articles' => 'Öneriler',
+	'coll-suggest_reset_bans' => 'sıfırla',
+	'coll-suggest_reset_bans_tooltip' => 'Daha önceden silinmiş önerileri göster',
+	'coll-suggest_add_selected' => 'Seçili sayfaları ekle',
+	'coll-suggest_ban_selected' => 'Seçili sayfaları kaldır',
+	'coll-suggest_your_book' => 'Kitabınız',
+	'coll-suggest_show' => 'göster',
+	'coll-suggest_ban_tooltip' => 'Bu sayfayı öneri listesinden kaldır',
+	'coll-suggest_article_ban' => '<strong>$1</strong> sayfası önerilerden ($2) kaldırıldı.',
+	'coll-suggest_article_add' => '<strong>$1</strong> sayfası kitabınıza ($2) eklendi.',
+	'coll-suggest_article_remove' => '<strong>$1</strong> sayfası kitabınızdan ($2) çıkarıldı.',
+	'coll-suggest_undo_tooltip' => 'Bu eylemi geri al',
+	'coll-suggest_undo' => 'geri al',
+	'coll-load_local_book' => "%NUMPAGES% viki sayfası içeren kitabınız %TITLE% ile devam etmek için Tamam'a tıklayın. Bunu silmek ve boş bir kitaba başlamak için İptal'e tıklayın.",
+	'right-collectionsaveasuserpage' => 'Kitapları kullanıcı sayfası olarak kaydet',
+	'right-collectionsaveascommunitypage' => 'Kitapları topluluk sayfası olarak kaydet',
 );
 
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Timming
+ * @author Ильнар
+ */
+$messages['tt-cyrl'] = array(
+	'coll-desc' => '[[Special:Book|Китап төзүче]]',
+	'coll-manage_your_book' => 'Китабыгыз белән идарә итү',
+	'coll-book_creator_help' => 'Өстәмә мәгълүматны [[{{MediaWiki:Coll-helppage}}|китаплар белешмәлегеннән]] карагыз.',
+	'coll-start_book_creator' => 'Китап ясау',
+	'coll-book_creator_continue' => 'Китап ясауны дәвам итү',
+	'coll-book_creator_disable_text' => 'Китап ясау бите ябылачак, сез ясаган китап юкка чыгачак',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Китап ясау тексты',
+	'coll-collection' => 'Китап',
+	'coll-collections' => 'Китаплар',
+	'coll-exclusion_category_title' => 'Бастырудан чикләү',
+	'coll-print_template_prefix' => 'Бастыру',
+	'coll-print_template_pattern' => '$1/Бастыру',
+	'coll-unknown_subpage_title' => 'Билгесез бит',
+	'coll-unknown_subpage_text' => 'Мондый [[Special:Book|китап]]лар бите юк',
+	'coll-your_book' => 'Сезнең китап',
+	'coll-download_title' => 'Йөкләргә',
+	'coll-download_text' => 'Үзегезнең китапны йөкләү өчен китаның форматын сайлап, төймәгә басыгыз.',
+	'coll-download_as_text' => 'Үзегезнең китапны $1 форматында йөкләү  төймәгә басыгыз.',
+	'coll-download' => 'Йөкләргә',
+	'coll-show' => 'Күрсәтергә',
+	'coll-title' => 'Башлам:',
+	'coll-subtitle' => 'Аскы башлам:',
+	'coll-contents' => 'Эчтәлек',
+	'coll-create_chapter' => 'Башлык ясау',
+	'coll-sort_alphabetically' => 'Әлифба буенча тәртипләү',
+	'coll-rename' => 'Күчерү',
+	'coll-empty_collection' => 'Буш китап',
+	'coll-revision' => 'Юрама: $1',
+	'coll-save_collection_title' => 'Китапны саклау',
+	'coll-save_collection_text' => 'Китабыгызны өчен кую урынын сайлагыз:',
+	'coll-login_to_save' => 'Китапны саклау һәм киләчәктә үзгәртү өчен, зинһар, [[Special:UserLogin|сәхифәгә керегез яки теркәлегез]].',
+	'coll-personal_collection_label' => 'Шәхси китап:',
+	'coll-community_collection_label' => 'Җәмәгатьчелек китабы:',
+	'coll-save_collection' => 'Китапны саклау',
+	'coll-save_category' => 'Барлык сакланучы битләр [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]] төркеменә өстәлә.',
+	'coll-overwrite_title' => 'Бу бит бар инде. Яңадан төзәргәме?',
+	'coll-yes' => 'Әйе',
+	'coll-no' => 'Юк',
+	'coll-cancel' => 'Кире кагу',
+	'coll-rendering_status' => '<strong>Статусы:</strong> $1',
+	'coll-book_title' => 'Басылма китап алу',
+	'coll-book_text' => 'Безнең басылма китапны алу:',
+	'coll-order_from_pp' => '$1 ярдәмендә алдан карау',
+	'coll-about_pp' => '$1 тырунда',
+	'coll-invalid_podpartner_title' => 'Дөрес булмаган POD-ярдәмче',
+	'coll-license' => 'Лицензиясе',
+	'coll-return_to' => '[[:$1]] кайту',
+	'coll-suggest_reset_bans' => 'ташлау',
+	'coll-suggest_your_book' => 'Сезнең китап',
+	'coll-suggest_show' => 'күрсәтү',
+	'coll-suggest_undo' => 'үткәрмәү',
+);
+
 /** Ukrainian (Українська)
  * @author AS
  * @author Ahonc
  * @author Aleksandrit
+ * @author NickK
+ * @author Prima klasy4na
  */
 $messages['uk'] = array(
 	'coll-desc' => '[[Special:Book|Створює книги]]',
+	'coll-book_creator_intro' => "<big>За допомогою ''книжкового майстра'' ви можете створити книгу з вибраних вами вікі-сторінок. Ви можете експортувати книги в різних форматах (наприклад, PDF або ODF) або замовити друковану копію.</big>",
+	'coll-manage_your_book' => 'Управління вашою книгою',
+	'coll-book_creator_help' => 'Див. [[{{MediaWiki:Coll-helppage}}|довідкову сторінку про книжки]] для отримання додаткової інформації.',
+	'coll-start_book_creator' => 'Запустити книжкового майстра',
+	'coll-book_creator_continue' => 'Продовжити використання книжкового майстра',
+	'coll-book_creator_disable_text' => "''Книжкового майстра'' буде відключено; книгу, над якою ви працюєте — вилучено.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Текст книжкового майстра',
 	'coll-collection' => 'Книга',
 	'coll-collections' => 'Книги',
 	'coll-exclusion_category_title' => 'Виключення з друку',
 	'coll-print_template_prefix' => 'Друк',
-	'coll-create_a_book' => 'Створення книги',
-	'coll-add_page' => 'Додати вікі-сторінку',
-	'coll-remove_page' => 'Вилучити вікі-сторінку',
-	'coll-add_category' => 'Додати категорію',
-	'coll-load_collection' => 'Завантажити книгу',
-	'coll-show_collection' => 'Показати книгу',
-	'coll-help_collections' => 'Довідка про книги',
-	'coll-n_pages' => '$1 {{PLURAL:$1|сторінка|сторінки|сторінок}}',
+	'coll-print_template_pattern' => '$1/Друк',
 	'coll-unknown_subpage_title' => 'Невідома підсторінка',
 	'coll-unknown_subpage_text' => 'Ця підсторінка [[Special:Book|книги]] не існує',
-	'coll-printable_version_pdf' => 'PDF-версія',
-	'coll-download_as' => 'Завантажити як $1',
+	'coll-couldnotaddarticle_title' => 'Не вдалося додати вікі-сторінку',
+	'coll-couldnotaddarticle_msg' => 'Вікі-сторінка не може бути додана.',
+	'coll-couldnotremovearticle_title' => 'Не вдалося вилучити вікі-сторінку',
+	'coll-couldnotremovearticle_msg' => 'Вікі-сторінка не може бути вилучена.',
 	'coll-noscript_text' => '<h1>Потрібен JavaScript!</h1>
 <strong>Ваш браузер не підтримує JavaScript або ця підтримка вимкнена.
 Ця сторінка не буде працювати правильно, якщо JavaScript не ввімкнений.</strong>',
-	'coll-intro_text' => 'Створення і керування вашою персональною колекцією вікі-сторінок.<br />Для додаткової інформації див. [[{{MediaWiki:Coll-helppage/uk}}]].',
-	'coll-helppage' => 'Help:Книги',
-	'coll-bookscategory' => 'Книги',
 	'coll-savedbook_template' => 'збережена_книга',
 	'coll-your_book' => 'Ваша книга',
 	'coll-download_title' => 'Завантажити',
-	'coll-download_text' => 'Щоб завантажити автономну версію, оберіть формат і натисніть кнопку.',
-	'coll-download_as_text' => 'Клацніть кнопку, щоб завантажити версію у форматі $1.',
+	'coll-download_text' => 'Щоб завантажити вашу книгу, оберіть формат і натисніть кнопку.',
+	'coll-download_as_text' => 'Для завантаження вашої книги у форматі $1 натисніть кнопку.',
 	'coll-download' => 'Завантажити',
 	'coll-format_label' => 'Формат:',
 	'coll-remove' => 'Вилучити',
@@ -7038,8 +12846,6 @@
 	'coll-drag_and_drop' => 'Щоб упорядкувати вікі-сторінки і розділи, перетягуйте їх мишкою',
 	'coll-create_chapter' => 'Створити розділ',
 	'coll-sort_alphabetically' => 'Сортувати за алфавітом',
-	'coll-clear_collection' => 'Очистити книгу',
-	'coll-clear_collection_confirm' => 'Ви дійсно бажаєте повністю очистити вашу книгу?',
 	'coll-rename' => 'Перейменувати',
 	'coll-new_chapter' => 'Уведіть назву нового розділу',
 	'coll-rename_chapter' => 'Уведіть нову назву розділу',
@@ -7058,7 +12864,7 @@
 	'coll-personal_collection_label' => 'Особиста книга:',
 	'coll-community_collection_label' => 'Книга спільноти:',
 	'coll-save_collection' => 'Зберегти книгу',
-	'coll-save_category' => 'Книги збережено у категорії [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Всі збережені книги додано у категорію [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Сторінка існує. Перезаписати?',
 	'coll-overwrite_text' => 'Сторінка з назвою [[:$1]] вже існує.
 Ви хочете, щоб вона була замінена вашою колекцією?',
@@ -7083,62 +12889,97 @@
 	'coll-rendering_status' => '<strong>Статус:</strong> $1',
 	'coll-rendering_article' => '(сторінка: $1)',
 	'coll-rendering_page' => '(сторінка: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Надання інформації про сторінку',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Надання інформації про колекцію',
 	'coll-rendering_finished_title' => 'Створення завершено',
 	'coll-rendering_finished_text' => "<strong>Файл документа був створений.</strong>
 <strong>[$1 Завантажити файл]</strong> на свій комп'ютер.
 
 Зауваження:
 * Не задоволені результатом? Можливості його поліпшення описані на [[{{MediaWiki:Coll-helppage}}|довідковій сторінці про колекції]].",
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Формування відомостей про сторінку',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Формування інформації про колекцію',
 	'coll-notfound_title' => 'Книга не знайдена',
 	'coll-notfound_text' => 'Неможливо знайти сторінку книги.',
+	'coll-download_notfound_title' => 'Файл не знайдено',
+	'coll-download_notfound_text' => 'Файл, який ви намагаєтесь завантажити, не існує.
+Можливо, його вилучили, і його необхідно відновити.',
+	'coll-download_failed_title' => 'Помилка в процесі завантаження',
+	'coll-download_failed_text' => 'Виявлено помилку при завантаженні файлу: $1',
 	'coll-is_cached' => '<ul><li>Знайдена закешована версія документу, тому перемалювання не знадобилося. <a href="$1">Примусове перемалювання.</a></li></ul>',
 	'coll-excluded-templates' => '* Шаблони в категорії [[:Категорія:$1|$1]] були виключені.',
 	'coll-blacklisted-templates' => '* Шаблони в чорному списку [[:$1]] були виключені.',
 	'coll-return_to_collection' => '<p>Назад до <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Замовити як друковану книгу',
 	'coll-book_text' => 'Отримати друковану книгу від нашого партнера:',
-	'coll-order_from_pp' => 'Замовлення книги в $1',
+	'coll-order_from_pp' => 'Попередній перегляд за допомогою $1',
 	'coll-about_pp' => 'Про $1',
 	'coll-invalid_podpartner_title' => 'Недійсний POD-партнер',
 	'coll-invalid_podpartner_msg' => "POD-партнер, що надається, недійсний. 
 Будь-ласка, зв'яжіться з вашим адміністратором MediaWiki.",
 	'coll-license' => 'Ліцензія',
 	'coll-return_to' => 'Повернення до [[:$1]]',
+	'coll-more_info' => 'Показати більше інформації',
+	'coll-hide_info' => 'Приховати інформацію',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Інформація про замовлення PediaPress',
+	'coll-suggest_title' => 'Пропоновані сторінки для вашої книги',
+	'coll-suggest_intro_text' => 'Пропозиції формуються з поточного набору вікі-сторінок у вашій книзі.
+Список оновлюється щоразу, коли ви натиснете на кнопки додавання або вилучення.',
+	'coll-suggested_articles' => 'Пропозиції',
+	'coll-suggest_reset_bans' => 'скинути',
+	'coll-suggest_reset_bans_tooltip' => 'Показати раніше вилучені пропозиції',
+	'coll-suggest_add_selected' => 'Додати вибрані сторінки',
+	'coll-suggest_ban_selected' => 'Вилучити вибрані сторінки',
+	'coll-suggest_your_book' => 'Ваша книга',
+	'coll-suggest_show' => 'показувати',
+	'coll-suggest_ban_tooltip' => 'Вилучити цю сторінку зі списку пропозицій',
+	'coll-suggest_article_ban' => 'Сторінка <strong>$1</strong> вилучена з пропозицій ($2).',
+	'coll-suggest_article_add' => 'Сторінку <strong>$1</strong> додано до вашої книги ($2).',
+	'coll-suggest_article_remove' => 'Сторінку <strong>$1</strong> вилучено з вашої книги ($2).',
+	'coll-suggest_undo_tooltip' => 'Скасувати цю дію',
+	'coll-suggest_undo' => 'скасувати',
+	'coll-load_local_book' => 'Клацніть «Гаразд», щоб продовжити роботу з вашою книгою %TITLE%, яка містить %NUMPAGES% вікі-сторінок. Клацніть «Скасувати», щоб вилучити її і почати з порожньою книгою.',
+	'right-collectionsaveasuserpage' => 'Збереження книг як сторінок користувачів',
+	'right-collectionsaveascommunitypage' => 'Збереження книг як сторінок спільноти',
 );
 
+/** Urdu (اردو) */
+$messages['ur'] = array(
+	'coll-cancel' => 'منسوخ',
+);
+
 /** Vèneto (Vèneto)
  * @author Candalua
+ * @author Nick1915
  */
 $messages['vec'] = array(
 	'coll-desc' => '[[Special:Book|Crea libri]]',
+	'coll-book_creator_intro' => "<big>Con la ''modalità libro'' se pole farse un proprio libro de pagine wiki a sièlta lìbara. El libro el se pole esportar in diversi formati (par esenpio PDF o ODF) o se pole ordinar na copia stanpà.</big>",
+	'coll-manage_your_book' => 'Gestissi el to libro',
+	'coll-book_creator_help' => 'Varda [[{{MediaWiki:Coll-helppage}}|la pagina de aiuto sui libri]] par majori informassion.',
+	'coll-start_book_creator' => 'Intaca la modalità libro',
+	'coll-book_creator_continue' => 'Và vanti a doparar el creador de libri',
+	'coll-book_creator_disable_text' => "El ''creador de libri'' el vegnarà destacà e el libro su cui te sì drio laorar el vegnarà cavà.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Testo modalità libro',
 	'coll-collection' => 'Libro',
 	'coll-collections' => 'Libri',
 	'coll-exclusion_category_title' => 'Escludi da la stanpa',
 	'coll-print_template_prefix' => 'Stanpa',
 	'coll-print_template_pattern' => '$1/Stanpa',
-	'coll-create_a_book' => 'Crea un libro',
-	'coll-add_page' => 'Zonta pàxena wiki',
-	'coll-remove_page' => 'Cava pàxena wiki',
-	'coll-add_category' => 'Zonta na categoria',
-	'coll-load_collection' => 'Carga libro',
-	'coll-show_collection' => 'Mostra libro',
-	'coll-help_collections' => 'Ajuto sui libri',
-	'coll-n_pages' => '$1 {{PLURAL:$1|pàxena|pàxene}}',
 	'coll-unknown_subpage_title' => 'Sotopàxena sconossiùa',
 	'coll-unknown_subpage_text' => 'Sta sotopàxena de [[Special:Book|Libro]] no la esiste mia',
-	'coll-printable_version_pdf' => 'Versiòn PDF',
-	'coll-download_as' => 'Descarga come $1',
+	'coll-couldnotaddarticle_title' => 'No se riesse a inserir la pagina wiki',
+	'coll-couldnotaddarticle_msg' => 'La pagina wiki no se gà podesto inserirla.',
+	'coll-couldnotremovearticle_title' => 'No se riesse a cavar la pagina wiki',
+	'coll-couldnotremovearticle_msg' => 'La pagina wiki no se gà podesto cavarla.',
 	'coll-noscript_text' => "<h1>Ghe vole el JavaScript!</h1>
 <strong>El to browser no'l suporta JavaScript opure JavaScript el xe stà disativà.
 La pàxena no la funsionrà mia coretamente se no vegnarà ativà JavaScript.</strong>",
-	'coll-intro_text' => 'Crea e gestissi le to selession personali de pàxene wiki.<br />Lèxi [[{{MediaWiki:Coll-helppage}}]] par savérghene piessè.',
-	'coll-helppage' => 'Help:Libri',
-	'coll-bookscategory' => 'Libri',
 	'coll-savedbook_template' => 'libro_salvà',
 	'coll-your_book' => 'El to libro',
 	'coll-download_title' => 'Descarga',
-	'coll-download_text' => 'Par trar xo na versiòn siegli un formado e struca el botòn.',
-	'coll-download_as_text' => 'Par descargar na version in tel formato $1 struca el boton.',
+	'coll-download_text' => 'Par trar xo el to libro siegli un formado e struca el boton.',
+	'coll-download_as_text' => 'Par descargar el to libro in tel formato $1 struca el boton.',
 	'coll-download' => 'Descarga',
 	'coll-format_label' => 'Formato:',
 	'coll-remove' => 'Cava',
@@ -7153,8 +12994,6 @@
 	'coll-drag_and_drop' => 'Strassìna e mòla col mouse par riordinar le pàxene wiki e i capitoli',
 	'coll-create_chapter' => 'Crea capitolo novo',
 	'coll-sort_alphabetically' => 'Meti in ordine alfabétego',
-	'coll-clear_collection' => 'Desvòda libro',
-	'coll-clear_collection_confirm' => 'Vuto dalbòn netar conpletamente el to libro?',
 	'coll-rename' => 'Canbia nome',
 	'coll-new_chapter' => 'Inserissi el nome del capitolo novo',
 	'coll-rename_chapter' => 'Inserissi el nome novo del capitolo',
@@ -7173,7 +13012,7 @@
 	'coll-personal_collection_label' => 'Libro personal:',
 	'coll-community_collection_label' => 'Libro de la comunità:',
 	'coll-save_collection' => 'Salva libro',
-	'coll-save_category' => 'I libri i vien salvà in te la categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Tuti quanti i libri i vien messi in te la categoria [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'La pàxena la esiste de zà.
 Vuto che ghe scriva insima?',
 	'coll-overwrite_text' => 'Na pàxena col nome [[:$1]] la esiste de zà.
@@ -7184,7 +13023,7 @@
 Vuto sorascrìvar el libro esistente, opure zontarghe el contenuto novo, opure anular el caricamento de sto libro?',
 	'coll-overwrite' => 'Sorascrivi',
 	'coll-append' => 'Zonta',
-	'coll-cancel' => 'Annulla',
+	'coll-cancel' => 'Anùla',
 	'coll-update' => 'Ajorna',
 	'coll-limit_exceeded_title' => 'Libro massa grando',
 	'coll-limit_exceeded_text' => 'El to libro el xe massa grando. No se pode zontarghe altre pàxene.',
@@ -7198,65 +13037,131 @@
 	'coll-rendering_status' => '<strong>Stato:</strong> $1',
 	'coll-rendering_article' => '(pàxena wiki: $1)',
 	'coll-rendering_page' => '(pàxena: $1)',
+	'coll-rendering_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/So' drio pareciar el testo de informassion de la pagina",
+	'coll-rendering_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/So' drio pareciar el testo de informassion de la colezion",
 	'coll-rendering_finished_title' => 'Conversion finìa',
 	'coll-rendering_finished_text' => '<strong>El documento el xe stà generà.</strong>
 <strong>[$1 Descàrghelo]</strong> sul to computer.
 
 Note:
 * Sito mia contento del risultato? Lèzi [[{{MediaWiki:Coll-helppage}}|la pàxena de ajuto su le colezion]] par saver come mejorarlo.',
+	'coll-finished_page_info_text_article' => "{{MediaWiki:Coll-helppage}}/So' drio pareciar el testo de informassion de la pagina",
+	'coll-finished_collection_info_text_article' => "{{MediaWiki:Coll-helppage}}/So' drio pareciar el testo de informassion de la colezion",
 	'coll-notfound_title' => 'Libro mia catà',
 	'coll-notfound_text' => 'No se cata da nissuna parte la pàxena del libro.',
+	'coll-download_notfound_title' => 'File mia catà',
+	'coll-download_notfound_text' => "El file che te sì drio descargar no l'esiste mia; podarìa èssar che el sìpia stà scancelà e se gàvia da creàrlo da novo.",
+	'coll-download_failed_title' => 'Eròr durante el descargamento',
+	'coll-download_failed_text' => 'Xe capità un eròr co te geri drio descargar el file: $1',
 	'coll-is_cached' => '<ul><li>In te la cache xe stà catà na version del documento, quindi no ghè stà bisogno de far la conversion. <a href="$1">Forza la ri-conversion.</a></li></ul>',
 	'coll-excluded-templates' => '* I modèi in te la categoria [[:Category:$1|$1]] i xe stà esclusi.',
 	'coll-blacklisted-templates' => '* I modèi in te la lista nera [[:$1]] i xe stà esclusi.',
 	'coll-return_to_collection' => '<p>Torna indrìo a <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Ordina come libro stanpà',
 	'coll-book_text' => 'Otien un libro stanpà da uno dei nostri soci che i te lo stanpa su richiesta:',
-	'coll-order_from_pp' => 'Ordina libro da $1',
+	'coll-order_from_pp' => 'Anteprima co $1',
 	'coll-about_pp' => 'Informassion su $1',
 	'coll-invalid_podpartner_title' => 'Partner POD mia valido',
 	'coll-invalid_podpartner_msg' => "El socio POD fornìo no'l xe mia valido. Contata el to aministrador MediaWiki.",
 	'coll-license' => 'Licensa',
 	'coll-return_to' => 'Torna indrìo a [[:$1]]',
+	'coll-more_info' => 'Mostra piasè informasion',
+	'coll-hide_info' => 'Scondi informasion',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/Informassion par ordinar con PediaPress',
+	'coll-suggest_title' => 'Pagine sugerìe par el to libro',
+	'coll-suggest_intro_text' => 'I sugerimenti i se basa su l\'insieme de pagine wiki che xe xà nel to libro.
+La lista la vien ajornà ogni olta che te struchi sui botoni "zonta" o "cava".',
+	'coll-suggested_articles' => 'Sugerimenti',
+	'coll-suggest_reset_bans' => 'reinposta',
+	'coll-suggest_reset_bans_tooltip' => 'Fame védar i sugerimenti cavà in precedensa',
+	'coll-suggest_add_selected' => 'Zonta le pagine selessionà',
+	'coll-suggest_ban_selected' => 'Cava le pagine selessionà',
+	'coll-suggest_your_book' => 'El to libro',
+	'coll-suggest_show' => 'mostra',
+	'coll-suggest_ban_tooltip' => 'Cava sta pagina de la lista dei sugerimenti',
+	'coll-suggest_article_ban' => 'La pagina <strong>$1</strong> la xe stà cavà dai sugerimenti ($2).',
+	'coll-suggest_article_add' => 'La pagina <strong>$1</strong> la xe stà zontà al to libro ($2).',
+	'coll-suggest_article_remove' => 'La pagina <strong>$1</strong> la xe stà cavà dal to libro ($2).',
+	'coll-suggest_undo_tooltip' => 'Anùla sta azion',
+	'coll-suggest_undo' => 'torna indrìo',
+	'coll-load_local_book' => 'Struca OK par continuar col to libro %TITLE% composto da %NUMPAGES% pagine wiki. Struca Anula par scancelarlo e scominsiar co un libro vodo.',
+	'right-collectionsaveasuserpage' => 'Salva na colezion come pagina utente',
+	'right-collectionsaveascommunitypage' => 'Salva na colezion come pagina comunitaria',
 );
 
+/** Veps (Vepsän kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'coll-collection' => 'Kirj',
+	'coll-collections' => 'Kirjad',
+	'coll-print_template_prefix' => 'Painda',
+	'coll-savedbook_template' => 'kirjutadud muštho kirj',
+	'coll-your_book' => 'Teiden kirj',
+	'coll-download_title' => 'Jügutoitta',
+	'coll-format_label' => 'Format:',
+	'coll-remove' => 'Čuta poiš',
+	'coll-show' => 'Ozutada',
+	'coll-move_to_top' => 'Libuda ülähäks',
+	'coll-move_up' => 'Libuda ülähäks',
+	'coll-move_down' => 'Laskta alahaks',
+	'coll-move_to_bottom' => 'Laskta alahaks',
+	'coll-title' => 'Pälkirjutez:',
+	'coll-subtitle' => 'Alapälkirjutez:',
+	'coll-contents' => 'Südäiolend',
+	'coll-create_chapter' => 'Säta pala',
+	'coll-sort_alphabetically' => 'Panda kirjamišton mödhe',
+	'coll-rename' => 'Udesnimitada',
+	'coll-new_chapter' => 'Kirjutagat uden palan nimi',
+	'coll-rename_chapter' => "Kirjutagat uz' palannimi",
+	'coll-no_such_category' => 'Ei ole mugošt kategorijad',
+	'coll-empty_collection' => "Pall'az kirj",
+	'coll-yes' => 'Ka',
+	'coll-no' => 'Ei',
+	'coll-rendering_article' => "(wikin lehtpol': $1)",
+	'coll-rendering_page' => "(lehtpol': $1)",
+	'coll-notfound_title' => 'Ei voi löuta kirjad',
+	'coll-download_notfound_title' => 'Ei voi löuta failad',
+	'coll-license' => 'Licenzii',
+	'coll-suggest_your_book' => 'Teiden kirj',
+	'coll-suggest_show' => 'ozutada',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
-	'coll-desc' => '[[Special:Book|Tạo sách vở]]',
+	'coll-desc' => '[[Special:Book|Tạo sách]]',
+	'coll-book_creator_intro' => "<big>Với ''bộ tạo sách'' bạn có thể tạo một cuốn sách bao gồm các trang wiki do bạn lựa chọn. Bạn có thể xuất cuốn sách ra nhiều định dạng khác nhau (như PDF hoặc ODF) hoặc đặt mua một bản in.</big>",
+	'coll-manage_your_book' => 'Quản lý sách',
+	'coll-book_creator_help' => 'Xem [[{{MediaWiki:Coll-helppage}}|trang trợ giúp về sách]] để biết thêm thông tin.',
+	'coll-start_book_creator' => 'Khởi động bộ tạo sách',
+	'coll-book_creator_continue' => 'Tiếp tục sử dụng bộ tạo sách',
+	'coll-book_creator_disable_text' => "''Bộ tạo sách'' sẽ bị tắt và cuốn sách mà bạn đang thực hiện sẽ bị mất.",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Văn bản chế độ tạo sách',
 	'coll-collection' => 'Sách',
-	'coll-collections' => 'Sách vở',
+	'coll-collections' => 'Sách',
 	'coll-exclusion_category_title' => 'Ẩn khi in',
 	'coll-print_template_prefix' => 'In',
-	'coll-print_template_pattern' => '$1/Print',
-	'coll-create_a_book' => 'Tạo một quyển sách',
-	'coll-add_page' => 'Thêm trang wiki',
-	'coll-remove_page' => 'Xóa trang wiki',
-	'coll-add_category' => 'Thêm thể loại',
-	'coll-load_collection' => 'Mở sách',
-	'coll-show_collection' => 'Xem sách',
-	'coll-help_collections' => 'Trợ giúp sách',
-	'coll-n_pages' => '$1 trang',
+	'coll-print_template_pattern' => '$1/In',
 	'coll-unknown_subpage_title' => 'Trang phụ không tìm được',
-	'coll-unknown_subpage_text' => 'Trang phụ của [[Special:Book|Sách]] này không tồn tại',
-	'coll-printable_version_pdf' => 'Bản PDF',
-	'coll-download_as' => 'Tải về dưới dạng $1',
-	'coll-noscript_text' => '<h1>Yêu cầu phải có JavaScript!</h1>
+	'coll-unknown_subpage_text' => 'Trang phụ này của [[Special:Book|Sách]] không tồn tại',
+	'coll-couldnotaddarticle_title' => 'Không thể thêm trang wiki',
+	'coll-couldnotaddarticle_msg' => 'Không thêm được trang wiki.',
+	'coll-couldnotremovearticle_title' => 'Không thể bỏ trang wiki',
+	'coll-couldnotremovearticle_msg' => 'Không bỏ được trang wiki.',
+	'coll-noscript_text' => '<h1>Cần phải có JavaScript!</h1>
 <strong>Trình duyệt của bạn không hỗ trợ JavaScript hoặc JavaScript đã bị tắt.
 Trang này sẽ không hoạt động đúng, trừ khi bạn kích hoạt JavaScript.</strong>',
-	'coll-intro_text' => 'Tạo và quản lý bộ sưu tập trang wiki của riêng bạn.<br/>Xem [[{{MediaWiki:Coll-helppage}}]] để biết thêm thông tin.',
-	'coll-helppage' => 'Help:Sách vở',
-	'coll-bookscategory' => 'Sách vở',
 	'coll-savedbook_template' => 'sách_đã_lưu',
 	'coll-your_book' => 'Sách của bạn',
 	'coll-download_title' => 'Tải về',
-	'coll-download_text' => 'Để tải về một phiên bản ngoại tuyến, hãy chọn định dạng rồi nhấn nút.',
-	'coll-download_as_text' => 'Để tải phiên bản ở dạng $1 hãy nhấn nút.',
+	'coll-download_text' => 'Để tải sách về, hãy chọn định dạng rồi nhấn nút.',
+	'coll-download_as_text' => 'Để tải sách về theo định dạng $1, hãy nhấn nút.',
 	'coll-download' => 'Tải về',
 	'coll-format_label' => 'Định dạng:',
-	'coll-remove' => 'Dời',
+	'coll-remove' => 'Bỏ',
 	'coll-show' => 'Hiện',
 	'coll-move_to_top' => 'Di chuyển lên đầu',
 	'coll-move_up' => 'Chuyển lên',
@@ -7268,8 +13173,6 @@
 	'coll-drag_and_drop' => 'Kéo thả để sắp xếp các trang wiki và chương sách',
 	'coll-create_chapter' => 'Tạo chương',
 	'coll-sort_alphabetically' => 'Sắp xếp theo thứ tự ABC',
-	'coll-clear_collection' => 'Xóa sách',
-	'coll-clear_collection_confirm' => 'Bạn có chắc muốn xóa hẳn sách của bạn?',
 	'coll-rename' => 'Đổi tên',
 	'coll-new_chapter' => 'Gõ vào tên chương mới',
 	'coll-rename_chapter' => 'Gõ vào tên chương mới',
@@ -7283,22 +13186,23 @@
 	'coll-empty_collection' => 'Sách trống',
 	'coll-revision' => 'Phiên bản: $1',
 	'coll-save_collection_title' => 'Lưu và chia sẻ sách của bạn',
-	'coll-save_collection_text' => 'Chọn một vị trí:',
+	'coll-save_collection_text' => 'Chọn một nơi để lưu sách:',
 	'coll-login_to_save' => 'Nếu bạn muốn lưu sách để sau này dùng, xin hãy [[Special:UserLogin|đăng nhập hoặc mở tài khoản]].',
 	'coll-personal_collection_label' => 'Sách cá nhân:',
 	'coll-community_collection_label' => 'Sách cộng đồng:',
 	'coll-save_collection' => 'Lưu sách',
-	'coll-save_category' => 'Các cuốn sách được xếp trong thể loại [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
-	'coll-overwrite_title' => 'Trang đã tồn tại. Ghi đè?',
+	'coll-save_category' => 'Mọi cuốn sách được lưu lại sẽ có mặt trong thể loại [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-overwrite_title' => 'Trang đã tồn tại.
+Ghi đè?',
 	'coll-overwrite_text' => 'Trang với tên [[:$1]] đã tồn tại.
-Bạn có muốn thay thế nó bằng tập hợp của bạn?',
+Bạn có muốn thay thế nó bằng quyển sách của bạn?',
 	'coll-yes' => 'Có',
 	'coll-no' => 'Không',
 	'coll-load_overwrite_text' => 'Bạn đã có một số trang trong sách của mình.
 Bạn có muốn ghi đè sách hiện tại, thêm nội dung mới, hay hủy việc tải sách này?',
 	'coll-overwrite' => 'Ghi đè',
 	'coll-append' => 'Thêm vào',
-	'coll-cancel' => 'Bãi bỏ',
+	'coll-cancel' => 'Hủy bỏ',
 	'coll-update' => 'Cập nhật',
 	'coll-limit_exceeded_title' => 'Sách quá lớn',
 	'coll-limit_exceeded_text' => 'Sách của bạn quá lớn.
@@ -7313,27 +13217,57 @@
 	'coll-rendering_status' => '<strong>Trạng thái:</strong> $1',
 	'coll-rendering_article' => '(trang wiki: $1)',
 	'coll-rendering_page' => '(trang: $1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin trang',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin tuyển tập',
 	'coll-rendering_finished_title' => 'Kết xuất xong',
 	'coll-rendering_finished_text' => '<strong>Xong kết xuất tập tin tài liệu.</strong>
 <strong>[$1 Tải nó về]</strong> máy tính của mình.
 
 Chú ý:
 * Không vừa lòng với bản kết xuất này? Hãy đọc [[{{MediaWiki:Coll-helppage}}|trợ giúp về tập hợp]] để biết về những cách để cải tiến nó.',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin trang',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/Kết xuất văn bản thông tin tuyển tập',
 	'coll-notfound_title' => 'Không tìm thấy sách',
 	'coll-notfound_text' => 'Không tìm thấy trang sách.',
+	'coll-download_notfound_title' => 'Không tìm thấy tập tin',
+	'coll-download_notfound_text' => 'Tập tin bạn đang cố gắng tải về không tồn tại: Có thể nó đã bị xóa và cần được khởi tạo lại.',
+	'coll-download_failed_title' => 'Có lỗi khi tải về',
+	'coll-download_failed_text' => 'Đã có lỗi xảy ra khi tải tập tin: $1',
 	'coll-is_cached' => '<ul><li>Không cần kết xuất mới vì đã tìm thấy phiên bản trong bộ nhớ. <a href="$1">Kết xuất lại.</a></li></ul>',
-	'coll-excluded-templates' => '* Các tiêu bản trong thể loại [[:Category:$1|$1]] được bỏ qua.',
-	'coll-blacklisted-templates' => '* Các tiêu bản trùng với danh sách đen [[:$1]] được bỏ qua.',
+	'coll-excluded-templates' => '* Các bản mẫu trong thể loại [[:Category:$1|$1]] được bỏ qua.',
+	'coll-blacklisted-templates' => '* Các bản mẫu trùng với danh sách đen [[:$1]] được bỏ qua.',
 	'coll-return_to_collection' => '<p>Quay trở về <a href="$1">$2</a></p>',
 	'coll-book_title' => 'Đặt sách in',
 	'coll-book_text' => 'Mua một cuốn sách in từ bên cộng tác in-theo-yêu-cầu:',
-	'coll-order_from_pp' => 'Đặt sách từ $1',
+	'coll-order_from_pp' => 'Xem trước dùng $1',
 	'coll-about_pp' => 'Giới thiệu $1',
 	'coll-invalid_podpartner_title' => 'Thành phần đi kèm POD không hợp lệ',
 	'coll-invalid_podpartner_msg' => 'Thành phần đi kèm POD đã cung cấp không hợp lệ.
 Xin hãy liên hệ với quản trị viên MediaWiki của bạn.',
 	'coll-license' => 'Giấy phép',
 	'coll-return_to' => 'Quay lại [[:$1]]',
+	'coll-more_info' => 'Xem thêm thông tin',
+	'coll-hide_info' => 'Ẩn thông tin',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress',
+	'coll-suggest_title' => 'Các trang đề nghị cho cuốn sách của bạn',
+	'coll-suggest_intro_text' => 'Những đề nghị dựa trên tập trang wiki hiện tại trong cuốn sách.
+Danh sách này được cập nhật mỗi khi bạn nhấn vào nút thêm hoặc bớt.',
+	'coll-suggested_articles' => 'Đề nghị',
+	'coll-suggest_reset_bans' => 'tái tạo',
+	'coll-suggest_reset_bans_tooltip' => 'Hiện các đề nghị đã bị xóa',
+	'coll-suggest_add_selected' => 'Thêm các trang đã chọn',
+	'coll-suggest_ban_selected' => 'Xóa các trang đã chọn',
+	'coll-suggest_your_book' => 'Cuốn sách của bạn',
+	'coll-suggest_show' => 'hiện',
+	'coll-suggest_ban_tooltip' => 'Xóa trang này ra khỏi danh sách các đề nghị',
+	'coll-suggest_article_ban' => 'Trang <strong>$1</strong> đã bị xóa ra khỏi các đề nghị ($2).',
+	'coll-suggest_article_add' => 'Trang <strong>$1</strong> đã được thêm vào cuốn sách ($2).',
+	'coll-suggest_article_remove' => 'Trang <strong>$1</strong> đã bị xóa ra khỏi cuốn sách ($2).',
+	'coll-suggest_undo_tooltip' => 'Phục hồi tác vụ này',
+	'coll-suggest_undo' => 'phục hồi',
+	'coll-load_local_book' => 'Nhấn OK để tiếp tục quyển sách %TITLE% hiện có %NUMPAGES% trang wiki. Nhấn Cancel để xóa và làm việc với quyển sách trắng.',
+	'right-collectionsaveasuserpage' => 'Lưu sách vở thành trang cá nhân',
+	'right-collectionsaveascommunitypage' => 'Lưu sách thành trang cộng đồng',
 );
 
 /** Volapük (Volapük)
@@ -7342,26 +13276,16 @@
  */
 $messages['vo'] = array(
 	'coll-desc' => '[[Special:Book|Jafolöd bukis]]',
+	'coll-manage_your_book' => 'Guvön buki olik',
 	'coll-collection' => 'Buk',
 	'coll-collections' => 'Buks',
 	'coll-exclusion_category_title' => 'Fakipön dü dabükam',
 	'coll-print_template_prefix' => 'Dabükön',
-	'coll-create_a_book' => 'Jafön buki',
-	'coll-add_page' => 'Läükön padi vüke',
-	'coll-remove_page' => 'Moükön padi se vük',
-	'coll-add_category' => 'Läükön kladi',
-	'coll-load_collection' => 'Lodön buki',
-	'coll-show_collection' => 'Jonön buki',
-	'coll-help_collections' => 'Yuf tefü buks',
-	'coll-n_pages' => '{{PLURAL:$1|pad|pads}} $1',
 	'coll-unknown_subpage_title' => 'Donapad nesevädik',
 	'coll-unknown_subpage_text' => 'Donapad at [[Special:Book|Buka]] no dabinon.',
-	'coll-printable_version_pdf' => 'fomam-PDF',
-	'coll-download_as' => 'Donükön as $1',
 	'coll-noscript_text' => '<h1>El JavaScript paflagon!</h1>
 <strong>Bevüresodanaföm olik no stüton eli JavaScript, ud el JavaScript pesekurbon. Pad at no ojäfidon verätiko, if el JavaScript no ponikurbon.</strong>',
-	'coll-helppage' => 'Help:Buks',
-	'coll-bookscategory' => 'Buks',
+	'coll-savedbook_template' => 'buk_padakipöl',
 	'coll-your_book' => 'Buk olik',
 	'coll-download_title' => 'Donükön',
 	'coll-download' => 'Donükön',
@@ -7373,8 +13297,6 @@
 	'coll-contents' => 'Ninäd',
 	'coll-create_chapter' => 'Jafön kapiti',
 	'coll-sort_alphabetically' => 'Lafabön',
-	'coll-clear_collection' => 'Vagükön buki',
-	'coll-clear_collection_confirm' => 'Vilol-li jenöfo vagükön buki olik lölöfiko?',
 	'coll-rename' => 'Votanemön',
 	'coll-new_chapter' => 'Penolös nemi kapita nulik',
 	'coll-rename_chapter' => 'Penolös nemi nulik kapita',
@@ -7389,7 +13311,7 @@
 	'coll-personal_collection_label' => 'Buk privatik:',
 	'coll-community_collection_label' => 'Buk kobädik:',
 	'coll-save_collection' => 'Dakipön buki',
-	'coll-save_category' => 'Buks valik padakipons in klad: [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
+	'coll-save_category' => 'Buks padakipöls valik paläükons in klad: [[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]].',
 	'coll-overwrite_title' => 'Pad ya dabinon.
 Plaädön-li?',
 	'coll-overwrite_text' => 'Pad labü nem: [[:$1]] ya dabinon.
@@ -7409,244 +13331,477 @@
 	'coll-rendering_page' => '(pad: $1)',
 	'coll-notfound_title' => 'Buk no petuvon',
 	'coll-notfound_text' => 'No eplöpos ad tuvön bukapadi.',
+	'coll-download_notfound_title' => 'Ragiv no petuvon',
 	'coll-excluded-templates' => '* Samafomots in klad: [[:Category:$1|$1]] pefakipons.',
 	'coll-blacklisted-templates' => '* Samafomots blägaliseda: [[:$1]] pefakipons.',
 	'coll-about_pp' => 'Tefü $1',
 	'coll-return_to' => 'Geikön lü [[:$1]]',
+	'coll-suggest_show' => 'jonön',
+	'coll-suggest_undo' => 'sädunön',
 );
 
+/** Wu (吴语) */
+$messages['wuu'] = array(
+	'coll-cancel' => '取消',
+);
+
 /** Yiddish (ייִדיש)
+ * @author Imre
  * @author פוילישער
  */
 $messages['yi'] = array(
+	'coll-collection' => 'בוך',
+	'coll-collections' => 'ביכער',
+	'coll-print_template_prefix' => 'דרוקן',
+	'coll-print_template_pattern' => '$1/דרוקן',
+	'coll-couldnotaddarticle_title' => 'קען נישט צולייגן וויקי בלאַט',
+	'coll-couldnotremovearticle_title' => 'קען נישט אַראָפנעמען וויקי בלאַט',
+	'coll-your_book' => 'אײַער בוך',
+	'coll-download_title' => 'אראָפלאָדן',
+	'coll-download' => 'אַראָפלאָדן',
+	'coll-format_label' => 'פֿאָרמאַט:',
+	'coll-remove' => 'אַראָפּנעמען',
+	'coll-show' => 'ווײַז',
+	'coll-title' => 'טיטל:',
+	'coll-contents' => 'אינהאַלט',
+	'coll-empty_collection' => 'ליידיג בוך',
+	'coll-revision' => 'רעוויזיע: $1',
+	'coll-yes' => 'יא',
+	'coll-no' => 'ניין',
+	'coll-cancel' => 'מבטל זײַן',
 	'coll-update' => 'דערהײַנטיקן',
 	'coll-rendering_status' => '<strong>סטאַטוס:</strong> $1',
 	'coll-rendering_article' => '(וויקי בלאַט: $1)',
 	'coll-rendering_page' => '(בלאַט: $1)',
+	'coll-return_to_collection' => '<p>צוריק צו <a href="$1">$2</a></p>',
+	'coll-about_pp' => 'וועגן $1',
+	'coll-license' => 'ליצענץ',
+	'coll-return_to' => 'צוריק צו [[:$1]]',
+	'coll-suggest_reset_bans' => 'צוריקשטעלן',
+	'coll-suggest_show' => 'ווײַזן',
+	'coll-suggest_undo' => 'אַנולירן',
 );
 
-/** Cantonese (‪廣東話‬)
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'coll-desc' => '[[Special:Book|Dá àwọn ìwé]]',
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/Lẹ́tà ọ̀rọ̀ olùdá ìwé',
+	'coll-collection' => 'Ìwé',
+	'coll-collections' => 'Àwọn ìwé',
+	'coll-print_template_prefix' => 'Ìtẹ́síìwé',
+	'coll-print_template_pattern' => '$1/Ìtẹ́síìwé',
+	'coll-your_book' => 'Ìwé yín',
+	'coll-title' => 'Àkọlé:',
+	'coll-subtitle' => 'Àkọléabẹ́:',
+	'coll-contents' => 'Àwọn àkóónú',
+	'coll-create_chapter' => 'Dá orí ìwé',
+	'coll-sort_alphabetically' => 'Títò bi ABD',
+	'coll-rename' => 'Àtúnṣọlọ́rúkọ',
+	'coll-yes' => 'Bẹ́ẹ̀ni',
+	'coll-no' => 'Bẹ́ẹ̀kọ́',
+	'coll-cancel' => 'Fagilé',
+	'coll-about_pp' => 'Nípa $1',
+	'coll-return_to' => 'Padà sí [[:$1]]',
+);
+
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
-	'coll-desc'                       => '[[Special:Book|整書]]',
-	'coll-collection'                 => '書',
-	'coll-collections'                => '書',
-	'coll-exclusion_category_title'   => '響打印版度排除',
-	'coll-print_template_prefix'      => '打印',
-	'coll-print_template_pattern'     => '$1/打印',
-	'coll-create_a_book'              => '整一本書',
-	'coll-add_page'                   => '加入wiki版',
-	'coll-remove_page'                => '拎走wiki版',
-	'coll-add_category'               => '加分類',
-	'coll-load_collection'            => '載入書',
-	'coll-show_collection'            => '顯示書',
-	'coll-help_collections'           => '書幫手',
-	'coll-n_pages'                    => '$1版',
-	'coll-unknown_subpage_title'      => '未知嘅細頁',
-	'coll-unknown_subpage_text'       => '呢本[[Special:Book|Book]]書嘅細頁唔存在',
-	'coll-printable_version_pdf'      => 'PDF版',
-	'coll-download_as'                => '下載做$1',
-	'coll-noscript_text'              => '<h1>需要JavaScript!</h1>
+	'coll-desc' => '[[Special:Book|整書]]',
+	'coll-collection' => '書',
+	'coll-collections' => '書',
+	'coll-exclusion_category_title' => '響打印版度排除',
+	'coll-print_template_prefix' => '打印',
+	'coll-print_template_pattern' => '$1/打印',
+	'coll-unknown_subpage_title' => '未知嘅細頁',
+	'coll-unknown_subpage_text' => '呢本[[Special:Book|Book]]書嘅細頁唔存在',
+	'coll-noscript_text' => '<h1>需要JavaScript!</h1>
 <strong>你嘅瀏覽器唔支援JavaScript或者JavaScript閂咗。
 呢一版唔會正常噉運行,除非開咗JavaScript。</strong>',
-	'coll-intro_text'                 => "開同埋管理響wiki版度你嘅個人選擇。<br />睇[[{{MediaWiki:Coll-helppage}}]]有更多嘅資料。",
-	'coll-helppage'                   => 'Help:書',
-	'coll-bookscategory'              => '書',
-	'coll-savedbook_template'         => '保存咗嘅書',
-	'coll-your_book'                  => '你嘅書',
-	'coll-download_title'             => '下載',
-	'coll-download_text'              => '要下載一個版本,揀一種格式,然後再撳個掣。',
-	'coll-download_as_text'           => '要下載做$1格式,撳個掣。',
-	'coll-download'                   => '下載',
-	'coll-format_label'               => '格式:',
-	'coll-remove'                     => '拎走',
-	'coll-show'                       => '顯示',
-	'coll-move_to_top'                => '移到最頂',
-	'coll-move_up'                    => '移上',
-	'coll-move_down'                  => '移落',
-	'coll-move_to_bottom'             => '移到最底',
-	'coll-title'                      => '標題:',
-	'coll-subtitle'                   => '細標題:',
-	'coll-contents'                   => '內容',
-	'coll-drag_and_drop'              => '用拖放去重排wiki版同章',
-	'coll-create_chapter'             => '開章',
-	'coll-sort_alphabetically'        => '按字母排',
-	'coll-clear_collection'           => '清書',
-	'coll-clear_collection_confirm'   => '你係咪真係想完全噉清晒你本書?',
-	'coll-rename'                     => '改名',
-	'coll-new_chapter'                => '輸入新章嘅名',
-	'coll-rename_chapter'             => '輸入章嘅名',
-	'coll-no_such_category'           => '無呢個分類',
-	'coll-notitle_title'              => '唔可以拎到頁標題',
-	'coll-notitle_title'              => '唔能夠決定嗰版嘅標題。',
-	'coll-post_failed_title'          => 'POST請求失敗',
-	'coll-post_failed_msg'            => 'POST請求 $1 失敗 ($2)。',
-	'coll-mwserve_failed_title'       => '生成伺服器錯誤',
-	'coll-mwserve_failed_msg'         => '生成伺服器發生錯誤: <nowiki>$1</nowiki>',
-	'coll-error_reponse'              => '伺服器回應錯誤',
-	'coll-empty_collection'           => '空書',
-	'coll-revision'                   => '修訂: $1',
-	'coll-save_collection_title'      => '保存同分享你嘅書',
-	'coll-save_collection_text'       => '揀你本書嘅保存位置:',
-	'coll-login_to_save'              => '如果你想保存以供之後使用,請[[Special:UserLogin|登入或開個新戶口]]。',
-	'coll-personal_collection_label'  => '個人書:',
+	'coll-savedbook_template' => '保存咗嘅書',
+	'coll-your_book' => '你嘅書',
+	'coll-download_title' => '下載',
+	'coll-download_text' => '要下載一個版本,揀一種格式,然後再撳個掣。',
+	'coll-download_as_text' => '要下載做$1格式,撳個掣。',
+	'coll-download' => '下載',
+	'coll-format_label' => '格式:',
+	'coll-remove' => '拎走',
+	'coll-show' => '顯示',
+	'coll-move_to_top' => '移到最頂',
+	'coll-move_up' => '移上',
+	'coll-move_down' => '移落',
+	'coll-move_to_bottom' => '移到最底',
+	'coll-title' => '標題:',
+	'coll-subtitle' => '細標題:',
+	'coll-contents' => '內容',
+	'coll-drag_and_drop' => '用拖放去重排wiki版同章',
+	'coll-create_chapter' => '開章',
+	'coll-sort_alphabetically' => '按字母排',
+	'coll-rename' => '改名',
+	'coll-new_chapter' => '輸入新章嘅名',
+	'coll-rename_chapter' => '輸入章嘅名',
+	'coll-no_such_category' => '無呢個分類',
+	'coll-notitle_title' => '唔能夠決定嗰版嘅標題。',
+	'coll-post_failed_title' => 'POST請求失敗',
+	'coll-post_failed_msg' => 'POST請求 $1 失敗 ($2)。',
+	'coll-mwserve_failed_title' => '生成伺服器錯誤',
+	'coll-mwserve_failed_msg' => '生成伺服器發生錯誤: <nowiki>$1</nowiki>',
+	'coll-error_reponse' => '伺服器回應錯誤',
+	'coll-empty_collection' => '空書',
+	'coll-revision' => '修訂: $1',
+	'coll-save_collection_title' => '保存同分享你嘅書',
+	'coll-save_collection_text' => '揀你本書嘅保存位置:',
+	'coll-login_to_save' => '如果你想保存以供之後使用,請[[Special:UserLogin|登入或開個新戶口]]。',
+	'coll-personal_collection_label' => '個人書:',
 	'coll-community_collection_label' => '社群書:',
-	'coll-save_collection'            => '存書',
-	'coll-save_category'              => '全部書保存咗到[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]分類度。',
-	'coll-overwrite_title'            => '版已經存在。
+	'coll-save_collection' => '存書',
+	'coll-save_category' => '全部書保存咗到[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]分類度。',
+	'coll-overwrite_title' => '版已經存在。
 覆蓋?',
-	'coll-overwrite_text'             => '用[[:$1]]名嘅版已經存在。
+	'coll-overwrite_text' => '用[[:$1]]名嘅版已經存在。
 你係咪想用你本書換咗佢?',
-	'coll-yes'                        => '係',
-	'coll-no'                         => '唔係',
-	'coll-load_overwrite_text'        => '響你本書度已經有一啲版。
+	'coll-yes' => '係',
+	'coll-no' => '唔係',
+	'coll-load_overwrite_text' => '響你本書度已經有一啲版。
 你係咪想覆蓋你現有嘅書,加插新內容,或者係取消載入呢本書?',
-	'coll-overwrite'                  => '覆蓋',
-	'coll-append'                     => '加插',
-	'coll-cancel'                     => '取消',
-	'coll-update'                     => '更新',
-	'coll-limit_exceeded_title'       => '書太大',
-	'coll-limit_exceeded_text'        => '你本書太大。
+	'coll-overwrite' => '覆蓋',
+	'coll-append' => '加插',
+	'coll-cancel' => '取消',
+	'coll-update' => '更新',
+	'coll-limit_exceeded_title' => '書太大',
+	'coll-limit_exceeded_text' => '你本書太大。
 無新版加入。',
-	'coll-rendering_title'            => '生成緊',
-	'coll-rendering_text'             => "<p><strong>響文件生成緊嗰陣請等一陣。</strong></p>
+	'coll-rendering_title' => '生成緊',
+	'coll-rendering_text' => '<p><strong>響文件生成緊嗰陣請等一陣。</strong></p>
 
-<p><strong>進度:</strong> <span id=\"renderingProgress\">$1</span>% <span id=\"renderingStatus\">$2</span></p>
+<p><strong>進度:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
 
 <p>呢一版應該會響每幾秒度自動更新一次。
-如果無動作嘅話,請撳你瀏覽器嘅重載掣。</p>",
-	'coll-rendering_status'           => "<strong>進度:</strong> $1",
-	'coll-rendering_article'          => '(wiki版: $1)',
-	'coll-rendering_page'             => '(頁: $1)',
-	'coll-rendering_finished_title'   => '生成好晒',
-	'coll-rendering_finished_text'    => "<strong>個文件檔已經生成好。</strong>
+如果無動作嘅話,請撳你瀏覽器嘅重載掣。</p>',
+	'coll-rendering_status' => '<strong>進度:</strong> $1',
+	'coll-rendering_article' => '(wiki版: $1)',
+	'coll-rendering_page' => '(頁: $1)',
+	'coll-rendering_finished_title' => '生成好晒',
+	'coll-rendering_finished_text' => '<strong>個文件檔已經生成好。</strong>
 <strong>[$1 下載個檔案]</strong>到你嘅電腦。
 
 留意:
-* 對個輸出唔滿意?睇[[{{MediaWiki:Coll-helppage}}|書幫手版]]去改善佢。",
-	'coll-notfound_title'             => '搵唔到書',
-	'coll-notfound_text'              => '搵唔到書版。',
-	'coll-is_cached'                  => '<ul><li>搵到個文件嘅快取版,唔需要重新生成過。<a href="$1">強制重新生成。</a></li></ul>',
-	'coll-excluded-templates'         => '* 響[[:Category:$1|$1]]分類上面嘅模已經排除。',
-	'coll-blacklisted-templates'      => '* 響[[:$1]]黑名單上面嘅嘢已經排除。',
-	'coll-return_to_collection'       => '<p>返去<a href="$1">$2</a></p>',
-	'coll-book_title'                 => '柯打一本印刷書',
-	'coll-book_text'                  => '響印刷需求拍擋拎一本印刷書:',
-	'coll-order_from_pp'              => '響$1柯打書',
-	'coll-about_pp'                   => '關於$1',
-	'coll-invalid_podpartner_title'   => '無效嘅POD拍擋',
-	'coll-invalid_podpartner_msg'     => '提供嘅POD拍擋無效。
+* 對個輸出唔滿意?睇[[{{MediaWiki:Coll-helppage}}|書幫手版]]去改善佢。',
+	'coll-notfound_title' => '搵唔到書',
+	'coll-notfound_text' => '搵唔到書版。',
+	'coll-is_cached' => '<ul><li>搵到個文件嘅快取版,唔需要重新生成過。<a href="$1">強制重新生成。</a></li></ul>',
+	'coll-excluded-templates' => '* 響[[:Category:$1|$1]]分類上面嘅模已經排除。',
+	'coll-blacklisted-templates' => '* 響[[:$1]]黑名單上面嘅嘢已經排除。',
+	'coll-return_to_collection' => '<p>返去<a href="$1">$2</a></p>',
+	'coll-book_title' => '柯打一本印刷書',
+	'coll-book_text' => '響印刷需求拍擋拎一本印刷書:',
+	'coll-order_from_pp' => '響$1柯打書',
+	'coll-about_pp' => '關於$1',
+	'coll-invalid_podpartner_title' => '無效嘅POD拍擋',
+	'coll-invalid_podpartner_msg' => '提供嘅POD拍擋無效。
 請聯絡你嘅MediaWiki管理員。',
-	'coll-license'                    => '牌照',
-	'coll-return_to'                  => "返去[[:$1]]",
+	'coll-license' => '牌照',
+	'coll-return_to' => '返去[[:$1]]',
 );
 
 /** Simplified Chinese (‪中文(简体)‬)
+ * @author Bencmq
+ * @author Chenxiaoqino
  * @author Chenzw
+ * @author Hydra
+ * @author Liangent
+ * @author PhiLiP
  * @author Wmr89502270
+ * @author Xiaomingyan
  */
 $messages['zh-hans'] = array(
 	'coll-desc' => '[[Special:Book|创建图书]]',
+	'coll-book_creator_intro' => "<big>使用''图书创建器'',你可以创建包含你选择的wiki页面的图书。你可以以不同格式(如PDF、ODF)导出你的图书或订购印刷图书。</big>",
+	'coll-manage_your_book' => '管理你的图书',
+	'coll-book_creator_help' => '请见[[{{MediaWiki:Coll-helppage}}|图书帮助页面]]获取更多信息。',
+	'coll-start_book_creator' => '启用图书创建器',
+	'coll-book_creator_continue' => '继续使用图书创建器',
+	'coll-book_creator_disable_text' => "''图书创建器''将被停用,你正在创建的图书将被删除。",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/图书创建器文字',
 	'coll-collection' => '图书',
 	'coll-collections' => '图书',
-	'coll-exclusion_category_title' => '在打印中排除',
+	'coll-exclusion_category_title' => '打印时排除',
 	'coll-print_template_prefix' => '打印',
-	'coll-create_a_book' => '创建一本图书',
-	'coll-add_page' => '添加页面',
-	'coll-remove_page' => '移除维基页面',
-	'coll-add_category' => '添加分类',
-	'coll-load_collection' => '载入图书',
-	'coll-show_collection' => '显示书',
-	'coll-help_collections' => '图书帮助',
-	'coll-n_pages' => '$1 {{PLURAL:$1|page|pages}}',
-	'coll-unknown_subpage_title' => '未知子页',
-	'coll-unknown_subpage_text' => '这个[[Special:Book|图书]]的子页面不存在',
-	'coll-printable_version_pdf' => 'PDF 版本',
-	'coll-download_as' => '下载为 $1',
-	'coll-noscript_text' => '<h1>JavaScript是必需的!</h1>
-<strong>您的浏览器不支持JavaScript或JavaScript未开启。
-
-除非您开启JavaScript,此页无法工作。</strong>',
-	'coll-intro_text' => '创建和管理您自己的维基页面。<br />查看[[{{MediaWiki:Coll-helppage}}]]以获知更多信息。',
-	'coll-helppage' => 'Help:图书',
-	'coll-bookscategory' => '图书',
-	'coll-savedbook_template' => '已保存的书',
-	'coll-your_book' => '您的书籍',
+	'coll-print_template_pattern' => '$1/打印',
+	'coll-unknown_subpage_title' => '未知子页面',
+	'coll-unknown_subpage_text' => '[[Special:Book|图书]]的该子页面不存在',
+	'coll-couldnotaddarticle_title' => '无法添加wiki页面',
+	'coll-couldnotaddarticle_msg' => '本wiki页面无法添加。',
+	'coll-couldnotremovearticle_title' => '无法删除wiki页面',
+	'coll-couldnotremovearticle_msg' => '本wiki页面无法删除。',
+	'coll-noscript_text' => '<h1>需要JavaScript!</h1>
+<strong>你的浏览器不支持JavaScript或未启用JavaScript。
+在启用JavaScript前,本页面无法正常工作。</strong>',
+	'coll-savedbook_template' => '已保存的图书',
+	'coll-your_book' => '你的图书',
 	'coll-download_title' => '下载',
-	'coll-download_text' => '选择一种格式后点击按钮就可下载。',
-	'coll-download_as_text' => '点这个按钮下载$1格式。',
+	'coll-download_text' => '请选择格式并单击按钮以下载你的图书。',
+	'coll-download_as_text' => '请单击按钮,以$1格式下载你的图书。',
 	'coll-download' => '下载',
-	'coll-format_label' => '格式类型:',
-	'coll-remove' => '移除',
-	'coll-show' => '展开',
-	'coll-move_to_top' => '移动至顶',
+	'coll-format_label' => '格式:',
+	'coll-remove' => '删除',
+	'coll-show' => '显示',
+	'coll-move_to_top' => '移至最前',
 	'coll-move_up' => '向上移动',
 	'coll-move_down' => '向下移动',
-	'coll-move_to_bottom' => '移动到按钮',
+	'coll-move_to_bottom' => '移至最后',
 	'coll-title' => '标题:',
 	'coll-subtitle' => '副标题:',
 	'coll-contents' => '目录',
-	'coll-drag_and_drop' => '通过拖放重新排列维基页面和章节',
+	'coll-drag_and_drop' => '请用鼠标拖拽以改变wiki页面和章节的顺序',
 	'coll-create_chapter' => '创建章节',
 	'coll-sort_alphabetically' => '按字母排序',
-	'coll-clear_collection' => '清除记录',
-	'coll-rename' => '更名',
-	'coll-new_chapter' => '输入新章节的名称',
-	'coll-rename_chapter' => '输入章节的新名称',
-	'coll-no_such_category' => '无分类',
-	'coll-notitle_title' => '无法确定此页标题。',
-	'coll-post_failed_msg' => '发送到$1的请求失败($2)。',
-	'coll-error_reponse' => '服务器错误响应',
-	'coll-revision' => '修订: $1',
-	'coll-save_collection_title' => '保存和共享您的图书',
-	'coll-save_collection_text' => '选择您图书的储藏位置:',
-	'coll-login_to_save' => '如果您想让保存的图书为以后所用,请[[Special:UserLogin|登录或创建账户]]。',
+	'coll-rename' => '重命名',
+	'coll-new_chapter' => '请输入新章节的名称',
+	'coll-rename_chapter' => '请输入章节的新名称',
+	'coll-no_such_category' => '无本分类',
+	'coll-notitle_title' => '无法确定该页标题。',
+	'coll-post_failed_title' => '发送POST请求失败',
+	'coll-post_failed_msg' => '发送至$1的POST请求失败($2)。',
+	'coll-mwserve_failed_title' => '生成服务器出错',
+	'coll-mwserve_failed_msg' => '渲染服务器出错:<nowiki>$1</nowiki>',
+	'coll-error_reponse' => '来自服务器的错误响应',
+	'coll-empty_collection' => '空白图书',
+	'coll-revision' => '版本:$1',
+	'coll-save_collection_title' => '保存并共享你的图书',
+	'coll-save_collection_text' => '选择你的图书的保存位置:',
+	'coll-login_to_save' => '如果你想保存图书供日后使用,请[[Special:UserLogin|登录或创建账户]]。',
 	'coll-personal_collection_label' => '个人图书:',
-	'coll-community_collection_label' => '公有图书:',
+	'coll-community_collection_label' => '社区图书:',
+	'coll-save_collection' => '保存图书',
+	'coll-save_category' => '所有已保存图书将添加至[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]分类。',
+	'coll-overwrite_title' => '页面已存在。
+是否覆盖?',
+	'coll-overwrite_text' => '名为[[:$1]]的页面已存在。
+你想让你的图书替代它吗?',
 	'coll-yes' => '是',
 	'coll-no' => '否',
-	'coll-load_overwrite_text' => '您的图书中已经有一些网页。
-是否要覆盖您目前的图书,或添加新内容,或取消载入?',
-	'coll-append' => '附加',
+	'coll-load_overwrite_text' => '你的图书中已存在一些页面。
+你想要覆盖你现在的图书、增补新内容还是取消载入本图书?',
+	'coll-overwrite' => '覆盖',
+	'coll-append' => '增补',
 	'coll-cancel' => '取消',
 	'coll-update' => '更新',
-	'coll-limit_exceeded_text' => '您的图书太大。
-禁止新增更多的页面。',
-	'coll-rendering_status' => '<strong>状态:</strong> $1',
-	'coll-rendering_article' => '(维基页面:$1)',
+	'coll-limit_exceeded_title' => '图书过大',
+	'coll-limit_exceeded_text' => '你的图书过大。
+无法添加更多页面。',
+	'coll-rendering_title' => '正在生成',
+	'coll-rendering_text' => '<p><strong>请稍等,正在生成文件。</strong></p>
+
+<p><strong>进度:</strong><span id="renderingProgress">$1</span>%<span id="renderingStatus">$2</span></p>
+
+<p>本页面每隔数秒自动刷新。
+如果本页面没有响应,请点击你的浏览器的“刷新”按钮。</p>',
+	'coll-rendering_status' => '<strong>状态:</strong>$1',
+	'coll-rendering_article' => '(wiki页面:$1)',
+	'coll-rendering_page' => '(页面:$1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/生成页面信息文字',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/生成收藏信息文字',
+	'coll-rendering_finished_title' => '生成完成',
 	'coll-rendering_finished_text' => '<strong>文件已生成。</strong>
-<strong>[$1 下载]</strong>到您的电脑。
+<strong>[$1下载该文件]</strong>至你的电脑。
 
-注释:
-* 对输出效果不满意?查看[[{{MediaWiki:Coll-helppage}}|帮助]]以学习如何改善它。',
-	'coll-notfound_text' => '未找到。',
-	'coll-is_cached' => '<ul><li>一个缓存版本被发现,所以没有必要重新渲染。<a href="$1">强制重新渲染。</a></li></ul>',
-	'coll-excluded-templates' => '* [[:Category:$1|$1]]分类下的页面被排除',
+注意:
+*对输出效果不满意?请见[[{{MediaWiki:Coll-helppage}}|图书帮助页面]]以寻求改进方法。',
+	'coll-finished_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/生成页面信息文字',
+	'coll-finished_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/生成收藏信息文字',
+	'coll-notfound_title' => '未找到图书',
+	'coll-notfound_text' => '未找到图书页面。',
+	'coll-download_notfound_title' => '未找到文件',
+	'coll-download_notfound_text' => '你正在尝试下载的文件不存在:
+可能该文件已被删除,需要重新生成。',
+	'coll-download_failed_title' => '下载出错',
+	'coll-download_failed_text' => '下载该文件时出错:$1',
+	'coll-is_cached' => '<ul><li>已发现该文件的缓存版本。不需要重新生成该文件。
+<a href="$1">强制重新生成。</a></li></ul>',
+	'coll-excluded-templates' => '*已排除[[:Category:$1|$1]]分类中的页面。',
+	'coll-blacklisted-templates' => '*已排除黑名单[[:$1]]上的模板。',
 	'coll-return_to_collection' => '<p>返回到<a href="$1">$2</a></p>',
-	'coll-book_title' => '印刷成一本纸制书',
-	'coll-book_text' => '从我们的合作伙伴中获得已打印您选择的维基页面的纸质书籍:',
-	'coll-order_from_pp' => '从$1的图书订单',
+	'coll-book_title' => '订购印刷图书',
+	'coll-book_text' => '从我们的印刷合作伙伴获取印刷图书。',
+	'coll-order_from_pp' => '用$1预览',
 	'coll-about_pp' => '关于$1',
-	'coll-invalid_podpartner_msg' => '合作伙伴无效。
-请联系系统管理员。',
-	'coll-license' => '许可协议',
+	'coll-invalid_podpartner_title' => '无效的印刷合作伙伴',
+	'coll-invalid_podpartner_msg' => '提供的印刷合作伙伴无效。
+请联系你的MediaWiki管理员。',
+	'coll-license' => '授权协议',
 	'coll-return_to' => '返回到[[:$1]]',
+	'coll-more_info' => '显示更多信息',
+	'coll-hide_info' => '隐藏信息',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress订购信息',
+	'coll-suggest_title' => '你的图书的建议页面',
+	'coll-suggest_intro_text' => '建议列表基于你的图书中现有的wiki页面。
+本列表将在你单击“添加”或“删除”按钮后更新。',
+	'coll-suggested_articles' => '建议',
+	'coll-suggest_reset_bans' => '复位',
+	'coll-suggest_reset_bans_tooltip' => '显示以前删除的建议',
+	'coll-suggest_add_selected' => '添加已选择页面',
+	'coll-suggest_ban_selected' => '删除已选择页面',
+	'coll-suggest_your_book' => '你的图书',
+	'coll-suggest_show' => '显示',
+	'coll-suggest_ban_tooltip' => '从建议列表中删除本页',
+	'coll-suggest_article_ban' => '页面<strong>$1</strong>已从建议列表中删除($2)。',
+	'coll-suggest_article_add' => '页面<strong>$1</strong>已被添加至你的图书($2)。',
+	'coll-suggest_article_remove' => '页面<strong>$1</strong>已从你的图书中删除($2)。',
+	'coll-suggest_undo_tooltip' => '撤销该操作',
+	'coll-suggest_undo' => '撤销',
+	'coll-load_local_book' => '单击“确定”继续编辑你的图书%TITLE%(已包含%NUMPAGES%个wiki页面)。单击“取消”删除你的图书,生成空白图书。',
+	'right-collectionsaveasuserpage' => '保存图书为用户页面',
+	'right-collectionsaveascommunitypage' => '保存图书为社区页面',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Alexsh
+ * @author FireJackey
+ * @author Liangent
+ * @author Mark85296341
  * @author Skjackey tse
  * @author Wmr89502270
  * @author Wong128hk
  */
 $messages['zh-hant'] = array(
 	'coll-desc' => '[[Special:Book|建立圖書]]',
+	'coll-book_creator_intro' => "<big>在''圖書創建器''中,您可以建立一個包含您自己選擇之頁面的圖書。您可以將其導出成不同的格式的電子書(例如PDF或ODF)或者訂做成實體書。",
+	'coll-manage_your_book' => '管理您的圖書',
+	'coll-book_creator_help' => '請參閱[[{{MediaWiki:Coll-helppage}}|說明頁面]]以取得更多資訊。',
+	'coll-start_book_creator' => '啟動圖書創建器',
+	'coll-book_creator_continue' => '繼續使用圖書創建器',
+	'coll-book_creator_disable_text' => "''圖書創建器''將被禁用,正在建造的圖書也將被移除。",
+	'coll-book_creator_text_article' => '{{MediaWiki:Coll-helppage}}/圖書模式文字',
 	'coll-collection' => '圖書',
 	'coll-collections' => '圖書',
+	'coll-exclusion_category_title' => '在列印中排除',
+	'coll-print_template_prefix' => '列印',
+	'coll-print_template_pattern' => '$1/列印',
+	'coll-unknown_subpage_title' => '未知的子頁面',
+	'coll-unknown_subpage_text' => '這個[[Special:Book|圖書]]的子頁面不存在',
+	'coll-couldnotaddarticle_title' => '無法新增頁面',
+	'coll-couldnotaddarticle_msg' => '無法新增此頁面。',
+	'coll-couldnotremovearticle_title' => '無法刪除維基頁面',
+	'coll-couldnotremovearticle_msg' => '無法刪除此頁面。',
+	'coll-noscript_text' => '<h1>需要JavaScript! </h1>
+<strong>您的瀏覽器不支持JavaScript或JavaScript未開啟。
+
+除非啟用JavaScript,此頁面將無法正常工作。</strong>',
+	'coll-savedbook_template' => '已儲存的書籍',
+	'coll-your_book' => '您的圖籍',
+	'coll-download_title' => '下載',
+	'coll-download_text' => '選擇格式,點擊按鈕下載電子版本。',
+	'coll-download_as_text' => '點擊按鈕,以$1格式下載您的圖書。',
+	'coll-download' => '下載',
+	'coll-format_label' => '格式:',
+	'coll-remove' => '移除',
+	'coll-show' => '顯示',
+	'coll-move_to_top' => '移至最頂端',
+	'coll-move_up' => '向上移動',
+	'coll-move_down' => '向下移動',
+	'coll-move_to_bottom' => '移至最底瑞',
+	'coll-title' => '標題:',
+	'coll-subtitle' => '副標題:',
+	'coll-contents' => '目錄',
+	'coll-drag_and_drop' => '使用拖放重新排列維基的頁面和章節',
+	'coll-create_chapter' => '建立章節',
+	'coll-sort_alphabetically' => '按字母排序',
+	'coll-rename' => '重新命名',
+	'coll-new_chapter' => '輸入新章節的名稱',
+	'coll-rename_chapter' => '輸入章節的新名稱',
+	'coll-no_such_category' => '無分類',
+	'coll-notitle_title' => '無法確定此頁面的標題',
+	'coll-post_failed_title' => '訊息發送失敗',
+	'coll-post_failed_msg' => '傳送到$1的請求失敗($2)。',
+	'coll-mwserve_failed_title' => '呈現伺服器錯誤',
 	'coll-mwserve_failed_msg' => '服务器渲染错误:<nowiki>$1</nowiki>',
-	'coll-save_category' => '所有图书都保存在分类[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]中。',
+	'coll-error_reponse' => '伺服器回傳的錯誤',
+	'coll-empty_collection' => '空的圖書',
+	'coll-revision' => '修訂版本: $1',
+	'coll-save_collection_title' => '儲存和分享您的圖書',
+	'coll-save_collection_text' => '請選擇圖書的儲存位置',
+	'coll-login_to_save' => '如果您想儲存圖書以供未來使用,[[Special:UserLogin|請登入或建立帳戶]]。',
+	'coll-personal_collection_label' => '個人圖書:',
+	'coll-community_collection_label' => '公有圖書:',
+	'coll-save_collection' => '儲存圖書',
+	'coll-save_category' => '所有圖書都將在[[:Category:{{MediaWiki:Coll-bookscategory}}|{{MediaWiki:Coll-bookscategory}}]]分類中保存。',
+	'coll-overwrite_title' => '頁面已經存在。
+要覆蓋嗎?',
+	'coll-overwrite_text' => '頁面[[:$1]]已經存在。
+您要用您的圖書覆蓋嗎?',
+	'coll-yes' => '是',
+	'coll-no' => '否',
+	'coll-load_overwrite_text' => '您的書中已經有一些頁面。
+要覆蓋您目前的圖書、增加新的內容或取消載入?',
 	'coll-overwrite' => '覆寫',
+	'coll-append' => '加入',
 	'coll-cancel' => '取消',
+	'coll-update' => '更新',
+	'coll-limit_exceeded_title' => '圖書過大',
+	'coll-limit_exceeded_text' => '您的圖書太大。
+無法再增加更多的頁面。',
+	'coll-rendering_title' => '呈現中',
+	'coll-rendering_text' => '<p><strong>請稍候,正在產生文件。</strong></p>
+
+<p><strong> 進度:</strong> <span id="renderingProgress">$1</span>% <span id="renderingStatus">$2</span></p>
+
+<p>本頁面將在數秒後自動更新。
+如果沒有動作,請按下瀏覽器的「重新整理」按鈕。</p>',
+	'coll-rendering_status' => '<strong>狀態:</strong> $1',
+	'coll-rendering_article' => '(維基頁面: $1)',
+	'coll-rendering_page' => '(頁面:$1)',
+	'coll-rendering_page_info_text_article' => '{{MediaWiki:Coll-helppage}}/渲染收集信息文字',
+	'coll-rendering_collection_info_text_article' => '{{MediaWiki:Coll-helppage}}/渲染收集信息文字',
+	'coll-rendering_finished_title' => '已呈現完成',
+	'coll-rendering_finished_text' => '<strong>文件已經產生。</strong>
+<strong>[$1 下載文件]</strong>至您的電腦。
+
+註釋:
+* 不滿意輸出成果?請參閱[[{{MediaWiki:Coll-helppage}}|幫助頁面]]以暸解如何改善它。',
+	'coll-finished_page_info_text_article' => ' {{MediaWiki:Coll-helppage}}/渲染收集信息文字',
+	'coll-finished_collection_info_text_article' => ' {{MediaWiki:Coll-helppage}}/渲染收集信息文字',
+	'coll-notfound_title' => '找不到圖書',
+	'coll-notfound_text' => '未找到。',
+	'coll-download_notfound_title' => '找不到檔案',
+	'coll-download_notfound_text' => '您正在嘗試下載的文件不存在:可能已被刪除並需要重新產生文件',
+	'coll-download_failed_title' => '下載發生錯誤',
+	'coll-download_failed_text' => '下載文件中出現錯誤:$1',
+	'coll-is_cached' => '<ul><li>已找到文件的暫存版本,沒有重新呈現的必要。<a href="$1">強制重新呈現。</a></li></ul>',
+	'coll-excluded-templates' => '* [[:Category:$1|$1]]分類下的頁面被排除。',
 	'coll-blacklisted-templates' => '* 由于模板[[:$1]]在黑名单之中所以它被排除。',
+	'coll-return_to_collection' => '<p>回到<a href="$1">$2</a></p>',
+	'coll-book_title' => '訂購此書的紙本書',
+	'coll-book_text' => '從我們的合作夥伴中取得圖書的實體本:',
+	'coll-order_from_pp' => '在$1中預覽',
+	'coll-about_pp' => '關於 $1',
+	'coll-invalid_podpartner_title' => '不正確的POD合作伙伴',
+	'coll-invalid_podpartner_msg' => '提供的合作伙伴不正確,請聯絡您的MediaWiki管理員。',
+	'coll-license' => '許可協議',
+	'coll-return_to' => '回到[[:$1]]',
+	'coll-more_info' => '顯示更多資訊',
+	'coll-hide_info' => '隱藏訊息',
+	'coll-order_info_article' => '{{MediaWiki:Coll-helppage}}/PediaPress 的訂購資訊',
+	'coll-suggest_title' => '您圖書的建議頁面',
+	'coll-suggest_intro_text' => '建議基於最近您圖書頁面的設置。',
+	'coll-suggested_articles' => '建議',
+	'coll-suggest_reset_bans' => '重置',
+	'coll-suggest_reset_bans_tooltip' => '顯示上次移除的建議',
+	'coll-suggest_add_selected' => '加入已選擇的頁面',
+	'coll-suggest_ban_selected' => '移除已選擇的頁面',
+	'coll-suggest_your_book' => '你的書',
+	'coll-suggest_show' => '顯示',
+	'coll-suggest_ban_tooltip' => '從建議中移除此頁',
+	'coll-suggest_article_ban' => '頁面 <strong>$1</strong> 已經從建議 $2 中移除。',
+	'coll-suggest_article_add' => '頁面 <strong>$1</strong> 已經被加入您的圖書($2)。',
+	'coll-suggest_article_remove' => '頁面 <strong>$1</strong> 已經從您的圖書中移除($2)。',
+	'coll-suggest_undo_tooltip' => '撤銷這個動作',
+	'coll-suggest_undo' => '撤銷',
+	'coll-load_local_book' => '點擊OK來繼續操作你的書籍《%TITLE%》(共%NUMPAGES%頁)。 點擊Cancel清空並從零開始。',
+	'right-collectionsaveasuserpage' => '在使用者頁面儲存此書',
+	'right-collectionsaveascommunitypage' => '在社群頁面儲存此書',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,9 +1,9 @@
 <?php
 
-/*
+/**
  * Collection Extension for MediaWiki
  *
- * Copyright (C) 2008, PediaPress GmbH
+ * Copyright (C) PediaPress GmbH
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,11 +17,10 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  */
 
-
 # Not a valid entry point, skip unless MEDIAWIKI is defined
 if ( !defined( 'MEDIAWIKI' ) ) {
 	echo <<<EOT
@@ -31,16 +30,17 @@
 	exit( 1 );
 }
 
-$dir = dirname(__FILE__) . '/';
+$dir = dirname( __FILE__ ) . '/';
 
-require_once( $dir . 'Version.php' );
+# Extension version
+$wgCollectionVersion = "1.5";
 
 # ==============================================================================
 
 # Configuration:
 
 /** Bump the version number every time you change any of the JavaScript files */
-$wgCollectionStyleVersion = 2;
+$wgCollectionStyleVersion = 8;
 
 /** URL of mw-serve render server */
 $wgCollectionMWServeURL = 'http://tools.pediapress.com/mw-serve/';
@@ -51,6 +51,10 @@
 /** PEM-encoded SSL certificate for the mw-serve render server to pass to CURL */
 $wgCollectionMWServeCert = null;
 
+/** if not null, treat this string as hierarchy delimiter in page titles,
+ * i.e. support subpages */
+$wgCollectionHierarchyDelimiter = null;
+
 /** Array of namespaces that can be added to a collection */
 $wgCollectionArticleNamespaces = array(
 	NS_MAIN,
@@ -82,52 +86,109 @@
 $wgCollectionMaxArticles = 500;
 
 /** Name of license */
-$wgLicenseName = null;
+$wgCollectionLicenseName = null;
 
 /** HTTP(s) URL pointing to license in wikitext format: */
-$wgLicenseURL = null;
+$wgCollectionLicenseURL = null;
 
 /** List of available download formats,
-    as mapping of mwlib writer to format name */
+		as mapping of mwlib writer to format name */
 $wgCollectionFormats = array(
 	'rl' => 'PDF',
+	#'zeno' => 'ZENO',
+	#'okawix_zeno' => 'Okawix (ZENO + search engine)',
 );
 
+/** For formats which rendering depends on an external server
+*/
+$wgCollectionFormatToServeURL = array(
+	'zeno'=>'http://www.okawix.com/collections/render.php',
+	'okawix_zeno'=>'http://www.okawix.com/collections/render.php',
+);
+
+$wgCollectionContentTypeToFilename = array(
+	'application/pdf' => 'collection.pdf',
+	'application/vnd.oasis.opendocument.text' => 'collection.odt',
+);
+
+$wgCollectionPortletFormats = array( 'rl' );
+
 $wgCollectionPortletForLoggedInUsersOnly = false;
 
+$wgCollectionMaxSuggestions = 10;
+
+$wgCollectionSuggestCheapWeightThreshhold = 50;
+
+$wgCollectionSuggestThreshhold = 100;
+
 # ==============================================================================
 
-
 $wgExtensionCredits['specialpage'][] = array(
+	'path' => __FILE__,
 	'name' => 'Collection',
 	'version' => $wgCollectionVersion,
-	'author' => 'PediaPress GmbH',
-	'svn-date' => '$LastChangedDate: 2009-03-15 08:37:40 +0100 (Sun, 15 Mar 2009) $',
-	'svn-revision' => '$LastChangedRevision: 48415 $',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:Collection',
-	'description' => 'Create books',
+	'author' => array( 'PediaPress GmbH', 'Siebrand Mazeland' ),
+	'url' => 'https://www.mediawiki.org/wiki/Extension:Collection',
 	'descriptionmsg' => 'coll-desc',
 );
 
 # register Special:Book:
-
-$wgAutoloadClasses['Collection'] = $dir . 'Collection.body.php';
+$wgAutoloadClasses['SpecialCollection'] = $dir . 'Collection.body.php';
+$wgAutoloadClasses['CollectionSession'] = $dir . 'Collection.session.php';
+$wgAutoloadClasses['CollectionHooks'] = $dir . 'Collection.hooks.php';
+$wgAutoloadClasses['CollectionSuggest'] = $dir . 'Collection.suggest.php';
 $wgAutoloadClasses['CollectionPageTemplate'] = $dir . 'Collection.templates.php';
 $wgAutoloadClasses['CollectionListTemplate'] = $dir . 'Collection.templates.php';
 $wgAutoloadClasses['CollectionLoadOverwriteTemplate'] = $dir . 'Collection.templates.php';
 $wgAutoloadClasses['CollectionSaveOverwriteTemplate'] = $dir . 'Collection.templates.php';
 $wgAutoloadClasses['CollectionRenderingTemplate'] = $dir . 'Collection.templates.php';
 $wgAutoloadClasses['CollectionFinishedTemplate'] = $dir . 'Collection.templates.php';
-$wgExtensionMessagesFiles['Collection'] = $dir . 'Collection.i18n.php';
-$wgExtensionAliasesFiles['Collection'] = $dir . 'Collection.alias.php';
-$wgSpecialPages['Book'] = 'Collection';
+$wgAutoloadClasses['CollectionSuggestTemplate'] = $dir . 'Collection.templates.php';
+$wgExtensionMessagesFiles['CollectionCore'] = $dir . 'CollectionCore.i18n.php'; // Only contains essential messages outside the special page
+$wgExtensionMessagesFiles['Collection'] = $dir . 'Collection.i18n.php'; // Contains all messages used on special page
+$wgExtensionMessagesFiles['CollectionAlias'] = $dir . 'Collection.alias.php';
+$wgSpecialPages['Book'] = 'SpecialCollection';
 $wgSpecialPageGroups['Book'] = 'pagetools';
 
-$wgHooks['SkinTemplateBuildNavUrlsNav_urlsAfterPermalink'][] = 'Collection::createNavURLs';
-$wgHooks['MonoBookTemplateToolboxEnd'][] = 'Collection::insertMonoBookToolboxLink';
-$wgHooks['SkinBuildSidebar'][] = 'Collection::buildSidebar';
-$wgHooks['OutputPageCheckLastModified'][] = 'Collection::checkLastModified';
+$wgHooks['SkinTemplateBuildNavUrlsNav_urlsAfterPermalink'][] = 'CollectionHooks::buildNavUrls';
+$wgHooks['SkinBuildSidebar'][] = 'CollectionHooks::buildSidebar';
+$wgHooks['SiteNoticeAfter'][] = 'CollectionHooks::siteNoticeAfter';
+$wgHooks['OutputPageCheckLastModified'][] = 'CollectionHooks::checkLastModified';
+$wgHooks['ResourceLoaderGetConfigVars'][] = 'CollectionHooks::resourceLoaderGetConfigVars';
 
+$wgAvailableRights[] = 'collectionsaveasuserpage';
+$wgAvailableRights[] = 'collectionsaveascommunitypage';
+
+$collResourceTemplate = array(
+	'localBasePath' => "$dir/js",
+	'remoteExtPath' => 'Collection/js'
+);
+
+$wgResourceModules += array(
+	'ext.collection.jquery.jstorage' => $collResourceTemplate + array(
+		'scripts' => 'jstorage.js',
+		'dependencies' => 'jquery.json'
+	),
+	'ext.collection.suggest' => $collResourceTemplate + array(
+		'scripts' => 'suggest.js',
+		'dependencies' => 'ext.collection.bookcreator'
+	),
+	'ext.collection' => $collResourceTemplate + array(
+		'scripts' => 'collection.js',
+		'dependencies' => array( 'ext.collection.bookcreator', 'jquery.ui.sortable' ),
+	),
+	'ext.collection.bookcreator' => $collResourceTemplate + array(
+		'scripts' => 'bookcreator.js',
+		'styles' => 'bookcreator.css',
+		'dependencies' => 'ext.collection.jquery.jstorage'
+	),
+	'ext.collection.checkLoadFromLocalStorage' => $collResourceTemplate + array(
+		'scripts' => 'check_load_from_localstorage.js',
+		'styles' => 'bookcreator.css',
+		'dependencies' => 'ext.collection.jquery.jstorage'
+	)
+);
+
 # register global Ajax functions:
 
 function wfAjaxGetCollection() {
@@ -138,104 +199,145 @@
 		$collection = array();
 	}
 	$r = new AjaxResponse( $json->encode( array( 'collection' => $collection ) ) );
-  $r->setContentType( 'application/json' );
-  return $r;
+	$r->setContentType( 'application/json' );
+	return $r;
 }
 
 $wgAjaxExportList[] = 'wfAjaxGetCollection';
 
-function wfAjaxPostCollection( $collection='' ) {
+function wfAjaxPostCollection( $collection = '', $redirect = '' ) {
 	$json = new Services_JSON( SERVICES_JSON_LOOSE_TYPE );
-	if( session_id() == '' ) {
+	if ( session_id() == '' ) {
 		wfSetupSession();
 	}
 	$collection = $json->decode( $collection );
+	$collection['enabled'] = true;
 	$_SESSION['wsCollection'] = $collection;
-	$r = new AjaxResponse( $json->encode( array( 'collection' => $collection ) ) );
-  $r->setContentType( 'application/json' );
-  return $r;
+	$r = new AjaxResponse();
+	if ( $redirect ) {
+		$title = Title::newFromText( $redirect );
+		$redirecturl = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
+		$r->setResponseCode( 302 );
+		header( 'Location: ' . $redirecturl );
+	} else {
+		$title = SpecialPage::getTitleFor( 'Book' );
+		$redirecturl = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
+		$r->setContentType( 'application/json' );
+		$r->addText( $json->encode( array( 'redirect_url' => $redirecturl ) ) );
+	}
+	return $r;
 }
 
 $wgAjaxExportList[] = 'wfAjaxPostCollection';
 
-function wfAjaxGetMWServeStatus( $collection_id='', $writer='rl' ) {
+function wfAjaxGetMWServeStatus( $collection_id = '', $writer = 'rl' ) {
 	$json = new Services_JSON();
-	$result = Collection::mwServeCommand( 'render_status', array(
+	$result = SpecialCollection::mwServeCommand( 'render_status', array(
 		'collection_id' => $collection_id,
 		'writer' => $writer
 	) );
-  $r = new AjaxResponse( $json->encode( $result ) );
-  $r->setContentType( 'application/json' );
-  return $r;
+	if ( isset( $result['status']['progress'] ) ) {
+		$result['status']['progress'] = number_format( $result['status']['progress'], 2, '.', '' );
+	}
+	$r = new AjaxResponse( $json->encode( $result ) );
+	$r->setContentType( 'application/json' );
+	return $r;
 }
 
 $wgAjaxExportList[] = 'wfAjaxGetMWServeStatus';
 
-function wfAjaxCollectionAddArticle( $namespace=0, $title='', $oldid='' ) {
-	Collection::addArticleFromName( $namespace, $title, $oldid );
-	return '';
+function wfAjaxCollectionAddArticle( $namespace = 0, $title = '', $oldid = '' ) {
+	SpecialCollection::addArticleFromName( $namespace, $title, $oldid );
+	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionAddArticle';
 
-function wfAjaxCollectionRemoveArticle( $namespace=0, $title='', $oldid='' ) {
-	Collection::removeArticleFromName( $namespace, $title, $oldid );
-	return '';
+function wfAjaxCollectionRemoveArticle( $namespace = 0, $title = '', $oldid = '' ) {
+	SpecialCollection::removeArticleFromName( $namespace, $title, $oldid );
+	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionRemoveArticle';
 
-function wfAjaxCollectionAddCategory( $title='' ) {
-	Collection::addCategoryFromName( $title );
-	return '';
+function wfAjaxCollectionAddCategory( $title = '' ) {
+	SpecialCollection::addCategoryFromName( $title );
+	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionAddCategory';
 
-function wfAjaxCollectionGetPortlet( $ajaxHint='' ) {
-	return Collection::getPortlet( $ajaxHint );
+function wfAjaxCollectionGetBookCreatorBoxContent( $ajaxHint = '', $oldid = null, $pageName = null ) {
+	if ( !is_null( $oldid ) ) {
+		$oldid = intval( $oldid );
+	}
+
+	$title = null;
+	if ( !is_null( $pageName ) ) {
+		$title = Title::newFromText( $pageName );
+	}
+	if ( is_null( $title ) ) {
+		$title = Title::newMainPage();
+	}
+
+	$html = CollectionHooks::getBookCreatorBoxContent( $title, $ajaxHint, $oldid );
+
+	$json = new Services_JSON();
+	$result = array();
+	$result['html'] = $html;
+	$r = new AjaxResponse( $json->encode( $result ) );
+	$r->setContentType( 'application/json' );
+	return $r;
 }
 
-$wgAjaxExportList[] = 'wfAjaxCollectionGetPortlet';
+$wgAjaxExportList[] = 'wfAjaxCollectionGetBookCreatorBoxContent';
 
 function wfAjaxCollectionGetItemList() {
-	wfLoadExtensionMessages( 'Collection' );
+	$collection = $_SESSION['wsCollection'];
+
 	$template = new CollectionListTemplate();
-	$template->set( 'collection', $_SESSION['wsCollection'] );
+	$template->set( 'collection', $collection );
 	$template->set( 'is_ajax', true );
 	ob_start();
 	$template->execute();
 	$html = ob_get_contents();
 	ob_end_clean();
-	return $html;
+
+	$json = new Services_JSON();
+	$result = array();
+	$result['html'] = $html;
+	$result['collection'] = $collection;
+	$r = new AjaxResponse( $json->encode( $result ) );
+	$r->setContentType( 'application/json' );
+	return $r;
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionGetItemList';
 
 function wfAjaxCollectionRemoveItem( $index ) {
-	Collection::removeItem( $index );
+	SpecialCollection::removeItem( (int)$index );
 	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionRemoveItem';
 
 function wfAjaxCollectionAddChapter( $name ) {
-	Collection::addChapter( $name );
+	SpecialCollection::addChapter( $name );
 	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionAddChapter';
 
 function wfAjaxCollectionRenameChapter( $index, $name ) {
-	Collection::renameChapter( $index, $name );
+	SpecialCollection::renameChapter( (int)$index, $name );
 	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionRenameChapter';
 
 function wfAjaxCollectionSetTitles( $title, $subtitle ) {
-	Collection::setTitles( $title, $subtitle );
-	return '';
+	SpecialCollection::setTitles( $title, $subtitle );
+	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionSetTitles';
@@ -249,15 +351,107 @@
 			$items[] = intval( $s );
 		}
 	}
-	Collection::setSorting( $items );
+	SpecialCollection::setSorting( $items );
 	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionSetSorting';
 
 function wfAjaxCollectionClear() {
-	Collection::clearCollection();
+	CollectionSession::clearCollection();
+	CollectionSuggest::clear();
 	return wfAjaxCollectionGetItemList();
 }
 
 $wgAjaxExportList[] = 'wfAjaxCollectionClear';
+
+function wfAjaxCollectionGetPopupData( $title ) {
+	global $wgScriptPath;
+
+	$json = new Services_JSON();
+	$result = array();
+	$imagePath = "$wgScriptPath/extensions/Collection/images";
+	$t = Title::newFromText( $title );
+	if ( $t && $t->isRedirect() ) {
+		$a = new Article( $t, 0 );
+		$t = $a->followRedirect();
+		if ( $t instanceof Title ) {
+			$title = $t->getPrefixedText();
+		}
+	}
+	if ( CollectionSession::findArticle( $title ) == - 1 ) {
+		$result['action'] = 'add';
+		$result['text'] = wfMsg( 'coll-add_linked_article' );
+		$result['img'] = "$imagePath/silk-add.png";
+	} else {
+		$result['action'] = 'remove';
+		$result['text'] = wfMsg( 'coll-remove_linked_article' );
+		$result['img'] = "$imagePath/silk-remove.png";
+	}
+	$result['title'] = $title;
+	$r = new AjaxResponse( $json->encode( $result ) );
+	$r->setContentType( 'application/json' );
+	return $r;
+}
+
+$wgAjaxExportList[] = 'wfAjaxCollectionGetPopupData';
+
+/**
+ * Backend of several following SAJAX function handlers...
+ * @param String $action provided by the specific handlers internally
+ * @param String $article title passed in from client
+ * @return AjaxResponse with JSON-encoded array including HTML fragment.
+ */
+function wfCollectionSuggestAction( $action, $article ) {
+	$json = new Services_JSON();
+	$result = CollectionSuggest::refresh( $action, $article );
+	$undoLink = Xml::element( 'a',
+		array(
+			'href' => SkinTemplate::makeSpecialUrl(
+				'Book',
+				array( 'bookcmd' => 'suggest', 'undo' => $action, 'arttitle' => $article )
+			),
+			'onclick' => "collectionSuggestCall('UndoArticle'," .
+				Xml::encodeJsVar( array( $action, $article ) ) . "); return false;",
+			'title' => wfMsg( 'coll-suggest_undo_tooltip' ),
+		),
+		wfMsg( 'coll-suggest_undo' )
+	);
+	$result['last_action'] = wfMsg(
+		"coll-suggest_article_$action",
+		htmlspecialchars( $article ),
+		$undoLink
+	);
+	$result['collection'] = CollectionSession::getCollection();
+	$r = new AjaxResponse( $json->encode( $result ) );
+	$r->setContentType( 'application/json' );
+	return $r;
+}
+
+function wfAjaxCollectionSuggestBanArticle( $article ) {
+	return wfCollectionSuggestAction( 'ban', $article );
+}
+
+$wgAjaxExportList[] = 'wfAjaxCollectionSuggestBanArticle';
+
+function wfAjaxCollectionSuggestAddArticle( $article ) {
+	return wfCollectionSuggestAction( 'add', $article );
+}
+
+$wgAjaxExportList[] = 'wfAjaxCollectionSuggestAddArticle';
+
+function wfAjaxCollectionSuggestRemoveArticle( $article ) {
+	return wfCollectionSuggestAction( 'remove', $article );
+}
+
+$wgAjaxExportList[] = 'wfAjaxCollectionSuggestRemoveArticle';
+
+function wfAjaxCollectionSuggestUndoArticle( $lastAction, $article ) {
+	$json = new Services_JSON();
+	$result = CollectionSuggest::undo( $lastAction, $article );
+	$r = new AjaxResponse( $json->encode( $result ) );
+	$r->setContentType( 'application/json' );
+	return $r;
+}
+
+$wgAjaxExportList[] = 'wfAjaxCollectionSuggestUndoArticle';

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.session.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.session.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.session.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,150 @@
+<?php
+
+/**
+ * Collection Extension for MediaWiki
+ *
+ * Copyright (C) PediaPress GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+class CollectionSession {
+	static function hasSession() {
+		if ( !session_id() ) return false;
+		return isset( $_SESSION['wsCollection'] );
+	}
+
+	static function startSession() {
+		if ( session_id() == '' ) {
+			wfSetupSession();
+		}
+		self::clearCollection();
+	}
+
+	static function touchSession() {
+		$collection = $_SESSION['wsCollection'];
+		$collection['timestamp'] = wfTimestampNow();
+		$_SESSION['wsCollection'] = $collection;
+	}
+
+	static function clearCollection() {
+		$_SESSION['wsCollection'] = array(
+			'enabled' => true,
+			'title' => '',
+			'subtitle' => '',
+			'items' => array(),
+		);
+		CollectionSuggest::clear();
+		self::touchSession();
+	}
+
+	static function enable() {
+		if ( !self::hasSession() ) {
+			self::startSession();
+		} else {
+			$_SESSION['wsCollection']['enabled'] = true;
+			self::touchSession();
+		}
+	}
+
+	static function disable() {
+		if ( !self::hasSession() ) {
+			return;
+		}
+		self::clearCollection();
+		$_SESSION['wsCollection']['enabled'] = false;
+		self::touchSession();
+	}
+
+	static function isEnabled() {
+		return ( self::hasSession() && $_SESSION['wsCollection']['enabled'] );
+	}
+
+	static function countArticles() {
+		if ( !self::hasSession() ) {
+			return 0;
+		}
+		$count = 0;
+		foreach ( $_SESSION['wsCollection']['items'] as $item ) {
+			if ( $item['type'] == 'article' ) {
+				$count++;
+			}
+		}
+		return $count;
+	}
+
+	static function findArticle( $title, $oldid = 0 ) {
+		if ( !self::hasSession() ) {
+			return - 1;
+		}
+
+		foreach ( $_SESSION['wsCollection']['items'] as $index => $item ) {
+			if ( $item['type'] == 'article' && $item['title'] == $title ) {
+				if ( $oldid ) {
+					if ( $item['revision'] == strval( $oldid ) ) {
+						return $index;
+					}
+				} else {
+					if ( $item['revision'] == $item['latest'] ) {
+						return $index;
+					}
+				}
+			}
+		}
+		return - 1;
+	}
+
+	static function purge() {
+		if ( !self::hasSession() ) {
+			return false;
+		}
+		$coll = $_SESSION['wsCollection'];
+		$newitems = array();
+		if ( isset( $coll['items'] ) ) {
+			$batch = new LinkBatch;
+			$lc = LinkCache::singleton();
+			foreach ( $coll['items'] as $item ) {
+				if ( $item['type'] == 'article' ) {
+					$t = Title::newFromText( $item['title'] );
+					$batch->addObj( $t );
+				}
+			}
+			$batch->execute();
+			foreach ( $coll['items'] as $item ) {
+				if ( $item['type'] == 'article' ) {
+					$t = Title::newFromText( $item['title'] );
+					if ( $t && !$lc->isBadLink( $t->getPrefixedDbKey() ) ) {
+						$newitems[] = $item;
+					}
+				} else {
+					$newitems[] = $item;
+				}
+			}
+		}
+		$coll['items'] = $newitems;
+		$_SESSION['wsCollection'] = $coll;
+		return true;
+	}
+
+	static function getCollection() {
+		return self::purge() ? $_SESSION['wsCollection'] : array();
+	}
+
+	static function setCollection( $collection ) {
+		$_SESSION['wsCollection'] = $collection;
+		self::touchSession();
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.suggest.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.suggest.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.suggest.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,592 @@
+<?php
+
+/**
+ * Collection Extension for MediaWiki
+ *
+ * Copyright (C) 2008-2009, PediaPress GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+ * Class: CollectionSuggest
+ *
+ * This class contains only static methods, so theres no need for a constructer.
+ * When the page Special:Book/suggest/ is loaded the method run() is called.
+ * Ajax calles refresh().
+ * When clearing a book the method clear() should be called.
+ */
+class CollectionSuggest {
+
+	/**
+	 * ===============================================================================
+	 * public methods
+	 * ===============================================================================
+	 */
+
+	/**
+	 * Main entrypoint
+	 *
+	 * @param $mode (type string) 'add', 'ban' or 'remove'
+	 *        'add' => add article to the book
+	 *        'ban' => ban article from the proposals
+	 *        'remove' => remove article from the book
+	 *        'addNum' => (type int) add the first $param articles to the collection
+	 *        'addVal' => (type float) add all propossals to the collection with
+	 *                    a value higher then $param
+	 * @param $param (type string) name of the article to be added, banned or removed
+	 *        or a number of articles to add or a value (1 - 1.5) all articles with a
+	 *        higher value will be added to the collection
+	 */
+	public static function run( $mode = '', $param = '' ) {
+		global $wgOut;
+
+		if ( !CollectionSession::hasSession() ) {
+			CollectionSession::startSession();
+		}
+		if ( !isset( $_SESSION['wsCollectionSuggestBan'] ) || $mode == 'resetbans' ) {
+			$_SESSION['wsCollectionSuggestBan']  = array();
+		}
+		if ( !isset( $_SESSION['wsCollectionSuggestProp'] ) ) {
+			$_SESSION['wsCollectionSuggestProp'] = array();
+		}
+
+		$template = self::getCollectionSuggestTemplate( $mode, $param );
+		$wgOut->setPageTitle( wfMsg( 'coll-suggest_title' ) );
+		$wgOut->addModules( 'ext.collection.suggest' );
+		$wgOut->addTemplate( $template );
+	}
+
+	/**
+	 * Entrypoint for Ajax
+	 *
+	 * @param $mode (type string) 'add', 'ban' or 'remove'
+	 *        'add' => add article to the book
+	 *        'ban' => ban article from the proposals
+	 *        'remove' => remove article from the book
+	 *        'addNum' => (type int) add the first $param articles to the collection
+	 *        'addVal' => (type float) add all propossals to the collection with
+	 *                    a value higher then $param
+	 * @param $param (type string) name of the article to be added, banned or removed
+	 *        or a number of articles to add or a value (1 - 1.5) all articles with a
+	 *        higher value will be added to the collection
+	 * @return (type string) html-code for the proposallist and the memberlist
+	 */
+	public static function refresh( $mode, $param ) {
+		global $wgLang;
+
+		$template = self::getCollectionSuggestTemplate( $mode, $param );
+		return array(
+			'suggestions_html' => $template->getProposalList(),
+			'members_html' => $template->getMemberList(),
+			'num_pages' => wfMsgExt( 'coll-n_pages', 'parsemag', $wgLang->formatNum( CollectionSession::countArticles() ) ),
+		);
+	}
+
+	public static function undo( $lastAction, $article ) {
+		switch ( $lastAction ) {
+		case 'add':
+			$template = self::getCollectionSuggestTemplate( 'removeonly', $article );
+			break;
+		case 'ban':
+			$template = self::getCollectionSuggestTemplate( 'unban', $article );
+			break;
+		case 'remove':
+			$template = self::getCollectionSuggestTemplate( 'add', $article );
+			break;
+		}
+		return array(
+			'suggestions_html' => $template->getProposalList(),
+			'members_html' => $template->getMemberList(),
+		);
+	}
+
+	// remove the suggestion data from the session
+	public static function clear() {
+		if ( isset( $_SESSION['wsCollectionSuggestBan'] ) ) {
+		 	unset( $_SESSION['wsCollectionSuggestBan'] );
+		}
+		if ( isset( $_SESSION['wsCollectionSuggestProp'] ) ) {
+			unset( $_SESSION['wsCollectionSuggestProp'] );
+		}
+	}
+
+	/**
+	 * ===============================================================================
+	 * private methods
+	 * ===============================================================================
+	 */
+
+	private static function unban( $article ) {
+		if (!isset($_SESSION['wsCollectionSuggestBan'])) return;
+		$bans = $_SESSION['wsCollectionSuggestBan'];
+		$newbans = array();
+		foreach ( $bans as $ban ) {
+			if ( $ban != $article ) {
+				$newbans[] = $ban;
+			}
+		}
+		$_SESSION['wsCollectionSuggestBan'] = $newbans;
+	}
+
+	/**
+	 * Update the session and return the template
+	 *
+	 * @param $mode (type string) 'add', 'ban' or 'remove'
+	 *        'add' => add article to the book
+	 *        'ban' => ban article from the proposals
+	 *        'remove' => remove article from the book
+	 *        'addNum' => (type int) add the first $param articles to the collection
+	 *        'addVal' => (type float) add all propossals to the collection with
+	 *                    a value higher then $param
+	 * @param $param (type string) name of the article to be added, banned or removed
+	 *        or a number of articles to add or a value (1 - 1.5) all articles with a
+	 *        higher value will be added to the collection
+	 * @return the template for the wikipage
+	 */
+	private static function getCollectionSuggestTemplate( $mode, $param ) {
+		global $wgCollectionMaxSuggestions;
+
+		switch( $mode ) {
+			case 'add':
+				SpecialCollection::addArticleFromName( NS_MAIN, $param );
+				self::unban( $param );
+				break;
+			case 'ban':
+				$_SESSION['wsCollectionSuggestBan'][] = $param;
+				break;
+			case 'remove':
+				SpecialCollection::removeArticleFromName( NS_MAIN, $param );
+				$_SESSION['wsCollectionSuggestBan'][] = $param;
+				break;
+			case 'removeonly': // remove w/out banning (for undo)
+				SpecialCollection::removeArticleFromName( NS_MAIN, $param );
+				break;
+			case 'unban': // for undo
+				self::unban( $param );
+				break;
+		}
+
+		$template = new CollectionSuggestTemplate();
+		$proposals = new Proposals(
+			$_SESSION['wsCollection'],
+			$_SESSION['wsCollectionSuggestBan'],
+			$_SESSION['wsCollectionSuggestProp']
+		);
+
+		if ( $mode == 'addAll' ) {
+			self::addArticlesFromName( $param, $proposals );
+		}
+
+		$template->set( 'collection', $_SESSION['wsCollection'] );
+		$template->set( 'proposals', $proposals->getProposals( $wgCollectionMaxSuggestions ) );
+		$template->set( 'hasbans', $proposals->hasBans() );
+		$template->set( 'num_pages', CollectionSession::countArticles() );
+
+		$_SESSION['wsCollectionSuggestProp'] = $proposals->getLinkList();
+
+		return $template;
+	}
+
+	/**
+	 * Add some articles and update the book of the Proposal-Object
+	 *
+	 * @param $articleList an array with the names of the articles to be added
+	 * @param $prop the proposal-Object
+	 */
+	private static function addArticlesFromName( $articleList, $prop ) {
+		foreach ( $articleList as $article ) {
+			SpecialCollection::addArticleFromName( NS_MAIN, $article );
+		}
+		$prop->setCollection( $_SESSION['wsCollection'] );
+	}
+}
+
+/**
+ * class: Proposals
+ *
+ * it needs 3 Lists:
+ * - one with the bookmembers
+ * - one where it can save the banned articles
+ * - one where it can save the proposals
+ *
+ * the proposallist can be accessed with the public method getProposals()
+ *
+ * a list with the bookarticles as first and information about the outgoing
+ * links of that article as second dimension can be accessed with the method
+ * getLinkList()
+ *
+ *
+ *
+ * the Class can only sort the proposals, if it can access the function compareProps
+ */
+class Proposals {
+
+	/**
+	 * ==================================================
+	 * class attributes
+	 * ==================================================
+	 *
+	 * only mLinkList and mPropList can be accessed from
+	 * outside the class via getLinkList() and getPropsosals()
+	 */
+	private $mColl;
+	private $mPropList;
+	private $mLinkList;
+	private $mBanList;
+
+	/**
+	 * ==================================================
+	 * constructor
+	 * ==================================================
+	 *
+	 * @param $coll the collection
+	 * @param $ban the list of the banned articles
+	 * @param $props the lilst of the proposals
+	 */
+	public function Proposals( $coll, $ban, $props ) {
+		$this->mPropList = array();
+		$this->mColl = $coll;
+		$this->mBanList = $ban;
+		$this->mLinkList = $props;
+	}
+
+
+	/**
+	 * ==================================================
+	 * public methods
+	 * ==================================================
+	 */
+
+	public function getLinkList() {
+		return $this->mLinkList;
+	}
+
+	public function setCollection( $collection ) {
+		$this->mColl = $collection;
+	}
+
+	/**
+	 * Calculate the new proposals and return it
+	 *
+	 * @param $num (type int) number of proposals to be returned
+	 *        0 or less means, that all proposals will be returned
+	 *        this parameter is optional, the method will return
+	 *        all proposals by defaulted
+	 * @param $doUpdate (type boolean) when true, $linkList will
+	 *        updated before calculating the proposals
+	 *        default is true
+	 * @return a 2-dimensional array that contains the proposals
+	 *         the first dimesion is numeric, the second contains
+	 *         3 entries:
+	 *         - 'name': the name of a proposed article
+	 *         - 'num' : how often this artikel was linked in the
+	 *                   bookmembers
+	 *         - 'val' : a value between 1 and 1.5, the higher the
+	 *                   more this article is proposed
+	 */
+	public function getProposals( $num = 0, $doUpdate = true ) {
+		if ( $doUpdate ) {
+			$this->updateLinkList();
+		}
+
+		$this->getPropList();
+
+		if ( $num > 0 ) {
+			return array_slice( $this->mPropList, 0, $num );
+		} else {
+			return $this->mPropList;
+		}
+	}
+
+	public function hasBans() {
+		return count( $this->mBanList ) > 0;
+	}
+
+	/**
+	 * ==================================================
+	 * private methods
+	 * ==================================================
+	 */
+
+	private function updateLinkList() {
+		$this->addCollectionArticles();
+		$this->deleteUnusedArticles();
+	}
+
+	// Check if all articles form the book are in $mLinkList
+	private function addCollectionArticles() {
+		global $wgCollectionSuggestThreshhold;
+
+		$numItems = count( $this->mColl['items'] );
+
+		if ( $numItems > $wgCollectionSuggestThreshhold ) {
+			return;
+		}
+
+		foreach ( $this->mColl['items'] as $item ) {
+			if ( $this->searchEntry( $item['title'], $this->mLinkList ) === false
+				&& $item['type'] == 'article'
+			) {
+				$articleName = $item['title'];
+				$title = Title::makeTitleSafe( NS_MAIN, $articleName );
+				$article = new Article( $title, $item['revision'] );
+
+				if ( is_null( $article ) ) {
+					continue;
+				}
+
+				$this->mLinkList[] = array(
+					'name' => $articleName,
+					'links' => $this->getWeightedLinks( $numItems, $article->getContent() ),
+				);
+			}
+		}
+	}
+
+	// Delete items from $mLinkList that are not in the collection any more
+	private function deleteUnusedArticles() {
+		$newList = array();
+		foreach ( $this->mLinkList as $item ) {
+			if ( CollectionSession::findArticle( $item['name'] ) != - 1 ) {
+				$newList[] = $item;
+			}
+		}
+		$this->mLinkList = $newList;
+	}
+
+	private function resolveRedirects( $title ) {
+		if ( !$title->isRedirect() ) {
+			return $title;
+		}
+
+		$article = new Article( $title, 0 );
+		if ( method_exists( $title, 'newFromRedirectRecurse' ) ) {
+			return Title::newFromRedirectRecurse( $article->getContent() );
+		} else {
+			return Title::newFromRedirect( $article->getContent() );
+		}
+	}
+
+	/**
+	 * Extract & count links from wikitext
+	 *
+	 * @param wikitext: article text
+	 * @return an array with links and their weights
+	 */
+	private function getWeightedLinks( $num_articles, $wikitext ) {
+		global $wgCollectionSuggestCheapWeightThreshhold;
+
+		$allLinks = array();
+		preg_match_all(
+			'/\[\[(.+?)\]\]/',
+			$wikitext,
+			$allLinks,
+			PREG_SET_ORDER
+		);
+
+		$linkmap = array();
+		foreach ( $allLinks as $link ) {
+			$link = $link[1];
+
+			if ( preg_match( '/[:#]/', $link ) ) { // skip links with ':' and '#'
+				continue;
+			}
+
+			// handle links with a displaytitle
+			$matches = array();
+			if ( preg_match( '/(.+?)\|(.+)/', $link, $matches ) ) {
+				$link = $matches[1];
+				$alias = $matches[2];
+			} else {
+				$alias = $link;
+			}
+
+			// check & normalize title
+			$title = Title::makeTitleSafe( NS_MAIN, $link );
+			if ( is_null( $title ) || !$title->exists() ) {
+				continue;
+			}
+			$link = $this->resolveRedirects( $title )->getText();
+
+			if ( isset ( $linkmap[$link] ) ) {
+				$linkmap[$link][$link] = true;
+			} else {
+				$linkmap[$link] = array( $link => true );
+			}
+			if ( $link != $alias ) {
+				if ( isset( $linkmap[$alias] ) ) {
+					$linkmap[$alias][$link] = true;
+				} else {
+					$linkmap[$alias] = array( $link => true );
+				}
+			}
+		}
+
+		$linkcount = array();
+		if ( $num_articles < $wgCollectionSuggestCheapWeightThreshhold ) {
+			// more expensive algorithm: count words
+			foreach ( $linkmap as $alias => $linked ) {
+				$matches = array();
+				preg_match_all(
+					'/\W' . preg_quote( $alias, '/' ) . '\W/i',
+					$wikitext,
+					$matches
+				);
+				$num = count( $matches[0] );
+
+				foreach ( $linked as $link => $dummy ) {
+					if ( isset( $linkcount[$link] ) ) {
+						$linkcount[$link] += $num;
+					} else {
+						$linkcount[$link] = $num;
+					}
+				}
+			}
+
+			if ( count( $linkcount ) == 0 ) {
+				return array();
+			}
+
+			// normalize:
+			$lc_max = 0;
+			foreach ( $linkcount as $count ) {
+				if ( $count > $lc_max ) {
+					$lc_max = $count;
+				}
+			}
+			$norm = log( $lc_max );
+			$result = array();
+			if ( $norm > 0 ) {
+				foreach ( $linkcount as $link => $count ) {
+					$result[$link] = 1 + 0.5 * log( $count ) / $norm;
+				}
+			} else {
+				foreach ( $linkcount as $link => $count ) {
+					$result[$link] = 1;
+				}
+			}
+
+			return $result;
+		} else {
+			// cheaper algorithm: just count links
+			foreach ( $linkmap as $linked ) {
+				foreach ( $linked as $link => $dummy ) {
+					$linkcount[$link] = 1;
+				}
+			}
+
+			return $linkcount;
+		}
+	}
+
+	// Calculate the $mPropList from $mLinkList and $mBanList
+	private function getPropList() {
+		$prop = array();
+		foreach ( $this->mLinkList as $article ) {
+			foreach ( $article['links'] as $linkName => $val ) {
+				if ( !$this->checkLink( $linkName ) ) {
+					continue;
+				}
+				$key = $this->searchEntry( $linkName, $prop );
+				if ( $key !== false ) {
+					$prop[$key]['val'] += $val;
+				} else {
+					$prop[] = array(
+						'name' => $linkName,
+						'val' => $val,
+					);
+				}
+			}
+		}
+		usort( $prop, "wgCollectionCompareProps" );
+		$this->mPropList = array();
+		$have_real_weights = false;
+		foreach ( $prop as $p ) {
+			if ( $p['val'] > 1 ) {
+				$have_real_weights = true;
+			}
+			if ( $p['val'] <= 1 && $have_real_weights ) {
+				break;
+			}
+			$this->mPropList[] = $p;
+		}
+	}
+
+	/**
+	 * Search an article in an array and returns its key or false
+	 * if the array doesn't contain the article
+	 *
+	 * @param $entry (type string) an articlename
+	 * @param $array the array to be searched, it has to 2-dimensional
+	 *               the 2nd dimension needs the key 'name'
+	 * @return the key as integer or false
+	 */
+	private function searchEntry( $entry, $array ) {
+		for ( $i = 0; $i < count( $array ); $i++ ) {
+			if ( $array[$i]['name'] == $entry ) {
+				return $i;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Check if an article is banned or belongs to the book/collection
+	 *
+	 * @param $link (type string) an articlename
+	 * @return (type boolean) true: if the article can be added to the proposals
+	 *                        false: if the article can't be added to the proposals
+	 */
+	private function checkLink( $link ) {
+		foreach ( $this->mColl['items'] as $item ) {
+			if ( $item['type'] == 'article' && $item['title'] == $link ) {
+				return false;
+			}
+		}
+
+		if ( in_array( $link, $this->mBanList ) ) {
+			return false;
+		}
+
+		return true;
+	}
+
+	private function getPropCount() {
+		return count( $this->mPropList );
+	}
+}
+
+/**
+ * sort $mPropList by the entries values
+ * sort alphabetically by equal values
+ *
+ * @param $a, $b: arrays that contain two entries
+ *                the keys: 'name' & 'val'
+ *                'name': an articlename
+ *                'val' : a value from 1 to 1.5
+ * @return 1, -1 or 0
+ */
+function wgCollectionCompareProps( $a, $b ) {
+	if ( $a['val'] == $b['val'] ) {
+		return strcmp( $a['name'], $b['name'] );
+	}
+	if ( $a['val'] < $b['val'] ) {
+		return 1;
+	} else {
+		return - 1;
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.templates.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.templates.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/Collection.templates.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -4,37 +4,35 @@
  * @file
  * @ingroup Templates
  */
-if( !defined( 'MEDIAWIKI' ) ) die( -1 );
+if ( !defined( 'MEDIAWIKI' ) ) die( - 1 );
 
 /**
  * HTML template for Special:Book
  * @ingroup Templates
  */
 class CollectionPageTemplate extends QuickTemplate {
-	function execute() {		
-		$mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/collection/';
+	function execute() {
+		$mediapath = $GLOBALS['wgExtensionAssetsPath'] . '/Collection/images/';
 ?>
 
-<div style="width: 47%; float: left; margin-right: 5%">
-<?php $this->msgWiki('coll-intro_text') ?>
+<div class="collection-column collection-column-left">
 
-<h2><span class="mw-headline"><?php $this->msg('coll-your_book') ?></span></h2>
-
-<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'set_titles/')) ?>" method="post" id="mw-collection-title-form">
+<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post" id="mw-collection-title-form">
 	<table id="mw-collection-title-table" style="width: 80%; background-color: transparent;" align="center">
 		<tbody>
 			<tr>
-				<td class="mw-label"><label for="titleInput"><?php $this->msg('coll-title') ?></label></td>
-				<td class="mw-input"><input id="titleInput" type="text" name="collectionTitle" value="<?php echo htmlspecialchars($this->data['collection']['title']) ?>" /></td>
+				<td class="mw-label"><label for="titleInput"><?php $this->msg( 'coll-title' ) ?></label></td>
+				<td class="mw-input"><input id="titleInput" type="text" name="collectionTitle" value="<?php echo htmlspecialchars( $this->data['collection']['title'] ) ?>" /></td>
 			</tr>
 			<tr>
-				<td class="mw-label"><label for="subtitleInput"><?php $this->msg('coll-subtitle') ?></label></td>
-				<td class="mw-input"><input id="subtitleInput" type="text" name="collectionSubtitle" value="<?php echo htmlspecialchars($this->data['collection']['subtitle']) ?>" /></td>
+				<td class="mw-label"><label for="subtitleInput"><?php $this->msg( 'coll-subtitle' ) ?></label></td>
+				<td class="mw-input"><input id="subtitleInput" type="text" name="collectionSubtitle" value="<?php echo htmlspecialchars( $this->data['collection']['subtitle'] ) ?>" /></td>
 			</tr>
 		</tbody>
 	</table>
+	<input type="hidden" name="bookcmd" value="set_titles" />
 	<noscript>
-		<input type="submit" value="<?php $this->msg('coll-update') ?>" />
+		<input type="submit" value="<?php $this->msg( 'coll-update' ) ?>" />
 	</noscript>
 </form>
 
@@ -46,109 +44,140 @@
 ?>
 </div>
 <div style="display:none">
-	<span id="newChapterText"><?php $this->msg('coll-new_chapter') ?></span>
-	<span id="renameChapterText"><?php $this->msg('coll-rename_chapter') ?></span>
-	<span id="clearCollectionConfirmText"><?php $this->msg('coll-clear_collection_confirm') ?></span>
+	<span id="newChapterText"><?php $this->msg( 'coll-new_chapter' ) ?></span>
+	<span id="renameChapterText"><?php $this->msg( 'coll-rename_chapter' ) ?></span>
+	<span id="clearCollectionConfirmText"><?php $this->msg( 'coll-clear_collection_confirm' ) ?></span>
 </div>
 
 </div>
 
-<div style="width: 47%; float: left">
+<div class="collection-column collection-column-right">
 
-	<div style="margin-bottom: 10px; padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;">
-		<h2><span class="mw-headline"><?php $this->msg('coll-book_title') ?></span></h2>
-		<?php $this->msgWiki('coll-book_text') ?>
-		<div id="ppList">
-			<?php foreach ($this->data['podpartners'] as $partner => $partnerData) { ?>
-			<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'post_zip/')) ?>" method="get">
-				<input type="hidden" name="partner" value="<?php echo htmlspecialchars($partner) ?>"/>
-				<table style="width:100%; background-color: transparent;"><tr><td><a href="<?php echo htmlspecialchars($partnerData['url']) ?>" target="_blank"><?php echo wfMsgHtml('coll-about_pp', htmlspecialchars($partnerData['name'])) ?></a></td>
-				<td style="text-align:right"><input type="submit" value="<?php echo wfMsgHtml('coll-order_from_pp', htmlspecialchars($partnerData['name'])) ?>" class="order" <?php if (count($this->data['collection']['items']) == 0) { ?> disabled="disabled"<?php } ?> /></td></tr></table>
-				
-			</form>
-			<?php } ?>
+	<div class="collection-column-right-box" id="coll-orderbox">
+		<h2><span class="mw-headline"><?php $this->msg( 'coll-book_title' ) ?></span></h2>
+		<?php
+$partnerData = $this->data['podpartners']['pediapress'];
+$this->msgWiki( 'coll-book_text' );
+		?>
+		<div>
+			<div id="collection-order-button">
+				<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+					<input type="hidden" name="bookcmd" value="post_zip" />
+					<input type="hidden" name="partner" value="pediapress" />
+					<input type="submit" value="<?php echo wfMsgHtml( 'coll-order_from_pp', htmlspecialchars( $partnerData['name'] ) ) ?>" class="order" <?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?> />
+				</form>
+			</div>
+		<?php
+$t = Title::newFromText( wfMsgForContent( 'coll-order_info_article' ) );
+if ( $t && $t->exists() ) { ?>
+			<div id="coll-more_info" style="display:none">
+				<a href="javascript:void(0)" onclick="coll_toggle_order_info(true);"><img src="<?php echo htmlspecialchars( $mediapath . "collapse.png" ) ?>" width="10" height="10" alt="" /> <?php $this->msg( 'coll-more_info' ) ?></a>
+			</div>
+			<div id="coll-hide_info" style="display:none">
+				<a href="javascript:void(0)" onclick="coll_toggle_order_info(false);"><img src="<?php echo htmlspecialchars( $mediapath . "expand.png" ) ?>" width="10" height="10" alt="" /> <?php $this->msg( 'coll-hide_info' ) ?></a>
+			</div>
+<?php } else { ?>
+			<a href="<?php echo htmlspecialchars( $partnerData['url'] ) ?>" target="_blank"><?php echo wfMsgHtml( 'coll-about_pp', htmlspecialchars( $partnerData['name'] ) ) ?></a>
+<?php } ?>
 		</div>
+<?php
+if ( $t && $t->exists() ) { ?>
+		<div id="coll-order_info" style="display:none; margin-top: 2em;">
+<?php
+echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
+?>
+		</div>
+<?php } ?>
 	</div>
 
-	<div style="margin-bottom: 10px; padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;">
-		<h2><span class="mw-headline"><?php $this->msg('coll-download_title') ?></span></h2>
-    <?php if (count($this->data['formats']) == 1) {
-      $writer = array_rand($this->data['formats']);
-      echo $GLOBALS['wgParser']->parse(
-        wfMsgNoTrans('coll-download_as_text', $this->data['formats'][$writer]),
-        $GLOBALS['wgTitle'],
-        $GLOBALS['wgOut']->parserOptions(),
-        true
-      )->getText();
-      $buttonLabel = wfMsgHtml('coll-download_as', htmlspecialchars($this->data['formats'][$writer]));
-    } else {
-      $this->msgWiki('coll-download_text');
-      $buttonLabel = wfMsgHtml('coll-download');
-    } ?>
-		<form id="downloadForm" action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'render/')) ?>" method="post">
-      <table style="width:100%; background-color: transparent;"><tr><td><tbody><tr><td>
-			<?php if (count($this->data['formats']) == 1) { ?>
-				<input type="hidden" name="writer" value="<?php echo htmlspecialchars($writer) ?>" />
+	<div class="collection-column-right-box" id="coll-downloadbox">
+		<h2><span class="mw-headline"><?php $this->msg( 'coll-download_title' ) ?></span></h2>
+		<?php if ( count( $this->data['formats'] ) == 1 ) {
+			$writer = array_rand( $this->data['formats'] );
+			echo wfMsgExt( 'coll-download_as_text', 'parse', $this->data['formats'][$writer] );
+			$buttonLabel = wfMsgHtml( 'coll-download_as', htmlspecialchars( $this->data['formats'][$writer] ) );
+		} else {
+			$this->msgWiki( 'coll-download_text' );
+			$buttonLabel = wfMsgHtml( 'coll-download' );
+		} ?>
+		<form id="downloadForm" action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+			<table style="width:100%; background-color: transparent;"><tr><td><tbody><tr><td>
+			<?php if ( count( $this->data['formats'] ) == 1 ) { ?>
+				<input type="hidden" name="writer" value="<?php echo htmlspecialchars( $writer ) ?>" />
 			<?php } else { ?>
-        <label for="formatSelect"><?php $this->msg('coll-format_label') ?></label>
-        <select id="formatSelect" name="writer">
-          <?php foreach ($this->data['formats'] as $writer => $name) { ?>
-          <option value="<?php echo htmlspecialchars($writer) ?>"><?php echo htmlspecialchars($name) ?></option>
-          <?php	} ?>
-        </select>
+				<label for="formatSelect"><?php $this->msg( 'coll-format_label' ) ?></label>
+				<select id="formatSelect" name="writer">
+					<?php foreach ( $this->data['formats'] as $writer => $name ) { ?>
+					<option value="<?php echo htmlspecialchars( $writer ) ?>"><?php echo htmlspecialchars( $name ) ?></option>
+					<?php	} ?>
+				</select>
 			<?php } ?>
-      </td><td style="text-align:right; vertical-align:bottom;">
-      <input id="downloadButton" type="submit" value="<?php echo $buttonLabel ?>"<?php if (count($this->data['collection']['items']) == 0) { ?> disabled="disabled"<?php } ?> />
-      </td></tr></tbody></table>
+			</td><td id="collection-download-button">
+			<input type="hidden" name="bookcmd" value="render" />
+			<input id="downloadButton" type="submit" value="<?php echo $buttonLabel ?>"<?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?> />
+			</td></tr></tbody></table>
 		</form>
 	</div>
 
-	<div style="margin-bottom: 10px; padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;">
-		<h2><span class="mw-headline"><?php $this->msg('coll-save_collection_title') ?></span></h2>
-		<?php if ($GLOBALS['wgUser']->isLoggedIn()) { ?>
-		<?php $this->msgWiki('coll-save_collection_text') ?>
+	<?php
+		if ( $GLOBALS['wgUser']->isLoggedIn() ) {
+			$canSaveUserPage = $GLOBALS['wgUser']->isAllowed( 'collectionsaveasuserpage' );
+			$canSaveCommunityPage = $GLOBALS['wgUser']->isAllowed( 'collectionsaveascommunitypage' );
+		} else {
+			$canSaveUserPage = false;
+			$canSaveCommunityPage = false;
+		}
+		if ( $GLOBALS['wgEnableWriteAPI'] && ( $canSaveUserPage || $canSaveCommunityPage ) ) {
+	?>
+	<div class="collection-column-right-box" id="coll-savebox">
+		<h2><span class="mw-headline"><?php $this->msg( 'coll-save_collection_title' ) ?></span></h2>
 		<?php
-			$bookname = wfMsgForContent('coll-collections');
+				$this->msgWiki( 'coll-save_collection_text' );
+				$communityCollNS = $GLOBALS['wgCommunityCollectionNamespace'];
 		?>
-			<form id="saveForm" action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'save_collection/')) ?>" method="post">
-			      	<table style="width:100%; background-color: transparent;"><tr><td>
-				<?php
-					if (!$GLOBALS['wgUser']->isNewbie()) { 
-						$communityCollNS = $GLOBALS['wgCommunityCollectionNamespace'];
-				?>
+			<form id="saveForm" action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+				<table style="width:100%; background-color: transparent;"><tbody>
+				<?php if ( $canSaveUserPage ) { ?>
+				<tr><td>
+				<?php if ( $canSaveCommunityPage ) { ?>
 				<input id="personalCollType" type="radio" name="colltype" value="personal" checked="checked" />
 				<?php } else { ?>
 				<input type="hidden" name="colltype" value="personal" />
 				<?php } ?>
-				<label for="personalCollTitle"><a href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Prefixindex', 'from=' . $GLOBALS['wgUser']->getName() . '/' . $bookname . '/&namespace=2')) ?>"><?php echo htmlspecialchars($GLOBALS['wgUser']->getUserPage()->getPrefixedText() . '/' . $bookname . '/') ?></a></label>
+				<label for="personalCollTitle"><a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' . wfUrlencode( $this->data['user-book-prefix'] ) ) ) ?>"><?php echo htmlspecialchars( $this->data['user-book-prefix'] ) ?></a></label>
 				</td>
-				<td style="text-align:right;">
+				<td id="collection-save-input">
 				<input id="personalCollTitle" type="text" name="pcollname" />
 				</td></tr>
-				<?php
-					if (!$GLOBALS['wgUser']->isNewbie()) { 
-						$communityCollNS = $GLOBALS['wgCommunityCollectionNamespace'];
-				?>
+				<?php } // if ($canSaveUserPage) ?>
+				<?php if ( $canSaveCommunityPage ) { ?>
 				<tr><td>
+				<?php if ( $canSaveUserPage ) { ?>
 				<input id="communityCollType" type="radio" name="colltype" value="community" />
-				<label for="communityCollTitle"><a href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrl('Prefixindex', 'from=' . $bookname . '/&namespace=' . $communityCollNS)) ?>"><?php echo htmlspecialchars(Title::makeTitle($communityCollNS, $bookname)->getPrefixedText() . '/') ?></a></label>
+				<?php } else { ?>
+				<input type="hidden" name="colltype" value="community" />
+				<?php } ?>
+				<label for="communityCollTitle"><a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' . wfUrlencode( $this->data['community-book-prefix'] ) ) ) ?>"><?php echo htmlspecialchars( $this->data['community-book-prefix'] ) ?></a></label>
 				</td>
-				<td style="text-align:right;">
+				<td id="collection-save-button">
 				<input id="communityCollTitle" type="text" name="ccollname" disabled="disabled" />
 				</td></tr>
-				<?php } // autoconfirmed ?>
-				<tr><td> </td><td style="text-align:right;">
-				<input id="saveButton" type="submit" value="<?php $this->msg('coll-save_collection') ?>"<?php if (count($this->data['collection']['items']) == 0) { ?> disabled="disabled"<?php } ?> />
-				</tr>
-				</table>
+				<?php } // if ($canSaveCommunityPage) ?>
+				<tr><td> </td><td id="collection-save-button">
+				<input id="saveButton" type="submit" value="<?php $this->msg( 'coll-save_collection' ) ?>"<?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?> />
+				</tr></tbody></table>
+				<input name="token" type="hidden" value="<?php echo htmlspecialchars( $GLOBALS['wgUser']->editToken() ) ?>" />
+				<input name="bookcmd" type="hidden" value="save_collection" />
 			</form>
 
-		<?php } else {
-			$this->msgWiki('coll-login_to_save');
+		<?php
+		$t = wfMsgForContent( 'coll-bookscategory' );
+		if ( !wfEmptyMsg( 'coll-bookscategory', $t ) && $t != '-' ) {
+			$this->msgWiki( 'coll-save_category' );
 		}
-		$this->msgWiki('coll-save_category');
 		?>
 	</div>
+	<?php } ?>
 
 </div>
 
@@ -163,84 +192,81 @@
  * @ingroup Templates
  */
 class CollectionListTemplate extends QuickTemplate {
-	function execute() {		
-		$mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/collection/';
+	function execute() {
+		$mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/images/';
 ?>
 
-<div style="text-align: center; padding: 2px; margin-top: 20px; margin-bottom: 2px; border: 1px solid #aaa; background-color: #f9f9f9;">
-<div>
-<a class="makeVisible" style="margin-right: 3em;<?php if (!isset($this->data['is_ajax'])) { echo ' display:none;'; } ?>" onclick="return coll_create_chapter()" href="javascript:void(0);"><?php $this->msg('coll-create_chapter') ?></a>
-<?php if (count($this->data['collection']['items']) > 0) { ?>
-<a style="margin-right: 3em" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'sort_items/')) ?>"><?php $this->msg('coll-sort_alphabetically') ?></a>
-<a onclick="return coll_clear_collection()" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'clear_collection/')) ?>"><?php $this->msg('coll-clear_collection') ?></a>
+<div class="collection-create-chapter-links">
+<a class="makeVisible" style="<?php if ( !isset( $this->data['is_ajax'] ) ) { echo ' display:none;'; } ?>" onclick="return coll_create_chapter()" href="javascript:void(0);"><?php $this->msg( 'coll-create_chapter' ) ?></a>
+<?php if ( count( $this->data['collection']['items'] ) > 0 ) { ?>
+<a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'sort_items' ) ) ) ?>"><?php $this->msg( 'coll-sort_alphabetically' ) ?></a>
+<a onclick="return coll_clear_collection()" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'clear_collection' ) ) ) ?>"><?php $this->msg( 'coll-clear_collection' ) ?></a>
 <?php } ?>
 </div>
-</div>
 
+<div class="collection-create-chapter-list">
 
-<div style="padding: 10px 20px; border: 1px solid rgb(170, 170, 170)">
-
 <?php
-if (count($this->data['collection']['items']) == 0) { ?>
-<em id="emptyCollection"><?php $this->msg('coll-empty_collection'); ?></em>
+if ( count( $this->data['collection']['items'] ) == 0 ) { ?>
+<em id="emptyCollection"><?php $this->msg( 'coll-empty_collection' ); ?></em>
 <?php } else { ?>
-<div style="text-align: center; margin-bottom: 10px">
-<em class="makeVisible" style="display:none; font-size: 95%"><?php $this->msg('coll-drag_and_drop') ?></em>
+<div style="collection-create-chapter-list-text">
+<em class="makeVisible" style="display:none; font-size: 95%"><?php $this->msg( 'coll-drag_and_drop' ) ?></em>
 </div>
-<?php }?>
+<?php } ?>
 
-<ul id="collectionList" style="list-style: none; margin-left: 0;">
+<ul id="collectionList">
 
 <?php
-foreach($this->data['collection']['items'] as $index => $item) {
-	if ($item['type'] == 'article') { ?>
-	<li id="item-<?php echo $index ?>" class="article">
-		<a onclick="return coll_remove_item(<?php echo $index ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'remove_item/', 'index=' . $index)) ?>" title="<?php $this->msg('coll-remove') ?>"><img src="<?php echo htmlspecialchars($mediapath . "remove.png") ?>" width="10" height="10" alt="<?php $this->msg('remove') ?>" /></a><a>
+foreach ( $this->data['collection']['items'] as $index => $item ) {
+	if ( $item['type'] == 'article' ) { ?>
+	<li id="item-<?php echo intval( $index ) ?>" class="article">
+		<a onclick="return coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'remove_item', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-remove' ) ?>" /></a><a>
 		<noscript>
-		<?php if ($index == 0) { ?>
-			<img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" />
+		<?php if ( $index == 0 ) { ?>
+			<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" />
 		<?php } else { ?>
-			<a onclick="return coll_move_item(<?php echo $index . ', -1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'move_item/', 'delta=-1&index=' . $index)) ?>" title="<?php $this->msg('coll-move_up') ?>"><img src="<?php echo htmlspecialchars($mediapath . "up.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_up') ?>" /></a>
+			<a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_up' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "up.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_up' ) ?>" /></a>
 		<?php }
-		if ($index == count($this->data['collection']['items']) - 1) { ?>
-			<img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" />
+		if ( $index == count( $this->data['collection']['items'] ) - 1 ) { ?>
+			<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" />
 		<?php } else { ?>
-			<a onclick="return coll_move_item(<?php echo $index . ', 1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'move_item/', 'delta=1&index=' . $index)) ?>" title="<?php $this->msg('coll-move_down') ?>"><img src="<?php echo htmlspecialchars($mediapath . "down.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_down') ?>" /></a>
+			<a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_down' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "down.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a>
 		<?php } ?>
 		</noscript>
-		<?php if ($item['currentVersion'] == 0) {
+		<?php if ( $item['currentVersion'] == 0 ) {
 			$url = $item['url'] . '?oldid=' . $item['revision'];
 		} else {
 			$url = $item['url'];
 		}
 		?>
-		<a href="<?php echo $url ?>" title="<?php $this->msg('coll-show') ?>"><img src="<?php echo htmlspecialchars($mediapath . "show.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-show') ?>" /></a>
-		<span class="title sortableitem" style="margin-left: 1em;">
-		<?php if (isset($item['displaytitle']) && $item['displaytitle'] != '') {
-			echo htmlspecialchars($item['displaytitle']);
+		<a href="<?php echo htmlspecialchars( $url ) ?>" title="<?php $this->msg( 'coll-show' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "show.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-show' ) ?>" /></a>
+		<span class="title sortableitem">
+		<?php if ( isset( $item['displaytitle'] ) && $item['displaytitle'] != '' ) {
+			echo htmlspecialchars( $item['displaytitle'] );
 		} else {
-			echo htmlspecialchars($item['title']);
+			echo htmlspecialchars( $item['title'] );
 		} ?>
 		</span>
 	</li>
-	<?php } else if ($item['type'] == 'chapter') { ?>
-	<li id="item-<?php echo $index ?>" class="chapter" style="margin-top:0.3em;">
-		<a onclick="return coll_remove_item(<?php echo $index ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'remove_item/', 'index=' . $index)) ?>" title="<?php $this->msg('coll-remove') ?>"><img src="<?php echo htmlspecialchars($mediapath . "remove.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-remove') ?>" /></a>
+	<?php } elseif ( $item['type'] == 'chapter' ) { ?>
+	<li id="item-<?php echo intval( $index ) ?>" class="chapter">
+		<a onclick="return coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'remove_item', 'index=' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-remove' ) ?>" /></a>
 		<noscript>
-		<?php if ($index == 0) { ?>
-			<img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" />
+		<?php if ( $index == 0 ) { ?>
+			<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" />
 		<?php } else { ?>
-			<a onclick="return coll_move_item(<?php echo $index . ', -1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'move_item/', 'delta=-1&index=' . $index)) ?>" title="<?php $this->msg('coll-move_up') ?>"><img src="<?php echo htmlspecialchars($mediapath . "up.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_up') ?>" /></a>
+			<a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_up' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "up.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_up' ) ?>" /></a>
 		<?php }
-		if ($index == count($this->data['collection']['items']) - 1) { ?>
-			<img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" />
+		if ( $index == count( $this->data['collection']['items'] ) - 1 ) { ?>
+			<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" />
 		<?php } else { ?>
-			<a onclick="return coll_move_item(<?php echo $index . ', 1' ?>)" href="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'move_item/', 'delta=1&index=' . $index)) ?>" title="<?php $this->msg('coll-move_down') ?>"><img src="<?php echo htmlspecialchars($mediapath . "down.png") ?>" width="10" height="10" alt="<?php $this->msg('coll-move_down') ?>" /></a>
+			<a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta' => '1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_down' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath . "down.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a>
 		<?php } ?>
 		</noscript>
-		<img src="<?php echo htmlspecialchars($mediapath . "trans.png") ?>" width="10" height="10" alt="" />
-		<strong class="title sortableitem" style="margin-left: 0.2em;"><?php echo htmlspecialchars($item['title']) ?></strong>
-		<a class="makeVisible" <?php if (!isset($this->data['is_ajax'])) { echo 'style="display:none"'; } ?> onclick="return coll_rename_chapter(<?php echo $index . ', \'' . $item['title'] . '\''; ?>)" href="javascript:void(0)">[<?php $this->msg('coll-rename') ?>]</a>
+		<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt="" />
+		<strong class="title sortableitem" style="margin-left: 0.2em;"><?php echo htmlspecialchars( $item['title'] ) ?></strong>
+		<a class="makeVisible" <?php if ( !isset( $this->data['is_ajax'] ) ) { echo 'style="display:none"'; } ?> onclick="<?php echo htmlspecialchars( 'return coll_rename_chapter(' . intval( $index ) . ', ' . Xml::encodeJsVar( $item['title'] ) . ')' ) ?>" href="javascript:void(0)">[<?php $this->msg( 'coll-rename' ) ?>]</a>
 	</li>
 	<?php }
 } ?>
@@ -260,13 +286,14 @@
 	function execute() {
 ?>
 
-<?php $this->msgWiki('coll-load_overwrite_text'); ?>
+<?php $this->msgWiki( 'coll-load_overwrite_text' ); ?>
 
-<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'load_collection/')) ?>" method="post">
-	<input name="overwrite" type="submit" value="<?php $this->msg('coll-overwrite') ?>" />
-	<input name="append" type="submit" value="<?php $this->msg('coll-append') ?>" />
-	<input name="cancel" type="submit" value="<?php $this->msg('coll-cancel') ?>" />
-	<input name="colltitle" type="hidden" value="<?php echo htmlspecialchars($this->data['title']->getPrefixedText()) ?>" />
+<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+	<input name="overwrite" type="submit" value="<?php $this->msg( 'coll-overwrite' ) ?>" />
+	<input name="append" type="submit" value="<?php $this->msg( 'coll-append' ) ?>" />
+	<input name="cancel" type="submit" value="<?php $this->msg( 'coll-cancel' ) ?>" />
+	<input name="bookcmd" type="hidden" value="load_collection" />
+	<input name="colltitle" type="hidden" value="<?php echo htmlspecialchars( $this->data['title']->getPrefixedText() ) ?>" />
 </form>
 
 <?php
@@ -281,14 +308,18 @@
 	function execute() {
 ?>
 
-<h2><span class="mw-headline"><?php $this->msg('coll-overwrite_title') ?></span></h2>
+<h2><span class="mw-headline"><?php $this->msg( 'coll-overwrite_title' ) ?></span></h2>
 
-<p><?php echo $GLOBALS['wgParser']->parse(wfMsgNoTrans('coll-overwrite_text', $this->data['title']->getPrefixedText()), $GLOBALS['wgTitle'], $GLOBALS['wgOut']->parserOptions(), true)->getText() ?></p>
+<p><?php echo wfMsgExt( 'coll-overwrite_text', 'parse', $this->data['title']->getPrefixedText() ); ?></p>
 
-<form action="<?php echo htmlspecialchars(SkinTemplate::makeSpecialUrlSubpage('Book', 'save_collection/')) ?>" method="post">
-	<input name="overwrite" type="submit" value="<?php $this->msg('coll-yes') ?>" />
-	<input name="abort" type="submit" value="<?php $this->msg('coll-no') ?>" />
-	<input name="colltitle" type="hidden" value="<?php echo htmlspecialchars($this->data['title']->getPrefixedText()) ?>" />
+<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+	<input name="overwrite" type="submit" value="<?php $this->msg( 'coll-yes' ) ?>" />
+	<input name="abort" type="submit" value="<?php $this->msg( 'coll-no' ) ?>" />
+	<input name="pcollname" type="hidden" value="<?php echo htmlspecialchars( $this->data['pcollname'] ) ?>" />
+	<input name="ccollname" type="hidden" value="<?php echo htmlspecialchars( $this->data['ccollname'] ) ?>" />
+	<input name="colltype" type="hidden" value="<?php echo htmlspecialchars( $this->data['colltype'] ) ?>" />
+	<input name="token" type="hidden" value="<?php echo htmlspecialchars( $GLOBALS['wgUser']->editToken() ) ?>" />
+	<input name="bookcmd" type="hidden" value="save_collection" />
 </form>
 
 <?php
@@ -304,13 +335,22 @@
 ?>
 
 
-<span style="display:none" id="renderingStatusText"><?php echo wfMsg('coll-rendering_status', '%PARAM%') ?></span>
-<span style="display:none" id="renderingArticle"><?php echo ' ' . wfMsg('coll-rendering_article', '%PARAM%') ?></span>
-<span style="display:none" id="renderingPage"><?php echo ' ' . wfMsg('coll-rendering_page', '%PARAM%') ?></span>
+<span style="display:none" id="renderingStatusText"><?php echo wfMsg( 'coll-rendering_status', '%PARAM%' ) ?></span>
+<span style="display:none" id="renderingArticle"><?php echo ' ' . wfMsg( 'coll-rendering_article', '%PARAM%' ) ?></span>
+<span style="display:none" id="renderingPage"><?php echo ' ' . wfMsg( 'coll-rendering_page', '%PARAM%' ) ?></span>
 
-<?php echo wfMsg('coll-rendering_text',	$GLOBALS['wgLang']->formatNum($this->data['progress']), $this->data['status']) ?>
+<?php echo wfMsg( 'coll-rendering_text', number_format( $this->data['progress'], 2, '.', '' ), $this->data['status'] ) ?>
 
 <?php
+		if ( CollectionSession::isEnabled() ) {
+			$title_string = wfMsgForContent( 'coll-rendering_collection_info_text_article' );
+		} else {
+			$title_string = wfMsgForContent( 'coll-rendering_page_info_text_article' );
+		}
+		$t = Title::newFromText( $title_string );
+		if ( $t && $t->exists() ) {
+			echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
+		}
 	}
 }
 
@@ -321,48 +361,143 @@
 class CollectionFinishedTemplate extends QuickTemplate {
 	function execute() {
 
-echo $GLOBALS['wgParser']->parse(
-	wfMsgNoTrans('coll-rendering_finished_text', $this->data['download_url']),
-	$GLOBALS['wgTitle'],
-	$GLOBALS['wgOut']->parserOptions(),
-	true
-)->getText();
+echo wfMsgExt( 'coll-rendering_finished_text', 'parse', $this->data['download_url'] );
 
-if ($this->data['is_cached']) {
-	$forceRenderURL = SkinTemplate::makeSpecialUrlSubpage('Book', 'forcerender/', $this->data['query']);
-	echo wfMsg('coll-is_cached', htmlspecialchars($forceRenderURL));
+if ( $this->data['is_cached'] ) {
+	$forceRenderURL = SkinTemplate::makeSpecialUrl( 'Book', 'bookcmd=forcerender&' . $this->data['query'] );
+	echo wfMsg( 'coll-is_cached', htmlspecialchars( $forceRenderURL ) );
 }
-echo $GLOBALS['wgParser']->parse(
-	wfMsgNoTrans('coll-excluded-templates', wfMsgForContent('coll-exclusion_category_title')),
-	$GLOBALS['wgTitle'],
-	$GLOBALS['wgOut']->parserOptions(),
-	true
-)->getText();
-$title_string = wfMsgForContent('coll-template_blacklist_title');
-$t = Title::newFromText($title_string);
-$a = new Article($t);
-if ( $a->exists() ) {
-  echo $GLOBALS['wgParser']->parse(
-    wfMsgNoTrans('coll-blacklisted-templates', $title_string),
-    $GLOBALS['wgTitle'],
-    $GLOBALS['wgOut']->parserOptions(),
-    true
-  )->getText();
+echo wfMsgExt( 'coll-excluded-templates', 'parse', wfMsgForContent( 'coll-exclusion_category_title' ) );
+$title_string = wfMsgForContent( 'coll-template_blacklist_title' );
+$t = Title::newFromText( $title_string );
+if ( $t && $t->exists() ) {
+	echo wfMsgExt( 'coll-blacklisted-templates', 'parse', $title_string );
 }
-if ($this->data['return_to']) {
+if ( $this->data['return_to'] ) {
 	// We are doing this the hard way (i.e. via the HTML detour), to prevent
 	// the parser from replacing [[:Special:Book]] with a selflink.
-	$t = Title::newFromText($this->data['return_to']);
+	$t = Title::newFromText( $this->data['return_to'] );
 	echo wfMsg(
 		'coll-return_to_collection',
-		htmlspecialchars($t->getFullURL()),
-		htmlspecialchars($this->data['return_to'])
+		htmlspecialchars( $t->getFullURL() ),
+		htmlspecialchars( $this->data['return_to'] )
 	);
 }
+
+if ( CollectionSession::isEnabled() ) {
+	$title_string = wfMsgForContent( 'coll-finished_collection_info_text_article' );
+} else {
+	$title_string = wfMsgForContent( 'coll-finished_page_info_text_article' );
+}
+$t = Title::newFromText( $title_string );
+if ( $t && $t->exists() ) {
+	echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
+}
 ?>
 
 <?php
 	}
 }
 
+/**
+ * Template for suggest feature
+ *
+ * It needs the two methods getProposalList() and getMemberList()
+ * to run with Ajax
+ */
+class CollectionSuggestTemplate extends QuickTemplate {
+	function execute () {
 ?>
+<div>
+	<?php $this->msg( 'coll-suggest_intro_text' ) ?>
+	<div id="collectionSuggestStatus" style="text-align: center; margin: 5px auto 10px auto; padding: 0 4px; border: 1px solid #ed9; background-color: #fea; visibility: hidden;"> </div>
+	<table style="width: 100%; border-spacing: 10px;"><tbody><tr>
+		<td style="padding: 10px; vertical-align: top;">
+			<form method="post" action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest' ) ) ) ?>">
+				<strong style="font-size: 1.2em;"><?php $this->msg( 'coll-suggested_articles' ) ?></strong>
+				(<a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'resetbans' => '1' ) ) ) ?>" title="<?php $this->msg( 'coll-suggest_reset_bans_tooltip' ) ?>"><?php $this->msg( 'coll-suggest_reset_bans' ) ?></a>)
+				<?php if ( count( $this->data['proposals'] ) > 0 ) { ?>
+				<noscript>
+				<div id="collection-suggest-add">
+					<input type="submit" value="<?php $this->msg( 'coll-suggest_add_selected' ) ?>" name="addselected" />
+				</div>
+				</noscript>
+				<?php } ?>
+				<ul id="collectionSuggestions" style="list-style: none; margin-left: 0;">
+				<?php echo $this->getProposalList() ?>
+				</ul>
+			</form>
+		</td>
+		<td style="width: 45%; vertical-align: top;">
+			<div style="padding: 10px; border: 1px solid #aaa; background-color: #f9f9f9;">
+				<strong style="font-size: 1.2em;"><?php $this->msg( 'coll-suggest_your_book' ) ?></strong>
+				(<span id="coll-num_pages"><?php echo wfMsgExt( 'coll-n_pages', 'parsemag', $GLOBALS['wgLang']->formatNum( $this->data['num_pages'] ) )?></span><?php echo wfMsg( 'pipe-separator' )?><a href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" title="<?php $this->msg( 'coll-show_collection_tooltip' ) ?>"><?php $this->msg( 'coll-suggest_show' ) ?></a>)
+				<ul id="collectionMembers" style="list-style: none; margin-left: 0;">
+				<?php echo $this->getMemberList(); ?>
+				</ul>
+			</div>
+		</td>
+	</tr></tbody></table>
+</div>
+<?php
+	}
+
+	// needed for Ajax functions
+	function getProposalList () {
+		global $wgScript, $wgScriptPath;
+
+		$mediapath = $wgScriptPath . '/extensions/Collection/images/';
+		$baseUrl = $wgScript . "/";
+
+		$prop = $this->data['proposals'];
+		$out = '';
+
+		$num = count( $prop );
+		if ( $num == 0 ) {
+			return "<li>" . wfMsgHtml( 'coll-suggest_empty' ) . "</li>";
+		}
+
+		$artName = $prop[0]['name'];
+		$title = Title::newFromText( $artName );
+		$url = $title->getLocalUrl();
+		$out .= '<li style="margin-bottom: 10px; padding: 4px 4px; background-color: #ddddff; font-size: 1.4em; font-weight: bold;">';
+		$out .= '<noscript><input type="checkbox" value="' . htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>';
+		$out .= '<a onclick="' . htmlspecialchars( 'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' => $artName ) ) ) . '" title="' . wfMsgHtml( 'coll-add_this_page' ) . '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '" width="16" height="16" alt=""></a> ';
+		$out .= '<a onclick="' . htmlspecialchars( 'collectionSuggestCall("BanArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'ban' => $artName ) ) ) . '" title="' . wfMsgHtml( 'coll-suggest_ban_tooltip' ) . '"><img src="' . htmlspecialchars( $mediapath . 'silk-cancel.png' ) . '" width="16" height="16" alt=""></a> ';
+		$out .= '<a href="' . htmlspecialchars( $url ) . '" title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a>';
+		$out .= '</li>';
+
+		for ( $i = 1; $i < $num; $i++ ) {
+			$artName = $prop[$i]['name'];
+			$url = $baseUrl . $artName;
+			$url = str_replace( " ", "_", $url );
+			$out .= '<li style="padding-left: 4px;">';
+			$out .= '<noscript><input type="checkbox" value="' . htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>';
+			$out .= '<a onclick="' . htmlspecialchars( 'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' => $artName ) ) ) . '" title="' . wfMsgHtml( 'coll-add_this_page' ) . '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '" width="16" height="16" alt=""></a> ';
+			$out .= '<a href="' . htmlspecialchars( $url ) . '" title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a>';
+			$out .= '</li>';
+		}
+
+		return $out;
+	}
+
+	// needed for Ajax functions
+	function getMemberList() {
+		$mediapath = $GLOBALS['wgScriptPath'] . '/extensions/Collection/images/';
+		$coll = $this->data['collection'];
+		$out = '';
+
+		$num = count( $coll['items'] );
+		if ( $num == 0 ) $out .= "<li>" . wfMsgHtml( 'coll-suggest_empty' ) . "</li>";
+
+		for ( $i = 0; $i < $num; $i++ ) {
+			$artName = $coll['items'][$i]['title'];
+			if ( $coll['items'][$i]['type'] == 'article' ) {
+			  $out .= '<li><a href="' . htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'remove' => $artName ) ) ) . '" onclick="' . htmlspecialchars( 'collectionSuggestCall("RemoveArticle", ' . Xml::encodeJsVar( array( $artName ) ) . '); return false;' ) . '" title="' . wfMsgHtml( 'coll-remove_this_page' ) . '"><img src="' . htmlspecialchars( $mediapath . 'remove.png' ) . '" width="10" height="10" alt=""></a> ';
+				$out .= '<a href="' . htmlspecialchars( $coll['items'][$i]['url'] ) . '" title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a></li>';
+			}
+		}
+
+		return $out;
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/CollectionCore.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/CollectionCore.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/CollectionCore.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,4325 @@
+<?php
+
+/**
+ * Collection Extension for MediaWiki
+ * For performance reasons, this file only contains the extension messages
+ * that are used from hooks that are almost always loaded.
+ *
+ * Copyright (C) PediaPress GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+$messages = array();
+
+$messages['en'] = array(
+	'coll-print_export'             => 'Print/export',
+	'coll-create_a_book'            => 'Create a book',
+	'coll-create_a_book_tooltip'    => 'Create a book or page collection',
+	'coll-book_creator'             => 'Book creator',
+	'coll-download_as'              => 'Download as $1',
+	'coll-download_as_tooltip'      => 'Download a $1 version of this wiki page',
+	'coll-disable'                  => 'disable',
+	'coll-book_creator_disable'     => 'Disable book creator',
+	'coll-book_creator_disable_tooltip' => 'Stop using the book creator',
+	'coll-add_linked_article'       => 'Add linked wiki page to your book',
+	'coll-remove_linked_article'    => 'Remove linked wiki page from your book',
+	'coll-add_category'             => 'Add this category to your book',
+	'coll-add_category_tooltip'     => 'Add all wiki pages in this category to your book',
+	'coll-add_this_page'            => 'Add this page to your book',
+	'coll-add_page_tooltip'         => 'Add the current wiki page to your book',
+	'coll-bookscategory'            => 'Books',
+	'coll-clear_collection'         => 'Clear book',
+	'coll-clear_collection_confirm' => 'Do you really want to completely clear your book?',
+	'coll-clear_collection_tooltip' => 'Remove all wiki pages from your current book',
+	'coll-help'                     => 'Help',
+	'coll-help_tooltip'             => 'Show help about creating books',
+	'coll-helppage'                 => 'Help:Books',
+	'coll-load_collection'          => 'Load book',
+	'coll-load_collection_tooltip'  => 'Load this book as your current book',
+	'coll-n_pages'                  => '$1 {{PLURAL:$1|page|pages}}',
+	'coll-printable_version_pdf'    => 'PDF version',
+	'coll-remove_this_page'         => 'Remove this page from your book',
+	'coll-remove_page_tooltip'      => 'Remove the current wiki page from your book',
+	'coll-show_collection'          => 'Show book',
+	'coll-show_collection_tooltip'  => 'Click to edit/download/order your book',
+	'coll-not_addable'              => 'This page cannot be added',
+	'coll-make_suggestions'         => 'Suggest pages',
+	'coll-make_suggestions_tooltip' => 'Show suggestions based on the pages in your book',
+	'coll-suggest_enabled'          => '1',
+	'coll-suggest_empty'            => 'empty',
+	'coll-user_book_prefix'         => '-',
+	'coll-community_book_prefix'    => '-',
+);
+
+/** Message documentation (Message documentation)
+ * @author Aleator
+ * @author Amire80
+ * @author Aotake
+ * @author EugeneZelenko
+ * @author Fryed-peach
+ * @author Lloffiwr
+ * @author Mormegil
+ * @author Siebrand
+ * @author Teak
+ */
+$messages['qqq'] = array(
+	'coll-print_export' => 'Caption of a frame in the toolbar (on the left-hand side of the screen), similar to {{msg-mw|toolbox}} or {{msg-mw|otherlanguages}}.',
+	'coll-create_a_book' => '{{Identical|Books}}',
+	'coll-download_as' => '$1 is a file format.
+
+{{Identical|Download}}',
+	'coll-download_as_tooltip' => '* $1 is some file format(s)',
+	'coll-disable' => 'Stop using the book creator',
+	'coll-bookscategory' => '{{Identical|Book}}',
+	'coll-clear_collection' => '',
+	'coll-clear_collection_confirm' => 'Message box when pressed "Clear book".',
+	'coll-help' => '{{Identical|Help}}',
+	'coll-helppage' => "Used as a link to the help page for this extension's functionality on a wiki. '''Do not translate ''Help:''.'''
+{{Identical|Book}}",
+	'coll-n_pages' => '{{Identical|Page}}',
+	'coll-printable_version_pdf' => 'Caption of a link in the [[mw:Help:Navigation#Toolbox|toolbox]] leading to the PDF version of the current page',
+	'coll-suggest_empty' => '{{Identical|Empty}}',
+);
+
+/** Afrikaans (Afrikaans)
+ * @author Anrie
+ * @author Arnobarnard
+ * @author Naudefj
+ * @author පසිඳු කාවින්ද
+ */
+$messages['af'] = array(
+	'coll-print_export' => 'Druk/eksporteer',
+	'coll-create_a_book' => "Skep 'n boek",
+	'coll-create_a_book_tooltip' => "Skep 'n boek of versameling van bladsye",
+	'coll-book_creator' => 'Boekmaker',
+	'coll-download_as' => 'Laai af as $1',
+	'coll-download_as_tooltip' => "Laai 'n $1-weergawe van die wikibladsy af",
+	'coll-disable' => 'deaktiveer',
+	'coll-book_creator_disable' => 'Boek skepper afskakel',
+	'coll-book_creator_disable_tooltip' => 'Hou op om met behulp van die boek outeur',
+	'coll-add_linked_article' => 'Voeg gekoppel wiki bladsy aan jou boek',
+	'coll-remove_linked_article' => 'Verwyder gekoppel wiki bladsy van jou boek',
+	'coll-add_category' => 'Voeg die kategorie by jou boek',
+	'coll-add_category_tooltip' => 'Voeg al die wikiblaaie in hierdie kategorie by u boek',
+	'coll-add_this_page' => 'Voeg hierdie bladsy by u boek',
+	'coll-add_page_tooltip' => 'Voeg die huidige wikiblad by u boek',
+	'coll-bookscategory' => 'Boeke',
+	'coll-clear_collection' => 'Maak boek leeg',
+	'coll-clear_collection_confirm' => 'Wil jy regtig jou boek heeltemal duidelik?',
+	'coll-clear_collection_tooltip' => 'Verwyder alle wiki-bladsye uit jou huidige boek',
+	'coll-help' => 'Help',
+	'coll-help_tooltip' => 'Wys help oor die skep van boeke',
+	'coll-helppage' => 'Help:Boeke',
+	'coll-load_collection' => 'Laai boek',
+	'coll-load_collection_tooltip' => 'Laai hierdie boek as jou huidige boek',
+	'coll-n_pages' => '$1 {{PLURAL:$1|bladsy|bladsye}}',
+	'coll-printable_version_pdf' => 'PDF-weergawe',
+	'coll-remove_this_page' => 'Verwyder hierdie bladsy uit u boek',
+	'coll-remove_page_tooltip' => 'Verwyder die huidige wiki bladsy van jou boek',
+	'coll-show_collection' => 'Wys boek',
+	'coll-not_addable' => 'Hierdie bladsy kan nie bygevoeg word nie',
+	'coll-make_suggestions' => 'Stel bladsye voor',
+	'coll-make_suggestions_tooltip' => 'Wys voorstelle wat gebaseer is op die bladsye in jou boek',
+	'coll-suggest_empty' => 'leegmaak',
+);
+
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ */
+$messages['an'] = array(
+	'coll-print_export' => 'Imprentar/exportar',
+	'coll-create_a_book' => 'Creyar un libro',
+	'coll-create_a_book_tooltip' => 'Creyar un libro u replega de pachinas',
+	'coll-book_creator' => 'Creyador de libros',
+	'coll-download_as' => 'Descargar como $1',
+	'coll-download_as_tooltip' => "Descargar una versión $1 d'ista pachina wiki",
+	'coll-disable' => 'Desactivar',
+	'coll-book_creator_disable' => 'Desactivar o creyador de libros',
+	'coll-book_creator_disable_tooltip' => "Deixar d'usar o creyador de libros",
+	'coll-add_linked_article' => 'Adhibir una pachina wiki vinculada a o tuyo libro',
+	'coll-remove_linked_article' => "Eliminar una pachina wiki vinculada d'o tuyo libro",
+	'coll-add_category' => 'Adhibir ista categoría a o tuyo libro',
+	'coll-add_category_tooltip' => 'Adhibir todas as pachinas wiki en ista categoría a o tuyo libro',
+	'coll-add_this_page' => 'Adhibir ista pachina a o suyo libro',
+	'coll-add_page_tooltip' => 'Adhibir a pachina wiki actual a o tuyo libro',
+	'coll-bookscategory' => 'Libros',
+	'coll-clear_collection' => 'Borrar libro',
+	'coll-clear_collection_confirm' => 'De verdat quiere borrar de tot iste libro?',
+	'coll-clear_collection_tooltip' => "Sacar todas as pachinas wiki d'o suyo libro actual",
+	'coll-help' => 'Aduya',
+	'coll-help_tooltip' => 'Amostrar aduya sobre a creyación de libros',
+	'coll-helppage' => 'Help:Libros',
+	'coll-load_collection' => 'Cargar libro',
+	'coll-load_collection_tooltip' => 'Cargar iste libro como o suyo libro actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pachina|pachinas}}',
+	'coll-printable_version_pdf' => 'Versión PDF',
+	'coll-remove_this_page' => "Sacar ista pachina d'o suyo libro",
+	'coll-remove_page_tooltip' => "Sacar a pachina wiki actual d'o suyo libro",
+	'coll-show_collection' => 'Amostrar libro',
+	'coll-show_collection_tooltip' => 'Faiga click ta editar/descargar/encargar o suyo libro',
+	'coll-not_addable' => 'Ista pachina no se i puede adhibir',
+	'coll-make_suggestions' => 'Sucherir pachinas',
+	'coll-make_suggestions_tooltip' => "Amostrar sucherencias basadas en as pachinas d'o suyo libro",
+	'coll-suggest_empty' => 'vuedo',
+);
+
+/** Arabic (العربية)
+ * @author Antime
+ * @author Ciphers
+ * @author Meno25
+ * @author OsamaK
+ * @author Prof.Sherif
+ * @author Samer
+ * @author زكريا
+ */
+$messages['ar'] = array(
+	'coll-print_export' => 'طباعة وتصدير',
+	'coll-create_a_book' => 'إنشاء كتاب',
+	'coll-create_a_book_tooltip' => 'أنشئ كتابًا أو صفحة مجموعة',
+	'coll-book_creator' => 'منشئ الكتب',
+	'coll-download_as' => 'تحميل ب$1',
+	'coll-download_as_tooltip' => 'تحميل نسخة $1 من صفحة الويكي هذه.',
+	'coll-disable' => 'عطّل',
+	'coll-book_creator_disable' => 'عطّل منشئ الكتب',
+	'coll-book_creator_disable_tooltip' => 'أوقف استخدام منشئ الكتب',
+	'coll-add_linked_article' => 'أضف صفحة ويكي مربوطة إلى كتابك',
+	'coll-remove_linked_article' => 'أزل صفحة ويكي مربوطة من كتابك',
+	'coll-add_category' => 'إضافة هذا التصنيف إلى كتابك',
+	'coll-add_category_tooltip' => 'أضف كل صفحات الويكي في هذا التصنيف لكتابك',
+	'coll-add_this_page' => 'أضف هذه الصفحة إلى كتابك',
+	'coll-add_page_tooltip' => 'أضف صفحة الويكي الحالية إلى كتابك',
+	'coll-bookscategory' => 'كتب',
+	'coll-clear_collection' => 'إفراغ الكتاب',
+	'coll-clear_collection_confirm' => 'هل تريد حقا إفراغ كتابك بالكامل؟',
+	'coll-clear_collection_tooltip' => 'أزل كل صفحات الويكي من كتابك الحالي',
+	'coll-help' => 'مساعدة',
+	'coll-help_tooltip' => 'أظهر مساعدة عن كيفية إنشاء الكتب',
+	'coll-helppage' => 'Help:كتب',
+	'coll-load_collection' => 'تحميل الكتاب',
+	'coll-load_collection_tooltip' => 'حمل هذا الكتاب ككتابك الحالي',
+	'coll-n_pages' => '{{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}}',
+	'coll-printable_version_pdf' => 'نسخة صيغة المستندات المحمولة',
+	'coll-remove_this_page' => 'أزل هذه الصفحة من كتابك',
+	'coll-remove_page_tooltip' => 'أزل صفحة الويكي الحالية من كتابك',
+	'coll-show_collection' => 'عرض الكتاب',
+	'coll-show_collection_tooltip' => 'اضغط لتعديل/تنزيل/طلب كتابك',
+	'coll-not_addable' => 'لا يمكن إضافة هذه الصفحة',
+	'coll-make_suggestions' => 'اقترح صفحات',
+	'coll-make_suggestions_tooltip' => 'أظهر التعديلات بناءً على صفحات كتابك',
+	'coll-suggest_empty' => 'فارغ',
+);
+
+/** Aramaic (ܐܪܡܝܐ)
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'coll-print_export' => 'ܛܒܘܥ/ܐܦܩ',
+	'coll-create_a_book' => 'ܒܪܝ ܟܬܒܐ',
+	'coll-book_creator' => 'ܒܪܘܝܐ ܕܟܬܒܐ',
+	'coll-download_as' => 'ܐܚܬ ܐܝܟ $1',
+	'coll-bookscategory' => 'ܟܬܒ̈ܐ',
+	'coll-help' => 'ܥܘܕܪܢܐ',
+	'coll-helppage' => 'Help:ܟܬܒ̈ܐ',
+	'coll-n_pages' => '$1 {{PLURAL:$1|ܕܦܐ|ܕܦ̈ܐ}}',
+	'coll-printable_version_pdf' => 'ܨܚܚܐ ܕPDF',
+	'coll-show_collection' => 'ܚܘܝ ܟܬܒܐ',
+	'coll-suggest_empty' => 'ܣܦܝܩܐ',
+);
+
+/** Egyptian Spoken Arabic (مصرى)
+ * @author Dudi
+ * @author Ghaly
+ * @author Meno25
+ * @author Ramsis II
+ */
+$messages['arz'] = array(
+	'coll-print_export' => 'اطبع/صدّر',
+	'coll-create_a_book' => 'إعمل كتاب',
+	'coll-create_a_book_tooltip' => 'إعمل كتاب او مجموعة صفح',
+	'coll-book_creator' => 'صاحب الكتاب',
+	'coll-download_as' => 'Download as $1',
+	'coll-download_as_tooltip' => 'Download a $1 version of this wiki page',
+	'coll-disable' => 'disable',
+	'coll-book_creator_disable' => 'Disable الاوپشن بتاع خلق الكتب',
+	'coll-book_creator_disable_tooltip' => 'وقّف استعمال الاوپشن بتاع خلق الكتب',
+	'coll-add_linked_article' => 'زوّد لينك صفحة الwiki فى الكتاب بتاعك',
+	'coll-remove_linked_article' => 'إمسح لينك صفحة الwiki من الكتاب بتاعك',
+	'coll-add_category' => 'زودّ التصنيف ده على الكتاب بتاعك',
+	'coll-add_category_tooltip' => 'زوّد كل صفح الwiki فى التصنيف ده فى كتابك',
+	'coll-add_this_page' => 'زوّد الصفحه دى فى الكتاب بتاعك',
+	'coll-add_page_tooltip' => 'زوّد صفحة الwiki بتاعة دلوقتى فى الكتاب بتاعك',
+	'coll-bookscategory' => 'كتب',
+	'coll-clear_collection' => 'فضّى الكتاب',
+	'coll-clear_collection_confirm' => 'هو انت فعلا عاوز تفضّى الكتاب بتاعك خالص؟',
+	'coll-clear_collection_tooltip' => 'شيل كل صفح الwiki من الكتاب بتاعك بتاع دلوقتى',
+	'coll-help' => 'مساعده',
+	'coll-help_tooltip' => 'بيّن المساعده بتاعة خلق الكتب',
+	'coll-helppage' => 'Help:كتب',
+	'coll-load_collection' => 'Load book',
+	'coll-load_collection_tooltip' => 'إعمل load للكتاب ده علشان يبقى الكتاب بتاعك بتاع دلوقتى',
+	'coll-n_pages' => '$1 {{PLURAL:$1|صفحه|صفحه}}',
+	'coll-printable_version_pdf' => 'نسخه PDF',
+	'coll-remove_this_page' => 'إمسح الصفحه دى من الكتاب بتاعك',
+	'coll-remove_page_tooltip' => 'إمسح صفحة الwiki بتاعة دلوقتى من الكتاب بتاعك',
+	'coll-show_collection' => 'إعرض الكتاب',
+	'coll-show_collection_tooltip' => 'دوس على تعديل/download/‏order الكتاب بتاعك',
+	'coll-not_addable' => 'الصفحه دى مش نافعه تتزوّد',
+	'coll-make_suggestions' => 'إقترح صفح',
+	'coll-make_suggestions_tooltip' => 'إعرض الإقتراحات على اساس صفح الكتاب بتاعك',
+	'coll-suggest_empty' => 'فاضى',
+);
+
+/** Asturian (Asturianu)
+ * @author Esbardu
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'coll-print_export' => 'Imprentar/esportar',
+	'coll-create_a_book' => 'Crear un llibru',
+	'coll-create_a_book_tooltip' => 'Crear un llibru o coleición de páxines',
+	'coll-book_creator' => 'Creador de llibros',
+	'coll-download_as' => 'Descargar como $1',
+	'coll-download_as_tooltip' => "Descargar una versión $1 d'esta páxina wiki",
+	'coll-disable' => 'desactivar',
+	'coll-book_creator_disable' => 'Desactivar el creador de llibros',
+	'coll-book_creator_disable_tooltip' => "Dexar d'usar el creador de llibros",
+	'coll-add_linked_article' => 'Amestar páxina wiki enllazada al to llibru',
+	'coll-remove_linked_article' => 'Desaniciar páxina wiki enllazada del to llibru',
+	'coll-add_category' => 'Amestar esta categoría al to llibru',
+	'coll-add_category_tooltip' => "Amestar toles páxines wiki d'esta categoría al to llibru",
+	'coll-add_this_page' => 'Amestar esta páxina al to llibru',
+	'coll-add_page_tooltip' => 'Amestar la páxina wiki actual al to llibru',
+	'coll-bookscategory' => 'Llibros',
+	'coll-clear_collection' => 'Llimpiar llibru',
+	'coll-clear_collection_confirm' => "¿De xuro quies llimpiar dafechu'l to llibru?",
+	'coll-clear_collection_tooltip' => 'Desaniciar toles páxines wiki del llibru actual',
+	'coll-help' => 'Ayuda',
+	'coll-help_tooltip' => "Amosar l'ayuda tocante a crear llibros",
+	'coll-helppage' => 'Help:Llibros',
+	'coll-load_collection' => 'Cargar llibru',
+	'coll-load_collection_tooltip' => "Cargar esti llibru como'l to llibru actual",
+	'coll-n_pages' => '$1 {{PLURAL:$1|páxina|páxines}}',
+	'coll-printable_version_pdf' => 'Versión PDF',
+	'coll-remove_this_page' => 'Desaniciar esta páxina del to llibru',
+	'coll-remove_page_tooltip' => 'Desaniciar la páxina wiki actual del to llibru',
+	'coll-show_collection' => 'Amosar llibru',
+	'coll-show_collection_tooltip' => 'Calca pa editar/descargar/pidir el to llibru',
+	'coll-not_addable' => 'Esta páxina nun se pue amestar',
+	'coll-make_suggestions' => 'Suxerir páxines',
+	'coll-make_suggestions_tooltip' => 'Amosar suxerencies basándose nes páxines del to llibru',
+	'coll-suggest_empty' => 'balero',
+);
+
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ */
+$messages['az'] = array(
+	'coll-bookscategory' => 'Kitablar',
+	'coll-help' => 'Kömək',
+	'coll-helppage' => 'Kömək:Kitablar',
+	'coll-suggest_empty' => 'boş',
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ * @author Haqmar
+ */
+$messages['ba'] = array(
+	'coll-print_export' => 'Баҫтырырға/сығарырға',
+	'coll-create_a_book' => 'Китап булдырырға',
+	'coll-create_a_book_tooltip' => 'Китап йәки биттәр йыйынтығын булдырырға',
+	'coll-book_creator' => 'Китап оҫтаһы',
+	'coll-download_as' => '$1 форматында күсереп алырға',
+	'coll-download_as_tooltip' => 'Был вики-биттең $1 өлгөһөн күсереп алырға',
+	'coll-disable' => 'һүндерергә',
+	'coll-book_creator_disable' => 'Китап оҫтаһын һүндерергә',
+	'coll-book_creator_disable_tooltip' => 'Китап оҫтаһын ҡүлланыуҙы туҡтатырға',
+	'coll-add_linked_article' => 'Бәйле вики-битте китабығыҙға өҫтәргә',
+	'coll-remove_linked_article' => 'Бәйле вики-битте китабығыҙҙан юйырға',
+	'coll-add_category' => 'Был категорияны китабығыҙға өҫтәргә',
+	'coll-add_category_tooltip' => 'Был категорияның вики-биттәрен китабығыҙға өҫтәргә',
+	'coll-add_this_page' => 'Был битте китабығыҙға өҫтәргә',
+	'coll-add_page_tooltip' => 'Ағымдағы вики-битте китабығыҙға өҫтәргә',
+	'coll-bookscategory' => 'Китаптар',
+	'coll-clear_collection' => 'Китапты таҙартырға',
+	'coll-clear_collection_confirm' => 'Һеҙ ысынлап та китабығыҙҙы тулыһынса таҙартырға теләйһегеҙме?',
+	'coll-clear_collection_tooltip' => 'Бөтә вики-биттәрҙе ағымдағы китабығыҙҙан юйырға',
+	'coll-help' => 'Белешмә',
+	'coll-help_tooltip' => 'Китап булдырыу тураһында белешмә күрһәтергә',
+	'coll-helppage' => 'Help:Китаптар',
+	'coll-load_collection' => 'Китап тейәргә',
+	'coll-load_collection_tooltip' => 'Был китапты ағымдағы китабығыҙ рәүешендә тейәргә',
+	'coll-n_pages' => '$1 {{PLURAL:$1|бит}}',
+	'coll-printable_version_pdf' => 'PDF өлгөһө',
+	'coll-remove_this_page' => 'Был битте китабығыҙҙан сығарығыҙ',
+	'coll-remove_page_tooltip' => 'Ағымдағы вики-битте китабығыҙҙан сығарырға',
+	'coll-show_collection' => 'Китапты күрһәтергә',
+	'coll-show_collection_tooltip' => 'Китапты мөхәррирләү/тейәү/заказ биреү өсөн баҫығыҙ',
+	'coll-not_addable' => 'Был битте өҫтәп булмай',
+	'coll-make_suggestions' => 'Тәҡдим ителгән биттәр',
+	'coll-make_suggestions_tooltip' => 'Китабығыҙҙа булған биттәргә таянып һөйләмдәрҙе күрһәт',
+	'coll-suggest_empty' => 'буш',
+);
+
+/** Bavarian (Boarisch)
+ * @author Mucalexx
+ */
+$messages['bar'] = array(
+	'coll-print_export' => 'Durcka/exportiarn',
+	'coll-create_a_book' => 'Buach erstöin',
+	'coll-create_a_book_tooltip' => 'A Buach oder a Artikesåmmlung erstöin',
+	'coll-book_creator' => 'Buachgenarator',
+	'coll-download_as' => 'Ois $1 owerloon',
+	'coll-download_as_tooltip' => 'A $1-Version vo derer Wikisaiten owerloon',
+	'coll-disable' => 'deaktiviarn',
+	'coll-book_creator_disable' => 'Buachgenarator deaktiviarn',
+	'coll-book_creator_disable_tooltip' => 'Buachgenaraor ned vawenden',
+	'coll-add_linked_article' => 'Fiag de valinkte Wikisaiten daim Buach zua',
+	'coll-remove_linked_article' => 'Entfern de valinkte Wikisaiten aus daim Buach',
+	'coll-add_category' => 'Olle Saiten aus derer Kategorii daim Buach dazuafyng',
+	'coll-add_category_tooltip' => 'Olle Wikisaiten vo derer Kategorii daim Buach dazuafyng',
+	'coll-add_this_page' => 'De Saiten do ua daim Buach dazuafyng',
+	'coll-add_page_tooltip' => 'De aktuöie Wikisaiten daim Buach dazuafyng',
+	'coll-bookscategory' => 'Biacher',
+	'coll-clear_collection' => 'Buach leschen',
+	'coll-clear_collection_confirm' => 'Mechadst wirkle dai Buach leschen?',
+	'coll-clear_collection_tooltip' => 'Olle Wikisaiten aus daim aktuöin Buach entferna',
+	'coll-help' => 'Hüif',
+	'coll-help_tooltip' => 'Hüif zum Erstöin vo Biacher åzoang',
+	'coll-helppage' => 'Help:Biacher',
+	'coll-load_collection' => 'Buach loon',
+	'coll-load_collection_tooltip' => 'Des Buach dodan ois dai aktuöis Buach loon',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Wikisaiten|Wikisaiten}}',
+	'coll-printable_version_pdf' => 'PDF-Version',
+	'coll-remove_this_page' => 'De Saitn aus daim Buach entferna',
+	'coll-remove_page_tooltip' => 'De aktuöie Wikisaiten aus daim Buach entferna',
+	'coll-show_collection' => 'Buach zoang',
+	'coll-show_collection_tooltip' => "Durcka, um dai Buach z' beorwaiten/ower z' loon/z' bstöin",
+	'coll-not_addable' => 'De Saiten do kå ned dazuagfygt wern',
+	'coll-make_suggestions' => 'Saiten vurschlong',
+	'coll-make_suggestions_tooltip' => 'Vurschläg basiarnd auf de Saiten in daim Buach åzoang',
+	'coll-suggest_empty' => 'laar',
+);
+
+/** Belarusian (Беларуская)
+ * @author Тест
+ * @author Хомелка
+ */
+$messages['be'] = array(
+	'coll-print_export' => 'Друк/экспарт',
+	'coll-create_a_book' => 'Стварыць кнігу',
+	'coll-create_a_book_tooltip' => 'Стварыць кнігу альбо калекцыю артыкулаў',
+	'coll-book_creator' => 'Майстар стварэння кнігі',
+	'coll-download_as' => 'Загрузіць як $1',
+	'coll-download_as_tooltip' => 'Загрузіць версію $1 гэтай вікі-старонкі',
+	'coll-disable' => 'выключыць',
+	'coll-book_creator_disable' => 'Выключыць майстра стварэння кнігі',
+	'coll-book_creator_disable_tooltip' => 'Спыніць выкарыстанне майстра стварэння кнігі',
+	'coll-add_linked_article' => 'Дадаць звязаную вікі-старонку ў Вашу кнігу',
+	'coll-remove_linked_article' => 'Выдаліць звязаную вікі-старонку з Вашай кнігі',
+	'coll-add_category' => 'Дадаць гэтую катэгорыю ў Вашую кнігу',
+	'coll-add_category_tooltip' => 'Дадаць усе старонкі з гэтай катэгорыі ў Вашую кнігу',
+	'coll-add_this_page' => 'Дадаць гэтую старонку ў Вашую кнігу',
+	'coll-add_page_tooltip' => 'Дадаць цяперашнюю вікі-старонку ў Вашую кнігу',
+	'coll-bookscategory' => 'Кнігі',
+	'coll-clear_collection' => 'Ачысціць кнігу',
+	'coll-clear_collection_confirm' => 'Вы сапраўды жадаеце поўнасцю ачысціць Вашую кнігу?',
+	'coll-clear_collection_tooltip' => 'Выдаліць усе старонкі з Вашай цяперашняй кнігі',
+	'coll-help' => 'Даведка',
+	'coll-help_tooltip' => 'Паказаць дапамогу па стварэнню кніг',
+	'coll-helppage' => 'Help:Кнігі',
+	'coll-load_collection' => 'Загрузіць кнігу',
+	'coll-load_collection_tooltip' => 'Загрузіць гэтую кнігу як Вашую цяперашнюю кнігу',
+	'coll-n_pages' => '$1 {{PLURAL:$1|старонка|старонкі|старонак}}',
+	'coll-printable_version_pdf' => 'PDF-версія',
+	'coll-remove_this_page' => 'Выдаліць гэтую старонку з Вашай кнігі',
+	'coll-remove_page_tooltip' => 'Выдаліць цяперашнюю вікі-старонку з Вашай кнігі',
+	'coll-show_collection' => 'Паказаць кнігу',
+	'coll-show_collection_tooltip' => 'Націсніце для рэдагавання/загрузкі/заказу Вашай кнігі',
+	'coll-not_addable' => 'Гэтая старонка не можа быць дададзеная',
+	'coll-make_suggestions' => 'Прапанаваць старонкі',
+	'coll-make_suggestions_tooltip' => 'Паказаць прапановы заснаваныя на старонках у Вашай кнізе',
+	'coll-suggest_empty' => 'пуста',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ * @author Jim-by
+ */
+$messages['be-tarask'] = array(
+	'coll-print_export' => 'Друк/экспарт',
+	'coll-create_a_book' => 'Стварыць кнігу',
+	'coll-create_a_book_tooltip' => 'Стварыць кнігу альбо калекцыю артыкулаў',
+	'coll-book_creator' => 'Майстар стварэньня кнігі',
+	'coll-download_as' => 'Загрузіць як $1',
+	'coll-download_as_tooltip' => 'Загрузіць вэрсію $1 гэтай вікі-старонкі',
+	'coll-disable' => 'выключыць',
+	'coll-book_creator_disable' => 'Выключыць майстра стварэньня кнігі',
+	'coll-book_creator_disable_tooltip' => 'Спыніць выкарыстаньне майстра стварэньня кнігі',
+	'coll-add_linked_article' => 'Дадаць зьвязаную вікі-старонку ў Вашу кнігу',
+	'coll-remove_linked_article' => 'Выдаліць зьвязаную вікі-старонку з Вашай кнігі',
+	'coll-add_category' => 'Дадаць гэтую катэгорыю ў Вашую кнігу',
+	'coll-add_category_tooltip' => 'Дадаць усе старонкі з гэтай катэгорыі ў Вашую кнігу',
+	'coll-add_this_page' => 'Дадаць гэтую старонку ў Вашую кнігу',
+	'coll-add_page_tooltip' => 'Дадаць цяперашнюю вікі-старонку ў Вашую кнігу',
+	'coll-bookscategory' => 'Кнігі',
+	'coll-clear_collection' => 'Ачысьціць кнігу',
+	'coll-clear_collection_confirm' => 'Вы сапраўды жадаеце поўнасьцю ачысьціць Вашую кнігу?',
+	'coll-clear_collection_tooltip' => 'Выдаліць усе старонкі з Вашай цяперашняй кнігі',
+	'coll-help' => 'Дапамога',
+	'coll-help_tooltip' => 'Паказаць дапамогу па стварэньню кніг',
+	'coll-helppage' => 'Help:Кнігі',
+	'coll-load_collection' => 'Загрузіць кнігу',
+	'coll-load_collection_tooltip' => 'Загрузіць гэтую кнігу як Вашую цяперашнюю кнігу',
+	'coll-n_pages' => '$1 {{PLURAL:$1|старонка|старонкі|старонак}}',
+	'coll-printable_version_pdf' => 'PDF-вэрсія',
+	'coll-remove_this_page' => 'Выдаліць гэтую старонку з Вашай кнігі',
+	'coll-remove_page_tooltip' => 'Выдаліць цяперашнюю вікі-старонку з Вашай кнігі',
+	'coll-show_collection' => 'Паказаць кнігу',
+	'coll-show_collection_tooltip' => 'Націсьніце для рэдагаваньня/загрузкі/заказу Вашай кнігі',
+	'coll-not_addable' => 'Гэтая старонка ня можа быць дададзеная',
+	'coll-make_suggestions' => 'Прапанаваць старонкі',
+	'coll-make_suggestions_tooltip' => 'Паказаць прапановы заснаваныя на старонках у Вашай кнізе',
+	'coll-suggest_empty' => 'пуста',
+);
+
+/** Bulgarian (Български)
+ * @author DCLXVI
+ * @author Turin
+ */
+$messages['bg'] = array(
+	'coll-print_export' => 'Отпечатване/изнасяне',
+	'coll-create_a_book' => 'Създаване на книга',
+	'coll-create_a_book_tooltip' => 'Създаване на книга или колекция от страници',
+	'coll-download_as' => 'Изтегляне като $1',
+	'coll-disable' => 'изключване',
+	'coll-add_category' => 'Добавяне на тази категория към книгата ви',
+	'coll-add_category_tooltip' => 'Добавяне на всички уики-страници в тази категория към книгата ви',
+	'coll-add_this_page' => 'Добавяне на тази страница към книгата ви',
+	'coll-add_page_tooltip' => 'Добавяне на текущата уики-страница към книгата ви',
+	'coll-bookscategory' => 'Книги',
+	'coll-clear_collection' => 'Изчистване на книгата',
+	'coll-clear_collection_confirm' => 'Наистина ли искате напълно да изчистите вашата книга?',
+	'coll-clear_collection_tooltip' => 'Премахване на всички уики-страници от текущата книга',
+	'coll-help' => 'Помощ',
+	'coll-help_tooltip' => 'Показване на помощ за създаването на книги',
+	'coll-helppage' => 'Help:Книги',
+	'coll-load_collection' => 'Зареждане на книга',
+	'coll-load_collection_tooltip' => 'Зареждане на тази книга като ваша текуща книга',
+	'coll-n_pages' => '$1 {{PLURAL:$1|страница|страници}}',
+	'coll-printable_version_pdf' => 'PDF версия',
+	'coll-remove_this_page' => 'Премахване на тази страница от книгата ви',
+	'coll-remove_page_tooltip' => 'Премахване на текущата уики-страница от книгата ви',
+	'coll-show_collection' => 'Показване на книгата',
+	'coll-not_addable' => 'Тази страница не може да бъде добавена',
+	'coll-make_suggestions' => 'Предлагане на страници',
+	'coll-make_suggestions_tooltip' => 'Показване на предложения въз основа на страниците в книгата ви',
+	'coll-suggest_empty' => 'празно',
+);
+
+/** Bengali (বাংলা)
+ * @author Bellayet
+ * @author Jayantanth
+ * @author Wikitanvir
+ */
+$messages['bn'] = array(
+	'coll-print_export' => 'মুদ্রণ/এক্সপোর্ট',
+	'coll-create_a_book' => 'বই তৈরি করো',
+	'coll-create_a_book_tooltip' => 'পাতার সংকলন বা বই তৈরি করো',
+	'coll-book_creator' => 'বই প্রস্তুতকারক',
+	'coll-download_as' => '$1 ডাউনলোড',
+	'coll-download_as_tooltip' => 'এই উইকি পাতার $1 সংস্করণটি ডাউনলোড করো',
+	'coll-disable' => 'নিস্ক্রিয়',
+	'coll-book_creator_disable' => 'বই প্রস্তুতকারক নিস্ক্রিয় করো',
+	'coll-book_creator_disable_tooltip' => 'বই প্রস্তুতকারক ব্যবহার বন্ধ করুন',
+	'coll-add_linked_article' => 'আপনার বইয়ে উইকি পাতার সংযোগ দিন',
+	'coll-remove_linked_article' => 'আপনার বই থেকে উইকি পাতার সংযোগ অপসারণ করুন',
+	'coll-add_category' => 'এই বিষয়শ্রেণীটি আপনার বইয়ে যোগ করুন',
+	'coll-add_category_tooltip' => 'এই বিষয়শ্রেণীর সমস্ত উইকি পাতাগুলো আপনার বইয়ে যোগ করুন',
+	'coll-add_this_page' => 'এই পাতাটি আপনার বইয়ে যোগ করুন।',
+	'coll-add_page_tooltip' => 'বর্তমান পাতাটি আপনার বইয়ে যোগ করুন',
+	'coll-bookscategory' => 'বইসমূহ',
+	'coll-clear_collection' => 'বই পরিষ্কার করো',
+	'coll-clear_collection_confirm' => 'আপনি কি আসলেই আপনার বই পরিষ্কার করতে চান?',
+	'coll-clear_collection_tooltip' => 'বর্তমান বই থেকে সকল উইকি পাতাগুলো অপসারণ করো',
+	'coll-help' => 'সহায়িকা',
+	'coll-help_tooltip' => 'বই তৈরি সংক্রান্ত সহায়তা দেখাও',
+	'coll-helppage' => 'Help:বই',
+	'coll-load_collection' => 'বই লোড করো',
+	'coll-load_collection_tooltip' => 'বর্তমান বই হিসেবে এই বইটি লোড করুন',
+	'coll-n_pages' => '$1 {{PLURAL:$1|পাতাট|পাতাগুলো}}',
+	'coll-printable_version_pdf' => 'পিডিএফ সংস্করণ',
+	'coll-remove_this_page' => 'এই পাতাটি আপনার বই থেকে অপসারণ করুন',
+	'coll-remove_page_tooltip' => 'আপনার বই থেকে বর্তমান উইকি পাতা অপসারণ করুন',
+	'coll-show_collection' => 'বই দেখাও',
+	'coll-show_collection_tooltip' => 'আপনার বই সম্পাদনা/ডাউনলোড/অর্ডার দিতে ক্লিক করুন',
+	'coll-not_addable' => 'এই পাতাটি যোগ করা যাবে না',
+	'coll-make_suggestions' => 'পরামর্শ পাতা',
+	'coll-make_suggestions_tooltip' => 'বইয়ের পাতার উপর ভিত্তি করে পরামর্শগুলো দেখাও',
+	'coll-suggest_empty' => 'খালি',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fulup
+ * @author Y-M D
+ */
+$messages['br'] = array(
+	'coll-print_export' => 'Moullañ / ezporzhiañ',
+	'coll-create_a_book' => 'Sevel ul levr',
+	'coll-create_a_book_tooltip' => 'Sevel ul levr pe un torkad pennadoù',
+	'coll-book_creator' => 'Saver levrioù',
+	'coll-download_as' => 'Pellgargañ evel $1',
+	'coll-download_as_tooltip' => 'Pellgargañ ur stumm $1 eus ar bajenn wiki-mañ',
+	'coll-disable' => 'diweredekaat',
+	'coll-book_creator_disable' => 'Diweredekaat ar saver levrioù',
+	'coll-book_creator_disable_tooltip' => "Paouez d'ober gant ar saver levrioù",
+	'coll-add_linked_article' => 'Ouzhpennañ ar bajenn wiki liammet gant ho levr',
+	'coll-remove_linked_article' => "Tennañ ar bajenn wiki liammet d'ho levr",
+	'coll-add_category' => "Ouzhpennañ ar rummad-mañ d'ho levr",
+	'coll-add_category_tooltip' => "Ouzhpennañ an holl pajennoù wiki er rummad-mañ d'ho levr",
+	'coll-add_this_page' => "Ouzhpennañ ar bajenn-mañ d'ho levr",
+	'coll-add_page_tooltip' => "Ouzhpennañ ar bajenn wiki-mañ d'ho levr",
+	'coll-bookscategory' => 'Levrioù',
+	'coll-clear_collection' => 'Goullonderiñ al levr',
+	'coll-clear_collection_confirm' => "Ha sur oc'h e fell deoc'h riñsañ ho levr penn-da-benn ?",
+	'coll-clear_collection_tooltip' => 'Tennañ kuit an holl bajennoù wiki eus ho levr a-vremañ',
+	'coll-help' => 'Skoazell',
+	'coll-help_tooltip' => 'Diskouez ar skoazell diwar-benn ar sevel levrioù',
+	'coll-helppage' => 'Help:Levrioù',
+	'coll-load_collection' => 'Kargañ ul levr',
+	'coll-load_collection_tooltip' => 'Kargañ al levr-mañ evel ho levr a-vremañ',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pajenn|pajenn}}',
+	'coll-printable_version_pdf' => 'Stumm PDF',
+	'coll-remove_this_page' => 'Tennañ ar bajenn-mañ eus ho levr',
+	'coll-remove_page_tooltip' => 'Tennañ ar bajenn red eus ho levr',
+	'coll-show_collection' => 'Diskouez al levr',
+	'coll-show_collection_tooltip' => 'Klikañ evit aozañ/pellgargañ/urzhiañ ho levr',
+	'coll-not_addable' => "N'haller ket ouzhpennañ ar bajenn-mañ",
+	'coll-make_suggestions' => 'Kinnig pajennoù',
+	'coll-make_suggestions_tooltip' => "Diskouez ar c'hinnigoù diazezet war pajennoù ho levr",
+	'coll-suggest_empty' => 'goullo',
+);
+
+/** Bosnian (Bosanski)
+ * @author CERminator
+ * @author Smooth O
+ */
+$messages['bs'] = array(
+	'coll-print_export' => 'Štampaj/izvezi',
+	'coll-create_a_book' => 'Napravi knjigu',
+	'coll-create_a_book_tooltip' => 'Napravi knjigu ili kolekciju članaka',
+	'coll-book_creator' => 'Pravljenje knjiga',
+	'coll-download_as' => 'Učitaj kao $1',
+	'coll-download_as_tooltip' => 'Skinite $1 verziju ove wiki stranice',
+	'coll-disable' => 'isključena',
+	'coll-book_creator_disable' => 'Onemogući pravljenje knjiga',
+	'coll-book_creator_disable_tooltip' => 'Prestani koristiti pravljenje knjiga',
+	'coll-add_linked_article' => 'Dodaj povezanu wiki stranicu u vašu knjigu',
+	'coll-remove_linked_article' => 'Ukloni povezanu wiki stranicu iz Vaše knjige',
+	'coll-add_category' => 'Dodaj ovu kategoriju u Vašu knjigu',
+	'coll-add_category_tooltip' => 'Dodaj sve wiki članke iz ove kategorije u Vašu knjigu',
+	'coll-add_this_page' => 'Dodajte ovu stranicu u Vašu knjigu',
+	'coll-add_page_tooltip' => 'Dodaj trenutnu wiki stranicu u Vašu knjigu',
+	'coll-bookscategory' => 'Knjige',
+	'coll-clear_collection' => 'Očisti knjigu',
+	'coll-clear_collection_confirm' => 'Da li zaista želite da potpuno očistite Vašu knjigu?',
+	'coll-clear_collection_tooltip' => 'Ukloni sve wiki članke iz Vaše trenutne knjige',
+	'coll-help' => 'Pomoć',
+	'coll-help_tooltip' => 'Prikaži pomoć za pravljenje knjiga',
+	'coll-helppage' => 'Help:Knjige',
+	'coll-load_collection' => 'Učitaj knjigu',
+	'coll-load_collection_tooltip' => 'Učitaj ovu knjigu kao Vašu trenutnu knjigu',
+	'coll-n_pages' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
+	'coll-printable_version_pdf' => 'PDF verzija',
+	'coll-remove_this_page' => 'Ukloni ovu stranicu iz Vaše knjige',
+	'coll-remove_page_tooltip' => 'Ukloni trenutnu wiki stranicu iz Vaše knjige',
+	'coll-show_collection' => 'Prikaži knjigu',
+	'coll-show_collection_tooltip' => 'Kliknite za uređivanje/download/naručivanje Vaše knjige',
+	'coll-not_addable' => 'Ova stranica se ne može dodati',
+	'coll-make_suggestions' => 'Predloži stranice',
+	'coll-make_suggestions_tooltip' => 'Prikaži prijedloge zasnovane na stranicama iz Vaše knjige',
+	'coll-suggest_empty' => 'prazno',
+);
+
+/** Catalan (Català)
+ * @author Aleator
+ * @author Paucabot
+ * @author SMP
+ * @author Solde
+ * @author Vriullop
+ */
+$messages['ca'] = array(
+	'coll-print_export' => 'Imprimeix/exporta',
+	'coll-create_a_book' => 'Crea un llibre',
+	'coll-create_a_book_tooltip' => 'Crea un llibre o una col·lecció de pàgines',
+	'coll-book_creator' => 'Creador de llibres',
+	'coll-download_as' => 'Descarrega com $1',
+	'coll-download_as_tooltip' => "Descarrega una versió $1 d'aquesta pàgina wiki",
+	'coll-disable' => 'Inhabilita',
+	'coll-book_creator_disable' => 'Desactiva el creador de llibres',
+	'coll-book_creator_disable_tooltip' => "Deixa d'usar el creador de llibres",
+	'coll-add_linked_article' => "Afegeix la pàgina de l'enllaç al vostre llibre",
+	'coll-remove_linked_article' => "Treu del llibre la pàgina de l'enllaç",
+	'coll-add_category' => 'Afegiu aquesta categoria al vostre llibre',
+	'coll-add_category_tooltip' => "Afegeix al llibre totes les pàgines d'aquesta categoria",
+	'coll-add_this_page' => 'Afegiu aquesta pàgina al vostre llibre',
+	'coll-add_page_tooltip' => 'Afegeix la pàgina wiki actual al llibre',
+	'coll-bookscategory' => 'Llibres',
+	'coll-clear_collection' => 'Buida llibre',
+	'coll-clear_collection_confirm' => 'Esteu segurs de buidar completament el vostre llibre?',
+	'coll-clear_collection_tooltip' => 'Esborra totes les pàgines wiki del llibre actual',
+	'coll-help' => 'Ajuda',
+	'coll-help_tooltip' => "Mostra l'ajuda sobre la creació de llibres",
+	'coll-helppage' => 'Help:Llibres',
+	'coll-load_collection' => 'Carrega llibre',
+	'coll-load_collection_tooltip' => 'Carrega aquest llibre com el vostre llibre actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pàgina|pàgines}}',
+	'coll-printable_version_pdf' => 'Versió en PDF',
+	'coll-remove_this_page' => 'Eliminau aquesta pàgina del vostre llibre',
+	'coll-remove_page_tooltip' => 'Treu la pàgina wiki actual del llibre',
+	'coll-show_collection' => 'Mostra llibre',
+	'coll-show_collection_tooltip' => 'Feu clic per a editar/descarregar/demanar el vostre llibre',
+	'coll-not_addable' => 'No es pot afegir aquesta pàgina',
+	'coll-make_suggestions' => 'Suggereix pàgines',
+	'coll-make_suggestions_tooltip' => 'Mostra suggeriments basats en les pàgines del vostre llibre',
+	'coll-suggest_empty' => 'buit',
+);
+
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'coll-bookscategory' => 'Жайнаш',
+	'coll-help' => 'Нисвохаам',
+);
+
+/** Czech (Česky)
+ * @author Danny B.
+ * @author Matěj Grabovský
+ * @author Mormegil
+ */
+$messages['cs'] = array(
+	'coll-print_export' => 'Tisk/export',
+	'coll-create_a_book' => 'Vytvořit knihu',
+	'coll-create_a_book_tooltip' => 'Vytvoření knihy nebo kolekce stránek',
+	'coll-book_creator' => 'Editor knih',
+	'coll-download_as' => 'Stáhnout jako $1',
+	'coll-download_as_tooltip' => 'Stáhnout tuto stránku wiki jako $1',
+	'coll-disable' => 'vypnout',
+	'coll-book_creator_disable' => 'Vypnout editor knih',
+	'coll-book_creator_disable_tooltip' => 'Přestane s používáním editoru knih',
+	'coll-add_linked_article' => 'Přidat odkazovanou stránku wiki do knihy',
+	'coll-remove_linked_article' => 'Odebrat odkazovanou stránku wiki z knihy',
+	'coll-add_category' => 'Přidat tuto kategorii do vaší knihy',
+	'coll-add_category_tooltip' => 'Přidá všechny stránky wiki v této kategorii do vaší knihy',
+	'coll-add_this_page' => 'Přidat tuto stránku do vaší knihy',
+	'coll-add_page_tooltip' => 'Přidá aktuální stránku wiki do vaší knihy',
+	'coll-bookscategory' => 'Knihy',
+	'coll-clear_collection' => 'Vyčistit knihu',
+	'coll-clear_collection_confirm' => 'Skutečně chcete úplně vyčistit tuto knihu?',
+	'coll-clear_collection_tooltip' => 'Odstraní z aktuální knihy všechny stránky wiki',
+	'coll-help' => 'Nápověda',
+	'coll-help_tooltip' => 'Zobrazit nápovědu k tvorbě knih',
+	'coll-helppage' => 'Help:Knihy',
+	'coll-load_collection' => 'Načíst knihu',
+	'coll-load_collection_tooltip' => 'Zvolí tuto knihu jako aktuální',
+	'coll-n_pages' => '$1 {{PLURAL:$1|stránka|stránky|stránek}}',
+	'coll-printable_version_pdf' => 'PDF verze',
+	'coll-remove_this_page' => 'Odstranit tuto stránku z vaší knihy',
+	'coll-remove_page_tooltip' => 'Odstraní aktuální stránku wiki z vaší knihy',
+	'coll-show_collection' => 'Zobrazit knihu',
+	'coll-show_collection_tooltip' => 'Kliknutím si můžete knihu upravit/stáhnout/objednat',
+	'coll-not_addable' => 'Tuto stránku nelze přidat',
+	'coll-make_suggestions' => 'Doporučit stránky',
+	'coll-make_suggestions_tooltip' => 'Zobrazí návrhy podle stránek přidaných do vaší knihy',
+	'coll-suggest_empty' => 'prázdné',
+);
+
+/** Welsh (Cymraeg)
+ * @author Lloffiwr
+ */
+$messages['cy'] = array(
+	'coll-print_export' => 'Argraffu/allforio',
+	'coll-create_a_book' => 'Llunio llyfr',
+	'coll-create_a_book_tooltip' => 'Llunio llyfr neu gasgliad o dudalennau',
+	'coll-book_creator' => 'Lluniwr llyfrau',
+	'coll-download_as' => 'Islwytho ar ffurf $1',
+	'coll-download_as_tooltip' => "Islwytho fersiwn $1 o'r dudalen wici hon",
+	'coll-disable' => 'anablu',
+	'coll-book_creator_disable' => "Analluogi'r lluniwr llyfrau",
+	'coll-book_creator_disable_tooltip' => "Rhoi'r gorau i ddefnyddio'r lluniwr llyfrau",
+	'coll-add_linked_article' => 'Ychwanegu tudalen wici gysylltiedig at eich llyfr',
+	'coll-remove_linked_article' => "Tynnu'r dudalen wici gysylltiedig oddi ar eich llyfr",
+	'coll-add_category' => "Ychwanegu'r holl dudalennau yn y categori hwn at eich llyfr",
+	'coll-add_category_tooltip' => 'Ychwanegu holl dudalennau wici y categori hwn at eich llyfr',
+	'coll-add_this_page' => "Ychwanegu'r dudalen hon at eich llyfr",
+	'coll-add_page_tooltip' => "Ychwanegu'r dudalen wici presennol at eich llyfr",
+	'coll-bookscategory' => 'Llyfrau',
+	'coll-clear_collection' => "Clirio'r llyfr",
+	'coll-clear_collection_confirm' => "Ydych chi wir am glirio'ch llyfr yn llwyr?",
+	'coll-clear_collection_tooltip' => "Clirio'r holl dudalennau wici o'ch llyfr presennol",
+	'coll-help' => 'Cymorth',
+	'coll-help_tooltip' => 'Dangos y cymorth am lunio llyfr',
+	'coll-helppage' => 'Help:Llyfrau',
+	'coll-load_collection' => 'Llwytho llyfr',
+	'coll-load_collection_tooltip' => "Llwytho'r llyfr hwn fel eich llyfr cyfredol",
+	'coll-n_pages' => '$1 {{PLURAL:$1|tudalen|dudalen|dudalen|tudalen|thudalen|o dudalennau}}',
+	'coll-printable_version_pdf' => 'Fersiwn PDF',
+	'coll-remove_this_page' => "Tynnu'r dudalen hon o'ch llyfr",
+	'coll-remove_page_tooltip' => "Tynnu'r dudalen wici presennol o'ch llyfr",
+	'coll-show_collection' => 'Dangos y llyfr',
+	'coll-show_collection_tooltip' => 'Cliciwch er mwyn golygu/islwytho/archebu eich llyfr',
+	'coll-not_addable' => "Ni ellir ychwanegu'r dudalen hon",
+	'coll-make_suggestions' => 'Awgrymu tudalennau',
+	'coll-make_suggestions_tooltip' => 'Dangos awgrymiadau wedi eu seilio ar y tudalennau yn eich llyfr',
+	'coll-suggest_empty' => 'gwag',
+);
+
+/** Danish (Dansk)
+ * @author Byrial
+ * @author Peter Alberti
+ * @author Thomas81
+ */
+$messages['da'] = array(
+	'coll-print_export' => 'Udskriv/eksportér',
+	'coll-create_a_book' => 'Lav en bog',
+	'coll-create_a_book_tooltip' => 'Lav en bog eller samling af sider',
+	'coll-book_creator' => 'Bogværktøjslinien',
+	'coll-download_as' => 'Download som $1',
+	'coll-download_as_tooltip' => 'Download en $1-version af denne wikiside',
+	'coll-disable' => 'slå fra',
+	'coll-book_creator_disable' => 'Slå bogværktøjslinien fra',
+	'coll-book_creator_disable_tooltip' => 'Stop brugen af bogværktøjslinien',
+	'coll-add_linked_article' => 'Tilføj den linkede wikiside til din bog',
+	'coll-remove_linked_article' => 'Fjern den linkede wikiside fra din bog',
+	'coll-add_category' => 'Tilføj denne kategori til din bog',
+	'coll-add_category_tooltip' => 'Tilføj alle wikisider i kategorien til din bog',
+	'coll-add_this_page' => 'Tilføj denne side til din bog',
+	'coll-add_page_tooltip' => 'Tilføj den nuværende wikiside til din bog',
+	'coll-bookscategory' => 'Bøger',
+	'coll-clear_collection' => 'Tøm bogen',
+	'coll-clear_collection_confirm' => 'Vil du virkelig tømme din bog helt?',
+	'coll-clear_collection_tooltip' => 'Fjern alle wikisider fra din nuværende bog',
+	'coll-help' => 'Hjælp',
+	'coll-help_tooltip' => 'Få hjælp til at lave bøger',
+	'coll-helppage' => 'Help:Bøger',
+	'coll-load_collection' => 'Hent bog',
+	'coll-load_collection_tooltip' => 'Hent denne bog som din nuværende bog',
+	'coll-n_pages' => '$1 {{PLURAL:$1|side|sider}}',
+	'coll-printable_version_pdf' => 'PDF-version',
+	'coll-remove_this_page' => 'Fjern denne side fra din bog',
+	'coll-remove_page_tooltip' => 'Fjern den nuværende wikiside fra din bog',
+	'coll-show_collection' => 'Vis bog',
+	'coll-show_collection_tooltip' => 'Klik for at redigere, downloade eller bestille din bog',
+	'coll-not_addable' => 'Denne side kan ikke tilføjes',
+	'coll-make_suggestions' => 'Foreslå sider',
+	'coll-make_suggestions_tooltip' => 'Vis forslag baseret på siderne i din bog',
+	'coll-suggest_empty' => 'tom',
+);
+
+/** German (Deutsch)
+ * @author Metalhead64
+ * @author Pill
+ * @author Umherirrender
+ */
+$messages['de'] = array(
+	'coll-print_export' => 'Drucken/exportieren',
+	'coll-create_a_book' => 'Buch erstellen',
+	'coll-create_a_book_tooltip' => 'Ein Buch oder eine Artikelsammlung erstellen',
+	'coll-book_creator' => 'Buchgenerator',
+	'coll-download_as' => 'Als $1 herunterladen',
+	'coll-download_as_tooltip' => 'Eine $1-Version dieser Wikiseite herunterladen',
+	'coll-disable' => 'deaktivieren',
+	'coll-book_creator_disable' => 'Buchgenerator deaktivieren',
+	'coll-book_creator_disable_tooltip' => 'Buchgenerator nicht verwenden',
+	'coll-add_linked_article' => 'Füge die verlinkte Wikiseite deinem Buch hinzu',
+	'coll-remove_linked_article' => 'Entferne die verlinkte Wikiseite aus deinem Buch',
+	'coll-add_category' => 'Alle Seiten aus dieser Kategorie deinem Buch hinzufügen',
+	'coll-add_category_tooltip' => 'Alle Wikiseiten dieser Kategorie deinem Buch hinzufügen',
+	'coll-add_this_page' => 'Diese Seite zu deinem Buch hinzufügen',
+	'coll-add_page_tooltip' => 'Die aktuelle Wikiseite deinem Buch hinzufügen',
+	'coll-bookscategory' => 'Bücher',
+	'coll-clear_collection' => 'Buch löschen',
+	'coll-clear_collection_confirm' => 'Möchtest du wirklich dein Buch löschen?',
+	'coll-clear_collection_tooltip' => 'Alle Wikiseiten aus deinem aktuellen Buch entfernen',
+	'coll-help' => 'Hilfe',
+	'coll-help_tooltip' => 'Hilfe zum Erstellen von Büchern anzeigen',
+	'coll-helppage' => 'Help:Bücher',
+	'coll-load_collection' => 'Buch laden',
+	'coll-load_collection_tooltip' => 'Dieses Buch als dein aktuelles Buch laden',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Wikiseite|Wikiseiten}}',
+	'coll-printable_version_pdf' => 'PDF-Version',
+	'coll-remove_this_page' => 'Diese Seite aus deinem Buch entfernen',
+	'coll-remove_page_tooltip' => 'Die aktuelle Wikiseite aus deinem Buch entfernen',
+	'coll-show_collection' => 'Buch zeigen',
+	'coll-show_collection_tooltip' => 'Klicken, um dein Buch zu bearbeiten/herunterzuladen/bestellen',
+	'coll-not_addable' => 'Diese Seite kann nicht hinzugefügt werden',
+	'coll-make_suggestions' => 'Seiten vorschlagen',
+	'coll-make_suggestions_tooltip' => 'Vorschläge basierend auf den Seiten in deinem Buch anzeigen',
+	'coll-suggest_empty' => 'leer',
+);
+
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Dst
+ * @author MichaelFrey
+ * @author Umherirrender
+ */
+$messages['de-formal'] = array(
+	'coll-add_category' => 'Alle Seiten aus dieser Kategorie Ihrem Buch hinzufügen',
+	'coll-add_category_tooltip' => 'Alle Wikiseiten dieser Kategorie Ihrem Buch hinzufügen',
+	'coll-add_this_page' => 'Diese Seite zu Ihrem Buch hinzufügen',
+	'coll-add_page_tooltip' => 'Die aktuelle Wikiseite Ihrem Buch hinzufügen',
+	'coll-clear_collection_confirm' => 'Möchten Sie wirklich Ihr Buch löschen?',
+	'coll-clear_collection_tooltip' => 'Alle Wikiseiten aus Ihrem aktuellen Buch entfernen',
+	'coll-load_collection_tooltip' => 'Dieses Buch als Ihr aktuelles Buch laden',
+	'coll-remove_this_page' => 'Diese Seite aus Ihrem Buch entfernen',
+	'coll-remove_page_tooltip' => 'Die aktuelle Wikiseite aus Ihrem Buch entfernen',
+	'coll-show_collection_tooltip' => 'Klicken, um Ihr Buch zu bearbeiten/herunterzuladen/bestellen',
+	'coll-make_suggestions_tooltip' => 'Vorschläge basierend auf den Seiten in Ihrem Buch anzeigen',
+);
+
+/** Zazaki (Zazaki)
+ * @author Xoser
+ */
+$messages['diq'] = array(
+	'coll-print_export' => 'Çap bike/export bike',
+	'coll-create_a_book' => 'Yew kitab biviraze',
+	'coll-create_a_book_tooltip' => 'Yew koleksiyonê pelî ya zi kitab biviraze',
+	'coll-book_creator' => 'Kitab viraştoğ',
+	'coll-download_as' => 'Ze $1 bar bike',
+	'coll-download_as_tooltip' => 'Yew versiyonê $1 yê ena pel bar bike',
+	'coll-disable' => 'bikefilne',
+	'coll-book_creator_disable' => 'Viraştoğ kitabî bikefilne',
+	'coll-book_creator_disable_tooltip' => 'Viraştoğ kitabî kefilne',
+	'coll-add_linked_article' => 'Kitabê xo rê cimeyê wikiyi de bike',
+	'coll-remove_linked_article' => 'Kitabê xo rê cimeyê wikiyi wedarne',
+	'coll-add_category' => 'Ena kategorî kitabê xo rê de bike',
+	'coll-add_category_tooltip' => 'Pelê wîkîyî ena kategorî de înan kitabê xo rê de bike',
+	'coll-add_this_page' => 'Ena pelê kitabê xo rê de bike',
+	'coll-add_page_tooltip' => 'Pelê wîkî yê penî kitabê xo rê de bike',
+	'coll-bookscategory' => 'Kitaban',
+	'coll-clear_collection' => 'Kitaban wedarne',
+	'coll-clear_collection_confirm' => 'Ti raştî kitabê xo wazeno wedarne?',
+	'coll-clear_collection_tooltip' => 'Wîkîyanê hemî kitabê xo de wedarne',
+	'coll-help' => 'Yardim',
+	'coll-help_tooltip' => 'Ser bar kerdişê kitabî rê yardim bimucne',
+	'coll-helppage' => 'Help:Kitaban',
+	'coll-load_collection' => 'Kitab bar bike',
+	'coll-load_collection_tooltip' => 'Ena kitab bar bike',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pel|pelan}}',
+	'coll-printable_version_pdf' => 'Versiyonê PDFî',
+	'coll-remove_this_page' => 'Ena pelê kitabê xo de wedarne',
+	'coll-remove_page_tooltip' => 'Pelê wîkî yê penî ke kitabê tu de ey wedarne',
+	'coll-show_collection' => 'Kitab bimucne',
+	'coll-show_collection_tooltip' => 'Klik bike ke kitabê xo bivurne/bar bike/sipariş bike',
+	'coll-not_addable' => 'Ena pel nişkeno de biyo',
+	'coll-make_suggestions' => 'Pelan ke tevsiye biyê',
+	'coll-make_suggestions_tooltip' => 'Ser pelan ke zerre kitabê tu de înan ra tevsiye bike',
+	'coll-suggest_empty' => 'veng',
+);
+
+/** Lower Sorbian (Dolnoserbski)
+ * @author Derbeth
+ * @author Michawiki
+ */
+$messages['dsb'] = array(
+	'coll-print_export' => 'Śišćaś/eksport',
+	'coll-create_a_book' => 'Knigły napóraś',
+	'coll-create_a_book_tooltip' => 'Knigły abo zběrku nastawkow napóraś',
+	'coll-book_creator' => 'Funkcija knigłow',
+	'coll-download_as' => 'Ako $1 ześěgnuś',
+	'coll-download_as_tooltip' => 'Wersiju $1 toś togo wikijowego boka ześěgnuś',
+	'coll-disable' => 'znjemóžniś',
+	'coll-book_creator_disable' => 'Funkciju knigłow znjemóžniś',
+	'coll-book_creator_disable_tooltip' => 'Wužywanje funkcije knigłow zastajiś',
+	'coll-add_linked_article' => 'Wótkazany wikibok wašim knigłam pśidaś',
+	'coll-remove_linked_article' => 'Wótkazany wikibok z wašich knigłow wótpóraś',
+	'coll-add_category' => 'Toś tu kategoriju twójim knigłam pśidaś',
+	'coll-add_category_tooltip' => 'Wšě wikiboki w toś tej kategoriji twójim knigłam pśidaś',
+	'coll-add_this_page' => 'Toś ten bok twójim knigłam pśidaś',
+	'coll-add_page_tooltip' => 'Aktualny wikibok twójim knigłam pśidaś',
+	'coll-bookscategory' => '{{SITENAME}}:Knigły',
+	'coll-clear_collection' => 'Knigły wuprozniś',
+	'coll-clear_collection_confirm' => 'Coš napšawdu swóje knigły dopołnje wuprozniś?',
+	'coll-clear_collection_tooltip' => 'Wše wikiboki z twójich aktualnych knigłow wótpóraś',
+	'coll-help' => 'Pomoc',
+	'coll-help_tooltip' => 'Pomoc wó napóranju knigłow pokazaś',
+	'coll-helppage' => 'Help:Knigły',
+	'coll-load_collection' => 'Knigły zacytaś',
+	'coll-load_collection_tooltip' => 'Toś te knigły ako twóje aktualne knigły zacytaś',
+	'coll-n_pages' => '$1 {{PLURAL:$1|bok|boka|boki|bokow}}',
+	'coll-printable_version_pdf' => 'PDF-wersija',
+	'coll-remove_this_page' => 'Toś ten bok z twójich knigłow wótpóraś',
+	'coll-remove_page_tooltip' => 'Aktualny wikibok z twójich knigłow wótpóraś',
+	'coll-show_collection' => 'Knigły pokazaś',
+	'coll-show_collection_tooltip' => 'Klikni, aby wobźěłał/ześěgnuł/skazał swóje knigły',
+	'coll-not_addable' => 'Toś ten bok njedajo se pśidaś',
+	'coll-make_suggestions' => 'Boki naraźiś',
+	'coll-make_suggestions_tooltip' => 'Naraźenja pokazaś, kótarež bazěruju na bokach w twójich knigłach',
+	'coll-suggest_empty' => 'prozny',
+);
+
+/** Greek (Ελληνικά)
+ * @author Geraki
+ * @author Omnipaedista
+ * @author ZaDiak
+ */
+$messages['el'] = array(
+	'coll-print_export' => 'Εκτύπωση/εξαγωγή',
+	'coll-create_a_book' => 'Δημιουργία βιβλίου',
+	'coll-create_a_book_tooltip' => 'Δημιουργία μιας συλλογής βιβλίων ή σελίδων',
+	'coll-book_creator' => 'Δημιουργός βιβλίων',
+	'coll-download_as' => 'Κατέβασμα ως $1',
+	'coll-download_as_tooltip' => 'Λήψη μιας $1 έκδοσης αυτής της σελίδας βίκι',
+	'coll-disable' => 'απενεργοποίηση',
+	'coll-book_creator_disable' => 'Απενεργοποίηση του δημιουργού βιβλίων',
+	'coll-book_creator_disable_tooltip' => 'Παύση χρήσης του δημιουργού βιβλίων',
+	'coll-add_linked_article' => 'Προσθήκη συνδεμένης σελίδας wiki στο βιβλίο σας',
+	'coll-remove_linked_article' => 'Αφαίρεση της συνδεμένης σελίδας από το βιβλίο σας',
+	'coll-add_category' => 'Προσθήκη αυτής της κατηγορίας στο βιβλίο σας',
+	'coll-add_category_tooltip' => 'Προσθήκη όλων των σελίδων της συνδεδεμένης κατηγορίας στο βιβλίο σας',
+	'coll-add_this_page' => 'Προσθήκη αυτής της σελίδας στο βίβλιο σας',
+	'coll-add_page_tooltip' => 'Προσθήκη της παρούσας σελίδας στο βιβλίο σας',
+	'coll-bookscategory' => 'Βιβλία',
+	'coll-clear_collection' => 'Εκκαθάριση βιβλίου',
+	'coll-clear_collection_confirm' => 'Αλήθεια θέλετε να καθαρίσετε εντελώς το βιβλίο σας;',
+	'coll-clear_collection_tooltip' => 'Αφαίρεση όλων των σελίδων από το παρόν βιβλίο σας',
+	'coll-help' => 'Βοήθεια',
+	'coll-help_tooltip' => 'Εμφάνιση βοήθειας για τη δημιουργία βιβλίων',
+	'coll-helppage' => 'Help:Βιβλία',
+	'coll-load_collection' => 'Φόρτωση βιβλίου',
+	'coll-load_collection_tooltip' => 'Επιφόρτωση αυτού του βιβλίου ως του τρέχοντός σας βιβλίου',
+	'coll-n_pages' => '$1 {{PLURAL:$1|σελίδα|σελίδες}}',
+	'coll-printable_version_pdf' => 'έκδοση PDF',
+	'coll-remove_this_page' => 'Αφαίρεση αυτής της σελίδα από το βιβλίο σας',
+	'coll-remove_page_tooltip' => 'Αφαίρεση της παρούσας σελίδας από το βιβλίο σας',
+	'coll-show_collection' => 'Εμφάνιση βιβλίου',
+	'coll-show_collection_tooltip' => 'Κάνετε κλικ για να επεξεργαστείτε/κατεβάσετε/παραγγείλετε το βιβλίο σας',
+	'coll-not_addable' => 'Αυτή η σελίδα δεν μπορεί να προτεθεί',
+	'coll-make_suggestions' => 'Πρόταση σελίδων',
+	'coll-make_suggestions_tooltip' => 'Προβολή υποδείξεων βασισμένων πάνω στις σελίδες μέσα στο βιβλίο σας',
+	'coll-suggest_empty' => 'άδειο',
+);
+
+/** Esperanto (Esperanto)
+ * @author Yekrats
+ */
+$messages['eo'] = array(
+	'coll-print_export' => 'Printi/eksporti',
+	'coll-create_a_book' => 'Krei libron',
+	'coll-create_a_book_tooltip' => 'Krei libran aŭ paĝan kolekton',
+	'coll-book_creator' => 'Libra kreilo',
+	'coll-download_as' => 'Elŝuti kiel $1',
+	'coll-download_as_tooltip' => 'Elŝuti $1-version de ĉi tiu vikia paĝo',
+	'coll-disable' => 'malŝalti',
+	'coll-book_creator_disable' => 'Malŝalti libran kreilon',
+	'coll-book_creator_disable_tooltip' => 'Halti uzante la libran kreilon',
+	'coll-add_linked_article' => 'Aldoni ligitan vikipaĝon al via libro',
+	'coll-remove_linked_article' => 'Forigi ligitan vikipaĝon de via libro',
+	'coll-add_category' => 'Aldoni ĉi tiun kategorion al via libro',
+	'coll-add_category_tooltip' => 'Aldoni ĉiujn vikiajn paĝojn en ĉi tiu kategorio al via libro',
+	'coll-add_this_page' => 'Aldoni ĉi tiun paĝon al via libro',
+	'coll-add_page_tooltip' => 'Aldoni la nunan vikian paĝon al via libro',
+	'coll-bookscategory' => 'Libroj',
+	'coll-clear_collection' => 'Forviŝi libron',
+	'coll-clear_collection_confirm' => 'Ĉu vi ja volas plene forviŝi vian libron?',
+	'coll-clear_collection_tooltip' => 'Forigi ĉiujn vikiajn paĝojn de via nuna libro',
+	'coll-help' => 'Helpo',
+	'coll-help_tooltip' => 'Montri helpon pri kreante librojn',
+	'coll-helppage' => 'Help:Libroj',
+	'coll-load_collection' => 'Alŝuti libron',
+	'coll-load_collection_tooltip' => 'Ŝarĝi ĉi tiun libron kiel vian nunan libron',
+	'coll-n_pages' => '$1 {{PLURAL:$1|paĝo|paĝoj}}',
+	'coll-printable_version_pdf' => 'PDF-versio',
+	'coll-remove_this_page' => 'Forigi ĉi tiun paĝon de via libro',
+	'coll-remove_page_tooltip' => 'Forigi la nunan vikian paĝon de via libro',
+	'coll-show_collection' => 'Montri libron',
+	'coll-show_collection_tooltip' => 'Klaku redakti/elŝuti/mendi vian libron',
+	'coll-not_addable' => 'Ĉi tiu paĝo ne povas esti aldonata.',
+	'coll-make_suggestions' => 'Sugesti paĝojn',
+	'coll-make_suggestions_tooltip' => 'Montri sugestojn bazitajn de la paĝoj en via libro',
+	'coll-suggest_empty' => 'malplena',
+);
+
+/** Spanish (Español)
+ * @author Crazymadlover
+ * @author Imre
+ * @author Locos epraix
+ * @author Mor
+ * @author Omnipaedista
+ * @author Remember the dot
+ * @author Sanbec
+ */
+$messages['es'] = array(
+	'coll-print_export' => 'Imprimir/exportar',
+	'coll-create_a_book' => 'Crear un libro',
+	'coll-create_a_book_tooltip' => 'Crear un libro o colección de página',
+	'coll-book_creator' => 'Creador de libro',
+	'coll-download_as' => 'Descargar como $1',
+	'coll-download_as_tooltip' => 'Descargar una versión $1 de esta página wiki',
+	'coll-disable' => 'deshabilitar',
+	'coll-book_creator_disable' => 'Deshabilitar creador de libro',
+	'coll-book_creator_disable_tooltip' => 'Dejar de usar el creador de libro',
+	'coll-add_linked_article' => 'Agregar página wiki vinculada a tu libro',
+	'coll-remove_linked_article' => 'Eliminar página wiki vinculada de tu libro',
+	'coll-add_category' => 'Añadir esta categoría a tu libro',
+	'coll-add_category_tooltip' => 'Agregar todas las páginas wiki en esta categoría a tu libro',
+	'coll-add_this_page' => 'Añadir esta página a su libro',
+	'coll-add_page_tooltip' => 'Agregar la página wiki actual a tu libro',
+	'coll-bookscategory' => 'Libros',
+	'coll-clear_collection' => 'Vaciar libro',
+	'coll-clear_collection_confirm' => '¿Realmente quieres borrar completamente tu libro?',
+	'coll-clear_collection_tooltip' => 'Quitar todas las páginas wiki de su libro actual',
+	'coll-help' => 'Ayuda',
+	'coll-help_tooltip' => 'Mostrar ayuda acerca de la creación de libros',
+	'coll-helppage' => 'Help:Libros',
+	'coll-load_collection' => 'Cargar libro',
+	'coll-load_collection_tooltip' => 'Cargar este libro como su libro actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|página|páginas}}',
+	'coll-printable_version_pdf' => 'Versión PDF',
+	'coll-remove_this_page' => 'Quitar esta página de tu libro',
+	'coll-remove_page_tooltip' => 'Quitar la página wiki actual de tu libro',
+	'coll-show_collection' => 'Mostrar libro',
+	'coll-show_collection_tooltip' => 'Haz click para editar/descargar/ordenar tu libro',
+	'coll-not_addable' => 'esta página no puede ser agregada',
+	'coll-make_suggestions' => 'Sugerir páginas',
+	'coll-make_suggestions_tooltip' => 'Mostrar sugerencias basadas en las páginas de su libro',
+	'coll-suggest_empty' => 'vacío',
+);
+
+/** Estonian (Eesti)
+ * @author Avjoska
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'coll-print_export' => 'Trüki või ekspordi',
+	'coll-create_a_book' => 'Loo raamat',
+	'coll-create_a_book_tooltip' => 'Loo raamat või lehekülgede kogu',
+	'coll-book_creator' => 'Raamatulooja',
+	'coll-download_as' => 'Laadi alla $1-failina',
+	'coll-download_as_tooltip' => 'Laadi see lehekülg alla $1-vormingus',
+	'coll-disable' => 'keela',
+	'coll-book_creator_disable' => 'Keela raamatulooja',
+	'coll-book_creator_disable_tooltip' => 'Lõpeta raamatulooja kasutamine',
+	'coll-add_linked_article' => 'Lisa lingitud lehekülg oma raamatusse',
+	'coll-remove_linked_article' => 'Eemalda lingitud lehekülg oma raamatust',
+	'coll-add_category' => 'Lisa see kategooria oma raamatusse',
+	'coll-add_category_tooltip' => 'Lisa kõik selle kategooria vikileheküljed loodavasse raamatusse',
+	'coll-add_this_page' => 'Lisa see lehekülg oma raamatusse',
+	'coll-add_page_tooltip' => 'Lisa käesolev lehekülg loodavasse raamatusse',
+	'coll-bookscategory' => 'Raamatud',
+	'coll-clear_collection' => 'Tühjenda raamat',
+	'coll-clear_collection_confirm' => 'Kas soovid tõesti kogu raamatu tühjendada?',
+	'coll-clear_collection_tooltip' => 'Võta kõik leheküljed loodavast raamatust välja',
+	'coll-help' => 'Abi',
+	'coll-help_tooltip' => 'Näita raamatu loomise abi',
+	'coll-helppage' => 'Help:Raamatud',
+	'coll-load_collection' => 'Lae raamat',
+	'coll-load_collection_tooltip' => 'Laadi see raamat praeguse raamatuna',
+	'coll-n_pages' => '$1 {{PLURAL:$1|lehekülg|lehekülge}}',
+	'coll-printable_version_pdf' => 'PDF-versioon',
+	'coll-remove_this_page' => 'Eemalda see lehekülg oma raamatust',
+	'coll-remove_page_tooltip' => 'Võta käesolev lehekülg loodavast raamatust välja',
+	'coll-show_collection' => 'Näita raamatut',
+	'coll-show_collection_tooltip' => 'Redigeeri, laadi alla või telli',
+	'coll-not_addable' => 'Seda lehekülge ei saa lisada',
+	'coll-make_suggestions' => 'Paku lehekülgi',
+	'coll-make_suggestions_tooltip' => 'Näitab raamatusse lisatud lehekülgedel põhinevaid soovitusi',
+	'coll-suggest_empty' => 'tühi',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ * @author Kobazulo
+ * @author Theklan
+ */
+$messages['eu'] = array(
+	'coll-print_export' => 'Inprimatu/esportatu',
+	'coll-create_a_book' => 'Liburu bat sortu',
+	'coll-create_a_book_tooltip' => 'Sortu liburu edo orrialde bilduma bat',
+	'coll-book_creator' => 'Liburu sortzailea',
+	'coll-download_as' => '$1 gisa jaitsi',
+	'coll-download_as_tooltip' => 'Jaitsi wiki orrialde honen $1 bertsioa',
+	'coll-disable' => 'ezgaitu',
+	'coll-book_creator_disable' => 'Ezgaitu liburu sortzailea',
+	'coll-book_creator_disable_tooltip' => 'Utzi liburu sortzailea erabiltzeari',
+	'coll-add_linked_article' => 'Gehitu lotutako wiki orrialdea zure liburuan',
+	'coll-remove_linked_article' => 'Ezabatu lotutako wiki orrialdea zure liburutik',
+	'coll-add_category' => 'Kategoria hau gehitu zure liburura gehitu',
+	'coll-add_category_tooltip' => 'Gehitu kategoria honetako orrialde guztiak zure liburura',
+	'coll-add_this_page' => 'Gehitu orrialde hau zure liburura',
+	'coll-add_page_tooltip' => 'Gehitu orrialde hau zure liburura',
+	'coll-bookscategory' => 'Liburuak',
+	'coll-clear_collection' => 'Liburua ezabatu',
+	'coll-clear_collection_confirm' => 'Benetan ezabatu nahi al duzu zure liburu osoa?',
+	'coll-clear_collection_tooltip' => 'Kendu wiki orrialde guztiak zure liburutik',
+	'coll-help' => 'Laguntza',
+	'coll-help_tooltip' => 'Eraktusi liburu sorrerarako laguntza',
+	'coll-helppage' => 'Help:Liburuak',
+	'coll-load_collection' => 'Liburua kargatu',
+	'coll-load_collection_tooltip' => 'Liburu hau kargatu zure liburu gisa',
+	'coll-n_pages' => '{{PLURAL:$1|Orrialde 1|$1 orrialde}}',
+	'coll-printable_version_pdf' => 'PDF bertsioa',
+	'coll-remove_this_page' => 'Kendu orrialde hau zure liburutik',
+	'coll-remove_page_tooltip' => 'Kendu orrialde hau zure liburutik',
+	'coll-show_collection' => 'Liburua erakutsi',
+	'coll-show_collection_tooltip' => 'Zure liburua editatzeko/deskargatzeko/eskatzeko egizu klik',
+	'coll-not_addable' => 'Orrialde hau ezin da gehitu',
+	'coll-make_suggestions' => 'Orrialdeak proposatu',
+	'coll-make_suggestions_tooltip' => 'Erakutsi gomendioak liburu honetako orrialdeak kontuan izanda',
+	'coll-suggest_empty' => 'hutsik',
+);
+
+/** Persian (فارسی)
+ * @author Bersam
+ * @author Ebraminio
+ * @author Huji
+ * @author Komeil 4life
+ * @author Ladsgroup
+ * @author MehranVB
+ * @author Wayiran
+ * @author محک
+ */
+$messages['fa'] = array(
+	'coll-print_export' => 'چاپ/برون‌ریزی',
+	'coll-create_a_book' => 'ایجاد کتاب',
+	'coll-create_a_book_tooltip' => 'یک کتاب یا مجموعه صفحات ایجاد کن',
+	'coll-book_creator' => 'کتاب‌ساز',
+	'coll-download_as' => 'بارگیری به‌صورت $1',
+	'coll-download_as_tooltip' => 'یک نسخهٔ $1 از این صفحهٔ ویکی را بارگیری کن',
+	'coll-disable' => 'غیرفعال',
+	'coll-book_creator_disable' => 'کتاب‌ساز را غیرفعال کن',
+	'coll-book_creator_disable_tooltip' => 'استفاده از کتاب‌ساز را متوقف کنید',
+	'coll-add_linked_article' => 'صفحهٔ ویکی پیونددهی‌شده را به کتابتان اضافه کنید',
+	'coll-remove_linked_article' => 'صفحهٔ ویکی پیونددهی‌شده را از کتابتان حذف کنید',
+	'coll-add_category' => 'این رده را به کتابتان بیفزایید',
+	'coll-add_category_tooltip' => 'همهٔ صفحات ویکی در این رده را به کتابتان بیفزایید',
+	'coll-add_this_page' => 'این صفحه را به کتاب‌تان بیفزایید',
+	'coll-add_page_tooltip' => 'صفحهٔ فعلی ویکی به کتابتان اضافه شود',
+	'coll-bookscategory' => 'کتاب‌های کاربران ویکی‌پدیا',
+	'coll-clear_collection' => 'پاک کردن کتاب',
+	'coll-clear_collection_confirm' => 'آیا واقعاً می‌خواهید که کتاب خود را به طور کامل پاک کنید؟',
+	'coll-clear_collection_tooltip' => 'همهٔ صفحات ویکی را از کتاب فعلیتان حذف کنید',
+	'coll-help' => 'راهنما',
+	'coll-help_tooltip' => 'راهنمای ایجاد کتاب‌ها را نشان بده',
+	'coll-helppage' => 'Help:کتاب‌ها',
+	'coll-load_collection' => 'بارکردن کتاب',
+	'coll-load_collection_tooltip' => 'این کتاب را به عنوان کتاب فعلی بارگذاری کنید',
+	'coll-n_pages' => '$1 {{PLURAL:$1|صفحه|صفحه}}',
+	'coll-printable_version_pdf' => 'نسخهٔ پی‌دی‌اف',
+	'coll-remove_this_page' => 'این صفحه را از کتابتان حذف کنید',
+	'coll-remove_page_tooltip' => 'صفحهٔ ویکی کنونی را از کتابتان حذف کنید',
+	'coll-show_collection' => 'نمایش کتاب',
+	'coll-show_collection_tooltip' => 'برای ویرایش/بارگیری/سفارش کتاب خود کلیک کنید',
+	'coll-not_addable' => 'این صفحه نمی‌تواند اضافه شود',
+	'coll-make_suggestions' => 'پیشنهاد صفحات',
+	'coll-make_suggestions_tooltip' => 'نمایش پیشنهادات را بر پایهٔ صفحات کتابتان',
+	'coll-suggest_empty' => 'خالی',
+);
+
+/** Finnish (Suomi)
+ * @author Cimon Avaro
+ * @author Crt
+ * @author Nike
+ * @author Olli
+ * @author Str4nd
+ * @author Zache
+ */
+$messages['fi'] = array(
+	'coll-print_export' => 'Tulosta tai vie',
+	'coll-create_a_book' => 'Luo kirja',
+	'coll-create_a_book_tooltip' => 'Luo kirja tai sivukokoelma',
+	'coll-book_creator' => 'Kirjan luontitila',
+	'coll-download_as' => 'Lataa $1-tiedostona',
+	'coll-download_as_tooltip' => 'Lataa tämä wikisivu $1-muodossa',
+	'coll-disable' => 'poista käytöstä',
+	'coll-book_creator_disable' => 'Poista kirjan luontitila käytöstä',
+	'coll-book_creator_disable_tooltip' => 'Lopeta kirjan luontitila',
+	'coll-add_linked_article' => 'Lisää linkitetty wikisivu kirjaan',
+	'coll-remove_linked_article' => 'Poista linkitetty wikisivu kirjastasi',
+	'coll-add_category' => 'Lisää tämä luokka kirjaasi',
+	'coll-add_category_tooltip' => 'Lisää kaikki wikisivut kirjaasi tästä luokasta',
+	'coll-add_this_page' => 'Lisää tämä sivu kirjaasi',
+	'coll-add_page_tooltip' => 'Lisää nykyinen wikisivu kirjaasi',
+	'coll-bookscategory' => 'Kirjat',
+	'coll-clear_collection' => 'Tyhjennä kirja',
+	'coll-clear_collection_confirm' => 'Haluatko varmasti tyhjentää kirjasi?',
+	'coll-clear_collection_tooltip' => 'Poista kaikki wikisivut nykyisestä kirjastasi',
+	'coll-help' => 'Ohje',
+	'coll-help_tooltip' => 'Näytä ohje kirjojen luonnista',
+	'coll-helppage' => 'Help:Kirjat',
+	'coll-load_collection' => 'Avaa kirja',
+	'coll-load_collection_tooltip' => 'Avaa tämä kirja nykyiseksi kirjaksesi',
+	'coll-n_pages' => '$1 {{PLURAL:$1|sivu|sivua}}',
+	'coll-printable_version_pdf' => 'PDF-versio',
+	'coll-remove_this_page' => 'Poista tämä sivu kirjastasi',
+	'coll-remove_page_tooltip' => 'Poista nykyinen wikisivu kirjastasi',
+	'coll-show_collection' => 'Näytä kirja',
+	'coll-show_collection_tooltip' => 'Napsauta muokataksesi, ladataksesi tai tilataksesi kirjasi',
+	'coll-not_addable' => 'Tätä sivua ei voi lisätä',
+	'coll-make_suggestions' => 'Ehdotetut sivut',
+	'coll-make_suggestions_tooltip' => 'Näytä ehdotukset, jotka perustuvat kirjan sivuihin',
+	'coll-suggest_empty' => 'tyhjä',
+);
+
+/** French (Français)
+ * @author Crochet.david
+ * @author Grondin
+ * @author Guillom
+ * @author IAlex
+ * @author Jean-Frédéric
+ * @author McDutchie
+ * @author Meithal
+ * @author PieRRoMaN
+ * @author Verdy p
+ */
+$messages['fr'] = array(
+	'coll-print_export' => 'Imprimer / exporter',
+	'coll-create_a_book' => 'Créer un livre',
+	'coll-create_a_book_tooltip' => 'Créer un livre ou une collection d’articles',
+	'coll-book_creator' => 'Créateur de livres',
+	'coll-download_as' => 'Télécharger comme $1',
+	'coll-download_as_tooltip' => 'Télécharge une version $1 de cette page wiki',
+	'coll-disable' => 'désactiver',
+	'coll-book_creator_disable' => 'Désactiver le créateur de livre',
+	'coll-book_creator_disable_tooltip' => 'Cesser d’utiliser le créateur de livre',
+	'coll-add_linked_article' => 'Ajouter la page wiki liée à votre livre',
+	'coll-remove_linked_article' => 'Enlever la page wiki liée de votre livre',
+	'coll-add_category' => 'Ajouter cette catégorie à votre livre',
+	'coll-add_category_tooltip' => 'Ajouter tous les articles de cette catégorie à votre livre',
+	'coll-add_this_page' => 'Ajouter cette page à votre livre',
+	'coll-add_page_tooltip' => 'Ajouter la page courante à votre livre',
+	'coll-bookscategory' => 'Livres',
+	'coll-clear_collection' => 'Vider le livre',
+	'coll-clear_collection_confirm' => 'Voulez-vous réellement effacer l’intégralité de votre livre ?',
+	'coll-clear_collection_tooltip' => 'Enlever tous les articles de votre livre actuel',
+	'coll-help' => 'Aide',
+	'coll-help_tooltip' => 'Afficher l’aide sur la création de livres',
+	'coll-helppage' => 'Help:Livres',
+	'coll-load_collection' => 'Charger un livre',
+	'coll-load_collection_tooltip' => 'Charger ce livre en tant que votre livre actuel',
+	'coll-n_pages' => '$1 page{{PLURAL:$1||s}}',
+	'coll-printable_version_pdf' => 'Version PDF',
+	'coll-remove_this_page' => 'Retirer cette page de votre livre',
+	'coll-remove_page_tooltip' => 'Retirer la page courante de votre livre',
+	'coll-show_collection' => 'Afficher le livre',
+	'coll-show_collection_tooltip' => 'Cliquez pour modifier / télécharger / commander votre livre',
+	'coll-not_addable' => 'Cette page ne peut pas être ajoutée',
+	'coll-make_suggestions' => 'Suggérer des pages',
+	'coll-make_suggestions_tooltip' => 'Montrer les suggestions fondées sur les pages dans votre livre',
+	'coll-suggest_empty' => 'vide',
+);
+
+/** Franco-Provençal (Arpetan)
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'coll-print_export' => 'Emprimar / èxportar',
+	'coll-create_a_book' => 'Fâre un lévro',
+	'coll-create_a_book_tooltip' => 'Fâre un lévro ou ben una colèccion de pâges',
+	'coll-book_creator' => 'Crèator de lévros',
+	'coll-download_as' => 'Tèlèchargiér coment $1',
+	'coll-download_as_tooltip' => 'Tèlècharge una vèrsion $1 de ceta pâge vouiqui.',
+	'coll-disable' => 'dèsactivar',
+	'coll-book_creator_disable' => 'Dèsactivar lo crèator de lévro',
+	'coll-book_creator_disable_tooltip' => 'Quitar d’utilisar lo crèator de lévro',
+	'coll-add_linked_article' => 'Apondre la pâge vouiqui liyê a voutron lévro',
+	'coll-remove_linked_article' => 'Enlevar la pâge vouiqui liyê de voutron lévro',
+	'coll-add_category' => 'Apondre ceta catègorie a voutron lévro',
+	'coll-add_category_tooltip' => 'Apondre totes les pâges vouiqui de ceta catègorie a voutron lévro',
+	'coll-add_this_page' => 'Apondre ceta pâge a voutron lévro',
+	'coll-add_page_tooltip' => 'Apondre la pâge vouiqui d’ora a voutron lévro',
+	'coll-bookscategory' => 'Lévros',
+	'coll-clear_collection' => 'Vouedar lo lévro',
+	'coll-clear_collection_confirm' => 'Voléd-vos franc èfaciér tot voutron lévro ?',
+	'coll-clear_collection_tooltip' => 'Enlevar totes les pâges vouiqui de voutron lévro d’ora',
+	'coll-help' => 'Éde',
+	'coll-help_tooltip' => 'Fâre vêre l’éde sur la crèacion de lévros',
+	'coll-helppage' => 'Help:Lévros',
+	'coll-load_collection' => 'Chargiér un lévro',
+	'coll-load_collection_tooltip' => 'Chargiér ceti lévro coment voutron lévro d’ora',
+	'coll-n_pages' => '$1 pâge{{PLURAL:$1||s}}',
+	'coll-printable_version_pdf' => 'Vèrsion PDF',
+	'coll-remove_this_page' => 'Enlevar ceta pâge de voutron lévro',
+	'coll-remove_page_tooltip' => 'Enlevar la pâge vouiqui d’ora de voutron lévro',
+	'coll-show_collection' => 'Fâre vêre lo lévro',
+	'coll-show_collection_tooltip' => 'Clicâd por changiér / tèlèchargiér / comandar voutron lévro.',
+	'coll-not_addable' => 'Ceta pâge pôt pas étre apondua',
+	'coll-make_suggestions' => 'Conselyér des pâges',
+	'coll-make_suggestions_tooltip' => 'Montrar los consèlys basâs sur les pâges dens voutron lévro',
+	'coll-suggest_empty' => 'vouedo',
+);
+
+/** Scottish Gaelic (Gàidhlig)
+ * @author Akerbeltz
+ */
+$messages['gd'] = array(
+	'coll-print_export' => 'Clò-bhuail/às-phortaich',
+	'coll-create_a_book' => 'Cruthaich leabhar',
+	'coll-create_a_book_tooltip' => 'Cruthaich leabhar no cruinneachadh dhuilleagan',
+	'coll-book_creator' => 'Cruthadair leabhraichean',
+	'coll-download_as' => 'Luchdaich a-nuas mar $1',
+	'coll-download_as_tooltip' => 'Luchdaich a-nuas tionndadh $1 dhen duilleag uici seo',
+	'coll-disable' => 'cuir à comas',
+	'coll-book_creator_disable' => 'Cuir cruthadair nan leabhraichean à comas',
+	'coll-book_creator_disable_tooltip' => 'Sguir de chleachdadh cruthadair nan leabhraichean',
+	'coll-add_linked_article' => 'Cuir duilleag uici le ceanglaichean ris an leabhar agad',
+	'coll-remove_linked_article' => 'Thoir air falbh duilleag uici le ceanglaichean on leabhar agad',
+	'coll-add_category' => 'Cuir an roinn-seòrsa ris an leabhar agad',
+	'coll-add_category_tooltip' => 'Cuir gach duilleag uici san roinn-seòrsa seo ris an leabhar agad',
+	'coll-add_this_page' => 'Cuir an duilleag seo ris an leabhar agad',
+	'coll-add_page_tooltip' => 'Cuir an duilleag uici làithreach ris an leabhar agad',
+	'coll-bookscategory' => 'Leabhraichean',
+	'coll-clear_collection' => 'Falamhaich an leabhar',
+	'coll-clear_collection_confirm' => 'A bheil thu cinnteach gu bheil thu airson an leabhar gu lèir fhalamhachadh?',
+	'coll-clear_collection_tooltip' => 'Thoir air falbh gach duilleag uici on leabhar làithreach agad',
+	'coll-help' => 'Cobhair',
+	'coll-help_tooltip' => "Seall a' chobhair mu chruthachadh leabhraichean",
+	'coll-helppage' => 'Help:Leabhraichean',
+	'coll-load_collection' => 'Luchdaich leabhar',
+	'coll-load_collection_tooltip' => 'Luchdaich an leabhar seo mar an leabhar làithreach agad',
+	'coll-n_pages' => '$1 {{PLURAL:$1|duilleag|dhuilleag|duilleag|dhuilleag|duilleagan|duilleag}}',
+	'coll-printable_version_pdf' => 'Tionndadh PDF',
+	'coll-remove_this_page' => 'Thoir an duilleag seo às an leabhar agad',
+	'coll-remove_page_tooltip' => 'Thoir air falbh duilleag uici seo on leabhar agad',
+	'coll-show_collection' => 'Seall an leabhar',
+	'coll-show_collection_tooltip' => 'Dèan briogadh gus an leabhar agad a dheasachadh, a luchdadh a-nuas no òrdugh a chur',
+	'coll-not_addable' => 'Cha ghabh an duilleag seo a chur ris',
+	'coll-make_suggestions' => 'Mol duilleagan',
+	'coll-make_suggestions_tooltip' => 'Seall molaidhean a-rèir nan duilleagan san leabhar agad',
+	'coll-suggest_empty' => 'falamh',
+);
+
+/** Galician (Galego)
+ * @author Alma
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'coll-print_export' => 'Imprimir/exportar',
+	'coll-create_a_book' => 'Crear un libro',
+	'coll-create_a_book_tooltip' => 'Crear un libro ou unha colección de páxinas',
+	'coll-book_creator' => 'Creador de libros',
+	'coll-download_as' => 'Descargar como $1',
+	'coll-download_as_tooltip' => 'Descargar unha versión en formato $1 desta páxina wiki',
+	'coll-disable' => 'desactivar',
+	'coll-book_creator_disable' => 'Desactivar o creador de libros',
+	'coll-book_creator_disable_tooltip' => 'Deixar de usar o creador de libros',
+	'coll-add_linked_article' => 'Engadir a páxina wiki ligada ao seu libro',
+	'coll-remove_linked_article' => 'Eliminar a páxina wiki ligada do seu libro',
+	'coll-add_category' => 'Engadir esta categoría ao seu libro',
+	'coll-add_category_tooltip' => 'Engadir todas as páxinas wiki desta categoría ao seu libro',
+	'coll-add_this_page' => 'Engadir esta páxina ao seu libro',
+	'coll-add_page_tooltip' => 'Engadir a páxina wiki actual ao seu libro',
+	'coll-bookscategory' => 'Libros',
+	'coll-clear_collection' => 'Borrar o libro',
+	'coll-clear_collection_confirm' => 'Realmente quere eliminar por completo o seu libro?',
+	'coll-clear_collection_tooltip' => 'Eliminar todas as páxinas wiki do seu libro actual',
+	'coll-help' => 'Axuda',
+	'coll-help_tooltip' => 'Mostrar a axuda sobre a creación de libros',
+	'coll-helppage' => 'Help:Libros',
+	'coll-load_collection' => 'Cargar un libro',
+	'coll-load_collection_tooltip' => 'Cargar este libro como o seu libro actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|páxina|páxinas}}',
+	'coll-printable_version_pdf' => 'Versión PDF',
+	'coll-remove_this_page' => 'Eliminar esta páxina do seu libro',
+	'coll-remove_page_tooltip' => 'Eliminar a páxina wiki actual do seu libro',
+	'coll-show_collection' => 'Mostrar o libro',
+	'coll-show_collection_tooltip' => 'Prema para editar/descargar/pedir o seu libro',
+	'coll-not_addable' => 'Esta páxina non se pode engadir',
+	'coll-make_suggestions' => 'Suxerir as páxinas',
+	'coll-make_suggestions_tooltip' => 'Mostrar as suxestións baseadas nas páxinas do seu libro',
+	'coll-suggest_empty' => 'baleiro',
+);
+
+/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
+ * @author Omnipaedista
+ */
+$messages['grc'] = array(
+	'coll-download_as' => 'Καταφορτίζειν ὡς $1',
+	'coll-add_category' => 'Προστιθέναι κατηγορίαν εἰς τὸ βιβλίον σου',
+	'coll-bookscategory' => 'Βιβλία',
+	'coll-help' => 'Βοήθεια',
+	'coll-printable_version_pdf' => 'Ἔκδοσις PDF',
+);
+
+/** Swiss German (Alemannisch)
+ * @author Als-Holder
+ */
+$messages['gsw'] = array(
+	'coll-print_export' => 'Drucke/exportiere',
+	'coll-create_a_book' => 'Buech aalege',
+	'coll-create_a_book_tooltip' => 'E Buech oder e Artikelsammlig aalege',
+	'coll-book_creator' => 'Buechgenerator',
+	'coll-download_as' => 'As $1 abelade',
+	'coll-download_as_tooltip' => 'E $1-Version vu däre Wikisyte abelade',
+	'coll-disable' => 'deaktiviere',
+	'coll-book_creator_disable' => 'Buechgenerator deaktiviere',
+	'coll-book_creator_disable_tooltip' => 'Buechgenerator nit bruche',
+	'coll-add_linked_article' => 'Fieg e vergleichti Wikisyte in Dyy Buech yy',
+	'coll-remove_linked_article' => 'Nimm e vergleichti Wikisyte us Dyym Buech uuse',
+	'coll-add_category' => 'Die Kategorii zue Dyym Buech dezuefiege',
+	'coll-add_category_tooltip' => 'Alli Wikisyte in däre Kategorii in Dyy Buech yyfiege',
+	'coll-add_this_page' => 'Die Syte zue Dyym Buech zuefiege',
+	'coll-add_page_tooltip' => 'Di aktuäll Wikisyte zue Dyynem Buech zuefiege',
+	'coll-bookscategory' => 'Buechfunktion',
+	'coll-clear_collection' => 'Buech lesche',
+	'coll-clear_collection_confirm' => 'Mechtsch Dyy Buech ächt lesche?',
+	'coll-clear_collection_tooltip' => 'Alli Wikisyte us Dyynem aktuälle Buech useneh',
+	'coll-help' => 'Hilf',
+	'coll-help_tooltip' => 'Hilf zum Aalege vu Biecher aazeige',
+	'coll-helppage' => 'Help:Biecher',
+	'coll-load_collection' => 'Buech lade',
+	'coll-load_collection_tooltip' => 'Des Buech as Dyy aktuäll Buech lade',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Syte|Syte}}',
+	'coll-printable_version_pdf' => 'PDF-Version',
+	'coll-remove_this_page' => 'Die Syte us Dyym Buech useneh',
+	'coll-remove_page_tooltip' => 'Di aktuäll Wikisyte us Dyynem Buech uuseneh',
+	'coll-show_collection' => 'Buech zeige',
+	'coll-show_collection_tooltip' => 'Druck do go Dyy Buech bearbeite/abelade/bstelle',
+	'coll-not_addable' => 'Die Syte het nit chenne zuegfiegt wäre',
+	'coll-make_suggestions' => 'Syte vorschlaa',
+	'coll-make_suggestions_tooltip' => 'Vorschleg zeige, wu uf dr Syte in Dyym Buech basiere',
+	'coll-suggest_empty' => 'läär',
+);
+
+/** Gujarati (ગુજરાતી)
+ * @author Ashok modhvadia
+ * @author Dsvyas
+ * @author Sushant savla
+ */
+$messages['gu'] = array(
+	'coll-print_export' => 'છાપો/નિકાસ',
+	'coll-create_a_book' => 'પુસ્તક બનાવો',
+	'coll-create_a_book_tooltip' => 'પુસ્તક અથવા પાનાં સંગ્રહ બનાવો',
+	'coll-book_creator' => 'પુસ્તક નિર્માતા',
+	'coll-download_as' => '$1 તરીકે ડાઉનલોડ કરો',
+	'coll-download_as_tooltip' => 'આ વિકિ પાનાની $1 આવૃત્તિ ડાઉનલોડ કરો',
+	'coll-disable' => 'નિષ્ક્રિય',
+	'coll-book_creator_disable' => 'પુસ્તક નિર્માતા નિષ્ક્રિય કરો',
+	'coll-book_creator_disable_tooltip' => 'પુસ્તક નિર્માતા વાપરવાનું બંધ કરો',
+	'coll-add_linked_article' => 'સંકળાયેલું વિકિ પાનું તમારા પુસ્તકમાં ઉમેરો',
+	'coll-remove_linked_article' => 'સંકળાયેલું વિકિ પાનું તમારા પુસ્તકમાંથી કાઢી નાંખો',
+	'coll-add_category' => 'આ શ્રેણી તમારા પુસ્તકમાં ઉમેરો',
+	'coll-add_category_tooltip' => 'આ શ્રેણીનાં બધા વિકિ પાનાં તમારા પુસ્તકમાં ઉમેરો',
+	'coll-add_this_page' => 'આ પાનું તમારા પુસ્તકમાં ઉમેરો',
+	'coll-add_page_tooltip' => 'આ પ્રસ્તુત વિકિ પાનું તમારા પુસ્તકમાં ઉમેરો',
+	'coll-bookscategory' => 'પુસ્તકો',
+	'coll-clear_collection' => 'પુસ્તક સાફ કરો',
+	'coll-clear_collection_confirm' => 'તમે ખરેખર તમારું પુસ્તક સંપૂર્ણપણે સાફ કરવા માંગો છો?',
+	'coll-clear_collection_tooltip' => 'તમારા પ્રસ્તુત પુસ્તકમાંથી બધા વિકિ પાનાં દૂર કરો',
+	'coll-help' => 'મદદ',
+	'coll-help_tooltip' => 'પુસ્તક બનાવવા વિષયક મદદ દર્શાવો',
+	'coll-helppage' => 'મદદ:પુસ્તકો',
+	'coll-load_collection' => 'પુસ્તક લાદો',
+	'coll-load_collection_tooltip' => 'આ પુસ્તકને તમારા પ્રસ્તુત તરીકે લાદો',
+	'coll-n_pages' => '$1 {{PLURAL:$1|પાનું|પાના}}',
+	'coll-printable_version_pdf' => 'PDF સંસ્કરણ',
+	'coll-remove_this_page' => 'આ પાનું તમારા પુસ્તકમાંથી કાઢી નાખો',
+	'coll-remove_page_tooltip' => 'પ્રસ્તુત વિકિ પાનું તમારા પુસ્તકમાંથી કાઢી નાંખો',
+	'coll-show_collection' => 'પુસ્તક બતાવો',
+	'coll-show_collection_tooltip' => 'તમારા પુસ્તકમાં ફેરફાર/ડાઉનલોડ/ફરમાયશ કરવા ક્લિક કરો',
+	'coll-not_addable' => 'આ પાનું ઉમેરી શકાશે નહી',
+	'coll-make_suggestions' => 'પાનાં સુચવો',
+	'coll-make_suggestions_tooltip' => 'તમારા પુસ્તકમાં રહેલા પાનાંને આધારે સુઝાવ બતાવો',
+	'coll-suggest_empty' => 'ખાલી',
+);
+
+/** Manx (Gaelg)
+ * @author MacTire02
+ */
+$messages['gv'] = array(
+	'coll-create_a_book' => 'My haglym',
+	'coll-helppage' => 'Help:Lioaryn',
+);
+
+/** Hebrew (עברית)
+ * @author Amire80
+ * @author Rotemliss
+ * @author YaronSh
+ */
+$messages['he'] = array(
+	'coll-print_export' => 'הדפסה/יצוא',
+	'coll-create_a_book' => 'יצירת ספר',
+	'coll-create_a_book_tooltip' => 'יצירת ספר או אוסף דפים',
+	'coll-book_creator' => 'מצב ספר',
+	'coll-download_as' => 'הורדה כ־$1',
+	'coll-download_as_tooltip' => 'הורדת גרסת $1 של דף ויקי זה',
+	'coll-disable' => 'ביטול',
+	'coll-book_creator_disable' => 'ביטול מצב ספר',
+	'coll-book_creator_disable_tooltip' => 'הפסקת השימוש ביוצר הספרים',
+	'coll-add_linked_article' => 'הוספת עמוד ויקי מקושר לספר שלך',
+	'coll-remove_linked_article' => 'הסרת עמוד ויקי מקושר מהספר שלך',
+	'coll-add_category' => 'הוספת קטגוריה זו לספר שלכם',
+	'coll-add_category_tooltip' => 'הוספת כל הדפים בקטגוריה זו לספר שלכם',
+	'coll-add_this_page' => 'הוספת דף זה לספר שלכם',
+	'coll-add_page_tooltip' => 'הוספת דף הוויקי הנוכחי לספר שלכם',
+	'coll-bookscategory' => 'ספרים',
+	'coll-clear_collection' => 'ניקוי הספר',
+	'coll-clear_collection_confirm' => 'האם אתם בטוחים שברצונכם לנקות לגמרי את הספר שלכם?',
+	'coll-clear_collection_tooltip' => 'הסרת כל הדפים מהספר הנוכחי שלך',
+	'coll-help' => 'עזרה',
+	'coll-help_tooltip' => 'הצגת עזרה על יצירת ספרים',
+	'coll-helppage' => 'Help:ספרים',
+	'coll-load_collection' => 'טעינת ספר',
+	'coll-load_collection_tooltip' => 'טעינת הספר הזה כספר הנוכחי שלך',
+	'coll-n_pages' => '{{PLURAL:$1|דף אחד|$1 דפים}}',
+	'coll-printable_version_pdf' => 'גרסת PDF',
+	'coll-remove_this_page' => 'הסרת דף זה מהספר שלכם',
+	'coll-remove_page_tooltip' => 'הסרת דף הוויקי הנוכחי מהספר שלך',
+	'coll-show_collection' => 'הצגת ספר',
+	'coll-show_collection_tooltip' => 'עריכת/הורדת/הזמנת הספר שלך',
+	'coll-not_addable' => 'לא ניתן להוסיף דף זה',
+	'coll-make_suggestions' => 'הצעת דפים',
+	'coll-make_suggestions_tooltip' => 'הצגת הצעות המבוססות על הדפים הנמצאים בספר',
+	'coll-suggest_empty' => 'ריק',
+);
+
+/** Hindi (हिन्दी)
+ * @author Ansumang
+ * @author Kaustubh
+ */
+$messages['hi'] = array(
+	'coll-print_export' => 'प्रिंट/निर्यात',
+	'coll-create_a_book' => 'मेरा कलेक्शन',
+	'coll-create_a_book_tooltip' => 'एक पुस्तक या पृष्ठ संग्रह बनाएँ',
+	'coll-book_creator' => 'पुस्तक निर्माता',
+	'coll-download_as' => '$1 के रूप में डाउनलोड करें',
+	'coll-download_as_tooltip' => 'इस विकि पृष्ठ के एक $1 संस्करन डाउनलोड करें',
+	'coll-disable' => 'अक्षम करें',
+	'coll-book_creator_disable' => 'पुस्तक निर्माता को अक्षम करें',
+	'coll-book_creator_disable_tooltip' => 'पुस्तक निर्माता का उपयोग बंद करें',
+	'coll-add_linked_article' => 'लिंक्ड विकि पृष्ठ को अपनी पुस्तक से जोड़ें',
+	'coll-remove_linked_article' => 'लिंक्ड विकि पृष्ठ को अपनी पुस्तक से निकालें',
+	'coll-add_category' => 'इस श्रेणी को अपनी पुस्तक से जोड़ें',
+	'coll-add_category_tooltip' => 'इस श्रेणी की सारी विकि पृष्ठ को अपनी पुस्तक से जोड़ें',
+	'coll-add_this_page' => 'इस पृष्ठ को अपनी पुस्तक से जोड़ें',
+	'coll-add_page_tooltip' => 'बर्त्तमान की विकि पृष्ठ को अपनी पुस्तक से जोड़ें',
+	'coll-bookscategory' => 'पुस्तकें',
+	'coll-clear_collection' => 'पुस्तक खाली करें',
+	'coll-clear_collection_confirm' => 'क्या आप वास्तव में पूरी पुस्तक खाली करना चाहते हैं?',
+	'coll-clear_collection_tooltip' => 'सारे विकि पृष्ठ को अपनी बर्त्तमान की पुस्तक से निकालें',
+	'coll-help' => 'सहायता',
+	'coll-help_tooltip' => 'पुस्तक निर्माण में सहायता दिखाएँ',
+	'coll-helppage' => 'Help:कलेक्शन',
+	'coll-load_collection' => 'कलेक्शन लोड करें',
+	'coll-load_collection_tooltip' => 'बर्त्तमान पुस्तक की तरह इस पुस्तक को लोड़ करें',
+	'coll-n_pages' => '$2 {{PLURAL:$1|पृष्ठ|पृष्ठ}}',
+	'coll-printable_version_pdf' => 'PDF रूपांतर',
+	'coll-remove_this_page' => 'इस पृष्ठ को अपनी पुस्तक से निकालें',
+	'coll-remove_page_tooltip' => 'बर्त्तमान की विकि पृष्ठ को अपनी पुस्तक से निकालें',
+	'coll-show_collection' => 'कलेक्शन दर्शायें',
+	'coll-not_addable' => 'इस पृष्ठ को जोड़ा नहीं जा सकता',
+	'coll-make_suggestions' => 'सुझाव पृष्ठों',
+	'coll-suggest_empty' => 'खाली',
+);
+
+/** Croatian (Hrvatski)
+ * @author Dalibor Bosits
+ * @author Ex13
+ * @author SpeedyGonsales
+ */
+$messages['hr'] = array(
+	'coll-print_export' => 'Ispis/izvoz',
+	'coll-create_a_book' => 'Napravi zbirku',
+	'coll-create_a_book_tooltip' => 'Stvorite zbirku ili kolekciju stranica',
+	'coll-book_creator' => 'Alat za stvaranje knjige',
+	'coll-download_as' => 'Preuzmi kao $1',
+	'coll-download_as_tooltip' => 'Preuzmi $1 inačicu ove wiki stranice',
+	'coll-disable' => 'onemogući',
+	'coll-book_creator_disable' => 'Onemogući alat za knjige',
+	'coll-book_creator_disable_tooltip' => 'Prestani rabiti alat za knjige',
+	'coll-add_linked_article' => 'Dodaj povezanu wiki stranicu u svoju knjigu',
+	'coll-remove_linked_article' => 'Ukloni povezanu wiki stranicu iz svoje knjige',
+	'coll-add_category' => 'Dodaj ovu kategoriju u svoju zbirku',
+	'coll-add_category_tooltip' => 'Dodaj sve stranica iz kategoriji u svoju zbirku',
+	'coll-add_this_page' => 'Dodaj ovu stranicu u svoju zbirku',
+	'coll-add_page_tooltip' => 'Dodajte trenutačnu stranicu u svoju zbirku',
+	'coll-bookscategory' => 'Zbirke',
+	'coll-clear_collection' => 'Očisti zbirku',
+	'coll-clear_collection_confirm' => 'Želite li stvarno očistiti svoju cijelu zbirku?',
+	'coll-clear_collection_tooltip' => 'Uklonite sve stranice iz vaše trenutačne zbirke',
+	'coll-help' => 'Pomoć',
+	'coll-help_tooltip' => 'Prikazuje pomoć za stvaranje zbirke',
+	'coll-helppage' => 'Help:Zbirke',
+	'coll-load_collection' => 'Učitaj zbirku',
+	'coll-load_collection_tooltip' => 'Učitati ovu zbirku kao svoju trenutačnu zbirku',
+	'coll-n_pages' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
+	'coll-printable_version_pdf' => 'PDF inačica',
+	'coll-remove_this_page' => 'Ukloni ovu stranicu iz svoje zbirke',
+	'coll-remove_page_tooltip' => 'Ukloni trenutnačnu stranicu iz svoje zbirke',
+	'coll-show_collection' => 'Pokaži zbirku',
+	'coll-show_collection_tooltip' => 'Kliknite da biste uredili/preuzeli/naručili svoju zbirku',
+	'coll-not_addable' => 'Ova stranica ne može biti dodana',
+	'coll-make_suggestions' => 'Predloži stranice',
+	'coll-make_suggestions_tooltip' => 'Pokaži prijedloge na temelju stranica u mojoj knjizi',
+	'coll-suggest_empty' => 'prazno',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'coll-print_export' => 'Ćišćeć/eksport',
+	'coll-create_a_book' => 'Knihu wutworić',
+	'coll-create_a_book_tooltip' => 'Knihu abo zběrku nastawkow wutworić',
+	'coll-book_creator' => 'Knižny generator',
+	'coll-download_as' => 'Jako $1 sćahnyć',
+	'coll-download_as_tooltip' => 'Wersiju $1 tuteje wikijoweje strony sćahnyć',
+	'coll-disable' => 'znjemóžnić',
+	'coll-book_creator_disable' => 'Knižny generator znjemóžnić',
+	'coll-book_creator_disable_tooltip' => 'Wužiwanje knižneho generatora zastajić',
+	'coll-add_linked_article' => 'Wotkazanu wikistronu twojej knize přidać',
+	'coll-remove_linked_article' => 'Wotkazanu wikistronu z twojeje knihi wotstronić',
+	'coll-add_category' => 'Tutu kategoriju twojej knize přidać',
+	'coll-add_category_tooltip' => 'Wšě wikistrony w tutej kategoriji twojej knize přidać',
+	'coll-add_this_page' => 'Tutu stronu twojej knize přidać',
+	'coll-add_page_tooltip' => 'Aktualnu wikijowu stronu twojej knize přidać',
+	'coll-bookscategory' => '{{SITENAME}}:Knihi',
+	'coll-clear_collection' => 'Knihu wuprózdnić',
+	'coll-clear_collection_confirm' => 'Chceš woprawdźe swoju knihu dospołnje wuprózdnić?',
+	'coll-clear_collection_tooltip' => 'Wšě wikistrony z twojeje aktualneje knihi wotstronić',
+	'coll-help' => 'Pomoc',
+	'coll-help_tooltip' => 'Pomoc wo wutworjenju knihow pokazać',
+	'coll-helppage' => 'Help:Knihi',
+	'coll-load_collection' => 'Knihu začitać',
+	'coll-load_collection_tooltip' => 'Tutu knihu jako twoju aktualnu knihu začitać',
+	'coll-n_pages' => '$1 {{PLURAL:$1|strona|stronje|strony|stronow}}',
+	'coll-printable_version_pdf' => 'PDF-wersija',
+	'coll-remove_this_page' => 'Tutu stronu z twojeje knihi wotstronić',
+	'coll-remove_page_tooltip' => 'Aktualnu wikijowu stronu z twojeje knihi wotstronić',
+	'coll-show_collection' => 'Knihu pokazać',
+	'coll-show_collection_tooltip' => 'Klikń, zo by swoju knihu wobdźěłał/sćahnył/skazał',
+	'coll-not_addable' => 'Tuta strona njeda so přidać',
+	'coll-make_suggestions' => 'Strony namjetować',
+	'coll-make_suggestions_tooltip' => 'Namjety pokazać, kotrež na stronach w twojej knize bazuja',
+	'coll-suggest_empty' => 'prózdny',
+);
+
+/** Hungarian (Magyar)
+ * @author Bdamokos
+ * @author Dani
+ * @author Glanthor Reviol
+ */
+$messages['hu'] = array(
+	'coll-print_export' => 'Nyomtatás/exportálás',
+	'coll-create_a_book' => 'Könyv készítése',
+	'coll-create_a_book_tooltip' => 'Könyv vagy lapgyűjtemény készítése',
+	'coll-book_creator' => 'Könyvkészítő',
+	'coll-download_as' => 'Letöltés mint $1',
+	'coll-download_as_tooltip' => 'A wikilap $1 formátumú változatának letöltése',
+	'coll-disable' => 'kikapcsolás',
+	'coll-book_creator_disable' => 'Könyvkészítő kikapcsolása',
+	'coll-book_creator_disable_tooltip' => 'Könyvkészítő használatának befejezése',
+	'coll-add_linked_article' => 'Hivatkozott wiki lap hozzáadása a könyvedhez',
+	'coll-remove_linked_article' => 'Hivatkozott wiki lap eltávolítása a könyvedből',
+	'coll-add_category' => 'Kategória hozzáadása a könyvedhez',
+	'coll-add_category_tooltip' => 'Ezen kategória összes lapjának hozzáadása a könyvhöz',
+	'coll-add_this_page' => 'Lap hozzáadása a könyvedhez',
+	'coll-add_page_tooltip' => 'A jelenlegi lap hozzáadása a könyvhöz',
+	'coll-bookscategory' => 'Wikipédia-könyvek',
+	'coll-clear_collection' => 'Könyv kiürítése',
+	'coll-clear_collection_confirm' => 'Valóban törölni szeretnéd a könyved?',
+	'coll-clear_collection_tooltip' => 'Az összes lap eltávolítása a kiválasztott könyvből',
+	'coll-help' => 'Segítség',
+	'coll-help_tooltip' => 'Segítség megjelenítése a könyvkészítésről',
+	'coll-helppage' => 'Help:Könyvek',
+	'coll-load_collection' => 'Könyv betöltése',
+	'coll-load_collection_tooltip' => 'Könyv betöltése kiválasztott könyvként',
+	'coll-n_pages' => '{{PLURAL:$1|egy|$1}} lap',
+	'coll-printable_version_pdf' => 'PDF változat',
+	'coll-remove_this_page' => 'Ezen lap eltávolítása a könyvedből',
+	'coll-remove_page_tooltip' => 'A jelenlegi lap eltávolítása a könyvből',
+	'coll-show_collection' => 'Könyv mutatása',
+	'coll-show_collection_tooltip' => 'Kattints ide a könyv szerkesztéséhez/letöltéséhez/megrendeléségez',
+	'coll-not_addable' => 'Ezt a lapot nem lehet hozzáadni',
+	'coll-make_suggestions' => 'Lapok ajánlása',
+	'coll-make_suggestions_tooltip' => 'Javaslatok megjelenítése a könyvedben található lapok alapján',
+	'coll-suggest_empty' => 'üres',
+);
+
+/** Armenian (Հայերեն)
+ * @author Teak
+ */
+$messages['hy'] = array(
+	'coll-create_a_book' => 'Ստեղծել գիրք',
+	'coll-download_as' => 'Քաշել որպես $1',
+	'coll-add_category' => 'Ավելացնել կատեգորիան',
+	'coll-bookscategory' => 'Գրքեր',
+	'coll-clear_collection' => 'Ջնջել գիրքը',
+	'coll-clear_collection_confirm' => 'Դուք իսկապես ցանկանում եք ամբողջությամբ ջնջե՞լ ձեր գիրքը։',
+	'coll-helppage' => 'Help:Գրքեր',
+	'coll-load_collection' => 'Բեռնել գիրքը',
+	'coll-n_pages' => '$1 {{PLURAL:$1|էջ|էջ}}',
+	'coll-printable_version_pdf' => 'PDF-տարբերակ',
+	'coll-show_collection' => 'Ցույց տալ գիրքը',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'coll-print_export' => 'Imprimer/exportar',
+	'coll-create_a_book' => 'Crear un libro',
+	'coll-create_a_book_tooltip' => 'Crear un libro o collection de paginas',
+	'coll-book_creator' => 'Creator de libros',
+	'coll-download_as' => 'Discargar como $1',
+	'coll-download_as_tooltip' => 'Discargar un version $1 de iste pagina wiki',
+	'coll-disable' => 'disactivar',
+	'coll-book_creator_disable' => 'Disactivar le creator de libros',
+	'coll-book_creator_disable_tooltip' => 'Cessar de usar le creator de libros',
+	'coll-add_linked_article' => 'Adder le pagina $1 a tu libro',
+	'coll-remove_linked_article' => 'Remover le pagina $1 de tu libro',
+	'coll-add_category' => 'Adder iste categoria a tu libro',
+	'coll-add_category_tooltip' => 'Adder tote le paginas wiki in iste categoria a tu libro',
+	'coll-add_this_page' => 'Adder iste pagina a tu libro',
+	'coll-add_page_tooltip' => 'Adder le pagina wiki actual a tu libro',
+	'coll-bookscategory' => 'Libros',
+	'coll-clear_collection' => 'Vacuar libro',
+	'coll-clear_collection_confirm' => 'Esque tu realmente vole vacuar completemente tu libro?',
+	'coll-clear_collection_tooltip' => 'Remover tote le pagians wiki de tu libro actual',
+	'coll-help' => 'Adjuta',
+	'coll-help_tooltip' => 'Monstrar adjuta super le creation de libros',
+	'coll-helppage' => 'Help:Libros',
+	'coll-load_collection' => 'Cargar libro',
+	'coll-load_collection_tooltip' => 'Cargar iste libro como tu libro actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|paginas}}',
+	'coll-printable_version_pdf' => 'Version PDF',
+	'coll-remove_this_page' => 'Remover iste pagina de tu libro',
+	'coll-remove_page_tooltip' => 'Remover le pagina wiki actual de tu libro',
+	'coll-show_collection' => 'Monstrar libro',
+	'coll-show_collection_tooltip' => 'Clicca pro modificar/discargar/commandar tu libro',
+	'coll-not_addable' => 'Iste pagina non pote esser addite',
+	'coll-make_suggestions' => 'Suggerer paginas',
+	'coll-make_suggestions_tooltip' => 'Monstrar suggestiones a base del paginas ja presente in tu libo',
+	'coll-suggest_empty' => 'vacue',
+);
+
+/** Indonesian (Bahasa Indonesia)
+ * @author -iNu-
+ * @author Bennylin
+ * @author Irwangatot
+ * @author IvanLanin
+ * @author Iwan Novirion
+ * @author Rex
+ */
+$messages['id'] = array(
+	'coll-print_export' => 'Cetak/ekspor',
+	'coll-create_a_book' => 'Buat buku',
+	'coll-create_a_book_tooltip' => 'Buat koleksi buku atau halaman',
+	'coll-book_creator' => 'Pembuat buku',
+	'coll-download_as' => 'Unduh versi $1',
+	'coll-download_as_tooltip' => 'Unduh versi $1 halaman wiki ini',
+	'coll-disable' => 'tutup',
+	'coll-book_creator_disable' => 'Tutup pembuat buku',
+	'coll-book_creator_disable_tooltip' => 'Berhenti menggunakan pembuat buku',
+	'coll-add_linked_article' => 'Tambahkan halaman yang terpaut dari halaman ini ke dalam buku Anda',
+	'coll-remove_linked_article' => 'Hapus halaman yang terpaut dari halaman ini dari buku Anda',
+	'coll-add_category' => 'Tambahkan kategori ini ke buku Anda',
+	'coll-add_category_tooltip' => 'Tambahkan semua halaman wiki pada kategori ini ke buku Anda',
+	'coll-add_this_page' => 'Tambahkan halaman ini ke dalam buku Anda',
+	'coll-add_page_tooltip' => 'Tambahkan halaman wiki ini ke dalam buku Anda',
+	'coll-bookscategory' => '{{SITENAME}}:Buku',
+	'coll-clear_collection' => 'Hapus buku',
+	'coll-clear_collection_confirm' => 'Apakah Anda benar-benar ingin menghapus bersih buku Anda?',
+	'coll-clear_collection_tooltip' => 'Hapus semua halaman wiki dari buku Anda',
+	'coll-help' => 'Bantuan',
+	'coll-help_tooltip' => 'Tunjukkan bantuan pembuatan buku',
+	'coll-helppage' => 'Help:Buku',
+	'coll-load_collection' => 'Muat buku',
+	'coll-load_collection_tooltip' => 'Muat buku ini sebagai buku aktif Anda',
+	'coll-n_pages' => '$1 {{PLURAL:$1|halaman|halaman}}',
+	'coll-printable_version_pdf' => 'Buat PDF',
+	'coll-remove_this_page' => 'Singkirkan halaman ini dari buku Anda',
+	'coll-remove_page_tooltip' => 'Buang halaman wiki ini dari buku Anda',
+	'coll-show_collection' => 'Lihat buku',
+	'coll-show_collection_tooltip' => 'Klik untuk menyunting/mengunduh/memesan buku Anda',
+	'coll-not_addable' => 'Halaman ini tidak dapat ditambahkan',
+	'coll-make_suggestions' => 'Sarankan halaman',
+	'coll-make_suggestions_tooltip' => 'Tampilkan saran berdasarkan halaman dalam buku Anda',
+	'coll-suggest_empty' => 'kosong',
+);
+
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'coll-help' => 'Nkwádo',
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'coll-print_export' => 'Imaldit/ipan',
+	'coll-create_a_book' => 'Agaramid ti libro',
+	'coll-create_a_book_tooltip' => 'Agaramid ti maysa a libro wenno naurnong a panid',
+	'coll-book_creator' => 'Agar-aramid ti libro',
+	'coll-download_as' => 'Ikarga a kas $1',
+	'coll-download_as_tooltip' => 'Ikarga ti $1 a bersion iti daytoy a panid ti wiki',
+	'coll-disable' => 'ibaldado',
+	'coll-book_creator_disable' => 'Ibaldado ti agar-aramid ti libro',
+	'coll-book_creator_disable_tooltip' => 'Agsardeng nga agusar ti agar-aramid ti libro',
+	'coll-add_linked_article' => 'Agnayon kadagiti nasilpuan a panid dita librom',
+	'coll-remove_linked_article' => 'Ikkaten dagiti nasilpuan a panid dita librom',
+	'coll-add_category' => 'Inayon daytoy a kategoria dita librom',
+	'coll-add_category_tooltip' => 'Inayon amin dagiti pampanid iti daytoy a kategoria dita librom',
+	'coll-add_this_page' => 'Inaron daytoy a panid diat librom',
+	'coll-add_page_tooltip' => 'Inayon ti agdama a panid ti wiki dita librom',
+	'coll-bookscategory' => 'Dagiti libro',
+	'coll-clear_collection' => 'Dalusan ti libro',
+	'coll-clear_collection_confirm' => 'Kayatmo nga agpayso a dalusan ti librom?',
+	'coll-clear_collection_tooltip' => 'Ikkaten amin nga agdama a pampanid manipud dita agdama a librom',
+	'coll-help' => 'Tulong',
+	'coll-help_tooltip' => 'Agipakita ti tulong a maipanggep ti panagaramid ti liblibro',
+	'coll-helppage' => 'Help:Liblibro',
+	'coll-load_collection' => 'Ikarga ti libro',
+	'coll-load_collection_tooltip' => 'Ikarga daytoy a libro a kasla ti agdama a librom',
+	'coll-n_pages' => '$1 {{PLURAL:$1|panid|pampanid}}',
+	'coll-printable_version_pdf' => 'PDF a bersion',
+	'coll-remove_this_page' => 'Ikkaten daytoy a panid manipud idiay librom',
+	'coll-remove_page_tooltip' => 'Inayon ti agdama a panid ti wiki manipud idiay librom',
+	'coll-show_collection' => 'Iparang ti libro',
+	'coll-show_collection_tooltip' => 'Agtakla tapno maka-urnos/agkarga/agbilin ti librom',
+	'coll-not_addable' => 'Saan a mainayon daytoy a panid',
+	'coll-make_suggestions' => 'Agisingasing ti pampanid',
+	'coll-make_suggestions_tooltip' => 'Iparang dagiti naisingasing babaen kadagiti pampanid iti librom',
+	'coll-suggest_empty' => 'awan ti nagyan na',
+);
+
+/** Ingush (ГІалгІай Ğalğaj)
+ * @author Amire80
+ * @author Sapral Mikail
+ */
+$messages['inh'] = array(
+	'coll-bookscategory' => 'Китабаш',
+	'coll-clear_collection' => 'Китаба цӀенае',
+	'coll-help' => 'Новкъoстал',
+	'coll-load_collection' => 'Китаба чуяккха',
+	'coll-n_pages' => '$1 {{PLURAL:$1|оагӀув|оагӀувнаш}}',
+	'coll-show_collection' => 'Китаба хьахокха',
+	'coll-suggest_empty' => 'яьсса',
+);
+
+/** Ido (Ido)
+ * @author Malafaya
+ */
+$messages['io'] = array(
+	'coll-create_a_book' => 'Kreez un libro',
+	'coll-add_category' => 'Adjuntar kategorio a vua libro',
+	'coll-add_this_page' => 'Adjuntez ca pagino a vua libro',
+	'coll-bookscategory' => 'Libri',
+	'coll-clear_collection' => 'Vakuigar libro',
+	'coll-help' => 'Helpo',
+	'coll-helppage' => 'Help:Libri',
+	'coll-load_collection' => 'Kargar libro',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pagino|pagini}}',
+	'coll-printable_version_pdf' => 'Versiono PDF',
+	'coll-show_collection' => 'Montrar libro',
+	'coll-make_suggestions' => 'Sugestez pagini',
+	'coll-suggest_empty' => 'vakua',
+);
+
+/** Icelandic (Íslenska)
+ * @author S.Örvarr.S
+ */
+$messages['is'] = array(
+	'coll-create_a_book' => 'Safnið mitt',
+	'coll-add_category' => 'Bæta við flokki',
+	'coll-load_collection' => 'Hlaða safn',
+	'coll-show_collection' => 'Sýna safn',
+);
+
+/** Italian (Italiano)
+ * @author Beta16
+ * @author BrokenArrow
+ * @author Darth Kule
+ * @author Melos
+ * @author Nemo bis
+ * @author OrbiliusMagister
+ */
+$messages['it'] = array(
+	'coll-print_export' => 'Stampa/esporta',
+	'coll-create_a_book' => 'Crea un libro',
+	'coll-create_a_book_tooltip' => 'Crea un libro o una raccolta di articoli',
+	'coll-book_creator' => 'Creatore di libri',
+	'coll-download_as' => 'Scarica come $1',
+	'coll-download_as_tooltip' => 'Scarica una versione $1 di questa pagina wiki',
+	'coll-disable' => 'disattiva',
+	'coll-book_creator_disable' => 'Disattiva il creatore di libri',
+	'coll-book_creator_disable_tooltip' => 'Smetti di usare il creatore di libri',
+	'coll-add_linked_article' => 'Aggiungi le pagine collegate a questa al tuo libro.',
+	'coll-remove_linked_article' => 'Rimuovi le pagine collegate a questa dal tuo libro.',
+	'coll-add_category' => 'Aggiungi questa categoria al tuo libro',
+	'coll-add_category_tooltip' => 'Aggiungi tutte le pagine wiki di questa categoria al tuo libro',
+	'coll-add_this_page' => 'Aggiungi questa pagina al tuo libro',
+	'coll-add_page_tooltip' => 'Aggiungi la pagina wiki corrente al tuo libro',
+	'coll-bookscategory' => 'Libri',
+	'coll-clear_collection' => 'Svuota libro',
+	'coll-clear_collection_confirm' => 'Si desidera veramente svuotare completamente il proprio libro?',
+	'coll-clear_collection_tooltip' => 'Rimuovi tutte le pagine wiki dal tuo libro corrente',
+	'coll-help' => 'Aiuto',
+	'coll-help_tooltip' => "Mostra l'aiuto sulla creazione di libri",
+	'coll-helppage' => 'Help:Libri',
+	'coll-load_collection' => 'Carica libro',
+	'coll-load_collection_tooltip' => 'Carica questo libro come libro corrente',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|pagine}}',
+	'coll-printable_version_pdf' => 'Versione PDF',
+	'coll-remove_this_page' => 'Rimuovi questa pagina dal tuo libro',
+	'coll-remove_page_tooltip' => 'Rimuovi la pagina wiki corrente dal tuo libro',
+	'coll-show_collection' => 'Mostra libro',
+	'coll-show_collection_tooltip' => 'Fai clic per modificare, scaricare o ordinare il tuo libro',
+	'coll-not_addable' => 'Questa pagina non può essere aggiunta',
+	'coll-make_suggestions' => 'Suggerisci delle pagine',
+	'coll-make_suggestions_tooltip' => 'Mostra suggerimenti basati sulle pagine del proprio libro',
+	'coll-suggest_empty' => 'vuoto',
+);
+
+/** Japanese (日本語)
+ * @author Aotake
+ * @author Fryed-peach
+ * @author JtFuruhata
+ * @author Marine-Blue
+ * @author Naohiro19
+ * @author 青子守歌
+ */
+$messages['ja'] = array(
+	'coll-print_export' => '印刷/エクスポート',
+	'coll-create_a_book' => 'ブックの新規作成',
+	'coll-create_a_book_tooltip' => 'ブックあるいは記事集を作成する',
+	'coll-book_creator' => 'ブッククリエーター',
+	'coll-download_as' => '$1としてダウンロード',
+	'coll-download_as_tooltip' => 'このウィキページの$1版をダウンロードする',
+	'coll-disable' => '無効化',
+	'coll-book_creator_disable' => 'ブッククリエーターを無効化',
+	'coll-book_creator_disable_tooltip' => 'ブッククリエーターを使うのを止める',
+	'coll-add_linked_article' => 'リンクされているウィキページをブックに追加する',
+	'coll-remove_linked_article' => 'あなたの本からウィキページのリンクを削除',
+	'coll-add_category' => 'このカテゴリを自分のブックに追加する',
+	'coll-add_category_tooltip' => 'このカテゴリ中のすべてのページをあなたのブックに追加する',
+	'coll-add_this_page' => 'このページを自分のブックに追加する',
+	'coll-add_page_tooltip' => '現在のページをあなたのブックに追加する',
+	'coll-bookscategory' => 'ブック',
+	'coll-clear_collection' => 'ブックを消去',
+	'coll-clear_collection_confirm' => '本当にブックを完全に消去しますか?',
+	'coll-clear_collection_tooltip' => 'あなたの現在のブックからすべてのウィキページを削除する',
+	'coll-help' => 'ヘルプ',
+	'coll-help_tooltip' => 'ブックの作成に関するヘルプを表示する',
+	'coll-helppage' => 'Help:ブック',
+	'coll-load_collection' => 'ブックの読み込み',
+	'coll-load_collection_tooltip' => 'このブックをあなたの現在のブックとして読み込む',
+	'coll-n_pages' => '$1ページ',
+	'coll-printable_version_pdf' => 'PDF版',
+	'coll-remove_this_page' => 'このページを自分のブックから削除する',
+	'coll-remove_page_tooltip' => '現在のページをあなたのブックから削除する',
+	'coll-show_collection' => 'ブックを表示',
+	'coll-show_collection_tooltip' => 'クリックしてあなたのブックを編集、ダウンロード、または注文する',
+	'coll-not_addable' => 'このページは追加できません',
+	'coll-make_suggestions' => 'ページの候補',
+	'coll-make_suggestions_tooltip' => 'あなたのブックに保存されたページを元に候補を表示します',
+	'coll-suggest_empty' => '空',
+);
+
+/** Javanese (Basa Jawa)
+ * @author Meursault2004
+ * @author Pras
+ */
+$messages['jv'] = array(
+	'coll-create_a_book' => 'Gawé buku',
+	'coll-download_as' => 'Undhuh minangka $1',
+	'coll-add_category' => 'Tambahna kategori iki menyang buku panjenengan',
+	'coll-clear_collection' => 'Busak buku',
+	'coll-clear_collection_confirm' => 'Apa panjenengan pancèn arep mbusak buku panjenengan sakabèhané?',
+	'coll-helppage' => 'Help:Buku',
+	'coll-load_collection' => 'Unggahna buku',
+	'coll-n_pages' => '$1 {{PLURAL:$1|kaca|kaca}}',
+	'coll-printable_version_pdf' => 'Vèrsi PDF',
+	'coll-show_collection' => 'Tuduhna buku',
+);
+
+/** Georgian (ქართული)
+ * @author BRUTE
+ * @author Malafaya
+ * @author Sopho
+ * @author Temuri rajavi
+ * @author გიორგიმელა
+ */
+$messages['ka'] = array(
+	'coll-print_export' => 'დაბეჭდვა/ექსპორტი',
+	'coll-create_a_book' => 'წიგნის შექმნა',
+	'coll-create_a_book_tooltip' => 'წიგნის ან სტატიების კოლექციის შექმნა',
+	'coll-book_creator' => 'წიგნის ოსტატი',
+	'coll-download_as' => 'იწერს როგორც $1',
+	'coll-download_as_tooltip' => 'ამ ვიკი-გვერდის $1 ვერსიის ჩაწერა',
+	'coll-disable' => 'გათიშვა',
+	'coll-book_creator_disable' => 'გათიშეთ წიგნის ოსტატი',
+	'coll-book_creator_disable_tooltip' => 'წიგნის ოსტატის გამოყენების შეჩერება',
+	'coll-add_linked_article' => 'ჩაამატეთ შესაბამისი ვიკიგვერდი თქვენ წიგნში',
+	'coll-remove_linked_article' => 'წაშალეთ შესაბამისი ვიკიგვერდი თქვენი წიგნიდან',
+	'coll-add_category' => 'კატეგორიის ჩამატება თქვენ წიგნში',
+	'coll-add_category_tooltip' => 'ამ კატეგორიის ყველა ვიკი გვერდის ჩამატება წიგნში',
+	'coll-add_this_page' => 'დაამატეთ ეს გვერდი თქვენს წიგნში',
+	'coll-add_page_tooltip' => 'შესაბამისი ვიკი გვერდის წიგნში ჩამატება',
+	'coll-bookscategory' => 'წიგნები',
+	'coll-clear_collection' => 'წიგნის გასუფთავება',
+	'coll-clear_collection_confirm' => 'დარწმუნებული ხართ, რომ გსურთ თქვენი წიგნის სრული დასუფთავება?',
+	'coll-clear_collection_tooltip' => 'მოცემული წიგნიდან ყველა ვიკი-გვერდის წაშლა.',
+	'coll-help' => 'დახმარება',
+	'coll-help_tooltip' => 'აჩვენეთ დახმარება წიგნის შექმნასთან დაკავშირებით',
+	'coll-helppage' => 'Help:წიგნები',
+	'coll-load_collection' => 'წიგნის ატვირთვა',
+	'coll-load_collection_tooltip' => 'გადმოტვირთეთ ეს წიგნი როგორც თქვენი მოქმედი წიგნი',
+	'coll-n_pages' => '$1 გვერდი',
+	'coll-printable_version_pdf' => 'PDF ვერსია',
+	'coll-remove_this_page' => 'თქვენი წიგნიდან ამ გვერდის წაშლა',
+	'coll-remove_page_tooltip' => 'თქვენი წიგნიდან ამჟამინდელი ვიკი-გვერდის წაშლა',
+	'coll-show_collection' => 'წიგნის ჩვენება',
+	'coll-show_collection_tooltip' => 'დააჭირეთ წიგნის რედაქტირებსთვის/ატვირთვისთვის/გამოწერისთვის',
+	'coll-not_addable' => 'ეს გვერდი არ ემატება',
+	'coll-make_suggestions' => 'შეთავაზებული გვერდები',
+	'coll-make_suggestions_tooltip' => 'აჩვენეთ მოსაზრებები, რომლებიც დაფუძნებულია თქვენ წიგნში არსებულ გვერდებზე.',
+	'coll-suggest_empty' => 'ცარიელი',
+);
+
+/** Khmer (ភាសាខ្មែរ)
+ * @author Lovekhmer
+ * @author Thearith
+ * @author គីមស៊្រុន
+ * @author វ័ណថារិទ្ធ
+ */
+$messages['km'] = array(
+	'coll-print_export' => 'បោះពុម្ព​/នាំចេញ​',
+	'coll-create_a_book' => 'បង្កើតសៀវភៅ​',
+	'coll-create_a_book_tooltip' => 'បង្កើតសៀវភៅឬកំរងទំព័រ',
+	'coll-book_creator' => 'ឧបករណ៍បង្កើតសៀវភៅ',
+	'coll-download_as' => 'ទាញយកជា $1',
+	'coll-download_as_tooltip' => 'ទាញយកទំរង់ $1 របស់ទំព័រវិគីនេះ',
+	'coll-disable' => 'មិនប្រើ',
+	'coll-book_creator_disable' => 'មិនប្រើឧបករណ៍បង្កើតសៀវភៅ',
+	'coll-book_creator_disable_tooltip' => 'ឈប់ប្រើឧបករណ៍បង្កើតសៀវភៅ',
+	'coll-add_linked_article' => 'បន្ថែមទំព័រវិគីដែលទាក់ទិនចូលទៅក្នុងសៀវភៅរបស់អ្នក',
+	'coll-remove_linked_article' => 'ដកទំព័រវិគីដែលទាក់ទិនចេញពីសៀវភៅរបស់អ្នក',
+	'coll-add_category' => 'បន្ថែមចំណាត់ថ្នាក់ក្រុមនេះដល់សៀវភៅរបស់អ្នក',
+	'coll-add_category_tooltip' => 'បន្ថែម​ទំព័រ​វិគី​ទាំងអស់​ក្នុង​ចំណាត់ថ្នាក់ក្រុម​នេះទៅ​ក្នុង​សៀវភៅ​របស់​អ្នក​​',
+	'coll-add_this_page' => 'បន្ថែម​ទំព័រនេះ​ទៅក្នុង​សៀវភៅ​របស់អ្នក​',
+	'coll-add_page_tooltip' => 'បន្ថែម​ទំព័រ​វីគី​បច្ចុប្បន្នទៅ​សៀវភៅ​របស់​អ្នក​',
+	'coll-bookscategory' => 'សៀវភៅ',
+	'coll-clear_collection' => 'ជម្រះសៀវភៅ',
+	'coll-clear_collection_confirm' => 'តើ​អ្នក​ពិតជា​ចង់​ជម្រះ​សៀវភៅ​របស់​អ្នក​ទាំងស្រុង​ឬ​?',
+	'coll-clear_collection_tooltip' => 'ដកយក​ទំព័រ​វីគីទាំងអស់​ពីសៀវភៅ​បច្ចុប្បន្ន​របស់អ្នក​',
+	'coll-help' => 'ជំនួយ',
+	'coll-help_tooltip' => 'បង្ហាញ​ជំនួយ​អំពី​ការ​បង្កើត​​សៀវភៅ​',
+	'coll-helppage' => 'Help: សៀវភៅ',
+	'coll-load_collection' => 'ផ្ទុកសៀវភៅ',
+	'coll-load_collection_tooltip' => 'ផ្ទុក​សៀវភៅនេះ​ទៅជា​សៀវភៅ​បច្ចុប្បន្ន​របស់អ្នក​',
+	'coll-n_pages' => '$1 {{PLURAL:$1|ទំព័រ|ទំព័រ}}',
+	'coll-printable_version_pdf' => 'កំណែ PDF',
+	'coll-remove_this_page' => 'ដកចេញទំព័រនេះពីសៀវភៅ​របស់​អ្នក​',
+	'coll-remove_page_tooltip' => 'ដកចេញទំព័រវិគី​បច្ចុប្បន្ន​ពីសៀវភៅ​របស់អ្នក​',
+	'coll-show_collection' => 'បង្ហាញ​សៀវភៅ',
+	'coll-show_collection_tooltip' => 'ចុច​ដើម្បី​កែប្រែ​/ទាញ​យក​/បញ្ជា​ទិញ​សៀវភៅ​របស់​អ្នក​',
+	'coll-not_addable' => 'ទំព័រនេះមិនអាចបន្ថែមបានទេ',
+	'coll-suggest_empty' => 'ទទេ',
+);
+
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'coll-help' => 'ಸಹಾಯ',
+);
+
+/** Korean (한국어)
+ * @author Ilovesabbath
+ * @author Klutzy
+ * @author Kwj2772
+ * @author Yknok29
+ */
+$messages['ko'] = array(
+	'coll-print_export' => '인쇄/내보내기',
+	'coll-create_a_book' => '책 만들기',
+	'coll-create_a_book_tooltip' => '책이나 문서 모음집을 만듭니다',
+	'coll-book_creator' => '책 생성기',
+	'coll-download_as' => '$1로 다운로드',
+	'coll-download_as_tooltip' => '이 위키 문서를 $1 버전으로 다운로드합니다.',
+	'coll-disable' => '끄기',
+	'coll-book_creator_disable' => '책 생성기를 끄기',
+	'coll-book_creator_disable_tooltip' => '책 생성기 사용을 중지합니다.',
+	'coll-add_linked_article' => '링크된 위키 문서를 당신의 책에 추가하기',
+	'coll-remove_linked_article' => '링크된 위키 문서를 책에서 제거하기',
+	'coll-add_category' => '이 분류를 책에 추가하기',
+	'coll-add_category_tooltip' => '이 분류에 속하는 문서 모두를 책에 추가하기',
+	'coll-add_this_page' => '이 문서를 책에 추가하기',
+	'coll-add_page_tooltip' => '이 문서를 책에 추가하기',
+	'coll-bookscategory' => '책',
+	'coll-clear_collection' => '책 초기화',
+	'coll-clear_collection_confirm' => '책에 있는 내용이 완전히 삭제됩니다. 초기화할까요?',
+	'coll-clear_collection_tooltip' => '책에 있는 문서 모두를 삭제하기',
+	'coll-help' => '도움말',
+	'coll-help_tooltip' => '책을 만드는 방법에 대한 도움말 보기',
+	'coll-helppage' => 'Help:책 만들기',
+	'coll-load_collection' => '책 불러오기',
+	'coll-load_collection_tooltip' => '이 책을 책 제작 작업란으로 불러오기',
+	'coll-n_pages' => '$1개의 문서',
+	'coll-printable_version_pdf' => 'PDF 버전',
+	'coll-remove_this_page' => '책에서 해당 페이지를 삭제',
+	'coll-remove_page_tooltip' => '책에서 이 문서를 제외합니다',
+	'coll-show_collection' => '책 보이기',
+	'coll-show_collection_tooltip' => '책을 편집/다운로드/주문하려면 클릭해 주세요',
+	'coll-not_addable' => '이 문서를 추가할 수 없습니다.',
+	'coll-make_suggestions' => '문서 제안하기',
+	'coll-make_suggestions_tooltip' => '당신의 책에 있는 문서에 따라 문서 제안 목록을 보여 줍니다.',
+	'coll-suggest_empty' => '비었음',
+);
+
+/** Krio (Krio)
+ * @author Protostar
+ */
+$messages['kri'] = array(
+	'coll-create_a_book' => 'Mek buk',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'coll-print_export' => 'Dröcke / Äxpotteere',
+	'coll-create_a_book' => 'E Booch zesamme_ställe',
+	'coll-create_a_book_tooltip' => 'Donn e Booch maache, udder en Sammlong vun Atikele aanlääje',
+	'coll-book_creator' => '„Bööscher Maache“',
+	'coll-download_as' => 'Als $1 eronger laade',
+	'coll-download_as_tooltip' => 'Donn heh di Wiki-Sigg em $1-Fommaat erunger laade',
+	'coll-disable' => 'ußschallde',
+	'coll-book_creator_disable' => 'Et „Bööscher Maache“ ußschallde',
+	'coll-book_creator_disable_tooltip' => 'Hür mem „Bööscher Maache“ op',
+	'coll-add_linked_article' => 'Donn de Sigg uss_em Wiki woh dä Lenk drop jeiht bei dat Booch dobei',
+	'coll-remove_linked_article' => 'Schmiiß de Sigg uss_em Wiki woh dä Lenk drop jeiht uß Dingem Booch eruß',
+	'coll-add_category' => 'Donn heh di Saachjrupp bei dat Booch dobei',
+	'coll-add_category_tooltip' => 'Dat deiht all de Atikelle en dä {{NS:Category}} en Ding Booch erin.',
+	'coll-add_this_page' => 'Donn heh di Sigg bei Ding Booch dobei',
+	'coll-add_page_tooltip' => 'Donn de aktoälle Wiki-Sigg en dat Booch erin',
+	'coll-bookscategory' => 'Bööscher',
+	'coll-clear_collection' => 'Dat Booch leddisch maache',
+	'coll-clear_collection_confirm' => 'Wells De Ding Booch verhaftesch jannz fott schmieße?',
+	'coll-clear_collection_tooltip' => 'Hee met schmiiß De alle Sigge fum Wiki uß Dingem aktoälle Booch eruß, un deihs et leddisch maache.',
+	'coll-help' => 'Hölp',
+	'coll-help_tooltip' => 'Zeisch Hölp zom Bööscher Maache aan',
+	'coll-helppage' => 'Help:Bööscher',
+	'coll-load_collection' => 'Booch lade',
+	'coll-load_collection_tooltip' => 'Deiht dat Booch hee als Ding aktoälles Booch laade.',
+	'coll-n_pages' => '{{PLURAL:$1|ein Sigg|$1 Sigge|kein Sigge}}',
+	'coll-printable_version_pdf' => '<i lang="en">PDF</i> Version',
+	'coll-remove_this_page' => 'Schmiiß die Sigg uß Dingem Booch eruß',
+	'coll-remove_page_tooltip' => 'Schmiiß hee di Sigg fum Wiki uß Dingem Booch eruß',
+	'coll-show_collection' => 'Booch zeije',
+	'coll-show_collection_tooltip' => 'He met kanns De Ding Boch ändere, de zosamme jeshtalle Sigge erunger laade, un jedröck beshtelle.',
+	'coll-not_addable' => 'Di Sigg kam_mer nit dobei donn',
+	'coll-make_suggestions' => 'Sigge vörschlonn',
+	'coll-make_suggestions_tooltip' => 'Donn Vörschlähsch aanzeije, je noh dä Sigge en Dingem Booch',
+	'coll-suggest_empty' => 'leddisch',
+);
+
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬)
+ * @author George Animal
+ */
+$messages['ku-latn'] = array(
+	'coll-help' => 'Alîkarî',
+	'coll-printable_version_pdf' => 'Versiyona PDF',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'coll-print_export' => 'Drécken/exportéieren',
+	'coll-create_a_book' => 'E Buch uleeën',
+	'coll-create_a_book_tooltip' => 'E Buch oder eng Sammlung vun Artikelen uleeën',
+	'coll-book_creator' => 'Buchfonctioun',
+	'coll-download_as' => 'Als $1 eroflueden',
+	'coll-download_as_tooltip' => 'Eng $1 Versioun vun dëser Wiki-Säit eroflueden',
+	'coll-disable' => 'Ausschalten',
+	'coll-book_creator_disable' => 'Buchfonctioun ausschalten',
+	'coll-book_creator_disable_tooltip' => "Ophalen d'Buchfonctioun ze benotzen",
+	'coll-add_linked_article' => 'Déi verlinkte Wiki-Säit an däi buch derbäisetzen',
+	'coll-remove_linked_article' => 'Déi verlinkte Wiki-Säit aus dengem Buch eraushuelen',
+	'coll-add_category' => 'Dës Kategorie an Äert Buch derbäisetzen',
+	'coll-add_category_tooltip' => 'All Wiki-Säiten aus dëser Kategorie an Äert Buch derbäisetzen',
+	'coll-add_this_page' => 'Dës Säit an Äert Buch derbäisetzen',
+	'coll-add_page_tooltip' => 'Déi aktuell Wiki-Säit an Äert Buch derbäisetzen',
+	'coll-bookscategory' => 'Bicher',
+	'coll-clear_collection' => 'Buch eidel maachen',
+	'coll-clear_collection_confirm' => 'Wëllt Dir Äert Buch wierklech ganz läschen?',
+	'coll-clear_collection_tooltip' => 'All Wiki-Säiten aus ärem aktuelle Buch eraushuelen',
+	'coll-help' => 'Hëllef',
+	'coll-help_tooltip' => "Hëllef fir d'Uleë vu Bicher weisen",
+	'coll-helppage' => 'Help:Bicher',
+	'coll-load_collection' => 'Buch lueden',
+	'coll-load_collection_tooltip' => 'Dëst Buch als Äert aktuellt Buch lueden',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Säit|Säiten}}',
+	'coll-printable_version_pdf' => 'PDF-Versioun',
+	'coll-remove_this_page' => 'Dës Säit aus Ärem Buch eraushuelen',
+	'coll-remove_page_tooltip' => 'Dës Wiki-Säit aus Ärem buch eraushuelen',
+	'coll-show_collection' => "D'Buch weisen",
+	'coll-show_collection_tooltip' => "Klickt fir Äert Buch z'änneren/erofzelueden/ze bestellen",
+	'coll-not_addable' => 'Dës Säit kann net derbäigesat ginn',
+	'coll-make_suggestions' => 'Säite virschloen',
+	'coll-make_suggestions_tooltip' => 'Virschléi weisen op Basis vun de Säiten an Ärem Buch',
+	'coll-suggest_empty' => 'eidel',
+);
+
+/** Lezghian (Лезги)
+ * @author Namik
+ */
+$messages['lez'] = array(
+	'coll-bookscategory' => 'Ктаб',
+	'coll-help' => 'Куьмек',
+	'coll-helppage' => 'Help:Ктабар',
+);
+
+/** Limburgish (Limburgs)
+ * @author Ooswesthoesbes
+ */
+$messages['li'] = array(
+	'coll-print_export' => 'Drók aaf/exporteer',
+	'coll-create_a_book' => "Maak 'n book",
+	'coll-create_a_book_tooltip' => 'Maal book- of paginacolleksje aan',
+	'coll-book_creator' => 'Bokemaker',
+	'coll-download_as' => 'Óphaole es $1',
+	'coll-download_as_tooltip' => "Download 'n $1-versie van dees wikipagina",
+	'coll-disable' => 'zèt oet',
+	'coll-book_creator_disable' => 'Zèt bokemaker oet',
+	'coll-book_creator_disable_tooltip' => 'Gebroek bokemaker neet meer',
+	'coll-add_linked_article' => 'Voog de gekoppelde wikipagina aan die book toe',
+	'coll-remove_linked_article' => 'Wösj de gekoppelde wikipagina oet die book.',
+	'coll-add_category' => 'Voog zeukgroop bie aan die book',
+	'coll-add_category_tooltip' => 'Zèt als paasj in dees zeukgroop aan öch book',
+	'coll-add_this_page' => 'Voog dees pagina toe aan die book',
+	'coll-add_page_tooltip' => "Zèt d'n huujige wikipaasj aan öch book",
+	'coll-bookscategory' => 'Beuk',
+	'coll-clear_collection' => 'Laeg book',
+	'coll-clear_collection_confirm' => 'Wils se dien book èch laege?',
+	'coll-clear_collection_tooltip' => 'Wösj als paasj oet öch huujig book',
+	'coll-help' => 'Hölp',
+	'coll-help_tooltip' => 'Bokemakershólp',
+	'coll-helppage' => 'Help:Beuk',
+	'coll-load_collection' => 'Laaj book',
+	'coll-load_collection_tooltip' => 'Laaj dit book es öch huujig book',
+	'coll-n_pages' => "$1 {{PLURAL:$1|pazjena|pazjena's}}",
+	'coll-printable_version_pdf' => 'PDF-gaedering',
+	'coll-remove_this_page' => 'Dees pagina oet die book ewegsjaffe',
+	'coll-remove_page_tooltip' => "Wösj d'n huujig wikipaasj oet öch book",
+	'coll-show_collection' => 'Toean book',
+	'coll-show_collection_tooltip' => 'Klik óm öch book tö bewèrke/óphaole/bestèlle',
+	'coll-not_addable' => 'Dees paasj kos neet toegevoog waere',
+	'coll-make_suggestions' => 'Suggereer paazjes',
+	'coll-make_suggestions_tooltip' => 'Tuun suggesties oppe bokepaginabasis',
+	'coll-suggest_empty' => 'laeg',
+);
+
+/** Lithuanian (Lietuvių)
+ * @author Eitvys200
+ * @author Homo
+ */
+$messages['lt'] = array(
+	'coll-print_export' => 'Spausdinti/eksportuoti',
+	'coll-create_a_book' => 'Kurti knygą',
+	'coll-book_creator' => 'Knygos kūrėjas',
+	'coll-download_as' => 'Parsisiųsti kaip $1',
+	'coll-download_as_tooltip' => 'Atsisiųsti $1 šio wiki puslapio versiją',
+	'coll-disable' => 'išjungti',
+	'coll-book_creator_disable' => 'Išjungti knygų kūrėją',
+	'coll-book_creator_disable_tooltip' => 'Nebenaudoti knygų kūrėjo',
+	'coll-add_category' => 'Pridėti šią kategoriją į savo knygą',
+	'coll-add_category_tooltip' => 'Pridėti visus wiki puslapius šioje kategorijoje į savo knygą',
+	'coll-add_this_page' => 'Pridėti šį puslapį į savo knygą',
+	'coll-add_page_tooltip' => 'Pridėti dabartinį wiki puslapį į savo knygą',
+	'coll-bookscategory' => 'Knygos',
+	'coll-clear_collection' => 'Išvalyti knygą',
+	'coll-clear_collection_confirm' => 'Ar tikrai norite visiškai išvalyti savo knygą?',
+	'coll-clear_collection_tooltip' => 'Pašalinti visus wiki puslapius iš savo dabartinės knygos',
+	'coll-help' => 'Pagalba',
+	'coll-help_tooltip' => 'Rodyti pagalba apie knygų kūrima',
+	'coll-helppage' => 'Pagalba: Knygos',
+	'coll-load_collection' => 'Įkelti knygas',
+	'coll-load_collection_tooltip' => 'Įkelti šią knygą kaip jūsų dabartinę knygą',
+	'coll-n_pages' => '$1 {{PLURAL:$1|puslapis|puslapiai}}',
+	'coll-printable_version_pdf' => 'PDF versija',
+	'coll-remove_this_page' => 'Pašalinti šį puslapį iš jūsų knygos',
+	'coll-remove_page_tooltip' => 'Pašalinti dabartinį wiki puslapį iš jūsų knygos',
+	'coll-show_collection' => 'Rodyti knyga',
+	'coll-show_collection_tooltip' => 'Spustelėkite norėdami redaguoti/atsisiųsti/užsisakyti savo knygą',
+	'coll-not_addable' => 'Šis puslapis negali būti pridėtas',
+	'coll-make_suggestions' => 'Siūlyti puslapius',
+	'coll-suggest_empty' => 'tuščia',
+);
+
+/** Latgalian (Latgaļu)
+ * @author Dark Eagle
+ */
+$messages['ltg'] = array(
+	'coll-create_a_book' => 'Iztaiseit gruomotu',
+	'coll-load_collection' => 'Atsasyuteit gruomotu',
+	'coll-printable_version_pdf' => 'PDF verseja',
+	'coll-show_collection' => 'Ruodeit gruomotu',
+);
+
+/** Latvian (Latviešu)
+ * @author GreenZeb
+ * @author Papuass
+ */
+$messages['lv'] = array(
+	'coll-print_export' => 'Drukāt/eksportēt',
+	'coll-create_a_book' => 'Izveidot grāmatu',
+	'coll-create_a_book_tooltip' => 'Izveidot grāmatu vai lapu kolekciju',
+	'coll-book_creator' => 'Grāmatu veidotājs',
+	'coll-download_as' => 'Lejupielādēt kā $1',
+	'coll-download_as_tooltip' => 'Lejupielādēt šīs lapas $1 versiju',
+	'coll-disable' => 'atslēgt',
+	'coll-book_creator_disable' => 'Atspējot grāmatu veidotāju',
+	'coll-book_creator_disable_tooltip' => 'Beigt lietot grāmatu lietotāju',
+	'coll-add_linked_article' => 'Pievienot saistīto viki lapu savai grāmatai',
+	'coll-remove_linked_article' => 'Izņemt saistīto viki lapu no savas grāmatas',
+	'coll-add_category' => 'Pievienot šo kategoriju savai grāmatai',
+	'coll-add_category_tooltip' => 'Pievienot visas šajā kategorijā esošās viki lapas savai grāmatai',
+	'coll-add_this_page' => 'Pievienot šo lapu savai grāmatai',
+	'coll-add_page_tooltip' => 'Pievienot pašreizējo viki lapu savai grāmatai',
+	'coll-bookscategory' => 'Grāmatas',
+	'coll-clear_collection' => 'Notīrīt grāmatu',
+	'coll-clear_collection_confirm' => 'Vai Jūs tiešām vēlaties pilnībā notīrīt savu grāmatu?',
+	'coll-clear_collection_tooltip' => 'Izņem visas viki lapas no Jūsu pašreizējās grāmatas',
+	'coll-help' => 'Palīdzība',
+	'coll-help_tooltip' => 'Parādīt palīdzību par grāmatu veidošanu',
+	'coll-helppage' => 'Help:Grāmatas',
+	'coll-load_collection' => 'Ielādēt grāmatu',
+	'coll-load_collection_tooltip' => 'Ielādēt šo grāmatu kā Jūsu pašreizējo grāmatu',
+	'coll-printable_version_pdf' => 'PDF versija',
+	'coll-remove_this_page' => 'Izņemt šo lapu no Jūsu grāmatas',
+	'coll-remove_page_tooltip' => 'Izņemt pašreizējo viki lapu no Jūsu grāmatas',
+	'coll-show_collection' => 'Parādīt grāmatu',
+	'coll-show_collection_tooltip' => 'Klikšķināt, lai labotu/lejupielādētu/pasūtītu Jūsu grāmatu',
+	'coll-not_addable' => 'Šo lapu nevar pievienot',
+	'coll-make_suggestions' => 'Ieteikt lapas',
+	'coll-make_suggestions_tooltip' => 'Parādīt ieteikumus, ņemot vērā lapas Jūsu grāmatā',
+	'coll-suggest_empty' => 'tukšs',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'coll-print_export' => 'Печати/извези',
+	'coll-create_a_book' => 'Направи книга',
+	'coll-create_a_book_tooltip' => 'Направете книга или збирка од страници',
+	'coll-book_creator' => 'Книговезница',
+	'coll-download_as' => 'Преземи како $1',
+	'coll-download_as_tooltip' => 'Преземи $1 верзија на оваа вики-страница',
+	'coll-disable' => 'оневозможи',
+	'coll-book_creator_disable' => 'Оневозможи ја книговезницата',
+	'coll-book_creator_disable_tooltip' => 'Прекини со користење на книговезницата',
+	'coll-add_linked_article' => 'Додавај врска до викистраница во книгата',
+	'coll-remove_linked_article' => 'Отстрани врска до викистраница од книгата',
+	'coll-add_category' => 'Додајте ја категоријава во вашата книга',
+	'coll-add_category_tooltip' => 'Додај ги сите вики-страници од оваа категорија во книгата',
+	'coll-add_this_page' => 'Додај ја страницава во мојата книга',
+	'coll-add_page_tooltip' => 'Додај ја тековната вики-страница во книгата',
+	'coll-bookscategory' => 'Книги',
+	'coll-clear_collection' => 'Исчиси ја книгата',
+	'coll-clear_collection_confirm' => 'Дали навистина сакате сосема да ја исчистите книгата?',
+	'coll-clear_collection_tooltip' => 'Отстрани ги сите вики-страници од мојата тековна книга',
+	'coll-help' => 'Помош',
+	'coll-help_tooltip' => 'Прикажи помош за создавањето на книги',
+	'coll-helppage' => 'Help:Книги',
+	'coll-load_collection' => 'Вчитај книга',
+	'coll-load_collection_tooltip' => 'Вчитај ја книгава како моја тековна книга',
+	'coll-n_pages' => '$1 {{PLURAL:$1|страница|страници}}',
+	'coll-printable_version_pdf' => 'PDF верзија',
+	'coll-remove_this_page' => 'Отстрани ја страницава од мојата книга',
+	'coll-remove_page_tooltip' => 'Отстрани ја тековната вики-страница од мојата книга',
+	'coll-show_collection' => 'Прикажи ја книгата',
+	'coll-show_collection_tooltip' => 'Кликнете за да ја уредите/преземете/порачате книгата',
+	'coll-not_addable' => 'Оваа страница не може да се додаде',
+	'coll-make_suggestions' => 'Предложи страници',
+	'coll-make_suggestions_tooltip' => 'Прикажи предлози засновани на страници од вашата книга',
+	'coll-suggest_empty' => 'празно',
+);
+
+/** Malayalam (മലയാളം)
+ * @author Praveenp
+ * @author Shijualex
+ */
+$messages['ml'] = array(
+	'coll-print_export' => 'അച്ചടിയ്ക്കുക/കയറ്റുമതി ചെയ്യുക',
+	'coll-create_a_book' => 'പുസ്തകം സൃഷ്ടിക്കുക',
+	'coll-create_a_book_tooltip' => 'ഒരു പുസ്തകം അല്ലെങ്കിൽ താളുകളുടെ ശേഖരം സൃഷ്ടിക്കുക',
+	'coll-book_creator' => 'പുസ്തക സൃഷ്ടി ഉപകരണം',
+	'coll-download_as' => '$1 ആയി ഡൗൺലോഡ് ചെയ്യുക',
+	'coll-download_as_tooltip' => 'ഈ വിക്കി താളിന്റെ $1 പതിപ്പ് ഡൗൺലോഡ് ചെയ്യുക',
+	'coll-disable' => 'നിർജ്ജീവമാക്കുക',
+	'coll-book_creator_disable' => 'പുസ്തക സൃഷ്ടി ഉപകരണം നിർജീവമാക്കുക',
+	'coll-book_creator_disable_tooltip' => 'പുസ്തക സൃഷ്ടി ഉപകരണം ഉപയോഗിക്കുന്നതു നിർത്തുക',
+	'coll-add_linked_article' => 'താങ്കളുടെ പുസ്തകത്തിൽ കണ്ണിയുള്ള വിക്കിതാൾ കൂട്ടിച്ചേർക്കുക',
+	'coll-remove_linked_article' => 'താങ്കളുടെ പുസ്തകത്തിൽനിന്നും  കണ്ണിചേർക്കപ്പെട്ട വിക്കിതാൾ നീക്കംചെയ്യുക',
+	'coll-add_category' => 'താങ്കളുടെ പുസ്തകത്തിൽ ഈ വർഗ്ഗം ചേർക്കുക',
+	'coll-add_category_tooltip' => 'ഈ വർഗ്ഗത്തിലുള്ള എല്ലാ വിക്കി താളുകളും താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് കൂട്ടിച്ചേർക്കുക',
+	'coll-add_this_page' => 'ഈ താൾ താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് കൂട്ടിച്ചേർക്കുക',
+	'coll-add_page_tooltip' => 'ഇപ്പോഴത്തെ താൾ താങ്കളുടെ പുസ്തകത്തിലേയ്ക്ക് ചേർക്കുക',
+	'coll-bookscategory' => 'പുസ്തകങ്ങൾ',
+	'coll-clear_collection' => 'പുസ്തകം മായ്ക്കുക',
+	'coll-clear_collection_confirm' => 'പുസ്തകം പൂർണ്ണമായും ശൂന്യമാക്കാൻ താങ്കൾ ശരിക്കുമാഗ്രഹിക്കുന്നുണ്ടോ?',
+	'coll-clear_collection_tooltip' => 'താങ്കളുടെ ഈ പുസ്തകത്തിൽ നിന്നും എല്ലാ താളുകളും നീക്കം ചെയ്യുക',
+	'coll-help' => 'സഹായം',
+	'coll-help_tooltip' => 'പുസ്തകങ്ങൾ സൃഷ്ടിക്കുന്നതു സംബന്ധിച്ച സഹായം പ്രദർശിപ്പിക്കുക',
+	'coll-helppage' => 'Help:പുസ്തകം',
+	'coll-load_collection' => 'പുസ്തകം ശേഖരിക്കുക',
+	'coll-load_collection_tooltip' => 'താങ്കളുടെ ഇപ്പോഴത്തെ പുസ്തകമായി ഈ പുസ്തകം എടുക്കുക',
+	'coll-n_pages' => '{{PLURAL:$1|ഒരു താൾ|$1 താളുകൾ}}',
+	'coll-printable_version_pdf' => 'പി.ഡി.എഫ്. പതിപ്പ്',
+	'coll-remove_this_page' => 'ഈ താൾ താങ്കളുടെ പുസ്തകത്തിൽ നിന്നും നീക്കുക',
+	'coll-remove_page_tooltip' => 'താങ്കളുടെ പുസ്തകത്തിൽ നിന്നും ഇപ്പോഴത്തെ വിക്കി താൾ നീക്കംചെയ്യുക',
+	'coll-show_collection' => 'പുസ്തകം പ്രദർശിപ്പിക്കുക',
+	'coll-show_collection_tooltip' => 'തിരുത്തുവാൻ/ഡൗൺലോഡ് ചെയ്യാൻ/താങ്കളുടെ പുസ്തകം ആവശ്യപ്പെടാൻ ഞെക്കുക',
+	'coll-not_addable' => 'ഈ താൾ കൂട്ടിച്ചേർക്കാൻ കഴിയില്ല',
+	'coll-make_suggestions' => 'താളുകൾ നിർദ്ദേശിക്കുക',
+	'coll-make_suggestions_tooltip' => 'താങ്കളുടെ പുസ്തകത്തിനനുസരിച്ചുള്ള നിർദ്ദേശങ്ങൾ മുന്നോട്ട് വെയ്ക്കുക',
+	'coll-suggest_empty' => 'ശൂന്യം',
+);
+
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'coll-n_pages' => '$1 {{PLURAL:$1|хуудас}}',
+);
+
+/** Marathi (मराठी)
+ * @author Kaajawa
+ * @author Kaustubh
+ * @author Rahuldeshmukh101
+ * @author Sankalpdravid
+ */
+$messages['mr'] = array(
+	'coll-print_export' => 'छापा/ निर्यात करा',
+	'coll-create_a_book' => 'मी गोळा केलेली पाने',
+	'coll-create_a_book_tooltip' => 'ग्रंथ बनवा अथवा पृष्ठांचे संकलन करा',
+	'coll-book_creator' => 'ग्रंथ निर्माण',
+	'coll-download_as' => '$1 असे उतरवा',
+	'coll-download_as_tooltip' => 'ह्या विकी पानाची  $1 आवृत्ती उतरवा',
+	'coll-disable' => 'अक्षम करा',
+	'coll-book_creator_disable' => 'ग्रंथ निर्मिती यंत्रणा अक्षम करा',
+	'coll-book_creator_disable_tooltip' => 'ग्रंथ निर्मिती यंत्रणा थांबवा',
+	'coll-add_linked_article' => 'दुव्यातील विकी पान आपल्या ग्रंथात समाविष्ट करा',
+	'coll-remove_linked_article' => 'दुव्यातील विकी पान आपल्या ग्रंथातून वगळा.',
+	'coll-add_category' => 'ह्या वर्गाचा  आपल्या ग्रंथात समावेश करा',
+	'coll-add_category_tooltip' => 'ह्या वर्गातील सर्व विकी पाने आपल्या ग्रंथात जोडा',
+	'coll-add_this_page' => 'ह्या पानाचा आपल्या ग्रंथात समावेश करा',
+	'coll-add_page_tooltip' => 'चालू विकी पान आपल्या ग्रंथास जोडा',
+	'coll-bookscategory' => 'ग्रंथ',
+	'coll-clear_collection' => 'ग्रंथ कोरा करा',
+	'coll-clear_collection_confirm' => 'आपण खरोखरच आपला ग्रंथ पूर्णपणे कोरा करू इच्छिता का ?',
+	'coll-clear_collection_tooltip' => 'आपल्या चालू ग्रंथातून सर्व विकी पाने वगळा',
+	'coll-help' => 'साहाय्य',
+	'coll-help_tooltip' => 'ग्रंथ तयार करण्याविषयीचे साहाय्य पान दाखवा',
+	'coll-helppage' => 'Help:ग्रंथ',
+	'coll-load_collection' => 'ग्रंथ उघडा',
+	'coll-load_collection_tooltip' => 'ह्या ग्रंथास आपला चालू ग्रंथ बनवा',
+	'coll-n_pages' => '$1 {{PLURAL:$1|पान|पाने}}',
+	'coll-printable_version_pdf' => 'पीडीएफ आवृत्ती',
+	'coll-remove_this_page' => 'हे पान आपल्या ग्रंथातून वगळा',
+	'coll-remove_page_tooltip' => 'चालू विकी पान आपल्या ग्रंथातून वगळा',
+	'coll-show_collection' => 'ग्रंथ दाखवा',
+	'coll-show_collection_tooltip' => 'आपल्या ग्रंथाचे संपादन करण्यासाठी / आपला ग्रंथ उतरवण्यासाठी/ आपल्या ग्रंथाची मागणी नोंदवण्यासाठी येथे क्लिक करा',
+	'coll-not_addable' => 'हे पान जमा करता येणार नाही',
+	'coll-make_suggestions' => 'पाने सुचवा',
+	'coll-make_suggestions_tooltip' => 'आपल्या ग्रंथातील पानांनुसार सूचना दाखवा',
+	'coll-suggest_empty' => 'रिकामे',
+);
+
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
+ * @author Aviator
+ * @author Kurniasan
+ */
+$messages['ms'] = array(
+	'coll-print_export' => 'Cetak/eksport',
+	'coll-create_a_book' => 'Cipta buku',
+	'coll-create_a_book_tooltip' => 'Cipta sebuah buku atau koleksi laman',
+	'coll-book_creator' => 'Pencipta buku',
+	'coll-download_as' => 'Muat turun sebagai $1',
+	'coll-download_as_tooltip' => 'Muat turun versi $1 laman wiki ini',
+	'coll-disable' => 'matikan',
+	'coll-book_creator_disable' => 'Lumpuhkan pencipta buku',
+	'coll-book_creator_disable_tooltip' => 'Berhenti menggunakan pencipta buku',
+	'coll-add_linked_article' => 'Tambah laman wiki yang dipaut ke dalam buku anda',
+	'coll-remove_linked_article' => 'Buang laman wiki yang dipaut daripada buku anda',
+	'coll-add_category' => 'Tambah kategori ini ke dalam buku anda',
+	'coll-add_category_tooltip' => 'Tambah kesemua laman wiki dalam kategori ini ke dalam buku anda',
+	'coll-add_this_page' => 'Tambah laman ini ke dalam buku anda',
+	'coll-add_page_tooltip' => 'Tambah laman wiki semasa ke dalam buku anda',
+	'coll-bookscategory' => 'Buku',
+	'coll-clear_collection' => 'Kosongkan buku',
+	'coll-clear_collection_confirm' => 'Betulkah anda mahu mengosongkan buku anda sepenuhnya?',
+	'coll-clear_collection_tooltip' => 'Buang kesemua laman wiki daripada buku semasa anda',
+	'coll-help' => 'Bantuan',
+	'coll-help_tooltip' => 'Tunjukkan bantuan tentang mencipta buku',
+	'coll-helppage' => 'Help:Buku',
+	'coll-load_collection' => 'Muat buku',
+	'coll-load_collection_tooltip' => 'Muatkan buku ini sebagai buku semasa anda',
+	'coll-n_pages' => '$1 laman',
+	'coll-printable_version_pdf' => 'Versi PDF',
+	'coll-remove_this_page' => 'Buang laman ini daripada buku anda',
+	'coll-remove_page_tooltip' => 'Buang laman wiki semasa daripada buku anda',
+	'coll-show_collection' => 'Tunjukkan buku',
+	'coll-show_collection_tooltip' => 'Klik untuk sunting/muat turun/pesan buku anda',
+	'coll-not_addable' => 'Laman ini tidak dapat ditambah',
+	'coll-make_suggestions' => 'Syorkan laman',
+	'coll-make_suggestions_tooltip' => 'Berikan syor berdasarkan laman dalam buku anda',
+	'coll-suggest_empty' => 'kosong',
+);
+
+/** Erzya (Эрзянь)
+ * @author Botuzhaleny-sodamo
+ */
+$messages['myv'] = array(
+	'coll-create_a_book' => 'Шкамс кинига',
+	'coll-book_creator' => 'Кинигань шкиця',
+	'coll-add_category' => 'Поладомс кинигазот те категориянть',
+	'coll-bookscategory' => 'Кинигат',
+	'coll-help' => 'Лезкс',
+	'coll-helppage' => 'Help:Кинигат',
+	'coll-show_collection' => 'Невтемс киниганть',
+	'coll-suggest_empty' => 'чаво',
+);
+
+/** Mazanderani (مازِرونی)
+ * @author محک
+ */
+$messages['mzn'] = array(
+	'coll-print_export' => 'پرینت/برون‌ریزی',
+	'coll-create_a_book' => 'کتاب بساتن',
+	'coll-create_a_book_tooltip' => 'یتّا کتاب یا مجموعه صفحات بساج',
+	'coll-clear_collection' => 'پاک هاکردن کتاب',
+	'coll-clear_collection_confirm' => 'شما راس راسی خانّی کتاب ره کلأ حذف هاکنین؟',
+	'coll-clear_collection_tooltip' => 'همهٔ صفحات ویکی ره شه کتاب فعلی جا حذف هاکنین',
+	'coll-help' => 'راهنما',
+	'coll-load_collection' => 'باربی‌یشتن کتاب',
+	'coll-load_collection_tooltip' => 'این کتاب ره به عنوان کتاب فعلی بار بی‌یلین',
+	'coll-show_collection' => 'هارشی‌ین کتاب',
+	'coll-show_collection_tooltip' => 'شه کتاب دچی‌ین، دانلود یا سفارش وسّه کلیک هاکنین',
+);
+
+/** Nahuatl (Nāhuatl)
+ * @author Teòtlalili
+ */
+$messages['nah'] = array(
+	'coll-bookscategory' => 'Àmoxtin',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ * @author Laaknor
+ * @author Nghtwlkr
+ * @author Simny
+ */
+$messages['nb'] = array(
+	'coll-print_export' => 'Skriv ut / eksporter',
+	'coll-create_a_book' => 'Opprett en bok',
+	'coll-create_a_book_tooltip' => 'Lag ei bok eller en artikkelsamling',
+	'coll-book_creator' => 'Bokskaper',
+	'coll-download_as' => 'Last ned som $1',
+	'coll-download_as_tooltip' => 'Last ned denne wikisida i $1-format',
+	'coll-disable' => 'slå av',
+	'coll-book_creator_disable' => 'Slå av bokskaper',
+	'coll-book_creator_disable_tooltip' => 'Stopp å bruke bokskaperen',
+	'coll-add_linked_article' => 'Legg lenket wikiside til din bok',
+	'coll-remove_linked_article' => 'Fjern lenket wikiside fra din bok',
+	'coll-add_category' => 'Legg til denne kategorien i boka di',
+	'coll-add_category_tooltip' => 'Legg til alle wikisider i denne kategorien til din bok',
+	'coll-add_this_page' => 'Legg til denne siden i boka di',
+	'coll-add_page_tooltip' => 'Legg til den nåværende wikisiden i din bok',
+	'coll-bookscategory' => 'Bøker',
+	'coll-clear_collection' => 'Tøm bok',
+	'coll-clear_collection_confirm' => 'Vil du virkelig tømme boka?',
+	'coll-clear_collection_tooltip' => 'Fjern alle wikisider fra din nåværende bok',
+	'coll-help' => 'Hjelp',
+	'coll-help_tooltip' => 'Få hjelp med å lage bøker',
+	'coll-helppage' => 'Help:Bøker',
+	'coll-load_collection' => 'Last bok',
+	'coll-load_collection_tooltip' => 'Last denne boka som din nåværende bok',
+	'coll-n_pages' => '$1 {{PLURAL:$1|side|sider}}',
+	'coll-printable_version_pdf' => 'PDF-versjon',
+	'coll-remove_this_page' => 'Fjern denne siden fra boka di',
+	'coll-remove_page_tooltip' => 'Fjern den nåværende wikisiden fra din bok',
+	'coll-show_collection' => 'Vis bok',
+	'coll-show_collection_tooltip' => 'Trykk for å endre/laste ned/bestille din bok',
+	'coll-not_addable' => 'Denne siden kan ikke legges til',
+	'coll-make_suggestions' => 'Foreslå sider',
+	'coll-make_suggestions_tooltip' => 'Vis forslag basert på sidene i boken din',
+	'coll-suggest_empty' => 'tom',
+);
+
+/** Low German (Plattdüütsch)
+ * @author Slomox
+ */
+$messages['nds'] = array(
+	'coll-create_a_book' => 'Book opstellen',
+	'coll-download_as' => 'As $1 dalladen',
+	'coll-add_category' => 'Kategorie tofögen',
+	'coll-add_category_tooltip' => 'All Wikisieden ut disse Kategorie to dien Book tofögen',
+	'coll-add_page_tooltip' => 'Disse Wikisied to dien Book tofögen',
+	'coll-bookscategory' => 'Böker',
+	'coll-clear_collection' => 'Book leddigmaken',
+	'coll-clear_collection_confirm' => 'Wullt du dien Book worraftig leddig maken?',
+	'coll-clear_collection_tooltip' => 'All Wikisieden ut dien Book rutnehmen',
+	'coll-helppage' => 'Help:Böker',
+	'coll-load_collection' => 'Book laden',
+	'coll-load_collection_tooltip' => 'Dit Book as dien aktuell Book laden',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Sied|Sieden}}',
+	'coll-printable_version_pdf' => 'PDF-Version',
+	'coll-remove_page_tooltip' => 'Disse Wikisied ut dien Book rutnehmen',
+	'coll-show_collection' => 'Book wiesen',
+	'coll-show_collection_tooltip' => 'Klick hier, dat du dien Book ännern/dalladen/bestellen kannst',
+);
+
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'coll-create_a_book' => 'Boek maken',
+	'coll-download_as' => 'Binnenhaolen as $1',
+	'coll-add_category' => 'Kategorie bie joew boek doon',
+	'coll-bookscategory' => 'Boeken',
+	'coll-helppage' => 'Help:Boeken',
+	'coll-load_collection' => 'Boek laojen',
+	'coll-n_pages' => "$1 {{PLURAL:$1|pagina|pagina's}}",
+	'coll-printable_version_pdf' => 'PDF-versie',
+	'coll-show_collection' => 'Boek laoten zien',
+);
+
+/** Dutch (Nederlands)
+ * @author McDutchie
+ * @author Romaine
+ * @author Siebrand
+ * @author Tvdm
+ */
+$messages['nl'] = array(
+	'coll-print_export' => 'Afdrukken/exporteren',
+	'coll-create_a_book' => 'Boek maken',
+	'coll-create_a_book_tooltip' => 'Boek of paginacollectie',
+	'coll-book_creator' => 'Boekenmaker',
+	'coll-download_as' => 'Downloaden als $1',
+	'coll-download_as_tooltip' => 'Een $1-versie van deze wikipagina downloaden',
+	'coll-disable' => 'uitschakelen',
+	'coll-book_creator_disable' => 'Boekenmaker uitschakelen',
+	'coll-book_creator_disable_tooltip' => 'Boekenmaker niet meer gebruiken',
+	'coll-add_linked_article' => 'De gekoppelde wikipagina aan uw boek toevoegen',
+	'coll-remove_linked_article' => 'De gekoppelde wikipagina uit uw boek verwijderen',
+	'coll-add_category' => 'Deze categorie aan uw boek toevoegen',
+	'coll-add_category_tooltip' => "Alle pagina's in deze categorie aan uw boek toevoegen",
+	'coll-add_this_page' => 'Deze pagina aan uw boek toevoegen',
+	'coll-add_page_tooltip' => 'De huidige wikipagina aan uw boek toevoegen',
+	'coll-bookscategory' => 'Boeken',
+	'coll-clear_collection' => 'Boek leegmaken',
+	'coll-clear_collection_confirm' => 'Wilt u uw boek werkelijk leegmaken?',
+	'coll-clear_collection_tooltip' => "Alle pagina's uit uw huidige boek verwijderen",
+	'coll-help' => 'Hulp',
+	'coll-help_tooltip' => 'Hulp bij het maken van boeken',
+	'coll-helppage' => 'Help:Boeken',
+	'coll-load_collection' => 'Boek laden',
+	'coll-load_collection_tooltip' => 'Dit boek als uw huidige boek laden',
+	'coll-n_pages' => "$1 {{PLURAL:$1|pagina|pagina's}}",
+	'coll-printable_version_pdf' => 'PDF-versie',
+	'coll-remove_this_page' => 'Deze pagina uit uw boek verwijderen',
+	'coll-remove_page_tooltip' => 'De huidige wikipagina uit uw boek verwijderen',
+	'coll-show_collection' => 'Boek weergeven',
+	'coll-show_collection_tooltip' => 'Klik om uw boek te bewerken/downloaden/bestellen',
+	'coll-not_addable' => 'Deze pagina kan niet toegevoegd worden',
+	'coll-make_suggestions' => "Pagina's suggereren",
+	'coll-make_suggestions_tooltip' => "Suggesties weergeven op basis van de pagina's in uw boek",
+	'coll-suggest_empty' => 'leegmaken',
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
+ * @author Eirik
+ * @author Gunnernett
+ * @author Harald Khan
+ */
+$messages['nn'] = array(
+	'coll-print_export' => 'Skriv ut / eksporter',
+	'coll-create_a_book' => 'Opprett ei bok',
+	'coll-create_a_book_tooltip' => 'Lag ei bok eller ei artikkelsamling',
+	'coll-book_creator' => 'laging av bok',
+	'coll-download_as' => 'Last ned som $1',
+	'coll-download_as_tooltip' => 'Last ned denne wikisida i $1-format',
+	'coll-disable' => 'slå av',
+	'coll-book_creator_disable' => 'Slå av funksjonen for å laga bok',
+	'coll-book_creator_disable_tooltip' => 'Stopp å bruka funksjonen for å laga bok',
+	'coll-add_category' => 'Legg til denne kategorien i boka di',
+	'coll-add_category_tooltip' => 'Legg til alle sidene i denne kategorien til boka di',
+	'coll-add_this_page' => 'Legg til denne sida i boka di',
+	'coll-add_page_tooltip' => 'Legg til den noverande wikisida til boka di',
+	'coll-bookscategory' => 'Bøker',
+	'coll-clear_collection' => 'Tøm bok',
+	'coll-clear_collection_confirm' => 'Vil du verkeleg fjerna alle sidene i boka di?',
+	'coll-clear_collection_tooltip' => 'Fjern alle wikisider frå den noverande boka di',
+	'coll-help' => 'Hjelp',
+	'coll-help_tooltip' => 'Få hjelp med å laga bøker',
+	'coll-helppage' => 'Help:Bøker',
+	'coll-load_collection' => 'Last bok',
+	'coll-load_collection_tooltip' => 'Last denne boka som den noverande boka di',
+	'coll-n_pages' => '{{PLURAL:$1|éi sida|$1 sider}}',
+	'coll-printable_version_pdf' => 'PDF-versjon',
+	'coll-remove_this_page' => 'Fjern denne sida frå boka di',
+	'coll-remove_page_tooltip' => 'Fjern den noverande wikisida frå boka di',
+	'coll-show_collection' => 'Vis bok',
+	'coll-show_collection_tooltip' => 'Trykk for å endra/lasta ned/tinga boka di',
+	'coll-not_addable' => 'Denne sida kunne ikkje leggjast til',
+	'coll-make_suggestions' => 'Framlegg til sider',
+	'coll-make_suggestions_tooltip' => 'Syn framlegg på grunnlag av sidene i boka di',
+	'coll-suggest_empty' => 'tom',
+);
+
+/** Occitan (Occitan)
+ * @author Cedric31
+ */
+$messages['oc'] = array(
+	'coll-print_export' => 'Estampar / exportar',
+	'coll-create_a_book' => 'Crear un libre',
+	'coll-create_a_book_tooltip' => 'Crear un libre o una colleccion d’articles',
+	'coll-book_creator' => 'Creator de libres',
+	'coll-download_as' => 'Telecargat coma $1',
+	'coll-download_as_tooltip' => "Telecarga una version $1 d'aquesta pagina wiki",
+	'coll-disable' => 'desactivar',
+	'coll-book_creator_disable' => 'Desactivar lo creator de libre',
+	'coll-book_creator_disable_tooltip' => "Quitar d'utilizar lo creator de libre",
+	'coll-add_linked_article' => 'Apondre la pagina wiki ligada a vòstre libre',
+	'coll-remove_linked_article' => 'Levar la pagina ligada de vòstre libre',
+	'coll-add_category' => 'Apondre una categoria a vòstre libre',
+	'coll-add_category_tooltip' => "Apondre totes los articles d'aquesta categoria a vòstre libre",
+	'coll-add_this_page' => 'Apondre aquesta pagina a vòstre libre',
+	'coll-add_page_tooltip' => 'Apondre la pagina correnta a vòstre libre',
+	'coll-bookscategory' => 'Libres',
+	'coll-clear_collection' => 'Voidar lo libre',
+	'coll-clear_collection_confirm' => 'Sètz segur que volètz escafar l’integralitat de vòstre libre ?',
+	'coll-clear_collection_tooltip' => 'Levar totes los articles de vòstre libre actual',
+	'coll-help' => 'Ajuda',
+	'coll-help_tooltip' => "Afichar l'ajuda sus la creacion de libres",
+	'coll-helppage' => 'Help:Libres',
+	'coll-load_collection' => 'Cargar un libre',
+	'coll-load_collection_tooltip' => 'Cargar aqueste libre en tant que vòstre libre actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|paginas}}',
+	'coll-printable_version_pdf' => 'Version del PDF',
+	'coll-remove_this_page' => 'Levar aquesta pagina de vòstre libre',
+	'coll-remove_page_tooltip' => 'Levar la pagina correnta de vòstre libre',
+	'coll-show_collection' => 'Afichar lo libre',
+	'coll-show_collection_tooltip' => 'Clicatz per modificar / telecargar / comandar vòstre libre',
+	'coll-not_addable' => 'Aquesta pagina pòt pas èsser aponduda',
+	'coll-make_suggestions' => 'Suggerir de paginas',
+	'coll-make_suggestions_tooltip' => 'Far veire las suggestions fondadas sus las paginas dins vòstre libre',
+	'coll-suggest_empty' => 'void',
+);
+
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Ansumang
+ * @author Jnanaranjan Sahu
+ * @author Odisha1
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'coll-print_export' => 'ପ୍ରିଣ୍ଟ/ରପ୍ତାନି',
+	'coll-create_a_book' => 'ବହି ତିଆରି କରିବେ',
+	'coll-create_a_book_tooltip' => 'ଏକ ବହି ବା ପୃଷ୍ଠା ସଙ୍କଳନ ଗଢ଼ିବେ',
+	'coll-book_creator' => 'ବହି ଗଢ଼ାଳି',
+	'coll-download_as' => '$1 ଭାବରେ ଡାଉନଲୋଡ଼ କରିବେ',
+	'coll-download_as_tooltip' => 'ଏକ $1 ସଂସ୍କରଣ ଏହି ଉଇକିରେ ଡାଉନଲୋଡ଼ କରିବେ',
+	'coll-disable' => 'ଅଚଳ କରିଦିଆଯାଇଛି',
+	'coll-book_creator_disable' => 'ବହି ଗଢ଼ାଳି ଅକାଳ କରାଇବେ',
+	'coll-book_creator_disable_tooltip' => 'ବହି ନିର୍ମାତା ବ୍ୟବହାର କରିବା ବନ୍ଦ କରନ୍ତୁ',
+	'coll-add_linked_article' => 'ଲିଙ୍କ୍ ଥିବା ଉଇକି ପୃଷ୍ଠାକୁ ଆପଣଙ୍କ ବହିରେ ଯୋଡନ୍ତୁ',
+	'coll-remove_linked_article' => 'ଲିଙ୍କ ଥିବା ଉଇକି ପୃଷ୍ଠାକୁ ହଟାଇବେ',
+	'coll-add_category' => 'ଏହି ଶ୍ରେଣୀକୁ ଆପଣଙ୍କ ବହିରେ ଯୋଡ଼ନ୍ତୁ',
+	'coll-add_category_tooltip' => 'ଏହି ବିଭାଗରେ ଥିବା ସମସ୍ତ ଉଇକିପୃଷ୍ଠାକୁ ଆପଣଙ୍କ ବହିରେ ଯୋଡନ୍ତୁ',
+	'coll-add_this_page' => 'ଏହି ପୃଷ୍ଠାକୁ ଆପଣଙ୍କ ବହିରେ ଯୋଡ଼ନ୍ତୁ',
+	'coll-add_page_tooltip' => 'ବର୍ତମାନର ଏହି ଉଇକି ପୃଷ୍ଠାକୁ ଆପଣଙ୍କ ବହିରେ ଯୋଡ଼ନ୍ତୁ',
+	'coll-bookscategory' => 'ବହି',
+	'coll-clear_collection' => 'ବହି ଖାଲି କରନ୍ତୁ',
+	'coll-clear_collection_confirm' => 'ଆପଣ ନିଶ୍ଚିତ ଯେ ଆପଣଙ୍କ ବହିକୁ ସମ୍ପୂର୍ଣଭାବେ ସଫା କରିବେ ?',
+	'coll-clear_collection_tooltip' => 'ଆପଣଙ୍କର ବର୍ତମାନର ବହିରୁ ସମସ୍ତ ଉଇକି ପୃଷ୍ଠାଗୁଡିକୁ ହଟାଇବେ',
+	'coll-help' => 'ସହଯୋଗ',
+	'coll-help_tooltip' => 'ବହି ତିଆରି ବିଷୟରେ ସାହାଯ୍ୟ ଦେଖାଇବେ',
+	'coll-helppage' => 'Help:ବହି',
+	'coll-load_collection' => 'ଲୋଡ଼ ବହି',
+	'coll-load_collection_tooltip' => 'ଏହି ବହିଟିକୁ ଆପଣଙ୍କର ଏବେକାର ବହି ଭାବେ ରଖିବେ',
+	'coll-n_pages' => '$1 {{PLURAL:$1|ପୃଷ୍ଠା|ପୃଷ୍ଠାସବୁ}}',
+	'coll-printable_version_pdf' => 'PDF ସଂସ୍କରଣ',
+	'coll-remove_this_page' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ଆପଣଙ୍କ ବହିରୁ ହଟାଇବେ',
+	'coll-remove_page_tooltip' => 'ଆପଣଙ୍କ ବହିରୁ ବର୍ତମାନର ଉଇକି ପୃଷ୍ଠାକୁ ବାହାର କରିବେ',
+	'coll-show_collection' => 'ବହି ଦେଖାଇବେ',
+	'coll-not_addable' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ଯୋଡା ଯାଇପାରିବ ନାହିଁ',
+	'coll-make_suggestions' => 'ପୃଷ୍ଠାଗୁଡିକୁ ପ୍ରସ୍ତାବିତ କରିବେ',
+	'coll-suggest_empty' => 'ଖାଲି',
+);
+
+/** Ossetic (Ирон)
+ * @author Amikeco
+ */
+$messages['os'] = array(
+	'coll-download_as' => 'Æрбавгæн куыд $1',
+	'coll-suggest_empty' => 'афтид',
+);
+
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'coll-download_as' => 'Runnerlaade ass $1',
+	'coll-bookscategory' => 'Bicher',
+	'coll-clear_collection' => 'Buch lösche',
+	'coll-help' => 'Hilf',
+	'coll-helppage' => 'Help:Bicher',
+	'coll-load_collection' => 'Buch laade',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Blatt|Bledder}}',
+	'coll-printable_version_pdf' => 'PDF-Version',
+	'coll-suggest_empty' => 'leer',
+);
+
+/** Polish (Polski)
+ * @author Derbeth
+ * @author Leinad
+ * @author Masti
+ * @author Sp5uhe
+ * @author ToSter
+ */
+$messages['pl'] = array(
+	'coll-print_export' => 'Drukuj lub eksportuj',
+	'coll-create_a_book' => 'Utwórz książkę',
+	'coll-create_a_book_tooltip' => 'Tworzenie książki lub kolekcji stron',
+	'coll-book_creator' => 'Tworzenie książki',
+	'coll-download_as' => 'Pobierz jako $1',
+	'coll-download_as_tooltip' => 'Pobierz wersję $1 tej strony wiki',
+	'coll-disable' => 'wyłącz',
+	'coll-book_creator_disable' => 'Wyłącz tworzenie książek',
+	'coll-book_creator_disable_tooltip' => 'Wyłącz kreatora tworzenia książki',
+	'coll-add_linked_article' => 'Dodaj linkowaną stronę wiki do mojej książki',
+	'coll-remove_linked_article' => 'Usuń linkowaną stronę wiki z mojej książki',
+	'coll-add_category' => 'Dodaj tę kategorię do książki',
+	'coll-add_category_tooltip' => 'Dodaj wszystkie strony wiki znajdujące się w tej kategorii do książki',
+	'coll-add_this_page' => 'Dodaj tę stronę do książki',
+	'coll-add_page_tooltip' => 'Dodaj bieżącą stronę wiki do książki',
+	'coll-bookscategory' => 'Książki',
+	'coll-clear_collection' => 'Wyczyść książkę',
+	'coll-clear_collection_confirm' => 'Czy jesteś pewien, że chcesz wyczyścić całą zawartość książki?',
+	'coll-clear_collection_tooltip' => 'Usuń wszystkie strony wiki z bieżącej książki',
+	'coll-help' => 'Pomoc',
+	'coll-help_tooltip' => 'Pokaż pomoc na temat tworzenia książek',
+	'coll-helppage' => 'Help:Książki',
+	'coll-load_collection' => 'Załaduj książkę',
+	'coll-load_collection_tooltip' => 'Załaduj tę książkę jako bieżącą',
+	'coll-n_pages' => '$1 {{PLURAL:$1|strona|strony|stron}}',
+	'coll-printable_version_pdf' => 'Wersja PDF',
+	'coll-remove_this_page' => 'Usuń tę stronę z książki',
+	'coll-remove_page_tooltip' => 'Usuń bieżącą stronę wiki z książki',
+	'coll-show_collection' => 'Pokaż książkę',
+	'coll-show_collection_tooltip' => 'Kliknij aby edytować, pobrać lub zamówić książkę',
+	'coll-not_addable' => 'Tej strony nie można dodać',
+	'coll-make_suggestions' => 'Proponowane strony',
+	'coll-make_suggestions_tooltip' => 'Pokaż propozycje na podstawie już dodanych stron',
+	'coll-suggest_empty' => 'puste',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'coll-print_export' => 'Stampa/espòrta',
+	'coll-create_a_book' => 'Crea un lìber',
+	'coll-create_a_book_tooltip' => 'Crea un lìber o na colession ëd pàgine',
+	'coll-book_creator' => 'Creator ëd lìber',
+	'coll-download_as' => 'Dëscaria com $1',
+	'coll-download_as_tooltip' => 'Dëscaria na version $1 dë sta pàgina wiki-sì',
+	'coll-disable' => 'Disabìlita',
+	'coll-book_creator_disable' => 'Disabìlita ël creator ëd lìber',
+	'coll-book_creator_disable_tooltip' => 'Deuvra pi nen ël creator ëd lìber',
+	'coll-add_linked_article' => 'Gionta na pàgina colegà wiki a tò lìber',
+	'coll-remove_linked_article' => 'Gava na pàgina colegà wiki da tò lìber',
+	'coll-add_category' => 'Gionta sta categorìa-sì a tò lìber',
+	'coll-add_category_tooltip' => 'Gionta tute le pàgine wiki an sta categorìa-sì a tò lìber',
+	'coll-add_this_page' => 'Gionta sta pàgina-sì a tò lìber',
+	'coll-add_page_tooltip' => 'Gionta la pàgina wiki corenta a tò lìber',
+	'coll-bookscategory' => 'Lìber',
+	'coll-clear_collection' => 'Scancela lìber',
+	'coll-clear_collection_confirm' => 'It veule da bon scancelé completament tò lìber?',
+	'coll-clear_collection_tooltip' => 'Gava tute le pàgine wiki da tò lìber corent',
+	'coll-help' => 'Agiut',
+	'coll-help_tooltip' => "Mostra l'agiut për creé lìber",
+	'coll-helppage' => 'Help:Lìber',
+	'coll-load_collection' => 'Caria lìber',
+	'coll-load_collection_tooltip' => 'Caria sto lìber-sì com tò lìber corent',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pàgina|pàgine}}',
+	'coll-printable_version_pdf' => 'Version PDF',
+	'coll-remove_this_page' => 'Gava sta pàgina-sì da tò lìber',
+	'coll-remove_page_tooltip' => 'Gava la pàgina wiki corenta da tò lìber',
+	'coll-show_collection' => 'Mostra lìber',
+	'coll-show_collection_tooltip' => 'Sgnaca për modifiché/dëscarié/ordiné tò lìber',
+	'coll-not_addable' => 'Sta pàgina-sì a peul pa esse giontà',
+	'coll-make_suggestions' => 'Consèja dle pàgine',
+	'coll-make_suggestions_tooltip' => 'Mostra consèj basà an sle pàgine an tò lìber',
+	'coll-suggest_empty' => 'veuid',
+);
+
+/** Pashto (پښتو)
+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
+ */
+$messages['ps'] = array(
+	'coll-print_export' => 'چاپول/صادرول',
+	'coll-create_a_book' => 'يو کتاب جوړول',
+	'coll-create_a_book_tooltip' => 'يو کتاب يا د مخونو ټولګه جوړول',
+	'coll-book_creator' => 'کتاب جوړونکی',
+	'coll-download_as' => 'د $1 په ډول ښکته کول',
+	'coll-disable' => 'ناچارنول',
+	'coll-book_creator_disable' => 'کتاب جوړونکی ناچارنول',
+	'coll-add_category' => 'دا وېشنيزه په کتاب کې ورګډول',
+	'coll-add_this_page' => 'دا مخ په کتاب کې ورګډول',
+	'coll-add_page_tooltip' => 'د همدې ويکي مخ خپل کتاب کې ورګډول',
+	'coll-bookscategory' => 'کتابونه',
+	'coll-clear_collection' => 'کتاب پاکول',
+	'coll-help' => 'لارښود',
+	'coll-helppage' => 'Help:کتابونه',
+	'coll-load_collection' => 'کتاب برسېرول',
+	'coll-n_pages' => '$1 {{PLURAL:$1|مخ|مخونه}}',
+	'coll-printable_version_pdf' => 'د PDF په بڼه',
+	'coll-remove_this_page' => 'دا مخ له کتاب نه ليرې کول',
+	'coll-show_collection' => 'کتاب ښکاره کول',
+	'coll-not_addable' => 'دا مخ نشي ورګډېدلی',
+	'coll-make_suggestions' => 'مخونه وړانديزول',
+	'coll-suggest_empty' => 'تش',
+);
+
+/** Portuguese (Português)
+ * @author 555
+ * @author Crazymadlover
+ * @author Giro720
+ * @author Hamilton Abreu
+ * @author Indech
+ * @author Lijealso
+ * @author Malafaya
+ * @author Waldir
+ */
+$messages['pt'] = array(
+	'coll-print_export' => 'Imprimir/exportar',
+	'coll-create_a_book' => 'Criar um livro',
+	'coll-create_a_book_tooltip' => 'Cria um livro ou uma colecção de páginas',
+	'coll-book_creator' => 'Criador de livros',
+	'coll-download_as' => 'Descarregar como $1',
+	'coll-download_as_tooltip' => 'Descarregar uma versão $1 desta página wiki',
+	'coll-disable' => 'desactivar',
+	'coll-book_creator_disable' => 'Desactivar criador de livros',
+	'coll-book_creator_disable_tooltip' => 'Terminar de usar o criador de livros',
+	'coll-add_linked_article' => 'Adicionar ao livro a página wiki ligada',
+	'coll-remove_linked_article' => 'Remover do livro a página wiki ligada',
+	'coll-add_category' => 'Adicionar categoria ao seu livro',
+	'coll-add_category_tooltip' => 'Adicionar todas as páginas wiki nesta categoria ao seu livro',
+	'coll-add_this_page' => 'Adicionar esta página ao seu livro',
+	'coll-add_page_tooltip' => 'Adicionar a página wiki actual ao seu livro',
+	'coll-bookscategory' => 'Livros',
+	'coll-clear_collection' => 'Esvaziar livro',
+	'coll-clear_collection_confirm' => 'Deseja realmente limpar completamente o seu livro?',
+	'coll-clear_collection_tooltip' => 'Remover todas as páginas wiki do seu livro actual',
+	'coll-help' => 'Ajuda',
+	'coll-help_tooltip' => 'Mostrar ajuda sobre criação de livros',
+	'coll-helppage' => 'Help:Livros',
+	'coll-load_collection' => 'Carregar livro',
+	'coll-load_collection_tooltip' => 'Carregar este livro como o seu livro actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|página|páginas}}',
+	'coll-printable_version_pdf' => 'Versão em PDF',
+	'coll-remove_this_page' => 'Remover esta página do seu livro',
+	'coll-remove_page_tooltip' => 'Remover a página wiki actual do livro',
+	'coll-show_collection' => 'Mostrar livro',
+	'coll-show_collection_tooltip' => 'Clique para editar/descarregar/encomendar o livro',
+	'coll-not_addable' => 'Esta página não pode ser adicionada',
+	'coll-make_suggestions' => 'Sugerir páginas',
+	'coll-make_suggestions_tooltip' => 'Mostrar sugestões com base nas páginas do livro',
+	'coll-suggest_empty' => 'vazio',
+);
+
+/** Brazilian Portuguese (Português do Brasil)
+ * @author Eduardo.mps
+ * @author Giro720
+ * @author Helder.wiki
+ * @author Heldergeovane
+ * @author Jorge Morais
+ * @author Luckas Blade
+ */
+$messages['pt-br'] = array(
+	'coll-print_export' => 'Imprimir/exportar',
+	'coll-create_a_book' => 'Criar um livro',
+	'coll-create_a_book_tooltip' => 'Criar um livro ou coleção de páginas',
+	'coll-book_creator' => 'Criador de livros',
+	'coll-download_as' => 'Baixar como $1',
+	'coll-download_as_tooltip' => 'Baixe uma versão $1 desta página wiki',
+	'coll-disable' => 'desabilitar',
+	'coll-book_creator_disable' => 'Desabilitar o criador de livros',
+	'coll-book_creator_disable_tooltip' => 'Parar de usar o criador de livros',
+	'coll-add_linked_article' => 'Adicionar ao livro a página wiki ligada',
+	'coll-remove_linked_article' => 'Remover do livro a página wiki ligada',
+	'coll-add_category' => 'Adicionar esta categoria ao seu livro',
+	'coll-add_category_tooltip' => 'Adicionar todas as páginas wiki nesta categoria ao seu livro',
+	'coll-add_this_page' => 'Adicionar esta página ao seu livro',
+	'coll-add_page_tooltip' => 'Adicionar a página wiki atual ao seu livro',
+	'coll-bookscategory' => 'Livros',
+	'coll-clear_collection' => 'Esvaziar livro',
+	'coll-clear_collection_confirm' => 'Realmente deseja esvaziar completamente o seu livro?',
+	'coll-clear_collection_tooltip' => 'Remover todas as páginas wiki do seu livro atual',
+	'coll-help' => 'Ajuda',
+	'coll-help_tooltip' => 'Exibir ajuda sobre a criação de livros',
+	'coll-helppage' => 'Help:Livros',
+	'coll-load_collection' => 'Carregar livro',
+	'coll-load_collection_tooltip' => 'Carregar este livro como o seu livro atual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|página|páginas}}',
+	'coll-printable_version_pdf' => 'Versão em PDF',
+	'coll-remove_this_page' => 'Remover esta página do seu livro',
+	'coll-remove_page_tooltip' => 'Remover a página wiki atual do seu livro',
+	'coll-show_collection' => 'Mostrar livro',
+	'coll-show_collection_tooltip' => 'Clique para editar/baixar/encomendar o seu livro',
+	'coll-not_addable' => 'Esta página não pode ser adicionada',
+	'coll-make_suggestions' => 'Sugerir páginas',
+	'coll-make_suggestions_tooltip' => 'Mostrar sugestões baseadas nas páginas do seu livro',
+	'coll-suggest_empty' => 'vazio',
+);
+
+/** Romansh (Rumantsch)
+ * @author Gion-andri
+ */
+$messages['rm'] = array(
+	'coll-print_export' => 'Stampar/exportar',
+	'coll-create_a_book' => 'Crear in cudesch',
+	'coll-create_a_book_tooltip' => 'Crear in cudesch u ina collecziun dad artitgels',
+	'coll-book_creator' => 'Generatur da cudeschs',
+	'coll-download_as' => 'Telechargiar sco $1',
+	'coll-download_as_tooltip' => 'Telechargiar ina versiun da $1 da questa pagina da wiki',
+	'coll-disable' => 'deactivar',
+	'coll-book_creator_disable' => 'Deactivar il generatur da cudeschs',
+	'coll-book_creator_disable_tooltip' => 'Chalar dad utilisar il generatur da cudeschs',
+	'coll-add_linked_article' => 'Agiuntar la pagina da wiki colliada a tes cudesch',
+	'coll-remove_linked_article' => 'Allontanar la pagina da wiki colliada da tes cudesch',
+	'coll-add_category' => 'Agiuntar questa categoria a tes cudesch',
+	'coll-add_category_tooltip' => 'Agiuntar tut las paginas da wiki en questa categoria a tes cudesch',
+	'coll-add_this_page' => 'Agiuntar questa pagina a tes cudesch',
+	'coll-add_page_tooltip' => 'Agiuntar la pagina da wiki actuala a tes cudesch',
+	'coll-bookscategory' => 'Cudeschs',
+	'coll-clear_collection' => 'Stizzar il cudesch',
+	'coll-clear_collection_confirm' => 'Vuls ti propi stizzar cumplettamain tes cudesch?',
+	'coll-clear_collection_tooltip' => 'Allontanar tut las paginas da wiki ord tes cudesch actual',
+	'coll-help' => 'Agid',
+	'coll-help_tooltip' => "Mussar l'agid davart il crear cudeschs",
+	'coll-helppage' => 'Help:Cudeschs',
+	'coll-load_collection' => 'Chargiar in cudesch',
+	'coll-load_collection_tooltip' => 'Chargiar quest cudesch sco cudesch actual',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pagina|paginas}}',
+	'coll-printable_version_pdf' => 'Versiun da PDF',
+	'coll-remove_this_page' => 'Allontanar questa pagina da tes cudesch',
+	'coll-remove_page_tooltip' => 'Allontanar la pagina da wiki actuala da tes cudesch',
+	'coll-show_collection' => 'Mussar il cudesch',
+	'coll-show_collection_tooltip' => 'Cliccar per modifitgar/telechargiar/empustar tes cudesch',
+	'coll-not_addable' => 'Questa pagina na po betg vegnir agiuntada',
+	'coll-make_suggestions' => 'Proponer paginas',
+	'coll-make_suggestions_tooltip' => 'Mussar propostas che sa basan sin las paginas en tes cudesch',
+	'coll-suggest_empty' => 'vid',
+);
+
+/** Romanian (Română)
+ * @author Firilacroco
+ * @author KlaudiuMihaila
+ * @author Minisarm
+ * @author Stelistcristi
+ * @author Strainu
+ */
+$messages['ro'] = array(
+	'coll-print_export' => 'Tipărire/exportare',
+	'coll-create_a_book' => 'Creare carte',
+	'coll-create_a_book_tooltip' => 'Crearea unei cărți sau a unei colecții de pagini',
+	'coll-book_creator' => 'Creator de cărți',
+	'coll-download_as' => 'Descarcă $1',
+	'coll-download_as_tooltip' => 'Descărcați o versiune $1 a acestei pagini wiki',
+	'coll-disable' => 'dezactivează',
+	'coll-book_creator_disable' => 'Dezactivează creatorul de cărți',
+	'coll-book_creator_disable_tooltip' => 'Nu mai folosiți creatorul de cărți',
+	'coll-add_linked_article' => 'Adăugați pagina indicată în cartea dumneavoastră',
+	'coll-remove_linked_article' => 'Eliminați pagina indicată din cartea dumneavoastră',
+	'coll-add_category' => 'Adăugați această categorie în cartea dumneavoastră',
+	'coll-add_category_tooltip' => 'Adăugați toate paginile din această categorie în cartea dumneavoastră',
+	'coll-add_this_page' => 'Adăugați această pagină în cartea dumneavoastră',
+	'coll-add_page_tooltip' => 'Adăugați pagina curentă în cartea dumneavoastră',
+	'coll-bookscategory' => 'Cărți',
+	'coll-clear_collection' => 'Golește cartea',
+	'coll-clear_collection_confirm' => 'Doriți să goliți complet cartea dumneavoastră?',
+	'coll-clear_collection_tooltip' => 'Eliminarea tuturor paginilor din cartea curentă',
+	'coll-help' => 'Ajutor',
+	'coll-help_tooltip' => 'Afișarea ajutorului despre crearea cărților',
+	'coll-helppage' => 'Help:Cărți',
+	'coll-load_collection' => 'Încărcare carte',
+	'coll-load_collection_tooltip' => 'Încărcați cartea de față ca actuala dumneavoastră carte',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pagină|pagini|de pagini}}',
+	'coll-printable_version_pdf' => 'Versiune PDF',
+	'coll-remove_this_page' => 'Eliminați această pagină din cartea dumneavoastră',
+	'coll-remove_page_tooltip' => 'Eliminarea paginii actuale din cartea dumneavoastră',
+	'coll-show_collection' => 'Arată cartea',
+	'coll-show_collection_tooltip' => 'Apăsați pentru a modifica/descărca/comanda cartea dumneavoastră',
+	'coll-not_addable' => 'Această pagină nu poate fi adăugată',
+	'coll-make_suggestions' => 'Sugerează pagini',
+	'coll-make_suggestions_tooltip' => 'Afișează sugestii bazate pe conținutul cărții dumneavoastră',
+	'coll-suggest_empty' => 'fără conținut',
+);
+
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ * @author Reder
+ */
+$messages['roa-tara'] = array(
+	'coll-print_export' => 'Stambe/esporte',
+	'coll-create_a_book' => "Ccreje 'nu libbre",
+	'coll-create_a_book_tooltip' => "Creje 'na colleziune de libbre o de pagene",
+	'coll-book_creator' => 'Ccrejatore de libbre',
+	'coll-download_as' => 'Scareche cumme $1',
+	'coll-download_as_tooltip' => "Scareche 'na $1 versione de sta pàgene de Uicchi",
+	'coll-disable' => 'disabbilete',
+	'coll-book_creator_disable' => "Disabilite 'u crijatore de libbre",
+	'coll-book_creator_disable_tooltip' => "Lasse stà de ausà 'u crijatore de libbre",
+	'coll-add_linked_article' => "Aggiunge pagene uicchi cullegate pè 'u libbre toje",
+	'coll-remove_linked_article' => "Live le pàggene de Uicchi collegate da 'u libbre tune",
+	'coll-add_category' => "Aggiunge sta categorije jndr'à 'u libbre tue",
+	'coll-add_category_tooltip' => "Aggiunge tutte le pàgene de sta categorije jndr'à 'u libbre tune",
+	'coll-add_this_page' => "Aggiunge sta pàgene a 'u libbre tune",
+	'coll-add_page_tooltip' => "Aggiunge 'a pàgene de sta Uicchi a 'u libbre tune",
+	'coll-bookscategory' => 'Libbre',
+	'coll-clear_collection' => "Pulizze 'u libbre",
+	'coll-clear_collection_confirm' => "Avveramende vuè ccu sdevaghe combletamende 'u libbre tune?",
+	'coll-clear_collection_tooltip' => "Live tutte le pàòggene de uicchi da 'u libbre tune",
+	'coll-help' => 'Aijute',
+	'coll-help_tooltip' => "Fa vedè l'aijute pa ccreazione de le libbre",
+	'coll-helppage' => 'Help:Libbre',
+	'coll-load_collection' => "Careche 'nu libbre",
+	'coll-load_collection_tooltip' => "Careche quiste libbre cumme 'u toje libbre in curse",
+	'coll-n_pages' => '$1 {{PLURAL:$1|pàgene|pàggene}}',
+	'coll-printable_version_pdf' => 'Versione in PDF',
+	'coll-remove_this_page' => "Live sta pàgene da 'u libbre tune",
+	'coll-remove_page_tooltip' => "Live sta pàgene de Uicchi da 'u libbre tune",
+	'coll-show_collection' => "Fà vedè 'nu libbre",
+	'coll-show_collection_tooltip' => "Cazze sus a cange/scareche/ordene 'u libbre tune",
+	'coll-not_addable' => 'Sta pàgene non ge se pò essere aggiunde',
+	'coll-make_suggestions' => 'Pàggene suggerite',
+	'coll-make_suggestions_tooltip' => "Fà vedè le suggereminde ca se basane sus a le pàggene d'u libbre tune",
+	'coll-suggest_empty' => 'vacande',
+);
+
+/** Russian (Русский)
+ * @author Ahonc
+ * @author Ferrer
+ * @author Kaganer
+ * @author Putnik
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'coll-print_export' => 'Печать/экспорт',
+	'coll-create_a_book' => 'Создать книгу',
+	'coll-create_a_book_tooltip' => 'Создать книгу или коллекцию статей',
+	'coll-book_creator' => 'Создание книги',
+	'coll-download_as' => 'Скачать как $1',
+	'coll-download_as_tooltip' => 'Скачать $1-версию этой вики-страницы',
+	'coll-disable' => 'выключить',
+	'coll-book_creator_disable' => 'Отключить книжного мастера',
+	'coll-book_creator_disable_tooltip' => 'Прекратите использование книжного мастера',
+	'coll-add_linked_article' => 'Добавить связанную вики-страницу в вашу книгу',
+	'coll-remove_linked_article' => 'Удалить связанную вики-страницу из вашей книги',
+	'coll-add_category' => 'Добавить эту категорию в вашу книгу',
+	'coll-add_category_tooltip' => 'Добавить все вики-страницы этой категории в книгу',
+	'coll-add_this_page' => 'Добавить эту страницу в вашу книгу',
+	'coll-add_page_tooltip' => 'Добавить текущую вики-страницу в книгу',
+	'coll-bookscategory' => 'Книги',
+	'coll-clear_collection' => 'Очистить книгу',
+	'coll-clear_collection_confirm' => 'Вы действительно желаете полностью очистить вашу книгу?',
+	'coll-clear_collection_tooltip' => 'Удалите все вики-страницы из текущей книги',
+	'coll-help' => 'Справка',
+	'coll-help_tooltip' => 'Показать справку по созданию книг',
+	'coll-helppage' => 'Help:Книги',
+	'coll-load_collection' => 'Загрузить книгу',
+	'coll-load_collection_tooltip' => 'Загрузить эту книгу как вашу текущую книгу',
+	'coll-n_pages' => '$1 {{PLURAL:$1|страница|страницы|страниц}}',
+	'coll-printable_version_pdf' => 'PDF-версия',
+	'coll-remove_this_page' => 'Удалить эту страницу из вашей книги',
+	'coll-remove_page_tooltip' => 'Удалить текущую вики-страницу из книги',
+	'coll-show_collection' => 'Показать книгу',
+	'coll-show_collection_tooltip' => 'Нажмите для редактирования/загрузки/заказа книги',
+	'coll-not_addable' => 'Данная страница не может быть добавлена',
+	'coll-make_suggestions' => 'Предлагаемые страницы',
+	'coll-make_suggestions_tooltip' => 'Показать предложения, основанные на существующих страницах вашей книги',
+	'coll-suggest_empty' => 'пуста',
+);
+
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'coll-print_export' => 'Друк/експорт',
+	'coll-create_a_book' => 'Створїня книгы',
+	'coll-create_a_book_tooltip' => 'Створити книгу або колекцію сторінок',
+	'coll-book_creator' => 'Едітор книг',
+	'coll-download_as' => 'Скачати як $1',
+	'coll-download_as_tooltip' => 'Скачати тоту сторінку вікі як $1',
+	'coll-disable' => 'выпнути',
+	'coll-book_creator_disable' => 'выпнути едітор книг',
+	'coll-book_creator_disable_tooltip' => 'Перестане хоснованя едітора книг',
+	'coll-add_linked_article' => 'Придати одказовану сторінку вікі до книгы',
+	'coll-remove_linked_article' => 'Одобрати одказовану сторінку вікі з книгы',
+	'coll-add_category' => 'Придати тоту катеґорію до вашой книгы',
+	'coll-add_category_tooltip' => 'Придати вшыткы сторінкы вікі у тій катеґорії до вашой книгы',
+	'coll-add_this_page' => 'Придати тоту сторінку до вашой книгы',
+	'coll-add_page_tooltip' => 'Придати актуалну вікі-сторінку до вашой книгы',
+	'coll-bookscategory' => 'Книгы',
+	'coll-clear_collection' => 'Очістити книгу',
+	'coll-clear_collection_confirm' => 'Вы на певно хочете цілком очістити вашу книгу?',
+	'coll-clear_collection_tooltip' => 'Одстранити з актуалной книгы вшыткы сторінкы вікі',
+	'coll-help' => 'Поміч',
+	'coll-help_tooltip' => 'Указати поміч про творбу книг',
+	'coll-helppage' => 'Help:Книгы',
+	'coll-load_collection' => 'Начітати книгу',
+	'coll-load_collection_tooltip' => 'Зволити тоту книгу як актуалну',
+	'coll-n_pages' => '$1 {{PLURAL:$1|сторінка|сторінкы|сторінок}}',
+	'coll-printable_version_pdf' => 'PDF-верзія',
+	'coll-remove_this_page' => 'Одобрати тоту сторінку з вашой книгы',
+	'coll-remove_page_tooltip' => 'Одстранити актуалну сторінку з вашой книгы',
+	'coll-show_collection' => 'Указати книгу',
+	'coll-show_collection_tooltip' => 'Клікнутём собі можете книгу управити/скачати/обїднати',
+	'coll-not_addable' => 'Тота сторінка не може быти придана',
+	'coll-make_suggestions' => 'Запропоновати сторінкы',
+	'coll-make_suggestions_tooltip' => 'Указати пропозіції подля сторінок приданых до вашой книгы',
+	'coll-suggest_empty' => 'порожня',
+);
+
+/** Sanskrit (संस्कृतम्)
+ * @author Ansumang
+ */
+$messages['sa'] = array(
+	'coll-help' => 'साहाय्यम्',
+);
+
+/** Sakha (Саха тыла)
+ * @author HalanTul
+ */
+$messages['sah'] = array(
+	'coll-print_export' => 'Бэчээт/Экспорт',
+	'coll-create_a_book' => 'Кинигэни айарга',
+	'coll-create_a_book_tooltip' => 'Кинигэни эбэтэр ыстатыйалар хомуурунньуктарын айыы',
+	'coll-book_creator' => 'Кинигэ оҥоруу',
+	'coll-download_as' => 'Маннык $1 киллэр',
+	'coll-download_as_tooltip' => 'Бу биики-сирэй $1 барылын хачайдаан ылыы',
+	'coll-disable' => 'араарыы',
+	'coll-book_creator_disable' => 'Кинигэ оҥорооччуну араарыы',
+	'coll-book_creator_disable_tooltip' => 'Кинигэ онорооччуну туһаныма',
+	'coll-add_linked_article' => 'Сигэммит биикини кинигэҕэр эп',
+	'coll-remove_linked_article' => 'Сигэммит биики сирэйи кинигэттэн сот',
+	'coll-add_category' => 'Бу категорияны кинигэҕэр эбии',
+	'coll-add_category_tooltip' => 'Бу категория биики сирэйдэрин кинигэҕэ киллэр',
+	'coll-add_this_page' => 'Бу сирэйи кинигэҕэр киллэр',
+	'coll-add_page_tooltip' => 'Кинигэҕэ бу биики-сирэйи эбии',
+	'coll-bookscategory' => 'Кинигэлэр',
+	'coll-clear_collection' => 'Кинигэни ыраастаа',
+	'coll-clear_collection_confirm' => 'Кырдьык кинигэҕин ыраастаары гынаҕын дуо?',
+	'coll-clear_collection_tooltip' => 'Кинигэттэн биики сирэйдэри сот',
+	'coll-help' => 'Көмө',
+	'coll-help_tooltip' => 'Кинигэ айар туһунан көмө',
+	'coll-helppage' => 'Help:Кинигэлэр',
+	'coll-load_collection' => 'Кинигэни (атын сиртэн ылан) суруттар',
+	'coll-load_collection_tooltip' => 'Бу кинигэни билиҥҥи (текущай) кинигэ курдук киллэр',
+	'coll-n_pages' => '$1 {{PLURAL:$1|сирэй|сирэйдээх}}',
+	'coll-printable_version_pdf' => 'PDF-барыла',
+	'coll-remove_this_page' => 'Бу сирэйи кинигэҕиттэн сотуу',
+	'coll-remove_page_tooltip' => 'Бу биики сирэйи кинигэттэн сот',
+	'coll-show_collection' => 'Кинигэни көрдөр',
+	'coll-show_collection_tooltip' => 'Уларытарга маны баттаа/хачайдыырга/кинигэни сакаастыырга',
+	'coll-not_addable' => 'Бу сирэй эбиллэр кыаҕа суох',
+	'coll-make_suggestions' => 'Бу сирэйдэри туттуоххун сөп',
+	'coll-make_suggestions_tooltip' => 'Кинигэҥ баар сирэйдэригэр олоҕуран оҥоһуллубут туттуоххун сөп сирэйдэр тиһиктэрин көрдөр',
+	'coll-suggest_empty' => 'кураанах',
+);
+
+/** Sardinian (Sardu)
+ * @author Andria
+ */
+$messages['sc'] = array(
+	'coll-bookscategory' => 'Libros',
+	'coll-show_collection' => 'Ammustra libru',
+);
+
+/** Sicilian (Sicilianu)
+ * @author Aushulz
+ */
+$messages['scn'] = array(
+	'coll-bookscategory' => 'Libbra',
+	'coll-help' => 'Aiutu',
+	'coll-show_collection' => 'Talìa libbru',
+	'coll-suggest_empty' => 'vacanti',
+);
+
+/** Sinhala (සිංහල)
+ * @author පසිඳු කාවින්ද
+ */
+$messages['si'] = array(
+	'coll-print_export' => 'මුද්‍රණය/නිර්යාත කෙරුම',
+	'coll-create_a_book' => 'පොතක් නිර්මාණය කරන්න',
+	'coll-create_a_book_tooltip' => 'පොතක් හෝ පිටු එකතුවක් තනන්න',
+	'coll-book_creator' => 'පොත් තනන්නා',
+	'coll-download_as' => '$1 ලෙස බාගන්න',
+	'coll-download_as_tooltip' => 'මෙම විකි පිටුවෙහි $1 අනුවාදය බාගන්න',
+	'coll-disable' => 'අක්‍රීය කරන්න',
+	'coll-book_creator_disable' => 'පොත් තනන්නා අක්‍රීය කරන්න',
+	'coll-book_creator_disable_tooltip' => 'පොත් තනන්නා භාවිතා කිරීම නවත්තන්න',
+	'coll-add_linked_article' => 'සම්බන්ධ කරන ලද විකි පිටුවක් ඔබේ පොතට එක් කරන්න',
+	'coll-remove_linked_article' => 'සම්බන්ධ කරන ලද විකි පිටුවක් ඔබේ පොතෙන් ඉවත් කරන්න',
+	'coll-add_category' => 'මෙම ප්‍රවර්ගය ඔබේ පොතට එක් කරන්න',
+	'coll-add_category_tooltip' => 'මෙම ප්‍රවර්ගයේ ඇති සියලුම විකි පිටු ඔබේ පොතට එක් කරන්න',
+	'coll-add_this_page' => 'මෙම පිටුව ඔබේ පොතට එක් කරන්න',
+	'coll-add_page_tooltip' => 'වත්මන් විකි පිටුව ඔබේ පොතට එක් කරන්න',
+	'coll-bookscategory' => 'පොත්',
+	'coll-clear_collection' => 'පොත සුද්ද කරන්න',
+	'coll-clear_collection_confirm' => 'ඔබට ඔබේ පොත සම්පූර්ණයෙන්ම ශුද්ධ කිරීමට අවශ්‍යමද?',
+	'coll-clear_collection_tooltip' => 'ඔබේ වත්මන් පොතෙන් සියලුම විකි පිටු ඉවත් කරන්න',
+	'coll-help' => 'උදව්',
+	'coll-help_tooltip' => 'පොත් තැනීම පිලිබඳ උදව් පෙන්වන්න',
+	'coll-helppage' => 'Help:පොත්',
+	'coll-load_collection' => 'පොත පූරණය කරන්න',
+	'coll-load_collection_tooltip' => 'මෙම පොත් ඔබේ වත්මන් පොත ලෙස පූරණය කරන්න',
+	'coll-n_pages' => '{{PLURAL:$1|පිටු|පිටු}} $1 ක්',
+	'coll-printable_version_pdf' => 'PDF අනුවාදය',
+	'coll-remove_this_page' => 'මෙම පිටුව ඔබේ පොතෙන් ඉවත් කරන්න',
+	'coll-remove_page_tooltip' => 'වත්මන් විකි පිටුව ඔබේ පොතෙන් ඉවත් කරන්න',
+	'coll-show_collection' => 'පොත පෙන්වන්න',
+	'coll-not_addable' => 'මෙම පිටුව එක් කල නොහැක',
+	'coll-make_suggestions' => 'පිටු යෝජනා කරන්න',
+	'coll-suggest_empty' => 'හිස්',
+);
+
+/** Slovak (Slovenčina)
+ * @author Helix84
+ */
+$messages['sk'] = array(
+	'coll-print_export' => 'Tlačiť/exportovať',
+	'coll-create_a_book' => 'Vytvoriť knihu',
+	'coll-create_a_book_tooltip' => 'Vytvoriť knihu alebo kolekciu stránok',
+	'coll-book_creator' => 'Tvorba knihy',
+	'coll-download_as' => 'Stiahnuť ako $1',
+	'coll-download_as_tooltip' => 'Stiahnuť verziu $1 tejto wiki stránky',
+	'coll-disable' => 'vypnúť',
+	'coll-book_creator_disable' => 'Vypnúť tvorbu knihy',
+	'coll-book_creator_disable_tooltip' => 'Zastaviť používanie Tvorby knihy',
+	'coll-add_linked_article' => 'Pridať odkazovanú stránku wiki do vašej knihy',
+	'coll-remove_linked_article' => 'Odstrániť odkazovanú wiki stránku z vašej knihy',
+	'coll-add_category' => 'Pridať túto kategóriu do vašej knihy',
+	'coll-add_category_tooltip' => 'Pridať všetky stránky wiki v tejto kategórii do vašej knihy',
+	'coll-add_this_page' => 'Pridať túto stránku do vašej knihy',
+	'coll-add_page_tooltip' => 'Pridať aktuálnu wiki stránku do vašej knihy',
+	'coll-bookscategory' => 'Knihy',
+	'coll-clear_collection' => 'Vyčistiť knihu',
+	'coll-clear_collection_confirm' => 'Skutočne chcete celkom vyčistiť svoju knihu?',
+	'coll-clear_collection_tooltip' => 'Odstrániť všetky stránky wiki z vašej aktuálnej knihy',
+	'coll-help' => 'Pomocník',
+	'coll-help_tooltip' => 'Zobraziť pomocníka s vytváraním knihy',
+	'coll-helppage' => 'Help:Knihy',
+	'coll-load_collection' => 'Načítať knihu',
+	'coll-load_collection_tooltip' => 'Načítať túto knihu ako vašu aktuálnu knihu',
+	'coll-n_pages' => '$1 {{PLURAL:$1|stránka|stránky|stránok}}',
+	'coll-printable_version_pdf' => 'PDF verzia',
+	'coll-remove_this_page' => 'Odstrániť túto stránku z vašej knihy',
+	'coll-remove_page_tooltip' => 'Odstrániť aktuálnu wiki stránku z vašej knihy',
+	'coll-show_collection' => 'Zobraziť knihu',
+	'coll-show_collection_tooltip' => 'Kliknutím môžete upraviť/stiahnuť/objednať knihu',
+	'coll-not_addable' => 'Túto stránku nemožno pridať',
+	'coll-make_suggestions' => 'Navrhnúť stránky',
+	'coll-make_suggestions_tooltip' => 'Zobraziť návrhy na základe stránok vo vašej knihe',
+	'coll-suggest_empty' => 'prázdne',
+);
+
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ * @author Freakolowsky
+ * @author Smihael
+ */
+$messages['sl'] = array(
+	'coll-print_export' => 'Tiskanje/izvoz',
+	'coll-create_a_book' => 'Ustvari e-knjigo',
+	'coll-create_a_book_tooltip' => 'Ustvari e-knjigo ali zbirko strani',
+	'coll-book_creator' => 'Ustvarjalec knjige',
+	'coll-download_as' => 'Prenesi kot $1',
+	'coll-download_as_tooltip' => 'Prenesi $1 različico te wiki strani',
+	'coll-disable' => 'onemogoči',
+	'coll-book_creator_disable' => 'Onemogoči ustvarjalca knjige',
+	'coll-book_creator_disable_tooltip' => 'Prenehaj uporabljati izdelovalca knjige',
+	'coll-add_linked_article' => 'Dodajte povezano wikistran v svojo knjigo',
+	'coll-remove_linked_article' => 'Odstranite povezano wikistran iz svoje knjige',
+	'coll-add_category' => 'Dodajte to kategorijo k svoji knjigi',
+	'coll-add_category_tooltip' => 'Dodajte vse wiki strani v tej kategoriji v svojo knjigo',
+	'coll-add_this_page' => 'Dodajte to stran v svojo knjigo',
+	'coll-add_page_tooltip' => 'Dodajte trenutno wiki stran v svojo knjigo',
+	'coll-bookscategory' => 'Knjige',
+	'coll-clear_collection' => 'Zbriši knjigo',
+	'coll-clear_collection_confirm' => 'Ali res želite popolnoma izbrisati vašo knjigo?',
+	'coll-clear_collection_tooltip' => 'Odstrani vse wiki strani iz vaše trenutne knjige',
+	'coll-help' => 'Pomoč',
+	'coll-help_tooltip' => 'Prikaži pomoč o ustvarjanju knjige',
+	'coll-helppage' => 'Help:Knjige',
+	'coll-load_collection' => 'Naloži knjige',
+	'coll-load_collection_tooltip' => 'Naloži to knjigo kot trenutno',
+	'coll-n_pages' => '$1 {{PLURAL:$1|stran|strani}}',
+	'coll-printable_version_pdf' => 'Različica PDF',
+	'coll-remove_this_page' => 'Odstrani to stran iz vaše knjige',
+	'coll-remove_page_tooltip' => 'Odstranite trenutno wiki stran iz vaše knjige',
+	'coll-show_collection' => 'Prikaži knjige',
+	'coll-show_collection_tooltip' => 'Kliknite za urejanje/prenos/naročilo vaše knjige',
+	'coll-not_addable' => 'To stran ni mogoče dodati',
+	'coll-make_suggestions' => 'Predlagaj strani',
+	'coll-make_suggestions_tooltip' => 'Prikaži predloge glede na strani v vaši knjigi',
+	'coll-suggest_empty' => 'prazno',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Nikola Smolenski
+ * @author Rancher
+ * @author Јованвб
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
+ */
+$messages['sr-ec'] = array(
+	'coll-print_export' => 'Штампај/извези',
+	'coll-create_a_book' => 'Направи књигу',
+	'coll-create_a_book_tooltip' => 'Направи књигу или збирку страница',
+	'coll-book_creator' => 'Књиговезница',
+	'coll-download_as' => 'Преузми као $1',
+	'coll-download_as_tooltip' => 'Преузми $1 издање ове странице',
+	'coll-disable' => 'онемогући',
+	'coll-book_creator_disable' => 'Онемогући књиговезницу',
+	'coll-book_creator_disable_tooltip' => 'Престани с коришћењем књиговезнице',
+	'coll-add_linked_article' => 'Додај везу до вики странице у своју књигу',
+	'coll-remove_linked_article' => 'Уклони везу до вики странице из своје књиге',
+	'coll-add_category' => 'Додај ову категорију у своју књигу',
+	'coll-add_category_tooltip' => 'Додаје све вики странице у овој категорији у вашу књигу',
+	'coll-add_this_page' => 'Додај ову страну у своју књигу',
+	'coll-add_page_tooltip' => 'Додаје тренутну вики страницу вашој књизи',
+	'coll-bookscategory' => 'Књиге',
+	'coll-clear_collection' => 'Очисти књигу',
+	'coll-clear_collection_confirm' => 'Да ли заиста желите да потпуно очистите своју књигу?',
+	'coll-clear_collection_tooltip' => 'Уклања све вики странице из ваше тренутне књиге',
+	'coll-help' => 'Помоћ',
+	'coll-help_tooltip' => 'Прикажи помоћ за стварање књига',
+	'coll-helppage' => 'Help:Књиге',
+	'coll-load_collection' => 'Учитај књигу',
+	'coll-load_collection_tooltip' => 'Учитава ову књигу као вашу тренутну књигу',
+	'coll-n_pages' => '$1 {{PLURAL:$1|страница|странице|страница}}',
+	'coll-printable_version_pdf' => 'PDF издање',
+	'coll-remove_this_page' => 'Уклони ову страницу из своје књиге',
+	'coll-remove_page_tooltip' => 'Уклања тренутну вики страницу из ваше књиге',
+	'coll-show_collection' => 'Прикажи књигу',
+	'coll-show_collection_tooltip' => 'Кликните за измену, преузимање или наручивање своје књиге',
+	'coll-not_addable' => 'Ова страница се не може додати',
+	'coll-suggest_empty' => 'празно',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ * @author Жељко Тодоровић
+ */
+$messages['sr-el'] = array(
+	'coll-print_export' => 'Štampaj/izvezi',
+	'coll-create_a_book' => 'Napravi knjigu',
+	'coll-create_a_book_tooltip' => 'Napravi knjigu ili kolekciju članaka',
+	'coll-book_creator' => 'Knjigoveznica',
+	'coll-download_as' => 'Preuzmi kao $1',
+	'coll-download_as_tooltip' => 'Preuzmi $1 izdanje ove stranice',
+	'coll-disable' => 'onemogući',
+	'coll-book_creator_disable' => 'Onemogući knjigoveznicu',
+	'coll-book_creator_disable_tooltip' => 'Prestani s korišćenjem knjigoveznice',
+	'coll-add_linked_article' => 'Dodaj vezu do viki stranice u svoju knjigu',
+	'coll-remove_linked_article' => 'Ukloni vezu do viki stranice iz svoje knjige',
+	'coll-add_category' => 'Dodaj ovu kategoriju u svoju knjigu',
+	'coll-add_category_tooltip' => 'Dodaje sve viki stranice u ovoj kategoriji u vašu knjigu',
+	'coll-add_this_page' => 'Dodaj ovu stranu u svoju knjigu',
+	'coll-add_page_tooltip' => 'Dodaje trenutnu viki stranicu vašoj knjizi',
+	'coll-bookscategory' => 'Knjige',
+	'coll-clear_collection' => 'Očisti knjigu',
+	'coll-clear_collection_confirm' => 'Da li zaista želite da potpuno očistite svoju knjigu?',
+	'coll-clear_collection_tooltip' => 'Uklanja sve viki stranice iz vaše trenutne knjige',
+	'coll-help' => 'Pomoć',
+	'coll-help_tooltip' => 'Prikaži pomoć oko pravljenja knjiga',
+	'coll-helppage' => 'Help:Knjige',
+	'coll-load_collection' => 'Učitaj knjigu',
+	'coll-load_collection_tooltip' => 'Učitava ovu knjigu kao vašu trenutnu knjigu',
+	'coll-n_pages' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
+	'coll-printable_version_pdf' => 'PDF verzija',
+	'coll-remove_this_page' => 'Ukloni ovu stranicu iz svoje knjige',
+	'coll-remove_page_tooltip' => 'Uklanja trenutnu viki stranicu iz vaše knjige',
+	'coll-show_collection' => 'Prikaži knjigu',
+	'coll-show_collection_tooltip' => 'Kliknite za izmenu, preuzimanje ili naručivanje svoje knjige',
+	'coll-not_addable' => 'Ova stranica se ne može dodati',
+	'coll-suggest_empty' => 'prazno',
+);
+
+/** Seeltersk (Seeltersk)
+ * @author Pyt
+ */
+$messages['stq'] = array(
+	'coll-create_a_book' => 'Kollektion',
+	'coll-download_as' => 'As $1 deelleede',
+	'coll-add_category' => 'Aal Sieden uut disse Kategorie dien Bouk bietouföigje',
+	'coll-clear_collection' => 'Bouk läskje',
+	'coll-helppage' => 'Help:Bouke',
+	'coll-load_collection' => 'Bouk leede',
+	'coll-n_pages' => '$1 {{PLURAL:$1|Siede|Sieden}}',
+	'coll-show_collection' => 'Bouk wiese',
+);
+
+/** Sundanese (Basa Sunda)
+ * @author Irwangatot
+ */
+$messages['su'] = array(
+	'coll-add_category' => 'Nambah kategori',
+);
+
+/** Swedish (Svenska)
+ * @author Ainali
+ * @author Boivie
+ * @author GameOn
+ * @author M.M.S.
+ * @author Micke
+ * @author Najami
+ * @author Poxnar
+ * @author Rotsee
+ * @author Sannab
+ */
+$messages['sv'] = array(
+	'coll-print_export' => 'Skriv ut/exportera',
+	'coll-create_a_book' => 'Skapa en bok',
+	'coll-create_a_book_tooltip' => 'Skapa en bok eller artikelsamling',
+	'coll-book_creator' => 'Bokskapare',
+	'coll-download_as' => 'Hämta som $1',
+	'coll-download_as_tooltip' => 'Ladda ner den här wikisidan i $1-format',
+	'coll-disable' => 'slå av',
+	'coll-book_creator_disable' => 'Avaktiviera bokskapare',
+	'coll-book_creator_disable_tooltip' => 'Sluta använda bokskapare',
+	'coll-add_linked_article' => 'Lägg till den länkade wiki-sidan till din bok',
+	'coll-remove_linked_article' => 'Ta bort den länkade wiki-sidan från din bok',
+	'coll-add_category' => 'Lägg till den här kategorin i boken',
+	'coll-add_category_tooltip' => 'Lägg till alla wikisidor i den här kategorin till din bok',
+	'coll-add_this_page' => 'Lägg till den här sidan i boken',
+	'coll-add_page_tooltip' => 'Lägg till den nuvarande wikisidan till din bok',
+	'coll-bookscategory' => 'Böcker',
+	'coll-clear_collection' => 'Töm bok',
+	'coll-clear_collection_confirm' => 'Vill du verkligen helt tömma din bok?',
+	'coll-clear_collection_tooltip' => 'Ta bort alla wikisidor från din nuvarande bok',
+	'coll-help' => 'Hjälp',
+	'coll-help_tooltip' => 'Få hjälp med att skapa böcker',
+	'coll-helppage' => 'Help:Böcker',
+	'coll-load_collection' => 'Hämta bok',
+	'coll-load_collection_tooltip' => 'Ladda den här boken som din nuvarande bok',
+	'coll-n_pages' => '$1 {{PLURAL:$1|sida|sidor}}',
+	'coll-printable_version_pdf' => 'PDF-version',
+	'coll-remove_this_page' => 'Ta bort den här sidan ur boken',
+	'coll-remove_page_tooltip' => 'Ta bort den nuvarande wikisidan från din bok',
+	'coll-show_collection' => 'Visa bok',
+	'coll-show_collection_tooltip' => 'Klicka för att redigera/ladda ner/beställa din bok',
+	'coll-not_addable' => 'Denna sida kan inte läggas till',
+	'coll-make_suggestions' => 'Föreslå sidor',
+	'coll-make_suggestions_tooltip' => 'Visa förslag baserade på sidorna i din bok',
+	'coll-suggest_empty' => 'tom',
+);
+
+/** Swahili (Kiswahili)
+ * @author Lloffiwr
+ */
+$messages['sw'] = array(
+	'coll-print_export' => 'Chapa/peleka nje',
+	'coll-create_a_book' => 'Kutunga kitabu',
+	'coll-create_a_book_tooltip' => 'Utunge kitabu au mkusanyiko wa kurasa',
+	'coll-book_creator' => 'Kitunga kitabu',
+	'coll-download_as' => 'Pakua kama $1',
+	'coll-download_as_tooltip' => 'Pakua aina $1 ya ukurasa wiki huu',
+	'coll-disable' => 'lemaza',
+	'coll-book_creator_disable' => 'Lemaza kitunga kitabu',
+	'coll-book_creator_disable_tooltip' => 'Acha kutumia kitunga kitabu',
+	'coll-add_linked_article' => 'Ingiza ukurasa mwingine ulioungwa katika kitabu chako',
+	'coll-remove_linked_article' => 'Ondoa ukurasa mwingine ulioungwa kutoka katika kitabu chako',
+	'coll-add_category' => 'Ongeza jamii hii katika kitabu chako',
+	'coll-add_category_tooltip' => 'Ongeza kurasa zote zilizopo katika jamii hii katika kitabu chako',
+	'coll-add_this_page' => 'Ongeza ukurasa huu katika kitabu chako',
+	'coll-add_page_tooltip' => 'Ongeza ukurasa huu huu katika kitabu chako',
+	'coll-bookscategory' => 'Vitabu',
+	'coll-clear_collection' => 'Pangusa kitabu',
+	'coll-clear_collection_confirm' => 'Je, unataka kuondoa kurasa zote zilizopo katika kitabu chako?',
+	'coll-clear_collection_tooltip' => 'Ondoa kurasa zilizopo zote kutoka katika kitabu chako cha sasa',
+	'coll-help' => 'Msaada',
+	'coll-help_tooltip' => 'Onyesha msaada wa kutunga kitabu',
+	'coll-helppage' => 'Help:Vitabu',
+	'coll-load_collection' => 'Pakia kitabu',
+	'coll-load_collection_tooltip' => 'Pakia kitabu hiki kuwa kitabu chako cha sasa',
+	'coll-n_pages' => '{{PLURAL:$1|ukurasa|kurasa}} $1',
+	'coll-printable_version_pdf' => 'Mtindo wa PDF',
+	'coll-remove_this_page' => 'Ondoa ukurasa huu kutoka katika kitabu chako',
+	'coll-remove_page_tooltip' => 'Ondoa ukurasa uliopo sasa kutoka katika kitabu chako',
+	'coll-show_collection' => 'Onyesha kitabu',
+	'coll-not_addable' => 'Ukarasa huu hauwezi kuingizwa',
+	'coll-suggest_empty' => 'tupu',
+);
+
+/** Tamil (தமிழ்)
+ * @author Karthi.dr
+ * @author Shanmugamp7
+ * @author TRYPPN
+ * @author செல்வா
+ */
+$messages['ta'] = array(
+	'coll-create_a_book' => 'ஒரு புத்தகம் உருவாக்கு',
+	'coll-create_a_book_tooltip' => 'புத்தகத்தை அல்லது பக்க தொகுப்பை உருவாக்கு',
+	'coll-book_creator' => 'புத்தகம் உருவாக்குபவர்',
+	'coll-download_as' => '$1 என தகவலிறக்கு',
+	'coll-download_as_tooltip' => 'இந்த விக்கி பக்கத்தின் $1 பதிப்பை தகவலிறக்கம் செய்',
+	'coll-disable' => 'செயலிழக்கச் செய்',
+	'coll-book_creator_disable' => 'புத்தக உருவாக்குநரை செயலிழக்க செய்',
+	'coll-book_creator_disable_tooltip' => 'புத்தக உருவாக்குநர் பயன்படுத்துவதை நிறுத்து',
+	'coll-add_linked_article' => 'இணைக்கப்பட்ட விக்கி பக்கத்தை உங்கள் புத்தகத்தில்  சேர்',
+	'coll-remove_linked_article' => 'இணைக்கப்பட்ட விக்கி பக்கத்தை உங்கள் புத்தகத்தில்  இருந்து நீக்கு',
+	'coll-add_category' => 'இந்த வகையை  உங்கள் புத்தகத்தில்  சேர்',
+	'coll-add_category_tooltip' => 'இந்த வகையில் உள்ள எல்லா விக்கி பக்கங்களையும் உங்கள் புத்தகத்தில் சேர்க்கவும்.',
+	'coll-add_this_page' => 'உங்கள் புத்தகத்தில் இப்பக்கத்தைச் சேர்க்கவும்',
+	'coll-add_page_tooltip' => 'தற்போதைய விக்கி பக்கத்தை உங்கள் புத்தகத்தில் சேர்க்கவும்',
+	'coll-bookscategory' => 'நூல்கள்',
+	'coll-clear_collection' => 'புத்தகத்தை அழி',
+	'coll-clear_collection_confirm' => 'உண்மையிலேயே முழுமையாக உங்கள் புத்தகத்தை வெறுமையாக்க வேண்டுமா?',
+	'coll-clear_collection_tooltip' => 'உங்கள் நடப்பு புத்தகத்திலிருந்து அனைத்து விக்கி பக்கங்ககளையும் நீக்கு',
+	'coll-help' => 'உதவி',
+	'coll-help_tooltip' => 'புத்தகங்கள் உருவாக்குவதை பற்றிய உதவியை காண்பி',
+	'coll-helppage' => 'Help:புத்தகங்கள்',
+	'coll-load_collection' => 'நூலை ஏற்றவும்',
+	'coll-load_collection_tooltip' => 'இந்த புத்தகத்தை  உங்கள் நடப்பு புத்தகம் என தகவலேற்று',
+	'coll-n_pages' => '$1 {{PLURAL:$1|பக்கம் |பக்கங்கள்}}',
+	'coll-printable_version_pdf' => 'PDF பதிப்பு',
+	'coll-remove_this_page' => 'இப்பக்கத்தை  உங்கள் புத்தகத்திலிருந்து நீக்கு',
+	'coll-remove_page_tooltip' => 'நடப்பு விக்கி பக்கத்தை உங்கள் புத்தகத்திலிருந்து நீக்கு',
+	'coll-show_collection' => 'நூலைக் காட்டவும்',
+	'coll-show_collection_tooltip' => 'உங்கள் புத்தகத்தை திருத்த/தகவலிறக்க/ஒழுங்காக்க கிளிக் செய்யவும்',
+	'coll-not_addable' => 'இப்பக்கத்தை  சேர்க்க முடியாது',
+	'coll-make_suggestions' => 'பக்கங்களை  ஆலோசனை கூறு',
+	'coll-make_suggestions_tooltip' => 'உங்கள் புத்தகத்தில் உள்ள  பக்கங்கள் அடிப்படையில் ஆலோசனைகளை காண்பி',
+	'coll-suggest_empty' => 'ஒன்றுமில்லாத',
+);
+
+/** Telugu (తెలుగు)
+ * @author Chaduvari
+ * @author Kiranmayee
+ * @author Veeven
+ */
+$messages['te'] = array(
+	'coll-print_export' => 'ముద్రించండి/ఎగుమతి చేయండి',
+	'coll-create_a_book' => 'ఓ పుస్తకాన్ని సృష్టించండి',
+	'coll-create_a_book_tooltip' => 'పుస్తకాన్ని లేదా పేజీల సేకరణని సృష్టించండి',
+	'coll-book_creator' => 'పుస్తక కూర్పరి',
+	'coll-download_as' => '$1 క్రింద దిగుమతి చేసుకోండి',
+	'coll-download_as_tooltip' => 'ఈ పేజీ యొక్క $1 సంచికని దించుకోండి',
+	'coll-disable' => 'అచేతన పరచు',
+	'coll-book_creator_disable' => 'పుస్తకం సృష్టికర్తను అచేతనం చెయ్యి',
+	'coll-book_creator_disable_tooltip' => 'పుస్తకం సృష్టికర్తను వాడటం ఆపు',
+	'coll-add_linked_article' => 'మీ పుస్తకానికి లింకైన వికీ పేజీని చేర్చు',
+	'coll-remove_linked_article' => 'మీ పుస్తకం నుండి లింకున్న వికీ పేజీని తీసెయ్యి',
+	'coll-add_category' => 'పుస్తకముకు ఈ వర్గాన్ని చేర్చు',
+	'coll-add_category_tooltip' => 'ఈ వర్గంలోని అన్ని వికీ పేజీలనూ పుస్తకంలోనికి చేర్చు',
+	'coll-add_this_page' => 'ఈ పేజీని మీ పుస్తకములో చేర్చండి',
+	'coll-add_page_tooltip' => 'ప్రస్తుత వికీ పేజీని పుస్తకానికి చేర్చు',
+	'coll-bookscategory' => 'పుస్తకాలు',
+	'coll-clear_collection' => 'పుస్తకముని తుడిచివేయి',
+	'coll-clear_collection_confirm' => 'మీరు నిజంగా మీ పుస్తకమును పూర్తిగా తొలగించాలని అనుకొంటున్నారా?',
+	'coll-clear_collection_tooltip' => 'ప్రస్తుత పుస్తకంలో నుండి అన్ని వికీ పేజీలను తీసివేయి',
+	'coll-help' => 'సహాయం',
+	'coll-help_tooltip' => 'పుస్తకాల్ని తయారుచేయడం గురించి సహాయాన్ని చూడండి',
+	'coll-helppage' => 'Help:పుస్తకాలు',
+	'coll-load_collection' => 'పుస్తకాన్ని లోడుచెయ్యి',
+	'coll-load_collection_tooltip' => 'ఈ పుస్తకాన్ని మీ ప్రస్తుత పుస్తకంగా లోడు చెయ్యండి',
+	'coll-n_pages' => '$1 {{PLURAL:$1|పుట|పుటలు}}',
+	'coll-printable_version_pdf' => 'PDF కూర్పు',
+	'coll-remove_this_page' => 'ఈ పుటని మీ పుస్తకం నుండి తొలగించండి',
+	'coll-remove_page_tooltip' => 'ప్రస్తుత వికీ పేజీని నా పుస్తకం నుండి తొలగించు',
+	'coll-show_collection' => 'పుస్తకముని చూపించు',
+	'coll-show_collection_tooltip' => 'మీ పుస్తకాన్ని మార్చేందుకు/ఎక్కించేందుకు/ఆర్డరు చేసేందుకు నొక్కండి',
+	'coll-not_addable' => 'ఈ పేజీని చేర్చలేము',
+	'coll-make_suggestions' => 'పేజీలను సూచించు',
+	'coll-make_suggestions_tooltip' => 'మీ పుస్తకంలోని పేజీల ఆధారంగా సూచనలని చూపిస్తుంది',
+	'coll-suggest_empty' => 'ఖాళీ',
+);
+
+/** Tetum (Tetun)
+ * @author MF-Warburg
+ */
+$messages['tet'] = array(
+	'coll-create_a_book' => 'Kria livru ida',
+	'coll-bookscategory' => 'Livru sira',
+	'coll-helppage' => 'Help:Livru sira',
+	'coll-n_pages' => '{{PLURAL:$1|pájina ida|pájina $1}}',
+);
+
+/** Tajik (Cyrillic script) (Тоҷикӣ)
+ * @author Ibrahim
+ */
+$messages['tg-cyrl'] = array(
+	'coll-create_a_book' => 'Эҷоди як китоб',
+	'coll-download_as' => 'Дарёфтан чун $1',
+	'coll-add_category' => 'Илова кардани гурӯҳ',
+	'coll-clear_collection' => 'Тоза кардани гирдовари',
+	'coll-helppage' => 'Help:Гирдовариҳо',
+	'coll-load_collection' => 'Бор кардани гирдоварӣ',
+	'coll-n_pages' => '$1 {{PLURAL:$1|саҳифа|саҳифаҳо}}',
+	'coll-printable_version_pdf' => 'Нусхаи PDF',
+	'coll-show_collection' => 'Намоиши гирдоварӣ',
+);
+
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'coll-create_a_book' => 'Eçodi jak kitob',
+	'coll-download_as' => 'Darjoftan cun $1',
+	'coll-n_pages' => '$1 {{PLURAL:$1|sahifa|sahifaho}}',
+	'coll-printable_version_pdf' => 'Nusxai PDF',
+);
+
+/** Thai (ไทย)
+ * @author Ans
+ * @author Harley Hartwell
+ * @author Horus
+ * @author Manop
+ * @author Octahedron80
+ */
+$messages['th'] = array(
+	'coll-print_export' => 'พิมพ์/ส่งออก',
+	'coll-create_a_book' => 'สร้างหนังสือ',
+	'coll-create_a_book_tooltip' => 'สร้างหนังสือหรือรวบรวมหน้า',
+	'coll-book_creator' => 'ตัวสร้างหนังสือ',
+	'coll-download_as' => 'ดาวน์โหลดในชื่อ $1',
+	'coll-download_as_tooltip' => 'ดาวน์โหลดรูปแบบ $1 ของหน้าวิกินี้',
+	'coll-disable' => 'ปิดการใช้งาน',
+	'coll-book_creator_disable' => 'ยกเลิกการใช้ตัวสร้างหนังสือ',
+	'coll-book_creator_disable_tooltip' => 'เลิกใช้ตัวสร้างหนังสือ',
+	'coll-add_linked_article' => 'เพิ่มหน้าวิกิเชื่อมโยงในหนังสือของคุณ',
+	'coll-remove_linked_article' => 'นำหน้าวิกิเชื่อมโยงออกจากหนังสือของคุณ',
+	'coll-add_category' => 'เพิ่มหมวดหมู่นี้เข้าสู่หนังสือ',
+	'coll-add_category_tooltip' => 'เพิ่มหน้าวิกิทั้งหมดในหมวดหมู่นี้ในหนังสือของคุณ',
+	'coll-add_this_page' => 'เพิ่มหน้านี้ในหนังสือของคุณ',
+	'coll-add_page_tooltip' => 'เพิ่มหน้าวิกิปัจจุบันในหนังสือของคุณ',
+	'coll-bookscategory' => 'หนังสือ',
+	'coll-clear_collection' => 'เคลียร์หนังสือ',
+	'coll-clear_collection_confirm' => 'คุณแน่ใจหรือไม่ที่จะลบหนังสือของคุณ ?',
+	'coll-clear_collection_tooltip' => 'นำหน้าวิกิทั้งหมดออกจากหนังสือปัจจุบันของคุณ',
+	'coll-help' => 'วิธีใช้',
+	'coll-help_tooltip' => 'แสดงคำแนะนำเกี่ยวกับการสร้างหนังสือ',
+	'coll-helppage' => 'Help:หนังสือ',
+	'coll-load_collection' => 'โหลดหนังสือ',
+	'coll-load_collection_tooltip' => 'โหลดหนังสือนี้เป็นหนังสือปัจจุบันของคุณ',
+	'coll-n_pages' => '$1 หน้า',
+	'coll-printable_version_pdf' => 'รุ่น PDF',
+	'coll-remove_this_page' => 'นำหน้านี้ออกจากหนังสือของคุณ',
+	'coll-remove_page_tooltip' => 'นำหน้าวิกิปัจจุบันออกจากหนังสือของคุณ',
+	'coll-show_collection' => 'แสดงหนังสือ',
+	'coll-show_collection_tooltip' => 'คลิกเพื่อแก้ไข ดาวน์โหลด หรือสั่งซื้อหนังสือของคุณ',
+	'coll-not_addable' => 'ไม่สามารถเพิ่มหน้านี้ลงหนังสือได้',
+	'coll-make_suggestions' => 'หน้าแนะนำ',
+	'coll-make_suggestions_tooltip' => 'แสดงคำแนะนำตามหน้าที่อยู่ในหนังสือของคุณ',
+	'coll-suggest_empty' => 'ไม่มีคำแนะนำ',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'coll-print_export' => 'Print et/eksportirle',
+	'coll-create_a_book' => 'Kitap döret',
+	'coll-create_a_book_tooltip' => 'Kitap ýa-da sahypa kolleksiýasy döret',
+	'coll-book_creator' => 'Kitap dörediji',
+	'coll-download_as' => '$1 edip düşür',
+	'coll-download_as_tooltip' => 'Bu wiki sahypasynyň $1 wersiýasyny düşür',
+	'coll-disable' => 'ýap',
+	'coll-book_creator_disable' => 'Kitap döredijini ýap',
+	'coll-book_creator_disable_tooltip' => 'Kitap döredijini ulanmagy bes et',
+	'coll-add_linked_article' => 'Çykgytly wiki sahypasyny kitabyňyza goşuň',
+	'coll-remove_linked_article' => 'Çykgytly wiki sahypasyny kitabyňyzdan aýryň',
+	'coll-add_category' => 'Bu kategoriýany kitabyňa goş',
+	'coll-add_category_tooltip' => 'Bu kategoriýadaky ähli wiki sahypalaryny kitabyňa goş',
+	'coll-add_this_page' => 'Bu sahypany kitabyňa goş',
+	'coll-add_page_tooltip' => 'Häzirki wiki sahypasyny kitabyňa goş',
+	'coll-bookscategory' => 'Kitaplar',
+	'coll-clear_collection' => 'Kitaby boşat',
+	'coll-clear_collection_confirm' => 'Kitabyňyzy hakykatdan hem boşadasyňyz gelýärmi?',
+	'coll-clear_collection_tooltip' => 'Häzirki kitabyňdan ähli wiki sahypalaryny aýyr',
+	'coll-help' => 'Ýardam',
+	'coll-help_tooltip' => 'Kitap döretmeklik hakda ýardamy görkez',
+	'coll-helppage' => 'Help:Kitaplar',
+	'coll-load_collection' => 'Kitap ýükle',
+	'coll-load_collection_tooltip' => 'Bu kitaby häzirki kitabyň hökmünde ýükle',
+	'coll-n_pages' => '$1 {{PLURAL:$1|sahypa|sahypa}}',
+	'coll-printable_version_pdf' => 'PDF wersiýasy',
+	'coll-remove_this_page' => 'Bu sahypany kitabyňdan aýyr',
+	'coll-remove_page_tooltip' => 'Häzirki wiki sahypasyny kitabyňdan aýyr',
+	'coll-show_collection' => 'Kitaby görkez',
+	'coll-show_collection_tooltip' => 'Kitabyňyzy redaktirlemek/düşürmek/buýurmak üçin tyklaň',
+	'coll-not_addable' => 'Bu sahypany goşup bolmaýar',
+	'coll-make_suggestions' => 'Sahypa teklip et',
+	'coll-make_suggestions_tooltip' => 'Kitabyňyzdaky sahypalar esasynda teklip görkez',
+	'coll-suggest_empty' => 'boş',
+);
+
+/** Tagalog (Tagalog)
+ * @author AnakngAraw
+ */
+$messages['tl'] = array(
+	'coll-print_export' => 'Ilimbag/iluwas',
+	'coll-create_a_book' => 'Lumikha ng isang aklat',
+	'coll-create_a_book_tooltip' => 'Lumikha ng isang aklat o kalipunan ng pahina',
+	'coll-book_creator' => 'Panglikha ng aklat',
+	'coll-download_as' => 'Ikargang-pakuha bilang $1',
+	'coll-download_as_tooltip' => 'Magkargang-pababa ng $1 na bersyon ng pahinang pangwiking ito',
+	'coll-disable' => 'huwag paganahin',
+	'coll-book_creator_disable' => 'Huwag paganahin ang panglikha ng aklat',
+	'coll-book_creator_disable_tooltip' => 'Ihinto ang paggamit ng panglikha ng aklat',
+	'coll-add_linked_article' => 'Idagdag ang nakakawing na pahinang pangwiki sa aklat mo',
+	'coll-remove_linked_article' => 'Tanggalin ang nakakawing na pahinang pangwiki mula sa aklat mo',
+	'coll-add_category' => 'Idagdag ang kategoryang ito sa aklat mo',
+	'coll-add_category_tooltip' => 'Idagdag ang lahat ng mga pahina ng wiki sa loob ng kauriang ito patungo sa aklat mo',
+	'coll-add_this_page' => 'Idagdag ang pahinang ito sa aklat mo',
+	'coll-add_page_tooltip' => 'Idagdag ang kasalukuyang pahina ng wiki sa aklat mo',
+	'coll-bookscategory' => 'Mga aklat',
+	'coll-clear_collection' => 'Hawiin ang aklat',
+	'coll-clear_collection_confirm' => 'Talaga bang nais mong hawiin ng lubusan ang aklat mo?',
+	'coll-clear_collection_tooltip' => 'Tanggalin ang lahat ng mga pahina ng wiki mula sa pangkasalukuyan mong aklat',
+	'coll-help' => 'Tulong',
+	'coll-help_tooltip' => 'Ipakita ang pantulong tunkol sa paglikha ng mga aklat',
+	'coll-helppage' => 'Help:Mga Aklat',
+	'coll-load_collection' => 'Ikarga ang aklat',
+	'coll-load_collection_tooltip' => 'Ikarga ang aklat na ito bilang pangkasalukuyang aklat mo',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pahina|mga pahina}}',
+	'coll-printable_version_pdf' => 'Bersyong PDF',
+	'coll-remove_this_page' => 'Alisin ang pahinang ito mula aklat mo',
+	'coll-remove_page_tooltip' => 'Tanggalan ang pangkasalukuyang pahina ng wiki mula sa aklat mo',
+	'coll-show_collection' => 'Ipakita ang aklat',
+	'coll-show_collection_tooltip' => 'Pindutin upang baguhin/magkargang pababa/umorder ng aklat mo',
+	'coll-not_addable' => 'Hindi maidaragdag ang pahinang ito',
+	'coll-make_suggestions' => 'Magmungkahi ng mga pahina',
+	'coll-make_suggestions_tooltip' => 'Ipakita ang mga mungkahi ayon sa mga pahinang nasa loob ng aklat mo',
+	'coll-suggest_empty' => 'walang laman',
+);
+
+/** Turkish (Türkçe)
+ * @author Joseph
+ * @author Mach
+ * @author Manco Capac
+ * @author Srhat
+ */
+$messages['tr'] = array(
+	'coll-print_export' => 'Yazdır/dışa aktar',
+	'coll-create_a_book' => 'Bir kitap oluştur',
+	'coll-create_a_book_tooltip' => 'Bir kitap veya sayfa derlemesi oluştur',
+	'coll-book_creator' => 'Kitap oluşturucu',
+	'coll-download_as' => '$1 olarak indir',
+	'coll-download_as_tooltip' => 'Bu viki sayfasının bir $1 sürümünü indir',
+	'coll-disable' => 'devre dışı bırak',
+	'coll-book_creator_disable' => 'Kitap oluşturucuyu devre dışı bırak',
+	'coll-book_creator_disable_tooltip' => 'Kitap oluşturucuyu kullanmayı bırak',
+	'coll-add_linked_article' => 'Bağlantılı viki sayfasını kitabınıza ekleyin',
+	'coll-remove_linked_article' => 'Bağlantılı viki sayfasını kitabınızdan çıkarın',
+	'coll-add_category' => 'Bu kategoriyi kitabınıza ekleyin',
+	'coll-add_category_tooltip' => 'Bu kategorideki tüm viki sayfalarını kitabınıza ekleyin',
+	'coll-add_this_page' => 'Bu sayfayı kitabınıza ekleyin',
+	'coll-add_page_tooltip' => 'Bu sayfayı kitabınıza ekleyin',
+	'coll-bookscategory' => 'Viki-kitaplar',
+	'coll-clear_collection' => 'Kitabı temizle',
+	'coll-clear_collection_confirm' => 'Kitabınızı tamamen temizlemeyi istiyor musunuz?',
+	'coll-clear_collection_tooltip' => 'Mevcut kitabınızdaki tüm viki sayfalarını silin',
+	'coll-help' => 'Yardım',
+	'coll-help_tooltip' => 'Kitap oluşturma hakkında yardım göster',
+	'coll-helppage' => 'Help:Kitaplar',
+	'coll-load_collection' => 'Kitabı yükle',
+	'coll-load_collection_tooltip' => 'Bu kitabı varsayılan kitabınız olarak yükleyin',
+	'coll-n_pages' => '$1 {{PLURAL:$1|sayfa|sayfa}}',
+	'coll-printable_version_pdf' => 'PDF sürümü',
+	'coll-remove_this_page' => 'Bu sayfayı kitabınızdan çıkarın',
+	'coll-remove_page_tooltip' => 'Bu sayfayı kitabınızdan çıkarın',
+	'coll-show_collection' => 'Kitabı göster',
+	'coll-show_collection_tooltip' => 'Tıklayıp kitabınızı düzenleyin/indirin/sipariş edin',
+	'coll-not_addable' => 'Sayfa eklenemiyor',
+	'coll-make_suggestions' => 'Sayfa öner',
+	'coll-make_suggestions_tooltip' => 'Kitabınızdaki mevcut sayfalara göre öneriler göster',
+	'coll-suggest_empty' => 'boş',
+);
+
+/** Tatar (Татарча/Tatarça)
+ * @author Ильнар
+ */
+$messages['tt'] = array(
+	'coll-bookscategory' => 'Китаплар',
+);
+
+/** Tatar (Cyrillic script) (Татарча)
+ * @author Ильнар
+ */
+$messages['tt-cyrl'] = array(
+	'coll-print_export' => 'Бастыру/экспорт',
+	'coll-create_a_book' => 'Китап ясау',
+	'coll-create_a_book_tooltip' => 'Китап  яки мәкаләләр җыентыган ясау',
+	'coll-book_creator' => 'Китап ясау',
+	'coll-download_as' => '$1 иттереп алу',
+	'coll-download_as_tooltip' => 'Бу битнең $1-юрамасын алу',
+	'coll-disable' => 'ябарга',
+	'coll-book_creator_disable' => 'Китап төзүчене ябу',
+	'coll-book_creator_disable_tooltip' => 'Китап төзүчене ябыгыз',
+	'coll-add_linked_article' => 'Бәйләнгән вики-битне сезнең китапка кую',
+	'coll-remove_linked_article' => 'Бәйләнгән вики-битне сезнең китаптан алу',
+	'coll-add_category' => 'Әлеге төркемне сезнең китапка кую',
+	'coll-add_category_tooltip' => 'Әлеге төркемнең вики-битләрен сезнең китапка кую',
+	'coll-add_this_page' => 'Әлеге битне сезнең китапка кую',
+	'coll-add_page_tooltip' => 'Әлеге вики-битне китапка кую',
+	'coll-bookscategory' => 'Китаплар',
+	'coll-clear_collection' => 'Китапны чистарту',
+	'coll-clear_collection_confirm' => 'Сез дөрестән дә барлык китапны бетермәкче буласызмы?',
+	'coll-clear_collection_tooltip' => 'Барлык вики-битләрне бетерегез',
+	'coll-help' => 'Ярдәм',
+	'coll-help_tooltip' => 'Китап ясау буенча ярдәмче битне карау',
+	'coll-helppage' => 'Help:Китаплар',
+	'coll-load_collection' => 'Китапны йөкләү',
+	'coll-load_collection_tooltip' => 'Яңа китапны әлегесе кебек йөкләргә',
+	'coll-n_pages' => '$1 {{PLURAL:$1|бит|битләр}}',
+	'coll-printable_version_pdf' => 'PDF-юрама',
+	'coll-remove_this_page' => 'Бу битне сезнең китаптан бетерергә',
+	'coll-remove_page_tooltip' => 'Әлеге вики-битне китаптан бетерергә',
+	'coll-show_collection' => 'Китапны күрсәтү',
+	'coll-show_collection_tooltip' => 'Китапны ясау/йөкләү/заказ бирү өчен басыгыз',
+	'coll-not_addable' => 'Бу бит йөкләнә алмый',
+	'coll-make_suggestions' => 'Тәкъдим ителгән битләр',
+	'coll-make_suggestions_tooltip' => 'Минем китапта булган җөмләләрне күрсәтергә',
+	'coll-suggest_empty' => 'буш',
+);
+
+/** Ukrainian (Українська)
+ * @author AS
+ * @author Ahonc
+ * @author Aleksandrit
+ * @author Alex Khimich
+ * @author NickK
+ * @author Prima klasy4na
+ */
+$messages['uk'] = array(
+	'coll-print_export' => 'Друк/експорт',
+	'coll-create_a_book' => 'Створення книги',
+	'coll-create_a_book_tooltip' => 'Створити книгу або колекцію сторінок',
+	'coll-book_creator' => 'Створення книги',
+	'coll-download_as' => 'Завантажити як $1',
+	'coll-download_as_tooltip' => 'Завантажити $1 версію цієї вікі-сторінки',
+	'coll-disable' => 'вимкнути',
+	'coll-book_creator_disable' => 'Вимкнути створення книжок',
+	'coll-book_creator_disable_tooltip' => 'Припинити використання можливості створення книги',
+	'coll-add_linked_article' => "Додати зв'язану вікі-сторінку до вашої книги",
+	'coll-remove_linked_article' => 'Вилучити поточну вікі-сторінку з вашої книги',
+	'coll-add_category' => 'Додати цю категорію до вашої книги',
+	'coll-add_category_tooltip' => 'Додати всі вікі-сторінки цієї категорії до вашої книги',
+	'coll-add_this_page' => 'Додати цю сторінку до вашої книги',
+	'coll-add_page_tooltip' => 'Додати поточну вікі-сторінку до вашої книги',
+	'coll-bookscategory' => 'Книги',
+	'coll-clear_collection' => 'Очистити книгу',
+	'coll-clear_collection_confirm' => 'Ви дійсно бажаєте повністю очистити вашу книгу?',
+	'coll-clear_collection_tooltip' => 'Вилучити всі вікі-сторінки з вашої поточної книги',
+	'coll-help' => 'Довідка',
+	'coll-help_tooltip' => 'Показати довідку про створення книг',
+	'coll-helppage' => 'Help:Книги',
+	'coll-load_collection' => 'Завантажити книгу',
+	'coll-load_collection_tooltip' => 'Завантажити цю книгу як вашу поточну книгу',
+	'coll-n_pages' => '$1 {{PLURAL:$1|сторінка|сторінки|сторінок}}',
+	'coll-printable_version_pdf' => 'PDF-версія',
+	'coll-remove_this_page' => 'Вилучити цю сторінку з вашої книги',
+	'coll-remove_page_tooltip' => 'Вилучити поточну вікі-сторінку з вашої книги',
+	'coll-show_collection' => 'Показати книгу',
+	'coll-show_collection_tooltip' => 'Натисніть, щоб редагувати/завантажити/замовити вашу книгу',
+	'coll-not_addable' => 'Ця сторінка не може бути додана',
+	'coll-make_suggestions' => 'Запропонувати сторінки',
+	'coll-make_suggestions_tooltip' => 'Показати пропозиції, засновані на сторінках у вашій книзі',
+	'coll-suggest_empty' => 'порожня',
+);
+
+/** Vèneto (Vèneto)
+ * @author Candalua
+ */
+$messages['vec'] = array(
+	'coll-print_export' => 'Stanpa/esporta',
+	'coll-create_a_book' => 'Crea un libro',
+	'coll-create_a_book_tooltip' => 'Crèa un libro o na racolta de articoli',
+	'coll-book_creator' => 'Creador de libri',
+	'coll-download_as' => 'Descarga come $1',
+	'coll-download_as_tooltip' => 'Descarga na version $1 de sta pagina wiki',
+	'coll-disable' => 'disativa',
+	'coll-book_creator_disable' => 'Destaca el creador de libri',
+	'coll-book_creator_disable_tooltip' => 'Desmeti de doparar el creador de libri',
+	'coll-add_linked_article' => 'Zonta al to libro le pagine ligà a sta qua',
+	'coll-remove_linked_article' => 'Cava dal to libro le pagine ligà a sta qua',
+	'coll-add_category' => 'Zonta sta categoria al to libro',
+	'coll-add_category_tooltip' => 'Zonta tute le pagine wiki de sta categoria al to libro',
+	'coll-add_this_page' => 'Zonta sta pagina al to libro',
+	'coll-add_page_tooltip' => 'Zonta sta pagina wiki al to libro',
+	'coll-bookscategory' => 'Libri',
+	'coll-clear_collection' => 'Desvòda libro',
+	'coll-clear_collection_confirm' => 'Vuto dalbòn netar conpletamente el to libro?',
+	'coll-clear_collection_tooltip' => 'Cava tute le pagine wiki dal to libro atuale',
+	'coll-help' => 'Jùteme',
+	'coll-help_tooltip' => 'Mostra le pagine de ajuto su la creassion dei libri',
+	'coll-helppage' => 'Help:Libri',
+	'coll-load_collection' => 'Carga libro',
+	'coll-load_collection_tooltip' => 'Carga sto libro come el to libro atuale',
+	'coll-n_pages' => '$1 {{PLURAL:$1|pàxena|pàxene}}',
+	'coll-printable_version_pdf' => 'Versiòn PDF',
+	'coll-remove_this_page' => 'Cava sta pagina dal to libro',
+	'coll-remove_page_tooltip' => 'Cava sta pagina wiki dal to libro',
+	'coll-show_collection' => 'Mostra libro',
+	'coll-show_collection_tooltip' => 'Struca el mouse par modificar, descargar o ordinar el to libro',
+	'coll-not_addable' => 'Sta pagina no se pol zontarla',
+	'coll-make_suggestions' => 'Sugerissi pagine',
+	'coll-make_suggestions_tooltip' => 'Fame védar dei sugerimenti basà su le pagine del me libro',
+	'coll-suggest_empty' => 'vodo',
+);
+
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'coll-create_a_book' => 'Säta kirj',
+	'coll-bookscategory' => 'Kirjad',
+	'coll-help' => 'Abu',
+	'coll-helppage' => 'Help:Kirjad',
+	'coll-printable_version_pdf' => 'PDF-versii',
+	'coll-suggest_empty' => "pall'az",
+);
+
+/** Vietnamese (Tiếng Việt)
+ * @author Minh Nguyen
+ * @author Vinhtantran
+ */
+$messages['vi'] = array(
+	'coll-print_export' => 'In/xuất ra',
+	'coll-create_a_book' => 'Tạo một quyển sách',
+	'coll-create_a_book_tooltip' => 'Tạo một cuốn sách hoặc sưu tập trang',
+	'coll-book_creator' => 'Bộ tạo sách',
+	'coll-download_as' => 'Tải về dưới dạng $1',
+	'coll-download_as_tooltip' => 'Tải về một phiên bản $1 của trang wiki này',
+	'coll-disable' => 'tắt',
+	'coll-book_creator_disable' => 'Tắt bộ tạo sách',
+	'coll-book_creator_disable_tooltip' => 'Ngừng sử dụng bộ tạo sách',
+	'coll-add_linked_article' => 'Thêm trang wiki được liên kết vào quyển sách',
+	'coll-remove_linked_article' => 'Bỏ trang wiki được liên kết khỏi quyển sách',
+	'coll-add_category' => 'Thêm thể loại này vào cuốn sách',
+	'coll-add_category_tooltip' => 'Thêm vào sách các trang wiki thuộc thể loại được liên kết',
+	'coll-add_this_page' => 'Thêm trang này vào cuốn sách',
+	'coll-add_page_tooltip' => 'Thêm trang wiki này vào sách',
+	'coll-bookscategory' => 'Sách',
+	'coll-clear_collection' => 'Xóa sách',
+	'coll-clear_collection_confirm' => 'Bạn có chắc muốn xóa hẳn sách của bạn?',
+	'coll-clear_collection_tooltip' => 'Bỏ tất cả trang wiki ra khỏi sách này',
+	'coll-help' => 'Trợ giúp',
+	'coll-help_tooltip' => 'Xem giúp đỡ về việc tạo sách',
+	'coll-helppage' => 'Help:Sách',
+	'coll-load_collection' => 'Mở sách',
+	'coll-load_collection_tooltip' => 'Đặt sách này làm sách hiện hành',
+	'coll-n_pages' => '$1 {{PLURAL:$1|trang|trang}}',
+	'coll-printable_version_pdf' => 'Bản PDF',
+	'coll-remove_this_page' => 'Xóa trang này ra khỏi cuốn sách',
+	'coll-remove_page_tooltip' => 'Bỏ trang wiki này ra khỏi sách',
+	'coll-show_collection' => 'Xem sách',
+	'coll-show_collection_tooltip' => 'Nhấn chuột để sửa đổi, tải về, hay đặt sách của bạn',
+	'coll-not_addable' => 'Trang này không thêm được',
+	'coll-make_suggestions' => 'Đề nghị trang',
+	'coll-make_suggestions_tooltip' => 'Hiện đề nghị dựa trên các trang trong cuốn sách',
+	'coll-suggest_empty' => 'trống',
+);
+
+/** Volapük (Volapük)
+ * @author Malafaya
+ * @author Smeira
+ */
+$messages['vo'] = array(
+	'coll-create_a_book' => 'Jafön buki',
+	'coll-create_a_book_tooltip' => 'Jafön buki u konleti padas',
+	'coll-download_as' => 'Donükön as $1',
+	'coll-add_category' => 'Läükön kladi at buke olik',
+	'coll-bookscategory' => 'Buks',
+	'coll-clear_collection' => 'Vagükön buki',
+	'coll-clear_collection_confirm' => 'Vilol-li jenöfo vagükön buki olik lölöfiko?',
+	'coll-help' => 'Yuf',
+	'coll-helppage' => 'Help:Buks',
+	'coll-load_collection' => 'Lodön buki',
+	'coll-n_pages' => '{{PLURAL:$1|pad|pads}} $1',
+	'coll-printable_version_pdf' => 'fomam-PDF',
+	'coll-show_collection' => 'Jonön buki',
+	'coll-suggest_empty' => 'vagik',
+);
+
+/** Yiddish (ייִדיש)
+ * @author Imre
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'coll-create_a_book' => 'שאַפֿן אַ בוך',
+	'coll-download_as' => 'אַראָפלאָדן אַלס $1',
+	'coll-download_as_tooltip' => 'אראָפלאָדן אַ $1 ווערסיע פון דעם וויקיפּעדיע בלאַט',
+	'coll-disable' => 'אָפאַקטיוויזירן',
+	'coll-bookscategory' => 'ביכער',
+	'coll-help' => 'הילף',
+	'coll-n_pages' => '$1 {{PLURAL:$1|בלאַט|בלעטער}}',
+	'coll-suggest_empty' => 'ליידיק',
+);
+
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'coll-print_export' => 'Ìtẹ́síìwé/ìkójáde',
+	'coll-create_a_book' => 'Dá ìwé',
+	'coll-create_a_book_tooltip' => 'Dá ìwé tàbí ìkójọ ojúewé',
+	'coll-book_creator' => 'Olùdá ìwé',
+	'coll-download_as' => 'Rùsílẹ̀ gẹ́gẹ́ bíi $1',
+	'coll-download_as_tooltip' => 'Rùsílẹ̀ àtẹ́jáde $1 ojúewé wiki yìí',
+	'coll-disable' => 'ìdálẹ́kun',
+	'coll-book_creator_disable' => 'Ìdálẹ́kun olùdá ìwé',
+	'coll-book_creator_disable_tooltip' => 'Jáwọ́ lílo olùdá ìwé',
+	'coll-add_linked_article' => 'Ṣàfikún ojúewé wiki jíjápọ̀ mọ́ ìwé yín',
+	'coll-add_category' => 'Ṣàfikún ẹ̀ka yìí mọ́ ìwé yín',
+	'coll-add_this_page' => 'Ṣàfikún ojúewé yìí mọ́ ìwé yín',
+	'coll-bookscategory' => 'Àwọn ìwé',
+	'coll-help' => 'Ìrànwọ́',
+	'coll-help_tooltip' => 'Àfihàn ìránwọ́ nípa dídá àwọn ìwé',
+	'coll-helppage' => 'Help:Àwọn ìwé',
+	'coll-load_collection' => 'Gbé ìwé síta',
+	'coll-load_collection_tooltip' => 'Gbé ìwé yìí síta bíi ìwé yín lọ́wọ́lọ́wọ́',
+	'coll-n_pages' => '{{PLURAL:$1|ojúewé|àwọn ojúewé}} $1',
+	'coll-printable_version_pdf' => 'Àtẹ̀jáde PDF',
+	'coll-remove_this_page' => 'Ẹ yọ ojúewé yìí kúrò nínú ìwé yín',
+	'coll-remove_page_tooltip' => 'Ẹ yọ ojúewé wiki lọ́wọ́lọ́wó yìí kúrò nínú ìwé yín',
+	'coll-show_collection' => 'Àfihàn ìwé',
+	'coll-not_addable' => 'Ojúewé yìí kò ṣe é ṣàfikún',
+	'coll-make_suggestions' => 'Ìdámọ́ràn ojúewé',
+	'coll-make_suggestions_tooltip' => 'Àfihàn àwọn ìdámọ̀ràn nípa àwọn ojúewé inú ìwé yín',
+);
+
+/** Cantonese (粵語) */
+$messages['yue'] = array(
+	'coll-create_a_book' => '整一本書',
+	'coll-download_as' => '下載做$1',
+	'coll-add_category' => '加分類',
+	'coll-bookscategory' => '書',
+	'coll-clear_collection' => '清書',
+	'coll-clear_collection_confirm' => '你係咪真係想完全噉清晒你本書?',
+	'coll-helppage' => 'Help:書',
+	'coll-load_collection' => '載入書',
+	'coll-n_pages' => '$1版',
+	'coll-printable_version_pdf' => 'PDF版',
+	'coll-show_collection' => '顯示書',
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Bencmq
+ * @author Liangent
+ * @author Wmr89502270
+ * @author Xiaomingyan
+ */
+$messages['zh-hans'] = array(
+	'coll-print_export' => '打印/导出',
+	'coll-create_a_book' => '创建图书',
+	'coll-create_a_book_tooltip' => '创建图书或页面集',
+	'coll-book_creator' => '图书创建器',
+	'coll-download_as' => '下载为$1',
+	'coll-download_as_tooltip' => '下载本wiki页面的$1版本',
+	'coll-disable' => '停用',
+	'coll-book_creator_disable' => '停用图书创建器',
+	'coll-book_creator_disable_tooltip' => '停止使用图书创建器',
+	'coll-add_linked_article' => '添加相关wiki页面至你的图书',
+	'coll-remove_linked_article' => '从你的图书中删除相关wiki页面',
+	'coll-add_category' => '添加本分类至你的图书',
+	'coll-add_category_tooltip' => '添加本分类中的所有wiki页面至你的图书',
+	'coll-add_this_page' => '添加本页面至你的图书',
+	'coll-add_page_tooltip' => '添加本wiki页面至你的图书',
+	'coll-bookscategory' => '图书',
+	'coll-clear_collection' => '清空图书',
+	'coll-clear_collection_confirm' => '你真的想要完全清空你的图书?',
+	'coll-clear_collection_tooltip' => '删除你的图书中的所有wiki页面',
+	'coll-help' => '帮助',
+	'coll-help_tooltip' => '显示关于创建图书的帮助',
+	'coll-helppage' => 'Help:图书',
+	'coll-load_collection' => '载入图书',
+	'coll-load_collection_tooltip' => '载入本图书作为你的图书',
+	'coll-n_pages' => '$1个页面',
+	'coll-printable_version_pdf' => 'PDF版本',
+	'coll-remove_this_page' => '从你的图书中删除本页面',
+	'coll-remove_page_tooltip' => '从你的图书中删除本wiki页面',
+	'coll-show_collection' => '显示图书',
+	'coll-show_collection_tooltip' => '单击此处编辑/下载/订购你的图书',
+	'coll-not_addable' => '无法添加本页面',
+	'coll-make_suggestions' => '建议页面',
+	'coll-make_suggestions_tooltip' => '显示根据你的图书中的页面生成的建议',
+	'coll-suggest_empty' => '空',
+);
+
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Alexsh
+ * @author Anakmalaysia
+ * @author Liangent
+ * @author Xiaomingyan
+ */
+$messages['zh-hant'] = array(
+	'coll-print_export' => '列印/匯出',
+	'coll-create_a_book' => '建立圖書',
+	'coll-create_a_book_tooltip' => '建立圖書或頁面集合',
+	'coll-book_creator' => '圖書創建器',
+	'coll-download_as' => '下載為 $1',
+	'coll-download_as_tooltip' => '下載這個wiki頁面的$1版本',
+	'coll-disable' => '停用',
+	'coll-book_creator_disable' => '禁用圖書創建器',
+	'coll-book_creator_disable_tooltip' => '停止使用圖書創建器',
+	'coll-add_linked_article' => '添加相關維基頁面至你的圖書',
+	'coll-remove_linked_article' => '從你的圖書中刪除相關維基頁面',
+	'coll-add_category' => '將此分類增加到圖書',
+	'coll-add_category_tooltip' => '將這個分類中的所有維基頁面加入您的圖書中',
+	'coll-add_this_page' => '將此頁面增加到圖書',
+	'coll-add_page_tooltip' => '將當前的維基頁面加入您的圖書中',
+	'coll-bookscategory' => '圖書',
+	'coll-clear_collection' => '清除記錄',
+	'coll-clear_collection_confirm' => '真的要完全清除?',
+	'coll-clear_collection_tooltip' => '從您目前的圖書中移除所有維基頁面',
+	'coll-help' => '幫助',
+	'coll-help_tooltip' => '顯示關於建立圖書的說明',
+	'coll-helppage' => 'Help:圖書',
+	'coll-load_collection' => '載入圖書',
+	'coll-load_collection_tooltip' => '將這本圖書加載為您目前的圖書',
+	'coll-n_pages' => '$1個頁面',
+	'coll-printable_version_pdf' => 'PDF 版本',
+	'coll-remove_this_page' => '從圖書中移除此頁面',
+	'coll-remove_page_tooltip' => '將目前維基頁面從您的圖書中移除',
+	'coll-show_collection' => '顯示圖書',
+	'coll-show_collection_tooltip' => '點擊此處編輯、下載或訂購圖書',
+	'coll-not_addable' => '無法加載此頁',
+	'coll-make_suggestions' => '建議頁面',
+	'coll-make_suggestions_tooltip' => '根據您圖書中的頁面顯示建議',
+	'coll-suggest_empty' => '空',
+);
+

Deleted: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/collection/json2.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/collection/json2.js	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/collection/json2.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,273 +0,0 @@
-/*
-	json2.js
-	2008-01-17
-
-	Public Domain
-
-	No warranty expressed or implied. Use at your own risk.
-
-	See http://www.JSON.org/js.html
-
-	This file creates a global JSON object containing two methods:
-
-		JSON.stringify(value, whitelist)
-			value	   any JavaScript value, usually an object or array.
-
-			whitelist   an optional array prameter that determines how object
-						values are stringified.
-
-			This method produces a JSON text from a JavaScript value.
-			There are three possible ways to stringify an object, depending
-			on the optional whitelist parameter.
-
-			If an object has a toJSON method, then the toJSON() method will be
-			called. The value returned from the toJSON method will be
-			stringified.
-
-			Otherwise, if the optional whitelist parameter is an array, then
-			the elements of the array will be used to select members of the
-			object for stringification.
-
-			Otherwise, if there is no whitelist parameter, then all of the
-			members of the object will be stringified.
-
-			Values that do not have JSON representaions, such as undefined or
-			functions, will not be serialized. Such values in objects will be
-			dropped; in arrays will be replaced with null.
-			JSON.stringify(undefined) returns undefined. Dates will be
-			stringified as quoted ISO dates.
-
-			Example:
-
-			var text = JSON.stringify(['e', {pluribus: 'unum'}]);
-			// text is '["e",{"pluribus":"unum"}]'
-
-		JSON.parse(text, filter)
-			This method parses a JSON text to produce an object or
-			array. It can throw a SyntaxError exception.
-
-			The optional filter parameter is a function that can filter and
-			transform the results. It receives each of the keys and values, and
-			its return value is used instead of the original value. If it
-			returns what it received, then structure is not modified. If it
-			returns undefined then the member is deleted.
-
-			Example:
-
-			// Parse the text. If a key contains the string 'date' then
-			// convert the value to a date.
-
-			myData = JSON.parse(text, function (key, value) {
-				return key.indexOf('date') >= 0 ? new Date(value) : value;
-			});
-
-	This is a reference implementation. You are free to copy, modify, or
-	redistribute.
-
-	Use your own copy. It is extremely unwise to load third party
-	code into your pages.
-*/
-
-/*jslint evil: true */
-
-/*global JSON */
-
-/*members "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-	charCodeAt, floor, getUTCDate, getUTCFullYear, getUTCHours,
-	getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, length,
-	parse, propertyIsEnumerable, prototype, push, replace, stringify, test,
-	toJSON, toString
-*/
-
-if (!this.JSON) {
-
-	JSON = function () {
-
-		function f(n) {	// Format integers to have at least two digits.
-			return n < 10 ? '0' + n : n;
-		}
-
-		Date.prototype.toJSON = function () {
-
-// Eventually, this method will be based on the date.toISOString method.
-
-			return this.getUTCFullYear()   + '-' +
-				 f(this.getUTCMonth() + 1) + '-' +
-				 f(this.getUTCDate())	  + 'T' +
-				 f(this.getUTCHours())	 + ':' +
-				 f(this.getUTCMinutes())   + ':' +
-				 f(this.getUTCSeconds())   + 'Z';
-		};
-
-
-		var m = {	// table of character substitutions
-			'\b': '\\b',
-			'\t': '\\t',
-			'\n': '\\n',
-			'\f': '\\f',
-			'\r': '\\r',
-			'"' : '\\"',
-			'\\': '\\\\'
-		};
-
-		function stringify(value, whitelist) {
-			var a,		  // The array holding the partial texts.
-				i,		  // The loop counter.
-				k,		  // The member key.
-				l,		  // Length.
-				r = /["\\\x00-\x1f\x7f-\x9f]/g,
-				v;		  // The member value.
-
-			switch (typeof value) {
-			case 'string':
-
-// If the string contains no control characters, no quote characters, and no
-// backslash characters, then we can safely slap some quotes around it.
-// Otherwise we must also replace the offending characters with safe sequences.
-
-				return r.test(value) ?
-					'"' + value.replace(r, function (a) {
-						var c = m[a];
-						if (c) {
-							return c;
-						}
-						c = a.charCodeAt();
-						return '\\u00' + Math.floor(c / 16).toString(16) +
-												   (c % 16).toString(16);
-					}) + '"' :
-					'"' + value + '"';
-
-			case 'number':
-
-// JSON numbers must be finite. Encode non-finite numbers as null.
-
-				return isFinite(value) ? String(value) : 'null';
-
-			case 'boolean':
-			case 'null':
-				return String(value);
-
-			case 'object':
-
-// Due to a specification blunder in ECMAScript,
-// typeof null is 'object', so watch out for that case.
-
-				if (!value) {
-					return 'null';
-				}
-
-// If the object has a toJSON method, call it, and stringify the result.
-
-				if (typeof value.toJSON === 'function') {
-					return stringify(value.toJSON());
-				}
-				a = [];
-				if (typeof value.length === 'number' &&
-						!(value.propertyIsEnumerable('length'))) {
-
-// The object is an array. Stringify every element. Use null as a placeholder
-// for non-JSON values.
-
-					l = value.length;
-					for (i = 0; i < l; i += 1) {
-						a.push(stringify(value[i], whitelist) || 'null');
-					}
-
-// Join all of the elements together and wrap them in brackets.
-
-					return '[' + a.join(',') + ']';
-				}
-				if (whitelist) {
-
-// If a whitelist (array of keys) is provided, use it to select the components
-// of the object.
-
-					l = whitelist.length;
-					for (i = 0; i < l; i += 1) {
-						k = whitelist[i];
-						if (typeof k === 'string') {
-							v = stringify(value[k], whitelist);
-							if (v) {
-								a.push(stringify(k) + ':' + v);
-							}
-						}
-					}
-				} else {
-
-// Otherwise, iterate through all of the keys in the object.
-
-					for (k in value) {
-						if (typeof k === 'string') {
-							v = stringify(value[k], whitelist);
-							if (v) {
-								a.push(stringify(k) + ':' + v);
-							}
-						}
-					}
-				}
-
-// Join all of the member texts together and wrap them in braces.
-
-				return '{' + a.join(',') + '}';
-			}
-		}
-
-		return {
-			stringify: stringify,
-			parse: function (text, filter) {
-				var j;
-
-				function walk(k, v) {
-					var i, n;
-					if (v && typeof v === 'object') {
-						for (i in v) {
-							if (Object.prototype.hasOwnProperty.apply(v, [i])) {
-								n = walk(i, v[i]);
-								if (n !== undefined) {
-									v[i] = n;
-								}
-							}
-						}
-					}
-					return filter(k, v);
-				}
-
-
-// Parsing happens in three stages. In the first stage, we run the text against
-// regular expressions that look for non-JSON patterns. We are especially
-// concerned with '()' and 'new' because they can cause invocation, and '='
-// because it can cause mutation. But just to be safe, we want to reject all
-// unexpected forms.
-
-// We split the first stage into 4 regexp operations in order to work around
-// crippling inefficiencies in IE's and Safari's regexp engines. First we
-// replace all backslash pairs with '@' (a non-JSON character). Second, we
-// replace all simple value tokens with ']' characters. Third, we delete all
-// open brackets that follow a colon or comma or that begin the text. Finally,
-// we look to see that the remaining characters are only whitespace or ']' or
-// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
-
-				if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@').
-replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
-replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-// In the second stage we use the eval function to compile the text into a
-// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
-// in JavaScript: it can begin a block or an object literal. We wrap the text
-// in parens to eliminate the ambiguity.
-
-					j = eval('(' + text + ')');
-
-// In the optional third stage, we recursively walk the new structure, passing
-// each name/value pair to a filter function for possible transformation.
-
-					return typeof filter === 'function' ? walk('', j) : j;
-				}
-
-// If the text is not JSON parseable, then a SyntaxError is thrown.
-
-				throw new SyntaxError('parseJSON');
-			}
-		};
-	}();
-}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/Open_book.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/Open_book.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/collapse.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/collapse.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/disabled.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/disabled.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/down.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/down.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/expand.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/expand.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/green-button-back.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/green-button-back.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/red-button-back.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/red-button-back.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/remove.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/remove.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/show.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/show.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-accept.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-accept.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-add.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-add.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-book_open.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-book_open.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-cancel.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-cancel.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-help.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-help.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-remove.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-remove.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-wand.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/silk-wand.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/trans.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/trans.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/up.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/images/up.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.css
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.css	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.css	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,156 @@
+#collectionpopup {
+	position: absolute;
+	padding: 4px;
+	border: 1px solid #000;
+	background-color: #fea;
+	z-index: 9999;
+	display: inline;
+	font-size: 10pt;
+}
+
+/*
+ * Special page
+ */
+
+.collection-column {
+	float: left;
+	width: 47%;
+}
+
+.collection-column-left {
+	margin-right: 5%;
+}
+
+.collection-column-right-box {
+	margin-bottom: 10px;
+	padding: 10px;
+	border: 1px solid #aaa;
+	background-color: #f9f9f9;
+}
+
+/* Input follows user direction */
+#mw-collection-title-form input {
+	direction: ltr;
+}
+
+.collection-create-chapter-links {
+	text-align: center;
+	padding: 2px;
+	margin-top: 20px;
+	margin-bottom: 2px;
+	border: 1px solid #aaa;
+	background-color: #f9f9f9;
+}
+
+.collection-create-chapter-links a {
+	margin: 0 1em;
+}
+
+.collection-create-chapter-list {
+	padding: 10px 20px;
+	border: 1px solid rgb(170, 170, 170);
+}
+
+.collection-create-chapter-list-text {
+	text-align: center;
+	margin-bottom: 10px;
+}
+
+.collection-create-chapter-list ul {
+	list-style: none;
+	margin-left: 0;
+}
+
+.collection-create-chapter-list .chapter {
+	margin-top:0.3em;
+}
+
+.collection-create-chapter-list  .article .title {
+	margin-left: 1em;
+}
+
+.collection-button {
+	float: left;
+	padding: 0 10px;
+	border: 1px solid #777;
+	-webkit-border-radius: 8px;
+	-moz-border-radius: 8px;
+}
+
+.collection-button.ok {
+	/* @embed */
+	background: url(../images/green-button-back.png) center no-repeat;
+	margin-right: 10px;
+}
+
+.collection-button.cancel {
+	/* @embed */
+	background: url(../images/red-button-back.png) center no-repeat;
+}
+
+.collection-button a {
+	display: block;
+	color: #fff;
+	font-size: 1.1em;
+	font-weight: bold;
+	line-height: 1.8em;
+}
+
+.collection-button a:hover {
+	text-decoration: none;
+}
+
+/*
+ * Creator box
+ */
+
+.collection-creatorbox {
+	text-align: left;
+	margin: 10px 0;
+	padding: 5px 10px;
+	border: 1px solid #aaa;
+	background-color: #f9f9ff;
+}
+
+.collection-creatorbox-row {
+	margin-left: 90px;
+	margin-bottom: 0;
+}
+
+.collection-creatorbox-book {
+	float: left;
+}
+
+/* Trivial but nicer for the browsers that support it */
+.rtl .collection-creatorbox-book {
+	--ms-transform: scaleX(-1);
+	-moz-transform: scaleX(-1);
+	-o-transform: scaleX(-1);
+	-webkit-transform: scaleX(-1);
+	transform: scaleX(-1);
+}
+
+.collection-creatorbox-title {
+	font-weight: bold;
+	font-size: 1.2em;
+}
+
+.collection-creatorbox-iconlink {
+	margin-left: 10px;
+}
+
+.collection-creatorbox-row div {
+	float: right;
+}
+
+.collection-creatorbox-row img {
+	vertical-align: text-bottom;
+}
+
+#collection-suggest-add,
+#collection-order-button,
+#collection-download-button,
+#collection-save-button,
+#collection-save-input {
+	float: right;
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/bookcreator.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,192 @@
+/*
+ * Collection Extension for MediaWiki
+ *
+ * Copyright (C) PediaPress GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+(function($) {
+
+$(function() {
+
+	var script_url = wgServer + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript);
+
+	function save_collection(collection) {
+		$.jStorage.set('collection', collection);
+	}
+
+	window.wfCollectionSave = save_collection;
+
+	function refreshBookCreatorBox(hint, oldid) {
+		$.getJSON(script_url, {
+			'action': 'ajax',
+			'rs': 'wfAjaxCollectionGetBookCreatorBoxContent',
+			'rsargs[]': [hint, oldid, wgPageName]
+		}, function(result) {
+			$('#coll-book_creator_box').html(result.html);
+		});
+	}
+
+	function collectionCall(func, args) {
+	  var hint = args.shift();
+		$.post(script_url, {
+			'action': 'ajax',
+			'rs': 'wfAjaxCollection' + func,
+			'rsargs[]': args
+		}, function(result) {
+			var oldid = null;
+			if (args.length == 3) {
+				oldid = args[2];
+			}
+			refreshBookCreatorBox(hint, oldid);
+			save_collection(result.collection);
+		}, 'json');
+	}
+
+	window.collectionCall = collectionCall; // public
+
+
+	var mouse_pos = {};
+	var popup_div = null;
+	var addremove_link = null;
+	var visible = false;
+	var show_soon_timeout = null;
+	var get_data_xhr = null;
+	var current_link = null;
+	var title = null;
+
+	function createDiv() {
+		addremove_link = $('<a href="javascript:void(0)" />');
+		popup_div = $('<div id="collectionpopup" />');
+		popup_div.append(addremove_link);
+		$('body').append(popup_div);
+		popup_div.hide();
+	}
+
+	function addremove_article(action, title) {
+		$.post(script_url, {
+			'action': 'ajax',
+			'rs': 'wfAjaxCollection' + action.charAt(0).toUpperCase() + action.slice(1) + 'Article',
+			'rsargs[]': [0, title, '']
+		}, function(result) {
+			hide();
+			refreshBookCreatorBox(null, null);
+			save_collection(result.collection);
+		}, 'json');
+	}
+
+	function show(link) {
+		if (visible) {
+			return;
+		}
+		current_link = link;
+		title = link.attr('title');
+		link.attr('title', ''); // disable default browser tooltip
+		show_soon_timeout = setTimeout(function() {
+			get_data_xhr = $.post(script_url, {
+				'action': 'ajax',
+				'rs': 'wfAjaxCollectionGetPopupData',
+				'rsargs[]': [title]
+			}, function(result) {
+				visible = true;
+				var img = $('<img />').attr({src: result.img, alt: ''});
+				addremove_link
+					.text('\u00a0' + result.text)
+					.prepend(img)
+					.unbind('click')
+					.click(function(e) { addremove_article(result.action, result.title); });
+				popup_div
+					.css({left: mouse_pos.x + 2 + 'px',
+								top: mouse_pos.y + 2 + 'px'})
+					.show();
+			}, 'json');
+		}, 300);
+	}
+
+	function cancel() {
+		if (current_link && title) {
+			current_link.attr('title', title);
+		}
+		if (show_soon_timeout) {
+			clearTimeout(show_soon_timeout);
+			show_soon_timeout = null;
+		}
+		if (get_data_xhr) {
+			get_data_xhr.abort();
+			get_data_xhr = null;
+		}
+	}
+
+	function hide() {
+		cancel();
+		if (!visible) {
+			return;
+		}
+		visible = false;
+		popup_div.hide();
+	}
+
+	function is_inside(x, y, left, top, width, height) {
+		var fuzz = 5;
+		return x + fuzz >= left && x - fuzz <= left + width
+			&& y + fuzz >= top && y - fuzz <= top + height;
+	}
+
+	function check_popup_hide() {
+		if (!visible) {
+			return;
+		}
+		var pos = popup_div.offset();
+		if (!is_inside(mouse_pos.x, mouse_pos.y,
+							 pos.left, pos.top, popup_div.width(), popup_div.height())) {
+			hide();
+		}
+	}
+
+	$(document).mousemove(function(e) {
+		mouse_pos.x = e.pageX;
+		mouse_pos.y = e.pageY;
+	});
+	setInterval(check_popup_hide, 300);
+	createDiv();
+	var prefix = wgArticlePath.replace(/\$1/, '');
+	$('#bodyContent '
+		+ 'a[href^=' + prefix + ']' // URL starts with prefix of wgArticlePath
+		+ ':not(a[href~="index.php"])' // URL doesn't contain index.php (simplification!)
+		+ '[title!=]' // title attribute is not empty
+		+ '[rel!=nofollow]'
+		+ ':not(.external)'
+		+ ':not(.internal)'
+		+ ':not(.sortheader)'
+		+ ':not([accesskey])'
+		+ ':not(.nopopup)'
+	).each(function(i, link) {
+		if (this.onmousedown) {
+			return;
+		}
+		var $this = $(this);
+		if (!$this.attr('title') || $this.attr('title').indexOf(':') != -1) { // title doesn't contain ":" (simplification!)
+			return;
+		}
+		if ($this.parents('.nopopups').length) {
+			return;
+		}
+		$this.hover(function() { show($this); }, cancel);
+	});
+});
+
+})(jQuery);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/check_load_from_localstorage.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/check_load_from_localstorage.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/check_load_from_localstorage.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,37 @@
+(function($) {
+
+var script_url = wgServer + ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript);
+
+function count_articles(items) {
+	var count = 0;
+	return count;
+}
+
+$(function() {
+	var c = $.jStorage.get('collection');
+	if (c) {
+		var num_pages = 0;
+		for (var i = 0; i < c.items.length; i++) {
+			if (c.items[i]['type'] == 'article') {
+				num_pages++;
+			}
+		}
+		if (num_pages) {
+			var txt = collection_dialogtxt;
+			txt = txt.replace(/%TITLE%/, c.title ? '("' + c.title + '")' : '');
+			txt = txt.replace(/%NUMPAGES%/, num_pages);
+			if (confirm(txt)) {
+				$.post(script_url, {
+					'action': 'ajax',
+					'rs': 'wfAjaxPostCollection',
+					'rsargs[]': [JSON.stringify(c)]
+				}, function(result) {
+					window.location.href = result.redirect_url;
+				}, 'json');
+			}
+		}
+	}
+});
+ 
+})(jQuery);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/collection.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/collection.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/collection.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,239 @@
+/*
+ * Collection Extension for MediaWiki
+ *
+ * Copyright (C) PediaPress GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+(function($) {
+
+/******************************************************************************/
+
+var requiredVersion = '1.5';
+
+/******************************************************************************/
+
+/**
+ * Return text of element with given selector. Optionally replace %PARAM% with value
+ * of param. This allows usage of localization features in PHP from JavaScript.
+ *
+ * @param String id elment ID of elment containing text
+ * @param String param optionally, a text to replace %PARAM% with
+ * @return String text of elment with ID id
+ */
+function gettext(sel, param/*=null*/) {
+	var txt = jQuery(sel).html();
+	if (param) {
+		txt = txt.replace(/%PARAM%/g, param);
+	}
+	return txt;
+}
+
+function req(func, args, callback) {
+    $.post(script_url, {
+        'action': 'ajax',
+        'rs': 'wfAjaxCollection' + func,
+        'rsargs[]': args
+    }, callback, 'json');
+}
+
+var script_url = wgServer +
+	((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript);
+
+var chapter_max_len = 200;
+
+/******************************************************************************/
+
+function getMWServeStatus() {
+	$.getJSON(script_url, {
+		'action': 'ajax',
+		'rs': 'wfAjaxGetMWServeStatus',
+		'rsargs[]': [collection_id, writer]
+	}, function(result) {
+		if (result.state == 'progress' ) {
+			if ( result.status.progress )  {
+				$('#renderingProgress').html('' + result.status.progress);
+			}
+			if (result.status.status) {
+				var status = result.status.status;
+				if (result.status.article) {
+					status += gettext('#renderingArticle', result.status.article);
+				} else if (result.status.page) {
+					status += gettext('#renderingPage', result.status.page);
+				}
+				$('#renderingStatus').html(gettext('#renderingStatusText', status));
+			}
+			setTimeout(getMWServeStatus, 500);
+		} else {
+			window.location.reload(true);
+		}
+	});
+}
+
+/******************************************************************************/
+
+function clear_collection() {
+	if (confirm(gettext('#clearCollectionConfirmText'))) {
+		req('Clear',
+			[],
+			function(result) {
+				$('#titleInput').val('');
+				$('#subtitleInput').val('');
+				refresh_list(result);
+				req('GetBookCreatorBoxContent', ['showbook', null, wgPageName], function(result2) {
+					$('#coll-book_creator_box').html(result2.html);
+				});
+			});
+	}
+	return false;
+}
+
+function create_chapter() {
+	var name = prompt(gettext('#newChapterText'));
+	if (name) {
+		name = name.substring(0, chapter_max_len);
+		req('AddChapter', [name], refresh_list);
+	}
+	return false;
+}
+
+function rename_chapter(index, old_name) {
+	var new_name = prompt(gettext('#renameChapterText'), old_name);
+	if (new_name) {
+		new_name = new_name.substring(0, chapter_max_len);
+		req('RenameChapter', [index, new_name], refresh_list);
+	}
+	return false;
+}
+
+function remove_item(index) {
+	req('RemoveItem',
+		[index],
+		function(result) {
+			refresh_list(result);
+			req('GetBookCreatorBoxContent', ['showbook', null, wgPageName], function(result2) {
+				$('#coll-book_creator_box').html(result2.html);
+			});
+		});
+	return false;
+}
+
+function set_titles() {
+	req('SetTitles', [$('#titleInput').val(), $('#subtitleInput').val()], function(result) {
+        wfCollectionSave(result.collection);
+    });
+	return false;
+}
+
+function set_sorting(items_string) {
+	req('SetSorting', [items_string], refresh_list);
+	return false;
+}
+
+function update_buttons() {
+	if ($('#collectionList .article').length == 0) {
+		$('#saveButton').attr('disabled', 'disabled');
+		$('#downloadButton').attr('disabled', 'disabled');
+		$('input.order').attr('disabled', 'disabled');
+		return;
+	} else {
+		$('#downloadButton').removeAttr('disabled');
+		$('input.order').removeAttr('disabled');
+	}
+	if (!$('#saveButton').length) {
+		return;
+	}
+	if (!$('#communityCollTitle').length || $('#personalCollType:checked').val()) {
+		$('#personalCollTitle').removeAttr('disabled');
+		$('#communityCollTitle').attr('disabled', 'disabled');
+		if (!$.trim($('#personalCollTitle').val())) {
+			$('#saveButton').attr('disabled', 'disabled');
+			return;
+		}
+	} else if (!$('#personalCollTitle').length || $('#communityCollType:checked').val()) {
+		$('#communityCollTitle').removeAttr('disabled');
+		$('#personalCollTitle').attr('disabled', 'disabled');
+		if (!$.trim($('#communityCollTitle').val())) {
+			$('#saveButton').attr('disabled', 'disabled');
+			return;
+		}
+	}
+	$('#saveButton').removeAttr('disabled');
+}
+
+function make_sortable() {
+	$('#collectionList').sortable({
+		axis: 'y',
+		update: function(evt, ui) {
+			set_sorting($('#collectionList').sortable('serialize'));
+		}
+	});
+	$('#collectionList .sortableitem').css('cursor', 'move');
+}
+
+function refresh_list(data) {
+    wfCollectionSave(data.collection);
+	$('#collectionListContainer').html(data.html);
+	$('.makeVisible').css('display', 'inline');
+	make_sortable();
+	update_buttons();
+}
+
+function toggle_order_info(flag) {
+	if (flag) {
+		$('#coll-more_info').css('display', 'none');
+		$('#coll-order_info').css('display', 'block');
+		$('#coll-hide_info').css('display', 'block');
+	} else {
+		$('#coll-more_info').css('display', 'block');
+		$('#coll-order_info').css('display', 'none');
+		$('#coll-hide_info').css('display', 'none');
+	}
+}
+
+$(function() {
+	if (requiredVersion != wgCollectionVersion) {
+		alert('ERROR: Version mismatch between Javascript and PHP code. Contact admin to fix the installation of Collection extension for MediaWiki.');
+		return;
+	}
+	if ($('#collectionList').length) {
+		$('.makeVisible').css('display', 'inline');
+		window.coll_create_chapter = create_chapter;
+		window.coll_remove_item = remove_item;
+		window.coll_rename_chapter = rename_chapter;
+		window.coll_clear_collection = clear_collection;
+		window.coll_toggle_order_info = toggle_order_info;
+		toggle_order_info(false);
+		update_buttons();
+		make_sortable();
+		$('#personalCollTitle').val($('#titleInput').val());
+		$('#personalCollTitle').keyup(update_buttons);
+		$('#personalCollTitle').change(update_buttons);
+		$('#communityCollTitle').val($('#titleInput').val());
+		$('#communityCollTitle').keyup(update_buttons);
+		$('#communityCollTitle').change(update_buttons);
+		$('#personalCollType').change(update_buttons);
+		$('#communityCollType').change(update_buttons);
+		$('#titleInput').change(set_titles);
+		$('#subtitleInput').change(set_titles);
+	}
+	if (typeof collection_rendering != 'undefined') {
+		getMWServeStatus();
+	}
+});
+
+})(jQuery);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/jstorage.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/jstorage.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/jstorage.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,212 @@
+/**
+ * ----------------------------- JSTORAGE -------------------------------------
+ * Simple local storage wrapper to save data on the browser side, supporting
+ * all major browsers - IE6+, Firefox2+, Safari4+, Chrome4+ and Opera 10.5+
+ *
+ * Copyright (c) 2010 Andris Reinman, andris.reinman at gmail.com
+ * Project homepage: www.jstorage.info
+ *
+ * Licensed under MIT-style license:
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * USAGE:
+ *
+ * jStorage requires Prototype, MooTools or jQuery! If jQuery is used, then
+ * jQuery-JSON (http://code.google.com/p/jquery-json/) is also needed.
+ * (jQuery-JSON needs to be loaded BEFORE jStorage!)
+ *
+ * Methods:
+ *
+ * -set(key, value)
+ * $.jStorage.set(key, value) -> saves a value
+ *
+ * -get(key[, default])
+ * value = $.jStorage.get(key [, default]) ->
+ * 		retrieves value if key exists, or default if it doesn't
+ *
+ * -deleteKey(key)
+ * $.jStorage.deleteKey(key) -> removes a key from the storage
+ *
+ * -flush()
+ * $.jStorage.flush() -> clears the cache
+ *
+ * <value> can be any JSON-able value, including objects and arrays.
+ *
+ */
+
+(function($){
+	if(!$ || !($.toJSON || Object.toJSON || window.JSON)){
+		throw new Error("jQuery, MooTools or Prototype needs to be loaded before jStorage!");
+	}
+	$.jStorage = {
+
+			/* Version number */
+			version: "0.1.2",
+
+			/* This is the object, that holds the cached values */
+			_storage: {},
+
+			/* Actual browser storage (localStorage or globalStorage['domain']) */
+			_storage_service: {jStorage:"{}"},
+
+			/* DOM element for older IE versions, holds userData behavior */
+			_storage_elm: null,
+
+			/* function to encode objects to JSON strings */
+			json_encode: $.toJSON || Object.toJSON || (window.JSON && JSON.encode),
+
+			/* function to decode objects from JSON strings */
+			json_decode: $.evalJSON || (window.JSON && JSON.decode) || function(str){
+				return String(str).evalJSON();
+			},
+
+			////////////////////////// PRIVATE METHODS ////////////////////////
+
+			/**
+			 * Initialization function. Detects if the browser supports DOM Storage
+			 * or userData behavior and behaves accordingly.
+			 * @returns undefined
+			 */
+			_init: function(){
+				/* Check if browser supports localStorage */
+				if("localStorage" in window){
+					this._storage_service = window.localStorage;
+				}
+				/* Check if browser supports globalStorage */
+				else if("globalStorage" in window){
+					this._storage_service = window.globalStorage[document.domain]
+				}
+				/* Check if browser supports userData behavior */
+				else{
+					this._storage_elm = document.createElement('link');
+					if("addBehavior" in this._storage_elm){
+
+						/* Use a DOM element to act as userData storage */
+						this._storage_elm.style.behavior = 'url(#default#userData)';
+
+						/* userData element needs to be inserted into the DOM! */
+						document.getElementsByTagName('head')[0].appendChild(this._storage_elm);
+
+						this._storage_elm.load("jStorage");
+						try{
+							var data = this._storage_elm.getAttribute("jStorage")
+						}catch(E){var data = "{}"}
+						if(data && data.length){
+							this._storage_service.jStorage = data;
+						}
+					}else{
+						this._storage_elm = null;
+						return;
+					}
+				}
+				/* if jStorage string is retrieved, then decode it */
+				if("jStorage" in this._storage_service && this._storage_service.jStorage){
+					try{
+						this._storage = this.json_decode(this._storage_service.jStorage);
+					}catch(E){this._storage_service.jStorage = "{}";}
+				}else{
+					this._storage_service.jStorage = "{}";
+				}
+			},
+
+			/**
+			 * This functions provides the "save" mechanism to store the jStorage object
+			 * @returns undefined
+			 */
+			_save:function(){
+				if(this._storage_service){
+					try{
+						this._storage_service.jStorage = this.json_encode(this._storage);
+					}catch(E){/* probably cache is full, nothing is saved this way*/}
+					// If userData is used as the storage engine, additional
+					if(this._storage_elm){
+						try{
+							this._storage_elm.setAttribute("jStorage",this._storage_service.jStorage);
+							this._storage_elm.save("jStorage");
+						}catch(E){/* probably cache is full, nothing is saved this way*/}
+					}
+				}
+			},
+
+			/**
+			 * Function checks if a key is set and is string or numberic
+			 */
+			_checkKey: function(key){
+				if(!key || (typeof key != "string" && typeof key != "number")){
+					throw new TypeError('Key name must be string or numeric');
+				}
+				return true;
+			},
+
+			////////////////////////// PUBLIC METHODS /////////////////////////
+
+			/**
+			 * Sets a key's value.
+			 * @param {String} key - Key to set. If this value is not set or not
+			 * 						a string an exception is raised.
+			 * @param value - Value to set. This can be any value that is JSON
+			 * 				 compatible (Numbers, Strings, Objects etc.).
+			 * @returns the used value
+			 */
+			set: function(key, value){
+				this._checkKey(key);
+				this._storage[key] = value;
+				this._save();
+				return value;
+			},
+			/**
+			 * Looks up a key in cache
+			 * @param {String} key - Key to look up.
+			 * @param {mixed} def - Default value to return, if key didn't exist.
+			 * @returns the key value, default value or <null>
+			 */
+			get: function(key, def){
+				this._checkKey(key);
+				if(key in this._storage){
+					return this._storage[key];
+				}
+				return def?def:null;
+			},
+			/**
+			 * Deletes a key from cache.
+			 * @param {String} key - Key to delete.
+			 * @returns true if key existed or false if it didn't
+			 */
+			deleteKey: function(key){
+				this._checkKey(key);
+				if(key in this._storage){
+					delete this._storage[key];
+					this._save();
+					return true;
+				}
+				return false;
+			},
+			/**
+			 * Deletes everything in cache.
+			 * @returns true
+			 */
+			flush: function(){
+				this._storage = {};
+				this._save();
+				return true;
+			}
+		};
+	// load saved data from browser
+	$.jStorage._init();
+})(typeof jQuery != "undefined" && jQuery || $);
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/suggest.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/suggest.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-collection/usr/share/mediawiki-extensions/collection/js/suggest.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,43 @@
+(function($) {
+
+var script_url = wgServer +
+	((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript);
+
+function set_status(html) {
+	if (html) {
+		$('#collectionSuggestStatus').css('visibility', 'visible').html(html);
+	} else {
+		$('#collectionSuggestStatus').css('visibility', 'hidden').html(' ');
+	}
+}
+
+function collectionSuggestCall(func, args) {
+		set_status('...');
+		$.post(script_url, {
+			'action': 'ajax',
+			'rs': 'wfAjaxCollectionSuggest' + func,
+			'rsargs[]': args
+		}, function(result) {
+			wfCollectionSave(result.collection);
+			if (func == 'undo') {
+				set_status(false);
+			} else {
+				set_status(result.last_action);
+			}
+			$('#collectionSuggestions').html(result.suggestions_html);
+			$('#collectionMembers').html(result.members_html);
+			$('#coll-num_pages').text(result.num_pages);
+			$.getJSON(script_url, {
+				'action': 'ajax',
+				'rs': 'wfAjaxCollectionGetBookCreatorBoxContent',
+				'rsargs[]': ['suggest', null, wgPageName]
+			}, function(result) {
+				$('#coll-book_creator_box').html(result.html);
+			});
+		}, 'json');
+}
+
+window.collectionSuggestCall = collectionSuggestCall;
+
+})(jQuery);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/doc/mediawiki-extensions/confirmedit/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/doc/mediawiki-extensions/confirmedit/README	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/doc/mediawiki-extensions/confirmedit/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,42 @@
+ConfirmEdit extension for MediaWiki
+
+This extension provides various CAPTCHA tools for MediaWiki, to allow
+for protection against spambots and other automated tools.
+
+For more information, see the extension homepage at:
+http://www.mediawiki.org/wiki/Extension:ConfirmEdit
+
+== Overview ==
+
+The following modules are included in ConfirmEdit:
+
+* SimpleCaptcha - users have to solve an arithmetic math problem
+* MathCaptcha - users have to solve a math problem that's displayed as
+an image
+* FancyCaptcha - users have to identify a series of characters, displayed
+in a stylized way
+* QuestyCaptcha - users have to answer a question, out of a series of
+questions defined by the administrator(s)
+* ReCaptcha - users have to identify a series of characters, either
+visually or audially, from a widget provided by the reCAPTCHA service
+* Asirra - users have to identify the cats in a set of photos of cats
+and dogs, from a widget provided by the Microsoft Asirra service
+
+== License ==
+
+ConfirmEdit is published under the GPL license.
+ 
+== Authors ==
+
+The main framework, and the SimpleCaptcha and FancyCaptcha modules, were
+written by Brion Vibber.
+
+The MathCaptcha module was written by Rob Church.
+
+The QuestyCaptcha module was written by Benjamin Lees.
+
+The reCAPTCHA module was written by Mike Crawford and Ben Maurer.
+
+The Asirra module was written by Bachsau.
+
+Additional maintenance work was done by Yaron Koren.

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.class.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @author Bachsau
+ * @author Niklas Laxström
+ */
+
+class Asirra extends SimpleCaptcha {
+	public $asirra_clientscript = 'http://challenge.asirra.com/js/AsirraClientSide.js';
+
+	// As we don't have to store anything but some other things to do,
+	// we're going to replace that constructor completely.
+	function __construct() {
+		global $wgExtensionAssetsPath, $wgAsirraScriptPath;
+		$this->asirra_localpath = "$wgExtensionAssetsPath/ConfirmEdit";
+	}
+
+	function getForm() {
+		global $wgAsirraEnlargedPosition, $wgAsirraCellsPerRow, $wgOut, $wgLang;
+
+		$wgOut->addModules( 'ext.confirmedit.asirra' );
+		$js = Html::linkedScript( $this->asirra_clientscript );
+
+		$message = Xml::encodeJsVar( wfMessage( 'asirra-createaccount-fail' )->plain() );
+		$js .= Html::inlineScript( <<<JAVASCRIPT
+var asirra_js_failed = '$message';
+JAVASCRIPT
+		);
+		$js .=  '<noscript>' . wfMessage( 'asirra-nojs' )->parse() . '</noscript>';
+		return $js;
+	}
+
+	function passCaptcha() {
+		global $wgRequest;
+
+		$ticket = $wgRequest->getVal( 'Asirra_Ticket' );
+		$api = 'http://challenge.asirra.com/cgi/Asirra?';
+		$params = array(
+			'action' => 'ValidateTicket',
+			'ticket' => $ticket,
+		);
+
+		$response = Http::get( $api . wfArrayToCgi( $params ) );
+		$xml = simplexml_load_string( $response );
+		$result = $xml->xpath( '/AsirraValidation/Result' );
+		return strval( $result[0] ) === 'Pass';
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,228 @@
+<?php
+/**
+ * Internationalisation file for the Asirra module of the ConfirmEdit
+ * extension.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$messages = array();
+
+/* English */
+$messages['en'] = array(
+	'asirra-desc' => 'Asirra module for ConfirmEdit',
+	'asirra-edit' => 'To help protect against automated edit spam, please select just the cat photos in the box below:', 
+	'asirra-addurl' => 'Your edit includes new external links. To help protect against automated spam, please select just the cat photos in the box below:',
+	'asirra-badpass' => 'To help protect against automated password cracking, please select just the cat photos in the box below:',
+	'asirra-createaccount' => 'To help protect against automated account creation, please select just the cat photos in the box below:',
+	'asirra-createaccount-fail' => "Please correctly identify the cats.",
+	'asirra-create' => 'To help protect against automated page creation, please select just the cat photos in the box below:', 
+	'asirra-nojs' => '\'\'\'Please enable JavaScript and resubmit the page.\'\'\'',
+	'asirra-failed' => 'Please identify all cat images',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ * @author Jim-by
+ * @author Wizardist
+ */
+$messages['be-tarask'] = array(
+	'asirra-desc' => 'Модуль Asirra для ConfirmEdit',
+	'asirra-edit' => 'Для абароны супраць спаму, калі ласка, выберыце толькі фота з катом ў полі ніжэй:',
+	'asirra-addurl' => 'Вашае рэдагаваньне ўтрымлівае новыя вонкавыя спасылкі. Для абароны супраць спаму, калі ласка, выберыце толькі фота з катом ў полі ніжэй:',
+	'asirra-badpass' => 'Для абароны супраць аўтаматычнага падбору паролю, калі ласка, выберыце толькі фота з катом ў полі ніжэй:',
+	'asirra-createaccount' => 'Для абароны супраць аўтаматычнага стварэньня рахункаў, калі ласка, выберыце толькі фота з катом ў полі ніжэй:',
+	'asirra-createaccount-fail' => 'Калі ласка, слушна выберыце катоў.',
+	'asirra-create' => 'Для абароны супраць аўтаматычнага стварэньня старонак, калі ласка, выберыце толькі фота з катом ў полі ніжэй:',
+	'asirra-nojs' => "'''Калі ласка, дазвольце JavaScript і дашліце старонку зноў.'''",
+	'asirra-failed' => 'Калі ласка, вызначце ўсе выявы з катамі',
+);
+
+/** German (Deutsch)
+ * @author Kghbln
+ */
+$messages['de'] = array(
+	'asirra-desc' => 'Ermöglicht die Nutzung des Anti-Spam-Moduls Asirra',
+	'asirra-edit' => 'Zum Schutz vor automatisiertem Spam bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-createaccount' => 'Zum Schutz gegen automatisiertes Erstellen von Benutzerkonten bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-createaccount-fail' => 'Bitte wähle nur die Fotos mit Katzen aus.',
+	'asirra-create' => 'Zum Schutz gegen automatisiertes Erstellen von Seiten bitten wir dich, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-nojs' => "'''Bitte JavaScript aktivieren und die Seiten nochmals Speichern.'''",
+	'asirra-failed' => 'Bitte wähle nur die Fotos mit Katzen aus.',
+);
+
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Kghbln
+ */
+$messages['de-formal'] = array(
+	'asirra-addurl' => 'Ihre Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-createaccount' => 'Zum Schutz gegen automatisiertes Erstellen von Benutzerkonten bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-createaccount-fail' => 'Bitte wählen Sie nur die Fotos mit Katzen aus.',
+	'asirra-create' => 'Zum Schutz gegen automatisiertes Erstellen von Seiten bitten wir Sie, nur die Fotos mit Katzen im untenstehenden Feld auszuwählen:',
+	'asirra-failed' => 'Bitte wählen Sie nur die Fotos mit Katzen aus.',
+);
+
+/** French (Français)
+ * @author Seb35
+ */
+$messages['fr'] = array(
+	'asirra-desc' => 'Module Asirra pour ConfirmEdit',
+	'asirra-edit' => 'Pour aider à nous protéger contre le spam d’édition automatique, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :',
+	'asirra-addurl' => 'Votre édition contient des liens externes. Pour nous aider à nous protéger contre le spam automatique, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :',
+	'asirra-badpass' => 'Pour nous aider à nous protéger des essais automatiques de cassage de mot de passe, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :',
+	'asirra-createaccount' => 'Pour nous aider à nous protéger contre la création automatique de comptes, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :',
+	'asirra-createaccount-fail' => 'Veuillez identifier correctement les chats.',
+	'asirra-create' => 'Pour nous aider à nous protéger contre la création automatique de pages, veuillez sélectionner uniquement les photos de chats dans la boîte ci-dessous :',
+	'asirra-nojs' => "'''Veuillez activer le JavaScript et re-soumettre la page.'''",
+);
+
+/** Galician (Galego)
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'asirra-desc' => 'Módulo Asirra para ConfirmEdit',
+	'asirra-edit' => 'Para axudarnos á protección contra o spam, seleccione só as fotos de gatos na caixa:',
+	'asirra-addurl' => 'A súa edición inclúe novas ligazóns externas. Para axudar na protección contra o spam automático, seleccione só as fotos de gatos na caixa:',
+	'asirra-badpass' => 'Para axudarnos á protección contra o roubo de contrasinais, seleccione só as fotos de gatos na caixa:',
+	'asirra-createaccount' => 'Para axudarnos á protección contra a creación automática de contas, seleccione só as fotos de gatos na caixa:',
+	'asirra-createaccount-fail' => 'Identifique correctamente os gatos.',
+	'asirra-create' => 'Para axudarnos á protección contra a creación automática de páxinas, seleccione só as fotos de gatos na caixa:',
+	'asirra-nojs' => "'''Active o JavaScript e volva enviar a páxina.'''",
+	'asirra-failed' => 'Identifique todas as fotos de gatos',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'asirra-desc' => 'Modul Asirra za ConfirmEdit',
+	'asirra-edit' => 'Za škit přećiwo awtomatizowanemu spamej, prošu wubjer jenož fota kóčkow w slědowacym polu:',
+	'asirra-addurl' => 'Twoja změna wobsahuje nowe eksterne wotkazy. Za škit přećiwo awtomatizowanemu spamej, prošu wubjer jenož fota kóčkow w slědowacym polu:',
+	'asirra-badpass' => 'Za škit přećiwo awtomatizowanemu złamanju hesłow, prošu wubjer jenož fota kóčkow w slědowacym polu:',
+	'asirra-createaccount' => 'Za škit přećiwo awtomatiskemu wutworjenju konta, prošu wubjer jenož fota kóčkow w slědowacym polu:',
+	'asirra-createaccount-fail' => 'Prošu identifikuj kóčki.',
+	'asirra-create' => 'Za škit přećiwo awtomatiskemu wutworjenju strony, prošu wubjer jenož fota kóčkow w slědowacym polu:',
+	'asirra-nojs' => "'''Prošu zmóžń JavaScript a składuj stronu hišće raz.'''",
+	'asirra-failed' => 'Prošu identifikuj wšě wobrazy z kóčkami',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'asirra-desc' => 'Modulo de Asirra pro ConfirmEdit',
+	'asirra-edit' => 'Pro adjutar a proteger nos contra le spam automatisate, per favor selige solmente le photos de cattos in le quadro sequente:',
+	'asirra-addurl' => 'Iste modification include nove ligamines externe. Pro adjutar a proteger nos contra le spam automatisate, per favor selige solmente le photos de cattos in le quadro sequente:',
+	'asirra-badpass' => 'Pro adjutar a proteger nos contra le furto automatisate de contrasignos, per favor selige solmente le photos de catto in le quadro sequente:',
+	'asirra-createaccount' => 'Pro adjutar a proteger nos contra le creation automatisate de contos, per favor selige solmente le photos de cattos in le quadro sequente:',
+	'asirra-createaccount-fail' => 'Per favor identifica correctemente le cattos.',
+	'asirra-create' => 'Pro adjutar a proteger nos contra le creation automatisate de paginas, per favor selige solmente le photos de cattos in le quadro sequente:',
+	'asirra-nojs' => "'''Per favor activa JavaScript e resubmitte le pagina.'''",
+	'asirra-failed' => 'Per favor identifica tote le imagines de cattos',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'asirra-desc' => 'Asirra-Modul fir ConfirmEdit',
+	'asirra-addurl' => "An Ärer Ännerung sinn nei extern Linken. Fir ze hëllefe géint automatiséierte Spam virzegoen, sicht w.e.g. d'Kategorie vun de Fotoen an der Këscht ënnendrënner eraus:",
+	'asirra-createaccount-fail' => "Identifizéiert d'Kaze w.e.g. richteg.",
+	'asirra-nojs' => "'''Aktivéiert w.e.g. JavaScript a schéckt d'Säit nachemol.'''",
+	'asirra-failed' => 'Identifizéiert w.e.g. all Biller wou Kazen drop sinn',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'asirra-desc' => 'Asirra-модул за ПотврдиУредување',
+	'asirra-edit' => 'Како заштитна мерка против автоматизиран спам, изберете ги само сликите со мачка прикажани во полето:',
+	'asirra-addurl' => 'Во вашите измени има нови надворешни врски. Како заштитна мерка против автоматизиран спам, изберете ги само сликите со мачка прикажани во полето:',
+	'asirra-badpass' => 'Како заштитна мерка против автоматизирано провалување на лозинки, изберете ги само сликите со мачка прикажани во полето:',
+	'asirra-createaccount' => 'Како заштитна мерка против автоматизирано создавање на сметки, изберете ги само сликите со мачка прикажани во полето:',
+	'asirra-createaccount-fail' => 'Посочете кои од следниве се мачки.',
+	'asirra-create' => 'Како заштитна мерка против автоматизирано создавање на страници, изберете ги само сликите со мачка прикажани во полето:',
+	'asirra-nojs' => "'''Овозможете JavaScript и поднесете ја страницата повторно.'''",
+	'asirra-failed' => 'Изберете ги сликите што имаат мачка',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Event
+ */
+$messages['nb'] = array(
+	'asirra-desc' => 'Assirra-modulen for ConfirmEdit',
+	'asirra-edit' => 'Som beskyttelse mot automatisk redigert spam, vennligst velg kun kattebildene i boksen under:',
+	'asirra-addurl' => 'Din redigering inneholder nye eksterne lenker. Som beskyttelse mot automatisk redigert spam, vennligst velg kun kattebildene i boksen under:',
+	'asirra-badpass' => 'Som beskyttelse mot automatisk passordknekking, vennligst velg kun kattebildene i boksen under:',
+	'asirra-createaccount' => 'Som beskyttelse mot automatisk opprettelse av brukerkonto, vennligst velg kun kattebildene i boksen under:',
+	'asirra-createaccount-fail' => 'Vennligst angi hva som er katter.',
+	'asirra-create' => 'Som beskyttelse mot automatisk opprettelse av sider, vennligst velg kun kattebildene i boksen under:',
+	'asirra-nojs' => "'''Vennligst åpne for JavaScript og lagre siden en gang til.'''",
+);
+
+/** Dutch (Nederlands)
+ * @author SPQRobin
+ * @author Siebrand
+ */
+$messages['nl'] = array(
+	'asirra-desc' => 'Asirra-module voor ConfirmEdit',
+	'asirra-edit' => 'Kies ter bescherming tegen geautomatiseerde spam de afbeeldingen met een poes in het onderstaande venster:',
+	'asirra-addurl' => "Uw bewerking bevat nieuwe externe verwijzingen. Om te helpen beschermen tegen geautomatiseerde spam, selecteer de foto's van katten in het vak hieronder:",
+	'asirra-badpass' => 'Kies ter bescherming tegen het automatisch kraken van wachtwoorden de afbeeldingen met een poes in het onderstaande venster:',
+	'asirra-createaccount' => 'Kies om het automatisch aanmaken van gebruikers tegen te gaan de afbeeldingen met een poes in het onderstaande venster:',
+	'asirra-createaccount-fail' => 'Identificeer de katten juist.',
+	'asirra-create' => "Kies om het automatisch aanmaken van pagina's tegen te gaan de afbeeldingen met een poes in het onderstaande venster:",
+	'asirra-nojs' => "'''Schakel JavaScript in en probeer de pagina opnieuw op te slaan.'''",
+	'asirra-failed' => 'Identificeer alle afbeeldingen van katten.',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'asirra-desc' => 'Mòdul Asirra për ConfirmEdit',
+	'asirra-edit' => "Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:",
+	'asirra-addurl' => "Soa modìfica a conten dle liure esterne neuve. Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:",
+	'asirra-badpass' => "Për giuté a protege contra la forsadura automatisà ëd le ciav, për piasì ch'a selession-a mach la fòto dël gat ant ël quàder sì-sota:",
+	'asirra-createaccount' => "Për giuté a protege contra la creassion automatisà ëd cont, për piasì ch'a selession-a mach la fòto dël gat ant ël quàder sì-sota:",
+	'asirra-createaccount-fail' => 'Për piasì identifica coretament ij gat.',
+	'asirra-create' => "Për giuté a protege contra la creassion automatisà ëd pàgine, për piasì ch'a selession-a mach le fòto ëd gat ant ël quàder sì-sota:",
+	'asirra-nojs' => "'''Për piasì, ch'a abìlita JavaScript e ch'a spedissa torna la pàgina.'''",
+	'asirra-failed' => 'Për piasì identìfica tute le figure ëd gat',
+);
+
+/** Portuguese (Português)
+ * @author Hamilton Abreu
+ */
+$messages['pt'] = array(
+	'asirra-desc' => 'Módulo Asirra para o ConfirmEdit',
+	'asirra-edit' => "Como prevenção contra sistemas automatizados de inserção de ''spam'', seleccione só as fotografias de gatos na caixa abaixo:",
+	'asirra-addurl' => "A sua edição contém links externos novos. Como prevenção contra sistemas automatizados de inserção de ''spam'', seleccione só as fotografias de gatos na caixa abaixo:",
+	'asirra-badpass' => 'Como prevenção com sistemas automatizados de descoberta de palavras-chave, seleccione só as fotografias de gatos na caixa abaixo:',
+	'asirra-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, seleccione só as fotografias de gatos na caixa abaixo:',
+	'asirra-createaccount-fail' => 'Identifique correctamente os gatos, por favor.',
+	'asirra-create' => 'Como prevenção contra sistemas automatizados de criação de páginas, seleccione só as fotografias de gatos na caixa abaixo:',
+	'asirra-nojs' => "'''Possibilite o uso de JavaScript e reenvie a página, por favor.'''",
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Hzy980512
+ */
+$messages['zh-hans'] = array(
+	'asirra-desc' => 'ConfirmEdit的Asirra模块',
+	'asirra-edit' => '为了防止垃圾编辑攻击,请在下面的方框中选出猫的图片:',
+	'asirra-addurl' => '您的编辑包含新的外部链接。为了帮助防止自动垃圾邮件,请在下面的方框中选出猫的图片:',
+	'asirra-badpass' => '为防止自动程序破解密码,请在下面的方框中选出猫的图片:',
+	'asirra-createaccount' => '为了防止自动程序创建帐户,请在下面的方框中选出猫的图片:',
+	'asirra-createaccount-fail' => '请正确辨认出猫的图片。',
+	'asirra-create' => '为了防止自动程序创建页面,请在下面的方框中选出猫的图片:',
+	'asirra-nojs' => "'''请启动JavaScript后再提交页面。'''",
+	'asirra-failed' => '请选出所有猫的图片',
+);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Asirra.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Asirra CAPTCHA module for the ConfirmEdit MediaWiki extension.
+ * @author Bachsau
+ * @author Niklas Laxström
+ *
+ * Makes use of the Asirra (Animal Species Image Recognition for
+ * Restricting Access) CAPTCHA service, developed by John Douceur, Jeremy
+ * Elson and Jon Howell at Microsoft Research.
+ *
+ * Asirra uses a large set of images from http://petfinder.com.
+ *
+ * For more information about Asirra, see:
+ * http://research.microsoft.com/en-us/um/redmond/projects/asirra/
+ *
+ * This MediaWiki code is released into the public domain, without any
+ * warranty. YOU CAN DO WITH IT WHATEVER YOU LIKE!
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+	exit;
+}
+
+$dir = dirname( __FILE__ ) . '/';
+require_once( "$dir/ConfirmEdit.php" );
+$dir = dirname( __FILE__ ) . '/';
+
+$wgCaptchaClass = 'Asirra';
+$wgExtensionMessagesFiles['Asirra'] = "$dir/Asirra.i18n.php";
+$wgAutoloadClasses['Asirra'] = "$dir/Asirra.class.php";
+
+$wgResourceModules['ext.confirmedit.asirra'] = array(
+	'localBasePath' => $dir,
+	'remoteExtPath' => 'ConfirmEdit',
+	'scripts' => 'ext.confirmedit.asirra.js',
+	'messages' => array(
+		'asirra-failed',
+	),
+);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Captcha.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Captcha.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/Captcha.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,718 @@
+<?php
+
+class SimpleCaptcha {
+
+	function getCaptcha() {
+		$a = mt_rand( 0, 100 );
+		$b = mt_rand( 0, 10 );
+
+		/* Minus sign is used in the question. UTF-8,
+		   since the api uses text/plain, not text/html */
+		$op = mt_rand( 0, 1 ) ? '+' : '−';
+
+		// No space before and after $op, to ensure correct
+		// directionality.
+		$test = "$a$op$b";
+		$answer = ( $op == '+' ) ? ( $a + $b ) : ( $a - $b );
+		return array( 'question' => $test, 'answer' => $answer );
+	}
+
+	function addCaptchaAPI( &$resultArr ) {
+		$captcha = $this->getCaptcha();
+		$index = $this->storeCaptcha( $captcha );
+		$resultArr['captcha']['type'] = 'simple';
+		$resultArr['captcha']['mime'] = 'text/plain';
+		$resultArr['captcha']['id'] = $index;
+		$resultArr['captcha']['question'] = $captcha['question'];
+	}
+
+	/**
+	 * Insert a captcha prompt into the edit form.
+	 * This sample implementation generates a simple arithmetic operation;
+	 * it would be easy to defeat by machine.
+	 *
+	 * Override this!
+	 *
+	 * @return string HTML
+	 */
+	function getForm() {
+		$captcha = $this->getCaptcha();
+		$index = $this->storeCaptcha( $captcha );
+
+		return "<p><label for=\"wpCaptchaWord\">{$captcha['question']}</label> = " .
+			Xml::element( 'input', array(
+				'name' => 'wpCaptchaWord',
+				'id'   => 'wpCaptchaWord',
+				'tabindex' => 1 ) ) . // tab in before the edit textarea
+			"</p>\n" .
+			Xml::element( 'input', array(
+				'type'  => 'hidden',
+				'name'  => 'wpCaptchaId',
+				'id'    => 'wpCaptchaId',
+				'value' => $index ) );
+	}
+
+	/**
+	 * Insert the captcha prompt into an edit form.
+	 * @param OutputPage $out
+	 */
+	function editCallback( &$out ) {
+		$out->addWikiText( $this->getMessage( $this->action ) );
+		$out->addHTML( $this->getForm() );
+	}
+
+	/**
+	 * Show a message asking the user to enter a captcha on edit
+	 * The result will be treated as wiki text
+	 *
+	 * @param $action Action being performed
+	 * @return string
+	 */
+	function getMessage( $action ) {
+		$name = 'captcha-' . $action;
+		$text = wfMsg( $name );
+		# Obtain a more tailored message, if possible, otherwise, fall back to
+		# the default for edits
+		return wfEmptyMsg( $name, $text ) ? wfMsg( 'captcha-edit' ) : $text;
+	}
+
+	/**
+	 * Inject whazawhoo
+	 * @fixme if multiple thingies insert a header, could break
+	 * @param $form HTMLForm
+	 * @return bool true to keep running callbacks
+	 */
+	function injectEmailUser( &$form ) {
+		global $wgCaptchaTriggers, $wgOut, $wgUser;
+		if ( $wgCaptchaTriggers['sendemail'] ) {
+			if ( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+				wfDebug( "ConfirmEdit: user group allows skipping captcha on email sending\n" );
+				return true;
+			}
+			$form->addFooterText(
+				"<div class='captcha'>" .
+				$wgOut->parse( $this->getMessage( 'sendemail' ) ) .
+				$this->getForm() .
+				"</div>\n" );
+		}
+		return true;
+	}
+
+	/**
+	 * Inject whazawhoo
+	 * @fixme if multiple thingies insert a header, could break
+	 * @param QuickTemplate $template
+	 * @return bool true to keep running callbacks
+	 */
+	function injectUserCreate( &$template ) {
+		global $wgCaptchaTriggers, $wgOut, $wgUser;
+		if ( $wgCaptchaTriggers['createaccount'] ) {
+			if ( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+				wfDebug( "ConfirmEdit: user group allows skipping captcha on account creation\n" );
+				return true;
+			}
+			$template->set( 'header',
+				"<div class='captcha'>" .
+				$wgOut->parse( $this->getMessage( 'createaccount' ) ) .
+				$this->getForm() .
+				"</div>\n" );
+		}
+		return true;
+	}
+
+	/**
+	 * Inject a captcha into the user login form after a failed
+	 * password attempt as a speedbump for mass attacks.
+	 * @fixme if multiple thingies insert a header, could break
+	 * @param $template QuickTemplate
+	 * @return bool true to keep running callbacks
+	 */
+	function injectUserLogin( &$template ) {
+		if ( $this->isBadLoginTriggered() ) {
+			global $wgOut;
+			$template->set( 'header',
+				"<div class='captcha'>" .
+				$wgOut->parse( $this->getMessage( 'badlogin' ) ) .
+				$this->getForm() .
+				"</div>\n" );
+		}
+		return true;
+	}
+
+	/**
+	 * When a bad login attempt is made, increment an expiring counter
+	 * in the memcache cloud. Later checks for this may trigger a
+	 * captcha display to prevent too many hits from the same place.
+	 * @param User $user
+	 * @param string $password
+	 * @param int $retval authentication return value
+	 * @return bool true to keep running callbacks
+	 */
+	function triggerUserLogin( $user, $password, $retval ) {
+		global $wgCaptchaTriggers, $wgCaptchaBadLoginExpiration, $wgMemc;
+		if ( $retval == LoginForm::WRONG_PASS && $wgCaptchaTriggers['badlogin'] ) {
+			$key = $this->badLoginKey();
+			$count = $wgMemc->get( $key );
+			if ( !$count ) {
+				$wgMemc->add( $key, 0, $wgCaptchaBadLoginExpiration );
+			}
+			$count = $wgMemc->incr( $key );
+		}
+		return true;
+	}
+
+	/**
+	 * Check if a bad login has already been registered for this
+	 * IP address. If so, require a captcha.
+	 * @return bool
+	 * @access private
+	 */
+	function isBadLoginTriggered() {
+		global $wgMemc, $wgCaptchaTriggers, $wgCaptchaBadLoginAttempts;
+		return $wgCaptchaTriggers['badlogin'] && intval( $wgMemc->get( $this->badLoginKey() ) ) >= $wgCaptchaBadLoginAttempts;
+	}
+
+	/**
+	 * Check if the IP is allowed to skip captchas
+	 */
+	function isIPWhitelisted() {
+		global $wgCaptchaWhitelistIP;
+
+		if ( $wgCaptchaWhitelistIP ) {
+			global $wgRequest;
+
+			$ip = $wgRequest->getIP();
+
+			foreach ( $wgCaptchaWhitelistIP as $range ) {
+				if ( IP::isInRange( $ip, $range ) ) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Internal cache key for badlogin checks.
+	 * @return string
+	 * @access private
+	 */
+	function badLoginKey() {
+		global $wgRequest;
+		return wfMemcKey( 'captcha', 'badlogin', 'ip', $wgRequest->getIP() );
+	}
+
+	/**
+	 * Check if the submitted form matches the captcha session data provided
+	 * by the plugin when the form was generated.
+	 *
+	 * Override this!
+	 *
+	 * @param string $answer
+	 * @param array $info
+	 * @return bool
+	 */
+	function keyMatch( $answer, $info ) {
+		return $answer == $info['answer'];
+	}
+
+	// ----------------------------------
+
+	/**
+	 * @param EditPage $editPage
+	 * @param string $action (edit/create/addurl...)
+	 * @return bool true if action triggers captcha on editPage's namespace
+	 */
+	function captchaTriggers( &$editPage, $action ) {
+		global $wgCaptchaTriggers, $wgCaptchaTriggersOnNamespace;
+		// Special config for this NS?
+		if ( isset( $wgCaptchaTriggersOnNamespace[$editPage->mTitle->getNamespace()][$action] ) )
+			return $wgCaptchaTriggersOnNamespace[$editPage->mTitle->getNamespace()][$action];
+
+		return ( !empty( $wgCaptchaTriggers[$action] ) ); // Default
+	}
+
+	/**
+	 * @param EditPage $editPage
+	 * @param string $newtext
+	 * @param string $section
+	 * @return bool true if the captcha should run
+	 */
+	function shouldCheck( &$editPage, $newtext, $section, $merged = false ) {
+		$this->trigger = '';
+		$title = $editPage->mArticle->getTitle();
+
+		global $wgUser;
+		if ( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+			wfDebug( "ConfirmEdit: user group allows skipping captcha\n" );
+			return false;
+		}
+		if ( $this->isIPWhitelisted() )
+			return false;
+
+
+		global $wgEmailAuthentication, $ceAllowConfirmedEmail;
+		if ( $wgEmailAuthentication && $ceAllowConfirmedEmail &&
+			$wgUser->isEmailConfirmed() ) {
+			wfDebug( "ConfirmEdit: user has confirmed mail, skipping captcha\n" );
+			return false;
+		}
+
+		if ( $this->captchaTriggers( $editPage, 'edit' ) ) {
+			// Check on all edits
+			global $wgUser;
+			$this->trigger = sprintf( "edit trigger by '%s' at [[%s]]",
+				$wgUser->getName(),
+				$title->getPrefixedText() );
+			$this->action = 'edit';
+			wfDebug( "ConfirmEdit: checking all edits...\n" );
+			return true;
+		}
+
+		if ( $this->captchaTriggers( $editPage, 'create' )  && !$editPage->mTitle->exists() ) {
+			// Check if creating a page
+			global $wgUser;
+			$this->trigger = sprintf( "Create trigger by '%s' at [[%s]]",
+				$wgUser->getName(),
+				$title->getPrefixedText() );
+			$this->action = 'create';
+			wfDebug( "ConfirmEdit: checking on page creation...\n" );
+			return true;
+		}
+
+		if ( $this->captchaTriggers( $editPage, 'addurl' ) ) {
+			// Only check edits that add URLs
+			if ( $merged ) {
+				// Get links from the database
+				$oldLinks = $this->getLinksFromTracker( $title );
+				// Share a parse operation with Article::doEdit()
+				$editInfo = $editPage->mArticle->prepareTextForEdit( $newtext );
+				$newLinks = array_keys( $editInfo->output->getExternalLinks() );
+			} else {
+				// Get link changes in the slowest way known to man
+				$oldtext = $this->loadText( $editPage, $section );
+				$oldLinks = $this->findLinks( $editPage, $oldtext );
+				$newLinks = $this->findLinks( $editPage, $newtext );
+			}
+
+			$unknownLinks = array_filter( $newLinks, array( &$this, 'filterLink' ) );
+			$addedLinks = array_diff( $unknownLinks, $oldLinks );
+			$numLinks = count( $addedLinks );
+
+			if ( $numLinks > 0 ) {
+				global $wgUser;
+				$this->trigger = sprintf( "%dx url trigger by '%s' at [[%s]]: %s",
+					$numLinks,
+					$wgUser->getName(),
+					$title->getPrefixedText(),
+					implode( ", ", $addedLinks ) );
+				$this->action = 'addurl';
+				return true;
+			}
+		}
+
+		global $wgCaptchaRegexes;
+		if ( $wgCaptchaRegexes ) {
+			// Custom regex checks
+			$oldtext = $this->loadText( $editPage, $section );
+
+			foreach ( $wgCaptchaRegexes as $regex ) {
+				$newMatches = array();
+				if ( preg_match_all( $regex, $newtext, $newMatches ) ) {
+					$oldMatches = array();
+					preg_match_all( $regex, $oldtext, $oldMatches );
+
+					$addedMatches = array_diff( $newMatches[0], $oldMatches[0] );
+
+					$numHits = count( $addedMatches );
+					if ( $numHits > 0 ) {
+						global $wgUser;
+						$this->trigger = sprintf( "%dx %s at [[%s]]: %s",
+							$numHits,
+							$regex,
+							$wgUser->getName(),
+							$title->getPrefixedText(),
+							implode( ", ", $addedMatches ) );
+						$this->action = 'edit';
+						return true;
+					}
+				}
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Filter callback function for URL whitelisting
+	 * @param string url to check
+	 * @return bool true if unknown, false if whitelisted
+	 * @access private
+	 */
+	function filterLink( $url ) {
+		global $wgCaptchaWhitelist;
+		$source = wfMsgForContent( 'captcha-addurl-whitelist' );
+
+		$whitelist = wfEmptyMsg( 'captcha-addurl-whitelist', $source )
+			? false
+			: $this->buildRegexes( explode( "\n", $source ) );
+
+		$cwl = $wgCaptchaWhitelist !== false ? preg_match( $wgCaptchaWhitelist, $url ) : false;
+		$wl  = $whitelist          !== false ? preg_match( $whitelist, $url )          : false;
+
+		return !( $cwl || $wl );
+	}
+
+	/**
+	 * Build regex from whitelist
+	 * @param string lines from [[MediaWiki:Captcha-addurl-whitelist]]
+	 * @return string Regex or bool false if whitelist is empty
+	 * @access private
+	 */
+	function buildRegexes( $lines ) {
+		# Code duplicated from the SpamBlacklist extension (r19197)
+
+		# Strip comments and whitespace, then remove blanks
+		$lines = array_filter( array_map( 'trim', preg_replace( '/#.*$/', '', $lines ) ) );
+
+		# No lines, don't make a regex which will match everything
+		if ( count( $lines ) == 0 ) {
+			wfDebug( "No lines\n" );
+			return false;
+		} else {
+			# Make regex
+			# It's faster using the S modifier even though it will usually only be run once
+			// $regex = 'http://+[a-z0-9_\-.]*(' . implode( '|', $lines ) . ')';
+			// return '/' . str_replace( '/', '\/', preg_replace('|\\\*/|', '/', $regex) ) . '/Si';
+			$regexes = '';
+			$regexStart = '/^https?:\/\/+[a-z0-9_\-.]*(';
+			$regexEnd = ')/Si';
+			$regexMax = 4096;
+			$build = false;
+			foreach ( $lines as $line ) {
+				// FIXME: not very robust size check, but should work. :)
+				if ( $build === false ) {
+					$build = $line;
+				} elseif ( strlen( $build ) + strlen( $line ) > $regexMax ) {
+					$regexes .= $regexStart .
+						str_replace( '/', '\/', preg_replace( '|\\\*/|', '/', $build ) ) .
+						$regexEnd;
+					$build = $line;
+				} else {
+					$build .= '|' . $line;
+				}
+			}
+			if ( $build !== false ) {
+				$regexes .= $regexStart .
+					str_replace( '/', '\/', preg_replace( '|\\\*/|', '/', $build ) ) .
+					$regexEnd;
+			}
+			return $regexes;
+		}
+	}
+
+	/**
+	 * Load external links from the externallinks table
+	 * @param $title Title
+	 * @return Array
+	 */
+	function getLinksFromTracker( $title ) {
+		$dbr = wfGetDB( DB_SLAVE );
+		$id = $title->getArticleId(); // should be zero queries
+		$res = $dbr->select( 'externallinks', array( 'el_to' ),
+			array( 'el_from' => $id ), __METHOD__ );
+		$links = array();
+		foreach ( $res as $row ) {
+			$links[] = $row->el_to;
+		}
+		return $links;
+	}
+
+	/**
+	 * Backend function for confirmEdit() and confirmEditAPI()
+	 * @return bool false if the CAPTCHA is rejected, true otherwise
+	 */
+	private function doConfirmEdit( $editPage, $newtext, $section, $merged = false ) {
+		global $wgRequest;
+		if ( $wgRequest->getVal( 'captchaid' ) ) {
+			$wgRequest->setVal( 'wpCaptchaId', $wgRequest->getVal( 'captchaid' ) );
+		}
+		if ( $wgRequest->getVal( 'captchaword' ) ) {
+			$wgRequest->setVal( 'wpCaptchaWord', $wgRequest->getVal( 'captchaword' ) );
+		}
+		if ( $this->shouldCheck( $editPage, $newtext, $section, $merged ) ) {
+			return $this->passCaptcha();
+		} else {
+			wfDebug( "ConfirmEdit: no need to show captcha.\n" );
+			return true;
+		}
+	}
+
+	/**
+	 * The main callback run on edit attempts.
+	 * @param EditPage $editPage
+	 * @param string $newtext
+	 * @param string $section
+	 * @param bool $merged
+	 * @return bool true to continue saving, false to abort and show a captcha form
+	 */
+	function confirmEdit( $editPage, $newtext, $section, $merged = false ) {
+		if ( defined( 'MW_API' ) ) {
+			# API mode
+			# The CAPTCHA was already checked and approved
+			return true;
+		}
+		if ( !$this->doConfirmEdit( $editPage, $newtext, $section, $merged ) ) {
+			$editPage->showEditForm( array( &$this, 'editCallback' ) );
+			return false;
+		}
+		return true;
+	}
+
+	/**
+	 * A more efficient edit filter callback based on the text after section merging
+	 * @param EditPage $editPage
+	 * @param string $newtext
+	 */
+	function confirmEditMerged( $editPage, $newtext ) {
+		return $this->confirmEdit( $editPage, $newtext, false, true );
+	}
+
+	function confirmEditAPI( $editPage, $newtext, &$resultArr ) {
+		if ( !$this->doConfirmEdit( $editPage, $newtext, false, false ) ) {
+			$this->addCaptchaAPI( $resultArr );
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Hook for user creation form submissions.
+	 * @param User $u
+	 * @param string $message
+	 * @return bool true to continue, false to abort user creation
+	 */
+	function confirmUserCreate( $u, &$message ) {
+		global $wgCaptchaTriggers, $wgUser;
+		if ( $wgCaptchaTriggers['createaccount'] ) {
+			if ( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+				wfDebug( "ConfirmEdit: user group allows skipping captcha on account creation\n" );
+				return true;
+			}
+			if ( $this->isIPWhitelisted() )
+				return true;
+
+			$this->trigger = "new account '" . $u->getName() . "'";
+			if ( !$this->passCaptcha() ) {
+				$message = wfMsg( 'captcha-createaccount-fail' );
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * Hook for user login form submissions.
+	 * @param User $u
+	 * @param string $message
+	 * @return bool true to continue, false to abort user creation
+	 */
+	function confirmUserLogin( $u, $pass, &$retval ) {
+		if ( $this->isBadLoginTriggered() ) {
+			if ( $this->isIPWhitelisted() )
+				return true;
+
+			$this->trigger = "post-badlogin login '" . $u->getName() . "'";
+			if ( !$this->passCaptcha() ) {
+				// Emulate a bad-password return to confuse the shit out of attackers
+				$retval = LoginForm::WRONG_PASS;
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * Check the captcha on Special:EmailUser
+	 * @param $from MailAddress
+	 * @param $to MailAddress
+	 * @param $subject String
+	 * @param $text String
+	 * @param $error String reference
+	 * @return Bool true to continue saving, false to abort and show a captcha form
+	 */
+	function confirmEmailUser( $from, $to, $subject, $text, &$error ) {
+		global $wgCaptchaTriggers, $wgUser;
+		if ( $wgCaptchaTriggers['sendemail'] ) {
+			if ( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+				wfDebug( "ConfirmEdit: user group allows skipping captcha on email sending\n" );
+				return true;
+			}
+			if ( $this->isIPWhitelisted() )
+				return true;
+
+			if ( defined( 'MW_API' ) ) {
+				# API mode
+				# Asking for captchas in the API is really silly
+				$error = wfMsg( 'captcha-disabledinapi' );
+				return false;
+			}
+			$this->trigger = "{$wgUser->getName()} sending email";
+			if ( !$this->passCaptcha() ) {
+				$error = wfMsg( 'captcha-sendemail-fail' );
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * @param $module ApiBase
+	 * @param $params array
+	 * @return bool
+	 */
+	public function APIGetAllowedParams( &$module, &$params ) {
+		if ( !$module instanceof ApiEditPage ) {
+			return true;
+		}
+		$params['captchaword'] = null;
+		$params['captchaid'] = null;
+
+		return true;
+	}
+
+	/**
+	 * @param $module ApiBae
+	 * @param $desc array
+	 * @return bool
+	 */
+	public function APIGetParamDescription( &$module, &$desc ) {
+		if ( !$module instanceof ApiEditPage ) {
+			return true;
+		}
+		$desc['captchaid'] = 'CAPTCHA ID from previous request';
+		$desc['captchaword'] = 'Answer to the CAPTCHA';
+
+		return true;
+	}
+
+	/**
+	 * Given a required captcha run, test form input for correct
+	 * input on the open session.
+	 * @return bool if passed, false if failed or new session
+	 */
+	function passCaptcha() {
+		$info = $this->retrieveCaptcha();
+		if ( $info ) {
+			global $wgRequest;
+			if ( $this->keyMatch( $wgRequest->getVal( 'wpCaptchaWord' ), $info ) ) {
+				$this->log( "passed" );
+				$this->clearCaptcha( $info );
+				return true;
+			} else {
+				$this->clearCaptcha( $info );
+				$this->log( "bad form input" );
+				return false;
+			}
+		} else {
+			$this->log( "new captcha session" );
+			return false;
+		}
+	}
+
+	/**
+	 * Log the status and any triggering info for debugging or statistics
+	 * @param string $message
+	 */
+	function log( $message ) {
+		wfDebugLog( 'captcha', 'ConfirmEdit: ' . $message . '; ' .  $this->trigger );
+	}
+
+	/**
+	 * Generate a captcha session ID and save the info in PHP's session storage.
+	 * (Requires the user to have cookies enabled to get through the captcha.)
+	 *
+	 * A random ID is used so legit users can make edits in multiple tabs or
+	 * windows without being unnecessarily hobbled by a serial order requirement.
+	 * Pass the returned id value into the edit form as wpCaptchaId.
+	 *
+	 * @param array $info data to store
+	 * @return string captcha ID key
+	 */
+	function storeCaptcha( $info ) {
+		if ( !isset( $info['index'] ) ) {
+			// Assign random index if we're not udpating
+			$info['index'] = strval( mt_rand() );
+		}
+		CaptchaStore::get()->store( $info['index'], $info );
+		return $info['index'];
+	}
+
+	/**
+	 * Fetch this session's captcha info.
+	 * @return mixed array of info, or false if missing
+	 */
+	function retrieveCaptcha() {
+		global $wgRequest;
+		$index = $wgRequest->getVal( 'wpCaptchaId' );
+		return CaptchaStore::get()->retrieve( $index );
+	}
+
+	/**
+	 * Clear out existing captcha info from the session, to ensure
+	 * it can't be reused.
+	 */
+	function clearCaptcha( $info ) {
+		CaptchaStore::get()->clear( $info['index'] );
+	}
+
+	/**
+	 * Retrieve the current version of the page or section being edited...
+	 * @param EditPage $editPage
+	 * @param string $section
+	 * @return string
+	 * @access private
+	 */
+	function loadText( $editPage, $section ) {
+		$rev = Revision::newFromTitle( $editPage->mTitle );
+		if ( is_null( $rev ) ) {
+			return "";
+		} else {
+			$text = $rev->getText();
+			if ( $section != '' ) {
+				global $wgParser;
+				return $wgParser->getSection( $text, $section );
+			} else {
+				return $text;
+			}
+		}
+	}
+
+	/**
+	 * Extract a list of all recognized HTTP links in the text.
+	 * @param string $text
+	 * @return array of strings
+	 */
+	function findLinks( &$editpage, $text ) {
+		global $wgParser, $wgUser;
+
+		$options = new ParserOptions();
+		$text = $wgParser->preSaveTransform( $text, $editpage->mTitle, $wgUser, $options );
+		$out = $wgParser->parse( $text, $editpage->mTitle, $options );
+
+		return array_keys( $out->getExternalLinks() );
+	}
+
+	/**
+	 * Show a page explaining what this wacky thing is.
+	 */
+	function showHelp() {
+		global $wgOut;
+		$wgOut->setPageTitle( wfMsg( 'captchahelp-title' ) );
+		$wgOut->addWikiText( wfMsg( 'captchahelp-text' ) );
+		if ( CaptchaStore::get()->cookiesNeeded() ) {
+			$wgOut->addWikiText( wfMsg( 'captchahelp-cookies-needed' ) );
+		}
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/CaptchaStore.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/CaptchaStore.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/CaptchaStore.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,109 @@
+<?php
+
+abstract class CaptchaStore {
+	/**
+	 * Store the correct answer for a given captcha
+	 * @param  $index String
+	 * @param  $info String the captcha result
+	 */
+	public abstract function store( $index, $info );
+
+	/**
+	 * Retrieve the answer for a given captcha
+	 * @param  $index String
+	 * @return String
+	 */
+	public abstract function retrieve( $index );
+
+	/**
+	 * Delete a result once the captcha has been used, so it cannot be reused
+	 * @param  $index
+	 */
+	public abstract function clear( $index );
+
+	/**
+	 * Whether this type of CaptchaStore needs cookies
+	 * @return Bool
+	 */
+	public abstract function cookiesNeeded();
+
+	/**
+	 * The singleton instance
+	 * @var CaptchaStore
+	 */
+	private static $instance;
+
+	/**
+	 * Get somewhere to store captcha data that will persist between requests
+	 *
+	 * @throws MWException
+	 * @return CaptchaStore
+	 */
+	public final static function get() {
+		if ( !self::$instance instanceof self ) {
+			global $wgCaptchaStorageClass;
+			if ( in_array( 'CaptchaStore', class_parents( $wgCaptchaStorageClass ) ) ) {
+				self::$instance = new $wgCaptchaStorageClass;
+			} else {
+				throw new MWException( "Invalid CaptchaStore class $wgCaptchaStorageClass" );
+			}
+		}
+		return self::$instance;
+	}
+
+	/**
+	 * Protected constructor: no creating instances except through the factory method above
+	 */
+	protected function __construct() {}
+}
+
+class CaptchaSessionStore extends CaptchaStore {
+
+	function store( $index, $info ) {
+		$_SESSION['captcha' . $info['index']] = $info;
+	}
+
+	function retrieve( $index ) {
+		if ( isset( $_SESSION['captcha' . $index] ) ) {
+			return $_SESSION['captcha' . $index];
+		} else {
+			return false;
+		}
+	}
+
+	function clear( $index ) {
+		unset( $_SESSION['captcha' . $index] );
+	}
+
+	function cookiesNeeded() {
+		return true;
+	}
+}
+
+class CaptchaCacheStore extends CaptchaStore {
+
+	function store( $index, $info ) {
+		global $wgMemc, $wgCaptchaSessionExpiration;
+		$wgMemc->set( wfMemcKey( 'captcha', $index ), $info,
+			$wgCaptchaSessionExpiration );
+	}
+
+	function retrieve( $index ) {
+		global $wgMemc;
+		$info = $wgMemc->get( wfMemcKey( 'captcha', $index ) );
+		if ( $info ) {
+			return $info;
+		} else {
+			return false;
+		}
+	}
+
+	function clear( $index ) {
+		global $wgMemc;
+		$wgMemc->delete( wfMemcKey( 'captcha', $index ) );
+	}
+
+	function cookiesNeeded() {
+		return false;
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.alias.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Aliases for special pages
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$specialPageAliases = array();
+
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'Captcha' => array( 'Captcha' ),
+);
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = array(
+	'Captcha' => array( 'كابتشا' ),
+);
+
+/** Egyptian Spoken Arabic (مصرى) */
+$specialPageAliases['arz'] = array(
+	'Captcha' => array( 'كابتشا' ),
+);
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = array(
+	'Captcha' => array( 'Kontraŭspamilo' ),
+);
+
+/** Estonian (Eesti) */
+$specialPageAliases['et'] = array(
+	'Captcha' => array( 'Robotilõks' ),
+);
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = array(
+	'Captcha' => array( 'کپچا' ),
+);
+
+/** Finnish (Suomi) */
+$specialPageAliases['fi'] = array(
+	'Captcha' => array( 'Ihmiskäyttäjävarmistus' ),
+);
+
+/** Galician (Galego) */
+$specialPageAliases['gl'] = array(
+	'Captcha' => array( 'Captcha' ),
+);
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = array(
+	'Captcha' => array( 'キャプチャ' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'Captcha' => array( 'Kaptscha' ),
+);
+
+/** Macedonian (Македонски) */
+$specialPageAliases['mk'] = array(
+	'Captcha' => array( 'Капча' ),
+);
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'Captcha' => array( 'ക്യാപ്ച' ),
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬) */
+$specialPageAliases['sr-ec'] = array(
+	'Captcha' => array( 'Потврдни_код' ),
+);
+
+/** Cantonese (粵語) */
+$specialPageAliases['yue'] = array(
+	'Captcha' => array( '驗證碼' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'Captcha' => array( '验证码' ),
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$specialPageAliases['zh-hant'] = array(
+	'Captcha' => array( '驗證碼' ),
+);
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,22 +1,26 @@
 <?php
 /**
- * Internationalisation file for ConfirmEdit extension.
+ * Internationalisation file for the ConfirmEdit extension.
  *
- * @addtogroup Extensions
-*/
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
 $messages['en'] = array(
 	'captcha-edit'               => 'To edit this page, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
-	'captcha-desc'               => 'Simple captcha implementation',
+	'captcha-desc'               => 'Provides CAPTCHA techniques to protect against spam and password-guessing',
 	'captcha-addurl'             => 'Your edit includes new external links.
 To help protect against automated spam, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
 	'captcha-badlogin'           => 'To help protect against automated password cracking, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
 	'captcha-createaccount'      => 'To help protect against automated account creation, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
 	'captcha-createaccount-fail' => "Incorrect or missing confirmation code.",
 	'captcha-create'             => 'To create the page, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
-	'captchahelp-title'          => 'Captcha help',
+	'captcha-sendemail'          => 'To help protect against automated spamming, please solve the simple sum below and enter the answer in the box ([[Special:Captcha/help|more info]]):',
+	'captcha-sendemail-fail'     => 'Incorrect or missing confirmation code.',
+	'captcha-disabledinapi'      => 'This action requires a captcha, so it cannot be performed through the API.',
+	'captchahelp-title'          => 'CAPTCHA help',
 	'captchahelp-cookies-needed' => "You will need to have cookies enabled in your browser for this to work.",
 	'captchahelp-text'           => "Web sites that accept postings from the public, like this wiki, are often abused by spammers who use automated tools to post their links to many sites.
 While these spam links can be removed, they are a significant nuisance.
@@ -26,7 +30,7 @@
 
 Unfortunately this may inconvenience users with limited vision or using text-based or speech-based browsers.
 At the moment we do not have an audio alternative available.
-Please contact the site administrators for assistance if this is unexpectedly preventing you from making legitimate posts.
+Please contact the  [[{{MediaWiki:Grouppage-sysop}}|site administrators]] for assistance if this is unexpectedly preventing you from making legitimate posts.
 
 Hit the 'back' button in your browser to return to the page editor.",
 	'captcha-addurl-whitelist'   => ' #<!-- leave this line exactly as it is --> <pre>
@@ -35,48 +39,102 @@
 #   * Every non-blank line is a regex fragment which will only match hosts inside URLs
  #</pre> <!-- leave this line exactly as it is -->',
 
-	'right-skipcaptcha'          => 'Perform captcha triggering actions without having to go through the captcha',
+	'right-skipcaptcha'          => 'Perform CAPTCHA-triggering actions without having to go through the CAPTCHA',
 );
 
 /** Message documentation (Message documentation)
  * @author Aotake
+ * @author Hamilton Abreu
  * @author MF-Warburg
  * @author Meithal
  * @author Meno25
  * @author Purodha
  * @author Siebrand
+ * @author The Evil IP address
  * @author Toliño
+ * @author Umherirrender
  */
 $messages['qqq'] = array(
-	'captcha-edit' => 'This message will be shown when editing if the wiki requires solving a captcha for editing.',
-	'captcha-desc' => 'Short description of this extension, shown in [[Special:Version]]. Do not translate or change links.',
-	'captcha-addurl' => 'The explanation of CAPTCHA shown to users trying to add new external links.',
-	'captcha-badlogin' => 'The explanation of CAPTCHA shown to users failed three times to type in correct password.',
-	'captcha-createaccount' => 'The explanation of CAPTCHA shown to users trying to create a new account.',
-	'captcha-create' => 'This message will be shown when creating a page if the wiki requires solving a captcha for that.',
+	'captcha-edit' => 'This message will be shown when editing if the wiki requires solving a captcha for editing.
+See also
+*{{msg-mw|Questycaptcha-edit}}
+*{{msg-mw|Fancycaptcha-edit}}',
+	'captcha-desc' => '{{desc}}',
+	'captcha-addurl' => 'The explanation of CAPTCHA shown to users trying to add new external links.
+See also
+*{{msg-mw|Questycaptcha-addurl}}
+*{{msg-mw|Fancycaptcha-addurl}}',
+	'captcha-badlogin' => 'The explanation of CAPTCHA shown to users failed three times to type in correct password.
+See also
+*{{msg-mw|Questycaptcha-badlogin}}
+*{{msg-mw|Fancycaptcha-badlogin}}',
+	'captcha-createaccount' => 'The explanation of CAPTCHA shown to users trying to create a new account.
+See also
+*{{msg-mw|Questycaptcha-createaccount}}
+*{{msg-mw|Fancycaptcha-createaccount}}',
+	'captcha-create' => 'This message will be shown when creating a page if the wiki requires solving a captcha for that.
+See also
+*{{msg-mw|Questycaptcha-create}}
+*{{msg-mw|Fancycaptcha-create}}',
 	'captchahelp-title' => 'The page title of [[Special:Captcha/help]]',
 	'captchahelp-text' => 'This is the help text shown on [[Special:Captcha/help]].',
 	'captcha-addurl-whitelist' => "See also: [[MediaWiki:Spam-blacklist]] and [[MediaWiki:Spam-whitelist]]. Leave all the wiki markup, including the spaces, as is. You can translate the text, including 'Leave this line exactly as it is'. The first line of this messages has one (1) leading space.",
-	'right-skipcaptcha' => '{{doc-right}}',
+	'right-skipcaptcha' => '{{doc-right|skipcaptcha}}',
 );
 
 /** Afrikaans (Afrikaans)
  * @author BrokenArrow
  * @author Naudefj
+ * @author පසිඳු කාවින්ද
  */
 $messages['af'] = array(
 	'captcha-edit' => 'U wysiging bevat nuwe webskakels. Neem kennis dat blote reklame van u werf, produk of besigheid as vandalisme beskou kan word. As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn in die prentjie moet intik: <br />([[Special:Captcha/help|Wat is hierdie?]])',
 	'captcha-desc' => 'Eenvoudige implementasie van captcha',
 	'captcha-addurl' => 'U wysiging bevat nuwe webskakels.
 As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn in die prentjie moet intik ([[Special:Captcha/help|Wat is hierdie?]]):',
+	'captcha-badlogin' => 'Los asseblief die onderstaande eenvoudige som op en voer die antwoord in die blokkie in ter beskerming teen die outomatiese kraak van wagwoorde ([[Special:Captcha/help|meer inligting]]):',
 	'captcha-createaccount' => "As 'n beskerming teen geoutomatiseerde gemors, tik asseblief die woorde wat in die beeld verskyn in om 'n rekening te skep: <br />([[Special:Captcha/help|Wat is hierdie?]])",
 	'captcha-createaccount-fail' => 'Verkeerde of geen bevestigingkode.',
 	'captcha-create' => 'U wysiging bevat nuwe webskakels. Neem kennis dat blote reklame van u werf, produk of besigheid as vandalisme beskou kan word. As beskerming teen outomatiese gemorsbydraes, sal u die woorde wat onder verskyn in die prentjie moet intik: <br />([[Special:Captcha/help|Wat is hierdie?]])',
+	'captcha-sendemail-fail' => 'Verkeerde of ontbrekende bevestigingskode.',
+	'captcha-disabledinapi' => "Hierdie aksie vereis dat 'n captcha, so dit kan nie uitgevoer word deur die API nie.",
 	'captchahelp-title' => 'Captcha-hulp',
 	'captchahelp-cookies-needed' => 'U moet koekies in u webblaaier aanskakel hê om dit te laat werk.',
-	'captchahelp-text' => "Webwerwe wat bydraes van die publiek aanvaar (soos hierdie wiki) word soms lastig geval deur kwaaddoeners met programme wat outomaties klomp skakels plak in die werf. Alhoewel hierdie gemors verwyder kan word, is dit lastig. In party gevalle, veral as u webskakels by 'n blad voeg, sal die wiki dalk 'n beeld met verwronge teks vertoon en vra dat u die woorde daarin intik. Omdat hierdie taak moeilik geoutomatiseer word, laat dit meeste regte mense toe om bydraes te maak terwyl dit meeste kwaaddoeners stop. Hierdie kan ongelukkig lastig wees vir mense met beperkte sig, of diegene wat teks- of spraakgebaseerde blaaiers gebruik. Tans is daar nog nie 'n klankalternatief beskikbaar nie. Kontak asseblief die werfadministrateurs vir hulp as hierdie u onverwags belemmer om legitieme bydraes te maak. Gebruik die \"terug\"-knoppie van u blaaier om na die vorige blad terug te keer.",
+	'captchahelp-text' => "Webwerwe wat bydraes van die publiek aanvaar (soos hierdie wiki) word soms lastig geval deur kwaaddoeners met programme wat outomaties skakels in 'n klomp werwe plaas. Alhoewel hierdie gemors verwyder kan word, is dit lastig.
+
+In party gevalle, veral as u skakels by 'n blad voeg, sal die wiki dalk 'n beeld met verwronge teks vertoon en vra dat u die woorde daarin intik. Omdat hierdie taak moeilik geoutomatiseer word, laat dit meeste regte mense toe om bydraes te maak terwyl dit meeste kwaaddoeners stop.
+
+Hierdie kan ongelukkig lastig wees vir mense met beperkte sig, of diegene wat teks- of spraakgebaseerde blaaiers gebruik. Tans is daar nog nie 'n klankalternatief beskikbaar nie. Kontak asseblief die [[{{MediaWiki:Grouppage-sysop}}|werfadministrateurs]] vir hulp as hierdie u onverwags belemmer om legitieme bydraes te maak.
+
+Gebruik die \"terug\"-knoppie van u blaaier om na die vorige blad terug te keer.",
+	'right-skipcaptcha' => 'Captcha-handelinge uitvoer sonder om die captcha te hoef oplos',
 );
 
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'captcha-edit' => 'Për të redaktuar këtë faqe, ju lutem zgjidh shuma e thjeshtë më poshtë dhe të hyjë në përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-desc' => 'captcha Simple zbatimin e',
+	'captcha-addurl' => 'Your redakto përfshin të jashtme lidhje të reja. Për të ndihmuar në mbrojtjen kundër spam automatizuar, ju lutem zgjidh shuma e thjeshtë më poshtë dhe të hyjë në përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-badlogin' => 'Për të ndihmuar në mbrojtjen kundër fjalëkalimin automatizuar plasaritje, ju lutem zgjidh shuma e thjeshtë më poshtë dhe të hyjë në përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-createaccount' => 'Për të ndihmuar në mbrojtjen kundër krijimit llogari e automatizuar, ju lutem zgjidh shuma e thjeshtë më poshtë dhe të hyjë në përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-createaccount-fail' => 'Pasakta ose të humbur Kodi i shifruar.',
+	'captcha-create' => 'Për të krijuar një faqe, ju lutem zgjidh shuma e thjeshtë më poshtë dhe të hyjë në përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-sendemail' => 'Për të ndihmuar në mbrojtjen kundër spamming automatizuar, ju lutem zgjidh shuma e thjeshtë më poshtë dhe të hyjë në përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-sendemail-fail' => 'Pasakta ose të humbur Kodi i shifruar.',
+	'captcha-disabledinapi' => 'Ky veprim kërkon një captcha, kështu që nuk mund të kryhet përmes API.',
+	'captchahelp-title' => 'Captcha ndihmë',
+	'captchahelp-cookies-needed' => 'Ju duhet të keni cookies të aktivizuara në shfletuesin tuaj për këtë për të punuar.',
+	'captchahelp-text' => "Web faqet që pranojnë postings nga publiku, si ky wiki, shpesh keqtrajtohen nga spammers që përdorin mjete të automatizuar të postoni lidhjet e tyre me shumë vende. Përderisa këto lidhje spam mund të hiqen, ata janë një ngatërresë të rëndësishme. Ndonjëherë, sidomos kur duke shtuar të reja lidhje interneti në një faqe, wiki mund të tregojë se një imazh i ose deformuar tekst me ngjyra dhe kërkoni ju që të shtypni fjalë të treguar. Ngaqë kjo është një detyrë që është e vështirë për të automatizuar, ajo do të lejojë të vërtetë njerëzit më të për të bërë detyrat e tyre, ndërsa ndaluar më spammers dhe robotik sulmuesit të tjera. Për fat të keq kjo bezdi përdoruesit mund me vizion të kufizuar ose duke përdorur me bazë ose shprehjeje me bazë shfletuesit tekst. Për momentin ne nuk kemi një alternativë audio në dispozicion. Ju lutemi të kontaktoni [[{{MediaWiki:Grouppage-sysop}} site administratorët) |]] për ndihmë, nëse kjo është e papritur në parandalimin e ju prej bërë postimet legjitime. Hit 'butonin mbrapa në shfletuesin tuaj për t'u kthyer në faqen e redaktorit.",
+	'captcha-addurl-whitelist' => '# <!-- leave this line exactly as it is --><pre>
+# Sintaksa është si më poshtë:
+# * Çdo gjë nga një "karakter #" në fund të linjës është një koment
+# * Çdo linjës jo të zbrazët është një fragment regex i cili vetëm do të përputhen me pret brenda URL
+ # </pre><!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'captcha Kryerja e veprimeve të shkaktuar pa pasur nevojë të shkojë nëpër captcha',
+);
+
 /** Amharic (አማርኛ)
  * @author Codex Sinaiticus
  */
@@ -97,39 +155,45 @@
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'captcha-edit' => 'Ta editar ista pachina, faiga por fabor a suma simpla que apareixe contino y escriba a soluzión en a caixa ([[Special:Captcha/help|más informazión]]):',
-	'captcha-desc' => 'Implementazión simpla de captcha',
-	'captcha-addurl' => "A suya edizión encluye binclos esternos. Ta aduyar-nos en a protezión contra o spam automatizato, por fabor, faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más informazión]]):",
-	'captcha-badlogin' => 'Ta aduyar en a protezión contra a obtenzión automatizata de palabras de paso, por fabor faiga a suma simpla que amanixe contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más informazión]]):',
-	'captcha-createaccount' => "Ta aduyar-nos en a protezión contra a creyazión automatica de cuentas, por fabor faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más informazión]]):",
-	'captcha-createaccount-fail' => 'No ha escrito o codigo de confirmazión, u iste ye incorreuto.',
-	'captcha-create' => "Ta creyar a pachina, por fabor faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más informazión]]):",
+	'captcha-edit' => 'Ta editar ista pachina, faiga por favor a suma simpla que apareixe contino y escriba a solución en a caixa ([[Special:Captcha/help|más información]]):',
+	'captcha-desc' => 'Implementación de CAPTCHA ta protecher contra o spam y dovinación de contrasenyas.',
+	'captcha-addurl' => "A suya edición encluye vinclos esternos. Ta aduyar-nos en a proteción contra o spam automatizato, por favor, faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):",
+	'captcha-badlogin' => 'Ta aduyar en a protección contra a obtención automatizata de parolas de paso, por favor faiga a suma simpla que amaneixe contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):',
+	'captcha-createaccount' => "Ta aduyar-nos en a proteción contra a creyación automatica de cuentas, por favor faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):",
+	'captcha-createaccount-fail' => 'No ha escrito o codigo de confirmación, u iste ye incorreuto.',
+	'captcha-create' => "Ta creyar a pachina, por favor faiga a suma simpla que s'amuestra contino y escriba a respuesta en a caixa ([[Special:Captcha/help|más información]]):",
+	'captcha-sendemail' => 'Ta protecher-nos contra o spam automatizau, resuelva a suma facil que se presienta contino y escriba a respuesta en o quadro de texto ([[Special:Captcha/help|mas información]]):',
+	'captcha-sendemail-fail' => 'O codigo de confirmación falta u ye incorrecto.',
+	'captcha-disabledinapi' => "Ista acción requiere un captcha, asinas que no puede estar executada a traviés d'un API.",
 	'captchahelp-title' => 'Aduya sobre o "captcha"',
-	'captchahelp-cookies-needed' => 'Ta que o sistema funzione le cal tener as cookies autibatas en o nabegador.',
-	'captchahelp-text' => "Os sitios web que azeptan mensaches d'o publico, como iste wiki, son á ormino obcheto d'abusos por spammers que fan serbir ferramientas automatizatas ta encluyir-ie binclos ta asabelos sitios. Anque istos binclos se pueden sacar, son un gran estorbo.
+	'captchahelp-cookies-needed' => 'Ta que o sistema funcione le cal tener as cookies activatas en o navegador.',
+	'captchahelp-text' => "Os sitios web que acceptan mensaches d'o publico, como iste wiki, son a ormino obchecto d'abusos por spammers que fan servir ferramientas automatizatas ta encluyir-ie vinclos ta a-saber-los sitios. Encara que istos vinclos se pueden sacar, son un gran estorbo.
 
-Bellas begadas, espezialment cuan se mire de adibir nuebos binclos á una pachina, o wiki talment le amuestre una imachen con testo en color y distorsionato, y le pregunte cuals son as palabras amostratas. Como ista ye una faina de mal automatizar, premitirá á os usuarios umanos fer as suyas edizions de bez que aturará á muitos spammers y atacants automaticos.
+Bellas vegadas, especialment quan se mire de adhibir nuevos vinclos a una pachina, o wiki talment le amuestre una imachen con testo en color y distorsionato, y le pregunte quáls son as parolas amostratas. Como ista ye una fayena de mal automatizar, premitirá a os usuarios humanos fer as suyas edicions de vez que aturará a muitos spammers y atacants automaticos.
 
-Manimenos, isto puede estar un barrache ta usuarios con bisión limitata u que faigan ser nabegadors basatos en testo u en a boz. Por l'inte no tenemos garra alternatiba de audio. Por fabor, contaute con os almenistradors d'o sistema ta demandar aduya si isto le ye pribando de fer as suyas edizions lechitimas.
+Manimenos, isto puede estar un barrache ta usuarios con visión limitata u que faigan ser navegadors basatos en texto u en a voz. Por l'inte no tenemos garra alternativa de audio. Por favor, contacte con os [[{{MediaWiki:Grouppage-sysop}}|administradors]] d'o wiki ta demandar aduya si isto le ye privando de fer as suyas edicions lechitimas.
 
-Punche o botón 'entazaga' d'o suyo nabegador ta tornar t'o editor de pachinas.",
+Punche o botón 'enta zaga' d'o suyo navegador ta tornar ta l'editor de pachinas.",
 	'captcha-addurl-whitelist' => " #<!-- leave this line exactly as it is --> <pre>
-# A sintaxis ye asinas:
-#  * Tot o que bi ha dende un caráuter \"#\" dica a fin d'a linia ye un comentario
-#  * Cualsiquier linia con testo un troz d'expresión regular (regex) que sólo concordará con os hosts aintro d'URLs
+# A sintaxi ye asinas:
+#  * Tot o que bi ha dende un carácter \"#\" dica a fin d'a linia ye un comentario
+#  * Qualsiquier linia con testo un troz d'expresión regular (regex) que sólo concordará con os hosts aintro d'URLs
    #</pre> <!-- leave this line exactly as it is -->",
-	'right-skipcaptcha' => 'Fer aizions que requieren o captcha sin fer serbir o captcha',
+	'right-skipcaptcha' => 'Fer accions que requieren o captcha sin fer servir o captcha',
 );
 
 /** Arabic (العربية)
+ * @author Aiman titi
  * @author Alnokta
+ * @author Loya
  * @author Meno25
  * @author Mido
  * @author OsamaK
+ * @author Samer
  */
 $messages['ar'] = array(
 	'captcha-edit' => 'لتعديل هذه الصفحة، من فضلك قم بحل المسألة الرياضية البسيطة بالأسفل وأدخل الإجابة في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
-	'captcha-desc' => 'تطبيق كابتشا بسيط',
+	'captcha-desc' => 'يوفر تقنيات كابتشا للحماية ضد السبام وتخمين كلمات السر',
 	'captcha-addurl' => 'تعديلك يحتوي على وصلات خارجية جديدة.
 للمساعدة في الحماية من السبام الأوتوماتيكي، من فضلك حل عملية الجمع بالأسفل وأدخل الإجابة في الصندوق  ([[Special:Captcha/help|مزيد من المعلومات]]):',
 	'captcha-badlogin' => 'للمساعدة في الحماية ضد سرقة كلمات السر، من فضلك حل عملية الجمع البسيطة بالأسفل وأدخل الحل في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
@@ -137,6 +201,9 @@
 	'captcha-createaccount-fail' => 'كود تأكيد غير صحيح أو مفقود.',
 	'captcha-create' => 'لإنشاء هذه الصفحة، من فضلك حل المسألة الرياضية التالية وأدخل
 الإجابة في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'captcha-sendemail' => 'للمساعدة في الحماية ضد السخام الأتوماتيكي، رجاءً حُل مسألة الجمع البسيطة أدناه وأدخل الإجابة في المربع ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'captcha-sendemail-fail' => 'كود تأكيد غير صحيح أو مفقود',
+	'captcha-disabledinapi' => 'هذا الإجراء يتطلب تحقيق , لذلك لايمكن أعتمادها من API.',
 	'captchahelp-title' => 'مساعدة الكابتشا',
 	'captchahelp-cookies-needed' => 'ستحتاج إلى أن تكون الكوكيز مفعلة في متصفحك لكي يعمل هذا',
 	'captchahelp-text' => "عادة ما يتم في المواقع التي تقبل الردود والرسائل من العامة، كهذا الويكي، تخريب الموقع عن طريق الأشخاص الذين يستعملون آليات معينة لإرسال وصلاتهم لمواقع متعددة بصورة آلية.
@@ -147,7 +214,7 @@
 
 للأسف سيكون هذا صعبا بالنسبة لمستخدمي المتصفحات المحدودة أو التي تعتمد على النصوص فقط أو قراءة النصوص.
 في الوقت الحالي لا يوجد لدينا بديل سمعي.
-من فضلك راسل إداريي الموقع للمساعدة إذا كان هذا الأمر يمنعك من التعديل ووضع وصلات قانونية.
+من فضلك راسل [[{{MediaWiki:Grouppage-sysop}}|إداريي الموقع]] للمساعدة إذا كان هذا الأمر يمنعك من التعديل ووضع وصلات قانونية.
 
 إذا كنت تحرر صفحة معينة: اضغط زر 'العودة' في متصفحك للعودة إلى التحرير.",
 	'captcha-addurl-whitelist' => ' #<!-- اترك هذا السطر تماما كما هو --> <pre>
@@ -182,7 +249,7 @@
 
 للاسف،دا ممكن يسبب ازعاج لليوزرو اللى نظرهم ضعيف او اللى بيستعملو براوز معتمد على الكلام او النصوص.
 فى الوقت الحالى احنا ما عندناش اى بديل سمعى متوافر.
-لو سمحت تتصل بلاداريين بتوع الموقع علشان يساعدوك لو دا منعك بشكل مش متوقع من انك تشارك بشكل قانوني.
+لو سمحت تتصل [[{{MediaWiki:Grouppage-sysop}}|بلاداريين]] بتوع الموقع علشان يساعدوك لو دا منعك بشكل مش متوقع من انك تشارك بشكل قانونى.
 
 دوس على زرار 'back'اللى فى البراوزر بتاعك علشان ترجع لتحرير الصفحة.",
 	'captcha-addurl-whitelist' => ' #<!-- سيب السطر دا زى ما هو كدا بالظبط--> <pre>
@@ -194,55 +261,62 @@
 );
 
 /** Assamese (অসমীয়া)
+ * @author Chaipau
  * @author Rajuonline
  */
 $messages['as'] = array(
 	'captcha-edit' => 'এই পৃষ্ঠাটো সম্পাদনা কৰিবলৈ তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক
 ([[Special:Captcha/help|অধিক তথ্য]]):',
 	'captcha-addurl' => 'আপোনাৰ সম্পাদনাত বাহিৰলৈ সংযোগ আছে।
-স্বয়ংক্রীয় স্পামৰ পৰা বাচিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক ([[Special:Captcha/help|অধিক তথ্য]]):',
-	'captcha-badlogin' => 'স্বয়ংক্রীয়ভাবে গুপ্তশব্দ ভঙাৰ পৰা বাচিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক
+স্বয়ংক্ৰীয় স্পামৰ পৰা বাচিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক ([[Special:Captcha/help|অধিক তথ্য]]):',
+	'captcha-badlogin' => 'স্বয়ংক্ৰীয়ভাবে গুপ্তশব্দ ভঙাৰ পৰা বাচিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক
 ([[Special:Captcha/help|অধিক তথ্য]]):',
-	'captcha-createaccount' => 'স্বয়ংক্রীয় হোৱা ভাবে সদস্যভুক্তি ৰোধ কৰিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক
+	'captcha-createaccount' => 'স্বয়ংক্ৰীয় হোৱা ভাবে সদস্যভুক্তি ৰোধ কৰিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক
 ([[Special:Captcha/help|অধিক তথ্য]]):',
 	'captcha-createaccount-fail' => 'ভুল বা খালী নিশ্বিতকৰণ শব্দ',
 	'captcha-create' => 'এই পৃষ্ঠাটো তৈয়াৰ কৰিবলৈ, তলৰ সহজ অংকটো কৰি উত্তৰতো বাকছৰ ভিতৰত লিখক
 ([[Special:Captcha/help|অধিক তথ্য]]):',
-	'captchahelp-cookies-needed' => 'এই কামতো সম্পন্ন কৰিবলৈ, আপোনাৰ ব্রাউজাৰত কুকী সক্রীয় থাকিব লাগিব',
-	'captchahelp-text' => "যিবোৰ ৱেবচাইটত জনতাই পাঠ্য ভৰাব পাৰে, যেনে এই ৱিকি, সেইবোৰক প্রায়ে দুস্ক্রিতিকাৰি স্পেমাৰবোৰে স্বয়ংক্রীয় আহিলাৰ দ্বাৰা তেওলোকৰ চাইটলৈ সংযোগ ভৰাই আক্রমন কৰে। 
-যদিও তেনে স্পাম সংযোগ গুচাব পাৰি, পিছে এয়া এক ডাঙৰ উপদ্রৱ।
+	'captchahelp-cookies-needed' => 'এই কামতো সম্পন্ন কৰিবলৈ, আপোনাৰ ব্ৰাউজাৰত কুকী সক্ৰীয় থাকিব লাগিব',
+	'captchahelp-text' => "যিবোৰ ৱেবচাইটত জনতাই পাঠ্য ভৰাব পাৰে, যেনে এই ৱিকি, সেইবোৰক প্ৰায়ে দুস্ক্ৰিতিকাৰি স্পেমাৰবোৰে স্বয়ংক্ৰীয় আহিলাৰ দ্বাৰা তেওলোকৰ চাইটলৈ সংযোগ ভৰাই আক্ৰমন কৰে।
+যদিও তেনে স্পাম সংযোগ গুচাব পাৰি, পিছে এয়া এক ডাঙৰ উপদ্ৰৱ।
 
 কেতিয়াবা, সাধাৰণতে যেতিয়া কোনো পৃষ্ঠালৈ নতুন সংযোগ সৃষ্টি কৰা হয়, তেতিয়া ৱিকিয়ে এটা ৰঙীন বা বিকৃত চবি দেখুৱাই তাত থকা শব্দখিনি আপোনাক টাইপ কৰিব কব পাৰে।
-যিহেতু এই কামতো স্বয়ংক্রীয় ভাবে কৰা প্রায়ে অসম্ভব, ই বেছিভাগ প্রকৃত ব্যক্তিক পাঠ্য ভৰাব দিয়াৰ লগতে স্বয়ংক্রীয় আহিলাৰ দ্বাৰা পাঠ্য ভৰোৱা দুস্ক্রিতিকাৰি সকলক ৰোধ কৰিব পাৰে।
+যিহেতু এই কামতো স্বয়ংক্ৰীয় ভাবে কৰা প্ৰায়ে অসম্ভব, ই বেছিভাগ প্ৰকৃত ব্যক্তিক পাঠ্য ভৰাব দিয়াৰ লগতে স্বয়ংক্ৰীয় আহিলাৰ দ্বাৰা পাঠ্য ভৰোৱা দুস্ক্ৰিতিকাৰি সকলক ৰোধ কৰিব পাৰে।
 
-দুর্ভাগ্যক্রমে, সিমিত দৃষ্টিশক্তি থকা ব্যক্তিসকলে, বা পাঠ্য-আধাৰিত অথবা ধ্বনি-আধাৰিত ব্রাউজাৰ ব্যৱহাৰ কৰা ব্যক্তিসকলে ইয়াৰ বাবে আসুবিধা পাব পাৰে.
+দুৰ্ভাগ্যক্ৰমে, সিমিত দৃষ্টিশক্তি থকা ব্যক্তিসকলে, বা পাঠ্য-আধাৰিত অথবা ধ্বনি-আধাৰিত ব্ৰাউজাৰ ব্যৱহাৰ কৰা ব্যক্তিসকলে ইয়াৰ বাবে আসুবিধা পাব পাৰে.
 এই সময়ত ইয়াৰ কোনো ধ্বনি-আধাৰিত বিকল্প আমাৰ হাতত নাই।
 
-ইয়াৰ বাবে যদি আপুনি যুক্তিসম্মত পঠ্য ভৰাব অসুবিধা পাইছে, তেনেহলে চাইট প্রৱন্ধকৰ লগত যোগযোগ কৰক।
+ইয়াৰ বাবে যদি আপুনি যুক্তিসম্মত পঠ্য ভৰাব অসুবিধা পাইছে, তেনেহলে [[{{MediaWiki:Grouppage-sysop}}|চাইট প্ৰৱন্ধকৰ]] লগত যোগাযোগ কৰক।
 
-পৃষ্ঠা সম্পাদনালৈ ঘুৰি যাবলৈ আপোনাৰ ব্রাউজাৰৰ 'back' বুটামত টিপা মাৰক।",
+পৃষ্ঠা সম্পাদনালৈ ঘুৰি যাবলৈ আপোনাৰ ব্ৰাউজাৰৰ 'back' বুটামত টিপা মাৰক।",
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
 	'captcha-edit' => "Pa editar esta páxina, por favor resuelvi la suma simple d'embaxo y pon la rempuesta nel caxellu ([[Special:Captcha/help|más información]]):",
-	'captcha-desc' => 'Implementación cenciella captcha',
+	'captcha-desc' => "Ufre téuniques de CAPTCHA pa protexese escontra'l spam y descubrimientu de contraseñes",
 	'captcha-addurl' => "La to edición inclúi nuevos enllaces esternos. P'aidar a protexer escontra'l spam automatizáu, por favor resuelvi la suma simple d'embaxo y pon la rempuesta nel caxellu ([[Special:Captcha/help|más información]]):",
 	'captcha-badlogin' => "P'aidar a protexer escontra'l descifráu automáticu de claves, por favor resuelvi la suma simple d'embaxo y pon la rempuesta nel caxellu ([[Special:Captcha/help|más información]]):",
 	'captcha-createaccount' => "P'aidar a protexer escontra la creación automática de cuentes, por favor resuelvi la suma simple d'embaxo y pon la rempuesta nel caxellu ([[Special:Captcha/help|más información]]):",
 	'captcha-createaccount-fail' => 'Códigu de confirmación incorreutu o ausente.',
 	'captcha-create' => "Pa crear la páxina, por favor resuelvi la suma simple d'embaxo y pon la rempuesta nel caxellu ([[Special:Captcha/help|más información]]):",
-	'captchahelp-title' => 'Aida tocante al captcha',
+	'captcha-sendemail' => "P'aidar a protexese escontra la puxarra automatizada, por favor resuelvi la suma cenciella d'embaxo y pon la rempuesta na caxella ([[Special:Captcha/help|más información]]):",
+	'captcha-sendemail-fail' => 'Códigu de confirmación incorreutu o ausente.',
+	'captcha-disabledinapi' => 'Esta aición requier un captcha y, poro, nun pue facese pel API',
+	'captchahelp-title' => 'Ayuda tocante al CAPTCHA',
 	'captchahelp-cookies-needed' => "Has tener les cookies habilitaes nel to navegador pa que'l sistema funcione.",
-	'captchahelp-text' => "Los sitios web qu'aceuten mensaxes del publicu, como esta wiki, davezu son oxetu d'abusu por spammers qu'usen programes pa incluyir los sos enllaces automáticamente. Si bien estos enllaces spam puen quitase, son una bona molestia.
+	'captchahelp-text' => "Los sitios web qu'aceuten mensaxes del publicu, como esta wiki, davezu son oxetu d'abusu por spammers qu'usen programes pa incluyir los sos enllaces automáticamente.
+Mientres qu'estos enllaces de puxarra puen desaniciase, son enforma cafiantes.
 
-Dacuando, especialmente cuando amiesta nuevos enllaces web nuna páxina, la wiki pue amosate una imaxe de testu coloreáu o distorsionáu y va pidite qu'escribas les pallabres amosaes. Yá qu'esti ye un llabor difícil d'automatizar, permitirá a les más de les persones reales unviar los sos testos, al empar que detién los más de los spammers y otros atacantes automáticos.
+Dacuando, especialmente al amestar nuevos enllaces web nuna páxina, la wiki pue amosate una imaxe de testu coloreáu o distorsionáu y va pidite qu'escribas les pallabres que s'amuesen.
+Yá qu'esti ye un llabor difícil d'automatizar, permitirá a les más de les persones reales unviar los sos testos, al empar que llenden los más de los spammers y otros atacantes automáticos.
 
-Desafortunadamente esto pue suponer un inconveniente pa los usuarios con visión llimitada o qu'usen navegadores de testu o voz. De momentu nun tenemos disponible una alternativa per audiu. Por favor, contauta colos alministradores del sitiu pa pidir aida si esto t'impide facer ediciones llexítimes.
+Por desgracia, esto pue ser un inconveniente pa los usuarios con visión llimitada o qu'usen navegadores de testu o voz. De momentu nun tenemos disponible una alternativa de soníu. Por favor, ponte'n contautu colos [[{{MediaWiki:Grouppage-sysop}}|alministradores del sitiu]] pa pidir ayuda si esto te torgare facer ediciones llexítimes.
 
-Calca nel botón 'atrás' del to navegador pa volver a la páxina d'edicion.",
+Calca nel botón 'atrás' del to navegador pa volver a la páxina d'edición.",
 	'captcha-addurl-whitelist' => ' #<!-- dexa esta llinia exautamente como ta --> <pre>
 # La sintaxis ye como sigue:
 #  * Too dende\'l carauter "#" hasta la fin de la llinia ye un comentariu
@@ -251,6 +325,41 @@
 	'right-skipcaptcha' => 'Facer les acciones que requieren captcha ensin tener que lu introducir',
 );
 
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'captcha-edit' => 'Был битте мөхәррирләү өсөн, зинһар, ябай мәсьәләне сисегеҙ һәм яуабын түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'captcha-desc' => 'Спамдан һәм паролде яратыуҙан һаҡлау өсөн CAPTCHA ысулдары менән тәьмин итә',
+	'captcha-addurl' => 'Һеҙҙең текстығыҙҙа яңы тышҡы һылтанмалар бар.
+Автоматик спамдан һаҡлау маҡсатында, зинһар, ябай мәсьәләне сисегеҙ һәм яуабын түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'captcha-badlogin' => 'Паролде автоматик ватыуҙан һаҡлау маҡсатында, зинһар, ябай мәсьәләне сисегеҙ һәм яуабын түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'captcha-createaccount' => 'Иҫәп яҙмаларын автоматик булдырыуҙан һаҡлау маҡсатында, зинһар, ябай мәсьәләне сисегеҙ һәм яуабын түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'captcha-createaccount-fail' => 'Раҫлау коды керетелмәгән йәки дөрөҫ түгел.',
+	'captcha-create' => 'Яңы бит булдырыу өсөн, зинһар, ябай мәсьәләне сисегеҙ һәм яуабын түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'captcha-sendemail' => 'Автоматик спамдан һаҡлау маҡсатында, зинһар, ябай мәсьәләне сисегеҙ һәм яуабын түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'captcha-sendemail-fail' => 'Раҫлау коды керетелмәгән йәки дөрөҫ түгел.',
+	'captcha-disabledinapi' => 'Был ғәмәл captcha тикшереүен талап итә, шуға күрә API аша башҡарыла алмай.',
+	'captchahelp-title' => 'Captcha тураһында белешмә',
+	'captchahelp-cookies-needed' => 'Бының эшләүе өсөн һеҙҙең браузерығыҙҙа куки булыуы кәрәк.',
+	'captchahelp-text' => 'Үҙенә эстәлек өҫтәргә һәм эстәлеген мөхәррирләргә мөмкинлек биргән веб-сайттар, шул иҫәптән был вики, йыш ҡына сайттарға автоматик һылтанмалар өҫтәү өсөн программалар ҡулланған спамлаусыларҙың маҡсатына әйләнә.
+
+Ҡайһы бер ғәмәлдәрҙе башҡарған ваҡытта — мәҫәлән, биткә һылтанма өҫтәгән ваҡытта — һеҙ төҫлө йәки боҙолған текстлы махсус рәсем күрә алаһығыҙ, һеҙгә ошо текстты керетергә тәҡдим ителәсәк.
+Программалар өсөн боҙолған текстты уҡыу ауыр мәсьәлә булып торғанға күрә, спамлау һәм вандал программаларының күпселеге быны хәл итә алмаясаҡ, ә кешеләр еңел башҡарасаҡ.
+
+Үкенескә ҡаршы, бындай һаҡлыҡ саралары күҙҙәре насар күреүсе кешеләргә йәки текстлы йәки уҡыусы браузерҙар ҡулланған кешеләргә уңайһыҙлыҡ килтереүе мөмкин.
+Әлеге ваҡытта беҙҙең бындай тикшереүҙе тауыш менән алыштырыу мөмкинлеге юҡ.
+Зинһар, әгәр бындай тикшереү һеҙгә сайтта намыҫ менән эшләргә ҡамасаулаһа, [[{{MediaWiki:Grouppage-sysop}}|хәкимдәргә]] мөрәжәғәт итегеҙ.
+
+Мөхәррирләүгә кире ҡайтыу өсөн, браузерығыҙҙа кире ҡайтыу төймәһенә баҫығыҙ.',
+	'captcha-addurl-whitelist' => '#<!-- leave this line exactly as it is --> <pre>
+# Синтаксистың тасуирламаһы:
+#  * "#" хәрефенән алып бөтә юл юлдың аҙағына тиклем аңлатма тип һанала
+#  * Һәр буш булмаған юл URL адресындағы үҙәк исеменең регуляр аңлатмаһы тип һанала 
+ #</pre> <!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'Captcha тикшереүен талап иткән ғәмәлдәрҙе тикшереүһеҙ башҡарыу',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
@@ -293,8 +402,11 @@
 
 /** Belarusian (Беларуская)
  * @author Yury Tarasievich
+ * @author Хомелка
  */
 $messages['be'] = array(
+	'captcha-edit' => 'Для змянення гэтай старонцы, калі ласка, вырашыце простую суму ніжэй і ўвядзіце адказ у поле ([[Special:Captcha/help|more info]]):',
+	'captcha-desc' => 'Вырашэнне простай каптчы',
 	'captcha-create' => 'Каб стварыць старонку, развяжыце простае ўраўненне, што ніжэй, і ўпішыце адказ у адпаведнае поле ([[Special:Captcha/help|больш падрабязна]]):',
 	'captchahelp-title' => 'Даведка Капчы',
 	'captchahelp-cookies-needed' => 'Каб гэтая магчымасць працавала, належыць дазволіць у браўзеры апрацоўку квіткоў ("кукі").',
@@ -305,20 +417,24 @@
   #</pre> <!-- радок абавязкова пакінуць як ёсць (у т.л., з прагалам у пачатку) -->',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Red Winged Duck
+ * @author Wizardist
  */
 $messages['be-tarask'] = array(
 	'captcha-edit' => 'Каб рэдагаваць гэтую старонку, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|падрабязнасьці]]):',
-	'captcha-desc' => 'Простая рэалізацыя captcha',
+	'captcha-desc' => 'Дадае мэтад CAPTCHA для абароны супраць спаму і падбору пароляў',
 	'captcha-addurl' => 'Вашае рэдагаваньне ўтрымлівае новыя вонкавыя спасылкі.
 У мэтах абароны ад аўтаматычнага спаму, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|падрабязнасьці]]):',
-	'captcha-badlogin' => 'У мэтах абароны ад аўтаматычнага ўзлому пароляў, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|падрабязнасьці]]):',
-	'captcha-createaccount' => 'У мэтах абароны ад аўтаматычнага стварэньня рахункаў, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|падрабязнасьці]]):',
-	'captcha-createaccount-fail' => 'Пацьвярджальны код няслушны ці адсутнічае.',
+	'captcha-badlogin' => 'У мэтах абароны ад аўтаматычнага ўзлому пароляў, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'captcha-createaccount' => 'У мэтах абароны ад аўтаматычнага стварэньня рахункаў, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'captcha-createaccount-fail' => 'Код пацьверджаньня — няслушны альбо адсутнічае.',
 	'captcha-create' => 'Каб стварыць старонку, калі ласка, знайдзіце простую суму і ўвядзіце адказ у поле ([[Special:Captcha/help|падрабязнасьці]]):',
+	'captcha-sendemail' => 'У мэтах абароны супраць аўтаматычнага спаму, калі ласка, знайдзіце простую суму і ўвядзіце вынік у полі ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'captcha-sendemail-fail' => 'Код пацьверджаньня — няслушны альбо адсутнічае.',
+	'captcha-disabledinapi' => 'Гэтае дзеяньне патрабуе праверкі captcha, і з-за гэтага ня можа быць выкананае праз API.',
 	'captchahelp-title' => 'Дапамога ў captcha',
 	'captchahelp-cookies-needed' => 'Вам трэба дазволіць файлы-кукі ў Вашым браўзэры, каб гэтая функцыя працавала.',
 	'captchahelp-text' => 'Вэб-сайты, якія прымаюць запісы ад грамадзкасьці, падобныя на {{GRAMMAR:вінавальны|{{SITENAME}}}}, часта атакуюцца спамэрамі, якія ўжываюць аўтаматызаваныя інструмэнты, каб зьмяшчаць свае спасылкі на шмат сайтаў.
@@ -329,7 +445,7 @@
 
 На жаль, гэта можа выклікаць нязручнасьці для ўдзельнікаў з абмежаваньнямі па зроку і для тых, хто ўжывае тэкставыя ці моўныя браўзэры.
 На гэты момант мы ня маем аўдыё-альтэрнатывы гэтай праверцы.
-Калі ласка, зьвяжыцеся з адміністратарамі {{GRAMMAR:родны|{{SITENAME}}}}, калі гэтая праверка перашкаджае Вам рабіць слушныя запісы.
+Калі ласка, зьвяжыцеся з [[{{MediaWiki:Grouppage-sysop}}|адміністратарамі]], калі гэтая праверка перашкаджае Вам рабіць слушныя запісы.
 
 Націсьніце кнопку «назад» у Вашым браўзэры, каб вярнуцца да рэдагаваньня старонкі.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -347,41 +463,49 @@
  */
 $messages['bg'] = array(
 	'captcha-edit' => 'Редактирането на тази статия изисква потребителите да въведат отговора на задачата по-долу в текстовата кутия ([[Special:Captcha/help|повече информация]]):',
-	'captcha-desc' => 'Имплементира опростена captcha',
+	'captcha-desc' => 'Предоставя опростена captcha технология като защита срещу спам и налучкване на пароли',
 	'captcha-addurl' => 'Тази редакция съдържа нови външни препратки. Като защита срещу автоматизиран спам системата изисква потребителите да въведат отговора на задачата по-долу в текстовата кутия ([[Special:Captcha/help|повече информация]]):',
 	'captcha-badlogin' => 'Като защита срещу автоматизирано компрометиране на пароли, системата изисква потребителите да въведат отговора на задачата по-долу в текстовата кутия ([[Special:Captcha/help|повече информация]]):',
 	'captcha-createaccount' => 'Като защита от автоматизирани регистрации, системата изисква при регистриране на потребителска сметка потребителите да въведат отговора на задачата по-долу в текстовата кутия ([[Special:Captcha/help|повече информация]]):',
 	'captcha-createaccount-fail' => 'Грешен или липсващ код за потвърждение.',
 	'captcha-create' => 'За създаване на страницата е необходимо да се реши задачата и да се въведе отговорът в кутията ([[Special:Captcha/help|повече информация]]):',
+	'captcha-sendemail-fail' => 'Грешен или липсващ код за потвърждение.',
+	'captcha-disabledinapi' => 'Това действие изисква капча, следователно не може да бъде извършено през приложния програмен интерфейс.',
 	'captchahelp-title' => 'Помощ за сaptcha',
+	'captchahelp-cookies-needed' => 'За да работи това, необходимо е бисквитките на вашия браузър да са включени.',
 	'captchahelp-text' => "Уеб сайтовете, които позволяват свободно да се редактира и добавя ново съдържание (като това уики), често са обект на атаки от страна на спамъри, които използват средства за автоматизирано редактиране за публикуване на препратки към много сайтове. Въпреки че тези препратки могат да бъдат премахнати, те са особено неприятни за потребителите.
 
 Понякога, особено когато се добавят нови препратки към страниците, е възможно уикито да покаже картинка с текст, който трябва да бъде въведен в посоченото поле. Тъй като това е стъпка, която е трудно да бъде прескочена при автоматизирано редактиране, тя затруднява и спира повечето спамъри и роботи, но допуска истинските потребителите да правят редакции.
 
-За съжаление тази стъпка може да затрудни незрящи потребители или потребители, които използват текстови или речеви браузъри. За момента системата не разполага с възможност за гласова алтернатива. Обърнете се за помощ към администратор на сайта, ако това изискване на системата ви затруднява да допринасяте легитимно.
+За съжаление тази стъпка може да затрудни незрящи потребители или потребители, които използват текстови или речеви браузъри. За момента системата не разполага с възможност за гласова алтернатива. Обърнете се за помощ към [[{{MediaWiki:Grouppage-sysop}}|администратор на сайта]], ако това изискване на системата ви затруднява да допринасяте легитимно.
 
 Натиснете бутона 'back' на вашия браузър, за да се върнете към редактора на страници.",
 );
 
 /** Bengali (বাংলা)
  * @author Bellayet
+ * @author Prometheus.pyrphoros
+ * @author Usarker
  * @author Zaheen
  */
 $messages['bn'] = array(
 	'captcha-edit' => 'এই নিবন্ধটি সম্পাদনা করতে দয়া করে নিচের সহজ যোগটি সমাধান করুন এবং ফলাফলটি বাক্সটিতে প্রবেশ করান ([[Special:Captcha/help|আরও তথ্য]]):',
-	'captcha-desc' => 'সরল captcha বাস্তবায়ন',
+	'captcha-desc' => 'সরল ক্যাপচা বাস্তবায়ন',
 	'captcha-addurl' => 'আপনার সম্পাদনায় নতুন বহিঃসংযোগ বিদ্যমান। স্বয়ংক্রিয় স্প্যামের বিরুদ্ধে সুরক্ষার খাতিরে অনুগ্রহ নিচের যোগটি সমাহদান করুন এবং উত্তরটি বাক্সে প্রবেশ করান ([[Special:Captcha/help|আরও তথ্য]]):',
 	'captcha-badlogin' => 'স্বয়ংক্রিয় শব্দচাবি ক্র‌্যাকিং-এর বিরুদ্ধে সুরক্ষার খাতিরে অনুগ্রহ করে নিচের যোগটি সমাধান করুন এবং উত্তরটি বাক্সে প্রবেশ করান ([[Special:Captcha/help|আরও তথ্য]]):',
 	'captcha-createaccount' => 'স্বয়ংক্রিয় অ্যাকাউন্ট সৃষ্টি রোধ করার খাতিরে অনুগ্রহ করে নিচের যোগটি সমাধান করুন এবং উত্তরটি বাক্সে প্রবেশ করান ([[Special:Captcha/help|আরও তথ্য]]):',
 	'captcha-createaccount-fail' => 'ভুল অথবা হারিয়ে যাওয়া নিশ্চিতকরণ সংকেত',
 	'captcha-create' => 'পাতাটি সৃষ্টি করতে চাইলে অনুগ্রহ করে নিচের যোগটি সমাধান করুন এবং উত্তরটি বাক্সে প্রবেশ করান ([[Special:Captcha/help|আরও তথ্য]]):',
+	'captcha-sendemail' => 'স্বয়ংক্রিয় স্প্যাম থেকে রক্ষা পেতে, অনুগ্রহ করে সাধারন অংকটি সমাধান করুন এবং উত্তরপ্রদান বক্সে লিখুন ([[Special:Captcha/help|আরও তথ্য]]):',
+	'captcha-sendemail-fail' => 'নিশ্চিতকরণ কোডটি ভুল বা দেয়া হয়নি',
+	'captcha-disabledinapi' => 'এই কাজটি করার জন্য একটি ক্যাপচা প্রয়োজন, তাই এটি এপিআই দ্বারা করা যাবে না।',
 	'captchahelp-title' => 'ক্যাপচা সাহায্য',
 	'captchahelp-cookies-needed' => 'এই কাজটি করার জন্য আপনাকে আপনার ব্রাউজারের কুকি সক্রিয় করতে হবে।',
 	'captchahelp-text' => 'যেসব ওয়েবসাইট পোস্টিং-এর জন্য উন্মুক্ত, যেমন এই উইকিটি, সেগুলি প্রায়ই স্প্যামারদের আক্রমণের শিকার হয়। স্প্যামাররা স্বয়ংক্রিয় সরঞ্জাম ব্যবহার করে তাদের সংযোগগুলি বহু সাইটে পোস্ট করে। এই স্প্যাম সংযোগগুলি মুছে ফেলা সম্ভব, কিন্তু এগুলি যথেষ্ট বিরক্তির উদ্রেক করে।
 
 কখনো কখনো, বিশেষ করে কোন পাতায় নতুন ওয়েব সংযোগ যোগ করার সময়, উইকিটি আপনাকে রঙিন বা বিকৃত টেক্সটবিশিষ্ট ছবি দেখিয়ে আপনাকে শব্দটি টাইপ করতে বলতে পারে। যেহেতু এই কাজটি স্বয়ংক্রিয়ভাবে সম্পাদন করা দুরূহ, তাই এই ব্যবস্থার ফলে প্রকৃত মানুষেরা পোস্ট করতে পারবেন কিন্তু বেশির ভাগ স্প্যামার বা রোবটভিত্তিক আক্রমণ বাধাপ্রাপ্ত হবে।
 
-যারা চোখে কম দেখতে পান কিংবা টেক্সটভিত্তিক বা উক্তিভিত্তিক ব্রাউজার ব্যবহার করছেন, দুর্ভাগ্যবশত এই ব্যবস্থাটি তাদের জন্য সমস্যার সৃষ্টি করবে। এই মুহূর্তে আমাদের কাছে এই ব্যবস্থাটির কোন অডিও বিকল্প নেই। যদি ব্যবস্থাটি আপনাকে বৈধ পোস্ট করতে অযাচিত বাধা দেয়, অনুগ্রহ করে সাইটের প্রশাসকদের কাছে সাহায্য চান।
+যারা চোখে কম দেখতে পান কিংবা টেক্সটভিত্তিক বা উক্তিভিত্তিক ব্রাউজার ব্যবহার করছেন, দুর্ভাগ্যবশত এই ব্যবস্থাটি তাদের জন্য সমস্যার সৃষ্টি করবে। এই মুহূর্তে আমাদের কাছে এই ব্যবস্থাটির কোন অডিও বিকল্প নেই। যদি ব্যবস্থাটি আপনাকে বৈধ পোস্ট করতে অযাচিত বাধা দেয়, অনুগ্রহ করে [[{{MediaWiki:Grouppage-sysop}}|সাইটের প্রশাসকদের]] কাছে সাহায্য চান।
 
 আপনি এখন ব্রাউজারের ব্যাক বোতাম চেপে পাতা সম্পাদকে ফেরত যেতে পারেন।',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -389,27 +513,41 @@
 #  * "#" ক্যারেক্টার থেকে শুরু হয়ে লাইনের শেষ পর্যন্ত সবকিছু একটি মন্তব্য
 #  * খালি নয় এমন প্রতিটি লাইন একটি রেজেক্স খণ্ডাংশ যেটি URLগুলির ভেতরে হোস্টগুলির সাথে মিলে যাবে।
   #</pre> <!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'ক্যাপচাতে না গিয়ে ক্যাপচা ট্রিগারিং এর কাজ করুন',
 );
 
 /** Breton (Brezhoneg)
  * @author BrokenArrow
  * @author Fulup
+ * @author Y-M D
  */
 $messages['br'] = array(
 	'captcha-edit' => "A-raok gellout degas kemmoù war ar bajenn-mañ e c'houlenner ouzhoc'h respont d'ar jedadenn eeun a-is ha lakaat an disoc'h er vaezienn ([[Special:Captcha/help|Petra eo se?]])",
-	'captcha-desc' => 'Enplementadur eeun Captcha',
-	'captcha-addurl' => "Liammoù diavaez nevez zo bet ouzhpennet ganeoc'h. A-benn en em wareziñ diouzh ar spam emgefre skrivit disoc'h ar jedadennig eeun-mañ er stern : <br />([[Special:Captcha/help|Petra eo se?]])",
+	'captcha-desc' => 'Pourchas a ra teknikoù CAPTCHA evit en em wareziñ diouzh ar strob hag an diskuliañ gerioù-tremen',
+	'captcha-addurl' => "Liammoù diavaez nevez zo bet ouzhpennet ganeoc'h. A-benn talañ ouzh ar strob emgefre skrivit disoc'h ar jedadennig eeun-mañ er stern : <br />([[Special:Captcha/help|Petra eo se?]])",
 	'captcha-badlogin' => "A-benn talañ ouzh preizhadur emgefre ar gerioù-tremen gant ar botoù e c'houlenner ouzhoc'h jediñ an tamm oberiadenn ha skrivañ an disoc'h anezhi er vaezienn a-is ([[Special:Captcha/help|Petra eo se ?]]):",
-	'captcha-createaccount' => "A-benn hor skoazellañ d'en em wareziñ diouzh ar c'hrouiñ kontoù emgefre, skrivit ar gerioù a zeu war wel er stern-mañ evit enrollañ ho kont : <br />([[Special:Captcha/help|Petra eo se?]])",
-	'captcha-createaccount-fail' => "Mankout a ra ar c'hod kadarnaat pe fall eo.",
+	'captcha-createaccount' => "A-benn hor skoazellañ da dalañ ouzh ar c'hrouiñ kontoù emgefre, skrivit ar gerioù a zeu war wel er stern-mañ evit enrollañ ho kont : <br />([[Special:Captcha/help|Petra eo se?]])",
+	'captcha-createaccount-fail' => "Pe e vank ar c'hod kadarnaat pe eo fall anezhañ.",
 	'captcha-create' => "A-benn krouiñ ar bajenn, skrivit disoc'h ar jedadennig eeun-mañ er vaezienn : <br />([[Special:Captcha/help|Petra eo se?]])",
+	'captcha-sendemail' => "Evit hor skoazellañ da zizarbenn ar strob emgefre, sammit ar sifroù a-is ha skrivit an disoc'h er voest ([[Special:Captcha/help|gouzout hiroc'h]]) :",
+	'captcha-sendemail-fail' => "Pe e vank ar c'hod kadarnaat pe eo fall anezhañ.",
+	'captcha-disabledinapi' => "Evit an obererezh-mañ ez eus ezhomm ur captcha, dre-se ne c'hell ket bezañ graet dre an API.",
 	'captchahelp-title' => 'Skoazell Capcha',
 	'captchahelp-cookies-needed' => "Ret eo deoc'h gweredekaet an toupinoù war ho merdeer Web evit ma'z afe en-dro.",
-	'captchahelp-text' => "Alies e vez taget al lec'hiennoù a zegemer kemennadennoù a-berzh an holl, evel ar wiki-mañ, gant ar spamerien a implij ostilhoù emgefre evit postañ o liammoù war lec'hiennoù a bep seurt. Diverket e c'hallont bezañ, gwir eo, kazus-mat ez int memes tra. A-wechoù, dreist-holl pa vez ouzhpennet liammoù Web nevez war ur bajenn, e c'hallo ar wiki-mañ diskouez deoc'h ur skeudenn warni un tamm testenn liv pe a-dreuz. Goulennet e vo diganeoc'h skrivañ ar gerioù deuet war wel. Un trevell start da emgefrekaat eo hemañ. Gant se e c'hallo an implijerien wirion postañ ar pezh a fel ldezho tra ma vo lakaet un harz d'an darn vrasañ eus ar spamerien pe d'an dagerien robotek all. Koulskoude e c'hallo an implijerien berr o gweled pe ar re a implij merdeerioù diazezet war ar skrid pe war ar vouezh bezañ strafuilhet gant se. N'omp ket evit kinnig un diskoulm dre glevet evit c'hoazh. Kit e darempred gant merourien al lec'hienn m'hoc'h eus diaesterioù evit kemer perzh abalamour d'an teknik-se. Pouezit war bouton 'kent' ho merdeer evit distreiñ d'ar bajenn gemmañ.",
+	'captchahelp-text' => "Alies e vez taget al lec'hiennoù a zegemer kemennadennoù a-berzh an holl, evel ar wiki-mañ, gant ar stroberien a implij ostilhoù emgefre evit postañ o liammoù war lec'hiennoù a bep seurt. 
+Ha pa c'hallfent bezañ diverket, kazus-mat ez int memes tra. 
+
+A-wezhioù, dreist-holl pa vez ouzhpennet liammoù Web nevez war ur bajenn, e c'hallo ar wiki-mañ diskouez deoc'h ur skeudenn warni un tamm testenn liv pe a-dreuz. Goulennet e vo diganeoc'h skrivañ ar gerioù a welit. 
+Un trevell start da emgefrekaat eo hemañ. Gant se e c'hallo an implijerien wirion postañ ar pezh a fell dezho tra ma vo lakaet un harz d'an darn vrasañ eus ar stroberien pe d'an dagerien robotek all. 
+
+Koulskoude e c'hallo an implijerien berr o gweled pe ar re a implij merdeerioù diazezet war ar skrid pe war ar vouezh bezañ strafuilhet gant se. N'omp ket evit kinnig un diskoulm dre glevet evit c'hoazh. 
+Kit e darempred gant [[{{MediaWiki:Grouppage-sysop}}|merourien al lec'hienn]] m'hoc'h eus diaesterioù evit kemer perzh abalamour d'an teknik-se. 
+
+Pouezit war bouton 'kent' ho merdeer evit distreiñ d'ar bajenn gemmañ.",
 	'captcha-addurl-whitelist' => " #<!-- laoskit al linenn-mañ tre evel m'emañ --> <pre>
 # Setu penaos emañ an ereadur :
 #  * Kement tra war-lerc'h an arouezenn \"#\" zo un urzhiad, betek penn all al linenn
-#  * Kement linenn n'eo ket goullo zo ur c'hod regex a vo implijet e diabarzh al liammoù gourdskrid hepken 
+#  * Kement linenn n'eo ket goullo zo ur c'hod regex a vo implijet e diabarzh al liammoù gourdskrid hepken
   #</pre> <!-- laoskit al linenn-mañ tre evel m'emañ -->",
 	'right-skipcaptcha' => 'Lañsañ a ra an oberoù captcha hep bezañ rediet da dremen drezañ',
 );
@@ -419,26 +557,32 @@
  * @author CERminator
  */
 $messages['bs'] = array(
-	'captcha-edit' => 'Vaša izmjena uključuje nove URL poveznice; kao zaštita od automatizovanog vandalizma, moraćete da izračunate zadatak ispod i upišete odgovor u prozor:
-([[Special:Captcha/help|Šta je ovo?]])',
-	'captcha-desc' => 'Jednostavno korištenje captcha procesa',
-	'captcha-addurl' => 'Vaša izmjena uključuje nove URL poveznice; kao zaštita od automatizovanog vandalizma, moraćete da upišete rezultat prikazane sume u okvir:
-([[Special:Captcha/help|Šta je ovo?]])',
+	'captcha-edit' => 'Vaša izmjena uključuje nove URL linkove; kao zaštita od automatizovanog vandalizma, moraćete da izračunate zadatak ispod i upišete odgovor u prozor:
+([[Special:Captcha/help|Šta je ovo?]]):',
+	'captcha-desc' => 'Omogućava CAPTCHA tehnike za zaštitu protiv spama i probijanja šifre',
+	'captcha-addurl' => 'Vaša izmjena uključuje nove URL linkove; kao zaštita od automatizovanog vandalizma, moraćete da upišete rezultat prikazane sume u okvir ([[Special:Captcha/help|Šta je ovo?]]):',
 	'captcha-badlogin' => 'Da bi ste pomogli protiv automatskog probijanja šifre, molimo riješite jednostavan zadatak sabiranja ispod i unesite rezultat u kutiju ([[Special:Captcha/help|više informacija]]):',
 	'captcha-createaccount' => 'Kao zaštita od automatizovanog vandalizma, moraćete da ukucate rezultat sume u okvir ispod da biste registrovali nalog:
 <br />([[Special:Captcha/help|Šta je ovo?]])',
 	'captcha-createaccount-fail' => 'Netačan unos ili nedostatak šifre za potvrđivanje.',
 	'captcha-create' => 'Da bi ste napravili stranicu; kao zaštita od automatizovanog vandalizma, moraćete da ukucate rezultat prikazane sume u okvir ispod:
 ([[Special:Captcha/help|Šta je ovo?]])',
+	'captcha-sendemail' => 'Da bi ste pomogli protiv automatskog stavljanja linkova, molimo riješite jednostavan zadatak sabiranja ispod i unesite rezultat u kutiju ([[Special:Captcha/help|više informacija]]):',
+	'captcha-sendemail-fail' => 'Netačan unos ili nedostatak šifre za potvrđivanje.',
+	'captcha-disabledinapi' => 'Ova akcija zahtjeva captchu, tako da se ne može izvršiti preko API.',
 	'captchahelp-title' => 'Pomoć pri captcha',
 	'captchahelp-cookies-needed' => 'Da bi ste ovo mogli raditi potrebno je da omogućite kolačiće (cookies) u Vašem pregledniku.',
-	'captchahelp-text' => "Vebsajtovi koji podržavaju slanje sadržaja iz javnosti, kao što je ovaj viki, često zloupotrebljavaju vandali koji koriste automatizovane alate da šalju svoje poveznice ka mnogim sajtovima.  Iako se ove neželjene poveznice mogu ukloniti, one ipak zadaju veliku muku.
+	'captchahelp-text' => "Websajtovi koji podržavaju slanje sadržaja iz javnosti, kao što je ovaj viki, često zloupotrebljavaju vandali koji koriste automatizovane alate da šalju svoje linkove ka mnogim sajtovima.
+Iako se ovi neželjeni linkovi mogu ukloniti, one ipak zadaju veliku muku.
 
-Ponekad, pogotovo kad se dodaju nove internet poveznice na stranicu, viki softver Vam može pokazati sliku obojenog i izvrnutog teksta i tražiti da ukucate traženu riječ.  Pošto je teško automatizovati ovakav zadatak, on omogućuje svim pravim ljudima da vrše svoje izmjene, ali će zato spriječiti vandale i ostale robotske napadače.
+Ponekad, pogotovo kad se dodaju novi internet linkovi na stranicu, wiki softver Vam može pokazati sliku obojenog i izvrnutog teksta i tražiti da ukucate traženu riječ.
+Pošto je teško automatizovati ovakav zadatak, on omogućuje svim pravim ljudima da vrše svoje izmjene, ali će zato spriječiti vandale i ostale robotske napadače.
 
-Nažalost, ovo može da bude nepovoljno za korisnike sa ograničenim vidom i za one koji koriste brauzere bazirane na tekstu ili govoru.  U ovom trenutku, audio alternativa nije dostupna.  Molimo Vas da kontaktirate administratore sajta radi pomoći ako Vas ovo neočekivano ometa u pravljenju dobrih izmjena.
+Nažalost, ovo može da bude nepovoljno za korisnike sa ograničenim vidom i za one koji koriste preglednike bazirane na tekstu ili govoru.
+U ovom trenutku, audio alternativa nije dostupna.
+Molimo Vas da kontaktirate [[{{MediaWiki:Grouppage-sysop}}|administratore sajta]] radi pomoći ako Vas ovo neočekivano ometa u pravljenju dobrih izmjena.
 
-Kliknite 'nazad' ('back') dugme vašeg brauzera da se vratite na polje za unos teksta.",
+Kliknite 'nazad' ('back') dugme vašeg preglednika da se vratite na polje za unos teksta.",
 	'captcha-addurl-whitelist' => ' #<!-- ostavite ovaj red onakav kakav je --> <pre>
 # Sintaksa je slijedeća:
 #  * Sve od znaka "#" do kraja reda je komentar
@@ -448,25 +592,30 @@
 );
 
 /** Catalan (Català)
+ * @author El libre
  * @author Paucabot
  * @author SMP
+ * @author Ssola
  * @author Toniher
  */
 $messages['ca'] = array(
-	'captcha-edit' => 'Per a poder editar aquesta pàgina cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre ([[Special:Captcha/help|més informació]]):',
-	'captcha-desc' => 'Implementació de captcha simple',
-	'captcha-addurl' => 'La vostra edició conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-edit' => 'Per a poder modificar aquesta pàgina cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre ([[Special:Captcha/help|més informació]]):',
+	'captcha-desc' => "Proporciona tècniques CAPTCHA per a protegir contra la publicitat no desitjada i l'obtenció de contrasenyes",
+	'captcha-addurl' => 'La vostra modificació conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
 	'captcha-badlogin' => "Per a ajudar en la protecció contra l'obtenció automatitzada de contrasenyes haureu de resoldre la suma que apareix a continuació ([[Special:Captcha/help|més informació]]):",
 	'captcha-createaccount' => "Com a protecció contra la creació automàtica de comptes d'usuari necessitem que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):",
 	'captcha-createaccount-fail' => 'Manca el codi de confirmació, o bé és incorrecte.',
-	'captcha-create' => 'La vostra edició conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-create' => 'La vostra modificació conté enllaços externs nous. Com a protecció contra la brossa de propaganda automàtica, cal que resolgueu aquesta simple suma i introduïu el resultat en el quadre a continuació ([[Special:Captcha/help|més informació]]):',
+	'captcha-sendemail' => "Per tal d'ajudar-nos en la lluita contra la publicitat automatitzada, cal que solucioneu la senzilla suma que apareix a continuació, i escrigueu el resultat a la casella ([[Special:Captcha/help|més informació]]):",
+	'captcha-sendemail-fail' => 'Manca el codi de confirmació, o bé és incorrecte.',
+	'captcha-disabledinapi' => "Aquesta acció requereix un captcha (codi d'imatge), per la qual cosa no es pot realitzar a través de l'API.",
 	'captchahelp-title' => 'Ajuda amb el sistema captcha',
 	'captchahelp-cookies-needed' => "Heu d'activar les galetes al vostre navegador per a que funcioni.",
 	'captchahelp-text' => "Els webs que accepten la publicació de missatges per part del seu públic, com aquest wiki, són sovint víctimes de spam per part de robots automàtics que hi posen enllaços cap als seus webs. Aquests enllaços es poden anar eliminant, però suposen un important destorb.
 
 Quan creeu nous comptes d'usuari o afegiu enllaços a una pàgina se us demanarà que respongueu una pregunta fàcil, una suma o que teclegeu el text que apareix en una imatge distorsionada. És difícil programar un robot per aquest tipus de tasques, i gràcies a açò, es poden aturar la majoria d'atacants robots.
 
-Malauradament, aquest sistema pot suposar un inconvenient per a usuaris amb problemes de visió o que utilitzin navegadors de text simple o de veu. Actualment no disposem de cap alternativa auditiva disponible. Contacteu els administradors del web si aquests sistema us impedeix de fer edicions legítimes.
+Malauradament, aquest sistema pot suposar un inconvenient per a usuaris amb problemes de visió o que utilitzin navegadors de text simple o de veu. Actualment no disposem de cap alternativa auditiva disponible. Contacteu els [[{{MediaWiki:Grouppage-sysop}}|administradors del web]] si aquest sistema us impedeix de fer edicions legítimes.
 
 Necessitareu tenir les galetes (''cookies'') activades al vostre navegador per a realitzar aquestes accions.
 
@@ -498,29 +647,34 @@
  * @author Danny B.
  * @author Li-sung
  * @author Matěj Grabovský
+ * @author Mormegil
  */
 $messages['cs'] = array(
 	'captcha-edit' => 'Abyste mohli editovat tuto stránku, musíte vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]])',
-	'captcha-desc' => 'Jednoduchá implementace ověřovacího kódu (captcha)',
-	'captcha-addurl' => 'Vaše editace obsahuje nové odkazy formou URL; v zájmu ochrany před automatickým spamováním musíte vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]])',
-	'captcha-badlogin' => 'V rámci ochrany před automatickým pokusům uhodnout heslo musíte vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]]):',
+	'captcha-desc' => 'Poskytuje techniky CAPTCHA pro ochranu před spamem a hádáním hesel',
+	'captcha-addurl' => 'Vaše editace obsahuje nové externí odkazy.
+V zájmu ochrany před automatickým spamováním vyřešte následující jednoduchý součet a napište výsledek. ([[Special:Captcha/help|Co tohle znamená?]])',
+	'captcha-badlogin' => 'V zájmu ochrany proti automatickým pokusům uhodnout heslo musíte vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]]):',
 	'captcha-createaccount' => 'V rámci ochrany před automatickým vytvářením účtů musíte pro provedení registrace vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]])',
 	'captcha-createaccount-fail' => 'Chybějící či neplatný potvrzovací kód.',
-	'captcha-create' => 'Abyste mohli založit stránku musíte vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]])',
+	'captcha-create' => 'Abyste mohli založit stránku, musíte vyřešit následující jednoduchý součet a napsat výsledek. ([[Special:Captcha/help|Co tohle znamená?]])',
+	'captcha-sendemail' => 'V rámci ochrany proti automatickému spamování musíte vyřešit jednoduchý součet a napsat výsledek ([[Special:Captcha/help|více informací]]):',
+	'captcha-sendemail-fail' => 'Chybějící či neplatný potvrzovací kód.',
+	'captcha-disabledinapi' => 'Tato operace vyžaduje splnění CAPTCHA, takže ji nelze provést prostřednictvím API.',
 	'captchahelp-title' => 'Nápověda ke captcha',
-	'captchahelp-cookies-needed' => 'Musíte mít zapnuty cookies ve svém prohlížeči.',
+	'captchahelp-cookies-needed' => 'Aby to fungovalo, musíte mít ve svém prohlížeči zapnuty cookies.',
 	'captchahelp-text' => 'Webové stránky, do kterých mohou přispívat jejich návštěvníci (jako například tato wiki), jsou často terčem spammerů, kteří pomocí automatických nástrojů vkládají své odkazy na velké množství stránek. Přestože lze tento spam odstranit, představuje nepříjemné obtěžování.
 
 Někdy, zvláště při přidávání nových webových odkazů, vám může wiki ukázat obrázek barevného či pokrouceného textu a požádat vás o opsání zobrazených znaků. Jelikož takovou úlohu lze jen těžko automatizovat, skuteční lidé mohou dále přispívat, zatímco většinu spammerů a jiných robotických útočníků to zastaví.
 
-Bohužel to však může představovat nepříjemný problém pro uživatele se zrakovým postižením či uživatele používající textové prohlížeče či hlasové čtečky. V současné době nemáme alternativní zvukovou verzi. Kontaktujte laskavě správce serveru, pokud vám to brání v užitečných příspěvcích a potřebujete pomoc.
+Bohužel to však může představovat nepříjemný problém pro uživatele se zrakovým postižením či uživatele používající textové prohlížeče či hlasové čtečky. V současné době nemáme alternativní zvukovou verzi. Kontaktujte laskavě [[{{MediaWiki:Grouppage-sysop}}|správce serveru]], pokud vám to brání v užitečných příspěvcích a potřebujete pomoc.
 
 Pro návrat na předchozí stránku stiskněte ve svém prohlížeči tlačítko „zpět“.',
-	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
+	'captcha-addurl-whitelist' => ' #<!-- Nechte tento řádek přesně tak jak je --> <pre>
 # Syntaxe je následující:
-#  * Všechno od zaku „#“ do konce řádku je komentář
-#  * Každý neprázdný řádek je fragment regulárního výrazu, kterého shody budou pouze stroje v rámci URL
-  #</pre> <!-- leave this line exactly as it is -->',
+#  * Všechno od znaku „#“ do konce řádku je komentář
+#  * Každý neprázdný řádek je fragment regulárního výrazu, který se aplikuje pouze na název stroje v URL
+ #</pre> <!-- Nechte tento řádek přesně tak jak je -->',
 	'right-skipcaptcha' => 'Vykonávání akcí spojených s CAPTCHA bez nutnosti jejího řešení',
 );
 
@@ -529,41 +683,60 @@
  */
 $messages['cy'] = array(
 	'captcha-edit' => "Er mwyn gallu golygu'r dudalen, gwnewch y swm isod a gosodwch y canlyniad yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):",
-	'captcha-desc' => 'Gweithredu "captcha" syml',
+	'captcha-desc' => 'Yn gweithredu technegau CAPTCHA i arbed rhag sbam a dyfalu cyfrineiriau',
 	'captcha-addurl' => 'Mae eich golygiad yn cynnwys cysylltiadau URL newydd. Er mwyn profi nad ydych yn beiriant sbam, byddwch gystal â theipio cyfanswm y swm canlynol yn y blwch isod ([[Special:Captcha/help|mwy o wybodaeth]]):',
 	'captcha-badlogin' => 'Er mwyn ceisio rhwystro peiriannau datrys cyfrineiriau, byddwch gystal â gwneud y swm isod a gosod yr ateb yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):',
 	'captcha-createaccount' => "Teipiwch cyfanswm y swm canlynol yn y blwch isod, os gwelwch yn dda. Mae'r nodwedd hon yn rhwystro rhaglenni sbam rhag creu cyfrifon i'w hunain ([[Special:Captcha/help|Mwy o wybodaeth]]):",
 	'captcha-createaccount-fail' => "Côd cadarnhau ar goll neu'n anghywir.",
 	'captcha-create' => "Er mwyn gallu creu'r dudalen, gwnewch y swm isod a gosodwch y canlyniad yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):",
+	'captcha-sendemail' => 'Er mwyn cyfrannu at ddiogelu rhag sbamio awtomatig, byddwch gystal â gwneud y swm syml isod ac ysgrifennwch yr ateb yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):',
+	'captcha-sendemail-fail' => 'Y cod cadarnhau yn anghywir neu yn eisiau.',
+	'captcha-disabledinapi' => 'Mae angen "captcha" i gyflawni\'r weithred hon, felly nid oes modd ei gyflawni trwy\'r API.',
 	'captchahelp-title' => 'Cymorth "captcha"',
 	'captchahelp-cookies-needed' => "Er mwyn i hyn weithio mae'n rhaid bod cookies wedi eu galluogi ar eich gwe-lywiwr.",
-	'captchahelp-text' => "Yn anffodus, mae safleoedd gwe fel Wicipedia, sy'n caniatau i'r cyhoedd ysgrifennu iddi, yn darged beunyddiol i sbamwyr sy'n defnyddio rhaglenni arbennig i bostio eu cysylltiadau. Gellir dileu'r dolenni o'r dudalen, ond mae hyn yn drafferth mawr. O dro i dro, fe fydd y safle hon yn dangos delwedd o destun, ac fe fydd yn rhaid i chi deipio'r geiriau a ddangosir. Mae hyn yn dasg anodd iawn i ragenni cyfrifiadurol, felly dylai golygwyr go iawn gyflawni'r dasg yn di-drafferth, yn wahanol i'r rhaglenni sbam. Mae hyn yn amlwg yn creu trafferthion i'r sawl sydd yn defnyddio porwyr testun neu sydd yn colli eu golwg. Ar hyn o bryd nid oes fersiwn sain ar gael. Cysylltwch â gweinyddwyr y safle os ydi'r nodwedd hon yn eich rhwystro rhag ychwanegu golygiadau dilys. Gwasgwch botwm 'nôl' eich porwr er mwyn dychwelyd.",
+	'captchahelp-text' => "Yn anffodus, mae safleoedd gwe fel y wici hon, sy'n caniatau i'r cyhoedd ysgrifennu iddi, yn darged beunyddiol i sbamwyr sy'n defnyddio rhaglenni arbennig i bostio eu cysylltiadau ar wefannau lu. Gellir dileu'r dolenni o'r tudalennau, ond byddai hynny'n waith trafferthus.
+
+O dro i dro, yn enwedig wrth ychwanegu dolenni at safleoedd gwe eraill, fe fydd y safle hon yn dangos delwedd o destun, ac fe fydd yn rhaid i chi deipio'r geiriau a ddangosir. Mae hyn yn dasg anodd iawn i raglenni cyfrifiadurol, felly dylai'r rhan fwyaf o olygwyr go iawn gyflawni'r dasg yn ddi-drafferth, yn wahanol i'r rhaglenni sbam.
+
+Yn anffodus, mae hyn yn creu trafferthion i'r rhai sydd yn defnyddio porwyr testun neu borwyr sain, neu sydd yn colli eu golwg.
+Ar hyn o bryd nid oes fersiwn sain ar gael.
+Cysylltwch â [[{{MediaWiki:Grouppage-sysop}}|gweinyddwyr y safle]] os ydi'r nodwedd hon yn eich rhwystro rhag ychwanegu golygiadau dilys.
+
+Gwasgwch botwm 'nôl' eich porwr er mwyn dychwelyd at y dudalen golygu.",
 	'captcha-addurl-whitelist' => '#<!-- leave this line exactly as it is --> <pre>
 #
 # Dyma\'r gystrawen:
 #   * Mae popeth o nod "#" hyd at ddiwedd y llinell yn sylwad
-#   * Mae pob llinell nad yw\'n wag yn ddarn regex sydd ddim ond yn cydweddu 
+#   * Mae pob llinell nad yw\'n wag yn ddarn regex sydd ddim ond yn cydweddu
 #   * gwesteiwyr tu mewn i gyfeiriadau URL
 
  #</pre> <!-- leave this line exactly as it is -->',
 	'right-skipcaptcha' => "Gwneud rhyw weithred, sy'n arfer deffro meddalwedd y captcha, heb ei ddeffro.",
 );
 
-/** Danish (Dansk) */
+/** Danish (Dansk)
+ * @author Aputtu
+ * @author Byrial
+ * @author Peter Alberti
+ */
 $messages['da'] = array(
-	'captcha-edit' => 'For at redigere denne side, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
+	'captcha-edit' => 'For at redigere denne side, skal du give svaret på regnestykket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
+	'captcha-desc' => 'Giver CAPTCHA-teknikker til at beskytte mod spam og gætning af adgangskoder',
 	'captcha-addurl' => 'Din redigering tilføjer nye eksterne henvisninger til artiklen. Som beskyttelse mod automatiseret spam, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
 	'captcha-badlogin' => 'For at beskytte mod automatiserede gæt på kodeord, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
 	'captcha-createaccount' => 'For at beskytte mod automatisk oprettelse af brugernavne, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
 	'captcha-createaccount-fail' => 'Forkert eller manglende kodeord.',
 	'captcha-create' => 'For at oprette en ny side, skal du give svaret på regnestyket nedenfor, og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
+	'captcha-sendemail' => 'For at beskytte mod automatisk oprettelse af brugernavne, så bedes du venligst svare på regnestykket nedenfor og angive resultatet i feltet under det. ([[Special:Captcha/help|mere information]]):',
+	'captcha-sendemail-fail' => 'Forkert eller manglende bekræftelseskode.',
+	'captcha-disabledinapi' => "Denne handling kræver en captcha, så det ikke kan udføres via API'en.",
 	'captchahelp-title' => 'Captcha-hjælp',
 	'captchahelp-cookies-needed' => 'Din browser skal understøtte cookies, før dette kan gennemføres.',
 	'captchahelp-text' => "Websites der accepterer indhold fra offentligheden, bliver ofte udsat for angreb fra spammere. Disse angreb sker med automatiske værktøjer, der anbringer de samme links på et stort antal websites på kort tid. Selvom disse links kan fjernes, er de en vedligeholdelsesmæssig byrde.
 
 I visse tilfælde, specielt når der tilføjes nye links til denne wiki, vil softwaren vise dig et billede af et stykke forvredet og sløret tekst. Du skal indtaste det ord, der vises, før du kan gennemføre handlingen. Formålet er at skelne mellem mennesker og automatiserede værktøjer, da de sidste har meget svært ved at genkende ordene.
 
-Desværre kan dette medføre problemer for svagtseende brugere, og brugere der bruger software der oplæser indholdet af siden. For øjeblikket findes der ikke et lydbaseret alternativ. Kontakt venligst en administrator med henblik på at få hjælp, hvis dette forhindrer tilføjelsen af godartet materiale.
+Desværre kan dette medføre problemer for svagtseende brugere, og brugere der bruger software der oplæser indholdet af siden. For øjeblikket findes der ikke et lydbaseret alternativ. Kontakt venligst en [[{{MediaWiki:Grouppage-sysop}}|administrator]] med henblik på at få hjælp, hvis dette forhindrer tilføjelsen af godartet materiale.
 
 Tryk på 'tilbage'-knappen i din browser for at returnere til redigeringssiden.",
 	'captcha-addurl-whitelist' => ' #<!-- Undlad at rette denne linie --> <pre>
@@ -571,68 +744,140 @@
 #   * Alt fra et "#"-tegn til slutningen af en linie er en kommentar
 #   * Alle ikke-blanke linier benyttes som regulært udtryk, der anvendes på hostnavne i URLer
  #</pre> <!-- Undlad at rette denne linie -->',
+	'right-skipcaptcha' => 'Udføre handlinger som normalt kræver "captcha"-bekræftelse uden at bruge "captcha"',
 );
 
 /** German (Deutsch)
+ * @author Imre
+ * @author Kghbln
+ * @author Metalhead64
  * @author MichaelFrey
  * @author Raimond Spekking
+ * @author The Evil IP address
+ * @author Umherirrender
  */
 $messages['de'] = array(
 	'captcha-edit' => 'Zur Bearbeitung der Seite löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
-	'captcha-desc' => 'Einfache Captcha-Implementierung',
+	'captcha-desc' => 'Ermöglicht verschiedene CAPTCHA-Techniken zum Schutz vor Spam und dem Erraten von Passwörtern',
 	'captcha-addurl' => 'Deine Bearbeitung enthält neue externe Links.
 Zum Schutz vor automatisiertem Spamming löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein. Klicke dann erneut auf „Seite speichern“ [[Special:Captcha/help|(Fragen oder Probleme?)]].',
 	'captcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]]:',
 	'captcha-createaccount' => 'Zum Schutz vor automatisierter Anlage von Benutzerkonten löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
 	'captcha-createaccount-fail' => 'Falscher oder fehlender Bestätigungscode.',
 	'captcha-create' => 'Zur Erstellung der Seite löse die nachfolgende Rechenaufgabe und trage das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
-	'captchahelp-title' => 'Captcha-Hilfe',
+	'captcha-sendemail' => 'Um gegen automatischen Spam vorzugehen, löse bitte die einfache Rechenaufgabe und gib die Antwort unten in das Feld ein ([[Special:Captcha/help|mehr Informationen]]):',
+	'captcha-sendemail-fail' => 'Falscher oder fehlender Bestätigungscode.',
+	'captcha-disabledinapi' => 'Diese Aktion benötigt ein CAPTCHA. Sie kann nicht über die API ausgeführt werden.',
+	'captchahelp-title' => 'CAPTCHA-Hilfe',
 	'captchahelp-cookies-needed' => "'''Wichtiger Hinweis:''' Es müssen Cookies im Browser erlaubt sein.",
-	'captchahelp-text' => 'Internetangebote, die für Beiträge von praktisch jedem offen sind — so wie das {{SITENAME}}-Wiki — werden oft von Spammern missbraucht, die ihre Links automatisch auf vielen Webseiten platzieren. Diese Spam-Links können wieder entfernt werden, sie sind aber ein erhebliches Ärgernis. In manchen Fällen, insbesondere beim Hinzufügen von neuen Weblinks zu einer Seite, kann es vorkommen, dass dieses Wiki ein Bild mit einem farbigen und verzerrten Text anzeigt und dazu auffordert, die angezeigten Wörter einzutippen. Da eine solche Aufgabe nur schwer automatisch erledigt werden kann, werden dadurch die meisten Spammer, die mit automatischen Werkzeugen arbeiten, gestoppt, wogegen menschliche Benutzer ihren Beitrag absenden können. Leider kann dies zu Schwierigkeiten für Personen führen, die über eine eingeschränkte Sehfähigkeit verfügen oder text- oder sprachbasierte Browser verwenden. Eine Lösung ist die reguläre Anmeldung als Benutzer. Der „Zurück“-Knopf des Browsers führt zurück in das Bearbeitungsfenster.',
+	'captchahelp-text' => 'Internetangebote, die für Beiträge von praktisch jedem offen sind — so wie dieses Wiki — werden oft von Spammern missbraucht, die ihre Links automatisch auf vielen Webseiten platzieren. Diese Spam-Links können wieder entfernt werden, sie sind aber ein erhebliches Ärgernis.
+
+In manchen Fällen, insbesondere beim Hinzufügen von neuen Weblinks zu einer Seite, kann es vorkommen, dass dieses Wiki ein Bild mit einem farbigen und verzerrten Text anzeigt und dazu auffordert, die angezeigten Wörter einzutippen.
+Da eine solche Aufgabe nur schwer automatisch erledigt werden kann, werden dadurch die meisten Spammer, die mit automatischen Werkzeugen arbeiten, gestoppt, wogegen menschliche Benutzer ihren Beitrag absenden können.
+
+Leider kann dies zu Schwierigkeiten für Personen führen, die über eine eingeschränkte Sehfähigkeit verfügen oder text- oder sprachbasierte Browser verwenden. Aktuell sind keine Audio-CAPTCHAs verfügbar.
+
+Bitte kontaktiere einen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] für weitere Hilfe, wenn dies es unmöglich macht, erwünschte Bearbeitungen vorzunehmen.
+
+Der „Zurück“-Knopf des Browsers führt zurück zum Bearbeitungsfenster.',
 	'captcha-addurl-whitelist' => ' #<!-- Diese Zeile darf nicht verändert werden! --> <pre>
 #  Syntax:
 #   * Alles von einem #-Zeichen bis zum Ende der Zeile ist ein Kommentar
 #   * Jede nicht-leere Zeile ist ein Regex-Fragment, das gegenüber den Hostnamen einer URL geprüft wird
  #</pre> <!-- Diese Zeile darf nicht verändert werden! -->',
-	'right-skipcaptcha' => 'Überspringen der Captcha-Eingabe',
+	'right-skipcaptcha' => 'Überspringen der CAPTCHA-Eingabe',
 );
 
-/** German (formal address) (Deutsch (Sie-Form))
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Imre
  * @author Raimond Spekking
+ * @author The Evil IP address
  */
 $messages['de-formal'] = array(
 	'captcha-edit' => 'Zur Bearbeitung der Seite lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
-	'captcha-addurl' => 'Ihre Bearbeitung enthält neue externe Links. 
-Zum Schutz vor automatisiertem Spamming lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein. 
+	'captcha-addurl' => 'Ihre Bearbeitung enthält neue externe Links.
+Zum Schutz vor automatisiertem Spamming lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein.
 Klicken Sie dann erneut auf „Seite speichern“ [[Special:Captcha/help|(Fragen oder Probleme?)]].',
 	'captcha-badlogin' => 'Zum Schutz vor einer Kompromittierung Ihres Benutzerkontos lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]]:',
 	'captcha-createaccount' => 'Zum Schutz vor automatisierter Anlage von Benutzerkonten lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
 	'captcha-create' => 'Zur Erstellung der Seite lösen Sie die nachfolgende Rechenaufgabe und tragen Sie das Ergebnis in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
+	'captcha-sendemail' => 'Um gegen automatischen Spam vorzugehen, lösen Sie bitte die einfache Rechenaufgabe und geben Sie die Antwort unten in das Feld ein ([[Special:Captcha/help|mehr Informationen]]):',
+	'captchahelp-text' => 'Internetangebote, die für Beiträge von praktisch jedem offen sind — so wie dieses Wiki — werden oft von Spammern missbraucht, die ihre Links automatisch auf vielen Webseiten platzieren. Diese Spam-Links können wieder entfernt werden, sie sind aber ein erhebliches Ärgernis.
+
+In manchen Fällen, insbesondere beim Hinzufügen von neuen Weblinks zu einer Seite, kann es vorkommen, dass dieses Wiki ein Bild mit einem farbigen und verzerrten Text anzeigt und dazu auffordert, die angezeigten Wörter einzutippen.
+Da eine solche Aufgabe nur schwer automatisch erledigt werden kann, werden dadurch die meisten Spammer, die mit automatischen Werkzeugen arbeiten, gestoppt, wogegen menschliche Benutzer ihren Beitrag absenden können.
+
+Leider kann dies zu Schwierigkeiten für Personen führen, die über eine eingeschränkte Sehfähigkeit verfügen oder text- oder sprachbasierte Browser verwenden. Aktuell sind keine Audio-Captchas verfügbar.
+
+Bitte kontaktieren Sie einen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] für weitere Hilfe, wenn dies es unmöglich macht, erwünschte Bearbeitungen vorzunehmen.
+
+Der „Zurück“-Knopf des Browsers führt zurück zum Bearbeitungsfenster.',
 );
 
+/** Zazaki (Zazaki)
+ * @author Aspar
+ * @author Xoser
+ */
+$messages['diq'] = array(
+	'captcha-edit' => 'Qe ena pel vurnayîşî, ma rica keno cewabê problemî qutiyê ke cor de zerre ey ra binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'captcha-desc' => 'Implementasyonê captacha yê asanî',
+	'captcha-addurl' => 'Vurnayîşanê tu de linkanê harîcîyê newe esto.
+Qe otomatik spamî ra pawitîş, ma rica keno cewabê problemî qutiyê ke cor de zerre ey ra binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'captcha-badlogin' => 'Qe otomatik parola crack kerdişî ra pawitîş, ma rica keno cewabê problemî qutiyê ke cor de zerre ey ra binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'captcha-createaccount' => 'Qe otomatik hesab viraştişî ra pawitîş, ma rica keno cewabê problemî qutiyê ke cor de zerre ey ra binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'captcha-createaccount-fail' => 'Kodê testiqî vin biyo ya zi raşt niyo.',
+	'captcha-create' => 'Qe pel viraştîşî, ma rica keno cewabê problemî qutiyê ke cor de zerre ey ra binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'captcha-sendemail' => 'Qe otomatik spam ra pawitîşi, ma rica keno cewabê problemî qutiyê ke cor de zerre ey ra binuse 
+([[Special:Captcha/help|enformasyonê bînî]]):',
+	'captcha-sendemail-fail' => 'Kodê testiqî vin biyo ya zi raşt niyo.',
+	'captcha-disabledinapi' => 'Ena hereket de captcha lazim o, aye ra ser API ra ena hereket nibena.',
+	'captchahelp-title' => 'Yardimê captchayî',
+	'captchahelp-cookies-needed' => 'Eka şıma wazeno bıkewê pela Wikipedia, programê internetê şıma de cookiesi gani aktiv bê.',
+	'captchahelp-text' => "Siteyan ke kamu ra aleknayişê îlanî ra destur dano, ze ena wiki, spam kerdogan ke xacetane otomatiki ser kar keno inan ra atak beno.
+Ma eşkeno linkane inan wedarno, feqat hewna inan problem zeman ma geno. 
+
+Mavaci, key ti yew pele de linkane newi darneno, wiki belki ti ra yew resim mucneno u ti ra wazeno cekuyan ke resimda inan binusi. 
+Eka ena process otomatik nibeno, ena process otomatik spam kerogan vinderneno feqay sexsi spam kerdogan nieşkeno vindaro.
+
+Ma ef bikeri ena process belki ti ra zehmeti. belki cim tu ra şcekuyan hewl niesno. 
+Nika ma da sistemê vengî cinoke ti ra vaci resim da kamci cekuyan esto. 
+Ma rica keno ti yew [[{{MediaWiki:Grouppage-sysop}}|idarekar]] ra yew mesaj bişavî u o ra yardim bivaci eka ti yew linkê hewlî darnone.
+
+Browser xo de goceke 'back' rê klik bike şo pela editorî.",
+	'captcha-addurl-whitelist' => '  #<!-- leave this line exactly as it is --> <pre>
+#Sîntaks ze ena yo: 
+#  * Nişanê "#" ra nişanê ke bînê xetî de pêran piya xulasa yo
+#  * Her xetî ke veng niyo fragmento regex u teyna URLan de hostan match keno
+  #</pre> <!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'Herekatanê captcha trigger perform bike ke ti ser captcha meşo',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
 	'captcha-edit' => 'Aby wobźěłował toś ten bok, rozwěž pšosym slědujucy jadnory liceński nadawk a zapódaj wuslědk do kašćika ([[Special:Captcha/help|Dalšne info]]):',
-	'captcha-desc' => 'Jadnora implementacija captcha',
+	'captcha-desc' => 'Staja techniki CAPTCHA za šćit pśeśiwo spamoju a wugódanjoju gronidłow k dispoziciji',
 	'captcha-addurl' => 'Twója změna wopśimujo nowe eksterne wótkaze.
 Za šćit pśeśiwo zawtomatizěrowanemu spamoju, rozwěž pšosym slědujucy jadnory liceński nadawk a zapódaj wuslědk do kašćika ([[Special:Captcha/help|dalšne info]]):',
 	'captcha-badlogin' => 'Za šćit pśeśiwo zawtomatizěrowanemu wuzgónjowanjeju gronidła, rozwěž pšosym slědujucy jadnory liceński nadawk a zapódaj wuslědk do kašćika ([[Special:Captcha/help|dalšne info]]):',
 	'captcha-createaccount' => 'Za šćit pśeśiwo zawtomatizěrowanemu załoženjeju kontow, rozwěž pšosym slědujucy jadnory liceński nadawk a zapódaj wuslědk do kašćika ([[Special:Captcha/help|dalšne info]]):',
 	'captcha-createaccount-fail' => 'Wopacny abo felujucy wobkšuśeński kod.',
 	'captcha-create' => 'Aby napórał bok, rozwěž pšosym slědujucy jadnory liceński nadawk a zapódaj wuslědk do kašćika ([[Special:Captcha/help|dalšne info]]):',
+	'captcha-sendemail' => 'Za šćit pśeśiwo awtomatiskemu spamowanjeju, rozwěž pšosym jadnory liceński nadawk a zapódaj wótegrono do kašćika ([[Special:Captcha/help|dalšne informacije]]):',
+	'captcha-sendemail-fail' => 'Wopacny abo felujucy wobkšuśeński kod.',
+	'captcha-disabledinapi' => 'Toś ta akcija pomina se captcha, togodla njedajo se pśez API wuwjasć.',
 	'captchahelp-title' => 'Pomoc wó captcha',
 	'captchahelp-cookies-needed' => 'Aby to funkcioněrowało, muse cookieje dowólone byś.',
 	'captchahelp-text' => 'Websedła, kótarež akceptěruju zjawne pśinoski, ako toś ten wiki, znjewužywaju se cesto wót spamowarjow, kótarež wužywaju zawtomatizěrowane rědy, aby słali swóje wótkaze na wjele sedłow.
 Lěcrownož toś te spamowe wótkaze daju se wótpóraś, su wóne bejna pógóršota.
 
 Wótergi, wósebnje, gaž se nowe wótkaze pśidawaju bokoju, jo móžno, až wiki śi pokazujo wobraz barwojtego abo spryšćonego teksta a pšosy śe, aby zapódał zwobraznjone słowa.
-Dokulaž to jo nadawk, kótaryž dajo se śěžko awtomatizěrowaś, dówolujo to realnym luźam jich pśinoski wótpósłaś, najwěcej spamowarjow a robotowe ataki pak se zaźaržyju.
+Dokulaž to jo nadawk, kótaryž dajo se śěžko awtomatizěrowaś, dówolujo to napšawdnym luźam jich pśinoski wótpósłaś, nejwěcej spamowarjow a robotowe ataki pak se zaźaržyju.
 
-Bóžko to móžo kazyś wužywarjow z wobgraniwoneju zamóžnosću wiźenja pśi wužywanju wobglědowakow, kótarež bazěruju na teksće abo rěcy.
+Bóžko to móžo kazyś wužywarjow z wobgraniwoneju zamóžnosću wiźenja pśi wužywanju wobglědowakow, kótarež bazěruju na teksće abo rěcnem wudaśu.
 Tuchylu njamamy awdioalternatiwu.
-Staj se pšosym z administratorami sedła z pšosbu wó pomoc do zwiska, jolic to śi njewócakane  zawobarujo słanje pšawniskich pśinoskow.
+Staj se pšosym z [[{{MediaWiki:Grouppage-sysop}}|administratorami sedła]] z pšosbu wó pomoc do zwiska, jolic to śi njewócakane  zawobarujo słanje legitimnych pśinoskow.
 
 Klikni na tłocašk "Slědk" we swójom wobglědowaku, aby wróśił k bokowemu editoroju.',
 	'captcha-addurl-whitelist' => ' #<!-- wóstaj toś tu smužku rowno ako jo --> <pre>
@@ -653,48 +898,107 @@
 /** Greek (Ελληνικά)
  * @author Badseed
  * @author Consta
+ * @author Dada
+ * @author Geraki
+ * @author Glavkos
+ * @author Kiriakos
+ * @author Omnipaedista
  * @author ZaDiak
+ * @author Περίεργος
  */
 $messages['el'] = array(
+	'captcha-edit' => 'Για να επεξεργαστείτε αυτή την σελίδα, παρακαλούμε λύστε την παρακάτω πρόσθεση και απαντήστε στο πλαίσιο ([[Special:Captcha/help|πληροφορίες]]):',
+	'captcha-desc' => 'Παρέχει τεχνικές CAPTCHA για την προστασία από spam και προσπάθειες σπασίματος  κωδικών πρόσβασης',
+	'captcha-addurl' => 'Η επεξεργασία σας περιλαμβάνει νέους εξωτερικούς συνδέσμους. Για λόγους προστασίας κατά αυτοματοποιημένου spam, παρακαλούμε λύστε την παρακάτω πρόσθεση και απαντήστε στο πλαίσιο ([[Special:Captcha/help|πληροφορίες]]):',
 	'captcha-badlogin' => 'Για να βοηθήσετε στην προστασία ενάντια στον "σπασμένο" κωδικό πρόσβασης, παρακαλώ λύστε αυτή την απλή πράξη και εισάγετε το αποτέλεσμα της στο παρακάτω κενό ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
 	'captcha-createaccount' => 'Για να βοηθήσετε στην προστασία ενάντια στην αυτοματοποιημένη δημιουργία λογαριασμού, παρακαλώ λύστε την απλή πράξη
 και εισάγετε την λύση της στο παρακάτω κενό
 ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
 	'captcha-createaccount-fail' => 'Λάθος ή αγνοούμενος κωδικός ολοκλήρωσης.',
+	'captcha-create' => 'Για να δημιουργήσετε την σελίδα, παρακαλούμε λύστε την παρακάτω πρόσθεση και απαντήστε στο πλαίσιο ([[Special:Captcha/help|πληροφορίες]]):',
+	'captcha-sendemail' => 'Για να βοηθήσετε στην αποφυγή αυτοματοποιημένων spam, παρακαλούμε να λύσετε την παρακάτω απλή πράξη και να εισάγετε την απάντηση στο πεδίο ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
+	'captcha-sendemail-fail' => 'Ελλιπής ή λανθασμένος κωδικός επιβεβαίωσης.',
+	'captcha-disabledinapi' => 'Η ενέργεια αυτή απαιτεί επαλήθευση λεκτικού κειμένου και για αυτό δεν μπορεί να γίνει μέσω του API.',
+	'captchahelp-title' => 'Βοήθεια για το Captcha',
 	'captchahelp-cookies-needed' => 'Θα πρέπει να έχετε τα cookies ενεργοποιημένα στον φυλλομετρητή σας για να εκτελεστεί η λειτουργία.',
 	'captchahelp-text' => "Οι ιστοσελίδες που δέχονται τις επεξεργασίες από το κοινό, όπως αυτό το wiki, δεν χρησιμοποιούνται συχνά σωστά από τους spammers που χρησιμοποιούν τα αυτοματοποιημένα εργαλεία για να αποστείλουν τις συνδέσεις τους με πολλές σελίδες. Αυτές οι spam συνδέσεις  μπορούν να αφαιρεθούν, επειδή είναι σημαντικά ενοχλητικές.
 
 Μερικές φορές, ειδικά κατά την προσθήκη νέων συνδέσμων σε μια σελίδα, το wiki μπορεί να σας παρουσιάσει μια εικόνα με ένα χρωματισμένο ή διαστρεβλωμένο κείμενο και να σας ζητήσει να πληκτρολογήσετε τις λέξεις που παρουσιάζονται. Δεδομένου ότι αυτό είναι ένας στόχος που είναι δύσκολο να αυτοματοποιηθεί, θα επιτρέψει στους περισσότερους χρήστες να κάνουν τις επεξεργασίες τους, σταματώντας τους spammers και άλλους ρομποτικά επιτιθέμενους.
 
-Δυστυχώς αυτό μπορεί να ενοχλήσει τους χρήστες περιορίζοντας το όραμα τους ή αυτούς που βασίζονται στο κείμενο ή στην ομιλία που βασίζεται στις μηχανές αναζήτησης. Προς το παρόν δεν έχουμε μια διαθέσιμη εναλλακτική λύση. Παρακαλώ ελάτε σε επαφή με τους διαχειριστές των σελίδων για βοήθεια, εάν αυτό σας αποτρέπει απροσδόκητα από την παραγωγή των νόμιμων επεξεργασιών.
+Δυστυχώς αυτό μπορεί να ενοχλήσει τους χρήστες περιορίζοντας το όραμα τους ή αυτούς που βασίζονται στο κείμενο ή στην ομιλία που βασίζεται στις μηχανές αναζήτησης. Προς το παρόν δεν έχουμε μια διαθέσιμη εναλλακτική λύση. Παρακαλώ ελάτε σε επαφή με τους [[{{MediaWiki:Grouppage-sysop}}|διαχειριστές]] των σελίδων για βοήθεια, εάν αυτό σας αποτρέπει απροσδόκητα από την παραγωγή των νόμιμων επεξεργασιών.
 
 Πατήστε το κουμπί 'πίσω' στη μηχανή αναζήτησης σας για να επιστρέψετε στο συντάκτη σελίδων.",
+	'captcha-addurl-whitelist' => '  #<!-- αφήστε αυτή την γραμμή ακριβώς όπως είναι --> <pre>
+# Η σύνταξη είναι όπως παρακάτω:
+#  * Οτιδήποτε από ένα χαρακτήρα "#" ως το τέλος της γραμμής είναι ένα σχόλιο
+#  * Κάθε μη κενή γραμμή είναι μια έκφραση regex που θα ταιριάζει μόνο hosts μέσα σε URL
+  #</pre> <!-- αφήστε αυτή την γραμμή ακριβώς όπως είναι -->',
+	'right-skipcaptcha' => 'Πραγματοποίηση ενεργειών που ενεργοποιούν captcha χωρίς να χρειάζεται πέρασμα από το captcha',
 );
 
+/** Canadian English (Canadian English)
+ * @author Techman224
+ */
+$messages['en-ca'] = array(
+	'captchahelp-text' => "Web sites that accept postings from the public, like this wiki, are often abused by spammers who use automated tools to post their links to many sites.
+While these spam links can be removed, they are a significant nuisance.
+
+Sometimes, especially when adding new web links to a page, the wiki may show you an image of coloured or distorted text and ask you to type the words shown.
+Since this is a task that's hard to automate, it will allow most real humans to make their posts while stopping most spammers and other robotic attackers.
+
+Unfortunately this may inconvenience users with limited vision or using text-based or speech-based browsers.
+At the moment we do not have an audio alternative available.
+Please contact the  [[{{MediaWiki:Grouppage-sysop}}|site administrators]] for assistance if this is unexpectedly preventing you from making legitimate posts.
+
+Hit the 'back' button in your browser to return to the page editor.",
+);
+
+/** British English (British English)
+ * @author Lcawte
+ */
+$messages['en-gb'] = array(
+	'captchahelp-text' => "Web sites that accept postings from the public, like this wiki, are often abused by spammers who use automated tools to post their links to many sites.
+While these spam links can be removed, they are a significant nuisance.
+
+Sometimes, especially when adding new web links to a page, the wiki may show you an image of coloured or distorted text and ask you to type the words shown.
+Since this is a task that's hard to automate, it will allow most real humans to make their posts while stopping most spammers and other robotic attackers.
+
+Unfortunately this may inconvenience users with limited vision or using text-based or speech-based browsers.
+At the moment we do not have an audio alternative available.
+Please contact the  [[{{MediaWiki:Grouppage-sysop}}|site administrators]] for assistance if this is unexpectedly preventing you from making legitimate posts.
+
+Hit the 'back' button in your browser to return to the page editor.",
+);
+
 /** Esperanto (Esperanto)
+ * @author Castelobranco
+ * @author Petrus Adamus
  * @author Yekrats
  */
 $messages['eo'] = array(
 	'captcha-edit' => 'Por redakti ĉi tiun paĝon, bonvolu solvi la simplan sumon jenan kaj enigi la respondon en la skatolo ([[Special:Captcha/help|plua informo]]):',
-	'captcha-desc' => 'Simpla realigo de Captcha',
+	'captcha-desc' => 'Disponigas ilojn de Captcha por kontraŭigi spamaĵojn kaj pasvorto-divenadon',
 	'captcha-addurl' => 'Via redakto entenas novajn eksterajn ligilojn.
 Por malhelpi aŭtomatan spamadon, bonvolu solvi la simplan problemon sube kaj entajpu la respondon en la kesto ([[Special:Captcha/help|pli da informo]]):',
 	'captcha-badlogin' => 'Helpi protekti kontraŭ aŭtomata divenado de pasvortoj, bonvolu solvi la simplan sumon kaj enigi la respondon en la skatolo ([[Special:Captcha/help|plua informo]]):',
 	'captcha-createaccount' => 'Helpi protekti kontraŭ aŭtomata konto-kreado, bonvolu solvi la simplan sumon suben
 kaj enigi la respondon en la skatolo ([[Special:Captcha/help|plua informo]]):',
-	'captcha-createaccount-fail' => 'Nekorekta aŭ mankanta konfirmkodo.',
+	'captcha-createaccount-fail' => 'Malĝusta aŭ mankanta konfirma kodo.',
 	'captcha-create' => 'Por krei la paĝon, bonvolu solvi la simplan sumon jenan kaj enigi la respondon en la skatolo ([[Special:Captcha/help|plua informo]]):',
-	'captchahelp-title' => 'Helpo pri Captcha',
-	'captchahelp-cookies-needed' => 'Vi devas ebligi kuketojn en via retumilo por ĉi tiu funkcii.',
-	'captchahelp-text' => "Retejoj kiuj akcepti informon de publiko, kiel ĉi tiu vikio, estas ofte misuzitaj de spamistoj kiu uzas aŭtomatajn ilojn por sendi ligilojn al multaj retejoj.
-Kvankam ĉi tiu spam-ligiloj povas esti forigitaj, ili estas ĝeno.
+	'captcha-sendemail' => 'Por helpi protekti kontraŭ aŭtomata spamado, bonvolu solvi la simplan sumon kaj enigi la respondon en la skatolo ([[Special:Captcha/help|plua informo]]):',
+	'captcha-sendemail-fail' => 'Malĝusta aŭ mankanta konfirma kodo.',
+	'captcha-disabledinapi' => 'Ĉi tiu ago bezonas captcha, tial ĝi ne estas farebla per API.',
+	'captchahelp-title' => 'Helpo pri captcha',
+	'captchahelp-cookies-needed' => 'Vi devas permesi kuketojn en via retumilo por funkciigi ĉi tion.',
+	'captchahelp-text' => "Retejoj kiuj akcepti informon de publiko, kiel ĉi tiu vikio, estas ofte misuzitaj de spamistoj kiu uzas aŭtomatajn ilojn por afiŝi ligilojn al multaj retejoj.
+Kvankam ĉi tiu spam-ligiloj estas forigeblaj, ili estas granda ĝeno.
 
 Iufoje, ja kiam aldonante novajn retligilojn al paĝo, la vikio eble montros al vi bildon de bunta aŭ misformita teksto, kaj petos al vi tajpi la vortojn montratajn.
-Tial ĉi tiu tasko estas malfacila por fari per roboto, elbigos al pliparto da homoj fari aldonaĵojn, kaj malebligos spamistojn kaj aliaj robotaj atakantoj.
+Tial ĉi tiu tasko estas malfacila por fari aŭtomate, ebligos al realaj homoj fari aldonaĵojn, kaj malebligos spamistojn kaj aliajn robotajn atakilojn.
 
 Bedaŭrinde, ĉi tio eble ĝenetos uzantojn kun malbona vidkapablo kiu utiligas tekstajn aŭ voĉajn retumilojn.
 Ĉi-momente, neniu aŭda alternativo estas havebla.
-Bonvolu kontakti la administrantojn de la retejo por helpo se ĉi tio malebligas al vi fari bonan aldonon.
+Bonvolu kontakti la [[{{MediaWiki:Grouppage-sysop}}|administrantojn de la retejo]] por helpo se ĉi tio malebligas al vi fari bonan aldonon.
 
 Klaku la 'reiru' butonon en via retumilo por reiri al la paĝo-redaktilo.",
 	'captcha-addurl-whitelist' => ' #<!-- ne ŝanĝu ĉi tiun linion iel ajn --> <pre>
@@ -706,26 +1010,39 @@
 );
 
 /** Spanish (Español)
+ * @author Crazymadlover
  * @author Drini
  * @author Icvav
  * @author Jatrobat
  * @author Lin linao
+ * @author Locos epraix
  * @author Muro de Aguas
+ * @author Pertile
  * @author Sanbec
  */
 $messages['es'] = array(
 	'captcha-edit' => 'Para editar este artículo, por favor resuelve la sencilla suma que aparece abajo e introduce la solución en la caja ([[Special:Captcha/help|más información]]):',
-	'captcha-desc' => 'Implementación de un captcha sencillo.',
-	'captcha-addurl' => 'Tu edición incluye nuevos enlaces externos. Para ayudar a proteger contra el spam automatizado, por favor resuelve la sencilla suma de abajo e introduce la respuesta en la caja ([[Special:Captcha/help|más información]]):',
-	'captcha-badlogin' => 'Lo siguiente se ha implementado para resguardarse de la generación automática de cuentas. Por favor, resuelve la suma de más abajo e introduce el resultado en la caja ([[Special:Captcha/help|más información]]):',
+	'captcha-desc' => 'Provee técnicas CAPTCHA para proteger contra spam y adivinación de contraseña.',
+	'captcha-addurl' => 'Tu edición incluye nuevos enlaces externos.
+Para ayudar a proteger contra el spam automatizado, por favor resuelve la sencilla suma de abajo e introduce la respuesta en la caja ([[Special:Captcha/help|más información]]):',
+	'captcha-badlogin' => 'Para ayudar a protegernos de la creación automática de cuentas, por favor resuelve la simple suma de abajo e introduce la respuesta en la caja ([[Special:Captcha/help|más información]]):',
 	'captcha-createaccount' => 'Para ayudar a protegernos de la creación automática de cuentas, por favor resuelve la simple suma de abajo e introduce la respuesta en la caja ([[Special:Captcha/help|más información]]):',
 	'captcha-createaccount-fail' => 'Falta el código de confirmación, o éste es incorrecto.',
 	'captcha-create' => 'Para crear la página, por favor resuelve la simple suma de abajo e introduce la respuesta en la caja ([[Special:Captcha/help|más información]]):',
+	'captcha-sendemail' => 'Para protegernos contra el spam automatizado, por favor resuelva la suma simple que se presenta a continuación e ingrese la respuesta en el cuadro de texto ([[Special:Captcha/help|más información]]):',
+	'captcha-sendemail-fail' => 'El código de confirmación falta o es incorrecto.',
+	'captcha-disabledinapi' => 'Esta acción requiere un captcha, así que no puede ser ejecutada a través de un API.',
 	'captchahelp-title' => 'Ayuda sobre el captcha',
 	'captchahelp-cookies-needed' => 'Debe tener las cookies activadas en el navegador para que el sistema funcione.',
-	'captchahelp-text' => 'Los sitios web que aceptan mensajes del público, como esta wiki, son a menudo objeto de abusos  por spammers que utilizan programas para incluir automáticamente sus enlaces. Si bien estos enlaces pueden quitarse, son una gran molestia.
+	'captchahelp-text' => "Los sitios web que aceptan mensajes del público, como esta wiki, son a menudo objeto de abusos  por spammers que utilizan programas para incluir automáticamente sus enlaces. Si bien estos enlaces pueden quitarse, son una gran molestia.
 
-En ocasiones, especialmente cuando añada nuevos enlaces a una página, la wiki le mostrará una imagen de texto coloreado o distorsionado y le pedirá que escriba las palabras que muestra. Dado que esta es una tarea difícil de automatizar, permite a la mayoría de las personas enviar sus textos, a la vez que detiene a la mayoría de los spammers y otros atacantes automáticos.',
+En ocasiones, especialmente cuando añada nuevos enlaces a una página, la wiki le mostrará una imagen de texto coloreado o distorsionado y le pedirá que escriba las palabras que muestra. Dado que esta es una tarea difícil de automatizar, permite a la mayoría de las personas enviar sus textos, a la vez que detiene a la mayoría de los spammers y otros atacantes automáticos.
+
+Desafortunadamente esto puede ser un inconveniente para usuarios con visión limitada o para navegadores basados en texto o en voz.
+En este momento no tenemos una alternativa de audio disponible.
+Por favor contacte a los  [[{{MediaWiki:Grouppage-sysop}}|administradores del sitio]] para asistencia si esto está impidiendiendo inesperadamente que hagas mensajes legítimos.
+
+Presione el botón 'atrás' en su navegador para retornar al editor de página.",
 	'captcha-addurl-whitelist' => ' #<!-- deje esta línea exactamente como está --> <pre>
 # La sintaxis es la siguiente:
 #  * Todo desde un caracter "#" hasta el final de la línea es un comentario
@@ -737,53 +1054,92 @@
 /** Estonian (Eesti)
  * @author BrokenArrow
  * @author Jaan513
+ * @author Pikne
  */
 $messages['et'] = array(
-	'captcha-edit' => 'Teie muudatuses on uusi linke; kaitseks spämmi vastu peate sisestama järgneval pildil olevad sõnad:<br /> ([[Special:Captcha/help|Mis see on?]])',
-	'captcha-addurl' => 'Teie muudatuses on uusi linke; kaitseks spämmi vastu peate sisestama järgneval pildil olevad sõnad:<br /> ([[Special:Captcha/help|Mis see on?]])',
-	'captcha-createaccount' => 'Kaitsena spämmi vastu peate konto registreerimiseks lahtrisse kirjutama järgneva tehte tulemuse.<br /> ([[Special:Captcha/help|Mis see on?]])',
+	'captcha-edit' => 'Selle lehekülje muutmiseks lahenda palun lihtne tehe ja sisesta vastus kasti ([[Special:Captcha/help|lisateave]]).',
+	'captcha-desc' => 'Pakub robotilõksu abil kaitset rämpspostituste ja paroolide äraarvamise vastu.',
+	'captcha-addurl' => 'Sinu muudatus sisaldab uusi välislinke.
+Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):',
+	'captcha-badlogin' => 'Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaatsete parooliäraarvajate eest ([[Special:Captcha/help|lisateave]]):',
+	'captcha-createaccount' => 'Palun lahenda lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks kontode automaatse loomise eest ([[Special:Captcha/help|lisateave]]):',
 	'captcha-createaccount-fail' => 'Puuduv või valesti sisestatud kinnituskood.',
-	'captcha-create' => 'Teie muudatuses on uusi linke; kaitseks spämmi vastu peate sisestama järgneval pildil olevad sõnad:<br /> ([[Special:Captcha/help|Mis see on?]])',
-	'captchahelp-title' => 'Mis on Captcha?',
-	'captchahelp-cookies-needed' => 'Selle toimimiseks peab veebibrauser lubama küpsiseid.',
-	'captchahelp-text' => 'Internetisaite, mis lubavad külastajatel sisu muuta (nagu ka see Viki), kasutavad sageli spämmerid ära, postitades reklaamlinke - spämmi. Kuigi neid linke saab alati ära võtta, on nad ikkagi üpris tülikad. Omale kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades näidatakse teile moonutatud tekstiga pilti ning palutakse teil sisestada seal näidatud sõnad. Kuna selliselt pildilt on arvutil raske teksti välja lugeda, on see efektiivseks kaitseks spämmirobotite vastu, samas lubades tavainimestel oma muudatusi rahus teha. Kahjuks võib see tekitada ebamugavusi nägemisraskustega inimestele või neile, kes kasutavad kõnesüntesaatorit või tekstipõhist brauserit. Hetkel pole meil helipõhist alternatiivi. Kui teil tekib ootamatult raskusi oma muudatuste tegemisel, siis kirjutage sellest [[Vikipeedia:Üldine arutelu|üldise arutelu]] lehele. Konto registreerimise lehele või lehe redigeerimisele tagasi jõudmiseks vajutage oma brauseri tagasi-nuppu.',
+	'captcha-create' => 'Lehekülje loomiseks lahenda palun lihtne tehe ja sisesta vastus kasti
+([[Special:Captcha/help|lisateave]]):',
+	'captcha-sendemail' => 'Palun lahenda allpool lihtne tehe ja sisesta vastus kasti. Abinõu on kaitseks automaadistatud rämpsmuudatuste vastu ([[Special:Captcha/help|lisateave]]):',
+	'captcha-sendemail-fail' => 'Vigane või puuduv kinnituskood.',
+	'captcha-disabledinapi' => 'Ühes selle toiminguga tuleb läbida robotilõks ja seetõttu ei saa seda API kaudu sooritada.',
+	'captchahelp-title' => 'Mis on robotilõks?',
+	'captchahelp-cookies-needed' => 'Selle toimimiseks peab veebilehitseja lubama küpsiseid.',
+	'captchahelp-text' => 'Võrgukohti, mis lubavad külastajatel sisu muuta, nagu ka see viki, kasutavad sageli rämpsposti levitajad, lisades näiteks lehekülgedele reklaamilinke. Kuigi neid linke saab eemaldada, on nad siiski tülikad.
+
+Kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades näidatakse moonutatud tekstiga pilti ja palutakse sisestada seal kuvatud sõnad. Kuna selliselt pildilt on arvutil raske teksti välja lugeda, on see efektiivseks kaitseks rämpspostirobotite vastu ja lubab samas tavakasutajatel rahus muudatusi teha.
+
+Kahjuks võib see tekitada ebamugavusi nägemisraskustega inimestele või neile, kes kasutavad tehiskõneseadet või tekstipõhist veebilehitsejat. Hetkel pole meil helipõhist alternatiivi.
+Kui sul tekib raskusi muudatuste tegemisel, võta palun ühendust selle võrgukoha [[{{MediaWiki:Grouppage-sysop}}|administraatoritega]].
+
+Konto registreerimise lehele või redigeerimisaknasse tagasi jõudmiseks klõpsa veebilehitseja tagasi-nuppu.',
+	'captcha-addurl-whitelist' => '  #<!-- Jäta see rida muutmata kujule. --> <pre>
+# Süntaks:
+#  * Kõik alates märgist "#" kuni rea lõpuni on kommentaar
+#  * Iga rida, mis ei ole tühi, on regulaaravaldise osa, milleks sobib internetiaadressi osadest ainult hostinimi
+  #</pre> <!-- Jäta see rida muutmata kujule. -->',
+	'right-skipcaptcha' => 'Sooritada robotilõksu vallapäästvaid toiminguid testi läbimata',
 );
 
 /** Basque (Euskara)
+ * @author An13sa
  * @author BrokenArrow
  * @author Kobazulo
  * @author Pi
  */
 $messages['eu'] = array(
 	'captcha-edit' => 'Orrialde hau editatzeko, mesedez, beheko batuketa erraz hau ebatzi eta erantzuna kutxan idatzi ([[Special:Captcha/help|argibide gehiago]]):',
-	'captcha-desc' => 'Captcha inplementazio soila',
+	'captcha-desc' => 'CAPTCHA teknika erabiltzen ditu spamaren aurkako babeserako',
 	'captcha-addurl' => 'Zure aldaketan URL lotura berriak daude; spam-a saihesteko, jarraian dagoen irudiko hitzak idaztea beharrezkoa da:<br /> ([[Special:Captcha/help|Zer da hau?]])',
 	'captcha-createaccount' => 'Spam-a saihesteko, mesedez, irudian agertzen den hizki edo zenbaki kodea, beheko laukian idatzi zure kontua sortzeko:<br /> ([[Special:Captcha/help|Zer da hau?]])',
 	'captcha-createaccount-fail' => 'Baieztatze kode ezegokia.',
 	'captcha-create' => 'Orrialde hau sortzeko, mesedez, beheko batuketa erraz hau ebatzi eta erantzuna kutxan idatzi ([[Special:Captcha/help|argibide gehiago]]):',
 	'captchahelp-title' => 'Captcha laguntza',
 	'captchahelp-cookies-needed' => 'Beharrezkoa da nabigatzailean cookieak gaituta izatea honek funtzionatzeko.',
-	'captchahelp-text' => "Publikoki aldaketak egiteko aukerak dituzten webguneetan, wiki honetan bezalaxe, spam testuak gehitzen dira sarritan tresna automatikoak erabiliz. Lotura horiek ezabatu egin daitezkeen arren, traba dira. Batzutan, eta bereziki webgune berri bateko loturak gehitzen dituzunean, hitz batzuk dituen irudi bat agertuko zaizu, eta bertan ageri den testua idazteko eskatuko zaizu. Lan hori automatizatzeko zaila da, eta pertsonei ezer kostatzen ez zaigunez, spam testuak saihesteko lagungarria da. Zoritxarrez, ikusmen mugatua edo testu bidezko nabigatzaileak erabiltzen dituzten erabiltzeek arazoak izan ditzakete. Horrelako zerbait gertatzen bazaizu, mesedez, jarri administratzaileekin harremanetan. Zure nabigatzaileko 'atzera' lotura erabili aldaketen orrialdera itzultzeko.",
+	'captchahelp-text' => "Publikoki aldaketak egiteko aukerak dituzten webguneetan, wiki honetan bezalaxe, spam testuak gehitzen dira sarritan tresna automatikoak erabiliz.
+Lotura horiek ezabatu egin daitezkeen arren, traba dira.
+
+Batzuetan, eta bereziki webgune berri bateko loturak gehitzen dituzunean, hitz batzuk dituen irudi bat agertuko zaizu, eta bertan ageri den testua idazteko eskatuko zaizu. Lan hori automatizatzeko zaila da, eta pertsonei ezer kostatzen ez zaigunez, spam testuak saihesteko lagungarria da.
+
+Zoritxarrez, ikusmen mugatua edo testu bidezko nabigatzaileak erabiltzen dituzten erabiltzeek arazoak izan ditzakete. Horrelako zerbait gertatzen bazaizu, mesedez, jarri [[{{MediaWiki:Grouppage-sysop}}|administratzaileekin]] harremanetan.
+
+Zure nabigatzaileko 'atzera' lotura erabili aldaketen orrialdera itzultzeko.",
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
+ * @author Mjbmr
+ * @author Wayiran
  */
 $messages['fa'] = array(
 	'captcha-edit' => 'برای ویرایش این مقاله، لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
-	'captcha-desc' => 'پیاده‌سازی سادهٔ CAPTCHA',
+	'captcha-desc' => 'روش‌های مبتنی بر CAPTCHA برای مقابله با هرزنگاری و کشف گذرواژه فراهم می‌کند',
 	'captcha-addurl' => 'ویرایش شما شامل پیوندهای تازه‌ای به بیرون است. برای کمک به جلوگیری از ارسال خودکار هرزنامه‌ها، لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 	'captcha-badlogin' => 'برای کمک به جلوگیری از سرقت خودکار کلمه عبور، لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 	'captcha-createaccount' => 'برای جلوگیری از ایجاد خودکار حساب کاربری، لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
-	'captcha-createaccount-fail' => 'کلمه تایید نادرست یا گم‌شده:',
+	'captcha-createaccount-fail' => 'کد تأییدی وجود ندارد یا نادرست است.',
 	'captcha-create' => 'برای ایجاد صفحه لطفاً حاصل جمع زیر را حساب کنید و نتیجه را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
+	'captcha-sendemail' => 'برای کمک به حفاظت در برابر هرزنامه‌های خودکار، لطفاً جمع سادهٔ زیر را حل کنید و جواب را در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
+	'captcha-sendemail-fail' => 'کد تأییدی وجود ندارد یا نادرست است.',
+	'captcha-disabledinapi' => 'این اقدام به کپچا نیاز دارد، بنابراین نمی‌تواند از طریق API انجام شود.',
 	'captchahelp-title' => 'راهنمای Captcha',
 	'captchahelp-cookies-needed' => 'برای کار کردن آن، شما باید کوکی‌های مرورگرتان را فعال کنید.',
-	'captchahelp-text' => 'وبگاه‌هایی مثل این ویکی که به عموم اجازهٔ نوشتن مطلب می‌دهند، غالباً مورد سوءاستفادهٔ هرزفرستندگانی می‌شوند که با ابزارهای خودکار پیوندهای بیرونی به وبگاه‌های موردنظرشان وارد می‌کنند. این پیوندهای هرز و تبلیغاتی را می‌توان دستی حذف کرد، ولی به هر حال باعث اعصاب‌خردی زیادی می‌شوند.
+	'captchahelp-text' => 'تارنماهایی مثل این ویکی که به عموم اجازهٔ نوشتن مطلب می‌دهند، غالباً مورد سوءاستفادهٔ هرزفرستندگانی می‌شوند که با ابزارهای خودکار پیوندهای بیرونی به تارنماهای موردنظرشان وارد می‌کنند.
+اگر چه این پیوندهای هرز و تبلیغاتی را می‌توان دستی حذف کرد، ولی به هر حال باعث اعصاب‌خردی زیادی می‌شوند.
 
-گاهی اوقات، خصوصاً هنگامی که پیوندهای بیرونی جدیدی به صفحه اضافه می‌شود، ویکی ممکن است به شما تصویری رنگی و کج‌وکوله از متنی نشان بدهد و از شما بخواهد که کلمه‌های نشان‌داده‌شده را تایپ کنید. از آنجا که خودکارسازی این کار دشوار است، انسانهای واقعی می‌توانند پیوندهاشان را وارد کنند ولی برنامه‌های خودکار تبلیغاتی از خرابکاری باز خواهند ماند.
-متأسفانه این امر ممکن است باعث مزاحمت برای کاربرانی شود که چشمشان ضعیف است یا از مرورگرهای متنی یا گفتاری استفاده می‌کنند. در حال حاضر ما جایگزین صوتی‌ای برای این کار نداریم. لطفاً اگر برای واردساختن پیوندهای مشروع دچار مشکل شده‌اید با مدیران این وبگاه تماس بگیرید.
+گاهی اوقات، خصوصاً هنگامی که پیوندهای بیرونی جدیدی به صفحه اضافه می‌شود، ویکی ممکن است به شما تصویری رنگی و کج‌وکوله از متنی نشان بدهد و از شما بخواهد که کلمه‌های نشان‌داده‌شده را تایپ کنید.
+از آنجا که خودکارسازی این کار دشوار است، انسانهای واقعی می‌توانند پیوندهاشان را وارد کنند ولی برنامه‌های خودکار تبلیغاتی از خرابکاری باز خواهند ماند.
 
+متأسفانه این امر ممکن است باعث مزاحمت برای کاربرانی شود که چشمشان ضعیف است یا از مرورگرهای متنی یا گفتاری استفاده می‌کنند.
+در حال حاضر ما جایگزین صوتی‌ای برای این کار نداریم. لطفاً اگر برای واردساختن پیوندهای مشروع دچار مشکل شده‌اید با [[{{MediaWiki:Grouppage-sysop}}|مدیران این تارنما]] تماس بگیرید.
+
 دکمهٔ «بازگشت» را در مرورگر خود فشار دهید تا به صفحهٔ ویرایش بازگردید.',
 	'captcha-addurl-whitelist' => ' #<!-- این سطر را همان‌گونه که هست رها کنید --> <pre>
 # قواعد به این شکل است:
@@ -795,24 +1151,29 @@
 
 /** Finnish (Suomi)
  * @author Agony
+ * @author Centerlink
  * @author Crt
  * @author Nike
+ * @author Varusmies
  */
 $messages['fi'] = array(
 	'captcha-edit' => 'Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
-	'captcha-desc' => 'Yksinkertainen ihmisvarmennustoteutus.',
+	'captcha-desc' => 'Tarjoaa CAPTCHA-tekniikoita suojaamaan mainoslinkkejä ja salasana-arvailua vastaan.',
 	'captcha-addurl' => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
 	'captcha-badlogin' => 'Salasananmurtajasovellusten takia, ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
 	'captcha-createaccount' => 'Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
 	'captcha-createaccount-fail' => 'Väärä tai puuttuva varmistuskoodi.',
 	'captcha-create' => 'Ratkaise alla oleva summa jatkaaksesi ([[Special:Captcha/help|lisätietoja]]):',
+	'captcha-sendemail' => 'Jotta auttaisit suojautumaan automaattiselta roskapostitukselta, ratkaise alla oleva yksinkertainen yhteenlasku ja kirjoita vastaus laatikkoon ([[Special:Captcha/help|lisätietoja]]):',
+	'captcha-sendemail-fail' => 'Virheellinen tai puuttuva vahvistuskoodi',
+	'captcha-disabledinapi' => 'Tämä toiminto vaatii kuvavarmennusta, joten et voi suorittaa sitä APIn kautta.',
 	'captchahelp-title' => 'Captcha-ohje',
 	'captchahelp-cookies-needed' => 'Tämä toiminto vaatii evästeiden hyväksymistä.',
 	'captchahelp-text' => 'Verkkosivut, jotka sallivat ulkopuolisten lisätä sisältöä, joutuvat usein spam-hyökkäysten kohteeksi. Spam-hyökkäyksessä spammerit käyttävät työkaluja, jotka automaattisesti lisäävät linkkejä monille sivuille. Vaikka nämä linkit voidaan poistaa, aiheutuu niistä silti merkittävä haitta.
 
 Joskus, erityisesti kun lisäät uusia linkkejä, saatat nähdä kuvan, jossa on värillistä ja vääristynyttä tekstiä, ja sinua pyydetään kirjoittamaan sen sisältämät sanat. Koska tätä tehtävää on vaikea automatisoida, se sallii melkein kaikkien oikeiden ihmisten tehdä muutoksensa, mutta estää automaattiset lisäykset.
 
-Valitettavasti tämä saattaa estää käyttäjiä, joilla on rajoittunut näkökyky tai käyttäjiä, jotka käyttävät teksti- tai puhepohjaisia selaimia. Ota yhteyttä sivuston ylläpitäjään, jos et pysty tekemään kunnollisia muutoksia.
+Valitettavasti tämä saattaa estää käyttäjiä, joilla on rajoittunut näkökyky tai käyttäjiä, jotka käyttävät teksti- tai puhepohjaisia selaimia. Ota yhteyttä sivuston [[{{MediaWiki:Grouppage-sysop}}|sivuston ylläpitäjiin]], jos et pysty tekemään kunnollisia muutoksia.
 
 Varmistus ei toimi, jos evästeet eivät ole käytössä.
 
@@ -826,50 +1187,61 @@
 );
 
 /** Faroese (Føroyskt)
+ * @author EileenSanda
  * @author Spacebirdy
  */
 $messages['fo'] = array(
 	'captcha-createaccount' => 'Sum ein vernd ímóti sjálvvirknum spam, er neyðugt hjá tær at skriva inn tey orð, sum koma fyri á myndini fyri at stovna eina kontu: <br />([[Special:Captcha/help|Hvat er hetta?]])',
+	'captcha-createaccount-fail' => 'Skeiv ella manglandi váttanar loyniorð.',
+	'captcha-create' => 'Fyri at upprætta síðuna, vinarliga loys tað einfalda roknistykki niðanfyri og skriva svarið í teigin ([[Special:Captcha/help|meira kunning]]):',
+	'captcha-sendemail' => 'Fyri at hjálpa okkum at sleppa undan sjálvvirkandi upprættan av brúkaranavni (spamm), so verður tú vinarliga biðin um at loysa tað einfalda roknistykki og skriva svarið í teigin ([[Special:Captcha/help|meira kunning]]):',
+	'captcha-sendemail-fail' => 'Skeiv ella manglandi váttanar loyniorð.',
+	'captcha-disabledinapi' => "Henda handling krevur ein captcha, so tað kann ikki verða framt við API'inum.",
 	'captchahelp-title' => 'Captcha hjálp',
+	'captchahelp-cookies-needed' => 'Tín kagi (brovsari) má góðtaka cookies, fyri at hetta kann virka.',
 );
 
 /** French (Français)
  * @author Crochet.david
  * @author Grondin
+ * @author IAlex
  * @author Meithal
  * @author PieRRoMaN
  * @author Seb35
  * @author Sherbrooke
  * @author Urhixidur
  * @author Verdy p
+ * @author Wyz
  * @author Zetud
  */
 $messages['fr'] = array(
 	'captcha-edit' => 'Pour modifier cette page, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :',
-	'captcha-desc' => 'Implémentation simple d’un captcha',
+	'captcha-desc' => 'Offre des techniques CAPTCHA pour prétéger contre le spam et la découverte des mots de passe par essais multiples',
 	'captcha-addurl' => 'Votre modification inclut de nouveaux liens externes.
 Pour nous aider dans la protection contre le pourriel automatisé, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :',
 	'captcha-badlogin' => 'Afin de nous aider à prévenir le cassage des mots de passe par des automates, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :',
 	'captcha-createaccount' => 'Afin de nous aider à lutter contre les créations automatiques de comptes, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :',
 	'captcha-createaccount-fail' => 'Code de confirmation erroné ou manquant.',
 	'captcha-create' => 'Pour créer la page, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :',
+	'captcha-sendemail' => 'Afin de nous aider à prévenir le spam automatique, veuillez calculer l’opération simple ci-dessous et en inscrire le résultat dans le champ ([[Special:Captcha/help|plus d’informations]]) :',
+	'captcha-sendemail-fail' => 'Code de confirmation incorrect ou manquant.',
+	'captcha-disabledinapi' => 'Cette action requiert un captcha, donc elle ne peut pas être effectuée via l’IPA.',
 	'captchahelp-title' => 'Aide sur le captcha',
 	'captchahelp-cookies-needed' => "Il vous faudra autoriser les témoins (''cookies'') de votre navigateur pour que cela fonctionne.",
-	'captchahelp-text' => "Les sites web qui acceptent des contributions du public, tels que ce wiki, sont souvent victimes de spammeurs qui utilisent des outils automatisés pour placer de nombreux liens vers des sites.
-Même si ces pourriels peuvent être retirés, ils n'en restent pas moins une nuisance significative.
+	'captchahelp-text' => 'Les sites web qui acceptent des contributions du public, tels que ce wiki, sont souvent victimes de spammeurs qui utilisent des outils automatisés pour placer de nombreux liens vers leurs sites.
+Même si cette pollution peut être effacée, elle n’en reste pas moins irritante.
 
 Parfois, particulièrement lors de l’ajout de nouveaux liens externes dans une page, le wiki peut vous montrer une image d’un texte embrouillé, déformé ou coloré et vous demander de taper les mots indiqués.
-Cette tâche étant difficile accomplir de façon automatisée, cela permet à la plupart des humains de réaliser leurs contributions tout en empêchant la plupart des spammeurs et autres attaquants robotisés.
+Cette tâche étant difficile à accomplir de façon automatisée, cela permet à la plupart des humains de réaliser leurs contributions tout en stoppant la plupart des spammeurs et autres attaquants robotisés.
 
-Malheureusement, cette solution peut gêner les utilisateurs malvoyants ou qui utilisent des navigateurs en texte seul ou vocaux.
-Nous ne disposons pas d’alternative audio pour l’instant.
-Veuillez contacter un des administrateurs du site si cela vous empêche de façon inattendue de poster des contributions légitimes.
+Malheureusement, cette solution peut gêner les utilisateurs malvoyants ou qui utilisent un navigateur en texte seul ou vocal. Nous ne disposons pas d’alternative audio pour l’instant.
+Veuillez contacter [[{{MediaWiki:Grouppage-sysop}}|les administrateurs du site]] si cela vous empêche de façon inattendue de faire des contributions légitimes.
 
-Cliquez sur le bouton « Précédent » de votre navigateur pour revenir à la page de modification.",
+Cliquez sur le bouton « Précédent » de votre navigateur pour revenir à la page de modification.',
 	'captcha-addurl-whitelist' => ' #<!-- laissez cette ligne exactement telle quelle --><pre>
 # La syntaxe est la suivante :
 #  * Tout caractère depuis « # » jusqu’à la fin de la ligne est interprété comme un commentaire.
-#  * Toute ligne non vide est un fragment d’expression régulière qui ne correspondra qu’aux hôtes dans les liens hypertextes.
+#  * Toute ligne non vide est un fragment d’expression rationnelle qui ne correspondra qu’aux hôtes dans les liens hypertextes.
   #</pre><!-- laissez cette ligne exactement telle quelle -->',
 	'right-skipcaptcha' => 'Réaliser des actions qui déclenchent un captcha sans avoir à passer celui-ci',
 );
@@ -878,27 +1250,36 @@
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'captcha-edit' => 'Por modifiar ceta pâge, volyéd entrar lo rèsultat de l’opèracion dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'captcha-desc' => 'Simpla emplèmentacion captcha',
-	'captcha-addurl' => 'Voutra modificacion encllut de novéls lims de defôr. Coment protèccion contre lo spame ôtomatico, volyéd entrar lo rèsultat de l’opèracion dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'captcha-badlogin' => 'Coment protèccion contre lo piratâjo ôtomatisâ de mots de pâssa per des bots, volyéd entrar lo rèsultat de l’opèracion dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'captcha-createaccount' => 'Coment protèccion contre les crèacions de compto abusives, volyéd entrar lo rèsultat de l’opèracion dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'captcha-createaccount-fail' => 'Code de confirmacion fôx ou manquent.',
-	'captcha-create' => 'Por crèar ceta pâge, volyéd entrar lo rèsultat de l’opèracion dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'captchahelp-title' => 'Éde sur los captcha',
-	'captchahelp-cookies-needed' => "Fôt activar los tèmouens (''cookies'') dens voutron navigator por que cen fonccione.",
-	'captchahelp-text' => 'Los setos Malyâjo accèptent des contribucions du publico, coment ceti vouiqui, sont sovent utilisâs per des spamors qu’utilisont des outils ôtomaticos por placiér tot plen de lims vers lors setos. Quand ben que celos lims de « spame » porriant étre enlevâs, reprèsentont una nuésence.
+	'captcha-edit' => 'Por changiér ceta pâge, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :',
+	'captcha-desc' => 'Semond des tècniques CAPTCHA por protègiér contre lo spame et la dècuvèrta des contresegnos per un mouél de tentatives.',
+	'captcha-addurl' => 'Voutron changement encllut de lims de defôr novéls.
+Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :',
+	'captcha-badlogin' => 'Por nos édiér a combatre contre lo cassâjo ôtomatisâ de contresegnos, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dedens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :',
+	'captcha-createaccount' => 'Por nos édiér a combatre contre les crèacions ôtomatisâs de comptos, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dedens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :',
+	'captcha-createaccount-fail' => 'Code de confirmacion fôx ou ben manquent.',
+	'captcha-create' => 'Por fâre ceta pâge, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :',
+	'captcha-sendemail' => 'Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd calcular l’opèracion simpla ce-desot et pués nen buchiér lo rèsultat dedens la bouèta ([[Special:Captcha/help|més d’enformacions]]) :',
+	'captcha-sendemail-fail' => 'Code de confirmacion fôx ou ben manquent.',
+	'captcha-disabledinapi' => 'Ceta accion at fôta d’un captch·a, donc pôt pas étre fêta per l’API.',
+	'captchahelp-title' => 'Éde sur lo captch·a',
+	'captchahelp-cookies-needed' => "Vos fôdrat ôtorisar los tèmouens (''cookies'') de voutron navigator por que cen fonccione.",
+	'captchahelp-text' => 'Los setos vouèbe qu’accèptont des contribucions du publico, coment ceti vouiqui, sont sovent victimos de spamors qu’utilisont des outils ôtomatisâs por betar tot plen de lims de vers lors setos.
+Mémo se celos lims de spame pôvont étre suprimâs, nen réstont pas muens una nuésence visibla.
 
-Des côps, en particuliér pendent l’aponsa de novéls lims de defôr a una pâge, lo vouiqui pôt vos montrar una émâge reprèsentent un tèxte colorâ ou ben tordu et vos demandar de buchiér los mots montrâs. Cél ovrâjo est dificilo a ôtomatisar, et pèrmèt ux homos de fâre lors contribucions tot en arrètent la plepârt des spamors.
+Des côps, particuliérement pendent l’aponsa de lims de defôr novéls dens una pâge, lo vouiqui vos pôt montrar una émâge d’un tèxto colorâ, dèformâ ou ben tordu et pués vos demandar de buchiér los mots montrâs.
+Mâlésiê a fâre de façon ôtomatisâ cél travâly, cen pèrmèt a la plepârt des homos de rèalisar lors contribucions tot en empachient la plepârt des spamors et des ôtros ataquents robotisâs.
 
-Mâlherosament ceta solucion pôt gênar los utilisators mâl-veyents ou utilisent un navigator en tèxte solèt. Nos disposens pas d’altèrnativa ôdiô por lo moment. Volyéd vos veriér vers un [[Special:ListUsers/sysop|administrator]] du seto se vos arrevâd pas a fâre voutres contribucions.
+Mâlherosament, ceta solucion pôt gênar los utilisators mâl-veyents ou qu’utilisont un navigator en tèxto solèt ou ben vocal.
+Por lo moment, nos avens gins d’altèrnativa ôdiô.
+Vos volyéd veriér vers los [[{{MediaWiki:Grouppage-sysop}}|administrators du seto]] se cen vos empache de façon emprèvua de fâre des contribucions lèg·itimes.
 
-Clicâd sur lo boton « Prècèdent » de voutron navigator por tornar a la pâge d’èdicion.',
+Clicâd sur lo boton « Devant » de voutron navigator por tornar a la bouèta d’èdicion.',
 	'captcha-addurl-whitelist' => ' #<!-- lèssiéd ceta legne justo d’ense --> <pre>
-# La sintaxa est la siuventa :
-#  * Tot caractèro siuvent « # » tant qu’a la fin de la legne serat entèrprètâ coment un comentèro.
-#  * Tota legne pas voueda est un bocon de RegEx que serat utilisâ ren qu’u dedens des lims hipèrtèxte.
-  #</pre> <!-- lèssiéd ceta legne justo d’ense -->',
+# La sintaxa est ceta :
+#  * Tot caractèro dês « # » tant qu’a la fin de la legne est considèrâ coment un comentèro.
+#  * Tota legne pas voueda est un bocon d’èxprèssion racionèla (*RegEx*) qu’analiserat ren que los hôtos dedens los lims hipèrtèxtos.
+ #</pre> <!-- lèssiéd ceta legne justo d’ense -->',
+	'right-skipcaptcha' => 'Rèalisar des accions que dècllenchont un captch·a sen avêr a passar ceti',
 );
 
 /** Friulian (Furlan)
@@ -906,7 +1287,11 @@
  */
 $messages['fur'] = array(
 	'captcha-edit' => 'Par cambiâ cheste pagjine, tu âs di risolvi cheste facile some e inserî la rispueste inte casele ([[Special:Captcha/help|altris informazions]]):',
+	'captcha-addurl' => 'Il to cambiament al inclût gnûfs leams esternis.
+Par judânus cuintri la creazion automatiche di spam, tu âs di risolvi cheste facile some e inserî la rispueste inte casele ([[Special:Captcha/help|altris informazions]]):',
+	'captcha-badlogin' => 'Par judânus cuintri dai atacs automotics a lis peraulis clâfs, tu âs di risolvi cheste facile some e inserî la rispueste inte casele ([[Special:Captcha/help|altris informazions]]):',
 	'captcha-createaccount-fail' => 'Il codiç di control al mancje o nol è just.',
+	'captcha-create' => 'Par creâ cheste pagjine, tu âs di risolvi cheste facile some e inserî la rispueste inte casele ([[Special:Captcha/help|altris informazions]]):',
 );
 
 /** Western Frisian (Frysk)
@@ -918,11 +1303,11 @@
 	'captcha-createaccount-fail' => 'It antwurd op de som kloppet net.',
 	'captcha-create' => 'Om de side oan te meitsjen wurdt jo frege it antwurd op de ûndersteande som te jaan ([[Special:Captcha/help|meer ynformaasje]]).',
 	'captchahelp-title' => 'Lettertoets-help',
-	'captchahelp-text' => "Websteeën dêr't it publyk op skriuwe kin, lykas dizze {{SITENAME}}-wiki, kinne lêst hawwe fan lju dy't automatysk keppelings oan de websiden tafoegje. Op dizze wiki kinne sokke feroarings maklik weromset wurde, mar dat nimt al tiid dy't ek oars brûkt wurde kin. 
+	'captchahelp-text' => "Websteeën dêr't it publyk op skriuwe kin, lykas dizze {{SITENAME}}-wiki, kinne lêst hawwe fan lju dy't automatysk keppelings oan de websiden tafoegje. Op dizze wiki kinne sokke feroarings maklik weromset wurde, mar dat nimt al tiid dy't ek oars brûkt wurde kin.
 
-By it oanmelden as meidogger, en fierders benammen at jo keppelings om utens oan in side tafoegje, kinne jo fan de wiki in lettertoets krije. De wiki lit dan kleurde of ferwrongen letters sjen, en jo wurdt frege dy oer te tikken. Om't dit net maklik automatisearre wurde kin, hâldt dit it automatysk tafoegjen tsjin. It spitegernôch ek in lytse lêst foar de meidoggers. 
+By it oanmelden as meidogger, en fierders benammen at jo keppelings om utens oan in side tafoegje, kinne jo fan de wiki in lettertoets krije. De wiki lit dan kleurde of ferwrongen letters sjen, en jo wurdt frege dy oer te tikken. Om't dit net maklik automatisearre wurde kin, hâldt dit it automatysk tafoegjen tsjin. It spitegernôch ek in lytse lêst foar de meidoggers.
 
-In probleem dêr't noch gjin oplossing foar is it dat it in tûkelteam is foar minsken dy't net goed sjen kinne of dy't in tekst-blêder of lûd-blêder brûke. Hjir soe in lûd-ferzje foar komme moatte, mar dy is der noch net. Oerlis mei in behearder at dit foar jo problemen jout. 
+In probleem dêr't noch gjin oplossing foar is it dat it in tûkelteam is foar minsken dy't net goed sjen kinne of dy't in tekst-blêder of lûd-blêder brûke. Hjir soe in lûd-ferzje foar komme moatte, mar dy is der noch net. Oerlis mei in behearder at dit foar jo problemen jout.
 
 Gean tebek mei de tebek-knop fan jo blêder.",
 );
@@ -945,29 +1330,30 @@
  * @author Xosé
  */
 $messages['gl'] = array(
-	'captcha-edit' => 'Para editar esta páxina, resolva a suma simple que aparece embaixo e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
-	'captcha-desc' => 'Introdución sinxela do Captcha',
+	'captcha-edit' => 'Para editar esta páxina, resolva a suma que aparece a continuación e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
+	'captcha-desc' => 'Proporciona CAPTCHA como protección fronte ao spam e ao descubrimento de contrasinais',
 	'captcha-addurl' => 'A súa edición inclúe novas ligazóns externas.
-Como protección fronte ás ferramentas de publicación automática de ligazóns publicitarias, por favor, resolva a simple suma de embaixo e teclee resposta na caixa ([[Special:Captcha/help|máis información]]):',
-	'captcha-badlogin' => 'Como protección para que non se descubra o contrasinal por medios automáticos, resolva a simple suma de embaixo e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
-	'captcha-createaccount' => 'Como protección fronte á creación automática de contas de usuario ten que resolver a suma de embaixo e teclear a resposta na caixa ([[Special:Captcha/help|máis información]]):',
+Para contribuír na protección contra as ferramentas de publicación automática de ligazóns publicitarias, resolva a suma que aparece a continuación e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
+	'captcha-badlogin' => 'Para contribuír a que non se descubran os contrasinais por medios automáticos, resolva a suma que aparece a continuación e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
+	'captcha-createaccount' => 'Para contribuír contra a creación automatizada de contas, resolva a suma que aparece a continuación e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
 	'captcha-createaccount-fail' => 'Falta o código de confirmación ou é incorrecto.',
-	'captcha-create' => 'Para crear a páxina, resolva a suma simple que aparece embaixo e introduza a resposta na caixa ([[Special:Captcha/help|Que é isto?]]):',
-	'captchahelp-title' => 'Axuda acerca do Captcha',
-	'captchahelp-cookies-needed' => 'Necesita ter as <i>cookies</i> habilitadas no seu navegador para que funcione.',
-	'captchahelp-text' => "'''CAPTCHA''' (acrónimo de \"'''C'''ompletely '''A'''utomated '''P'''ublic '''T'''uring test to tell '''C'''omputers and '''H'''umans '''A'''part\") é unha proba de autenticación do tipo desafío-resposta usado nos contornos informáticos para distinguir usuarios humanos de máquinas.
+	'captcha-create' => 'Para crear a páxina, resolva a suma que aparece a continuación e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
+	'captcha-sendemail' => 'Para contribuír na protección contra o spam automatizado, resolva a suma que aparece a continuación e introduza a resposta na caixa ([[Special:Captcha/help|máis información]]):',
+	'captcha-sendemail-fail' => 'Falta o código de confirmación ou é incorrecto.',
+	'captcha-disabledinapi' => 'Esta acción necesita o captcha, polo que non se pode realizar a través da API.',
+	'captchahelp-title' => 'Axuda acerca do captcha',
+	'captchahelp-cookies-needed' => 'Necesita ter as cookies habilitadas no seu navegador para que funcione.',
+	'captchahelp-text' => 'Os sitios web que aceptan publicar as contribucións dos usuarios, coma este wiki, sofren, con frecuencia, o abuso por parte de spammers que usan ferramentas que automatizan a inclusión de lixo en forma de ligazóns publicitarias, nunha chea de páxinas, en pouco tempo.
+Mentres as devanditas ligazóns non son eliminadas supoñen unha molestia e unha perda de tempo.
 
-Os sitios web que aceptan publicar as contribucións dos usuarios, coma este wiki, sofren, con frecuencia, o abuso por parte de ''spammers'' que usan ferramentas que automatizan a inclusión de lixo en forma de ligazóns publicitarias, nunha chea de páxinas, en pouco tempo.
-Mentres ditas ligazóns non son eliminadas supoñen unha molestia e unha perda de tempo.
+En ocasións, en particular cando engada algunha nova ligazón externa, o wiki pode mostrar unha imaxe dun texto coloreado e distorsionado e pedirlle que introduza as palabras que se vexa.
+Como esta tarefa é difícil de automatizar, permite distinguir entre persoas e robots e dificulta os ataques automatizados dos spammers.
 
-En ocasións, en particular cando engada algunha nova ligazón externa, o wiki pode amosar unha imaxe dun texto coloreado e distorsionado e pedirlle que teclee as palabras amosadas.
-Como esta tarefa é difícil de automatizar, permite distinguir entre persoas e robots e dificulta os ataques automatizados dos ''spammers''.
-
 Por desgraza, isto é un inconveniente para aqueles usuarios con dificultades de visión ou que utilicen navegadores de texto ou navegadores baseados en sistemas de voz.
-Polo de agora non dispoñemos dunha alternativa de audio.
-Por favor, contacte cun administrador do wiki para solicitar axuda se o sistema lle impide rexistrarse para facer contribucións lexítimas.
+Polo de agora non dispoñemos dunha alternativa de son.
+Por favor, póñase en contacto cun [[{{MediaWiki:Grouppage-sysop}}|administrador do sitio]] para solicitar axuda se o sistema lle impide rexistrarse para facer contribucións lexítimas.
 
-Prema no botón \"atrás\" para voltar á páxina na que estaba editando.",
+Prema no botón "Atrás" do seu navegador para volver á páxina de edición.',
 	'captcha-addurl-whitelist' => ' #<!-- Deixe esta liña tal e como está --> <pre>
 # A sintaxe é a seguinte:
 #   * Todo o que vaia despois dun carácter "#" ata o final da liña é un comentario
@@ -976,25 +1362,39 @@
 	'right-skipcaptcha' => 'Levar a cabo as accións que requiren captcha sen ter que introducilo',
 );
 
+/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
+ * @author Omnipaedista
+ */
+$messages['grc'] = array(
+	'captchahelp-title' => 'Βοήθεια περὶ τοῦ captcha',
+);
+
 /** Swiss German (Alemannisch)
  * @author Als-Holder
+ * @author Melancholie
  */
 $messages['gsw'] = array(
-	'captcha-edit' => 'Zum d Syte bearbeite lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]].',
-	'captcha-desc' => 'Eifachi Captcha-Implementierig',
+	'captcha-edit' => 'Zum d Syte bearbeite lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
+	'captcha-desc' => 'Stellt CAPTCHA-Tächnike zum Schutz vor Spam un em Rote vu Passwerter z Verfiegig',
 	'captcha-addurl' => 'In Dyynere Bearbeitig het s neiji externi Gleicher.
-Zum Schutz vor automatisiertem Spamming lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy. Druck drno nomol uf „Syte spychere“ [[Special:Captcha/help|(Frogen oder Probläm?)]].',
-	'captcha-badlogin' => 'Zum Schutz vor ere Kompromittierig vu Dyynem Benutzerkonto lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy. [[Special:Captcha/help|(Frogen oder Probläm?)]]:',
-	'captcha-createaccount' => 'Zum Schutz vor automatisiertem Aalege vu Benutzerkonte lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]].',
+Zum Schutz vor automatisiertem Spamming lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy. Druck drno nomol uf „Syte spychere“. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
+	'captcha-badlogin' => 'Zum Schutz vor ere Kompromittierig vu Dyynem Benutzerkonto lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]]:',
+	'captcha-createaccount' => 'Zum Schutz vor automatisiertem Aalege vu Benutzerkonte lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
 	'captcha-createaccount-fail' => 'Bestätigungscode isch falsch oder fählt.',
-	'captcha-create' => 'Zum d Syten aalege lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]].',
+	'captcha-create' => 'Zum d Syten aalege lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
+	'captcha-sendemail' => '
+As Schutz gege e automatischs Spamming,  lees die Rächenufgab un trag s Ergebnis in s Fäld unten yy ([[Special:Captcha/help|meh Informatione]]):',
+	'captcha-sendemail-fail' => 'Bestätigungscode isch falsch oder fählt.',
+	'captcha-disabledinapi' => 'Die Aktion brucht e Captcha. Si cha nit iber d API uusgfiert wäre.',
 	'captchahelp-title' => 'Captcha-Hilf',
 	'captchahelp-cookies-needed' => "'''Wichtiger Hiiwyys:''' Im Browser mien Cookiers erlaubt syy.",
-	'captchahelp-text' => 'Internetaagebot, wu uf sin fir Byytreg vu jedem, wie z. B. s {{SITENAME}}-Wiki, wäre vyylmol vu Spammer missbruucht, wu ihri Gleicher automatisch uf vyylene Netzsyte platziere. Die Spam-Gleicher cha mer wider useneh, si stere aber zimli un nämme Arbetszyt in Aaspruch. 
+	'captchahelp-text' => 'Internetaagebot, wu uf sin fir Byytreg vu jedem, wie z. B. des Wiki, wäre vyylmol vu Spammer missbruucht, wu ihri Gleicher automatisch uf vyylene Netzsyte platziere. Die Spam-Gleicher cha mer wider useneh, si stere aber zimli un nämme Arbetszyt in Aaspruch.
 
-In e Teil Fäll, v. a. wänn neiji Netzgleicher in e Syte dryygfiegt wäre, cha s syy, ass des Wiki derno ne Bild mit eme farbige un verzerrte Täxt aazeigt un dezue ufforderet, di aazeigte Werte yyzgee. Wel sonigi Ufgabe nit automatische chenne usgfiert wäre, cha mer eso di meischte Spammer, wu mit automatische Wärchzyyg schaffe, ufhalte, aber normali Benutzer chenne ihri Byytreg einewäg yygee. 
+In e Teil Fäll, v. a. wänn neiji Netzgleicher in e Syte dryygfiegt wäre, cha s syy, ass des Wiki derno ne Bild mit eme farbige un verzerrte Täxt aazeigt un dezue ufforderet, di aazeigte Werte yyzgee. Wel sonigi Ufgabe nit automatische chenne usgfiert wäre, cha mer eso di meischte Spammer, wu mit automatische Wärchzyyg schaffe, ufhalte, aber normali Benutzer chenne ihri Byytreg einewäg yygee.
 
-Leider cha des derzue fiere, ass Lyt Probläm iberchemme, wu ne yygschränkti Sähfähigkeit oder e Browser bruche, wu täxt- oder sprochbasiert isch. Derno muess mer sich regulär as Benutzer aamälde, no git s die Probläm nit. 
+Leider cha des derzue fiere, ass Lyt Probläm iberchemme, wu ne yygschränkti Sähfähigkeit oder e Browser bruche, wu täxt- oder sprochbasiert isch.
+Im Momänt hän mir kei Audioalternative z Verfiegig.
+Bitte nimm Kontakt uf zum [[{{MediaWiki:Grouppage-sysop}}|Syteadministrator]] fir Unterstitzig wänn des Di uuerwartet abhaltet vu berächtigte Byyträg.
 
 Ins Bearbeitigsfänschter chunnt mer derno eifach wider mit em „Zruck“-Chnopf.',
 	'captcha-addurl-whitelist' => ' #<!-- Die Zyyle derf nit gänderet wäre! --> <pre>
@@ -1006,65 +1406,80 @@
 );
 
 /** Gujarati (ગુજરાતી)
+ * @author Ashok modhvadia
  * @author Dsvyas
+ * @author KartikMistry
  */
 $messages['gu'] = array(
 	'captcha-edit' => 'આ લેખમાં ફેરફાર કરવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો ([[Special:Captcha/help|more info]]):',
+	'captcha-desc' => '',
 	'captcha-addurl' => 'તમે કરેલા ફેરફારોમાં નવી બાહ્ય કડીઓ સામેલ છે. સ્વચાલિત સ્પેમ/સ્પામ(spam) થી બચવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો
 ([[Special:Captcha/help|more info]]):',
 	'captcha-badlogin' => 'આપોઆપ થતી ગુપ્તસંજ્ઞાની ચોરી (password cracking)થી બચાવવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો ([[Special:Captcha/help|more info]]):',
 	'captcha-createaccount' => 'આપોઆપ નવા ખાતા ખુલતા રોકવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો',
-	'captcha-createaccount-fail' => 'ખોટી અથવા ખૂટતી પુષ્ટિ સંજ્ઞા',
+	'captcha-createaccount-fail' => 'ખોટી અથવા ખૂટતી ખાતરી સંજ્ઞા.',
 	'captcha-create' => 'નવું પાનું બનાવવા માટે નીચે આપેલા સરળ દાખલાનો જવાબ તેની બાજુના ખાનામાં લખો  ([[Special:Captcha/help|more info]]):',
+	'captcha-sendemail-fail' => 'ખોટી અથવા ખૂટતી ખાતરી સંજ્ઞા.',
 	'captchahelp-title' => 'કેપ્ટ્ચા/કેપ્ચા (Captcha) મદદ',
 	'captchahelp-cookies-needed' => 'આ વ્યવસ્થિત રીતે જોઇ શકાય તે માટે તમારા બ્રાઉઝરમાં કુકીઝ એનેબલ કરેલી હોવી જોઇશે.',
-	'captchahelp-text' => "આપણી વિકિ જેવી વૅબ સાઇટો કે જે લોકોને યોગદાન કરવાની પરવાનગી આપે છે, તેમેનો સ્પામરો દ્વારા દુરૂપયોગ થતો આવ્યો છે. આવા સ્પામરો તેમની કડીઓ એક સાથે અનેક વૅબ સાઇટો પર મુકવા માટે સ્વચાલિત સાધનો (Tools) વાપરે છે. આવી કડીઓ ખરેખર એક દૂષણ છે અને તેને દૂર કરવાના ઉપાય કરવા જોઇએ.
+	'captchahelp-text' => "આપણી વિકિ જેવી વૅબ સાઇટો કે જે લોકોને યોગદાન કરવાની પરવાનગી આપે છે, તેમનો સ્પામરો દ્વારા દુરૂપયોગ થતો આવ્યો છે. આવા સ્પામરો તેમની કડીઓ એક સાથે અનેક વૅબ સાઇટો પર મુકવા માટે સ્વચાલિત સાધનો વાપરે છે. આવી કડીઓ ખરેખર એક દૂષણ છે અને તેને દૂર કરવાના ઉપાય કરવા જોઇએ.
 
-ક્યારેક, ખાસ કરીને જ્યારે તમે તમારા લેખમાં બાહ્ય કડી ઉમેરતા હોવ ત્યારે, વિકિ તમને એક રંગીન કે તુટેલા-ફુટેલા અક્ષરો કે શબ્દોનું ચિત્ર બતાવે અને તેમા વંચાતા શબ્દો બાજુનાં ખાનામાં લખવા માટે પુછે એવું બને. આનું કારણ એ છે કે આ એક એવી પદ્ધતિ છે જે સ્વચાલિત રીતે કરવી લગભગ અશક્ય છે, અને ફક્ત વ્યક્તિગત રીતે જ થઇ
-શકે છે, જે સ્પામરો અને અન્ય ઘુસણખોરો ના હુમલાને ખાળે છે.
+ક્યારેક, ખાસ કરીને જ્યારે તમે તમારા લેખમાં બાહ્ય કડી ઉમેરતા હોવ ત્યારે, વિકિ તમને એક રંગીન કે તુટેલા-ફુટેલા અક્ષરો કે શબ્દોનું ચિત્ર બતાવે અને તેમા વંચાતા શબ્દો બાજુનાં ખાનામાં લખવા માટે પુછે એવું બને. આનું કારણ એ છે કે આ એક એવી પદ્ધતિ છે જે સ્વચાલિત રીતે કરવી લગભગ અશક્ય છે, અને ફક્ત વ્યક્તિગત રીતે જ થઇ શકે છે, જે સ્પામરો અને અન્ય ઘુસણખોરો ના હુમલાને ખાળે છે.
 
-કમભાગ્યે આ પદ્ધતિ, એવા લોકોને તકલિફ આપે તેમ છે જેઓની દૃષ્ટિ નબળી છે અથવાતો જેઓ વાચા આધારીત કે સાદા બ્રાઉઝરનો ઉપયોગ કરે છે. હાલમા અમારી પાસે આવા ચિત્રોની વાચા આધારિત વ્યવસ્થા નથી. જો આ કારણે આપ કોઇ લેખમાં પ્રદાન ન કરી શકતા હોવ તો વધુ સહાય માટે કૃપા કરી પ્રબંધકનો સંપર્ક સાધો.
+કમભાગ્યે આ પદ્ધતિ, એવા લોકોને તકલિફ આપે તેમ છે જેઓની દૃષ્ટિ નબળી છે અથવાતો જેઓ વાચા આધારીત કે સાદા બ્રાઉઝરનો ઉપયોગ કરે છે. હાલમા અમારી પાસે આવા ચિત્રોની વાચા આધારિત વ્યવસ્થા નથી. જો આ કારણે આપ કોઇ લેખમાં પ્રદાન ન કરી શકતા હોવ તો વધુ સહાય માટે કૃપા કરી [[{{MediaWiki:Grouppage-sysop}}|site administrators]] નો સંપર્ક સાધો.
 
-લેખમા ફેરફાર કરવાના પાના ઉપર પાછા ફરવા માટી આપના બ્રાઉઝરના 'બેક' બટન ઉપર ક્લિક કરો.",
+લેખમા ફેરફાર કરવાના પાના ઉપર પાછા ફરવા માટે આપના બ્રાઉઝરના 'બેક' બટન ઉપર ક્લિક કરો.",
 	'captcha-addurl-whitelist' => ' #<!-- આ લીટીને જેમ છે તેમ જ રહેવા દો --> <pre>
-# સીન્ટેક્સ (Syntax) આ પ્રમાણે છે :  
+# સીન્ટેક્સ (Syntax) આ પ્રમાણે છે :
 #  * "#" સંજ્ઞાથી શરૂ કરીને લીટીના અંત સુધીનું વર્ણન એક ટીપ્પણી છે
 #  * ખાલી ન હોય તેવી દરેક લીટી રેજેક્સનો ભાગ છે, જે ફક્ત URLsમાંના હોસ્ટ સાથે જ મેળ ખાશે
   #</pre> <!-- આ લીટીને જેમ છે તેમ જ રહેવા દો -->',
+	'right-skipcaptcha' => 'કૈપ્ચા માધ્યમમાં ગયા વિના કૈપ્ચા કાર્યાન્વયન ક્રિયા અમલમાં મુકો',
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
- * @author Amire80
+ * @author Rotemliss
+ * @author YaronSh
  */
 $messages['he'] = array(
 	'captcha-edit' => 'כדי לערוך את הדף, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
-	'captcha-desc' => 'מימוש פשוט של CAPTCHA',
+	'captcha-desc' => 'מתן טכניקות CAPTCHA להגנה נגד זיבול וניחוש ססמאות',
 	'captcha-addurl' => 'עריכתכם כוללת קישורים חיצוניים חדשים. כהגנה מפני ספאם אוטומטי, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
 	'captcha-badlogin' => 'כהגנה מפני פריצת סיסמאות אוטומטית, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
 	'captcha-createaccount' => 'כהגנה מפני יצירת חשבונות אוטומטית, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
 	'captcha-createaccount-fail' => 'לא הקלדתם קוד אישור, או שהוא שגוי.',
 	'captcha-create' => 'כדי ליצור את הדף, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
-	'captchahelp-title' => 'עזרה במערכת הגנת הספאם',
-	'captchahelp-cookies-needed' => 'עליכם להפעיל את תכונת העוגיות (Cookies) בדפדפן שלכם כדי שזה יעבוד.',
-	'captchahelp-text' => "פעמים רבות מנצלים ספאמרים אתרים שמקבלים תוכן מהציבור, כמו הוויקי הזה, כדי לפרסם את הקישורים שלהם לאתרים רבים באינטרנט, באמצעות כלים אוטומטיים. אמנם ניתן להסיר את קישורי הספאם הללו, אך זהו מטרד משמעותי.
+	'captcha-sendemail' => 'כדי לעזור להילחם במציפי זבל אוטומטיים, עליך לחשב את הסכום הפשוט שלהלן ולהזין את התוצאה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
+	'captcha-sendemail-fail' => 'קוד האישור שגוי או חסר.',
+	'captcha-disabledinapi' => 'פעולה זו דורשת פתרון CAPTCHA ולא ניתן לבצע אותה דרך ה־API.',
+	'captchahelp-title' => 'עזרה במערכת CAPTCHA',
+	'captchahelp-cookies-needed' => 'עליכם להפעיל את תכונת העוגיות (cookies) בדפדפן שלכם כדי שזה יעבוד.',
+	'captchahelp-text' => 'פעמים רבות מנצלים מפיצי תוכן זבל ("ספאם") אתרים שמקבלים תוכן מהציבור, כמו אתר הוויקי הזה, כדי לפרסם את הקישורים שלהם לאתרים רבים באינטרנט, באמצעות כלים אוטומטיים.
+אמנם ניתן להסיר את קישורי הספאם הללו, אך הם מהווים מטרד משמעותי.
 
-לעתים, בעיקר כשאתם מכניסים קישורי אינטרנט חדשים לתוך עמוד, הוויקי עשוי להראות תמונה של טקסט צבעוני או מעוקם ויבקש מכם להקליד את המילים המוצגות. כיוון שזו משימה שקשה לבצעה בצורה אוטומטית, הדבר יאפשר לבני־אדם אמיתיים לשלוח את הדפים, אך יעצור את רוב הספאמרים והמתקיפים הרובוטיים.
+לעתים, בעיקר כשאתם מכניסים קישורי אינטרנט חדשים לתוך עמוד, אתר הוויקי עשוי להראות לכם תמונה של טקסט צבעוני או מעוקם ולבקש מכם להקליד את המילים המוצגות.
+כיוון שזו משימה שקשה לבצעה בצורה אוטומטית, הדבר יאפשר לבני־אדם אמיתיים לשלוח את הדפים, אך יעצור את רוב מפיצי תוכן הזבל והמתקיפים הרובוטיים האחרים.
 
-לרוע המזל, הדבר עשוי לגרום לאי נוחות למשתמשים עם דפדפן בגרסה מוגבלת, או שמשתמשים בדפדפנים מבוססי טקסט או דיבור. כרגע, אין לנו חלופה קולית זמינה. אנא צרו קשר עם מנהלי האתר לעזרה אם המערכת מונעת מכם באופן בלתי צפוי לבצע עריכות לגיטימיות.
+לרוע המזל, הדבר עשוי לגרום לאי נוחות למשתמשים עם דפדפן בגרסה מוגבלת, או שמשתמשים בדפדפנים מבוססי טקסט או דיבור.
+כרגע, אין לנו חלופה קולית זמינה.
+אנא צרו קשר עם [[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] כדי לקבל עזרה אם המערכת מונעת מכם באופן בלתי צפוי לבצע עריכות לגיטימיות.
 
-אנא לחצו על הכפתור 'Back' בדפדפן שלכם כדי לחזור לדף העריכה.",
+לחצו על הכפתור \'חזור\' בדפדפן שלכם כדי לחזור לדף העריכה.',
 	'captcha-addurl-whitelist' => ' #<!-- יש להשאיר שורה זו בדיוק כפי שהיא כתובה --> <pre>
 # זהו תחביר ההודעה:
 #   * כל דבר בשורה שנכתב לאחר סימן "#" הוא הערה
 #   * כל שורה לא ריקה היא ביטוי רגולרי שיתאים לאתרים בכתובות URL
  #</pre> <!-- יש להשאיר שורה זו בדיוק כפי שהיא כתובה -->',
-	'right-skipcaptcha' => 'ביצוע פעולות הדורשות פיתרון CAPTCHA ללא צורך בפיתרונו',
+	'right-skipcaptcha' => 'ביצוע פעולות הדורשות פתרון CAPTCHA ללא צורך בפתרונו',
 );
 
 /** Hindi (हिन्दी)
+ * @author Ansumang
  * @author Kaustubh
  * @author Shyam
+ * @author आलोक
  */
 $messages['hi'] = array(
 	'captcha-edit' => 'यह पन्ना संपादित करने के लिये, नीचे दिये हुए आसान राशि का जवाब दिये हुए टेक्स्टबॉक्समें लिखें ([[Special:Captcha/help|अधिक ज़ानकारी]]):',
@@ -1074,19 +1489,20 @@
 	'captcha-createaccount' => 'अपने आप होने वाले सदस्य पंजीकरण से बचने के लिये, नीचे दिये हुए आसान राशि का जवाब दिये हुए टेक्स्टबॉक्समें लिखें ([[Special:Captcha/help|अधिक ज़ानकारी]]):',
 	'captcha-createaccount-fail' => 'गलत या खाली सहमती कोड।',
 	'captcha-create' => 'यह पन्ना बनाने के लिये, नीचे दिये हुए आसान राशि का जवाब दिये हुए टेक्स्टबॉक्समें लिखें ([[Special:Captcha/help|अधिक ज़ानकारी]]):',
+	'captcha-sendemail-fail' => 'गलत या लापता पुष्टिकरण कोड ।',
 	'captchahelp-title' => 'कॅप्टचा सहायता',
 	'captchahelp-cookies-needed' => 'यह कार्य करने के लिये आपने कूकीज (cookies) एनेबल किया होना आवश्यक हैं।',
-	'captchahelp-text' => "वेब साईट, जो की स्वतंत्र एवं मुक्त रूप से सभी लेख स्वीकार कराती है, जैसे यह विकी, प्राय: अनचाहे तत्वों द्वारा दूषित होती रहती है, जो कि यंत्रचलित उपकरणों से कई साईट के अपने सम्पर्क दर्शाती हैं।
-जबकि यह अनचाहे सम्पर्क हटाये जा सकते हैं, फिर भी यह एक बहुत बड़ा उपद्रव है।
+	'captchahelp-text' => "इस विकि जैसे जालस्थल, जो जनता जनार्दन से लेख स्वीकार करते हैं, अक्सर रद्दी काम करने वालों के फंदे में आ जाते हैं, जो स्वचालित यंत्रों से कई स्थलों पर अपनी कड़ियाँ छापने की कोशिश करते हैं।
+यूँ तो ये रद्दी कड़ियाँ हटाई जा सकती हैं, पर फिर भी ये झंझट तो खड़ा करती ही हैं।
 
-कुछ बार, विशेषत: जब एक पृष्ठ पर एक नया वेब सम्पर्क जोडा जाता है, तब विकी एक विकृत विषय वस्तु या रंगीन चित्र दर्शाती है और आपको दिखाए गए शब्द लिखने के लिए कहती है।
-क्योंकि यह एक ऐसा कार्य है जो कि स्वचालित हो पाना मुश्किल है, यह अधिकांशत: वास्तविक मनुष्यों को ही अपने लेख लिखने कि अनुमति देती है और अधिकांश अनचाहे तत्वों एवं अन्य स्वचालित आक्रमकों को रोकती है।
+कुछ बार, खासकर जब किसी पन्ने पृष्ठ पर एक नया जाल पता जोड़ा जाता है, तब विकी आपको एक रंगीन या टेढ़े मेढ़े लेख की तस्वीर दिखा के आपको उस तस्वीर में लिखी सामग्री को पढ़ के टंकित करने को कह सकती है।
+ऐसी तस्वीर को यंत्र द्वारा पढ़ पाना मुश्किल होता है, इसलिए इसके जरिए अधिकतर मानव अपने लेख छाप पाएँगे और साथ ही अधितकर रद्दी वाले और यांत्रिक उपकरण नहीं छाप पाएँगे।
 
-दुर्भाग्यवश इससे सदस्यों को सीमित दर्शन अथवा विषय वस्तु-आधारित या भाषण-आधारित ब्राउजर के प्रयोग के साथ असुविधा होती है।
-इस समय हमारे पास श्रव्य विकल्प उपलब्ध नहीं है।
-यदि यह आपको तर्कसंगत लिखावट से अनपेक्षित रूप से वंचित कर रहा है तो कृपया साईट प्रशासक से सहायता के लिए सम्पर्क करें।
+दुर्भाग्यवश इससे सीमित चक्षु-दृष्टि वाले सदस्यों या पाठ-आधारित या वाचन-आधारित विचरकों का प्रयोग करने वाले  सदस्यों को समस्या आती है।
+इस समय हमारे पास इसका श्रव्य विकल्प उपलब्ध नहीं है।
+यदि इसकी वजह से आपको वैध लेख लिखने में अवरोध आ रहा हो तो कृपया सहायता के लिए [[{{MediaWiki:Grouppage-sysop}}|स्थल प्रबंधकों]] से संपर्क करें।
 
-पृष्ठ संपादक तक लौटने के लिए आपके ब्राउजर में 'back' बटन पर वार करें।",
+पन्ना संपादन पर वापस जाने के लिए अपने विचरक पर 'एक पृष्ठ पीछे जाएँ' वाली कुंजी का प्रयोग करें।",
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 # इसकी रुपरेषा इस प्रकार हैं:
 #  * "#" से शुरु होनेवाली सभी लाईनें टिप्पणीयाँ हैं।
@@ -1098,30 +1514,34 @@
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
  * @author Dnik
+ * @author Ex13
+ * @author Herr Mlinka
  * @author SpeedyGonsales
  */
 $messages['hr'] = array(
 	'captcha-edit' => 'Da uredite ovu stranicu, molimo riješite jednostavno zbrajanje ispod i unesite rezultat u rubriku ([[Special:Captcha/help|više informacija]]):',
-	'captcha-desc' => 'Jednostavna implementacija captcha sustava',
+	'captcha-desc' => 'Pruža CAPTCHA tehnike za zaštitu od neželjene pošte (spam-a) i pogađanja zaporke',
 	'captcha-addurl' => 'Vaše uređivanje sadrži nove vanjske poveznice. Kao zaštitu od automatskog spama, trebate unijeti slova koja vidite na slici: <br />([[Special:Captcha/help|Pomoć?]])',
 	'captcha-badlogin' => 'Da se spriječi automatizirano pogađanje lozinki,
 molimo zbrojite donje brojeve i upišite rezultat ([[Special:Captcha/help|pomoć]]):',
 	'captcha-createaccount' => 'Kao zaštitu od automatskog spama, pri otvaranju računa trebate unijeti slova koja vidite na slici: <br />([[Special:Captcha/help|Pomoć]])',
 	'captcha-createaccount-fail' => 'Potvrdni kod je nepotpun ili netočan.',
 	'captcha-create' => 'Vaše uređivanje sadrži nove vanjske poveznice. Kao zaštitu od automatskog spama, trebate unijeti slova koja vidite na slici: <br />([[Special:Captcha/help|Pomoć?]])',
+	'captcha-sendemail' => 'Da bi ste nam pomogli protiv automatskog spama, molimo riješite jednostavan zadatak zbrajanja ispod i unesite rezultat u okvir ([[Special:Captcha/help|više informacija]]):',
+	'captcha-sendemail-fail' => 'Potvrdni kod je nepotpun ili netočan.',
+	'captcha-disabledinapi' => 'Ova akcija traži captchu, tako da se ne može izvršiti preko API-ja.',
 	'captchahelp-title' => 'Antispam pomoć',
 	'captchahelp-cookies-needed' => "Trebate imati uključene kolačiće (''cookies'') u vašem web pregledniku za ovu funkciju.",
-	'captchahelp-text' => "Web poslužitelje koji rade na temelju javnih doprinosa, poput wiki, često zloupotrebljavaju spameri.
-Oni koriste automatske alate pomoću kojih generiraju poveznice od vlastitog interesa.
+	'captchahelp-text' => "Internetske stranice koji prihvaćaju doprinose od javnosti, poput ovog wikija, često zloupotrebljavaju spameri, koji koriste automatizirane alate pomoću kojih postavljaju svoje poveznice na mnoge stranice.
+Iako se te spam poveznice mogu uklanjati, one predstavljaju značajne neugodnost pri radu.
 
-Iako se te poveznice najčešće uklanjaju, mogu predstavljati neugodnost pri radu.
-Ponekad se dogodi da wiki prikaže sliku čudnog tekstualnog sadržaja uz koju morate unijeti prikazana slova.
-Budući da je takvu radnju teško automatizirati, većina se napadača obeshrabri, a pravi suradnici bez većih smetnji nastavljaju pridonositi.
+Ponekad, a naročito kad se dodaje web poveznica na stranicu, wiki može prikazati sliku obojenog ili iskrivljenog teksta uz zahtjev za unos prikazanih riječi.
+Budući da je takvu radnju teško automatizirati, to će omogućiti pravim suradnicima njihov nastavak u pridonošenju, dok će zaustaviti većinu spamera i robotskih napadača.
 
-Na žalost, ovo može biti nepristupačno za suradnike koji koriste tekstualne klijene ili one glasovno bazirane. Trenutačno nemamo glasovnu podršku za ovo. 
-Molimo da se obratite administratorima, ukoliko vas ovo ometa pri dodavanju važećih sadržaja.
+Na žalost, ovo može biti nepristupačno za suradnike koji koriste tekstualne klijene ili one glasovno bazirane. Trenutačno nemamo glasovnu podršku za ovo.
+Molimo obratite se [[{{MediaWiki:Grouppage-sysop}}|administratorima]] za pomoć, ukoliko Vas ovo ometa pri dodavanju važećih sadržaja.
 
-Pritisnite u svom pregledniku 'nazad' kako bi se vratili na stranicu.",
+Pritisnite u svom pregledniku 'nazad' kako bi se vratili na uređivač stranice.",
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 # Rabi se slijedeća sintaksa:
 #   * Sve od "#" znaka do kraja linije je komentar
@@ -1135,54 +1555,71 @@
  */
 $messages['hsb'] = array(
 	'captcha-edit' => 'Zo by stronu wobdźěłał, rozrisaj prošu slědowacy ličenski nadawk a zapodaj wuslědk do kašćika ([[Special:Captcha/help|Dalše informacije]]):',
-	'captcha-desc' => 'Jednora implementacija captcha',
-	'captcha-addurl' => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo spamej dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. Klikń potom znowa na „Składować”.<br />
-[[Special:Captcha/help|(Čehodla?)]]',
-	'captcha-badlogin' => 'Zo by so awtomatiskemu zadobywanju do hesłow zadźěwało, dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. [[Special:Captcha/help|(Prašenja abo problemy?)]]',
-	'captcha-createaccount' => 'Jako škitna naprawa přećiwo awtomatiskemu wutworjenju wužiwarskich kontow dyrbiš slědowacy nadawk wuličeć. [[Special:Captcha/help|(Prašenja abo problemy?)]]',
-	'captcha-createaccount-fail' => 'Wopačny abo pobrachowacy wuslědk.',
+	'captcha-desc' => 'Staja CAPTCHA-techniki za škit přećiwo spamej a zhódowanju hesłow k dispoziciji',
+	'captcha-addurl' => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo awtomatizowanemu spamej dyrbiš slědowacy nadawk wuličić a wuslědk do kašćika [[Special:Captcha/help|(dalše informacije)]] zapisować.',
+	'captcha-badlogin' => 'Zo by so awtomatiskemu zadobywanju do hesłow zadźěwało, dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować. ([[Special:Captcha/help|dalše informacije]])',
+	'captcha-createaccount' => 'Jako škitna naprawa přećiwo awtomatiskemu wutworjenju wužiwarskich kontow dyrbiš slědowacy nadawk wuličeć a wuslědk do kašćika zapisować  ([[Special:Captcha/help|dalše informacije]]):',
+	'captcha-createaccount-fail' => 'Wopačny abo pobrachowacy wobkrućenski kod.',
 	'captcha-create' => 'Zo by stronu wutworił, rozrisaj prošu slědowacy ličenski nadawk a zapodaj wuslědk do kašćika ([[Special:Captcha/help|Dalše informacije]]):',
-	'captchahelp-title' => 'Pomoc z captcha',
+	'captcha-sendemail' => 'Za škit přećiwo awtomatiskemu spamowanju, rozrisaj prošu jednory ličenski nadawk a zapodaj wotmołwu do kašćika ([[Special:Captcha/help|dalše informacije]]):',
+	'captcha-sendemail-fail' => 'Wopačny abo falowacy wobkrućenski kod.',
+	'captcha-disabledinapi' => 'Tuta akcija wužaduje sej captcha, tohodla njeda so přez API wuwjesć.',
+	'captchahelp-title' => 'Pomoc za CAPTCHA',
 	'captchahelp-cookies-needed' => 'Dyrbiš placki (cookies) w swojim wobhladowaku zmóžnić.',
-	'captchahelp-text' => 'Sydła kaž {{SITENAME}}, kotrež móža so swobodnje wot kóždeho wobdźěłować su často z woporom spamarjow, kotřiž swoje wotkazy awtomatisce we wjele sydłach broja. Tute spam-wotkazy móža so zaso wotstronjeć, wubudźa pak njesnadne mjerzanje. W někotrych padach, wosebje při přidawanju nowych eksternych wotkazow, móže so stać, zo pokazuje tutón wiki wobraz z pisanym abo skomolenym tekstom abo kaza jednory ličenski nadawk wuličeć, kotrehož wuslědk dyrbi so potom do zapodawanskeho kašćika zapisować. Dokelž hodźi so tajki nadawk jenož ćežko z awtomatiskimi srědkami spamarjow spjelnić, móža so tajcy wotdźeržować, druzy wužiwarjo pak móža swoje změny składować. Bohužel móže to k wobćežnosćam za tutych wužiwarjow dowjesć, kotrychž kmanosć widźenja je wobmjezowana abo kotřiž dźěłaja z wobhladowakami kiž su na tekstowe abo rěčne wudawanje wusměrjene. Móžne rozrisanje tutoho problema je přizjewjenje jako wužiwar. Tłóčatko „Wróćo” swojeho wobhladowaka dowjedźe tebje zaso do wobdźěłowanskeho pola.',
+	'captchahelp-text' => 'Websydła, kotrež powěsće wot kóždeho akceptuja, so často wot spamarjow znjewužiwaja, kotřiž swoje wotkazy awtomatisce na wjele sydłach rozdźěleja. Hačrunjež so tute spamwotkazy hodźa wotstronić, su wone njesnadne mjerzanje.
+
+Druhdy, wosebje, hdyž so nowe webwotkazy stronje přidawaja, móže so stać, zo pokazuje tutón wiki wobraz z barbnym abo skomolenym tekstom a će prosy, zo by pokazane słowa zapodał.
+Dokelž to je nadawk, kotryž hodźi so jenož ćežko awtomatizować, dowoluje to woprawdźitym wosobam swoje powěsći wotpósłać, mjeztym zo so najwjace spamarjow a druhich nadpadowacych botow blokuje.
+
+Bohužel móže to k wobćežnosćam za tutych wužiwarjow wjesć, kotrychž kmanosć widźenja je wobmjezowana abo kotřiž wobhladowaki wužiwaja, kotrež na tekst abo rěčne wudawanje bazěruja.
+Tuchwilu njedisponujemy wo awdioalternatiwje.
+Prošu staj so z [[{{MediaWiki:Grouppage-sysop}}|administratorami sydła]] z prostwu wo pomoc do zwiska, jeli to će haći legitimne powěsće pósłać.
+
+Klikń na tłócatko "Wróćo" w swojim wobhladowaku, zo by so k editorej wróćił.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
-# Syntaks je slědowaca:
+# Syntaksa je slědowaca:
 # * Wšo wot znamješka "#" hač do kónca linky je komentar
 # * Kóžda popisana linka je fragment regex (regularneho wuraza) kotryž so z mjenom hosta wěsteje URL přirunuje
-
  #</pre> <!-- leave this line exactly as it is -->',
 	'right-skipcaptcha' => 'Captcha přeskočić',
 );
 
 /** Haitian (Kreyòl ayisyen)
+ * @author Boukman
  * @author Masterches
  */
 $messages['ht'] = array(
 	'captcha-edit' => 'Pou ou kapab modifye paj sa, nou mande w kalkile ti adisyon fasil sa epitou mete rezilta, repons ou an nan bwat ki bò kote l ([[Special:Captcha/help|konnen plis sou fonksyon sa]]):',
 	'captcha-desc' => 'Yon enplemantasyon captcha senp',
-	'captcha-addurl' => 'Edisyon ou an genyen lyen pou sòti nan sistèm an.
-Pou ede nou pwoteje sistèm an kont spam, imèl/mesaj otomatik, souple, kalkile ti pwoblèm adisyon fasil sa epi bay repons ou an nan bwat sa ([[Special:Captcha/help|plis èd sou fonksyon sa]]):',
-	'captcha-badlogin' => 'Pou ede nou lite kont moun ki ap krake, pirate mopas yo, souple rezoud ti adisyon fasil sa epi mete repons ou an nan bwat li ([[Special:Captcha/help|konnen plis sou fonksyon sa]]):',
+	'captcha-addurl' => 'Edisyon ou an genyen nouvo lyen pou andeyò.
+Pou ede nou pwoteje sistèm an kont pouryèl, tanpri, fè ti adisyon fasil sa epi bay repons ou an nan bwat ([[Special:Captcha/help|plis èd sou fonksyon sa]]):',
+	'captcha-badlogin' => 'Pou ede nou lite kont òdinatè ki ap krake, pirate mopas yo, tanpri rezoud ti adisyon fasil sa epi mete repons ou an nan bwat ([[Special:Captcha/help|konnen plis sou fonksyon sa]]):',
 	'captcha-createaccount' => 'Pou ede nou lite kont kreyasyon kont otomatik yo, souple rezoud ti adisyon sa epi mete nan bwat an repons ou an ([[Special:Captcha/help|konnen plis sou fonksyon sa]]):',
 );
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Glanthor Reviol
  */
 $messages['hu'] = array(
 	'captcha-edit' => 'A lap szerkesztéséhez meg kell, hogy kérjünk, írd be a lenti dobozba az alábbi egyszerű összeadás eredményét ([[Special:Captcha/help|segítség]]):',
-	'captcha-desc' => 'Egyszerű captcha implementáció',
+	'captcha-desc' => 'CAPTCHA-technológiák a spamek és a jelszókitalálási technikák ellen',
 	'captcha-addurl' => 'Szerkesztésed új külső linket tartalmaz. A reklámokat elhelyező robotok kiszűrése érdekében meg kell, hogy kérjünk, írd be a lenti dobozba az alábbi matematikai művelet eredményét. ([[Special:Captcha/help|segítség]])',
 	'captcha-badlogin' => 'Az automatikus jelszófeltörés kiszűrése érdekében meg kell, hogy kérjünk, írd be a lenti dobozba az alábbi egyszerű számtani művelet eredményét ([[Special:Captcha/help|segítség]]):',
 	'captcha-createaccount' => 'A felhasználói fiókok automatizált létrehozásának kiszűrése érdekében meg kell, hogy kérjünk, írd be a lenti dobozba az alábbi egyszerű számtani művelet eredményét. ([[Special:Captcha/help|segítség]])',
 	'captcha-createaccount-fail' => 'Hibás vagy hiányzó ellenőrző kód.',
 	'captcha-create' => 'Az oldal elkészítéséhez meg kell, hogy kérjünk, írd be a lenti dobozba az alábbi egyszerű számtani művelet eredményét. ([[Special:Captcha/help|segítség]])',
+	'captcha-sendemail' => 'Hogy segíts az automatizált spammelés elleni védekezésben, kérünk oldd meg az alábbi egyszerű számítást, és írd be az eredményt a szövegdobozba ([[Special:Captcha/help|segítség]]):',
+	'captcha-sendemail-fail' => 'Hibás vagy hiányzó ellenőrző kód.',
+	'captcha-disabledinapi' => 'Ez a művelet captcha megoldásához kötött, így nem lehet végrehajtani az API-n keresztül.',
 	'captchahelp-title' => 'Captcha segítség',
 	'captchahelp-cookies-needed' => 'Engedélyezned kell a böngésződben a sütiket.',
-	'captchahelp-text' => 'Az olyan weboldalakat, amelyekre bárki írhat, gyakran támadják meg spammerek olyan eszközök felhasználásával, amelyek képesek automatikusan, emberi felügyelet nélkül elhelyezni egy linket sok különböző oldalon. Az ilyen linkek kézi eltávolítása rengeteg energiát emésztene fel, ezért néha, különösen ha egy külső linket teszel egy cikkbe, a wiki egy valamilyen módon eltorzított szöveget (captcha-t) jelenít meg, és arra kér, hogy gépeld be azt. Mivel ezt automatikusan nagyon nehéz megtenni, a valódi szerkesztők így könnyen megkülönböztethetőek a spammerek robotjaitól.
+	'captchahelp-text' => 'Az olyan weboldalakat, amelyekre bárki írhat, gyakran támadják meg spammerek olyan eszközök felhasználásával, amelyek képesek automatikusan, emberi felügyelet nélkül elhelyezni egy linket sok különböző oldalon.
 
-Sajnos ez komoly kényelmetlenséget jelenthet azoknak a felhasználóknak, akik gyengén látnak, vagy szöveges vagy hang-alapú böngészőt használnak. Jelenleg nem tudunk hang-alapú alternatívával szolgálni; ha a captcha megakadályoz abban, hogy szerkeszd a wikit, vedd fel a kapcsolatot az adminisztrátorokkal. Ahhoz, hogy a capctha-t meg tudd oldani, engedélyezned kell a sütiket a böngésződben.
+Az ilyen linkek kézi eltávolítása rengeteg energiát emésztene fel, ezért néha, különösen ha egy külső linket teszel egy cikkbe, a wiki egy valamilyen módon eltorzított szöveget (captcha-t) jelenít meg, és arra kér, hogy gépeld be azt. Mivel ezt automatikusan nagyon nehéz megtenni, a valódi szerkesztők így könnyen megkülönböztethetőek a spammerek robotjaitól.
 
+Sajnos ez komoly kényelmetlenséget jelenthet azoknak a felhasználóknak, akik gyengén látnak, vagy szöveges/hang-alapú böngészőt használnak. Jelenleg nem tudunk hang-alapú alternatívával szolgálni; ha a captcha megakadályoz abban, hogy szerkeszd a wikit, vedd fel a kapcsolatot az [[{{MediaWiki:Grouppage-sysop}}|adminisztrátorokkal]].
+
 Ha a captcha megoldása helyett inkább visszatérnél a szöveg szerkesztéséhez, használd a böngésződ „vissza” gombját.',
 	'captcha-addurl-whitelist' => ' #<!-- ezt a sort hagyd pontosan így --> <pre>
 # A szintaktika a következő:
@@ -1196,25 +1633,28 @@
  * @author McDutchie
  */
 $messages['ia'] = array(
-	'captcha-edit' => 'Pro modificar iste pagina, per favor resolve le simple calculo infra e entra le responsa in le quadro ([[Special:Captcha/help|plus info]]):',
-	'captcha-desc' => 'Implementation de captcha simple',
+	'captcha-edit' => 'Pro modificar iste pagina, per favor resolve le simple summa hic infra e entra le responsa in le quadro ([[Special:Captcha/help|plus info]]):',
+	'captcha-desc' => 'Forni technicas CAPTCHA de protection contra spam e discoperta de contrasignos',
 	'captcha-addurl' => 'Tu modification include nove ligamines externe.
-Como protection contra le spam automatic, per favor resolve le simple calculo infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
-	'captcha-badlogin' => 'Como protection contra le piratage automatic de contrasignos, per favor resolve le simple calculo infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
-	'captcha-createaccount' => 'Como protection contra le creation automatic de contos, per favor resolve le simple calculo infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
+Como protection contra le spam automatic, per favor resolve le simple summa hic infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
+	'captcha-badlogin' => 'Como protection contra le piratage automatic de contrasignos, per favor resolve le simple summa hic infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
+	'captcha-createaccount' => 'Como protection contra le creation automatic de contos, per favor resolve le simple summa hic infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
 	'captcha-createaccount-fail' => 'Codice de confirmation incorrecte o mancante.',
-	'captcha-create' => 'Pro crear le pagina, per favor resolve le simple calculo infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
+	'captcha-create' => 'Pro crear le pagina, per favor resolve le simple summa hic infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
+	'captcha-sendemail' => 'Como protection contra le spam automatic, per favor resolve le simple summa hic infra e entra le resultato in le quadro ([[Special:Captcha/help|plus info]]):',
+	'captcha-sendemail-fail' => 'Codice de confirmation incorrecte o mancante.',
+	'captcha-disabledinapi' => 'Iste action require un captcha, dunque illo non pote esser exequite per medio del API.',
 	'captchahelp-title' => 'Adjuta super le captcha',
 	'captchahelp-cookies-needed' => 'Tu debe haber le cookies activate in tu navigator a fin que isto pote functionar.',
-	'captchahelp-text' => "Le sitos web que accepta contributiones del publico, como iste wiki, es sovente abusate per spammatores que usa instrumentos automatic pro publicar lor ligamines in multe sitos.
-Ben que iste ligamines spam pote esser eliminate, illos constitue un considerabile incommoditate.
+	'captchahelp-text' => "Le sitos web que accepta contributiones del publico, como iste wiki, es frequentemente abusate per spammatores que usa instrumentos automatic pro publicar lor ligamines in multe sitos.
+Ben que iste ligamines spam pote esser eliminate, illos constitue un considerabile molestia.
 
 Alcun vices, specialmente quando tu adde nove ligamines web a un pagina, le wiki pote monstrar te un imagine de texto colorate o distorquite e demandar que tu entra le parolas monstrate.
-Viste que isto es un carga difficile a automatisar, isto permittera al major parte del humanos real de facer lor contributiones, ben que le major parte del spammatores e altere attaccatores robotic es stoppate.
+Post que isto es un carga difficile de automatisar, isto permittera al major parte del humanos real de facer lor contributiones, durante que le major parte del spammatores e altere attaccatores robotic es stoppate.
 
 Infelicemente isto pote incommodar le usatores con vision limitate o usante navigatores a base de texto o synthese vocal.
 Al momento nos non dispone de un alternativa audio.
-Per favor contacta le administratores del sito pro assistentia si isto te impedi de facer contributiones legitime.
+Per favor contacta le [[{{MediaWiki:Grouppage-sysop}}|administratores del sito]] pro assistentia si isto insperatemente te impedi de facer contributiones legitime.
 
 Clicca le button 'retro' in tu navigator pro retornar al pagina de modification.",
 	'captcha-addurl-whitelist' => ' #<!-- non modificar in alcun modo iste linea --> <pre>
@@ -1228,27 +1668,33 @@
 /** Indonesian (Bahasa Indonesia)
  * @author Borgx
  * @author IvanLanin
+ * @author Iwan Novirion
  * @author Rex
  */
 $messages['id'] = array(
 	'captcha-edit' => 'Untuk menyunting halaman ini, harap pecahkan penjumlahan sederhana di bawah ini dan masukkan jawaban di kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
-	'captcha-desc' => 'Implementasi sederhana captcha',
-	'captcha-addurl' => "Suntingan Anda menyertakan pralana luar baru. Sebagai perlindungan terhadap ''spam'' otomatis, Anda harus mengetikkan kata atau hasil perhitungan yang tertera berikut ini:<br />
+	'captcha-desc' => 'Menyediakan teknik captcha untuk melindungi terhadap spam dan penebakan sandi',
+	'captcha-addurl' => "Suntingan Anda menyertakan pranala luar baru. Sebagai pelindungan terhadap ''spam'' otomatis, Anda harus mengetikkan kata atau hasil perhitungan yang tertera berikut ini:<br />
 ([[Special:Captcha/help|info lengkap]])",
-	'captcha-badlogin' => 'Untuk membantu perlindungan terhadap perengkahan kunci sandi otomatis, tolong masukkan kata atau hasil perhitungan sederhana berikut dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
-	'captcha-createaccount' => 'Sebagai perlindungan melawan spam, Anda diharuskan untuk mengetikkan kata atau hasil perhitungan di bawah ini di kotak yang tersedia untuk dapat mendaftarkan pengguna baru:<br />
+	'captcha-badlogin' => 'Untuk membantu pelindungan terhadap perengkahan kunci sandi otomatis, tolong masukkan kata atau hasil perhitungan sederhana berikut dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'captcha-createaccount' => 'Sebagai pelindungan terhadap spam, Anda diharuskan untuk mengetikkan kata atau hasil perhitungan di bawah ini di kotak yang tersedia untuk dapat mendaftarkan pengguna baru:<br />
 ([[Special:Captcha/help|info lengkap]])',
 	'captcha-createaccount-fail' => 'Kode konfirmasi salah atau belum diisi.',
 	'captcha-create' => 'Untuk menyunting halaman ini, silakan pecahkan penjumlahan sederhana di bawah ini dan masukkan jawaban di kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'captcha-sendemail' => 'Sebagai pelindungan terhadap spam, silakan pecahkan penjumlahan sederhana di bawah ini dan masukkan jawaban di kotak yang tersedia ([[Special:Captcha/help|more info]]):',
+	'captcha-sendemail-fail' => 'Kode konfirmasi salah atau belum diisi.',
+	'captcha-disabledinapi' => 'Tindakan ini membutuhkan captcha, sehingga tidak dapat dilakukan melalui API.',
 	'captchahelp-title' => 'Mengenai Captcha',
 	'captchahelp-cookies-needed' => 'Anda perlu mengaktifkan cookie pada penjelajah web Anda untuk menggunakan fitur ini.',
-	'captchahelp-text' => "Situs-situs web yang menerima masukan data dari publik, seperti {{ns:project}} ini, kerapkali disalahgunakan oleh pengguna-pengguna yang tidak bertanggungjawab untuk mengirimkan spam dengan menggunakan program-program otomatis. Walaupun pranala-pranala spam tersebut dapat dibuang, tetapi tetap saja menimbulkan gangguan berarti.
+	'captchahelp-text' => "Situs-situs web yang menerima tulisan dari publik, seperti wiki ini, kerapkali disalahgunakan oleh pengguna-pengguna yang tidak bertanggungjawab untuk mengirimkan spam dengan menggunakan program-program otomatis.
+Walaupun pranala-pranala spam tersebut dapat dibuang, tetapi tetap saja menimbulkan gangguan berarti.
 
-Ketika menambahkan pranala web baru ke suatu halaman, kadang-kadang {{ns:project}} akan menampilkan sebuah bentuk gambar dari tulisan yang terdistorsi dan meminta Anda untuk mengetikkan kata yang dimaksud. Karena ini merupakan suatu pekerjaan yang sulit diotomatisasi, pembatasan ini akan dapat dengan mudah dilakukan oleh manusia, sambil di sisi lain dapat menghentikan hampir semua serangan spam dan robot otomatis.
+Kadang-kadang, terutama ketika sedang menambahkan pranala web baru ke suatu halaman, wiki ini akan menampilkan sebuah bentuk gambar dari tulisan berwarna atau terdistorsi dan meminta Anda untuk mengetikkan kata yang ditampilkan.
+Karena ini merupakan suatu pekerjaan yang sulit diotomatisasi, pembatasan ini akan dapat dengan mudah dilalui oleh manusia, sekaligus juga dapat menghentikan hampir semua serangan spam dan robot otomatis lainnya.
 
-Sayangnya, hal ini dapat menimbulkan kesulitan bagi pengguna dengan keterbatasan penglihatan atau pengguna yang menggunakan penjelajah web berbasis teks atau suara.
+Sayangnya, hal ini dapat menimbulkan kesulitan bagi pengguna dengan keterbatasan penglihatan atau pengguna yang menggunakan penjelajah web berbasis-teks atau berbasis-suara.
 Saat ini, kami belum memiliki suatu alternatif suara untuk hal ini.
-Silakan minta bantuan dari pengurus situs jika hal ini menghambat Anda untuk mengirimkan suntingan yang layak.
+Silakan hubungi [[{{MediaWiki:Grouppage-sysop}}|pengurus]] untuk meminta bantuan jika hal ini menghambat Anda untuk mengirimkan suntingan yang layak.
 
 Tekan tombol 'back' di penjelajah web Anda untuk kembali ke halaman penyuntingan.",
 	'captcha-addurl-whitelist' => ' #<!-- biarkan baris ini sebagaimana adanya --> <pre>
@@ -1259,6 +1705,42 @@
 	'right-skipcaptcha' => 'Melakukan tindakan pemicu captcha tanpa melalui Captcha',
 );
 
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'captcha-edit' => 'Tapno maurnos daytoy a panid, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'captcha-desc' => 'Ikkan na kadagiti CAPTCHA a pamay-ay tapno masalakniban kadagiti spam ken agpugpugto ti kontrasenias',
+	'captcha-addurl' => 'Ti inurnos mo ket adda nagyan na a panilpo iti ruar.
+Tapno  maasalakniban kadagiti automatiko a spam, pangaasim na sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'captcha-badlogin' => 'Tapno  makasalaknib kadagiti automatiko a pinagsulbar ti kontrasenias, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'captcha-createaccount' => 'Tapno  masalakniban kadagiti automatiko a pinagaramid ti pakabilangan, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'captcha-createaccount-fail' => 'Saan a husto wenno awan ti pasingkedan a kodigo.',
+	'captcha-create' => 'Tapno maramid ti panid, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'captcha-sendemail' => 'Tapno  makasalaknib kadagiti automatiko a pinagspam, pangaasim a sulbaren ti nalaka a dagup dita baba ken ikabil ti sungbat mo dita kahon ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'captcha-sendemail-fail' => 'Saan a husto wenno awan ti pasingkedan a kodigo.',
+	'captcha-disabledinapi' => 'Daytoy nga aramid ket masapul na ti captcha, saan a mabalin a maaramid idiay API.',
+	'captchahelp-title' => 'Tulong ti CAPTCHA',
+	'captchahelp-cookies-needed' => 'Masapul nga adda galietas ti pagbasabasam tapno mabalin daytoy.',
+	'captchahelp-text' => "Dagiti sapot a pagsaadan nga agaw-awat kadagiti maipablaak iti publiko, kasla daytoy a wiki, ket kanayon nga inabuso dagiti spammers nga agus-usar ti automatiko a ramramit ti pinagipablaak da kadagiti kukua da a panilpo ti adu a pagsasaadan.
+Maikkat met dagitoy a panilpo, mgen makariri da unay.
+
+No sagpaminsan pay, nangruna no agikabil kadagiti baro a panilpo ti sapot iti panid, ti wiki ket baka agiparang ti imahen a nakoloran wenno bakkaweng a teksto ken agdamag kenka nga agmakinilya kadagiti balikas a naiparang.
+Yantangay daytoy ket obra a narigat a ma-automatiko, agpalubos kadagiti agpayso a tattao ti agipablaak  bayat nga agpasardeng ti kaaduan a spammers ken dagiti robot nga agraraut.
+
+Daksangasat a padaksan na dagiti agar-aramat a marigatan nga agkita wenno agus-usar ti naibasta ti teksto wenno naibasta ti bitla a pagbasabasa.
+Awan pay tatta ti mangeg a pagpilian a mabalin a gun-oden.
+Pangngaasi a kontaken ti [[{{MediaWiki:Grouppage-sysop}}|administrador ti pagsaadan]] para iti pannulong no daytoy ket saan a napadpadaanan a pawilan na ti agpayso a pinagbaplaak mo.
+
+Peslen ti 'agsubli' a buton dita pagbasabasam (browser) ti agsubli idiay panid ti pinagurnos.",
+	'captcha-addurl-whitelist' => ' #<!-- baybayam nga kasta daytoy nga linia --> <pre>
+# Dagiti sumaganad a gramatika:
+#   * Amin-amin a naggapu iti "#" a kabalinan inggana ti kalpasan ti linia ket komentario
+#   * Amin a saan a blanko a linia ket regex fragment a mangipada laeng ti naggapuan a nagsangailian iti uneg ti URLs
+ #</pre> <!-- baybay-am a kasta daytoy a linia -->',
+	'right-skipcaptcha' => 'Pakabaelan ti agkalbit ti CAPTCHA kadagiti aramid a saan a mapan ti CAPTCHA.',
+);
+
 /** Icelandic (Íslenska)
  * @author S.Örvarr.S
  */
@@ -1284,26 +1766,30 @@
 );
 
 /** Italian (Italiano)
+ * @author Beta16
  * @author BrokenArrow
  * @author Darth Kule
  */
 $messages['it'] = array(
 	'captcha-edit' => 'Per modificare la pagina è necessario risolvere il semplice calcolo presentato di seguito e inserire il risultato nella casella
 ([[Special:Captcha/help|maggiori informazioni]]):',
-	'captcha-desc' => 'Semplice implementazione di un Captcha',
+	'captcha-desc' => "Fornisce tecniche CAPTCHA per la protezione contro lo spam e l'individuazione delle password",
 	'captcha-addurl' => "La modifica richiesta aggiunge dei nuovi collegamenti esterni alla pagina; come misura precauzionale contro l'inserimento automatico di spam, è necessario risolvere il semplice calcolo presentato di seguito e inserire il risultato nella casella ([[Special:Captcha/help|maggiori informazioni]]):",
 	'captcha-badlogin' => 'Come misura precauzionale contro i tentativi di forzatura automatica della password, è necessario risolvere il semplice calcolo presentato di seguito e inserire il risultato nella casella ([[Special:Captcha/help|maggiori informazioni]]):',
 	'captcha-createaccount' => 'Come misura precauzionale contro i tentativi di creazione automatica degli account, per registrarsi è necessario risolvere il semplice calcolo presentato di seguito e inserire il risultato nella casella ([[Special:Captcha/help|maggiori informazioni]]):',
 	'captcha-createaccount-fail' => 'Codice di verifica errato o mancante.',
 	'captcha-create' => 'Per creare la pagina è necessario risolvere il semplice calcolo presentato di seguito e inserire il risultato nella casella:<br />
 ([[Special:Captcha/help|maggiori informazioni]]):',
+	'captcha-sendemail' => 'Come misura precauzionale nei confronti dei messaggi di spam automatici, è necessario risolvere il semplice calcolo presentato di seguito e inserire il risultato nella casella ([[Special:Captcha/help|maggiori informazioni]]):',
+	'captcha-sendemail-fail' => 'Codice di verifica errato o mancante.',
+	'captcha-disabledinapi' => 'Questa azione richiede un captcha, quindi non può essere eseguita tramite API.',
 	'captchahelp-title' => "Cos'è il captcha?",
 	'captchahelp-cookies-needed' => 'È necessario abilitare i cookie sul proprio browser per proseguire',
 	'captchahelp-text' => "Capita spesso che i siti Web che accettano messaggi pubblici, come questo wiki, siano presi di mira da spammer che usano strumenti automatici per inserire collegamenti pubblicitari verso un gran numero di siti. Per quanto i collegamenti indesiderati si possano rimuovere, si tratta comunque di una seccatura non indifferente.
 
 In alcuni casi, ad esempio quando si tenta di aggiungere nuovi collegamenti Web in una pagina, il software wiki può mostrare una immagine con un breve testo colorato e/o distorto chiedendo di riscriverlo in un'apposita finestrella. Poiché si tratta di un'azione difficile da replicare da parte di un computer, questo meccanismo consente a (quasi tutti) gli utenti reali di completare l'inserimento desiderato, impedendo l'accesso alla maggior parte degli spammer e degli altri attacchi automatizzati.
 
-Sfortunatamente, queste misure di sicurezza possono mettere in difficoltà gli utenti con problemi visivi o coloro che utilizzano browser testuali o basati sulla sintesi vocale. Purtroppo al momento non è disponibile un meccanismo alternativo basato su messaggi audio; se queste procedure impediscono l'inserimento informazioni che si ritengono legittime, si prega di contattare gli amministratori del sito e chiedere loro assistenza.
+Sfortunatamente, queste misure di sicurezza possono mettere in difficoltà gli utenti con problemi visivi o coloro che utilizzano browser testuali o basati sulla sintesi vocale. Purtroppo al momento non è disponibile un meccanismo alternativo basato su messaggi audio; se queste procedure impediscono l'inserimento informazioni che si ritengono legittime, si prega di contattare gli [[{{MediaWiki:Grouppage-sysop}}|amministratori del sito]] e chiedere loro assistenza.
 
 Fare clic sul pulsante 'back' del browser per tornare alla pagina di modifica.",
 	'captcha-addurl-whitelist' => ' #<!-- non modificare in alcun modo questa riga --> <pre>
@@ -1319,24 +1805,28 @@
  * @author Fryed-peach
  * @author Hosiryuhosi
  * @author JtFuruhata
+ * @author Whym
  */
 $messages['ja'] = array(
-	'captcha-edit' => 'このページを編集するには、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
-	'captcha-desc' => '簡単な CAPTCHA(画像認証)の実装',
-	'captcha-addurl' => 'あなたの編集により新たに外部リンクが追加されようとしています。スパム防止のため、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
-	'captcha-badlogin' => '自動化スクリプトによるパスワードクラック攻撃を防ぐため、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
-	'captcha-createaccount' => 'アカウントの自動作成を防ぐため、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
+	'captcha-edit' => 'このページを編集するには、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
+	'captcha-desc' => 'スパムやパスワード推定の攻撃を防ぐためのCAPTCHA技術を提供します',
+	'captcha-addurl' => 'あなたの編集により新たに外部リンクが追加されようとしています。スパム防止のため、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
+	'captcha-badlogin' => '自動化スクリプトによるパスワードクラック攻撃を防ぐため、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
+	'captcha-createaccount' => 'アカウントの自動作成を防ぐため、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
 	'captcha-createaccount-fail' => '確認コードの入力がないか、間違っています。',
-	'captcha-create' => 'ページを新規作成するには、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
-	'captchahelp-title' => 'CAPTCHA(画像認証)ヘルプ',
+	'captcha-create' => 'ページを新規作成するには、下記の簡単な数式を計算し、欄に答えを入力してください。([[Special:Captcha/help|ヘルプ]])',
+	'captcha-sendemail' => 'ロボットによるスパムを防ぐため、下記の簡単な数式を計算し、欄に答えを入力してください ([[Special:Captcha/help|詳細]]):',
+	'captcha-sendemail-fail' => '確認コードが間違っているか入力されていません。',
+	'captcha-disabledinapi' => 'この操作はキャプチャを必要としているため、APIによって実行することができません。',
+	'captchahelp-title' => 'CAPTCHA(画像認証)ヘルプ',
 	'captchahelp-cookies-needed' => 'ブラウザのクッキー機能を有効にする必要があります。',
 	'captchahelp-text' => '一般からの投稿を受け付けるこのウィキのようなウェブサイトは、自動投稿ツールを使って多くのサイトにリンクを張ってまわるスパマーにより荒らされがちです。このようなスパムは除去できるものの、その作業は大変に面倒なものです。
 
 このため、このウィキではときどき、特に新しい外部リンクがページに追加されたときなどに、色の付いた、あるいは形のゆがんだ文字の画像を提示し、なんと書いてあるか入力をお願いすることがあります。この作業は自動化が難しいため、スパマーなどのプログラムを用いた攻撃をほぼ阻止しつつ、大半の生身の人間による投稿を可能にします。
 
-しかし、残念なことに、この方法により、視力の低い利用者や、テキストベースあるいは音声ベースのブラウザを使っている利用者にご不便をおかけする場合があります。現時点では、音声による代替方法はありません。正当な投稿をするにあたって本機能が障害となっている場合、サイト管理者に連絡して協力を求めてください。
+しかし、残念なことに、この方法により、視力の低い利用者や、テキストベースあるいは音声ベースのブラウザを使っている利用者にご不便をおかけする場合があります。現時点では、音声による代替方法はありません。正当な投稿をするにあたって本機能が障害となっている場合、[[{{MediaWiki:Grouppage-sysop}}|サイト管理者]]に連絡して協力を求めてください。
 
-ページの編集に戻るには、ブラウザの戻るボタンを押してください。',
+ページの編集に戻るには、ブラウザの「戻る」ボタンを押してください。',
 	'captcha-addurl-whitelist' => ' #<!-- この行は変更しないでください --> <pre>
 # 構文は以下のとおりです:
 #  * "#"文字から行末まではコメントとして扱われます
@@ -1375,6 +1865,7 @@
 
 /** Javanese (Basa Jawa)
  * @author Meursault2004
+ * @author Pras
  */
 $messages['jv'] = array(
 	'captcha-edit' => 'Kanggo nyunting kaca iki, mangga pecahna tambah-tambahan ing ngisor iki lan lebokna wangsulané ing kothak cedaké ([[Special:Captcha/help|info sabanjuré]]):',
@@ -1387,12 +1878,12 @@
 	'captcha-create' => 'Kanggo nggawé kaca iki, mangga itung-itungan ing ngisor iki diwangsuli sajroning kothak ([[Special:Captcha/help|info sabanjuré]]):',
 	'captchahelp-title' => 'Pitulung Captcha',
 	'captchahelp-cookies-needed' => 'Panjenengan perlu ngaktifaké cookie ing panjlajah wèb panjenengan kanggo nganggo fitur iki.',
-	'captchahelp-text' => "Situs-situs wèb sing nampa masukan data saka umum, kaya ta wiki iki, kerep disalahgunakaké déning panganggo-panganggo sing ora bertanggungjawab kanggo ngirimaké ''spam'' mawa program-program otomatis. Senadyan spam-spam iku bisa dibuang kabèh, nanging waé tetep ngrusuhi lan dianggep gawé masalah.
+	'captchahelp-text' => "Situs-situs wèb sing nampa data saka umum, kaya ta wiki iki, kerep disalahgunakaké déning panganggo-panganggo sing ora bertanggungjawab kanggo ngirimaké ''spam'' mawa program-program otomatis. Senadyan spam-spam iku bisa dibuang kabèh, nanging waé tetep ngrusuhi lan dianggep gawé masalah.
 
 Kadhangkala, utamané yèn mènèhi pranala wèb anyar ing sawijinig kaca, wiki iki bisa nuduhaké gambar sawijining gambar tulisan sing ana wernané utawa sing rusak lan njaluk panjenengan ngetik ulang tembung sing ana gambar iki.
 Amerga pagawéyan iki angèl diotomatisasi, pawatesan iki bisa ngidinaké mèh kabèh wong asli mbanjuraké sumbangsihé ngirim suntingan nanging menggak para pangirim spam lan robot otomatis.
 
-Émané, perkara iki bisa nggawé sawetara panganggo kangélan nyunting kaca iki, utamané sing daya pandelengané kurang utawa para panganggo sing nganggo panjlajah tèks adhedhasar tèks utawa swara. Saiki iki awaké dhéwé ora duwé alternatif audio kanggo iki. Mangga nyuwun pitulung karo para pangurus yèn perkara iki menggak panjenengan ngirimaké suntingan sing layak.
+Émané, perkara iki bisa nggawé sawetara panganggo kangélan nyunting kaca iki, utamané sing daya pandelengané kurang utawa para panganggo sing nganggo panjlajah tèks adhedhasar tèks utawa swara. Saiki iki awaké dhéwé ora duwé alternatif audio kanggo iki. Mangga nyuwun pitulung karo [[{{MediaWiki:Grouppage-sysop}}|para pangurus]] yèn perkara iki menggak panjenengan ngirimaké suntingan sing layak.
 
 Pencèten tombol 'back' ing panjlajah wèb panjenengan kanggo bali menyang kaca panyuntingan.",
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -1403,6 +1894,19 @@
 	'right-skipcaptcha' => 'Nglakokaké aksi-aksi sing murupaké captcha tanpa kudu ngliwati captcha',
 );
 
+/** Georgian (ქართული)
+ * @author ITshnik
+ */
+$messages['ka'] = array(
+	'captcha-edit' => 'ამ გვერდის რედაქტირებისათვის, გთხოვთ, ამოხსნათ ქვემოთ მოცემული მარტივი მაგალითი და პასუხი შეიყვანოთ ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+	'captcha-addurl' => 'თქვენი ცვლილება შეიცავს ახალ გარე ბმულებს.
+ავტომატური სპამინგისგან თავდაცვის მიზნით, გთხოვთ, ამოხსნათ ქვემოთ მოცემული მარტივი მაგალითი და პასუხი შეიყვანოთ ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+	'captcha-badlogin' => 'პაროლების ავტომატური გატეხვისგან თავდაცვის მიზნით, გთხოვთ, ამოხსნათ ქვემოთ მოცემული მარტივი მაგალითი და პასუხი შეიყვანოთ ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+	'captcha-createaccount' => 'ანგარიშების ავტომატური შექმნისგან თავდაცვის მიზნით, გთხოვთ, ამოხსნათ ქვემოთ მოცემული მარტივი მაგალითი და პასუხი შეიყვანოთ ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+	'captcha-create' => 'გვერდის შესაქმნელად, გთხოვთ, ამოხსნათ ქვემოთ მოცემული მარტივი მაგალითი და პასუხი შეიყვანოთ ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+	'captcha-sendemail' => 'ავტომატური სპამინგისგან თავდაცვის მიზნით, გთხოვთ, ამოხსნათ ქვემოთ მოცემული მარტივი მაგალითი და პასუხი შეიყვანოთ ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+);
+
 /** Kara-Kalpak (Qaraqalpaqsha)
  * @author Atabek
  */
@@ -1436,7 +1940,7 @@
 بەت ٶڭدەۋٸنە قايتۋ بارۋ ٷشٸن «ارتقا» دەگەن تٷيمەسٸن باسىڭىز.',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'captcha-edit' => 'Бұл бетті өңдеу үшін, төмендегі қосындылауды шешіңіз де, нәтижесін
 аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):',
@@ -1462,7 +1966,7 @@
 Бет өңдеуіне қайту бару үшін «Артқа» деген түймесін басыңыз.',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'captcha-edit' => 'Bul betti öñdew üşin, tömendegi qosındılawdı şeşiñiz de, nätïjesin
 awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):',
@@ -1504,27 +2008,31 @@
 );
 
 /** Korean (한국어)
+ * @author IRTC1015
  * @author Klutzy
  * @author Kwj2772
  * @author ToePeu
  */
 $messages['ko'] = array(
 	'captcha-edit' => '글을 편집하기 위해서는, 아래의 간단한 덧셈 값을 입력상자에 적어 주세요([[Special:Captcha/help|자세한 정보]]):',
-	'captcha-desc' => '간단한 캡차를 실시',
+	'captcha-desc' => '스팸과 비밀번호 탈취를 방지하기 위한 캡차 기능을 제공',
 	'captcha-addurl' => '편집 내용에 다른 웹 사이트 링크가 포함되어 있습니다. 자동 스팸을 막기 위해, 아래의 간단한 계산 값을 입력상자에 적어 주세요([[Special:Captcha/help|자세한 정보]]):',
-	'captcha-badlogin' => '계정 암호 해킹을 막기 위해, 아래의 간단한 계산 값을 입력상자에 적어 주세요([[Special:Captcha/help|자세한 정보]]):',
-	'captcha-createaccount' => '자동 가입을 막기 위해, 아래 문제의 답을 적어야만 가입이 가능합니다([[Special:Captcha/help|관련 도움말]]):',
+	'captcha-badlogin' => '계정 암호 해킹을 막기 위해, 아래의 간단한 계산 값을 입력상자에 적어 주세요. ([[Special:Captcha/help|자세한 정보]]):',
+	'captcha-createaccount' => '자동 가입을 막기 위해, 아래 문제의 답을 적어 주세요. ([[Special:Captcha/help|관련 도움말]]):',
 	'captcha-createaccount-fail' => '입력값이 잘못되었거나 없습니다.',
 	'captcha-create' => '문서를 만들기 위해서는, 아래의 간단한 계산 값을 입력상자에 적어 주세요([[Special:Captcha/help|자세한 정보]]):',
+	'captcha-sendemail' => '자동화된 스팸을 방지하기 위해, 아래의 간단한 계산 값을 입력상자에 적어 주세요 ([[Special:Captcha/help|자세한 정보]]):',
+	'captcha-sendemail-fail' => '입력값이 잘못되었거나 없습니다.',
+	'captcha-disabledinapi' => '이 동작은 캡차를 거쳐야 하기 때문에 API로 이 작업을 수행할 수 없습니다.',
 	'captchahelp-title' => 'Captcha 도움말',
 	'captchahelp-cookies-needed' => '정상적으로 작동하려면 웹 브라우저의 쿠키 사용이 활성화되어있어야 합니다.',
-	'captchahelp-text' => "이곳의 위키와 같이 사용자들의 공개적인 참여가 가능한 웹 사이트에서는, 자동 프로그램이 스팸을 뿌리는 경우가 있습니다. 물론 이러한 스팸은 제거할 수는 있지만 귀찮은 작업이 늘어납니다.
+	'captchahelp-text' => '이 위키와 같이 사람들의 공개적인 참여가 가능한 웹 사이트에서는 자동 프로그램이 스팸을 뿌리는 경우가 있습니다. 물론 이러한 스팸은 제거할 수는 있지만 번거로운 작업이 늘어납니다.
 
-이러한 스팸을 방지하기 위해서, 이곳 위키의 문서에 웹 사이트 주소를 추가하거나 하는 등의 행동을 할 경우에는, 비틀린 글자가 들어있는 그림을 보여주고 그 그림의 글자를 입력해 달라고 하는 경우가 있습니다. 이 글자 입력 작업은 자동 프로그램을 만들기가 힘들기 때문에, 스팸을 효과적으로 막으면서 일반 사용자를 막지 않을 수 있습니다.
+이러한 스팸을 방지하기 위해서, 이 위키의 문서에 웹 사이트 주소를 추가하는 등의 행동을 할 경우에는 비틀린 글자가 들어있는 그림을 보여주고 그 그림의 글자를 입력해 달라고 하는 경우가 있습니다. 이 글자 입력 작업은 자동 프로그램을 만들기가 힘들기 때문에 스팸을 효과적으로 막으면서 일반 사용자를 막지 않을 수 있습니다.
 
-웹 브라우저에서 그림을 완벽하게 표시할 수 없거나, 또는 그림이 나오지 않는 텍스트 방식이나 음성 합성 방식 웹 브라우저를 사용하는 경우에는 이러한 입력이 불가능합니다. 아직까지는 이런 경우에 대한 대안책이 없습니다. 이 경우 사이트 관리자에게 도움을 요청해주세요.
+웹 브라우저에서 그림을 완벽하게 표시할 수 없거나, 그림이 나오지 않는 텍스트 방식이나 음성 합성 방식 웹 브라우저를 사용하는 경우에는 이러한 입력이 불가능합니다. 아직까지는 이런 경우에 대한 대안이 없습니다. 이 경우 [[{{MediaWiki:Grouppage-sysop}}|사이트 관리자]]에게 도움을 요청해 주세요.
 
-이전의 편집창으로 돌아가려면 웹 브라우저의 '뒤로' 버튼을 눌러 주세요.",
+이전 화면으로 돌아가려면 웹 브라우저의 ‘뒤로’ 버튼을 눌러 주세요.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 # 문법은 다음과 같습니다:
 #  * "#"로 시작하는 줄은 주석입니다.
@@ -1533,12 +2041,12 @@
 	'right-skipcaptcha' => '캡차 과정을 거치지 않고 캡차 과정을 거친 것으로 간주',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
 	'captcha-edit' => 'Öm de Sigg ze ändere, don di Zahle onge zosamme zälle un don de Antwoot en dat Käßje endraare. ([[Special:Captcha/help|Verklierung]])',
-	'captcha-desc' => 'En eijfach „Kaptscha“.',
+	'captcha-desc' => 'Brängk en „Kaptscha“ en et Wiki, öm jääje SPAM un jäje et Paßwööter-Dorschprobeere ze schöze.',
 	'captcha-addurl' => 'Do häß neu Lingks op frembde Websigge dobei jedonn.
 Mer schöze uns Wiki jäje automatesche SPAM, dröm
 don di Zahle onge zosamme zälle un don de Antwoot
@@ -1553,6 +2061,10 @@
 	'captcha-createaccount-fail' => 'De Bestätijungszahl fählt udder es verkeeht.',
 	'captcha-create' => 'Öm di Sigg neu aanzelääje, don di Zahle onge zosamme zälle,
 un don de Antwoot en dat Käßje endraare. (Verklierung)',
+	'captcha-sendemail' => 'För automettesche SPAM ze verhendere, donn di Zahle onge zosamme zälle,
+un don de Antwoot en dat Käßje endraare. ([[Special:Captcha/help|Verklierung]])',
+	'captcha-sendemail-fail' => 'De Bestätijungszahl fählt udder es verkeeht.',
+	'captcha-disabledinapi' => 'För di Aufjab moß en extra Bestätejon enjejovve wääde, un dat künne mer nit övver de API.',
 	'captchahelp-title' => 'Äklierung zum Kaptscha SPAM-Schotz',
 	'captchahelp-cookies-needed' => 'Do moß <i lang="en">Cookies</i> en Dingem Brauser enjeschalldt han, domet da hee fluppe kann.',
 	'captchahelp-text' => 'Op Web Saits wi dat Wiki hee, wo jeder jät beidraare kann, do kumme se öff wi de Fleeje un don met Projramme un fun Hand bloß Reklame-Lingks op de eije Websigge affläje, oohne Sinn un Verstand. Esu en SPAM kam_mer widder fott maache, dat määt ävver Ärjer un Opwand.
@@ -1576,7 +2088,7 @@
 # * Alles fun enem #-Zeiche bes an et Engk fun ene Reih es ene Kommentaa för de Minsche
 # * Jede Reih met jet dren es en Stöck regular Expression, wat Domains en URL treffe kann
   #</pre> <!-- Lohß di Reih he jenou esu wi se es -->',
-	'right-skipcaptcha' => 'de Opforderung fum Kaptscha överjonn',
+	'right-skipcaptcha' => 'De Opforderung fum Kaptscha överjonn',
 );
 
 /** Latin (Latina)
@@ -1593,31 +2105,35 @@
 );
 
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
 	'captcha-edit' => "Fir dës Säit z'änneren, léist w.e.g. dës Rechenaufgab a gitt d'Resultat an d'Këscht ënnendrënner an ([[Special:Captcha/help|méi Informatiounen]]):",
-	'captcha-desc' => 'Einfach Captcha-Implementatioun',
-	'captcha-addurl' => 'An ärer Ännerung sinn nei extern Linken. Fir eis virun automatiséiertem Spamming ze schütze froe mir iech fir déi folgend einfach  Rechenaufgab ze léisen an d\'Resultat an d\'Feld ënnen anzedroën. Klickt duerno w.e.g. nach eng Kéier op "Säit ofspäicheren" [[Special:Captcha/help|méi Informatiounen]].',
+	'captcha-desc' => 'Stellt Captcha-Techniken zur Verfügung fir géint Spam an Errode vu Passwierder ze schützen',
+	'captcha-addurl' => 'An ärer Ännerung sinn nei extern Linken. Fir eis virun automatiséiertem Spamming ze schütze froe mir iech fir déi folgend einfach  Rechenaufgab ze léisen an d\'Resultat an d\'Feld ënnen anzedroen. Klickt duerno w.e.g. nach eng Kéier op "Säit ofspäicheren" [[Special:Captcha/help|méi Informatiounen]].',
 	'captcha-badlogin' => "Fir eis géint automatescht Hacke vu Passwierder ze schützen, léist w.e.g. déi einfach Additioun hei ënnendrënner an tippt d'Äntwert an d'Këscht ([[Special:Captcha/help|méi Informatiounen]]):",
 	'captcha-createaccount' => "Fir eis géint d'automatescht Uleeë vu Benotzerkonten ze schützen, léist w.e.g. déi einfach Additioun hei ënnendrënner, an tippt d'Äntwert an d'Këscht ([[Special:Captcha/help|méi Informatiounen]]):",
 	'captcha-createaccount-fail' => 'Falschen oder kee Confirmatiouns-Code.',
-	'captcha-create' => "Fir eng Nei Säit unzleeën, léist w.e.g. déi einfach Additioun hei ënnendrënner an tippt d'Äntwert an d'Këscht ([[Special:Captcha/help|méi Informatiounen]]):",
-	'captchahelp-title' => 'Captcha-Hellëf',
+	'captcha-create' => "Fir eng Nei Säit unzeleeën, léist w.e.g. déi einfach Additioun hei ënnendrënner an tippt d'Äntwert an d'Këscht ([[Special:Captcha/help|méi Informatiounen]]):",
+	'captcha-sendemail' => "Fir eis géint automatescht Spammen ze schützen, léist w.e.g. déi einfach Additioun hei ënnendrënner an tippt d'Äntwert an d'Këscht ([[Special:Captcha/help|méi Informatiounen]]):",
+	'captcha-sendemail-fail' => 'Falschen oder kee Confirmatiouns-Code.',
+	'captcha-disabledinapi' => 'Dës Aktioun brauch e Captcha, dofir ka se net mat enger API gemaach ginn.',
+	'captchahelp-title' => 'Captcha-Hëllef',
 	'captchahelp-cookies-needed' => 'Dir musst Cookieën an ärem Browser erlaben fir dat dëst fonktionéiert.',
-	'captchahelp-text' => "Websiten, déi jidferengem et erlaben Ännerunge virzehuelen, sou wéi op dëser wiki, ginn dacks vu sougenannte Spammer mëssbraucht, déi automatiséiert hir Linkën op vill Internetsitë setzen. Esou Spam-Linkë kënne wuel geläscht ginn, mee si sinn trotzdem e grousst Iergernëss.
+	'captchahelp-text' => "Websäiten, déi et jidwerengem erlaben Ännerunge virzehuelen, sou wéi op dëser Wiki, ginn dacks vu sougenannte Spammer mëssbraucht, déi automatiséiert hir Linken op vill Internetsäite setzen. Esou Spam-Linke kënne wuel geläscht ginn, mee si sinn trotzdem eng grouss Plo.
 
-Heiandsdo, besonnesch wann nei Internet-Linkën op eng Säit derbäigesat ginn, weist dës Wiki iech e Bild mat farwegëm oder verzerrtëm Text a freet iech fir déi gewise Wierder anzetipppen. Well dëst eng Aufgab ass déi schwéier ze automatiséieren ass, erlaabt dëst dat Mënschen hir Ännerunge kënnen agi wärend déi meescht Spammer an aner Roboter-Attacken kënnen ofgewiert ginn.
+Heiandsdo, besonnesch wann nei Internet-Linken op eng Säit derbäigesat ginn, weist dës Wiki iech e Bild mat faarwegem oder verzerrtem Text a freet iech fir déi gewise Wierder anzetipppen. Well dëst eng Aufgab ass déi schwéier ze automatiséieren ass, erlaabt dëst datt Mënschen hir Ännerunge kënnen agi wärend déi meescht Spammer an aner Roboter-Attacke kënnen ofgewiert ginn.
 
-Leider kann dëst zu Schwierigkeete féiere fir Persounen déi net esou gutt gesinn oder déi text-baséiert oder sprooch-baséiert Browser benotzen. 
+Leider kann dëst zu Schwierigkeete féiere fir Persounen déi net esou gutt gesinn oder déi text-baséiert oder sprooch-baséiert Browser benotzen.
 Zu dësem Zäitpunkt hu mir leider keng audio-Alternativ zu eiser Verfügung.
-Kontaktéiert een Administrateur fir Hëllef wann dëst iech onerwarter Wäis vu legitimen Editen ofhält.
+Kontaktéiert w.e.g. [[{{MediaWiki:Grouppage-sysop}}|een Administrateur]] fir Hëllef wann dëst iech onerwaarter Wäis vu legitimen Editen ofhält.
 
 Dréckt op den 'Zréck' Knäppche vun ärem Browser fir an d'Beaarbechtungsfënster zréckzekommen.",
 	'captcha-addurl-whitelist' => '  #<!-- Dës Linn onverännert loossen --> <pre>
 #  Syntax:
-#  * Alles mat engem #-Zeechen u bis zum Enn vun däer Zeil ass eng Bemierkung
-#  * All Zeil déi net eidel ass, ass ee Regex-Fragment, dat nëmme mat Hosten bannent URLë fonktionéiert
+#  * Alles vun engem #-Zeechen u bis zum Enn vun där Zeil ass eng Bemierkung
+#  * All Zeil déi net eidel ass, ass ee Regex-Fragment, dat nëmme mat Hosten bannent URLë fonctionnéiert
    #</pre> <!-- Dës Linn onverännert loossen -->',
 	'right-skipcaptcha' => 'Aktiounen déi eng Captcha-Aktioun verlaangen ausféieren, ouni dës maachen ze mussen',
 );
@@ -1628,21 +2144,24 @@
  */
 $messages['li'] = array(
 	'captcha-edit' => "Geer wil dees pazjena bewerke. Veur estebleef 't antjwaord op de óngerstäönde einvawdife som in 't inveurvenster in ([[Special:Captcha/help|mieë informatie]]):",
-	'captcha-desc' => 'Einvawdige implementatie van captcha',
+	'captcha-desc' => "Bied CAPTCHA-technieke óm besjörming te beje taenge spam en 't raoje van wachweurd.",
 	'captcha-addurl' => "Uw bewerking bevat nieuwe externe links (URL's). Voer ter bescherming tegen geautomatiseerde spam alstublieft het antwoord op de onderstaande eenvoudige som in in het invoerveld ([[Special:Captcha/help|meer informatie]]):",
 	'captcha-badlogin' => 'Los alstublieft de onderstaande eenvoudige som op en voer het antwoord in het invoervenster in ter bescherming tegen het automatisch kraken van wachtwoorden ([[Special:Captcha/help|meer informatie]]):',
 	'captcha-createaccount' => 'Voer ter bescherming tegen geautomatiseerde spam het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
 	'captcha-createaccount-fail' => 'De bevestigingscode ontbreekt of is onjuist.',
 	'captcha-create' => 'U wilt een nieuwe pagina aanmaken. Voer alstublieft het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
+	'captcha-sendemail' => "Veur ter besjerming taege geautomatiseerde spam 't antjwaord op de ongerstaonde einvawdige som in 't inveurvinster in ([[Special:Captcha/help|mier informatie]]):",
+	'captcha-sendemail-fail' => 'De bevestigingscode ontbrèk of is ónjuus.',
+	'captcha-disabledinapi' => "Veur dees actie is 'n captcha neudig die neet aafgehanjeldj kin waere via de API.",
 	'captchahelp-title' => 'Captcha-hölp',
 	'captchahelp-cookies-needed' => 'Ge dient in uw browser cookies ingeschakeld te hebbe om dit te laote werke.',
-	'captchahelp-text' => "Websites die vrij te bewerken zijn, zoals deze wiki, worden vaak misbruikt door spammers die er met hun programma's automatisch links op zetten naar vele websites. Hoewel deze externe links weer verwijderd kunnen worden, leveren ze wel veel hinder en administratief werk op.
+	'captchahelp-text' => "Websites die vrie te bewèrke zeen, wie deze wiki, waere döks misbroek door spammers die d'r met hun programma's automatisch links op zetten naar vele websites. Hoewel deze externe links weer verwijderd kunnen worden, leveren ze wel veel hinder en administratief werk op.
 
 Soms, en in het bijzonder bij het toevoegen van externe links op pagina's, toont de wiki u een afbeelding met gekleurde of vervormde tekst en wordt u gevraagd de getoonde tekst in te voeren. Omdat dit proces lastig te automatiseren is, zijn vrijwel alleen mensen in staat dit proces succesvol te doorlopen en worden hiermee spammers en andere geautomatiseerde aanvallen geweerd.
 
-Helaas levert deze bevestiging voor gebruikers met een visuele handicap of een tekst- of spraakgebaseerde browser problemen op. Op het moment is er geen alternatief met geluid beschikbaar. Vraag alstublieft assistentie van de sitebeheerders als dit proces u verhindert een nuttige bijdrage te leveren.
+Helaas levert deze bevestiging voor gebruikers met een visuele handicap of een tekst- of spraakgebaseerde browser problemen op. Op het moment is er geen alternatief met geluid beschikbaar. Vraag alstublieft assistentie van de [[{{MediaWiki:Grouppage-sysop}}|sitebeheerders]] als dit proces u verhindert een nuttige bijdrage te leveren.
 
-Klik op de knop 'terug' in uw browser om terug te gaan naar het tekstbewerkingsscherm.",
+Klik óppe 'trök'-knoep in uw browser om terug te gaan naar het tekstbewerkingsscherm.",
 	'captcha-addurl-whitelist' => ' #<!-- laot deze regel --> <pre>
 # De syntaxis is as volgt:
 #  * Alle tekst vanaaf \'t karakter "#" tot het einde van de regels wordt gezien als opmerking
@@ -1661,6 +2180,7 @@
 );
 
 /** Lithuanian (Lietuvių)
+ * @author Eitvys200
  * @author Garas
  * @author Homo
  * @author Matasg
@@ -1668,64 +2188,164 @@
 $messages['lt'] = array(
 	'captcha-edit' => 'Kad redaguotumėte šį straipsnį, apskaičiuokite šią paprastą sumą ir įveskite atsakymą į laukelį ([[Special:Captcha/help|daugiau informacijos]]):',
 	'captcha-createaccount-fail' => 'Blogas arba nerastas patvirtinimo kodas.',
+	'captchahelp-title' => 'CAPTCHA pagalba',
+	'captchahelp-cookies-needed' => 'Jums reikia būti įjungus sausainėlius savo naršyklėje kad tai veiktu',
 );
 
 /** Latvian (Latviešu)
  * @author BrokenArrow
+ * @author Marozols
  * @author Yyy
  */
 $messages['lv'] = array(
 	'captcha-edit' => 'Lai izmainītu šo lapu, atrisini šo vienādojumu un iegūto skaitli ieraksti šajā lodziņā: <br />([[Special:Captcha/help|Kāpēc tā?]])',
 	'captcha-addurl' => 'Tavas izmaiņas ietver jaunu URL saiti. Lai pasargātos no automātiskas mēstuļošanas, Tev ir jāieraksta te redzamā vienādojuma rezultāts: <br />([[Special:Captcha/help|Kāpēc tā?]])',
+	'captcha-badlogin' => 'Lai pasargātos no automātiskiem paroļu lauzējiem, lūdzu aprēķini šīs izteiksmes vērtību un rezultātu ieraksti apakšā esošajā lodziņā ([[Special:Captcha/help|papildus informācija]]):',
 	'captcha-createaccount' => 'Lai pasargātos no automātiskas mēstuļošanas, Tev reģistrējoties ir jāieraksta šī vienādojuma rezultāts: <br />([[Special:Captcha/help|Kāpēc tā?]])',
 	'captcha-createaccount-fail' => 'Nepareizs apstiprinājuma kods vai arī tas nav ievadīts.',
 	'captcha-create' => 'Lai izveidotu šo lapu, atrisini šo vienādojumu un rezulātu ieraksti šajā lodziņā: <br />([[Special:Captcha/help|Kāpēc tā?]])',
-	'captchahelp-text' => "Interneta lapas, kurās iespējams pievienot tekstu, kā šajā wiki, bieži cieš no mēstuļotājiem, kuri izmanto automatizētus līdzekļus, lai pievienotu savus saites daudzās jo daudzās interneta lapās. Kaut arī šīs saites var viegli dzēst, tomēr tās ir nozīmīgs traucēklis. Reizēm, jo īpaši pievienojot jaunas interneta saites, wiki programmatūra var parādīt Tev attēlu, kurā ir krāsains vai sagrozīts teksts. Šis teksts ir jāpārraksta un to ir ļoti grūti izdarīt automātiski, tā apgrūtinot lielāko daļu mēstuļotāju, savukārt gandrīz visi parastie lietotāji to var izdarīt bez grūtībām. Diemžēl tas var apgrūtināt lietotājus, kuriem ir redzes traucējumi vai kuri izmanto teksta pārlūkus vai dzirdes pārlūkus. Šobrīd nav pieejama audio alternatīva, bet sazinies ar wiki administratoriem, ja tas liedz Tev veikt labi domātus papildinājumus. Spied pārlūka pogu \"Atpakaļ\" (''Back''), lai atgrieztos iepriekšējā lapā.",
+	'captchahelp-cookies-needed' => "Lai šis darbotos, pārlūkprogrammā jābūt iespējotām (''enabled'') sīkdatnēm (''cookies'').",
+	'captchahelp-text' => "Interneta lapas, kurās iespējams pievienot tekstu, kā šajā wiki, bieži cieš no mēstuļotājiem, kuri izmanto automatizētus līdzekļus, lai pievienotu savus saites daudzās jo daudzās interneta lapās.
+Kaut arī šīs saites var viegli dzēst, tomēr tās ir nozīmīgs traucēklis.
+
+Reizēm, jo īpaši pievienojot jaunas interneta saites, wiki programmatūra var parādīt Tev attēlu, kurā ir krāsains vai sagrozīts teksts. Šis teksts ir jāpārraksta un to ir ļoti grūti izdarīt automātiski, tā apgrūtinot lielāko daļu mēstuļotāju, savukārt gandrīz visi parastie lietotāji to var izdarīt bez grūtībām.
+
+Diemžēl tas var apgrūtināt lietotājus, kuriem ir redzes traucējumi vai kuri izmanto teksta pārlūkus vai dzirdes pārlūkus. Šobrīd nav pieejama audio alternatīva, bet sazinies ar [[{{MediaWiki:Grouppage-sysop}}|wiki administratoriem]], ja tas liedz Tev veikt labi domātus papildinājumus.
+
+Spied pārlūka pogu \"Atpakaļ\" (''Back''), lai atgrieztos iepriekšējā lapā.",
 );
 
+/** Malagasy (Malagasy)
+ * @author Jagwar
+ */
+$messages['mg'] = array(
+	'right-skipcaptcha' => 'Manao tao mampisy ny captcha fa tsy mila mameno azy',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ * @author Brest
+ */
+$messages['mk'] = array(
+	'captcha-edit' => 'За да ја уредите оваа страница потребно е да го најдете решението на едноставната задача поставена подолу и одговорот да го внесете во соодветното поле за одговор([[Special:Captcha/help|повеќе информации]]):',
+	'captcha-desc' => 'Овозможува техники од CAPTCHA за заштита од спам и погодување на лозинки',
+	'captcha-addurl' => 'Вашето уредување содржи нови надворешни врски.
+За да ни помогнете да се заштитиме од автоматизиран спам, решете ја простата задача подолу и впишете го бројот во полето ([[Special:Captcha/help|повеќе инфо]]):',
+	'captcha-badlogin' => 'За да ни помогнете да се заштитиме од автоматизирано пробивање на лозинки, решете ја простата задача подолу и впишете го решението во полето
+([[Special:Captcha/help|повеќе инфо]]):',
+	'captcha-createaccount' => 'За да ни помогнете да се заштитиме од автоматизирано создавање на сметки, решете ја простата задача подолу и впишете го бројот во полето ([[Special:Captcha/help|повеќе инфо]]):',
+	'captcha-createaccount-fail' => 'Потврдниот код е неточен или недостасува.',
+	'captcha-create' => 'За да ја создадете страницата, прво решете ја простата задача подолу и впишете го решението во полето ([[Special:Captcha/help|повеќе инфо]]):',
+	'captcha-sendemail' => 'За да се заштитиме од автоматизирано спамирање, решете ја простата задача подолу и впишете го резултатот во полето ([[Special:Captcha/help|повеќе информации]]):',
+	'captcha-sendemail-fail' => 'Потврдниот код е неточен или недостасува.',
+	'captcha-disabledinapi' => 'Ова дејство бара captcha, така што не може да се изврши преку API.',
+	'captchahelp-title' => 'Помош со Captcha',
+	'captchahelp-cookies-needed' => 'Треба да имате овозможено колачиња за да може ова да работи.',
+	'captchahelp-text' => 'Мрежните места кои прифаќаат учество на јавноста, како ова вики, честопати страдаат од спамери кои користат автоматизирани алатки за да ги додаваат нивните врски на голем број мережни страници. Иако врските на спамерот може да се отстранат, тие значително ја пореметуваат нашата работа.
+
+Понекогаш, особено кога додава нови врски на страница, викито може да ви прикаже обоен или извитоперен текст и да ви побара да ги впишете прикажаните зборови. 
+Бидејќи ова е задача која е тешко да се автоматизира, им овозможува вистинските корисници да придонесуваат, а им попречува на спамерите и другите роботски напаѓачи.
+
+Нажалост ова може да е проблем за корисници со лош вид, или оние кои користат прелистувачи на основа на текст или гласовни наредби.
+Во моментов немаме аудио-алтернатива за ова.
+Контактирајте ги [[{{MediaWiki:Grouppage-sysop}}|администраторите на страната]] за помош доколку ова неочекувано ве спречува во правењето на искрени придонеси. 
+
+Кликнете на копчето „назад“ во вашиот прелисувач за да се вратите на уредувањето на страницата.',
+	'captcha-addurl-whitelist' => '  #<!-- leave this line exactly as it is --> <pre>
+# Опис на синтаксата:
+#  * Сето она што стои по знакот „#“, па до крајот на редот е коментар
+#  * Секој непразен ред се смета за фрагмент од регуларен израз кој одговара само на имиња во URL адреси
+  #</pre> <!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'Изведување на акции кои повикуваат captcha без да одат преку captcha системот',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'captcha-edit' => 'ഈ താള്‍ തിരുത്തുവാന്‍, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'captcha-desc' => 'ലളിതമായ CAPTCHA നടപ്പിലാക്കല്‍',
-	'captcha-addurl' => 'താങ്കളുടെ തിരുത്തലലില്‍ പുറം കണ്ണികള്‍ ഉള്‍പ്പെട്ടിരിക്കുന്നു.
-യാന്ത്രിക സ്പാമിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'captcha-badlogin' => 'യാന്ത്രിക രഹസ്യവാക്ക് പൊളിക്കലിനെതിരായുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'captcha-createaccount' => 'യാന്ത്രിക അക്കൗണ്ട് സൃഷ്ടിക്കലിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'captcha-createaccount-fail' => 'അസാധുവായതോ കാണ്‍‌മാനില്ലാത്തതോ ആയ സ്ഥിരീകരണ കോഡ്.',
-	'captcha-create' => 'ഈ താള്‍ സൃഷ്ടിക്കുവാന്‍, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന കൂട്ടല്‍ ക്രിയയുടെ ഉത്തരം താഴെയുള്ള പെട്ടിയില്‍ എഴുതുക  ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍ക്ക്]]):',
-	'captchahelp-title' => 'CAPTCHA സഹായം',
-	'captchahelp-cookies-needed' => 'ഇതു പ്രവര്‍ത്തിക്കണമെങ്കില്‍ താങ്കളുടെ ബ്രൗസറില്‍ കുക്കികള്‍ സജ്ജീകരിച്ചിരിക്കണം.',
-	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
+	'captcha-edit' => 'ഈ താൾ തിരുത്തുവാൻ, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'captcha-desc' => 'പാഴെഴുത്ത് ഉൾപ്പെടുത്തലിനും രഹസ്യവാക്ക് ഊഹിക്കലിനുമെതിരെ സംരക്ഷണം തരുന്ന കാപ്ച സംവിധാനം നൽകുന്നു',
+	'captcha-addurl' => 'താങ്കളുടെ തിരുത്തലലിൽ പുറം കണ്ണികൾ ഉൾപ്പെട്ടിരിക്കുന്നു.
+യാന്ത്രിക സ്പാമിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'captcha-badlogin' => 'യാന്ത്രിക രഹസ്യവാക്ക് പൊളിക്കലിനെതിരായുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'captcha-createaccount' => 'യാന്ത്രിക അംഗത്വം സൃഷ്ടിക്കലിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിത ക്രിയ ചെയ്ത് അതിന്റെ ഉത്തരം താഴെയുള്ള പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'captcha-createaccount-fail' => 'തെറ്റായതോ ലഭ്യമല്ലാത്തതോ ആയ സ്ഥിരീകരണ കോഡ്.',
+	'captcha-create' => 'ഈ താൾ സൃഷ്ടിക്കുവാൻ, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന കൂട്ടൽ ക്രിയയുടെ ഉത്തരം താഴെയുള്ള പെട്ടിയിൽ എഴുതുക  ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'captcha-sendemail' => 'യാന്ത്രികമായ പാഴെഴുത്ത് ഉൾപ്പെടുത്തലിനുള്ള പ്രതിരോധമെന്ന നിലയിൽ, ദയവായി താഴെ കൊടുത്തിരിക്കുന്ന ലഘു ഗണിതപ്രശ്നത്തിന്റെ ഉത്തരം പെട്ടിയിൽ എഴുതുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'captcha-sendemail-fail' => 'തെറ്റായതോ ലഭ്യമല്ലാത്തതോ ആയ സ്ഥിരീകരണ കോഡ്.',
+	'captcha-disabledinapi' => 'ഈ പ്രവൃത്തി പൂർണ്ണമാകാൻ കാപ്ച ആവശ്യമാണ്, അതുകൊണ്ടിത് എ.പി.ഐ. ഉപയോഗിച്ച് ചെയ്യാൻ കഴിയില്ല.',
+	'captchahelp-title' => 'കാപ്ച്ച സഹായം',
+	'captchahelp-cookies-needed' => 'ഇതു പ്രവർത്തിക്കണമെങ്കിൽ താങ്കളുടെ ബ്രൗസറിൽ കുക്കികൾ സജ്ജീകരിച്ചിരിക്കണം.',
+	'captchahelp-text' => "ഈ വിക്കിപോലെ പൊതുജനങ്ങളിൽ നിന്നും പ്രസിദ്ധപ്പെടുത്തലുകൾ സ്വീകരിക്കുന്ന വെബ്‌‌സൈറ്റുകൾ, സ്വയം പ്രവർത്തിക്കുന്ന ഉപകരണങ്ങൾ ഉപയോഗിച്ച് കണ്ണികളും മറ്റും പ്രസിദ്ധപ്പെടുത്തുന്ന സ്പാമർമാർ സാധാരണ ദുരുപയോഗം ചെയ്യാറുണ്ട്.
+ഇത്തരത്തിലുള്ള സ്പാം കണ്ണികൾ നീക്കംചെയ്യപ്പെട്ടുപോകുമെങ്കിലും, അവ ശരിക്കും ശല്യമാണ്.
+
+ചിലപ്പോൾ, പ്രത്യേകിച്ച് ഒരു വെബ് കണ്ണി താളിൽ കൂട്ടിച്ചേർക്കുമ്പോൾ, നിറങ്ങൾ ചേർത്തതോ വികലമാക്കിയതോ ആയ എഴുത്തുകൾ താങ്കളെ കാണിച്ച് അവ താങ്കളോട് ടെപ്പ് ചെയ്യാൻ വിക്കി ആവശ്യപ്പെടാം.
+ഇത് മനുഷ്യസഹായമില്ലാതെ ചെയ്യാൻ ബുദ്ധിമുട്ടാണ്, അതുകൊണ്ട് ശരിക്കും മനുഷ്യരായിട്ടുള്ളവർക്ക് അവരുടെ പ്രസിദ്ധപ്പെടുത്തലുകൾ ചേർക്കാനും അതേസമയം ബഹുഭൂരിപക്ഷം സ്പാമർമാരേയും യന്ത്രങ്ങളുപയോഗിച്ച് ആക്രമിക്കുന്നവരേയും തടയാനും കഴിയുന്നതാണ്.
+
+ദൗർഭാഗ്യകരമെന്നു പറയട്ടെ ഇത് ചിലപ്പോൾ ദൃഷ്ടിവൈകല്യം കൊണ്ടോ മറ്റോ എഴുത്തുകൾ മാത്രമനുവദിക്കുന്ന ബ്രൗസറുകൾ ഉപയോഗിക്കുന്നവർ, ശബ്ദം കേട്ട് മനസ്സിലാക്കുന്നവർ തുടങ്ങിയവർക്ക് ബുദ്ധിമുട്ടായേക്കാം.
+ഇപ്പോൾ ഞങ്ങൾക്ക് ഇതിനു പകരം ശബ്ദം നൽകുന്ന സംവിധാനമില്ല.
+
+ഇത് ന്യായമായ പ്രസിദ്ധപ്പെടുത്തലുകൾ ഇടുന്നതിൽ നിന്നും അപ്രതീക്ഷിതമായി താങ്കളെ തടയുന്നുവെങ്കിൽ ദയവായി [[{{MediaWiki:Grouppage-sysop}}|സൈറ്റിന്റെ കാര്യനിർവാഹകരെ]] ബന്ധപ്പെടുക.
+
+ബ്രൗസറിലെ 'ബാക്ക്' ബട്ടൺ ഞെക്കിയാൽ താങ്കൾക്ക് താൾ തിരുത്തുവാനുള്ള സംവിധാനത്തിലേയ്ക്ക് മടങ്ങിപ്പോകാവുന്നതാണ്.",
+	'captcha-addurl-whitelist' => ' #<!-- ഈ വരി ഇതുപോലെ തന്നെ നിലനിർത്തുക --> <pre>
 # സിന്റാക്സ് താഴെ കാണുന്ന പ്രകാരമാണ്‌:
-#  * "#" എന്ന അക്ഷരത്തില്‍ തുടങ്ങുന്ന എല്ലാ വരികളും കുറിപ്പുകളായിരിക്കും
-#  * Every non-blank line is a regex fragment which will only match hosts inside URLs
-  #</pre> <!-- leave this line exactly as it is -->',
+#  * "#" എന്ന അക്ഷരത്തിൽ തുടങ്ങുന്ന എല്ലാ വരികളും കുറിപ്പുകളായിരിക്കും
+#  * ശൂന്യമല്ലാത്ത എല്ലാ വരികളും യു.ആർ.എല്ലിനു അകത്തെ ഹോസ്റ്റുകളുമായി മാത്രം ഒത്തുനോക്കുന്ന റെജെക്സ് ഘടകങ്ങളായിരിക്കും
+  #</pre> <!-- ഈ വരി ഇതുപോലെ തന്നെ നിലനിർത്തുക -->',
+	'right-skipcaptcha' => 'കാപ്ച ഉപയോഗിക്കേണ്ട പ്രവൃത്തികൾ കാപ്ചയിലൂടെ കടന്നു പോകാതെ തന്നെ ചെയ്യാൻ കഴിയുക',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'captcha-createaccount' => 'Автоматаар хэрэглэгчийн бүртгэл үүсгэхээс сэргийлэхийн тулд дараах хялбар нийлбэрийг бодож хайрцагт хариуг нь оруулна уу
+([[Special:Captcha/help|дэлгэрэнгүй мэдээлэл]]):',
+	'captcha-createaccount-fail' => 'Баталгаажуулах код алдаатай, эсвэл байхгүй байна.',
+	'captchahelp-title' => 'Captcha-н талаар тусламж',
+	'captchahelp-cookies-needed' => 'Үүнийг ажиллуулахын тулд та вэб хөтөчийнхөө күүкиг идэвхижүүлэх хэрэгтэй.',
+	'captchahelp-text' => 'Энэ вики шиг хүссэн хүн болгон засварлах боломжтой вэбсайтуудад спаммерууд янз бүрийн сайтын холбоосыг автоматаар олноор нь оруулдаг.
+Эдгээр спам холбоосуудыг устгах боломжтой ч маш их төвөг учирдаг.
+
+Заримдаа, ялангуяа шинэ вэб холбоосууд оруулж байх үед, вики нь өнгөт буюу мушгирсан бичиг гаргаж таныг энэ бичгийг шивж оруул гэдэг.
+Энэ үйлдлийг автоматаар хийх нь хэцүү учраас жинхэнэ хүмүүс өөрсдийн засваруудыг оруулах боломж олгодог ч спаммерүүд болоод автомат халдлага үйлдэгчдийг зогсоож байдаг.
+
+Харамсалтай нь хараа муутай буюу бичигт эсвэл ярианд тулгуурласан вэб хөтөч ашигладаг хэрэглэгчдэд хүндрэл учирна.
+Одоогийн байдлаар дуун сонголт алга байна.
+Таньд бодит засвар хийхэд хүндрэл учирч байвал [[{{MediaWiki:Grouppage-sysop}}|сайтын администраторуудаас]] тусламж авч холбогдоно уу.
+
+Хуудасны засварлагч руу буцахын тулд вэб хөтөчийнхөө "буцаах" товч дээр дарна уу.',
+);
+
 /** Marathi (मराठी)
  * @author Kaustubh
+ * @author Mahitgar
+ * @author V.narsikar
  */
 $messages['mr'] = array(
 	'captcha-edit' => 'हे पान संपादित करण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
-	'captcha-desc' => 'सोप्या कॅप्टचाचा वापर',
+	'captcha-desc' => 'उत्पात आणि परवलीच्या शब्दांच्या चोरी पासून सूरक्षीत ठेवणाऱ्या ओळखपटवा-पद्धती CAPTCHA techniques पुरवते.',
 	'captcha-addurl' => 'तुमच्या संपादनात नवीन बाह्यदुवे आहेत. आपोआप होणार्‍या स्पॅम पासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
 	'captcha-badlogin' => 'आपोआप होणार्‍या परवलीच्या शब्दाच्या चोरीपासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
 	'captcha-createaccount' => 'आपोआप होणार्‍या सदस्य नोंदणीपासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
 	'captcha-createaccount-fail' => 'चुकीचा अथवा रिकामा सहमती कोड',
 	'captcha-create' => 'हे पान तयार करण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
+	'captcha-sendemail' => 'आपोआप होणार्‍या उत्पातापासून वाचण्यासाठी, खाली दिलेले सोपे गणित सोडवून त्याचे उत्तर दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
+	'captcha-sendemail-fail' => 'चुकीचा अथवा रिकामा सहमती कोड',
+	'captcha-disabledinapi' => 'या क्रियेसाठी कॅप्चा हवी.API मार्फत हे शक्य नाही.',
 	'captchahelp-title' => 'कॅप्टचा साहाय्य',
 	'captchahelp-cookies-needed' => 'हे काम करण्यासाठी तुम्ही कूकीज (cookies) एनेबल केलेल्या असणे गरजेचे आहे.',
-	'captchahelp-text' => "ज्या संकेतस्थळांवर जसे की हा विकि, सर्वसामान्य लोकांकडून संपादने करण्याची परवानगी असते, तिथे आपोआप होणारी स्वत:च्या संकेतस्थळांचे दुवे देणारी संपादने (Spam) कायम होत असतात.
+	'captchahelp-text' => "ज्या संकेतस्थळांवर जसे की हा विकि, सर्वसामान्य लोकांकडून संपादने करण्याची परवानगी असते, तिथे आपोआप होणारी स्वत:च्या संकेतस्थळांचे दुवे देणारी उत्पात संपादने (Spam) कायम होत असतात.
 अशी संपादने जरी काढता आली तरी ती एक डोकेदुखी होऊ शकते.
 
 काहीवेळा, जेव्हा एखाद्या पानावर नवीन बाह्यदुवा देताना, विकि तुम्हाला एक चित्र दाखवून त्यांतील शब्द भरण्यास सांगू शकतो.
 हे काम संगणकाकरवी करून घेण्यास अवघड असल्याने, फक्त खरी माणसेच संपादने करू शकतील व स्पॅमर्सना आळा बसू शकेल.
 
 पण खेदाची गोष्ट अशी की ह्यामुळे अर्धांध व्यक्ती तसेच ज्या व्यक्ती फक्त मजकूर दाखविणारा न्याहाळक वापरतात, अशांना असुविधा होऊ शकते.
-सध्या आमच्याकडे आवाज ऐकण्याची सुविधा नाही. 
-कृपया विकिवरील प्रबंधकांशी या बाबतीत संपर्क करावा.
+सध्या आमच्याकडे आवाज ऐकण्याची सुविधा नाही.
+कृपया [[{{MediaWiki:Grouppage-sysop}}|संस्थळ प्रचालकांशी]]  या बाबतीत संपर्क करावा.
 
 पृष्ठ संपादनाकडे परत जाण्यासाठी आपल्या ब्राउझरची ’Back' ही कळ दाबा.",
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -1737,27 +2357,34 @@
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
  * @author Aviator
  */
 $messages['ms'] = array(
 	'captcha-edit' => 'Untuk menyunting laman ini, sila selesaikan kira-kira di bawah dan masukkan jawapannya dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
-	'captcha-desc' => 'Pelaksanaan CAPTCHA ringan',
+	'captcha-desc' => 'Menyediakan teknik CAPTCHA untuk melindungi daripada spam dan teka kata laluan',
 	'captcha-addurl' => 'Suntingan anda mengandungi pautan luar baru.
 Untuk membanteras kegiatan spam automatik, anda diminta menyelesaikan kira-kira di bawah dan masukkan jawapannya dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
 	'captcha-badlogin' => 'Untuk membanteras kegiatan meneka kata laluan secara automatik, anda diminta menyelesaikan kira-kira di bawah dan masukkan jawapannya dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
 	'captcha-createaccount' => 'Untuk membanteras kegiatan pembukaan akaun secara automatik, anda diminta menyelesaikan kira-kira di bawah dan masukkan jawapannya dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
-	'captcha-createaccount-fail' => 'Kod pengesahan salah.',
+	'captcha-createaccount-fail' => 'Kod pengesahan tidak betul atau tidak ada.',
 	'captcha-create' => 'Untuk mencipta laman tersebut, sila selesaikan kira-kira di bawah dan masukkan jawapannya dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
+	'captcha-sendemail' => 'Untuk membanteras kegiatan spam secara automatik, anda diminta menyelesaikan kira-kira di bawah dan masukkan jawapannya dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
+	'captcha-sendemail-fail' => 'Kod pengesahan tidak betul atau tidak ada.',
+	'captcha-disabledinapi' => 'Tindakan ini memerlukan captcha, maka ia tidak boleh dilakukan melalui API.',
 	'captchahelp-title' => 'Bantuan CAPTCHA',
 	'captchahelp-cookies-needed' => "Sila aktifkan ''cookies'' pada pelayar web anda.",
-	'captchahelp-text' => "Tapak web yang menerima sumbangan daripada orang awam, seperti wiki ini, adalah mudah terdedah kepada serangan spam. Biasanya, si penyerang menggunakan atur cara komputer untuk mengirim pautan-pautan ke tapak web mereka secara automatik.
+	'captchahelp-text' => "Tapak web yang menerima sumbangan daripada orang awam, seperti wiki ini, sering disalahgunakan oleh penghantar spam yang menggunakan alatan automatik untuk mengirim pautan-pautan mereka di merata web.
+Walaupun pautan ini boleh dibuang, ia amat mengganggu.
 
-Apabila anda menambah pautan baru pada sesebuah laman, wiki ini akan memaparkan sebuah imej yang mengandungi teks yang berwarna atau samar-samar dan meminta supaya anda menaip perkataan yang ditunjukkan.
-Oleh sebab tugas tersebut sukar dilakukan oleh komputer, manusia sebenar boleh mengirim seperti biasa, manakala atur cara komputer terhalang daripada melakukan serangan automatik.
+Kadangkala, terutamanya apabila menambah pautan baharu pada sesebuah laman, wiki ini akan memaparkan suatu imej yang mengandungi teks yang berwarna atau samar-samar dan meminta supaya anda menaip perkataan yang ditunjukkan.
+Oleh sebab tugas tersebut sukar dilakukan secara automatik, ia membolehkan manusia sebenar mengirim seperti biasa, manakala penghantar spam dan penyerang robot terhalang.
 
-Walau bagaimanapun, perkara ini boleh menyukarkan pengguna yang mengalami masalah penglihatan atau sedang menggunakan pelayar web teks atau tuturan. Pada masa ini kami tidak mempunyai alternatif dalam bentuk bunyi. Sila hubungi pentadbir tapak web untuk mendapatkan bantuan sekiranya perkara ini menghalang anda daripada membuat sumbangan yang sah.
+Malangnya perkara ini boleh menyukarkan pengguna yang mengalami masalah penglihatan atau sedang menggunakan pelayar web teks atau tuturan. Pada masa ini kami tidak mempunyai alternatif audio.
+Sila hubungi [[{{MediaWiki:Grouppage-sysop}}|pentadbir tapak]] untuk mendapatkan bantuan sekiranya perkara ini menghalang anda daripada membuat sumbangan yang sah.
 
-Sila tekan butang 'back' untuk kembali ke borang sunting.",
+Sila tekan butang 'back' di pelayar web anda untuk kembali ke laman suntingan.",
 	'captcha-addurl-whitelist' => ' #<!-- jangan ubah baris ini --> <pre>
 # Sintaks:
 #  * Aksara "#" sampai akhir baris diabaikan
@@ -1780,6 +2407,40 @@
 	'captcha-createaccount-fail' => 'Khak-jīn-bé chhò-gō· iah-sī làu-kau.',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Audun
+ * @author Jon Harald Søby
+ * @author Laaknor
+ * @author Nghtwlkr
+ */
+$messages['nb'] = array(
+	'captcha-edit' => 'Skriv inn summen nedenfor i boksen for å kunne redigere denne siden ([[Special:Captcha/help|mer informasjon]]):',
+	'captcha-desc' => 'Gir tilgang til CAPTCHA-teknikker for å beskytte mot søppl og passordgjetting',
+	'captcha-addurl' => 'Din redigering inneholder nye eksterne lenker. Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spam ([[Special:Captcha/help|mer informasjon]]):',
+	'captcha-badlogin' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk passordtyveri ([[Special:Captcha/help|mer informasjon]]):',
+	'captcha-createaccount' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):',
+	'captcha-createaccount-fail' => 'Ukorrekt eller manglende bekreftelseskode.',
+	'captcha-create' => 'Løs det enkle regnestykket i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):',
+	'captcha-sendemail' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spamming ([[Special:Captcha/help|mer informasjon]]):',
+	'captcha-sendemail-fail' => 'Ukorrekt eller manglende bekreftelseskode.',
+	'captcha-disabledinapi' => 'Denne handlinger krever en captcha, så den kan ikke bli gjort gjennom APIet.',
+	'captchahelp-title' => 'Hjelp med Captcha',
+	'captchahelp-cookies-needed' => 'Du må slå på informasjonskapsler for at dette skal fungere.',
+	'captchahelp-text' => "Internettsider som kan redigeres av alle, som denne wikien, blir ofte misbrukt av spammere som bruker roboter for å poste massive antall lenker. Selv om slike spamlenker kan fjernes er de til stor irritasjon.
+
+Noen ganger, særlig hvis du vil legge til nye internettlenker til en side, kan wikien vise deg et bilde av en farge eller ujevn tekst og be deg skrive inn ordene som vises. Siden det er vanskelig å automatisere denne oppgaven, vil funksjonen slippe de fleste virkelige mennesker igjennom, men stoppe spammere.
+
+Dessverre finnes det i øyeblikket ikke noe audioalternativ for brukere med begrenset syn som som bruker tekst- eller talebaserte nettlesere. Vennligst kontakt [[{{MediaWiki:Grouppage-sysop}}|administratorene]] hvis denne funksjonen forhindrer deg i å foreta legitime endringer.
+
+Trykk på 'tilbake'-knappen for å komme tilbake til redigeringssiden.",
+	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
+# Syntaksen er som følger:
+#  * Alle linjer som begynner med «#» er kommentarer
+#  * Alle linjer som ikke er blanke er fragmenter av regulære uttrykk som sjekker verter i URL-er
+  #</pre> <!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'Utføre handlinger som normalt krever «captcha»-bekreftelse uten å bruke «captcha»',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -1818,6 +2479,35 @@
 	'right-skipcaptcha' => 'Överspringen vun Captchas',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'captcha-edit' => "Um disse pagina te bewarken, mö'j eers t antwoord op disse eenvoudige somme invullen ([[Special:Captcha/help|meer informasie]]):",
+	'captcha-desc' => 'Eenvoudige invoering van captcha',
+	'captcha-addurl' => 'Joew bewarking bevat nieje uutgaonde verwiezingen.
+Voer ter de bescharming tegen ongewunste reklame de somme in die hieronder steet:<br />
+([[Special:Captcha/help|Hulpe?]])',
+	'captcha-badlogin' => 'Los disse eenvoudige rekensomme op en voer t antwoord in bie t invoervienster in ter bescharming tegen t automaties kraken van wachtwoorden ([[Special:Captcha/help|meer informasie]]):',
+	'captcha-createaccount' => 'Voer ter bescharming tegen automatiese ongewunste reklame t antwoord op disse eenvoudige rekensomme in bie invoervienster ([[Special:Captcha/help|meer informatie]]):',
+	'captcha-createaccount-fail' => 'Verkeerde of ontbrekende bevestigingskode.',
+	'captcha-create' => 'Je bin n nieje pagina an t maken.
+Voer t antwoord van disse eenvoudige rekensomme in bie t invoervienster
+([[Special:Captcha/help|meer informasie]]).',
+	'captchahelp-title' => 'Lettertoetshulpe',
+	'captchahelp-cookies-needed' => 'Je mutten scheumbestaanden (cookies) an hebben staon um disse funksie te gebruken.',
+	'captchahelp-text' => "Websteeën waor iederene an kan biedragen, zo as disse {{SITENAME}}-wiki, wörden vake misbruukt deurdat der ongewunste verwiezingen op ezet wörden. Op disse wiki kunnen zokken bewarkingen makkelik weerummezet wörden, mer t nimp wel tied in beslag die aanders gebruukt kan wörden.
+
+Soms a'j nieje verwiezingen bie n pagina derop zetten, wö'j evreugen um iets over te tikken of in te vullen. Dit zörgt derveur dat der gien ongewunste verwiezingen eplaotst wörden, umdat dit allenig deur meensen edaon kan wörden en niet deur botgebrukers.
+
+(Klik op de knoppe 'terug' in joew webkieker, um weerumme te gaon naor t tekstbewarkingscharm.)",
+	'captcha-addurl-whitelist' => ' #<!-- laot disse regel zo as t is --> <pre>
+# De syntaxis is as volgt:
+#  * Alle tekste vanaof t karakter "#" tot t einde van de regels wörden ezien as opmarking
+#  * Alle regels die niet leeg bin, wörden ezien as n reguliere uutdrokking die veur delen van de domein staon.
+  #</pre> <!-- laot disse regel zo as t is -->',
+);
+
 /** Dutch (Nederlands)
  * @author SPQRobin
  * @author Siebrand
@@ -1825,14 +2515,17 @@
 $messages['nl'] = array(
 	'captcha-edit' => 'U wilt deze pagina bewerken.
 Voer het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
-	'captcha-desc' => 'Eenvoudige implementatie van captcha',
+	'captcha-desc' => 'Biedt CAPTCHA-technieken om bescherming te bieden tegen spam en het raden van wachtwoorden',
 	'captcha-addurl' => "Uw bewerking bevat nieuwe externe verwijzingen (URL's).
 Voer ter bescherming tegen geautomatiseerde spam het antwoord op de onderstaande eenvoudige som in in het invoerveld ([[Special:Captcha/help|meer informatie]]):",
 	'captcha-badlogin' => 'Los de onderstaande eenvoudige som op en voer het antwoord in het invoervenster in ter bescherming tegen het automatisch kraken van wachtwoorden ([[Special:Captcha/help|meer informatie]]):',
-	'captcha-createaccount' => 'Voer ter bescherming tegen geautomatiseerde spam het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
+	'captcha-createaccount' => 'Voer ter bescherming tegen het geautomatiseerd gebruikers aanmaken het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
 	'captcha-createaccount-fail' => 'De bevestigingscode ontbreekt of is onjuist.',
 	'captcha-create' => 'U wilt een nieuwe pagina aanmaken.
 Voer het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
+	'captcha-sendemail' => 'Voer ter bescherming tegen geautomatiseerde spam het antwoord op de onderstaande eenvoudige som in het invoervenster in ([[Special:Captcha/help|meer informatie]]):',
+	'captcha-sendemail-fail' => 'De bevestigingscode ontbreekt of is onjuist.',
+	'captcha-disabledinapi' => 'Voor deze handeling is een captcha nodig die niet afgehandeld kan worden via de API.',
 	'captchahelp-title' => 'Captcha-hulppagina',
 	'captchahelp-cookies-needed' => 'U dient in uw browser cookies ingeschakeld te hebben om dit te laten werken.',
 	'captchahelp-text' => "Websites die vrij te bewerken zijn, zoals deze wiki, worden vaak misbruikt door spammers die er met hun programma's automatisch verwijzigen op zetten naar vele websites.
@@ -1843,11 +2536,11 @@
 
 Helaas levert deze bevestiging voor gebruikers met een visuele handicap of een tekst- of spraakgebaseerde browser problemen op.
 Op het moment is er geen alternatief met geluid beschikbaar.
-Vraag assistentie van de sitebeheerders als dit proces u verhindert een nuttige bijdrage te leveren.
+Vraag assistentie van de [[{{MediaWiki:Grouppage-sysop}}|sitebeheerders]] als dit proces u verhindert een nuttige bijdrage te leveren.
 
 Klik op de knop 'terug' in uw browser om terug te gaan naar het tekstbewerkingsscherm.",
-	'captcha-addurl-whitelist' => ' #<!-- laat deze regel zoals hij is --> <pre> 
-# De syntaxis is als volgt: 
+	'captcha-addurl-whitelist' => ' #<!-- laat deze regel zoals hij is --> <pre>
+# De syntaxis is als volgt:
 #   * Alle tekst vanaf het karakter "#" tot het einde van de regels wordt gezien als opmerking
 #   * Iedere niet-lege regel is een fragment van een reguliere uitdrukking die alleen van toepassing is op hosts binnen URL\'s
  #</pre> <!-- laat deze regel zoals hij is -->',
@@ -1857,6 +2550,8 @@
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
  * @author Eirik
  * @author Frokor
+ * @author Harald Khan
+ * @author Nghtwlkr
  */
 $messages['nn'] = array(
 	'captcha-edit' => 'For å endre denne sida, ver venleg og løys det enkle reknestykket nedanfor og skriv svaret i ruta ([[Special:Captcha/help|meir informasjon]]):',
@@ -1871,48 +2566,20 @@
 	'captchahelp-text' => 'Internettsider som kan verte endra av alle, som denne wikien, vert ofte misbrukte av reklameinnleggjarar (spammarar) som nyttar bottar til å poste mange lenkjer om gongen.
 Sjølv om slike reklamelenkjer kan verte fjerna er dei til stor irritasjon.
 
-Nokre gonger, særleg viss du vil leggje til nye internettlenker til ei side, kan wikien vise deg eit bilete av ein farga eller ujamn tekst og be deg skrive inn orda som vert viste.
+Nokre gonger, særleg viss du vil leggje til nye internettlenkjer til ei side, kan wikien vise deg eit bilete av ein farga eller ujamn tekst og be deg skrive inn orda som vert viste.
 Sidan det er vanskeleg å automatisere denne oppgåva, vil funksjonen sleppe dei fleste verkelege menneska gjennom, men stoppe reklamerobotar.
 
 Diverre finst det i augeblikket ikkje noko lydalternativ for brukarar med nedsett syn som brukar tekst- eller talebaserte nettlesarar.
-Ver venleg å kontakte administratorane viss denne funksjonen hindrar deg i å gjere skikkelege endringar.
+Ver venleg å kontakte [[{{MediaWiki:Grouppage-sysop}}|administratorane]] viss denne funksjonen hindrar deg i å gjere skikkelege endringar.
 Trykk på «attende»-knappen for å kome tilbake til endringssida.',
-	'captcha-addurl-whitelist' => ' #<!-- la denne lina vere akkurat som ho er --> <pre>
+	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 # Syntaksen er slik:
 #  * Alt frå teiknet «#» til enden av lina er ein kommentar
 #  * Alle liner som ikkje er tomme er fragment av regulære uttrykk som sjekkar vertar i URL-ar
-  #</pre> <!-- la denne lina vere akkurat som ho er -->',
+ #</pre> <!-- leave this line exactly as it is -->',
 	'right-skipcaptcha' => 'Utføre handlingar som normalt krever «captcha»-stadfesting utan å bruke «captcha»',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'captcha-edit' => 'Skriv inn summen nedenfor i boksen for å kunne redigere denne siden ([[Special:Captcha/help|mer informasjon]]):',
-	'captcha-desc' => 'Enkel captcha-implementering',
-	'captcha-addurl' => 'Din redigering inneholder nye eksterne lenker. Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk spam ([[Special:Captcha/help|mer informasjon]]):',
-	'captcha-badlogin' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk passordtyveri ([[Special:Captcha/help|mer informasjon]]):',
-	'captcha-createaccount' => 'Løs det enkle regnestykket i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):',
-	'captcha-createaccount-fail' => 'Ukorrekt eller manglende bekreftelseskode.',
-	'captcha-create' => 'Løs det enkle regnestykket i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):',
-	'captchahelp-title' => 'Hjelp med Captcha',
-	'captchahelp-cookies-needed' => 'Du må slå på informasjonskapsler for at dette skal fungere.',
-	'captchahelp-text' => 'Internettsider som kan redigeres av alle, som denne wikien, blir ofte misbrukt av spammere som bruker roboter for å poste massive antall lenker. Selv om slike spamlenker kan fjernes er de til betydelig irritasjon.
-
-Noen ganger, særlig hvis du vil legge til nye internettlenker til en side, kan wikien vise deg et bilde av en farvet eller ujevn tekst og be deg skrive inn ordene som vises. Siden det er vanskelig å automatisere denne oppgaven, vil funksjonen slippe de fleste virkelige mennesker igjennom, men stoppe spammere.
-
-Dessverre finnes det i øyeblikket ikke noe audioalternativ for brukere med begrenset syn som som bruker tekst- eller talebaserte nettlesere. Vennlig kontakt administratorene hvis denne funksjonen forhindrer deg i å foreta legitime endringer.
-
-Trykk på «tilbake»-knappen for å komme tilbake til redigeringssiden.',
-	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
-# Syntaksen er som følger:
-#  * Alle linjer som begynner med «#» er kommentarer
-#  * Alle linjer som ikke er blanke er fragmenter av regulære uttrykk som sjekker verter i URL-er
-  #</pre> <!-- leave this line exactly as it is -->',
-	'right-skipcaptcha' => 'Utføre handlinger som normalt krever «captcha»-bekreftelse uten å bruke «captcha»',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
@@ -1920,25 +2587,64 @@
 	'captcha-edit' => "Per modificar aquesta pagina, vos cal efectuar lo calcul çaijós e n'inscriure lo resultat dins lo camp ([[Special:Captcha/help|Mai d’entresenhas]]) :",
 	'captcha-desc' => 'Implementacion captcha simpla',
 	'captcha-addurl' => "Vòstra modificacion inclutz de ligams URL novèla ; per empachar las connexions automatizadas, vos cal picar los mots que s’afichan dins l’imatge que seguís : <br />([[Special:Captcha/help|Qu'es aquò?]])",
-	'captcha-badlogin' => "Per ensajar de contornar las temptativas de cracatge de senhals automatizadas per de robòts, recopiatz lo tèxt çaijós dins la bóstia de tèxt plaçada al dejós d'aqueste. ([[Special:Captcha/help|Mai d’entresenhas]])",
+	'captcha-badlogin' => "Per ensajar de contornar las temptativas de cracatge de senhals automatizadas per de robòts, recopiatz lo tèxte çaijós dins la bóstia de tèxte plaçada al dejós d'aqueste. ([[Special:Captcha/help|Mai d’entresenhas]])",
 	'captcha-createaccount' => 'Coma proteccion contra las creacions de compte abusivas, entratz lo resultat de l’addicion dins la bóstia çaijós:<br />
 ([[Special:Captcha/help|mai d’entresenhas]])',
 	'captcha-createaccount-fail' => 'Còde de confirmacion mancant o erronèu.',
 	'captcha-create' => "Per modificar la pagina, vos cal de resòldre l'operacion çaijós e n'inscriure lo resultat dins lo camp ([[Special:Captcha/help|Mai d'infòs]]) :",
 	'captchahelp-title' => 'Ajuda suls Captcha',
 	'captchahelp-cookies-needed' => "Vos cal aver los cookies activats dins vòstre navigador per qu'aquò foncione.",
-	'captchahelp-text' => "Los sits webs que permeton al mai grand nombre de participar, coma aqueste wiki, sovent son atacats per de spammers qu'utilizan d'espleches automatizas per mandar lor ligams sus fòrça sits a l'encòp.
-Son fòrt aisits de suprimir mas avèm francament de causas mai risolièras de far.
+	'captchahelp-text' => "Los sites webs qu'accèptan de contribucions del public, coma aqueste wiki, sovent son atacats per de spammers qu'utilizan d'espleches automatizats per plaçar de ligams nombroses cap a de sites.
+Quitament se son de bon suprimir, demòran una noisença significativa.
 
-De còps quand apondètz de ligams novèls cap al web, lo wiki vos pòt mostrar un imatge amb un tèxt coloriat o torçut e vos demandar de lo picar. Es una tasca relativament complicada d'automatizar, çò que permet de diferenciar un uman real d'un logicial automatic malvolent.
+De còps, particularament quora apondètz de ligams extèrnes dins una pagina, lo wiki vos pòt mostrar un imatge amb un tèxte coloriat, desformat o torçut e vos demandar de picar los mots indicats.
+Aquesta tasca es complicada d'automatizar, çò que permet de diferenciar un uman real d'un logicial automatic malvolent.
 
-Malurosament, aqueste sistèma es pas adaptat a d'utilizaires mal-vesents o utilizant de navigadors textuals o àudio. Actualament, prepausem pas d'alternativas adaptadas. S'avètz besonh d'ajuda trantalhetz pas a contactar los administrators del sit. 
+Malurosament, aquesta solucion pòt geinar d'utilizaires malvesents o qu'utilizan un navigador textual o vocal.
+Dispausam pas d’alternativa àudio pel moment.
+Contactatz [[{{MediaWiki:Grouppage-sysop}}|los administrators del site]] se aquò vos empacha d'un biais imprevist de postar de contribucions legitimas.
 
-Clicatz sul boton 'precedent' de vòstre navigador per tornar a l'editor.",
+Clicatz sul boton « Precedent » de vòstre navigador per tornar a la pagina de modificacion.",
 	'captcha-addurl-whitelist' => '#<!-- daissatz aquesta linha exactament tala coma es --> <pre> # La sintaxi es la seguenta: # * Tot caractèr seguissent "#" fins a la fin de la linha serà interpretat coma un comentari # * Tota linha non voida es un còde regex que serà utilizat unicament a l\'interior dels ligams hypertext. #</pre> <!-- daissatz aquesta linha exactament tala coma es -->',
 	'right-skipcaptcha' => "Acomplís lo desenclavament de las accions de captcha sens dever passar per l'intermediari aqueste darrièr",
 );
 
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'captcha-edit' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ବଦଳାଇବା ନିମନ୍ତେ, ତଳେ ଥିବା ସହଜ ଅଙ୍କଟିର ସମାଧାନ କରନ୍ତୁ ଓ ଘରଟିରେ ଫଳାଫଳ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):',
+	'captcha-desc' => 'CAPTCHA କାରିଗରି ଉପାୟରେ ସ୍ପାମ ଓ ପାସବାର୍ଡ଼ ରକ୍ଷା କରିଥାଏ ।',
+	'captcha-addurl' => 'ଆପଣଙ୍କ ସମ୍ପାଦନାରେ ନୂଆ ବାହାର ଲିଙ୍କ ରହିଛି ।
+ଆପେଆପେ ହେଉଥିବା ସ୍ପାମର ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ଗଣିତର ସମାଧାନ କରନ୍ତୁ ଓ ତଳେ ଥିବା ଘରେ ଉତ୍ତର ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ବିବରଣୀ]]):',
+	'captcha-badlogin' => 'ଆପେଆପେ ହେଉଥିବା ପାସବାର୍ଡ଼ ଚୋରାଇବାକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ସରଳ ଗଣିତର ସମାଧାନ କରନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):',
+	'captcha-createaccount' => 'ଆପେଆପେ ହେଉଥିବା ଖାତା ଖୋଲିବାକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ସରଳ ଗଣିତର ସମାଧାନ କରି ଉତ୍ତର ଘରେ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):',
+	'captcha-createaccount-fail' => 'ନିଶ୍ଚିତ କରିବା କୋଡ଼ଟି ଭୁଲ ଅଛି ବା ମୂଳରୁ ନାହିଁ ।',
+	'captcha-create' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ତିଆରିବା ନିମନ୍ତେ, ତଳେ ଥିବା ସହଜ ଅଙ୍କଟିର ସମାଧାନ କରନ୍ତୁ ଓ ଘରଟିରେ ଫଳାଫଳ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):',
+	'captcha-sendemail' => 'ଆପେଆପେ ହେଉଥିବା ସ୍ପାମକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ତଳେ ଥିବା ସରଳ ଗଣିତର ସମାଧାନ କରି ତଳେ ଥିବା ଉତ୍ତର ବାକ୍ସରେ ଉତ୍ତର ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):',
+	'captcha-sendemail-fail' => 'ନିଶ୍ଚିତ କରିବା କୋଡ଼ଟି ଭୁଲ ଅଛି ବା ମୂଳରୁ ନାହିଁ ।',
+	'captcha-disabledinapi' => 'ଏହି କାମଟି ପାଇଁ ଏକ କ୍ୟାପଚା ଦରକାର, ଏହା API ଦେଇ କେଭେହେଁ ହୋଇପାରିବ ନାହିଁ ।',
+	'captchahelp-title' => 'CAPTCHA ସହଯୋଗ',
+	'captchahelp-cookies-needed' => 'ଏହି କାମତି କରିବା ପାଇଁ ଆପଣଙ୍କ ବ୍ରାଉଜରରେ କୁକି ସଚଳ କରିବାକୁ ପଡ଼ିବ ।',
+	'captchahelp-text' => "ଏହି ଉଇକି ପରି ଜନସାଧାରଣଙ୍କ ଠାରୁ ଲେଖା ଗ୍ରହଣ କରୁଥିବା ସାଇଟ ସବୁରେ ବହୁବାର ସ୍ପାମମାନେ ଆପେଆପେ ନିଜ ନିଜର ଉପକରଣ ମାଧ୍ୟମରେ ଅଦରକାରୀ ଲିଙ୍କମାନ ଦେଇଥାନ୍ତି ।
+ଯଦିଓ ସ୍ପାମ ଲିଙ୍କ ସବୁ ହଟାଇଦିଆଯାଇ ପାରିବ ସେସବୁ ବହୁ ଅସୁବିଧା ତିଆରି କରିଥାଏ ।
+
+ବେଳେବେଳେ, ବିଶେଷ କରି ଏକ ପୃଷ୍ଠାରେ ନୂଆ ୱେବ ଲିଙ୍କ ଦେଲାବେଳେ ଉଇକିଟି ଆପଣଙ୍କୁ ଏକ ରଙ୍ଗିନ ବା ଭଙ୍ଗାରୁଜା ଲେଖା ଦେଖାଇ ଆପଣଙ୍କୁ ତାହାକୁ ଟାଇପ କରିବାକୁ କହିଥାଏ ।
+ଯେହେତୁ ଏହି କାମକୁ ମଣିଷ ବିନା ଆପେଆପେ କରିବା ସମ୍ଭବପର ନୁହେଁ, ଏହି ବାସ୍ତବ ମଣିଷମାନଙ୍କୁ ଲେଖିବାରେ ସହଯୋଗ କରିଥାଏ ଓ ସ୍ପାମର ଓ ବାକି ରୋବଟ ଆକ୍ରମଣକୁ ପ୍ରତିହତ କରିପାରେ ।
+
+ଅପରାପକ୍ଷେ ଏହା ସୀମିତ ଦୃଷ୍ଟିଥିବା ବା ଲେଖା କିମ୍ବା କଥା କୁହ ବ୍ରାଉଜର ବ୍ୟବହାର କରୁଥିବା ସଭ୍ୟମାନଙ୍କୁ ଅସୁବିଧାରେ ପକାଇଥାଏ ।
+ଅଧୁନା ଏଠାରେ ଧ୍ୱନିଚଳିତ ବିକଳ୍ପଟିଏ ଦେଇନାହୁଁ ।
+ଆପଣଙ୍କୁ ଉପଯୁକ୍ତ ଲେଖା ଦେବାରେ ସହଯୋଗ କରିବା ନିମନ୍ତେ ଦୟାକରି [[{{MediaWiki:Grouppage-sysop}}|ସାଇଟ ପରିଛା]]ମାନଙ୍କୁ ଯୋହଗାଯୋଗ କରନ୍ତୁ ।
+
+ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଥିବା  'back' ଚିପି ପୃଷ୍ଠା ସମ୍ପାଦକକୁ ଲେଉଟିଯାନ୍ତୁ ।",
+	'captcha-addurl-whitelist' => ' #<!—ଏହି ଧାଡ଼ିଟି ଯେମିତି ଅଛି ସେମିତି ଛାଡ଼ି ଦିଅନ୍ତୁ --> <pre>
+# ତଳେ ସିଣ୍ଟାକ୍ସଟି ଦିଆଗଲା:
+#   * ଧାଡ଼ିର ଶେଷରେ "#" ଚିହ୍ନ ଦିଆଥିବା ସବୁକିଛି ଏକ ମତାମତ
+#   * ପ୍ରତିଟି ଅଣ-ଖାଲି ଧାଡ଼ି ଏକ regex ଖଣ୍ଡ ଯାହା କେବଳ URL ବାହାରେ ଥିବା ହୋଷ୍ଟ ମାନଙ୍କ ସଙ୍ଗେ ମେଲ ଖାଇଥାଏ
+ #</pre> <!-- ଏହି ଧାଡ଼ିଟି ଯେମିତି ଅଛି ସେମିତି ଛାଡ଼ି ଦିଅନ୍ତୁ -->',
+	'right-skipcaptcha' => 'CAPTCHA ଭିତରେ ନଯାଇ CAPTCHA ଦେଇ ସଞ୍ଚାଳିତ କାମ କରିବେ',
+);
+
 /** Pampanga (Kapampangan) */
 $messages['pam'] = array(
 	'captcha-createaccount' => 'Bang ala na kabud laltong account, pakipakibatan me ing papacuenta ra king lalam at ibili me ing pakibat ketang cahun ([[Special:Captcha/help|more info]]):',
@@ -1954,6 +2660,13 @@
 Timid me ing 'back' button king kekang browser bang mibalik ketang panaliling bulung (page editor).",
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'captchahelp-title' => 'Captcha-Hilf',
+);
+
 /** Polish (Polski)
  * @author Derbeth
  * @author Leinad
@@ -1961,24 +2674,26 @@
  */
 $messages['pl'] = array(
 	'captcha-edit' => 'Możesz edytować tę stronę, jednak najpierw musisz rozwiązać poniższe proste działanie matematyczne i wpisać wynik do pola tekstowego ([[Special:Captcha/help|pomoc]]):',
-	'captcha-desc' => 'Proste zabezpieczenie przed automatami',
+	'captcha-desc' => 'Dodaje CAPTCHA – zabezpieczenie przed spamującymi automatami oraz odgadywaniem haseł',
 	'captcha-addurl' => 'Dodałeś nowe linki zewnętrzne. Ze względu na ochronę przed zautomatyzowanym spamem musisz wykonać proste działanie matematyczne i wpisać wynik w pole obok ([[Special:Captcha/help|więcej informacji]]):',
 	'captcha-badlogin' => 'Zabezpieczenie przed automatycznym łamaniem haseł. Wpisz w pole poniżej wynik prostego działania matematycznego ([[Special:Captcha/help|pomoc]]).',
 	'captcha-createaccount' => 'Zabezpieczenie przed automatycznie dodawanym spamem. Wpisz w pole poniżej wynik prostego działania matematycznego ([[Special:Captcha/help|pomoc]]).',
 	'captcha-createaccount-fail' => 'Nieprawidłowy kod lub brak kodu potwierdzającego.',
 	'captcha-create' => 'Aby utworzyć stronę wykonaj proste działanie i wpisz wynik w pole tekstowe ([[Special:Captcha/help|pomoc]]):',
+	'captcha-sendemail' => 'Zabezpieczenie przed automatycznym spamem. Wpisz w pole poniżej wynik prostego dodawania ([[Special:Captcha/help|więcej informacji]]).',
+	'captcha-sendemail-fail' => 'Nieprawidłowy lub brak kodu potwierdzającego.',
+	'captcha-disabledinapi' => 'Ta czynność wymaga potwierdzenia capcha i z tego względu nie może być przeprowadzona z użyciem API.',
 	'captchahelp-title' => 'Pomoc dla ochrony antyspamowej',
 	'captchahelp-cookies-needed' => 'Musisz mieć włączone w przeglądarce ciasteczka (cookies), aby ta opcja działała.',
 	'captchahelp-text' => 'Strony internetowe akceptujące edycje dokonywane przez każdego, tak jak ta wiki, są często atakowane przez spamerów, którzy używają automatycznych narzędzi, aby dodawać linki prowadzące do ich stron.
-Chociaż te linki mogą być usunięte, jest to uciążliwe.
+Chociaż te linki mogą zostać usunięte, jest to uciążliwe.
 
 Czasami, zwłaszcza przy dodawaniu nowych linków do strony albo przy rejestracji, wiki może pokazać obrazek z kolorowym lub zniekształconym tekstem i poprosić Cię o przepisanie zamieszczonego na nim wyrazu.
-Może pojawić się też prośba o wpisanie wyniku prostego działania matematycznego.
-Ponieważ są to zadania trudne do zautomatyzowania, takie zabezpieczenia nie uniemożliwia większości ludziom dokonywania edycji, jednocześnie skutecznie powstrzymując większość spamerów i inne automatyczne ataki.
+Ponieważ są to zadania trudne do zautomatyzowania, takie zabezpieczenia umożliwia ludziom dokonywania edycji, jednocześnie skutecznie powstrzymując większość spamerów i inne automatyczne ataki.
 
 Niestety, może być to niewygodne dla użytkowników z wadą wzroku lub używających przeglądarek tekstowych lub głosowych.
 Obecnie nie mamy alternatywnego rozwiązania audio.
-Skontaktuj się z administratorami strony by uzyskać pomoc, jeśli nie możesz z tego powodu dokonywać uprawnionych edycji.
+Skontaktuj się z [[{{MediaWiki:Grouppage-sysop}}|administratorami strony]] by uzyskać pomoc, jeśli nie możesz z tego powodu dokonywać uprawnionych edycji.
 
 Wciśnij przycisk „wstecz” w przeglądarce by powrócić do edycji strony.',
 	'captcha-addurl-whitelist' => ' #<!-- nie modyfikuj tej linii --> <pre>
@@ -1990,11 +2705,14 @@
 );
 
 /** Piedmontese (Piemontèis)
+ * @author Borichèt
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
-	'captcha-edit' => "Për fe-ie dle modìfiche ansima a st'artìcol-sì, për piasì ch'a fasa ël total ambelessì sota 
+	'captcha-edit' => "Për fe-ie dle modìfiche ansima a st'artìcol-sì, për piasì ch'a fasa ël total ambelessì sota
 e ch'a buta l'arzulta ant ël quadrèt ([[Special:Captcha/help|për savejne dë pì]]):",
+	'captcha-desc' => "A dà dle técniche CAPTCHA për protege contra la rumenta e ij tentativ d'andviné la ciav",
 	'captcha-addurl' => "Soa modìfica a la gionta dj'anliure esterne. Për giutene a vardesse da la reclam aotomatisà, për piasì ch'a fasa ël total ambelessì sota e ch'a buta l'arzultà ant ël quadrèt ([[Special:Captcha/help|për savejne dë pì]]):",
 	'captcha-badlogin' => "Për giutene a vardesse da 'nt ij programa ch'a fan ciav fàosse n'aotomàtich, për piasì ch'a fasa ël total ambelessì sota e ch'a buta l'arzultà ant ël quadrèt ([[Special:Captcha/help|për savejne dë pì]]):",
 	'captcha-createaccount' => "Për giutene a vardesse da ij programa ch'a deurbo dij cont n'aotomàtich, për piasì ch'a fasa ël total ambelessì sota
@@ -2002,13 +2720,16 @@
 	'captcha-createaccount-fail' => "Ël còdes ëd verìfica ò ch'a manca d'autut ò ch'a l'é pa bon.",
 	'captcha-create' => "Për creé d'amblé sta pàgina-sì, për piasì ch'a fasa ël total ambelessì sota e ch'a buta l'arzultà<br />
 ant ël quadrèt ([[Special:Captcha/help|për savejne dë pì]]):",
+	'captcha-sendemail' => "Për giuté a protegi contra la rumenta automàtica, për piasì ch'a fasa l'adission sempia sì-sota e ch'a buta l'arspòsta ant la casela ([[Special:Captcha/help|për savèjne ëd pi]]):",
+	'captcha-sendemail-fail' => "Ël còdes ëd verìfica ò ch'a manca d'autut ò ch'a l'é pa bon.",
+	'captcha-disabledinapi' => "St'assion-sì a ciama na captcha, parèj a peul pa esse fàita con na API.",
 	'captchahelp-title' => 'Còs é-lo mai ës captcha?',
 	'captchahelp-cookies-needed' => "Për podej dovré sossì a l'ha da manca che sò navigator (browser) a pija ij cookies.",
 	'captchahelp-text' => "Soèns a-i riva che ij sit dla Ragnà che la gent a peul dovré për ëscrive chèich-còs, coma sta wiki-sì, a resto ambërlifà ëd reclam da màchine che a carìo soa ròba dadsà e dadlà n'aotomàtich. Për tant che sta reclam un a peula peuj gavela, a resta sempe un gran fastudi.
 
 Dle vire, dzortut quand un a caria dj'anliure esterne neuve ansime a na pàgina, la wiki a peul ësmon-je na figurin-a con dël test colora ò pura tut ëstòrt e ciameje d'arbate lòn ch'a-i é scrit andrinta. Da già ch'a l'é grama scrive un programa ch'a lo fasa, a ven che la pì gran part dla gent a-i la fa a scrive, ma la ói part dle màchine a-i la fa pa.
 
-Për maleur sossì a peul fastudié j'uetnt ch'a ës-ciàiro nen tant bin, col ch'a dòvro dij navigator mach a test ò pura dij navigator vocaj. Për adess i l'oma nen n'altërnativa disponibila ch'a fasa lese ël test a vos. Për piasì, ch'a contata j'aministrator dël sit se sossì a dovèissa mai nen lasseje carié dël test ch'a sia legitim (visadì, nen dla reclam).
+Për maleur sossì a peul fastudié j'uetnt ch'a ës-ciàiro nen tant bin, col ch'a dòvro dij navigator mach a test ò pura dij navigator vocaj. Për adess i l'oma nen n'altërnativa disponibila ch'a fasa lese ël test a vos. Për piasì, ch'a contata j'[[{{MediaWiki:Grouppage-sysop}}|aministrator dël sit]] se sossì a dovèissa mai nen lasseje carié dël test ch'a sia legitim (visadì, nen dla reclam).
 
 Ch'a-i bata ansima al boton 'andré' ant sò navigator për torné andré a l'editor dla pàgina.",
 	'captcha-addurl-whitelist' => " #<!-- leave this line exactly as it is --> <pre>
@@ -2016,75 +2737,124 @@
 #  * tut lòn ch'a-i ven dapress a un caràter \"#\" (fin-a a la fin dla riga) a l'é mach ëd coment
 #  * minca riga nen veujda a l'é un frament d'espression regolar ch'as dòvra për identifiché j'adrësse dle màchine servente ant j'anliure
   #</pre> <!-- leave this line exactly as it is -->",
+	'right-skipcaptcha' => "A fà j'assion che a ativo la captcha sensa avèj da passé da la captcha",
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'captcha-edit' => 'اس صفحے نوں تبدیل کرن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'captcha-desc' => 'کیپچا ول سپام تے کنجی اندازے توں بچن لئی دیندا اے۔',
+	'captcha-addurl' => 'تواڈی تبدیلی چ نویں بارلے جوڑ نیں۔
+اس صفحے نوں تبدیل کرن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'captcha-badlogin' => 'اپنے آپ کنجی توڑن دے خلاف مدد واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'captcha-createaccount' => 'اپنے آپ غلط نویں کھاتے بنان نوں روکن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'captcha-createaccount-fail' => 'غلط کنفرمیشن کوڈ۔',
+	'captcha-create' => 'اس صفحے نوں بنان واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'captcha-sendemail' => 'اپنے آپ غلط مال آن نوں روکن واسطے، مہربانی کر کے اے سادہ جۓ سوال نوں حل کر کے ڈبے چ جواب لکھ دیو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'captcha-sendemail-fail' => 'غلط یا  چھوٹے کنفرمیشن کوڈ',
+	'captcha-disabledinapi' => 'ایس کم لئی کیپچا چائیدا اے، ایس لئی ایہ اے پی آئی نال نئیں چل سکدا۔',
+	'captchahelp-title' => 'کیپچا مدد',
+	'captchahelp-cookies-needed' => 'توانوں اپنے براؤزر چ ککیاں چلانیاں پین گیاں ایس نوں چلان لئی۔',
+	'captchahelp-text' => 'ویب سائیٹاں  جیہڑیاں لوکاں کولوں ڈاک لیندیاں نیں  جیویں ایہ وکی، ایناں تے خراب ڈاک پیجن والے ہلے بولدے ریندے نیں تے کئی سائیٹاں دے جوڑ جوڑدے ریندے نیں۔ ایہ سپام جوڑ ہٹاۓ جاسکدے نیں پر ایہ اک رپھڑ تے ہے نیں۔
+
+کدے کدے، خاص طور تے کسے صفے نال نویں ویب جوڑ جوڑدیاں ہویاں، وکی توانوں اک رنگ والی یا خراب لکھت دسدا اے  تے توانوں پچھدا اے جے ٹائپ ہویا بول لکھو۔
+اے کم ایسا اے جیہڑا چلانا اوکھا اے، اے چوکھے سارے لوکاں نوں اپنی ڈاک پیجن دیوے گا تے سپامراں نوں روک دیوے گا،
+
+بدقسمستی نال اے تھوڑی سوچ رکھن والے ورتنوالیاں  یا لکھت ورتن والے یا گل بات والے براؤزر نوں چنگا ناں لگے۔
+ایس ویلے ساڈے کول ایدے تھاں تے ورتیا جان والا آڈیو نئیں۔ مہربانی کرکے  [[{{MediaWiki:Grouppage-sysop}}|site administrators]] نال ملو مدد لئی اگ ایہ اچانک تواڈی ٹھیک ڈاک نوں روکدا اے۔
+بیک بٹن نوں دباؤ اپنے براؤزر چ صفہ لکھاری تک اپڑن لئی۔',
+	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
+# Syntax is as follows:
+#   * Everything from a "#" character to the end of the line is a comment
+#   * Every non-blank line is a regex fragment which will only match hosts inside URLs
+ #</pre> <!-- leave this line exactly as it is -->',
+	'right-skipcaptcha' => 'کیپچا ٹورن والے کم کیپچا چوں گۓ بنا کرو۔',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
 	'captcha-create' => 'ددې لپاره چې نوی ليکنه ترسره کړی، لطفاً د همدغه ساده شمېرو ځواب په ورکړ شوي چوکاټ کې وليکی ([[Special:Captcha/help|نور مالومات]]):',
+	'captchahelp-title' => 'CAPTCHA لارښود',
 	'captchahelp-cookies-needed' => 'ددې کړنې د ترسره کېدلو لپاره تاسو ته پکار ده چې د خپل کتنمل (browser) کوکيز (cookies) چارن کړی.',
 );
 
 /** Portuguese (Português)
  * @author 555
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'captcha-edit' => 'Para editar esta página será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])',
-	'captcha-desc' => 'Uma implementação simples de um sistema captcha',
-	'captcha-addurl' => 'Sua edição inclui novas ligações externas; como prevenção contra sistemas automatizados que inserem spam, será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])',
-	'captcha-badlogin' => 'Como prevenção contra formas automatizadas de pesquisa e descoberta de senhas, será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])',
-	'captcha-createaccount' => 'Como prevenção contra sistemas automatizados que inserem spam, será necessário que você digite as palavras exibidas na seguinte imagem para que possa se cadastrar:<br />
-([[Special:Captcha/help|O que é isto?]])',
+	'captcha-edit' => 'Para editar esta página, por favor, resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):',
+	'captcha-desc' => 'Fornece técnicas CAPTCHA para protecção contra spam e tentativas de adivinhar a palavra-chave',
+	'captcha-addurl' => "A sua edição introduziu links externos novos.
+Como prevenção contra sistemas automatizados de inserção de ''spam'', resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):",
+	'captcha-badlogin' => 'Como prevenção com sistemas automatizados de descoberta de palavras-chave, resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):',
+	'captcha-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):',
 	'captcha-createaccount-fail' => 'Código incorreto ou não preenchido.',
-	'captcha-create' => 'Como prevenção contra sistemas automatizados que inserem spam, será necessário que você digite as palavras exibidas na seguinte imagem no box apropriado ([[Special:Captcha/help|o que é isto?]])',
-	'captchahelp-title' => 'Ajuda com o Captcha',
-	'captchahelp-cookies-needed' => 'Você precisará ter cookies habilitados em seu navegador para que possa funcionar',
-	'captchahelp-text' => "Sítios abertos a inserções públicas, como é o caso deste wiki, são vulneráveis a spammers que utilizem ferramentas automatizadas para inserir seus links em diversos locais. Remover tais links posteriormente poderá ser um significativo incômodo.
+	'captcha-create' => 'Para criar a página, resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):',
+	'captcha-sendemail' => "Como prevenção contra sistemas automatizados de inserção de ''spam'', resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):",
+	'captcha-sendemail-fail' => 'Código de confirmação incorrecto ou não preenchido.',
+	'captcha-disabledinapi' => 'Esta operação necessita de captcha, por isso não pode ser realizada através da API.',
+	'captchahelp-title' => 'Ajuda sobre o CAPTCHA',
+	'captchahelp-cookies-needed' => "É necessário possibilitar o uso de ''cookies'' no seu browser para que o ''captcha'' funcione.",
+	'captchahelp-text' => "Sites na internet abertos a edição pública, como é o caso desta wiki, são frequentemente abusados por ''spammers'' que utilizam ferramentas automatizadas para inserção em massa de links, em muitos sites.
+Embora esses links possam ser removidos, representam um incómodo significativo.
 
-Algumas vezes, especialmente ao adicionar novos links externos em uma página, o sistema exibirá uma imagem com um texto colorido ou distorcido e pedirá que você digite as palavras exibidas. Uma vez que essa é uma tarefa um tanto difícil de ser automatizada, ela possibilita que vários humanos façam as suas inserções ao mesmo tempo que inibe as que forem feitas por spammers e mecanismos automatizados.
+Por vezes, especialmente quando introduzir links externos novos numa página, a wiki apresentará a imagem de um texto colorido ou distorcido e pedirá que escreva o texto apresentado.
+Porque a interpretação do texto apresentado nas imagens é uma tarefa difícil de automatizar, este pedido feito pela wiki permite que a maioria das pessoas façam as suas edições, ao mesmo tempo que inibe edições feitas por ''spammers'' e outros mecanismos automatizados.
 
-Infelizmente, isso pode ser dificultoso a utilizadores com limitações visuais ou que naveguem através de  mecanismos baseados em texto ou baseados em voz. No momento não há uma alternativa em áudio. Por gentileza, contacte os administradores do sítio em casos que seja necessária a assistência de alguém para que você possa fazer as suas inserções legítimas.
+Infelizmente, esta funcionalidade pode revelar-se um inconveniente para utilizadores com limitações visuais ou que utilizam browsers baseados em texto ou voz.
+Neste momento, não temos disponível uma alternativa em áudio.
+Por favor, contacte os [[{{MediaWiki:Grouppage-sysop}}|administradores]] para assistência, caso a funcionalidade esteja a impedi-lo de fazer edições legítimas.
 
-Pressione o botão 'voltar' de seu navegador para retornar à página de edição.",
-	'captcha-addurl-whitelist' => ' #<!-- deixe este linha exactamente como está --> <pre>
-# A sintaxe é a que se segue:
-#  * Tudo desde o caracter "#" até ao fim da linha é um comentário
-#  * Qualquer linha não vazia é um fragmento de regex que irá apenas verificar o servidor anfitrião dentro das URLs
-  #</pre> <!-- deixe este linha exactamente como está -->',
-	'right-skipcaptcha' => 'Executar acções despoletadoras de captcha sem ter que passar pelo captcha',
+Clique o botão 'voltar' do seu browser para voltar à página de edição.",
+	'captcha-addurl-whitelist' => ' #<!-- deixe esta linha exactamente como está --> <pre>
+# A sintaxe é a seguinte:
+#  * Tudo desde um símbolo de cardinal (#) até ao fim da linha é um comentário
+#  * Qualquer linha que não esteja em branco é um fragmento de expressão regular (regex) que será comparado com o servidor das URLs
+ #</pre> <!-- deixe esta linha exactamente como está -->',
+	'right-skipcaptcha' => "Executar acções despoletadoras do CAPTCHA' sem ter de passar pelo CAPTCHA",
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Giro720
+ * @author Jesielt
  */
 $messages['pt-br'] = array(
 	'captcha-edit' => 'Para editar esta página será necessário que você resolva a simples soma abaixo e entre com a resposta no respectivo campo ([[Special:Captcha/help|o que é isto?]])',
-	'captcha-desc' => 'Uma implementação simples de um sistema captcha',
+	'captcha-desc' => 'Fornece técnicas captcha para proteção contra spam e tentativas de obtenção de senhas',
 	'captcha-addurl' => 'Sua edição inclui novas ligações externas.
 Para prevenção contra sistemas automatizados que inserem spam, será necessário que você resolva a simples soma abaixo e entre com a resposta no respectivo campo ([[Special:Captcha/help|o que é isto?]])',
 	'captcha-badlogin' => 'Como prevenção contra sistemas automatizados de pesquisa e descoberta de senhas, será necessário que você resolva a simples soma abaixo e entre com a resposta no respectivo campo ([[Special:Captcha/help|o que é isto?]])',
 	'captcha-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, por favor resolva a simples soma abaixo e entre com a resposta no respectivo campo ([[Special:Captcha/help|O que é isto?]]):',
 	'captcha-createaccount-fail' => 'Código de confirmação incorreto ou não preenchido.',
 	'captcha-create' => 'Para criar a página, por favor resolva a simples soma abaixo e entre com a resposta no respectivo campo ([[Special:Captcha/help|o que é isto?]])',
+	'captcha-sendemail' => "Para ajudar a prevenir o ''spam'' automatizado, por favor, resolva a soma simples apresentada abaixo e introduza a resposta na caixa ([[Special:Captcha/help|mais informações]]):",
+	'captcha-sendemail-fail' => 'Código de confirmação incorreto ou não preenchido.',
+	'captcha-disabledinapi' => 'Esta operação necessita de captcha, por isso não pode ser realizada através da API.',
 	'captchahelp-title' => 'Ajuda com o Captcha',
 	'captchahelp-cookies-needed' => 'Você precisa ter cookies habilitados em seu navegador para que possa funcionar',
-	'captchahelp-text' => "Sítios abertos a inserções públicas, como é o caso deste wiki, são vulneráveis a abusos por spammers que utilizam ferramentas automatizadas para inserir seus links em diversos locais. 
-Apesar de remover tais links posteriormente ser possível, eles são um significativo incômodo.
+	'captchahelp-text' => "Sites abertos a inserções públicas, como é o caso desta wiki, são vulneráveis a spammers que utilizam ferramentas automatizadas para inserir seus links em diversos locais.
+Remover tais ligações posteriormente pode ser um incômodo significativo.
 
-Algumas vezes, especialmente ao adicionar novos links externos em uma página, o sistema exibirá uma imagem com uma imagem de um texto colorido ou distorcido e pedirá que você digite as palavras exibidas. 
-Uma vez que essa é uma tarefa um tanto difícil de ser automatizada, ela possibilita que vários humanos façam as suas inserções ao mesmo tempo que inibe as que forem feitas por spammers e mecanismos automatizados.
+Algumas vezes, especialmente ao adicionar novas ligações externas a uma página, o wiki exibirá uma imagem com um texto colorido ou distorcido e pedirá que você introduza as palavras exibidas.
+Uma vez que essa é uma tarefa um tanto difícil de ser automatizada, ela possibilita que a maioria dos humanos faça as suas inserções ao mesmo tempo que inibe as que forem feitas por spammers e mecanismos automatizados.
 
-Infelizmente, isso pode ser dificultoso a utilizadores com limitações visuais ou que naveguem através de mecanismos baseados em texto ou baseados em voz. No momento não há uma alternativa em áudio. 
-Por gentileza, contacte os administradores do sítio em casos que seja necessária a assistência de alguém para que você possa fazer as suas inserções legítimas.
+Infelizmente, isso pode ser um inconveniente para usuários com limitações visuais ou que naveguem através de mecanismos baseados em texto ou baseados em voz.
+No momento, não está disponível uma alternativa em áudio.
+Por favor, contate os [[{{MediaWiki:Grouppage-sysop}}|administradores do sítio]] em casos que seja necessária a assistência de alguém para que você possa fazer as suas inserções legítimas.
 
 Pressione o botão 'voltar' de seu navegador para retornar à página de edição.",
-	'captcha-addurl-whitelist' => ' #<!-- deixe este linha exactamente como está --> <pre>
+	'captcha-addurl-whitelist' => ' #<!-- deixe este linha exatamente como está --> <pre>
 # A sintaxe é a que se segue:
-#  * Tudo desde o caracter "#" até ao fim da linha é um comentário
+#  * Tudo desde o caractere "#" até ao fim da linha é um comentário
 #  * Qualquer linha não vazia é um fragmento de regex que irá apenas verificar o servidor dentro das URLs
-  #</pre> <!-- deixe este linha exactamente como está -->',
+  #</pre> <!-- deixe este linha exatamente como está -->',
 	'right-skipcaptcha' => 'Executar ações disparadoras de captcha sem ter que passar pelo captcha',
 );
 
@@ -2099,26 +2869,61 @@
  * @author BrokenArrow
  * @author Firilacroco
  * @author KlaudiuMihaila
+ * @author Mihai
+ * @author Minisarm
  */
 $messages['ro'] = array(
-	'captcha-edit' => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
-	'captcha-desc' => 'Implementare simplă captcha',
-	'captcha-addurl' => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
-	'captcha-badlogin' => 'Ca măsură de protecţie împotriva spargerii de parole, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
-	'captcha-createaccount' => 'Pentru a evita crearea automată de conturi, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
+	'captcha-edit' => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvați adunarea de mai jos și introduceți rezultatul în căsuță ([[Special:Captcha/help|detalii]]):',
+	'captcha-desc' => 'Oferă implementare de tip CAPTCHA împotriva spamului și încercărilor de aflare a parolelor',
+	'captcha-addurl' => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvați adunarea de mai jos și introduceți rezultatul în căsuță ([[Special:Captcha/help|detalii]]):',
+	'captcha-badlogin' => 'Ca măsură de protecție împotriva spargerii de parole, vă rugăm să rezolvați adunarea de mai jos și introduceți rezultatul în căsuță ([[Special:Captcha/help|detalii]]):',
+	'captcha-createaccount' => 'Pentru a evita crearea automată de conturi, vă rugăm să rezolvați adunarea de mai jos și introduceți rezultatul în căsuță ([[Special:Captcha/help|detalii]]):',
 	'captcha-createaccount-fail' => 'Cod de confirmare incorect sau lipsă.',
-	'captcha-create' => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvaţi adunarea de mai jos şi introduceţi rezultatul în căsuţă ([[Special:Captcha/help|detalii]]):',
+	'captcha-create' => 'Editarea include legături externe noi. Pentru a evita spam-ul automat, vă rugăm să rezolvați adunarea de mai jos și introduceți rezultatul în căsuță ([[Special:Captcha/help|detalii]]):',
+	'captcha-sendemail' => 'Pentru a împiedica roboții de spam, vă rugăm să rezolvați operația simplă de mai jos și să introduceți răspunsul în căsuță ([[Special:Captcha/help|mai multe detalii]]):',
+	'captcha-sendemail-fail' => 'Codul de confirmare lipsește sau este incorect.',
+	'captcha-disabledinapi' => 'Această acțiune necesită rezolvarea unui captcha, deci nu poate fi efectuată prin API.',
 	'captchahelp-title' => 'Despre „Captcha”',
-	'captchahelp-cookies-needed' => 'Trebuie ca browserul dumneavoastră să accepte cookie-uri pentru ca aceasta să funcţioneze.',
-	'captchahelp-text' => 'Siturile Web care acceptă postări din partea publicului, precum acest wiki, sunt de obicei abuzate de persoane care folosesc unelte automate pentru a introduce legături către multe situri. Deşi aceste legături de spam pot fi scoase, acest lucru reprezintă o muncă inconvenientă.
+	'captchahelp-cookies-needed' => 'Trebuie ca browserul dumneavoastră să accepte cookie-uri pentru ca aceasta să funcționeze.',
+	'captchahelp-text' => 'Siturile web care acceptă postări din partea publicului, precum acest wiki, sunt de obicei abuzate de persoane care folosesc unelte automate pentru a introduce legături către multe alte situri. Deși aceste legături de spam pot fi îndepărtate, acest lucru reprezintă o muncă inconvenientă.
 
-Uneori, mai ales la adăugarea de legături web noi într-o pagină, situl wiki vă poate arăta o imagine cu un text colorat sau distorsionat şi ruga să introduceţi cuvintele arătate. Deoarece aceasta este o sarcină greu de automatizat, va permite majorităţii persoanelor reale să posteze şi va opri majoritatea atacatorilor.
+Uneori, mai ales la adăugarea de legături web noi într-o pagină, situl wiki vă poate arăta o imagine cu un text colorat sau distorsionat și veți fi rugat să introduceți cuvintele indicate. Deoarece aceasta este o sarcină greu de automatizat, ea permite majorității persoanelor reale să posteze și va opri majoritatea atacatorilor.
 
-Din nefericire, această metodă îi poate deranja pe utilizatorii cu vedere limitată sau care folosesc browsere bazate pe text sau sunet. În acest moment nu avem o alternativă audio disponibilă. Vă rugăm, contactaţi administratorii sitului pentru asistenţă dacă metoda vă opreşte de la a face postări legitime.
+Din nefericire, această metodă îi poate deranja pe utilizatorii cu probleme vizuale sau care folosesc browsere bazate pe text sau sunet. În acest moment nu avem o alternativă audio disponibilă.
+Vă rugăm, contactați [[{{MediaWiki:Grouppage-sysop}}|administratorii sitului]] pentru asistență dacă metoda vă oprește de la a face postări legitime.
 
-Va fi nevoie ca browserul folosit să suporte module cookie.',
+Apasă butonul „Înapoi” al browserului pentru a te reîntoarce la pagina de editare.',
+	'captcha-addurl-whitelist' => ' #<!-- lăsați această linie așa cum este --> <pre>
+# Sintaxa este așa cum urmează:
+#   * Toate liniile care încep cu „#” sunt considerate comentarii
+#   * Toate liniile care nu sunt goale sunt fragmente RegEx care vor găsi doar gazda din interiorul URL-urilor
+ #</pre> <!-- lăsați această linie așa cum este -->',
+	'right-skipcaptcha' => 'Efectuează acțiuni care necesită completarea unui cod CAPTCHA fără a fi nevoie să facă acest lucru',
 );
 
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ * @author Reder
+ */
+$messages['roa-tara'] = array(
+	'captcha-edit' => "Pe cangià sta pàgene, pe piacere fa sta somma facile facile aqquà sotte e mitte 'a resposte jndr'à sckatele ([[Special:Captcha/help|maggiore 'mbormaziune]]):",
+	'captcha-addurl' => "'U cangiamende tue inglude de le collegaminde esterne.
+Pe aiutà a proteggere condre a 'u spam automateche, pe piacere respunne a 'a domande ca combare sotte ([[Special:Captcha/help|cchiù 'mbormaziune]]):",
+	'captcha-badlogin' => "Pe aiutà a proteggere da le futteminde de passuord automateche, pe piacere fa sta somma facile facile aqquà sotte e mitte 'a resposte jndr'à sckatele ([[Special:Captcha/help|maggiore 'mbormaziune]]):",
+	'captcha-createaccount-fail' => 'Codece de conferme non corrette o mangande.',
+	'captcha-create' => "Pe ccrejà sta pàgene, pe piacere fa sta somma facile facile aqquà sotte e mitte 'a resposte jndr'à sckatele ([[Special:Captcha/help|maggiore 'mbormaziune]]):",
+	'captcha-sendemail' => "Pe aiutà a proteggere da 'a munnezze automateche, pe piacere fa sta somma facile facile aqquà sotte e mitte 'a resposte jndr'à sckatele ([[Special:Captcha/help|maggiore 'mbormaziune]]):",
+	'captcha-sendemail-fail' => 'Codece de conferme non corrette o mangande.',
+	'captcha-disabledinapi' => "St'azione ave abbesogne de 'nu captcha, accussì non g'è possibbele eseguirle cu le API.",
+	'captchahelp-title' => 'Aijute pu captcha',
+	'captchahelp-cookies-needed' => "Tu è abbesogne de avè le cookie abbilitate jndr'à 'u browser tune pe sta fatìe.",
+	'captcha-addurl-whitelist' => " #<!-- leave this line exactly as it is --> <pre>
+# 'A sindasse jè a cumme segue:
+#   * Ogneccose da 'nu carattere \"#\" 'mbonde a fine d'a linèe jè 'nu commende
+#   * Ogne linèe chiene jè 'nu frammende de regex 'u quale addà sulamende combrondarse cu le host jndr'à l'URL
+ #</pre> <!-- leave this line exactly as it is -->",
+);
+
 /** Russian (Русский)
  * @author Ahonc
  * @author Aleksandrit
@@ -2127,7 +2932,7 @@
  */
 $messages['ru'] = array(
 	'captcha-edit' => 'Чтобы отредактировать эту страницу, пожалуйста, решите простой пример и введите ответ в текстовое поле ([[Special:Captcha/help|подробнее]]):',
-	'captcha-desc' => 'Простая реализация CAPTCHA',
+	'captcha-desc' => 'Предоставляет методы CAPTCHA для защиты от спама и подбора пароля',
 	'captcha-addurl' => 'Вы добавили ссылку на внешний сайт;
 в целях защиты от автоматического спама, введите буквы изображённые на картинке:<br />
 ([[Special:Captcha/help|Что это такое?]])',
@@ -2136,17 +2941,20 @@
 ([[Special:Captcha/help|Что это такое?]])',
 	'captcha-createaccount-fail' => 'Контрольная комбинация неверна или не введена.',
 	'captcha-create' => 'Чтобы создать страницу, решите простой пример и введите ответ в текстовое поле ([[Special:Captcha/help|что это?]]):',
+	'captcha-sendemail' => 'В целях защиты от автоматического спама, пожалуйста, вычислите приведённое простое выражение и введите ответ ([[Special:Captcha/help| подробнее]]):',
+	'captcha-sendemail-fail' => 'Код подтверждения неправильный или отсутствует.',
+	'captcha-disabledinapi' => 'Это действие требует проверки CAPTCHA, и поэтому не может быть выполнено через API.',
 	'captchahelp-title' => 'Справка о CAPTCHA',
 	'captchahelp-cookies-needed' => 'Вам нужно включить куки в браузере, чтобы эта функция заработала.',
-	'captchahelp-text' => 'Веб-сайты, позволяющие добавлять и изменять своё содержимое, в том числе вики, часто становятся целью спамеров, использующих программы для автоматического добавления ссылок. 
+	'captchahelp-text' => 'Веб-сайты, позволяющие добавлять и изменять своё содержимое, в том числе эта вики, часто становятся целью спамеров, использующих программы для автоматического добавления ссылок на сайты.
 Хотя такие ссылки могут быть впоследствии удалены, они являются существенной помехой.
 
-При некоторых действиях — например, при добавлении на страницу новой веб-ссылки — вы можете увидеть специальную картинку с цветным или искажённым текстом, и вам будет предложено ввести этот искажённый текст. 
-Так как распознавание искажённого текста для программ является сложной задачей, то большинство спамерских и вандальных программ не могут с ней справиться, в то время как люди справляются легко.
+При некоторых действиях — например, при добавлении на страницу новой веб-ссылки — вы можете увидеть специальную картинку с цветным или искажённым текстом, и вам будет предложено ввести этот искажённый текст.
+Так как распознавание искажённого текста является сложной задачей для программ, то большинство спамерских и вандальных программ не могут с ней справиться, в то время как люди справляются легко.
 
-К сожалению, подобная защита может причинить неудобства людям с ограничениями по зрению или тем, кто использует текстовые или читающие браузеры. 
-В настоящее время у нас нет звуковой альтернативы данной проверке. 
-Пожалуйста, обратитесь за помощью к администраторам, если подобная проверка мешает вам добросовестно работать с сайтом.
+К сожалению, подобная защита может причинить неудобства людям с ограничениями по зрению или тем, кто использует текстовые или читающие браузеры.
+В настоящее время у нас нет звуковой альтернативы данной проверке.
+Пожалуйста, обратитесь за помощью к [[{{MediaWiki:Grouppage-sysop}}|администраторам]], если подобная проверка мешает вам добросовестно работать с сайтом.
 
 Нажмите кнопку «Назад» в вашем браузере, чтобы вернуться к редактированию.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -2157,30 +2965,65 @@
 	'right-skipcaptcha' => 'выполнение требующих CAPTCHA-проверки действий без прохождения CAPTCHA',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'captcha-edit' => 'Жебысьте могли едітовати тоту сторінку, мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]])',
+	'captcha-desc' => 'Забезпечує техніку CAPTCHA про охрану перед спамом і гаданём гесел',
+	'captcha-addurl' => 'Ваше едітованя обсягує новы одказы формов URL; про охорону перед автоматічным спамом мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]])',
+	'captcha-badlogin' => 'В рамках охороны перед автоматічныма пробами угаднути гесло мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]]):',
+	'captcha-createaccount' => 'В рамках охороны перед автоматічныма створёванями конт мусите про выконаня реґістрації вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]]):',
+	'captcha-createaccount-fail' => 'Хыблячій ці неправилный код підтверджіня.',
+	'captcha-create' => 'Жебысьте могли створити тоту сторінку, мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]])',
+	'captcha-sendemail' => 'В рамках охороны перед автоматічным спамом мусите вырїшыти наступну просту суму і написати резултат. ([[Special:Captcha/help|Што тото значіть?]]):',
+	'captcha-sendemail-fail' => 'Хыблячій ці неправилный код підтверджіня.',
+	'captcha-disabledinapi' => 'Тота операція потребує сповнїня CAPTCHA, также ся не дасть выконати средством API.',
+	'captchahelp-title' => 'Поміч про CAPTCHA',
+	'captchahelp-cookies-needed' => 'Абы то фунґовало, мусите мати у своїм переглядачу запнуты кукі.',
+	'captchahelp-text' => 'Вебовы сторінкы, до котрых можуть приспівати їх навщівници (як наприклад тота вікі), суть часто цілём спамерів, котры за помочі автоматічных інштрументів вкладають свої одказы на велике множество сторінок. І наперек тому, же тот спам ся дасть одстранити, представлює неприємне отровованя.
+
+Даколи, окремо почас придаваня новых вебовых одказів, вам може вікі указати образок фаребного ці поскручаного тексту і пожадати вас о описаня зображеных знаків. Кідьже таку задачу не годен легко автоматізовати, реалны люде можуть дале приспівати, але векшыну спамерів і іншых роботічных атакерів тото заставить.
+
+На жаль тото може представляти неприємный проблем про хоснователїв постиженых зраково ці голосовы чітачкы. В сучасній добі не маєме алтернатівни звукову верзію. Просиме, контактуйте [[{{MediaWiki:Grouppage-sysop}}|адміністратора сервера]], кідь вам то боронить в хосновным вкладї і треба вам поміч.
+
+Про навернутя на попередню сторінку стиснийте у своїм переглядачі клапку „назад“.',
+	'captcha-addurl-whitelist' => ' #<!-- зохабте тот рядок точно так як є --> <pre>
+# Сінтаксіс є наслїдня:
+#  * Вшытко од знаку „#“ до кінце рядка є коментарь
+#  * Каждый непорожнїй рядок є фраґмент реґуларного выразу, котры ся аплікує лем на назву госта в URL
+ #</pre> <!-- зохабте тот рядок точно так як є -->',
+	'right-skipcaptcha' => 'Выконованя дїй споєных з CAPTCHA без потребы їх рїшіня',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
 	'captcha-edit' => 'Сирэйи уларытыаххын баҕардаххына, манна баар примеры суоттаа уонна эппиэтин аналлаах сиргэ суруй ([[Special:Captcha/help|сиһилии]]):',
-	'captcha-desc' => 'CAPTCHA судургу барыла',
-	'captcha-addurl' => 'Тас саайка ыйынньык туруорбуккун; спаамтан көмүскэнэр соруктаах суолу толор - манна баар буукубалары хатылаа: <br />
-([[{{ns:special}}:Captcha/help|Сиһилии]])',
+	'captcha-desc' => 'CAPTCHA көмөтүнэн спаамтан уонна киирии тылы уорууттан көмүскэли хааччыйар',
+	'captcha-addurl' => 'Тас саайка ыйынньык туруорбуккун; 
+спаамтан көмүскэнэр соруктаах суолу толор - ойууга баар буукубалары хатылаа: <br />
+([[Special:Captcha/help|Сиһилии]])',
 	'captcha-badlogin' => 'Киирии тылы аптамаат алдьаппатын туһугар оҥоһуллубут харыстыыр дьайыыны толор, манна баар примеры суоттаа уонна эппиэтин анал сиргэ суруй ([[Special:Captcha/help|сиһилии]]):',
-	'captcha-createaccount' => 'Бэлиэтэнэргэр аптамаатынан алдьатыыттан харыстыыр соруктаах дьайыыны оҥор, манна баар буукубалары анал сиргэ киллэр:<br />
-([[{{ns:special}}:Captcha/help|Сиһилии]])',
+	'captcha-createaccount' => 'Бэлиэтэнэргэр аптамаатынан алдьатыыттан (спаамтан) харыстыыр соруктаах дьайыыны оҥор, ойууга көстөр буукубалары анал сиргэ киллэр:<br />
+([[Special:Captcha/help|Сиһилии]])',
 	'captcha-createaccount-fail' => 'Бигэргэтии куода суох эбэтэр атын.',
 	'captcha-create' => 'Сирэйи оҥорорго бу примеры суоттаа ([[Special:Captcha/help|сиһилии]]):',
+	'captcha-sendemail' => 'Аптамаат спаамтан көмүскэнэр туһугар, бука диэн, бу дьайыыны суоттаа уонна эппиэтин суруй ([[Special:Captcha/help|сиһилии]]):',
+	'captcha-sendemail-fail' => 'Бигэргэтии куода суох эбэтэр атын.',
+	'captcha-disabledinapi' => 'Бу дьайыы CAPTCHA нөҥүө эрэ оҥоһуллар, онон API нөҥүө толоруллубат.',
 	'captchahelp-title' => 'Captcha көмөтө',
 	'captchahelp-cookies-needed' => 'Бу дьайыы үлэлиирин курдук браузергар куукины холбоо.',
-	'captchahelp-text' => 'Биһиги саайпыт курдук иһинээҕитин уларытары көҥүллүүр саайтарга сороҕор спам ыытар программалар аптаматынан бэйэлэрин ыйынньыктарын угаллар.
-Оннук аптамаатынан эбиллибит ыйынньыктары суох оҥорор кыах баар эрээри, ол элбэх мэһэйдэри үөскэтиэн сөп.
+	'captchahelp-text' => 'Биһиги саайпыт курдук иһинээҕитин уларытары көҥүллүүр саайтарга сороҕор спам ыытар программалар аптамаатынан бэйэлэрин ыйынньыктарын угаллар.
+Оннук аптамаатынан эбиллибит ыйынньыктары суох оҥорор кыах баар эрээри, ол биллэн турар син биир мэһэйдэри үөскэтэр.
 
 Ол иһин сороҕор, холобур саҥа ыйынньыгы эбэргэ, программа өҥнөөх эбэтэр хаанньары барбыт тиэкистээх ойууну көрдөрөн, ол тиэкиһи анал түннүккэ хатылатыан сөп.
-Маннык көрдөһүүнү аптамаат кыайан толорбот, оттон киһи үксэ чэпчэкитик толорор.
+Маннык көрдөһүүнү аптамаат кыайан толорбот, оттон киһи чэпчэкитик толорор.
 
 Ол гынан баран маннык көмүскэл сорох дьоҥҥо (көрбөт эбэтэр ааҕар браузердары туһанар дьоҥҥо) моһоллору үөскэтиэн сөп.
 Билигин бу моһолу суох оҥорор кыах суох.
-Оннук мэһэй таҕыстаҕына бука диэн баалама, биир эмит администраатарга этээр, көмөлөһүө.
+Оннук мэһэй таҕыстаҕына бука диэн баалама, биир эмит [[{{MediaWiki:Grouppage-sysop}}|дьаһабылга (администраатарга)]]  этээр, көмөлөһүө.
 
 Көннөрүүгэ төттөрү тиийэргэ браузерыҥ «Назад» тимэҕин баттаа.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -2192,6 +3035,7 @@
 );
 
 /** Sicilian (Sicilianu)
+ * @author Melos
  * @author Santu
  */
 $messages['scn'] = array(
@@ -2210,7 +3054,7 @@
 
 Nni tanti casi, p'asèmpiu quannu si voli jùnciri novi lijami Web nti na pàggina, lu software wiki pò ammustrari na mmàggini cu nu testu nicu acculuratu e/o difurmatu addumannannu di scrivìrilu nni na finistredda. Siccomu si tratta di na cosa difficili di fari pi nu computer, stu miccanìsimu pirmetti a (quasi tutti) l'utenti riali di cumplitari lu nzirimentu disiatu, mpidennu la trasuta a li chiossai di li spammer e di l'àutri attacchi autumatizzati.
 
-Pi sfurtuna, stu strataggemma pò mèttiri 'n difficultati a l'utenti ca hannu prubremi di vista o a chiddi ca ùsanu browser testuali o basati supr'a la sìntesi vucali. Purtroppu aoggi non ci sunnu àutri miccanìsimi abbasati supr'a missaggi sunori; si sti pruciduri mpidìsciunu lu nzirimentu di nfurmazzioni ca si pènzanu ca sù liggìttimi, siti prigati di cuntattari l'amministraturi dû situ e addumannàrini l'assistenza.
+Pi sfurtuna, stu strataggemma pò mèttiri 'n difficultati a l'utenti ca hannu prubremi di vista o a chiddi ca ùsanu browser testuali o basati supr'a la sìntesi vucali. Purtroppu aoggi non ci sunnu àutri miccanìsimi abbasati supr'a missaggi sunori; si sti pruciduri mpidìsciunu lu nzirimentu di nfurmazzioni ca si pènzanu ca sù liggìttimi, siti prigati di cuntattari [[{{MediaWiki:Grouppage-sysop}}|l'amministraturi dû situ]] e addumannàrini l'assistenza.
 
 Fari clic supra ô buttuni 'back' dû browser pi turnari a la pàggina di mudìfica.",
 	'captcha-addurl-whitelist' => " #<!-- non mudificari 'n nuddu modu sta riga --> <pre>
@@ -2229,30 +3073,36 @@
 );
 
 /** Sinhala (සිංහල)
+ * @author Budhajeewa
+ * @author Singhalawap
  * @author නන්දිමිතුරු
+ * @author පසිඳු කාවින්ද
  */
 $messages['si'] = array(
 	'captcha-edit' => 'මෙම පිටුව සංස්කරණය කිරීමට, කරුණාකර පහත දැක්වෙන සරල එකතුකිරීම විසඳා පිලිතුර කොටුවේ ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩි විස්තර]]):',
-	'captcha-desc' => 'සරල captcha ක්‍රියාත්මක කිරීම',
+	'captcha-desc' => 'ස්පෑම් සහ මුරපද-අනුමාන වලන් ආරක්ෂාව සදහා කැප්චා තාක්ෂණය සපයනු ලැබේ',
 	'captcha-addurl' => 'ඔබගේ සංස්කරණයෙහි නව බාහිර සබැඳියන් අඩංගුයි.
 ස්වයංක්‍රීය අයාචිත තැපෑලෙන් ආරක්ෂා වනු වස්, පහත සරල ගණිත ගැටළුව විසඳා පිළිතුර කොටුවෙහි ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩිමනත් තොරතුරු]]):',
 	'captcha-badlogin' => 'ස්වයංක්‍රීය මුරපද බිඳීම වලක්වනු වස්, පහත සරල ගණිත ගැටළුව විසඳා පිළිතුර කොටුවෙහි ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩිමනත් තොරතුරු]]):',
 	'captcha-createaccount' => 'ස්වයංක්‍රීය ගිණුම් තැනීමෙන් ආරක්ෂා කිරීමට උදවු කරනු වස්, කරුණාකර පහත දැක්වෙන සරල එකතුකිරීම විසඳා පිලිතුර කොටුවේ ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩි විස්තර]]):',
 	'captcha-createaccount-fail' => 'තහවුරුකිරීමේ කේතය එක්කෝ සාවද්‍යයි නැතිනම් සො‍යාගත නොහැක.',
 	'captcha-create' => 'මෙම පිටුව තැනීමට, කරුණාකර පහත දැක්වෙන සරල එකතුකිරීම විසඳා පිලිතුර කොටුවේ ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩි විස්තර]]):',
+	'captcha-sendemail' => 'ස්‍වයංක්‍රීය ස්පෑම්කරණයන්ගෙන් වැලකීමට, කරුණාකර පහත දැක්වෙන සරල එකතුකිරීම විසඳා පිලිතුර කොටුවේ ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩි විස්තර]]):',
+	'captcha-sendemail-fail' => 'තහවුරුකෙරුම් කේතය සොයාගත නොහැකි හෝ වැරදිය.',
+	'captcha-disabledinapi' => 'මෙම ක්‍රියාවට කැප්චාවක් අවැසි නිසා එය API හරහා කළ නොහැක.',
 	'captchahelp-title' => 'Captcha උදවු',
 	'captchahelp-cookies-needed' => 'මෙය ක්‍රියාත්මක වීමට නම් ඔබ විසින් ඔබගේ බ්‍රවුසරයෙහි කුකීස් සක්‍රිය කොට තිබිය යුතුය.',
-	'captchahelp-text' => "ඔවුන්ගේ  සබැඳියන් බොහෝ අඩවියන්හි පලකෙරුමට, ස්වයංක්‍රීය මෙවලම් උපයෝගී කරගන්නා, අයාචිත තැපැල්කරුවන්ගේ අපයෙදුමට,  මහජනයාගෙන් පලකෙරුම් පිළිගන්නා, මෙම විකිය වැනි වෙබ් අඩවි, බොහෝවිට ගොදුරු වේ.
-මෙම අයාචිත තැපැල් සබැඳියන් ඉවත් කල හැකි වුවත්, ඒවා සැලකිය යුතු පීඩා ගෙන දෙයි.
+	'captchahelp-text' => 'මහජනයාගේ පළකෙරුම් පිළිගන්නා මෙවන් විකි වැනි අඩවි තමන්ගේ අඩවියන් වෙත සබැඳි ඇතුලත් කිරීමට ස්‍වයංක්‍රීය මෙවලම් භාවිතා කරන ස්පෑම්කරුවන්ගේ අයතා භාවිතයට ගොදුරු වේ. මෙම සබැඳියන් ඉවත් කළ හැකි වුවද, ඒවා ඉතාමත් කරදරකාරීය.
 
-සමහරවිට, විශේෂයෙන් පිටුවකට නව වෙබ් සබැඳියන් එක්කෙරෙන විට, වර්ණවත් හෝ විරූප කෙරුණු පෙළක රූපයක් ඔබහට පෙන්වන විකිය, එහි දැක්වෙන වචන ටයිප් කරන මෙන් ඉල්ලාසිටිය හැක.
-මෙම කාර්යය ස්වයංක්‍රීයව සිදුකෙරුම ඉතාමත් අසීරු කාර්යයක් බැවින්, අයාචිත තැපැල්කරුවන් බොහෝ දෙනෙක් හා අනෙකුත් රොබෝ ආක්‍රමණිකයන් වළකමින් බොහෝ අව්‍යාජ මානවයන්හට ඔවුන්ගේ පලකෙරුම් සිදුකිරීමට ඉඩ සලසනු ඇත.
+ඇතැම් විට, විශේෂයෙන්ම පිටුවකට සබැඳියක් එක් කරනා විට, විකිය විසින් ඔබට වර්ණිත හෝ විකෘතිත පෙළක් පෙන්වා එහි සඳහන් වදන් යතුරුලියන ලෙස ඔබෙන් ඉල්ලනු ඇති.
+එය ස්‍වයංකෙරුමට අසීරු ක්‍රියාවක් බැවින් එය මගින් සැබෑ මිනිසුන්ට ලිපි ලියුමට ඉඩ දෙන අතරම බොහෝමයක් ස්පෑම්කරුවන් හා ස්‍වයංක්‍රීය පහරදීම් වලක්වනු ඇති.
 
-සීමිත දෘෂ්ඨියක් සහිත හෝ පෙළ-පදනම් කරගන්නා හෝ කථනය-පදනම් කරගන්නා බ්‍රවුසරයන් භාවිතා කරන හෝ පරිශීලකයන් මෙයින් අවාසනාවන්ත ලෙස  අපහසුතාවයකට ලක්විය හැක.
-මෙම අවස්ථාව වන විට ශ්‍රව්‍ය විකල්පයක් අප සතුව නොමැත.
-නිත්‍යානුකූල පලකෙරුම් සඳහා ඔබගේ අවස්ථාව අ‍නපේක්‍ෂිත ලෙස උදුරාගැනුමක් මෙයින් සිදුවේනම්  ඔබගේ අඩවි පරිපාලකවරුන් හා සහසම්බන්ධ වී සහය පැතීමට කාරුණික වන්න.
+නමුත් අවාසනාවකට මෙය නිසා දෘෂ්ඨි දෝෂ සහිත හෝ පෙළ-පාදක හෝ කථන-පාදක වෙබ් පිරික්සක භාවිතා කරන පරිශීලකයන් අපහසුතාවට පත් වනු ඇත.
+මේ වන විට අප සතුව ශ්‍රව්‍ය විකල්පයක් නොමැත.
 
-පිටු සංස්කාරක වෙත යළි-එළ‍ඹෙනු වස්, ඔබගේ බ්‍රවුසරයෙහි 'පසුපසට' බොත්තම ඔබන්න.",
+මෙය නිසා ඔබට ලිපි ලිවීම දැඩි ලෙස කරදරකාරී වී ඇත්නම් කරුණාකර සහය සඳහා [[{{MediaWiki:Grouppage-sysop}}|අඩවි පරිපාලකයන්]] සම්බන්ධ කරගන්න.
+
+පිටු සකසනයට ආපසු යාම සඳහා ඔබේ වෙබ් පිරික්සකයේ "පසුපසට" බොත්තම තද කරන්න.',
 	'captcha-addurl-whitelist' => '#<!-- මෙම පේළිය මෙලෙසින්ම තිබීමට ඉඩ හරින්න --> <pre>
 # වාග් රීතිය පහත පරිදි වේ:
 #   * "#" අක්ෂරයක සිට පේළියක අග දක්වා සියල්ල පරිකථනයක් වේ
@@ -2266,20 +3116,23 @@
  */
 $messages['sk'] = array(
 	'captcha-edit' => 'Aby ste mohli upravovať túto stránku, vyriešte prosím tento jednoduchý súčet a napíšte výsledok do poľa ([[Special:Captcha/help|viac informácií]]):',
-	'captcha-desc' => 'Jednoduchá implementácia captcha',
+	'captcha-desc' => 'Poskytuje techniky captcha na ochranu pred spamom a hádaním hesla',
 	'captcha-addurl' => 'Vaša úprava obsahuje nové externé odkazy. Ako pomoc pri ochrane pred automatickým spamom vyriešte prosím tento jednoduchý súčet a zadajte výsledok do poľa ([[Special:Captcha/help|viac informácií]]):',
 	'captcha-badlogin' => 'Ako ochranu proti automatizovanému lámaniu hesiel, prosím vyriešte nasledujúci súčet a zadajte ho do poľa pre odpoveď ([[Special:Captcha/help|viac informácií]]):',
 	'captcha-createaccount' => 'Kvôli ochrane proti automatizovanému spamu je potrebné napísať slová zobrazené na tomto obrázku, až potom bude vytvorený nový účet:
 <br />([[Special:Captcha/help|Čo je toto?]])',
 	'captcha-createaccount-fail' => 'Nesprávny alebo chýbajúci potvrdzovací kód.',
 	'captcha-create' => 'Aby ste mohli vytvoriť túto stránku, vyriešte prosím tento jednoduchý súčet a napíšte výsledok do poľa ([[Special:Captcha/help|viac informácií]]):',
+	'captcha-sendemail' => 'Ako pomoc pri ochrane pred automatickým spamom, prosím, vyriešite nasledujúci jednoduchý súčet a napíšte odpoveď do poľa ([[Special:Captcha/help|ďalšie informácie]]):',
+	'captcha-sendemail-fail' => 'Nesprávny alebo chýbajúci potvrdzovací kód.',
+	'captcha-disabledinapi' => 'Táto operácia vyžaduje captcha, preto nemôže byť vykonaná prostredníctvom rozhrania API.',
 	'captchahelp-title' => 'Pomocník ku captcha',
 	'captchahelp-cookies-needed' => 'Aby toto fungovalo, budete si musieť v prehliadači zapnúť koláčiky (cookies).',
 	'captchahelp-text' => 'Webstránky prijímajúce príspevky od verejnosti ako táto wiki sú často cieľom zneužitia spammermi, ktorí používajú automatizované nástroje na to, aby svoje odkazy umiestnili na množstvo stránok. Hoci je možné tieto odkazy odstrániť, zbytočne to zaťažuje používateľov.
 
-Niekedy, obzvlášť keď pridávate webové odkazy k článkom, wiki vám môže zobraziť obrázok so zafarbeným alebo pokriveným textom a požiadať Vás o prepísanie zobrazených slov. Keďže takúto úlohu je ťažké zautomatizovať a umožní skutočným ľuďom poslať svoje príspevky, zastaví to väčšinu spammerov a iných robotických útočníkov.
+Niekedy, obzvlášť keď pridávate webové odkazy k článkom, wiki vám môže zobraziť obrázok so zafarbeným alebo pokriveným textom a požiadať vás o prepísanie zobrazených slov. Keďže takúto úlohu je ťažké zautomatizovať a umožní skutočným ľuďom poslať svoje príspevky, zastaví to väčšinu spammerov a iných robotických útočníkov.
 
-Naneštastie, môže to byť prekážkou pre používateľov so zrakovým postihnutím alebo tých, ktorí používajú textové alebo hovoriace prehliadače. Momentálne nemáme dostupnú audio zvukovú alternatívu. Kontaktujte prosím správcov stránok, ak vám to neočakávane komplikuje umiestňovanie oprávnených príspevkov.
+Nanešťastie, môže to byť prekážkou pre používateľov so zrakovým postihnutím alebo tých, ktorí používajú textové alebo hovoriace prehliadače. Momentálne nemáme dostupnú audio zvukovú alternatívu. Kontaktujte prosím [[{{MediaWiki:Grouppage-sysop}}|správcov stránok]] ak vám to neočakávane komplikuje umiestňovanie oprávnených príspevkov.
 
 Stlačením tlačidla „späť“ vo vašom prehliadači sa vrátite do editora stránky.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -2292,42 +3145,62 @@
 
 /** Slovenian (Slovenščina)
  * @author BrokenArrow
+ * @author Dbc334
  */
 $messages['sl'] = array(
-	'captcha-edit' => 'Vaše urejanje vključuje nove URL-povezave; zaradi zaščite pred avtomatizirano navlako boste morali vpisati besede, ki se pojavijo v okencu: <br />([[{{ns:Special}}:Captcha/help|Kaj je to?]])',
-	'captcha-addurl' => 'Vaše urejanje vključuje nove URL-povezave; zaradi zaščite pred avtomatizirano navlako boste morali vpisati besede, ki se pojavijo v okencu: <br />([[{{ns:Special}}:Captcha/help|Kaj je to?]])',
-	'captcha-createaccount' => 'Za registracijo je zaradi zaščite pred neželenimi reklamnimi sporočili treba vpisati prikazane besede: <br />([[{{ns:special}}:Captcha|Kaj je to?]])',
-	'captcha-createaccount-fail' => 'Nepravilna ali manjkajoča potrditvena koda.',
-	'captcha-create' => 'Vaše urejanje vključuje nove URL-povezave; zaradi zaščite pred avtomatizirano navlako boste morali vpisati besede, ki se pojavijo v okencu: <br />([[{{ns:Special}}:Captcha/help|Kaj je to?]])',
+	'captcha-edit' => 'Če želite urejati stran, prosimo izračunajte preprost seštevek spodaj in odgovor vpišite v polje ([[Special:Captcha/help|več informacij]]):',
+	'captcha-desc' => 'Nudi pristope CAPTCHA za zaščito proti smetju in ugibanju gesel',
+	'captcha-addurl' => 'Vaše urejanje vključuje nove zunanje povezave.
+Zaradi zaščite pred samodejno navlako boste morali vpisati besede, ki se pojavijo v okencu ([[Special:Captcha/help|več informacij]]):',
+	'captcha-badlogin' => 'Zaradi zaščite pred samodejnim ugotavljanjem gesel, prosimo rešite preprost seštevek spodaj in vnesite odgovor v okence ([[Special:Captcha/help|več informacij]]):',
+	'captcha-createaccount' => 'Zaradi zaščite pred samodejnim ustvarjanjem računov, prosimo rešite preprost seštevek spodaj in vnesite odgovor v okence ([[Special:Captcha/help|več informacij]]):',
+	'captcha-createaccount-fail' => 'Napačna ali manjkajoča potrditvena koda.',
+	'captcha-create' => 'Če želite ustvariti stran, prosimo izračunajte preprost seštevek spodaj in odgovor vpišite v polje ([[Special:Captcha/help|več informacij]]):',
+	'captcha-sendemail' => 'Zaradi zaščite pred samodejnim smetenjem, prosimo rešite preprost seštevek spodaj in vnesite odgovor v okence ([[Special:Captcha/help|več informacij]]):',
+	'captcha-sendemail-fail' => 'Napačna ali manjkajoča potrditvena koda.',
+	'captcha-disabledinapi' => 'To dejanje zahteva preverjanje captcha, zato ga ni mogoče izvesti preko API.',
 	'captchahelp-title' => 'Pomoč za captcha',
-	'captchahelp-text' => "Spletne strani, ki omogočajo objavljanje širši javnosti, kot na primer ta wiki, pogosto zlorabljajo spamerji, ki za objavo svojih povezav na mnogih straneh uporabljajo avtomatizirana orodja. Čeprav se te neželene povezave da odstraniti, so precejšnja nadloga.
+	'captchahelp-cookies-needed' => 'Morali boste omogočiti piškotke v vašem brskalnik, če želite, da to deluje.',
+	'captchahelp-text' => 'Spletne strani, ki omogočajo objavljanje širši javnosti, kot na primer ta wiki, pogosto zlorabljajo spamerji, ki za objavo svojih povezav na mnogih straneh uporabljajo avtomatizirana orodja. Čeprav se te neželene povezave da odstraniti, so precejšnja nadloga.
 
 Včasih, zlasti pri dodajanju novih spletnih povezav na stran, vam bo morda wiki prikazal sliko obarvanega ali popačenega besedila in zahteval vpis prikazanih besed. Ker je to opravilo težko avtomatizirati, bo s tem večini ljudi objavljanje dovoljeno, spamerji in druge robotski napadalci pa bodo ustavljeni.
 
-Žal lahko to povzroči nevšečnosti uporabnikom s slabim vidom in tistim, ki uporabljajo besedilne ali govorne brskalnike. Glasovna možnost trenutno še ni na razpolago. Če vam to nepričakovano preprečuje legitimno objavo, se, prosimo, obrnite na administratorje spletišča.
+Žal lahko to povzroči nevšečnosti uporabnikom s slabim vidom in tistim, ki uporabljajo besedilne ali govorne brskalnike. Glasovna možnost trenutno še ni na razpolago. Če vam to nepričakovano preprečuje legitimno objavo, se, prosimo, obrnite na [[{{MediaWiki:Grouppage-sysop}}|administratorje spletišča]].
 
-Za vrnitev v urejevalnik izberite gumb 'nazaj' vašega brskalnika.",
+Za vrnitev v urejevalnik izberite gumb »nazaj« vašega brskalnika.',
+	'captcha-addurl-whitelist' => ' #<!-- pustite to vrstico takšno, kot je --> <pre>
+# Skladnja je sledeča:
+#   * Vse od znaka »#« do konca vrstice je pripomba
+#   * Vsaka neprazna vrstica je delec regularnega izraza, ki se bo ujemal samo z gostitelji v URL-jih
+ #</pre> <!-- pustite to vrstico takšno, kot je -->',
+	'right-skipcaptcha' => 'Izvaja dejanja, ki sprožijo preverjanje captcha, brez da bi moral opraviti preverjanje',
 );
 
 /** Albanian (Shqip)
  * @author BrokenArrow
  * @author Dori
+ * @author Mikullovci11
+ * @author Olsi
  */
 $messages['sq'] = array(
 	'captcha-edit' => 'Për të redaktuar këtë faqe ju lutem zgjidhni shumën e mëposhtme dhe vendosni përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
-	'captcha-desc' => 'Pajisje me captcha të thjeshtë',
+	'captcha-desc' => 'Siguron teknika CAPTCHA për të mbrojtur kundër spam',
 	'captcha-addurl' => 'Redaktimi juaj ka lidhje URL të reja dhe si mbrojtje kundër abuzimeve automatike duhet të shtypni çfarë shfaqet tek figura e mëposhtme:<br /> ([[Special:Captcha|Çfarë është kjo?]])',
 	'captcha-badlogin' => 'Për tu mbrojtur nga metoda automatike të gjetjes së fjalëkalimeve ju kërkojmë të gjeni zgjidhni shumën e mëposhtme dhe të vendosni përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
 	'captcha-createaccount' => 'Për mbrojtje kundër regjistrimeve automatike duhet të zgjidhni ekuacionin e mëposhtëm para se të hapni llogarinë:<br />([[Special:Captcha|Çfarë është kjo?]])',
 	'captcha-createaccount-fail' => 'Mesazhi që duhej shtypur mungon ose nuk është shtypur siç duhet.',
 	'captcha-create' => 'Për të krijuar këtë faqe ju lutem zgjidhni shumën e mëposhtme dhe vendosni përgjigjen në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-sendemail' => 'Për të ndihmuar në mbrojtjen kundër spamit të automatizuar, ju lutemi zgjidhni këtë më poshtë dhe shkruani përgjigjen në kuti
+([[Special:Captcha/help|më shumë informacion]]):',
+	'captcha-sendemail-fail' => 'Mungon kodi i konfirmimit ose është i pasaktë.',
+	'captcha-disabledinapi' => 'Ky veprim kërkon një captcha, kështu që nuk mund të kryhet nëpërmjet API.',
 	'captchahelp-title' => 'Ndihmë rreth sistemit "Captcha"',
 	'captchahelp-cookies-needed' => 'Duhet të pranoni "biskota" nga shfletuesi juaj për këtë veprim.',
 	'captchahelp-text' => 'Faqet e rrjetit që pranojnë shkrime nga publiku, siç është edhe kjo wiki, shpesh abuzohen nga njerëz që duan të përfitojnë duke reklamuar ose promovuar lidhjet e tyre. Këto lloj abuzimesh mund të hiqen kollaj por janë një bezdi dhe shpenzim kohe i papranueshëm.
 
 Ndonjëherë, sidomos kur po hapni një llogari të re apo kur po shtoni lidhje të reja nëpërmjet redaktimit tuaj, sistemi mund t\'ju shfaqi një figurë që përmban fjalë me gërma ose numra të shtrembruara ose me ngjyra të ndryshme të cilat ju duhet të shtypni para se të mund të kryeni veprimin në fjalë. Kjo bëhet pasi është shumë e vështirë për një robot ose mjet automatik të kryejë të njëjtën punë. Kështu mund të dallohet nëse jeni me të vërtetë një njeri apo një robot. Ky lloj sistemi s\'mund të ndalojë tërë abuzimet por ndalon një pjesë të mirë të tyre, sidomos ato që janë automatike dhe të shumta në numër.
 
-Fatkeqësisht ky lloj sistemi mund të bezdisi përdoruesit me pamje të kufizuar ose ata që përdorin mjete teksti ose shfletues leximi me zë. Tani për tani nuk kemi mundësi për të ofruar një sistem me zë në vend të figurave. Ju lutem lidhuni me administruesit nëse ky sistem po ju ndalon të jepni kontribute të vlefshme.
+Fatkeqësisht ky lloj sistemi mund të bezdisi përdoruesit me pamje të kufizuar ose ata që përdorin mjete teksti ose shfletues leximi me zë. Tani për tani nuk kemi mundësi për të ofruar një sistem me zë në vend të figurave. Ju lutem lidhuni me [[{{MediaWiki:Grouppage-sysop}}|administruesit]] nëse ky sistem po ju ndalon të jepni kontribute të vlefshme.
 
 Shtypni butonin "prapa" ("back") të shfletuesit tuaj për tu kthyer tek faqja e mëparshme.',
 	'captcha-addurl-whitelist' => ' #<!-- lëreni këtë rresht siç është --> <pre>
@@ -2335,42 +3208,69 @@
 #  * Çdo gjë nga simboli "#" deri në fund të rreshtit është koment
 #  * Çdo rresht jo-bosh është një pjesë regex që duhet t\'i përputhet emrat të shërbyesve brenda një URL-i
   #</pre> <!-- lëreni këtë rresht siç është -->',
+	'right-skipcaptcha' => 'Kryen veprime CAPTCHA-triggering pa pasur nevojë të shkojë nëpërmjet CAPTCHA',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
  */
 $messages['sr-ec'] = array(
 	'captcha-edit' => 'За измену ове стране, реши једноставан збри испод и унеси одговор у кутију ([[Special:Captcha/help|детаљније]]):',
-	'captcha-desc' => 'једноставна капча имплементација',
-	'captcha-addurl' => 'Твоја измена укључује нове спољашње везе. У циљу заштите против аутоматског спама, реши једноставан збир испод и упиши одговор у кутију ([[Special:Captcha/help|детаљније]]):',
-	'captcha-badlogin' => 'У циљу заштите од аутоматске провале у лозинку, реши једноставан збир испод и унеси одговор у кутију ([[Special:Captcha/help|детаљније]]):',
-	'captcha-createaccount' => 'У циљу заштите од аутоматског стварања налога, реши једноставан збир доле и унеси га у кутију ([[Special:Captcha/help|детаљније]]):',
+	'captcha-desc' => 'Пружа заштиту против непожељних порука у виду потврдног кода',
+	'captcha-addurl' => 'Ваша измена садржи нове спољашње везе.
+У циљу заштите од непожељних порука, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):',
+	'captcha-badlogin' => 'У циљу заштите од пробијања лозинки, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):',
+	'captcha-createaccount' => 'У циљу заштите од самоотварања налога, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):',
 	'captcha-createaccount-fail' => 'Неправилан или непостојећи код за потврду.',
-	'captcha-create' => 'За стварање стране реши једноставан збир доле и унеси га у кутију ([[Special:Captcha/help|детаљније]]):',
-	'captchahelp-title' => 'помоћ за капчу',
-	'captchahelp-cookies-needed' => 'Да би ово урадио, неопходно је да су ти колачићи омогућени у браузеру.',
-	'right-skipcaptcha' => 'Изведи акције капче без потребе да се прође кроз капчу.',
+	'captcha-create' => 'Да бисте направили страницу, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):',
+	'captcha-sendemail' => 'У циљу заштите од слања непожељних порука, решите просту рачуницу испод и унесите одговор у поље ([[Special:Captcha/help|више информација]]):',
+	'captcha-sendemail-fail' => 'Неправилан или непостојећи код за потврду.',
+	'captchahelp-title' => 'Помоћ око потврдног кôда',
+	'captchahelp-cookies-needed' => 'Потребно је да омогућите колачиће да би ово радило.',
+	'right-skipcaptcha' => 'прескакање радњи које захтевају унос потврдног кода',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'captcha-edit' => 'Za izmenu ove strane, reši jednostavan zbri ispod i unesi odgovor u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'captcha-desc' => 'Pruža zaštitu protiv nepoželjnih poruka u vidu potvrdnog koda',
+	'captcha-addurl' => 'Tvoja izmena uključuje nove spoljašnje veze. U cilju zaštite protiv automatskog spama, reši jednostavan zbir ispod i upiši odgovor u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'captcha-badlogin' => 'U cilju zaštite od automatske provale u lozinku, reši jednostavan zbir ispod i unesi odgovor u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'captcha-createaccount' => 'U cilju zaštite od automatskog stvaranja naloga, reši jednostavan zbir dole i unesi ga u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'captcha-createaccount-fail' => 'Nepravilan ili nepostojeći kod za potvrdu.',
+	'captcha-create' => 'Za stvaranje strane reši jednostavan zbir dole i unesi ga u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'captcha-sendemail-fail' => 'Nepravilan ili nepostojeći kod za potvrdu.',
+	'captchahelp-title' => 'pomoć za kapču',
+	'captchahelp-cookies-needed' => 'Da bi ovo uradio, neophodno je da su ti kolačići omogućeni u brauzeru.',
+	'right-skipcaptcha' => 'Izvedi akcije kapče bez potrebe da se prođe kroz kapču.',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'captcha-edit' => 'Tou Beoarbaidenge fon ju Siede löös ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien ([[Special:Captcha/help|(Froagen of Probleme?]]):',
+	'captcha-edit' => 'Tou Beoarbaidenge fon ju Siede löös ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]]:',
 	'captcha-desc' => 'Eenfache Captcha-Implementierenge',
-	'captcha-addurl' => 'Dien Beoarbaidenge änthaalt näie externe Ferbiendengen. Toun Schuts foar automatisierde Spammenge löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien. Klik dan fonnäien ap „Siede spiekerje“ [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
-	'captcha-badlogin' => 'Toun Schuts foar ne Kompromittierenge fon dien Benutserkonto löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]]:',
-	'captcha-createaccount' => 'Toun Schuts foar automatisierden Anloage fon Benutserkonten löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
+	'captcha-addurl' => 'Dien Beoarbaidenge änthaalt näie externe Ferbiendengen.
+Toun Skuts foar automatisierde Spammenge löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien.
+Klik dan fonnäien ap „Siede spiekerje“ [[Special:Captcha/help|(Froagen of Probleme?)]].',
+	'captcha-badlogin' => 'Toun Skuts foar ne Kompromittierenge fon dien Benutserkonto löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].',
+	'captcha-createaccount' => 'Toun Skuts foar automatisierden Anloage fon Benutserkonten löös ju ätterfoulgjende Reekenapgoawe un dräch dät Resultoat in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].',
 	'captcha-createaccount-fail' => 'Falske of failjende Bestäätigengscode.',
-	'captcha-create' => 'Uum disse Siede tou moakjen, löös juu ätterfoulgjende Reekenapgoawe ap un dräch dät Resultoat in dät Fäild hier unner ien [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
+	'captcha-create' => 'Uum disse Siede tou moakjen, löös ju ätterfoulgjende Reekenapgoawe ap un dräch dät Resultoat in dät Fäild hier unner ien [[Special:Captcha/help|(Froagen of Probleme?)]].',
 	'captchahelp-title' => 'Captcha-Hälpe',
 	'captchahelp-cookies-needed' => "'''Wichtige Waiwiesenge:''' Der mouten Cookies in dän Browser ferlööwed weese.",
-	'captchahelp-text' => 'Internetboode, do der foar Biedraage fon praktisk älkuneen eepen sunt - so as dät {{SITENAME}}-Wiki — wäide oafte fon Spammere misbruukt, do hiere Ferbiendengen automatisk ap fuul Websieden platzierje. Disse Spam-Ferbiendengen konnen wier wächhoald wäide, man jo sunt n groot Ferträit.
+	'captchahelp-text' => "Internetsteeden, do der foar Biedraage fon praktisk älkuneen eepen sunt - so as dät {{SITENAME}}-Wiki — wäide oafte fon Spammere misbruukt, do hiere Ferbiendengen automatisk ap fuul Websieden platzierje. Disse Spam-Ferbiendengen konnen wier wächhoald wäide, man jo sunt n groot Ferträit.
 
-In fuul Falle, besunners bie dät Bietouföigjen fon näie Webferbiendengen tou ne Siede, kon dät foarkuume, dät dit Wiki ne Bielde mäd n faawigen un fertroalden Text anwiest un deertou apfoardert, do anwiesde Woude ientoutippen. Deer sun Apgoawe man stuur automatisk ouhonneld wäide kon, wäide deertruch do maaste Spammere, do der mäd automatiske Reewen oarbaidje, stopped, wierjuun moanskelke Benutsere hieren Biedraach seende konnen.
+In fuul Falle, besunners bie dät Bietouföigjen fon näie Webferbiendengen tou ne Siede, kon dät foarkuume, dät dit Wiki ne Bielde mäd n faawigen un fertroalden Text anwiest un deertou apfoardert, do anwiesde Woude ientoutippen. Deer sun Apgoawe man stuur automatisk ouhonneld wäide kon, wäide deertruch do maaste Spammere, do der mäd automatiske Reewen oarbaidje, stopped, wierjuun moanskelke Benutsere hieren Biedraach ouseende konnen.
 
-Spietelk genouch kon dät tou Meelasje foar Persoone fiere, do der minner goud sjo konnen of text- of sproakbasierde Browsere ferweende. Ne Löösenge is ju reguläre Anmäldenge as Benutser. Die „Tourääch“-Knoop fon dän Browser fiert tourääch in dät Beoarbaidengsfinster.',
+Spietelk genouch kon dät tou Meelasje foar Persoone fiere, do der minner goud sjo konnen of text- of sproakbasierde Browsere ferweende. Apstuuns hääbe wie neen Audio-Alternative ferföigboar.
+Kontaktier do [[{{MediaWiki:Grouppage-sysop}}|Site-Administratore]] foar Hälpe, wan dit jou Moite rakt bie dät Hoochleeden fon Biedraage.
+
+Klik ap dän 'Tourääch'-Knoop in jou Browser uum ätter dän Sieden-Editor touräächtougungen.",
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 #  Syntax:
 #   * Alles fon n #-Teeken bit tou dän Eend fon ju Riege is n Kommentoar
@@ -2406,13 +3306,17 @@
 );
 
 /** Swedish (Svenska)
+ * @author Ainali
+ * @author Boivie
  * @author Lejonel
  * @author M.M.S.
+ * @author MagnusA
+ * @author Per
  */
 $messages['sv'] = array(
 	'captcha-edit' => 'För att redigera den här sidan måste du först skriva svaret på följande
 räkneuppgift i rutan ([[Special:Captcha/help|mer information]]):',
-	'captcha-desc' => 'Enkel implementation av captcha-system',
+	'captcha-desc' => 'Ger CAPTCHA tekniker för att skydda mot skräppost och lösenordsgissning',
 	'captcha-addurl' => 'Din ändring lägger till nya externa länkar i texten. För att skydda wikin mot
 automatisk spam måste du skriva svaret på följande räkneuppgift i rutan ([[Special:Captcha/help|mer information]]):',
 	'captcha-badlogin' => 'För att skydda mot wikin mot automatiserad lösenordsknäckning måste du skriva
@@ -2422,19 +3326,20 @@
 	'captcha-createaccount-fail' => 'Bekräftelsekoden är felaktig eller saknas.',
 	'captcha-create' => 'För att skapa den här sidan måste du skriva svaret på följande räkneuppgift
 i rutan ([[Special:Captcha/help|mer information]]):',
+	'captcha-sendemail' => 'Lös den enkla matematiska uppgiften i rutan nedan, för att hjälpa oss att skydda mot automatisk spamning ([[Special:Captcha/help|mer information]]):',
+	'captcha-sendemail-fail' => 'Felaktig eller saknad bekräftelsekod.',
+	'captcha-disabledinapi' => 'Denna åtgärd kräver en captcha, så den kan inte utföras genom APIet.',
 	'captchahelp-title' => 'Captchahjälp',
 	'captchahelp-cookies-needed' => 'Du måste ha cookies aktiverade i din webbläsare för att det här ska fungera.',
-	'captchahelp-text' => 'Webbplatser som tillåter inlägg från allmänheten, som den här wikin gör, kan
-missbrukas av spammare. De använder ofta automatiserade verktyg för att lägga till länkar på många webbsajter. Även om
-dessa spamlänkar kan tas bort så är de till stort besvär.
+	'captchahelp-text' => 'Webbplatser som tillåter inlägg från allmänheten, som den här wikin gör, kan missbrukas av spammare som använder ofta automatiserade verktyg för att lägga till länkar på många webbsajter.
+Även om dessa spamlänkar kan tas bort så är de till stort besvär.
 
-Ibland, speciellt då du lägger till nya externa länkar på en sida, visar wikin en bild på en färgad eller förvriden text
-och ber dig skriva texten som visas. Den uppgiften är svår att automatisera, men oftast lätt för en människa att utföra.
-På så sätt stoppas spammare och andra robotattacker, medan riktiga mäniskor kan göra sina redigeringar.
+Ibland, speciellt då du lägger till nya externa länkar på en sida, visar wikin en bild på en färgad eller förvriden text och ber dig skriva texten som visas.
+Eftersom den uppgiften är svår att automatisera, låter den de flesta riktiga människor göra sina redigeringar medan spammare och andra robotattacker stoppas.
 
 Tyvärr kan det här orsaka problem för användare med nedsatt syn eller som använder text- eller talbaserade webbläsare.
-För tillfället finns inga ljudbaserade alternativ tillgängliga. Om det här hindrar dig från att göra legitima ändringar
-kan du be någon av administratörerna om hjälp.
+För tillfället finns inga ljudbaserade alternativ tillgängliga.
+Kontakta [[{{MediaWiki:Grouppage-sysop}}|webbplatsens administratörer]] för hjälp om det här hindrar dig från att göra legitima ändringar.
 
 Tryck på bakåtknappen i din webbläsare för att gå tillbaks till sidredigeringsläget.',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
@@ -2442,11 +3347,19 @@
 #   * Allting från ett "#" till slutet av en rad är en kommentar
 #   * Varje icketom rad är ett reguljärt uttryck som matchar domänen i en URL
  #</pre> <!-- leave this line exactly as it is -->',
-	'right-skipcaptcha' => 'Utför handlingar som normalt kräver "captcha"-bekräftning utan att använda "captcha"',
+	'right-skipcaptcha' => 'Utföra handlingar som normalt kräver "captcha"-bekräftning utan att använda "captcha"',
 );
 
+/** Tamil (தமிழ்)
+ * @author Shanmugamp7
+ */
+$messages['ta'] = array(
+	'captchahelp-title' => 'CAPTCHA உதவி',
+);
+
 /** Telugu (తెలుగు)
  * @author Chaduvari
+ * @author Kiranmayee
  * @author Mpradeep
  * @author Veeven
  */
@@ -2460,24 +3373,23 @@
 	'captcha-create' => 'కొత్తపేజీని సృష్టించడానికి, కింద ఇచ్చిన లెక్క యొక్క జవాబును ఇక్కడున్న పెట్టెలో రాయండి ([[Special:Captcha/help|మరింత సహాయం]]):',
 	'captchahelp-title' => 'ఆమకవేప సహాయం',
 	'captchahelp-cookies-needed' => 'ఇది పని చెయ్యాలంటే మీ బ్రౌజరులో కూకీలు సశక్తమై ఉండాలి.',
-	'captchahelp-text' => "''ఆమకవేప'' అంటే '''ఆ'''టోమాటిక్ గా '''మ'''నుష్యులను, '''కం'''ప్యూటర్లను '''వే'''రుచేసే '''ప'''రీక్ష అని అర్థం.
+	'captchahelp-text' => 'ప్రజలనుండి రచనలను స్వీకరించే ఈ వికీ వంటి వెబ్‌సైట్లు, ఆటోమాటిక్ ప్రోగ్రాములతో తమ స్వంత లింకులను చేర్చే స్పాము ముష్కరుల దాడులకు గురవడం తరచూ జరుగుతూ ఉంటుంది. ఆ లింకులను తీసేయడం పెద్ద విషయం కాకపోయినప్పటికీ, అవి తలనెప్పి అనేది మాత్రం నిజం.
 
-ప్రజలనుండి రచనలను స్వీకరించే ఈ వికీ వంటి వెబ్‌సైట్లు, ఆటోమాటిక్ ప్రోగ్రాములతో తమ స్వంత లింకులను చేర్చే స్పాముష్కరుల దాడులకు గురవడం తరచూ జరుగుతూ ఉంటుంది. ఆ లింకులను తీసేయడం పెద్ద విషయం కాకపోయినప్పటికీ, అవి తలనెప్పి అనేది మాత్రం నిజం.
-
 కొన్నిసార్లు, ముఖ్యంగా ఏదైనా పేజీ నుండి బయటకు లింకులు ఇచ్చేటపుడు, వంకర్లు తిరిగిపోయి ఉన్న పదాల బొమ్మను చూపించి ఆ పదాన్ని టైపు చెయ్యమని వికీ మిమ్మల్ని అడగవచ్చు. దీన్ని ఆటోమాటిక్ టూల్సుతో చెయ్యడం చాలా కష్టం కాబట్టి, స్పాము జిత్తులు చెల్లవు; మనుష్యులు మాత్రం మామూలుగానే చెయ్యగలరు.
 
 దురదృష్టవశాత్తూ, చూపు సరిగా లేనివారికి, టెక్స్టు బ్రౌజర్లు మాత్రమే వాడేవారికి ఇది అసౌకర్యం కలిగిస్తుంది. ప్రస్తుతానికి శబ్దం వినిపించే వెసులుబాటు మాకు లేదు. మీరు రచనలు చెయ్యకుండా ఇది అడ్డుపడుతుంటే, సహాయం కోసం సైటు నిర్వాహకుణ్ణి సంప్రదించండి.
+మీరు చెసే విలువయిన, సమ్మతమయిన వ్యాస మార్పులు భద్రపరచటము కుదరకపొతె, దయచేసి [[{{MediaWiki:Grouppage-sysop}}|సైటు నిర్వహణాధికారి]]కి లేఖ రాయండి.
 
-మీ బ్రౌజర్లోని బ్యాక్(back) మీటను నొక్కి ఇంతకు ముందరి పేజీకి వెళ్ళండి.",
-	'captcha-addurl-whitelist' => ' #<!-- ఈ వాఖ్యాన్ని మొత్తం ఉన్నదున్నట్లు ఇలాగే వదిలేయండి --> <pre>
+మీ బ్రౌజర్లోని బ్యాక్(back) మీటను నొక్కి ఇంతకు ముందరి పేజీకి వెళ్ళండి.',
+	'captcha-addurl-whitelist' => ' #<!-- ఈ పంక్తిని ఉన్నదున్నట్లు ఇలాగే వదిలివేయండి --> <pre>
 # ఇక్కడ రాయాల్సిన విధానం ఇదీ:
-#  * "#" అనే అక్ధరం తరువా నుండి ఆ వాఖ్యం చివరివరకూ ఒక కామెంటు
-#  * ఖాళీగా లేని ప్రతీ లైను ఒక regex భాగము, ఇవి పేజీలో ఉన్న URLల్ల యొక్క హోష్టుతో మాత్రమే సరిచూడబడుతుంది
-  #</pre> <!-- ఈ వాఖ్యాన్ని మొత్తం ఉన్నదున్నట్లు ఇలాగే వదిలేయండి -->',
+#  * "#" అనే అక్షరం నుండి ఆ పంక్తి చివరివరకూ వ్యాఖ్యానం
+#  * ఖాళీగా లేని ప్రతీ పంక్తీ ఒక regex భాగము, ఇది పేజీలో ఉన్న URLల్ల యొక్క హోస్టుతో మాత్రమే సరిచూడబడుతుంది
+  #</pre> <!-- ఈ పంక్తిని ఉన్నదున్నట్లు ఇలాగే వదిలివేయండి -->',
 	'right-skipcaptcha' => 'ఆమకవేప ద్వారా పోకుండానే దాని ట్రిగ్గరు చర్యలను అమలు చెయ్యి',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -2494,7 +3406,7 @@
 
 Дар пораи аз маворид, ба вижа замоне, ки як пайванди интернетии ҷадид ба саҳифа изофа мешавад, вики метавонад, як тасвир аз ҳуруфи рангӣ ё матни бенурро ба шумо нишон бидиҳад ва аз шумо ворид кардани калимаи нишондодашударо пурсон мешавад. Ба хотири ин ки анҷоми ин кор ба шакли худкор душвор аст, ин амал ба аксари инсонҳое иҷозат медиҳад, ки ба ирсоли матолиб бипардозанд, дар ҳоле ки бештар роботҳои ҳамлакунанда ва ҳаразнигорҳоро мутавақиф мекунад.
 
-Мутассифона ин равиш мумкин аст, корбароне, ки қувваи босираашон суст ё аз мурургарҳои матнӣ ё овозӣ истифода мекунанд, дучори маҳдудиятҳое бикунад. Дар ҳоли ҳозир ҳеҷ чойгузини савтӣ барои ин равиш мавҷуд нест. Чунончи ин масъала шуморо дучори маҳдудияте дур аз интизор дар ирсоли навиштаҳои миҷоз мекунад, бо мудирони сомона оиди кӯмак тамос бигиред.  
+Мутассифона ин равиш мумкин аст, корбароне, ки қувваи босираашон суст ё аз мурургарҳои матнӣ ё овозӣ истифода мекунанд, дучори маҳдудиятҳое бикунад. Дар ҳоли ҳозир ҳеҷ чойгузини савтӣ барои ин равиш мавҷуд нест. Чунончи ин масъала шуморо дучори маҳдудияте дур аз интизор дар ирсоли навиштаҳои миҷоз мекунад, бо мудирони сомона оиди кӯмак тамос бигиред.
 
 Дар муругаратон тугмаи 'бозгашт'-ро бо пахш кардан ба саҳифаи вироишгар баргардед.",
 	'captcha-addurl-whitelist' => ' #<!—ин сатрро ҳамон гуна, ки ҳаст раҳо кунед --> <pre>
@@ -2504,39 +3416,96 @@
   #</pre> <!-- ин сатрро ҳамон гуна, ки ҳаст раҳо кунед-->',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'captcha-edit' => "Baroi viroişi in maqola, lutfan hosili çam'i zerinro hisob kuned va natiçaro dar ça'ba vorid kuned ([[Special:Captcha/help|ittilooti beştar]]):",
+	'captcha-desc' => 'Tatbiqi soddai CAPTCHA',
+	'captcha-addurl' => "Viroişi şumo pajvandhoi çadidi xoriçiro dar bar megirad. Baroi kūmak ba peşgiri az irsoli xudkori haraznomaho, lutfan hosili çam'i zerinro hisob kuned va natiçaro dar ça'ba vorid kuned ([[Special:Captcha/help|ittilooti beştar]]):",
+	'captcha-badlogin' => "Baroi kūmak ba peşgiri az şikastani kalimai ubur, lutfan hosili çam'i zerinro hisob kuned va natiçaro dar ça'ba vorid kuned  ([[Special:Captcha/help|ittilooti beştar]]):",
+	'captcha-createaccount' => "Baroi kūmak ba peşgiri az eçodi xudkori hisobi korbarī, lutfan hosili çam'i zerinro hisob kuned va natiçaro dar ça'ba vorid kuned  ([[Special:Captcha/help|ittilooti beştar]]):",
+	'captcha-createaccount-fail' => "Kodi ta'jid nodurust jo gumşuda.",
+	'captcha-create' => "Baroi eçodi sahifa, lutfan hosili çam'i zerinro hisob kuned va natiçaro dar ça'ba vorid kuned  ([[Special:Captcha/help|ittilooti beştar]]):",
+	'captchahelp-title' => 'Rohnamoi Captcha',
+	'captchahelp-cookies-needed' => "Baroi kor kardani on, şumo bojad kukihoi mururgaratonro fa'ol kuned.",
+	'captchahelp-text' => "Somonahoe, ki imkoni taƣjir tavassuti hamagon dar onho vuçud dorad, monandi in viki, goh jo nogoh tavassuti haraznigorihoe, ki tavassuti abzorhoi xudkor pajvandi xudro dar candin somonaho mefiristand, mavridi sū'istifoda qaror megirand.
+
+Dar porai az mavorid, ba viƶa zamone, ki jak pajvandi internetiji çadid ba sahifa izofa meşavad, viki metavonad, jak tasvir az hurufi rangī jo matni benurro ba şumo nişon bidihad va az şumo vorid kardani kalimai nişondodaşudaro purson meşavad. Ba xotiri in ki ançomi in kor ba şakli xudkor duşvor ast, in amal ba aksari insonhoe içozat medihad, ki ba irsoli matolib bipardozand, dar hole ki beştar robothoi hamlakunanda va haraznigorhoro mutavaqif mekunad.
+
+Mutassifona in raviş mumkin ast, korbarone, ki quvvai bosiraaşon sust jo az mururgarhoi matnī jo ovozī istifoda mekunand, ducori mahdudijathoe bikunad. Dar holi hozir heç cojguzini savtī baroi in raviş mavçud nest. Cunonci in mas'ala şumoro ducori mahdudijate dur az intizor dar irsoli naviştahoi miçoz mekunad, bo mudironi somona oidi kūmak tamos bigired.
+
+Dar murugaraton tugmai 'bozgaşt'-ro bo paxş kardan ba sahifai viroişgar bargarded.",
+	'captcha-addurl-whitelist' => ' #<!—in satrro hamon guna, ki hast raho kuned --> <pre>
+# Qoida ba in şakl ast:
+#  * Hama ciz az "#" to oxiri satr jak tavzeh ba nazar girifta meşavad
+#  * Har satre, ki xolī naboşad jak qit\'a dar nazar girifta meşavad, ki faqat bo nomi mizboni internetī sançida meşavad
+  #</pre> <!-- in satrro hamon guna, ki hast raho kuned-->',
+);
+
 /** Thai (ไทย)
  * @author Passawuth
  */
 $messages['th'] = array(
 	'captcha-edit' => 'เพื่อที่จะแก้ไขหน้านี้ กรุณาตอบโจทย์ปัญหาทางคณิตศาสตร์ข้างล่าง และใส่คำตอบลงในกล่อง ([[Special:Captcha/help|รายละเอียดเพิ่มเติม]]) :',
+	'captcha-addurl' => 'การแก้ไขของคุณมีลิงก์็ไปยังเว็บไซต์ภายนอกด้วย
+เพื่อที่จะป้องกันสแปม กรุณาแก้โจทย์ด้านล่าง และพิมพ์คำตอบลงในกล่อง ([[Special:Captcha/help|รายละเอียด]]):',
+	'captcha-badlogin' => 'กรุณาแก้โจทย์ด้านล่าง และพิมพ์คำตอบลงในกล่อง เพื่อที่จะป้องกันกา่รแอบแฮครหัสผ่านโดยผู้ไม่หวังดี ([[Special:Captcha/help|รายละเอียด]]):',
+	'captcha-createaccount' => 'กรุณาแก้โจทย์ด้านล่าง และพิมพ์คำตอบลงในกล่อง เพื่อที่จะป้องกันการสร้างบัญชีผู้ใช้โดยผู้ไม่หวังดี ([[Special:Captcha/help|รายละเอียด]]):',
 	'captcha-createaccount-fail' => 'โค้ดสำหรับการยืนยันยังไม่ได้ใส่หรือผิด',
+	'captcha-create' => 'กรุณาแก้โจทย์ด้านล่าง และพิมพ์คำตอบลงในกล่อง เพื่อที่จะสร้างหน้า
+([[Special:Captcha/help|รายละเอียด]]):',
+	'captchahelp-title' => 'เกี่ยวกับแคปต์ชา',
+	'captchahelp-cookies-needed' => 'คุณต้องอนุญาตคุกกี้บนเว็บบราวเซอร์ของคุณ เพื่อที่คุณจะสามารถล็อกอินได้',
 );
 
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'captcha-edit' => 'Bu sahypany redaktirlemek üçin, aşakdaky meselni çözüň we jogaby gutynyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'captcha-desc' => 'Ýönekeý captcha ama aşyrylyşy',
+	'captcha-addurl' => 'Özgerdişiňizde täze daşarky çykgytlar bar.
+Awtomatik spamdan goranmak üçin, aşakdaky ýönekeý soraga jogap beriň we jogaby gutynyň içine ýazyň ([[Special:Captcha/help|giňişleýin maglumat]]):',
+	'captcha-badlogin' => 'Awtomat parol döwmeklikden goranmaga kömekleşmek üçin, aşakdaky meseläni çözüň we jogaby gutynyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'captcha-createaccount' => 'Awtomat hasap döredilmeginden goranmaga kömekleşmek üçin, aşakdaky meseläni çözüň we jogaby gutynyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'captcha-createaccount-fail' => 'Nädogry ýa-da kem tassyklama kody.',
+	'captcha-create' => 'Sahypany döretmek üçin, aşakdaky meseläni çözüň we jogaby gutynyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'captcha-sendemail' => 'Awtomat spamdan goranmaga kömekleşmek üçin, aşakdaky meseläni çözüň we jogaby gutynyň içine ýazyň ([[Special:Captcha/help|giňişleýin maglumat]]):',
+	'captcha-sendemail-fail' => 'Nädogry ýa-da kem tassyklama kody.',
+	'captcha-disabledinapi' => 'Bu iş captcha talap edýär, şonuň üçin hem ony API bilen berjaý edip bolmaýar.',
+	'captchahelp-title' => 'Captcha ýardamy',
+	'captchahelp-cookies-needed' => 'Munuň işlemegi üçin brauzeriňiziň kukileri kabul etmegi gerek.',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
 	'captcha-edit' => 'Para magawaan ng pagbabago ang pahinang ito, pakisagot lamang ang payak na pagtutuos na nasa ibaba at ipasok ang sagot sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):',
-	'captcha-desc' => "Payak na pagsasakatuparan ng pagsusuring ''captcha''",
+	'captcha-desc' => 'Nagbibigay ng mga pamamaraan ng CAPTCHA upang maisanggalang laban sa mga basurang e-liham at panghuhula ng hudyat',
 	'captcha-addurl' => "Kasama sa mga pagbabagong ginawa mo ang bagong panlabas na mga kawing.
 Upang makatulong sa pagsasanggalang laban sa mga kusang dumarating na \"manlulusob\" (''spam''), pakisagot ang payak na pagtutuos sa ibaba at ipasok ang sagot sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):",
 	'captcha-badlogin' => 'Upang makatulong sa pagsasanggalang laban sa mga kusang paglutas ng hudyat, pakisagot lamang payak na pagtutuos na nasa ibaba at ipasok ang sagot sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):',
 	'captcha-createaccount' => 'Upang makatulong sa pagsasanggalang laban sa kusang paglikha ng kuwenta, pakisagot ang payak na pagtutuos na nasa ibaba at ipasok ang sagot sa loob ng kahon ([[Special:Captcha/help|masa marami pang kabatiran]]):',
 	'captcha-createaccount-fail' => 'Hindi tama o nawawalang kodigo ng pagpapatotoo.',
 	'captcha-create' => 'Upang malikha ang pahina, pakisagot lamang ang payak na pagtutuos na nasa ibaba at ipasok ang sagot sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):',
+	'captcha-sendemail' => 'Upang makatulong sa pagsasanggalang laban sa mga kusang pagsalakay ng ispam, pakisagot ang payak na pagtutuos na nasa ibaba at ipasok ang sagot sa loob ng kahong ([[Special:Captcha/help|mas marami pang kabatiran]]):',
+	'captcha-sendemail-fail' => 'Hindi tama o nawawalang kodigo ng pagpapatotoo.',
+	'captcha-disabledinapi' => 'Ang aksyon na ito ay nangangailangan ng isang captcha, kaya hindi ito maaring gawin sa pamamagitan ng API.',
 	'captchahelp-title' => "Tulong na pangpagsusuring ''captcha''",
 	'captchahelp-cookies-needed' => "Kinakailangan mong magkaroon ng mga gumaganang mga  \"otap\" (''cookies'') sa loob ng pantingin-tingin (''browser'') mo upang maisagawa ito.",
-	'captchahelp-text' => "Ang mga websayt na tumatanggap ng mga pagtatala (pagpapahayag) mula sa madla/publiko, katulad ng wiking ito, ay kalimitang inaabuso ng mga tagapagpadala ng mga \"manlulusob\" (''spam'') na gumagamit ng mga awtomatikong mga kagamitan upang makapagpaskil ng kanilang mga kawing sa maraming mga sityo/sayt.
+	'captchahelp-text' => "Ang mga websayt na tumatanggap ng mga pagpapaskil mula sa madla, katulad ng wiking ito, ay kalimitang inaabuso ng mga tagapagpadala ng mga manlulusob na gumagamit ng kusang mga kagamitan upang makapagpaskil ng kanilang mga kawing sa maraming mga sityo.
 Bagaman maaaring matanggal ang mga kawing na pangmanlulusob na ito, isa silang malaking abala.
 
 Kung minsan, lalo na kapag nagdaragdag ng bagong mga kawing na pangweb sa isang pahina, maaaring magpakita sa iyo ang wiki ng isang larawan ng may kulay o may masamang hubog na teksto at hihilingin kang magmakinilya ng ipinapakitang mga salita.
-Dahil sa isang itong gawaing mahirap na gawing kusa/awtomatiko, napapahintulutan nito ang halos lahat ng mga tunay na tao upang magawa ang kanilang mga pagtatala habang pinipigil ang karamihan sa mga nagpapadala ng mga ''spam'' at iba pang mga mala-robot na mga manlulusob.
+Dahil sa isa itong gawaing mahirap na gawing kusa, napapahintulutan nito ang halos lahat ng mga tunay na tao upang magawa ang kanilang mga pagpapaskil habang pinipigil ang karamihan sa mga nagpapadala ng mga ispam' at iba pang mala-robot na mga manlulusob.
 
-Sa kasawiang palad maaaring hindi makaginhawa ang mga tagagamit na may malabong paningin o ibang mga pantingin-tingin (''browser'') nakabase/nakabatay sa teksto o pagsasalita.
-Sa ngayon wala pa kaming pamalit na isang pang-audio.
-Makipagugnayan lamang sa mga tagapangasiwa ng sayt/sityo para humingi ng tulong kapag hindi inaasahang mapigilan ka sa pagsasagawa ng mga tunay na pagtatala/pagpapahayag.
+Sa kasawiang palad maaaring hindi makaginhawa ito sa mga tagagamit na may malabong paningin o gumagamit ng pangteksto o pangpagsasalitang mga pantingin-tingin.
+Sa ngayon wala pa kaming pamalit na isang pangpandinig.
+Makipag-ugnayan lamang sa [[{{MediaWiki:Grouppage-sysop}}|mga tagapangasiwa ng sityo]] para humingi ng tulong kapag hindi inaasahang mapigilan ka sa pagsasagawa ng mga tunay na pagpapaskil.
 
-Pindutin ang pindutang 'bumalik' (''back'') sa iyong pantingin-tingin upang makabalik sa pampatnugot ng pahina.",
+Pindutin ang pindutang 'bumalik' sa iyong pantingin-tingin upang makabalik sa pahinang pampatnugot.",
 	'captcha-addurl-whitelist' => " #<!-- leave this line exactly as it is --> <pre>
 # Ang palaugnayan ay ayon sa mga sumusunod:
 #  * Lahat ng bagay mula sa isang \"#\" na panitik hanggang sa wakas ng isang guhit/hanay ay isang puna (kumento)
@@ -2558,18 +3527,21 @@
 	'captcha-createaccount' => 'Otomatik spama karşı bir koruma olarak, hesabınızı kaydetmek için bu resimde gözüken kelimeleri tuşlamanız gerekmektedir ([[Special:Captcha/help|Bu nedir?]]):',
 	'captcha-createaccount-fail' => 'Hatalı ya da eksik onay kodu.',
 	'captcha-create' => 'Bu sayfayı oluşturmak için, lütfen aşağıdaki basit soruyu cevaplayın ve kutunun içinde cevabı yazın ([[Special:Captcha/help|ayrıntılı bilgiler]]):',
+	'captcha-sendemail' => 'Otomatik spamlere karşı korunmaya yardımcı olmak için, lütfen aşağıdaki basit işlemi çözün ve cevabı kutuya yazın ([[Special:Captcha/help|daha fazla bilgi]]):',
+	'captcha-sendemail-fail' => 'Yanlış veya eksik onay kodu.',
+	'captcha-disabledinapi' => 'Bu eylem captcha gerektiriyor, dolayısıyla API aracılığıyla yapılamaz.',
 	'captchahelp-title' => 'Captcha yardımı',
 	'captchahelp-cookies-needed' => 'Bunun çalışabilmesi için tarayıcınızın çerezleri kabul edilmesi gerekiyor.',
-	'captchahelp-text' => "{{SITENAME}} gibi dışarıdan katılıma izin veren internet siteleri, pek çok siteye bağlantılar yaratan otomatik araçlarını çalıştıran ''spam''cilerin saldırılarına sıklıkla maruz kalırlar. Bu spam nitelikli bağlantılar silinebilir, fakat bu temizlik önemli bir sıkıntı yaratacaktır.
+	'captchahelp-text' => "Bu viki gibi, dışarıdan katılıma izin veren web siteleri, pek çok siteye bağlantılar yaratan otomatik araçlarını çalıştıran ''spam''cilerin saldırılarına sıklıkla maruz kalırlar. Bu spam nitelikli bağlantılar silinebilir, fakat bu temizlik önemli bir sıkıntı yaratacaktır.
 
 Bazen, özellikle bir başka internet sitesine bağ eklerken, bozulmuş ve renklendirilmiş harflerden oluşan bir resim gösterilebilir ve sizden bu harfleri kutucuğa girmenizi istenir. Bu, otomatizasyonu oldukça zor bir iş olduğu için, gerçek insanlar bu işlemi yerine getirebilirken, spam yapmaya yarayan araçlar bunu yapmakta zorlanacaklardır.
 
-Ne var ki bu durum, görme sorunları yaşayan kişiler ve salt yazı-tabanlı veya salt ses tabanlı internet tarayıcı programları kullanan kimseler için rahatsızlık yaratmaktadır. Ne yazık ki, şu an için sesli bir alternatifimiz bulunmamaktadır. Şayet bu sizin yeni hesap açmanızı engelliyorsa, yardım için site yöneticilerinden yardım isteyiniz.
+Ne var ki bu durum, görme sorunları yaşayan kişiler ve salt yazı-tabanlı veya salt ses tabanlı internet tarayıcı programları kullanan kimseler için rahatsızlık yaratmaktadır. Ne yazık ki, şu an için sesli bir alternatifimiz bulunmamaktadır. Eğer bu, sizin geçerli gönderiler yapmanıza beklenmedik bir şekilde engel oluyorsa, lütfen destek için [[{{MediaWiki:Grouppage-sysop}}|site yöneticileriyle]] irtibata geçin.
 
 Sayfa düzenleyiciye dönmek için tarayıcınızın 'geri' tuşuna basınız.",
 	'captcha-addurl-whitelist' => ' #<!-- bu satırı olduğu gibi bırakın --> <pre>
 # Sözdizimi aşağıdaki gibidir:
-#  * "#" karakterinden satır sonuna kadar herşey yorumdur
+#  * "#" karakterinden satır sonuna kadar her şey yorumdur
 #  * Her boş olmayan satır, URLler içinde sadece host ile eşleşen regex parçalarıdır
   #</pre> <!-- bu satırı olduğu gibi bırakın -->',
 	'right-skipcaptcha' => "Captcha ile tetiklenen hareketleri, captcha'yı geçme zorunluluğu olmadan yap",
@@ -2577,17 +3549,23 @@
 
 /** Ukrainian (Українська)
  * @author Ahonc
+ * @author Alex Khimich
  * @author NickK
+ * @author Riwnodennyk
+ * @author Тест
  */
 $messages['uk'] = array(
 	'captcha-edit' => 'Щоб відредагувати цю сторінку, будь ласка, виконайте просту арифметичну дію і введіть відповідь у текстове поле ([[Special:Captcha/help|докладніше]]):',
-	'captcha-desc' => 'Проста реалізація CAPTCHA',
+	'captcha-desc' => 'Забезпечує методи CAPTCHA для захисту від спаму і підбору пароля',
 	'captcha-addurl' => 'Ви додали посилання на зовнішній сайт.
 Із метою захисту від автоматичного спаму, будь ласка, виконайте просту арифметичну дію і введіть відповідь у текстове поле ([[Special:Captcha/help|докладніше]]):',
 	'captcha-badlogin' => 'Із метою захисту від автоматичного злому пароля, будь ласка, виконайте просту арифметичну дію і введіть відповідь у текстове поле ([[Special:Captcha/help|докладніше]]):',
 	'captcha-createaccount' => 'Із метою захисту від автоматичного створення облікового запису, будь ласка, виконайте просту арифметичну дію і введіть відповідь у текстове поле ([[Special:Captcha/help|докладніше]]):',
 	'captcha-createaccount-fail' => 'Неправильний або відсутній код підтвердження.',
 	'captcha-create' => 'Щоб створити сторінку, будь ласка, виконайте просту арифметичну дію і введіть відповідь у текстове поле ([[Special:Captcha/help|докладніше]]):',
+	'captcha-sendemail' => 'З метою захисту від автоматичного спаму, дайте відповідь на простий математичний приклад і введіть відповідь ([[Special:Captcha/help|деталі]]):',
+	'captcha-sendemail-fail' => 'Неправильний або відсутній код підтвердження.',
+	'captcha-disabledinapi' => 'Ця дія потребує перевірки CAPTCHA, тому не може бути здійснена за допомогою API.',
 	'captchahelp-title' => 'Довідка про CAPTCHA',
 	'captchahelp-cookies-needed' => 'Вам потрібно ввімкнути куки у браузері, щоб ця функція запрацювала.',
 	'captchahelp-text' => 'Веб-сайти, що дозволяють додавати або змінювати свій вміст, у тому числі вікі, часто стають ціллю спамерів, які використовують програми для автоматичного додавання посилань.
@@ -2596,7 +3574,7 @@
 Іноді, наприклад при додаванні на сторінку нового веб-посилання, вікі може показати вам картинку з кольоровим або спотвореним текстом і запропонувати ввести текст, який ви бачите.
 Оскільки подібну задачу важко автоматизувати, це дає можливість більшості людей робити свої зміни, в той час як більшість спамерських і вандальних програм не можуть цього зробити.
 
-На жаль, подібний захист може спричинити незручності для людей із вадами зору. Зараз у нас нема звукової альтернативи для такої перевірки. Будь ласка, зверніться по допомогу до адміністраторів, якщо подібна перевірка заважає вам добросовісно працювати з сайтом.
+На жаль, подібний захист може спричинити незручності для людей із вадами зору. Зараз у нас нема звукової альтернативи для такої перевірки. Будь ласка, зверніться по допомогу до [[{{MediaWiki:Grouppage-sysop}}|адміністраторів]], якщо подібна перевірка заважає вам добросовісно працювати з сайтом.
 
 Натисніть кнопку «Назад» у вашому браузері, щоб повернутися до редагування.',
 	'captcha-addurl-whitelist' => '#<!-- leave this line exactly as it is --> <pre>
@@ -2619,13 +3597,16 @@
 	'captcha-createaccount' => 'Come misura precauzional contro i tentativi de creazion automatica dei account, par registrarse te ghè da risòlvar sto senplice calcolo presentà de seguito e inserir el risultato ne la casela ([[Special:Captcha/help|magiori informazion]]):',
 	'captcha-createaccount-fail' => 'Codice de verifica sbaglià o mancante.',
 	'captcha-create' => 'Per crear la pagina te ghè da risòlvar sto senplice calcolo presentà de seguito e inserir el risultato ne la casela ([[Special:Captcha/help|magiori informazion]]):',
+	'captcha-sendemail' => 'Come misura precauzional contro i tentativi de forzatura automatica de la password, te ghè da risòlvar sto senplice calcolo e inserir el risultato ne la casela ([[Special:Captcha/help|magiori informazion]]):',
+	'captcha-sendemail-fail' => 'Codice de verifica sbaglià o mancante.',
+	'captcha-disabledinapi' => 'Sta azion la richiede un captcha, quindi no se pole farla tramite API.',
 	'captchahelp-title' => "Coss'èlo sto captcha?",
 	'captchahelp-cookies-needed' => 'Te ghè da verghe i cookies abilità sul to browser par proseguir.',
 	'captchahelp-text' => "Sucéde spesso che i siti web che i acèta messagi publici, come sta wiki, i sia tolti de mira da spammer che dòpara strumenti automatici par inserir colegamenti publicitari verso un gran nùmaro de siti. Anca se i colegamenti insiderài i se pol cavar, se trata comunque de na secadura mìa da póco.
 
 In çerti casi, par esenpio quando se çerca de zontar novi colegamenti web in te na pagina, el software wiki el pol mostrar na imagine con un breve testo colorà e/o distorto, domandàndoghe a l'utente de riscrìvarlo drento na casela fata aposta. Sicome i computer no i xe mìa boni de replicar a la perfezion sta azion, sto mecanismo el ghe consente a (quasi tuti) i utenti reali de conpletar l'inserimento che i volea, inpedéndoghe l'acesso a la magior parte dei spammer e dei altri atachi automatizà.
 
-Sfortunatamente, ste misure de sicureza le pole métar in dificoltà i utenti che gà problemi de vista o quei che dòpara browser testuali o basà su la sintesi vocale. Purtropo al momento no xe disponibile nissun mecanismo alternativo basà su messagio audio; se ste procedure le inpedisse l'inserimento de informazion che se ritien legìtime, se prega de contatar i aministradori del sito e domandarghe assistensa.
+Sfortunatamente, ste misure de sicureza le pole métar in dificoltà i utenti che gà problemi de vista o quei che dòpara browser testuali o basà su la sintesi vocale. Purtropo al momento no xe disponibile nissun mecanismo alternativo basà su messagio audio; se ste procedure le inpedisse l'inserimento de informazion che se ritien legìtime, se prega de contatar i [[{{MediaWiki:Grouppage-sysop}}|aministradori del sito]] e domandarghe assistensa.
 
 Struca el boton \"Indrìo\" del to browser par tornar a la pagina de modifica.",
 	'captcha-addurl-whitelist' => ' #<!-- no sta modificar in alcun modo sta riga --> <pre>
@@ -2642,7 +3623,7 @@
  */
 $messages['vi'] = array(
 	'captcha-edit' => 'Để sửa đổi trang này, xin hãy giải phép cộng đơn giản dưới đây và gõ câu trả lời vào ô ([[Special:Captcha/help|thông tin thêm]]):',
-	'captcha-desc' => 'Bộ CAPTCHA đơn giản',
+	'captcha-desc' => 'Chống spam và sự đoán mật khẩu dùng CAPTCHA',
 	'captcha-addurl' => 'Sửa đổi của bạn có chứa các liên kết ra bên ngoài. Để giúp tránh spam tự động, xin hãy giải phép toán đơn giản ở dưới và gõ kết quả vào ô ([[Special:Captcha/help|thông tin thêm]]):',
 	'captcha-badlogin' => 'Để giúp tránh hành động bẻ mật khẩu tự động, xin hãy giải phép cộng
 đơn giản ở dưới và gõ kết quả vào ô ([[Special:Captcha/help|thông tin thêm]]):',
@@ -2651,13 +3632,20 @@
 	'captcha-createaccount-fail' => 'Thiếu mã xác nhận hoặc mã xác nhận sai.',
 	'captcha-create' => 'Để tạo mới trang, xin hãy giải phép cộng đơn giản ở dưới và gõ
 câu trả lời vào ô ([[Special:Captcha/help|thông tin thêm]]):',
+	'captcha-sendemail' => 'Để xác nhận rằng bạn không phải là tay spam, xin hãy giải phép cộng đơn giản ở dưới và gõ câu trả lời vào ô ([[Special:Captcha/help|thông tin thêm]]):',
+	'captcha-sendemail-fail' => 'Mã xác nhận không chính xác hoặc chưa được cung cấp.',
+	'captcha-disabledinapi' => 'Tác vụ này đòi người dùng giải CAPTCHA trước tiên, nên không thể thực hiện nó qua API.',
 	'captchahelp-title' => 'Trợ giúp Captcha',
-	'captchahelp-cookies-needed' => 'Bạn sẽ cần phải bật cookie trong trình duyệt của bạn để chức năng này hoạt động',
-	'captchahelp-text' => 'Những website cho phép bất kỳ ai cũng có thể gửi thông tin như wiki thường bị các tay spam lạm dụng dùng công cụ tự động gửi các liên kết của họ tới rất nhiều website khác. Tuy chúng ta có thể xóa các liên kết này khỏi trang, chúng vẫn gây nhiều phiền toái.
+	'captchahelp-cookies-needed' => 'Bạn cần phải bật cookie trong trình duyệt để chức năng này hoạt động được.',
+	'captchahelp-text' => 'Những website cho phép bất kỳ ai cũng có thể gửi thông tin, như wiki này, thường bị các tay spam dùng công cụ tự động để gửi các liên kết của họ tới rất nhiều trang.
+Tuy chúng ta có thể xóa các liên kết này khỏi trang, chúng vẫn gây nhiều phiền toái.
 
-Đôi khi, nhất là khi bạn bổ sung liên kết mới vào trang, wiki có thể hiển thị một hình có chữ dạng màu mè và méo mó rồi yêu cầu bạn gõ lại các chữ trong hình này. Do các phần mềm tự động khó đọc những hình này, nên mọi người bình thường có thể tiếp tục gửi thông tin, đồng thời chặn được các spam và robot phá hoại.
+Đôi khi, nhất là khi bạn bổ sung liên kết mới vào trang, wiki có thể hiển thị một hình có chữ dạng màu mè và méo mó rồi yêu cầu bạn gõ lại các chữ trong hình này.
+Do các phần mềm tự động khó đọc những hình này, nên mọi người bình thường có thể tiếp tục gửi thông tin, mà vẫn chặn được các spam và robot phá hoại.
 
-Tuy vậy, tính năng này có thể bất tiện đối với những độc giả có thị giác yếu hay đang sử dụng trình duyệt bằng văn bản thuần hay trình duyệt bằng tiếng nói. Hiện tại chúng tôi chưa có chức năng phát âm thay thế. Xin hãy liên lạc với người quản trị trang web để được trợ giúp nếu điều này vô tình ngăn cản bạn đóng góp nội dung tốt.
+Tuy vậy, tính năng này có thể bất tiện đối với những độc giả có thị giác yếu hay đang sử dụng trình duyệt bằng văn bản thuần hay trình duyệt bằng tiếng nói.
+Hiện tại chúng tôi chưa có chức năng phát âm thay thế.
+Xin hãy liên lạc với [[{{MediaWiki:Grouppage-sysop}}|người quản trị trang web]] để được trợ giúp nếu điều này vô tình ngăn cản bạn đóng góp nội dung tốt.
 
 Nhấn chuột vào nút “Back” của trình duyệt để trở lại trang soạn thảo.',
 	'captcha-addurl-whitelist' => ' #<!-- xin để dòng này đừng thay đổi --> <pre>
@@ -2708,7 +3696,27 @@
 Clitchîz sol boton «En erî» di vosse betchteu waibe po rivni al pådje di dvant.",
 );
 
-/** Yue (粵語) */
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'captcha-addurl' => 'אײַער רעדאַקטירונג אַנטהאַלט נײַע דרויסנדיקע לינקען.
+כדי צו העלפֿן שיצן קעגן אויטאמזירטן ספאַם, זײַט אַזוי גוט און לייזט דאָס פשוטע רעטעניש אונטן און קלאַפט אײַן דעם ענטפֿער אינעם קעסטל ([[Special:Captcha/help|נאך אינפֿארמאַציע]]):',
+	'captcha-badlogin' => 'כדי צו העלפֿן קעגן אויטאמאַטישער ברעכן פאַסווערטער, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
+	'captcha-createaccount' => 'כדי צו העלפֿן קעגן אויטאמאַטישע שאַפֿן קאנטעס, אנא פתרו את תרגיל החיבור הפשוט שלהלן והקלידו את התשובה בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
+	'captcha-createaccount-fail' => 'גרײַזיקער אָדער פֿעלנדיקער באַשטעטיק־קאָד',
+	'captchahelp-title' => 'CAPTCHA הילף',
+);
+
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'captchahelp-title' => 'Ìrànwọ́ Captcha',
+	'captchahelp-cookies-needed' => 'Ẹ gbọ́jọ̀ gba cookies láyé nínú agbétàkùn yín kí èyí ó tó ṣiṣẹ́.',
+);
+
+/** Cantonese (粵語) */
 $messages['yue'] = array(
 	'captcha-edit' => '要編輯呢一篇文,請答出一個簡單嘅加數和,跟住響個盒度打入 ([[Special:Captcha/help|更多資料]]):',
 	'captcha-desc' => '簡單嘅 captcha 實行',
@@ -2734,54 +3742,71 @@
 	'right-skipcaptcha' => '執行captcha引發嘅動作時唔需要經過captcha',
 );
 
-/** Simplified Chinese (‪中文(简体)‬) */
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Bencmq
+ * @author Hzy980512
+ * @author Liangent
+ * @author PhiLiP
+ */
 $messages['zh-hans'] = array(
-	'captcha-edit' => '要编辑这篇文章,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
-	'captcha-desc' => '简单的 captcha 实行',
-	'captcha-addurl' => '你编辑的内容中含有一个新的URL连结;为了免受自动垃圾程式的侵扰,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
-	'captcha-badlogin' => '为了防止程式自动破解密码,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
-	'captcha-createaccount' => '为了防止程式自动注册,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
+	'captcha-edit' => '要编辑这篇文章,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
+	'captcha-desc' => '通过验证码技术来阻止垃圾邮件和密码猜解',
+	'captcha-addurl' => '你编辑的内容中含有一个新的外部链接;为了免受自动垃圾程序的侵扰,请答出一个简单的加法,然后在框内输入([[Special:Captcha/help|更多信息]]):',
+	'captcha-badlogin' => '为了防止程式自动破解密码,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
+	'captcha-createaccount' => '为了防止程式自动注册,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
 	'captcha-createaccount-fail' => '验证码错误或丢失。',
-	'captcha-create' => '要创建页面,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
-	'captchahelp-title' => 'Captcha 说明',
+	'captcha-create' => '要创建页面,请答出一个简单的加法,然後在框内输入 ([[Special:Captcha/help|更多资料]]):',
+	'captcha-sendemail' => '为了防止程式进行破坏,请答出一个简单的计算,然后在框内输入 ([[Special:Captcha/help|更多资料]]):',
+	'captcha-sendemail-fail' => '验证码错误或丢失。',
+	'captcha-disabledinapi' => '这个要求需要经过验证码验证,故无法透过API使用。',
+	'captchahelp-title' => '验证码说明',
 	'captchahelp-cookies-needed' => '您需要开启浏览器上的cookies方可使用这个工具。',
 	'captchahelp-text' => '像本站一样,对公众开放编辑的网站经常被垃圾连结骚扰。那些人使用自动化垃圾程序将他们的连结张贴到很多网站。虽然这些连结可以被清除,但是这些东西确实令人十分讨厌。
 
-有时,特别是当给一个页面添加新的网页连结时,本站会让你看一幅有颜色的或者有变形文字的图像,并且要你输入所显示的文字。因为这是难以自动完成的一项任务,它将允许人保存他们的编辑,同时阻止大多数发送垃圾邮件者和其他机器人的攻击。
+有时,特别是当给一个页面添加新的网页链接时,本站会让你看一幅有颜色的或者有变形文字的图像,并且要你输入所显示的文字。因为这是难以自动完成的一项任务,它将允许人保存他们的编辑,同时阻止大多数发送垃圾邮件者和其他机器人的攻击。
 
-令人遗憾是,这会使得视力不好的人,或者使用基於文本或者基於声音的浏览器的用户感到不便。而目前我们还没有提供的音频的选择。如果这正好阻止你进行正常的编辑,请和管理员联系获得帮助。
+令人遗憾是,这会使得视力不好的人,或者使用基於文本或者基於声音的浏览器的用户感到不便。而目前我们还没有提供的音频的选择。如果这正好阻止你进行正常的编辑,请和[[{{MediaWiki:Grouppage-sysop}}|站点管理员]]联系获得帮助。
 
-点击浏览器中的「後退」按钮返回你所编辑的页面。',
+点击浏览器中的“后退”按钮返回你所编辑的页面。',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 # 语法像下面这样:
-#   * 所有由 "#" 字元之後嘅字元至行尾是注解
-#   * 所有非空白行是一个regex部份,只是跟在里面的URL主机相符
+#   * 所有在 "#" 字符后的内容全部是注释
+#   * 所有非空白行是一个正则表达式,只会对URL中的内容进行匹配
  #</pre> <!-- leave this line exactly as it is -->',
-	'right-skipcaptcha' => '执行captcha引发的动作时不需要经过captcha',
+	'right-skipcaptcha' => '绕过验证码的验证',
 );
 
-/** Traditional Chinese (‪中文(繁體)‬) */
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Horacewai2
+ * @author Hydra
+ * @author Liangent
+ * @author Mark85296341
+ * @author Waihorace
+ */
 $messages['zh-hant'] = array(
-	'captcha-edit' => '要編輯這篇文章,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
-	'captcha-desc' => '簡單的 captcha 實行',
-	'captcha-addurl' => '你編輯的內容中含有一個新的URL連結;為了免受自動垃圾程式的侵擾,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
-	'captcha-badlogin' => '為了防止程式自動破解密碼,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
-	'captcha-createaccount' => '為了防止程式自動註冊,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
-	'captcha-createaccount-fail' => '驗證碼錯誤或丟失。',
-	'captcha-create' => '要創建頁面,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-edit' => '要編輯這篇文章,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-desc' => '通過驗證碼技術來阻止垃圾郵件和密碼猜解',
+	'captcha-addurl' => '你編輯的內容中含有一個新的URL連結;為了免受自動垃圾程式的侵擾,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-badlogin' => '為了防止程式自動破解密碼,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-createaccount' => '為了防止程式自動註冊,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-createaccount-fail' => '驗證碼錯誤或遺失。',
+	'captcha-create' => '要建立頁面,請答出一個簡單的加法,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-sendemail' => '為了防止程式進行破壞,請答出一個簡單的計算,然後在框內輸入 ([[Special:Captcha/help|更多資料]]):',
+	'captcha-sendemail-fail' => '驗證碼錯誤或遺失。',
+	'captcha-disabledinapi' => '這個要求需要經過Captcha驗證,故無法透過API使用。',
 	'captchahelp-title' => 'Captcha 說明',
 	'captchahelp-cookies-needed' => '您需要開啟瀏覽器上的cookies方可使用這個工具。',
-	'captchahelp-text' => '像本站一樣,對公眾開放編輯的網站經常被垃圾連結騷擾。那些人使用自動化垃圾程序將他們的連結張貼到很多網站。雖然這些連結可以被清除,但是這些東西確實令人十分討厭。
+	'captchahelp-text' => '像本站一樣,對公眾開放編輯的網站經常被垃圾連結騷擾。那些人使用自動化垃圾程式將他們的連結張貼到很多網站。雖然這些連結可以被清除,但是這些東西確實令人十分討厭。
 
-有時,特別是當給一個頁面添加新的網頁連結時,本站會讓你看一幅有顏色的或者有變形文字的圖像,並且要你輸入所顯示的文字。因為這是難以自動完成的一項任務,它將允許人保存他們的編輯,同時阻止大多數發送垃圾郵件者和其他機器人的攻擊。
+有時,特別是當給一個頁面添加新的網頁連結時,本站會讓你看一幅有顏色的或者有變形文字的圖像,並且要你輸入所顯示的文字。因為這是難以自動完成的一項任務,它將允許人儲存他們的編輯,同時阻止大多數發送垃圾郵件者和其他機器人的攻擊。
 
-令人遺憾是,這會使得視力不好的人,或者使用基於文本或者基於聲音的瀏覽器的用戶感到不便。而目前我們還沒有提供的音頻的選擇。如果這正好阻止你進行正常的編輯,請和管理員聯繫獲得幫助。
+令人遺憾是,這會使得視力不好的人,或者使用基於文字或者基於聲音的瀏覽器的使用者感到不便。而目前我們還沒有提供的音訊的選擇。如果這正好阻止你進行正常的編輯,請和[[{{MediaWiki:Grouppage-sysop}}|站點管理員]]聯繫取得幫助。
 
 點擊瀏覽器中的「後退」按鈕返回你所編輯的頁面。',
 	'captcha-addurl-whitelist' => ' #<!-- leave this line exactly as it is --> <pre>
 # 語法像下面這樣:
 #   * 所有由 "#" 字元之後嘅字元至行尾是註解
-#   * 所有非空白行是一個regex部份,只是跟在裏面的URL主機相符
+#   * 所有非空白行是一個regex部份,只是跟在裡面的URL主機相符
  #</pre> <!-- leave this line exactly as it is -->',
 	'right-skipcaptcha' => '執行captcha引發的動作時不需要經過captcha',
 );

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEdit.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,11 +1,13 @@
 <?php
 
 /**
- * Experimental captcha plugin framework.
- * Not intended as a real production captcha system; derived classes
- * can extend the base to produce their fancy images in place of the
- * text-based test output here.
+ * ConfirmEdit MediaWiki extension.
  *
+ * This is a framework that holds a variety of CAPTCHA tools. The
+ * default one, 'SimpleCaptcha', is not intended as a production-
+ * level CAPTCHA system, and another one of the options provided
+ * should be used in its place for any real usages.
+ *
  * Copyright (C) 2005-2007 Brion Vibber <brion at wikimedia.org>
  * http://www.mediawiki.org/
  *
@@ -21,26 +23,24 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  */
 
 if ( !defined( 'MEDIAWIKI' ) ) {
 	exit;
 }
 
-global $wgExtensionFunctions, $wgGroupPermissions;
-
 $wgExtensionFunctions[] = 'confirmEditSetup';
 $wgExtensionCredits['other'][] = array(
+	'path' => __FILE__,
 	'name' => 'ConfirmEdit',
-	'author' => 'Brion Vibber',
-	'svn-date' => '$LastChangedDate: 2008-07-03 01:09:26 +0200 (Thu, 03 Jul 2008) $',
-	'svn-revision' => '$LastChangedRevision: 36959 $',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:ConfirmEdit',
-	'description' => 'Simple captcha implementation',
+	'author' => array( 'Brion Vibber', '...' ),
+	'url' => 'https://www.mediawiki.org/wiki/Extension:ConfirmEdit',
+	'version' => '1.1',
 	'descriptionmsg' => 'captcha-desc',
 );
 
@@ -69,7 +69,6 @@
  */
 $wgCaptchaWhitelistIP = false;
 
-global $wgCaptcha, $wgCaptchaClass, $wgCaptchaTriggers;
 $wgCaptcha = null;
 $wgCaptchaClass = 'SimpleCaptcha';
 
@@ -89,14 +88,15 @@
  */
 $wgCaptchaTriggers = array();
 $wgCaptchaTriggers['edit']          = false; // Would check on every edit
-$wgCaptchaTriggers['create']		= false; // Check on page creation.
+$wgCaptchaTriggers['create']        = false; // Check on page creation.
+$wgCaptchaTriggers['sendemail']     = false; // Special:Emailuser
 $wgCaptchaTriggers['addurl']        = true;  // Check on edits that add URLs
 $wgCaptchaTriggers['createaccount'] = true;  // Special:Userlogin&type=signup
 $wgCaptchaTriggers['badlogin']      = true;  // Special:Userlogin after failure
 
 /**
  * You may wish to apply special rules for captcha triggering on some namespaces.
- * $wgCaptchaTriggersOnNamespace[<namespace id>][<trigger>] forces an always on / 
+ * $wgCaptchaTriggersOnNamespace[<namespace id>][<trigger>] forces an always on /
  * always off configuration with that trigger for the given namespace.
  * Leave unset to use the global options ($wgCaptchaTriggers).
  *
@@ -104,9 +104,9 @@
  */
 $wgCaptchaTriggersOnNamespace = array();
 
-#Example:
-#$wgCaptchaTriggersOnNamespace[NS_TALK]['create'] = false; //Allow creation of talk pages without captchas.
-#$wgCaptchaTriggersOnNamespace[NS_PROJECT]['edit'] = true; //Show captcha whenever editing Project pages.
+# Example:
+# $wgCaptchaTriggersOnNamespace[NS_TALK]['create'] = false; //Allow creation of talk pages without captchas.
+# $wgCaptchaTriggersOnNamespace[NS_PROJECT]['edit'] = true; //Show captcha whenever editing Project pages.
 
 /**
  * Indicate how to store per-session data required to match up the
@@ -118,7 +118,6 @@
  * 'CaptchaCacheStore' uses $wgMemc, which avoids the cookie dependency
  * but may be fragile depending on cache configuration.
  */
-global $wgCaptchaStorageClass;
 $wgCaptchaStorageClass = 'CaptchaSessionStore';
 
 /**
@@ -127,7 +126,6 @@
  *
  * Default is a half hour.
  */
-global $wgCaptchaSessionExpiration;
 $wgCaptchaSessionExpiration = 30 * 60;
 
 /**
@@ -139,21 +137,18 @@
  *
  * Default is five minutes.
  */
-global $wgCaptchaBadLoginExpiration;
 $wgCaptchaBadLoginExpiration = 5 * 60;
 
 /**
  * Allow users who have confirmed their e-mail addresses to post
  * URL links without being harassed by the captcha.
  */
-global $ceAllowConfirmedEmail;
 $ceAllowConfirmedEmail = false;
 
-/** 
+/**
  * Number of bad login attempts before triggering the captcha.  0 means the
  * captcha is presented on the first login.
  */
-global $wgCaptchaBadLoginAttempts;
 $wgCaptchaBadLoginAttempts = 3;
 
 /**
@@ -176,46 +171,46 @@
 $wgCaptchaRegexes = array();
 
 /** Register special page */
-$wgSpecialPages['Captcha'] = array( /*class*/'CaptchaSpecialPage', /*name*/'Captcha' );
+$wgSpecialPages['Captcha'] = 'CaptchaSpecialPage';
 
 $wgConfirmEditIP = dirname( __FILE__ );
 $wgExtensionMessagesFiles['ConfirmEdit'] = "$wgConfirmEditIP/ConfirmEdit.i18n.php";
+$wgExtensionMessagesFiles['ConfirmEditAlias'] = "$wgConfirmEditIP/ConfirmEdit.alias.php";
 
-if ( defined( 'MW_SUPPORTS_EDITFILTERMERGED' ) ) {
-	$wgHooks['EditFilterMerged'][] = 'ConfirmEditHooks::confirmEditMerged';
-} else {
-	$wgHooks['EditFilter'][] = 'ConfirmEditHooks::confirmEdit';
-}
+$wgHooks['EditFilterMerged'][] = 'ConfirmEditHooks::confirmEditMerged';
 $wgHooks['UserCreateForm'][] = 'ConfirmEditHooks::injectUserCreate';
 $wgHooks['AbortNewAccount'][] = 'ConfirmEditHooks::confirmUserCreate';
 $wgHooks['LoginAuthenticateAudit'][] = 'ConfirmEditHooks::triggerUserLogin';
 $wgHooks['UserLoginForm'][] = 'ConfirmEditHooks::injectUserLogin';
 $wgHooks['AbortLogin'][] = 'ConfirmEditHooks::confirmUserLogin';
+$wgHooks['EmailUserForm'][] = 'ConfirmEditHooks::injectEmailUser';
+$wgHooks['EmailUser'][] = 'ConfirmEditHooks::confirmEmailUser';
 # Register API hook
 $wgHooks['APIEditBeforeSave'][] = 'ConfirmEditHooks::confirmEditAPI';
+$wgHooks['APIGetAllowedParams'][] = 'ConfirmEditHooks::APIGetAllowedParams';
+$wgHooks['APIGetParamDescription'][] = 'ConfirmEditHooks::APIGetParamDescription';
 
-$wgAutoloadClasses['ConfirmEditHooks'] 
-	= $wgAutoloadClasses['SimpleCaptcha'] 
-	= $wgAutoloadClasses['CaptchaSessionStore']
-	= $wgAutoloadClasses['CaptchaCacheStore']
-	= $wgAutoloadClasses['CaptchaSpecialPage']
-	= "$wgConfirmEditIP/ConfirmEdit_body.php";
+$wgAutoloadClasses['ConfirmEditHooks'] = "$wgConfirmEditIP/ConfirmEditHooks.php";
+$wgAutoloadClasses['SimpleCaptcha'] = "$wgConfirmEditIP/Captcha.php";
+$wgAutoloadClasses['CaptchaStore'] = "$wgConfirmEditIP/CaptchaStore.php";
+$wgAutoloadClasses['CaptchaSessionStore'] = "$wgConfirmEditIP/CaptchaStore.php";
+$wgAutoloadClasses['CaptchaCacheStore'] = "$wgConfirmEditIP/CaptchaStore.php";
+$wgAutoloadClasses['CaptchaSpecialPage'] = "$wgConfirmEditIP/ConfirmEditHooks.php";
+$wgAutoloadClasses['HTMLCaptchaField'] = "$wgConfirmEditIP/HTMLCaptchaField.php";
 
 /**
  * Set up $wgWhitelistRead
  */
 function confirmEditSetup() {
 	global $wgGroupPermissions, $wgCaptchaTriggers;
-	if( !$wgGroupPermissions['*']['read'] && $wgCaptchaTriggers['badlogin'] ) {
+	if ( !$wgGroupPermissions['*']['read'] && $wgCaptchaTriggers['badlogin'] ) {
 		// We need to ensure that the captcha interface is accessible
 		// so that unauthenticated users can actually get in after a
 		// mistaken password typing.
 		global $wgWhitelistRead;
-		$image = Title::makeTitle( NS_SPECIAL, 'Captcha/image' );
-		$help = Title::makeTitle( NS_SPECIAL, 'Captcha/help' );
+		$image = SpecialPage::getTitleFor( 'Captcha', 'image' );
+		$help = SpecialPage::getTitleFor( 'Captcha', 'help' );
 		$wgWhitelistRead[] = $image->getPrefixedText();
 		$wgWhitelistRead[] = $help->getPrefixedText();
 	}
 }
-
-

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEditHooks.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEditHooks.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ConfirmEditHooks.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,87 @@
+<?php
+
+class ConfirmEditHooks {
+	/**
+	 * Get the global Captcha instance
+	 *
+	 * @return Captcha|SimpleCaptcha
+	 */
+	static function getInstance() {
+		global $wgCaptcha, $wgCaptchaClass;
+
+		static $done = false;
+
+		if ( !$done ) {
+			$done = true;
+			$wgCaptcha = new $wgCaptchaClass;
+		}
+
+		return $wgCaptcha;
+	}
+
+	static function confirmEditMerged( $editPage, $newtext ) {
+		return self::getInstance()->confirmEditMerged( $editPage, $newtext );
+	}
+
+	static function confirmEditAPI( $editPage, $newtext, &$resultArr ) {
+		return self::getInstance()->confirmEditAPI( $editPage, $newtext, $resultArr );
+	}
+
+	static function injectUserCreate( &$template ) {
+		return self::getInstance()->injectUserCreate( $template );
+	}
+
+	static function confirmUserCreate( $u, &$message ) {
+		return self::getInstance()->confirmUserCreate( $u, $message );
+	}
+
+	static function triggerUserLogin( $user, $password, $retval ) {
+		return self::getInstance()->triggerUserLogin( $user, $password, $retval );
+	}
+
+	static function injectUserLogin( &$template ) {
+		return self::getInstance()->injectUserLogin( $template );
+	}
+
+	static function confirmUserLogin( $u, $pass, &$retval ) {
+		return self::getInstance()->confirmUserLogin( $u, $pass, $retval );
+	}
+
+	static function injectEmailUser( &$form ) {
+		return self::getInstance()->injectEmailUser( $form );
+	}
+
+	static function confirmEmailUser( $from, $to, $subject, $text, &$error ) {
+		return self::getInstance()->confirmEmailUser( $from, $to, $subject, $text, $error );
+	}
+
+	public static function APIGetAllowedParams( &$module, &$params ) {
+		return self::getInstance()->APIGetAllowedParams( $module, $params );
+	}
+
+	public static function APIGetParamDescription( &$module, &$desc ) {
+		return self::getInstance()->APIGetParamDescription( $module, $desc );
+	}
+}
+
+class CaptchaSpecialPage extends UnlistedSpecialPage {
+	public function __construct() {
+		parent::__construct( 'Captcha' );
+	}
+
+	function execute( $par ) {
+		$this->setHeaders();
+
+		$instance = ConfirmEditHooks::getInstance();
+
+		switch( $par ) {
+			case "image":
+				if ( method_exists( $instance, 'showImage' ) ) {
+					return $instance->showImage();
+				}
+			case "help":
+			default:
+				return $instance->showHelp();
+		}
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.class.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -15,7 +15,7 @@
 		$digest = $wgCaptchaSecret . $info['salt'] . $answer . $wgCaptchaSecret . $info['salt'];
 		$answerHash = substr( md5( $digest ), 0, 16 );
 
-		if( $answerHash == $info['hash'] ) {
+		if ( $answerHash == $info['hash'] ) {
 			wfDebug( "FancyCaptcha: answer hash matches expected {$info['hash']}\n" );
 			return true;
 		} else {
@@ -24,18 +24,18 @@
 		}
 	}
 
-	function addCaptchaAPI(&$resultArr) {
+	function addCaptchaAPI( &$resultArr ) {
 		$info = $this->pickImage();
-		if( !$info ) {
+		if ( !$info ) {
 			$resultArr['captcha']['error'] = 'Out of images';
 			return;
 		}
 		$index = $this->storeCaptcha( $info );
-		$title = Title::makeTitle( NS_SPECIAL, 'Captcha/image' );
+		$title = SpecialPage::getTitleFor( 'Captcha', 'image' );
 		$resultArr['captcha']['type'] = 'image';
 		$resultArr['captcha']['mime'] = 'image/png';
 		$resultArr['captcha']['id'] = $index;
-		$resultArr['captcha']['url'] = $title->getLocalUrl( 'wpCaptchaId=' . urlencode( $index ) );		
+		$resultArr['captcha']['url'] = $title->getLocalUrl( 'wpCaptchaId=' . urlencode( $index ) );
 	}
 
 	/**
@@ -43,8 +43,8 @@
 	 */
 	function getForm() {
 		$info = $this->pickImage();
-		if( !$info ) {
-			die( "out of captcha images; this shouldn't happen" );
+		if ( !$info ) {
+			throw new MWException( "Ran out of captcha images" );
 		}
 
 		// Generate a random key for use of this captcha image in this session.
@@ -54,7 +54,7 @@
 
 		wfDebug( "Captcha id $index using hash ${info['hash']}, salt ${info['salt']}.\n" );
 
-		$title = Title::makeTitle( NS_SPECIAL, 'Captcha/image' );
+		$title = SpecialPage::getTitleFor( 'Captcha', 'image' );
 
 		return "<p>" .
 			Xml::element( 'img', array(
@@ -69,9 +69,12 @@
 				'id'    => 'wpCaptchaId',
 				'value' => $index ) ) .
 			"<p>" .
-			Xml::element( 'input', array(
+			Html::element( 'input', array(
 				'name' => 'wpCaptchaWord',
 				'id'   => 'wpCaptchaWord',
+				'autocorrect' => 'off',
+				'autocapitalize' => 'off',
+				'required',
 				'tabindex' => 1 ) ) . // tab in before the edit textarea
 			"</p>\n";
 	}
@@ -87,27 +90,27 @@
 			$wgCaptchaDirectory,
 			$wgCaptchaDirectoryLevels );
 	}
-	
+
 	function pickImageDir( $directory, $levels ) {
-		if( $levels ) {
+		if ( $levels ) {
 			$dirs = array();
-			
+
 			// Check which subdirs are actually present...
 			$dir = opendir( $directory );
-			while( false !== ($entry = readdir( $dir ) ) ) {
-				if( ctype_xdigit( $entry ) && strlen( $entry ) == 1 ) {
+			while ( false !== ( $entry = readdir( $dir ) ) ) {
+				if ( ctype_xdigit( $entry ) && strlen( $entry ) == 1 ) {
 					$dirs[] = $entry;
 				}
 			}
 			closedir( $dir );
-			
+
 			$place = mt_rand( 0, count( $dirs ) - 1 );
 			// In case all dirs are not filled,
 			// cycle through next digits...
-			for( $j = 0; $j < count( $dirs ); $j++ ) {
-				$char = $dirs[($place + $j) % count( $dirs )];
+			for ( $j = 0; $j < count( $dirs ); $j++ ) {
+				$char = $dirs[( $place + $j ) % count( $dirs )];
 				$return = $this->pickImageDir( "$directory/$char", $levels - 1 );
-				if( $return ) {
+				if ( $return ) {
 					return $return;
 				}
 			}
@@ -117,9 +120,9 @@
 			return $this->pickImageFromDir( $directory );
 		}
 	}
-	
+
 	function pickImageFromDir( $directory ) {
-		if( !is_dir( $directory ) ) {
+		if ( !is_dir( $directory ) ) {
 			return false;
 		}
 		$n = mt_rand( 0, $this->countFiles( $directory ) - 1 );
@@ -129,9 +132,9 @@
 
 		$entry = readdir( $dir );
 		$pick = false;
-		while( false !== $entry ) {
+		while ( false !== $entry ) {
 			$entry = readdir( $dir );
-			if( preg_match( '/^image_([0-9a-f]+)_([0-9a-f]+)\\.png$/', $entry, $matches ) ) {
+			if ( preg_match( '/^image_([0-9a-f]+)_([0-9a-f]+)\\.png$/', $entry, $matches ) ) {
 				$size = getimagesize( "$directory/$entry" );
 				$pick = array(
 					'salt' => $matches[1],
@@ -140,7 +143,7 @@
 					'height' => $size[1],
 					'viewed' => false,
 				);
-				if( $count++ == $n ) {
+				if ( $count++ == $n ) {
 					break;
 				}
 			}
@@ -156,8 +159,8 @@
 	function countFiles( $dirname ) {
 		$dir = opendir( $dirname );
 		$count = 0;
-		while( false !== ($entry = readdir( $dir ) ) ) {
-			if( $entry != '.' && $entry != '..' ) {
+		while ( false !== ( $entry = readdir( $dir ) ) ) {
+			if ( $entry != '.' && $entry != '..' ) {
 				$count++;
 			}
 		}
@@ -166,12 +169,12 @@
 	}
 
 	function showImage() {
-		global $wgOut, $wgRequest;
+		global $wgOut;
 
 		$wgOut->disable();
 
 		$info = $this->retrieveCaptcha();
-		if( $info ) {
+		if ( $info ) {
 			/*
 			// Be a little less restrictive for now; in at least some circumstances,
 			// Konqueror tries to reload the image even if you haven't navigated
@@ -189,7 +192,7 @@
 			$hash = $info['hash'];
 			$file = $this->imagePath( $salt, $hash );
 
-			if( file_exists( $file ) ) {
+			if ( file_exists( $file ) ) {
 				global $IP;
 				require_once "$IP/includes/StreamFile.php";
 				header( "Cache-Control: private, s-maxage=0, max-age=3600" );
@@ -200,13 +203,13 @@
 		wfHttpError( 500, 'Internal Error', 'Requested bogus captcha image' );
 		return false;
 	}
-	
+
 	function imagePath( $salt, $hash ) {
 		global $wgCaptchaDirectory, $wgCaptchaDirectoryLevels;
 		$file = $wgCaptchaDirectory;
 		$file .= DIRECTORY_SEPARATOR;
-		for( $i = 0; $i < $wgCaptchaDirectoryLevels; $i++ ) {
-			$file .= $hash{$i};
+		for ( $i = 0; $i < $wgCaptchaDirectoryLevels; $i++ ) {
+			$file .= $hash { $i } ;
 			$file .= DIRECTORY_SEPARATOR;
 		}
 		$file .= "image_{$salt}_{$hash}.png";
@@ -228,4 +231,22 @@
 		return wfEmptyMsg( $name, $text ) ? wfMsg( 'fancycaptcha-edit' ) : $text;
 	}
 
+	/**
+	 * Delete a solved captcha image, if $wgCaptchaDeleteOnSolve is true.
+	 */
+	function passCaptcha() {
+		global $wgCaptchaDeleteOnSolve;
+
+		$info = $this->retrieveCaptcha(); // get the captcha info before it gets deleted
+		$pass = parent::passCaptcha();
+
+		if ( $pass && $wgCaptchaDeleteOnSolve ) {
+			$filename = $this->imagePath( $info['salt'], $info['hash'] );
+			if ( file_exists( $filename ) ) {
+				unlink( $filename );
+			}
+		}
+
+		return $pass;
+	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,22 +1,62 @@
 <?php
 /**
- * Internationalisation file for the FancyCaptcha plug-in
+ * Internationalisation file for the FancyCaptcha module of the ConfirmEdit
+ * extension.
  *
- * @addtogroup Extensions
-*/
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
 /** English */
 $messages['en'] = array(
+	'fancycaptcha-desc'          => 'Fancy CAPTCHA generator for Confirm Edit',
 	'fancycaptcha-addurl'        => 'Your edit includes new external links.
 To help protect against automated spam, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):',
 	'fancycaptcha-badlogin'      => 'To help protect against automated password cracking, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):',
 	'fancycaptcha-createaccount' => 'To help protect against automated account creation, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):',
 	'fancycaptcha-create'        => 'To create the page, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):',
 	'fancycaptcha-edit'          => 'To edit this page, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):',
+	'fancycaptcha-sendemail'     => 'To help protect against automated spamming, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):',
 );
 
+/** Message documentation (Message documentation)
+ * @author Fryed-peach
+ * @author Hamilton Abreu
+ * @author Purodha
+ */
+$messages['qqq'] = array(
+	'fancycaptcha-desc' => '{{desc}}',
+	'fancycaptcha-addurl' => 'See also
+*{{msg-mw|captcha-addurl}}
+*{{msg-mw|Questycaptcha-addurl}}',
+	'fancycaptcha-badlogin' => 'See also
+*{{msg-mw|captcha-badlogin}}
+*{{msg-mw|Questycaptcha-badlogin}}',
+	'fancycaptcha-createaccount' => 'See also
+*{{msg-mw|captcha-createaccount}}
+*{{msg-mw|Questycaptcha-createaccount}}',
+	'fancycaptcha-create' => 'See also
+*{{msg-mw|Captcha-create}}
+*{{msg-mw|Questycaptcha-create}}',
+	'fancycaptcha-edit' => 'See also
+*{{msg-mw|Captcha-edit}}
+*{{msg-mw|Questycaptcha-edit}}',
+);
+
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'fancycaptcha-addurl' => 'Your redakto përfshin të jashtme lidhje të reja. Për të ndihmuar në mbrojtjen kundër spam automatizuar, ju lutem shkruani fjalët që shfaqen poshtë në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'fancycaptcha-badlogin' => 'Për të ndihmuar në mbrojtjen kundër fjalëkalimin automatizuar plasaritje, ju lutem shkruani fjalët që shfaqen poshtë në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'fancycaptcha-createaccount' => 'Për të ndihmuar në mbrojtjen kundër krijimit llogari e automatizuar, ju lutem shkruani fjalët që shfaqen poshtë në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'fancycaptcha-create' => 'Për të krijuar një faqe, ju lutem shkruani fjalët që shfaqen poshtë në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'fancycaptcha-edit' => 'Për të redaktuar këtë faqe, ju lutem shkruani fjalët që shfaqen poshtë në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+	'fancycaptcha-sendemail' => 'Për të ndihmuar në mbrojtjen kundër spamming automatizuar, ju lutem shkruani fjalët që shfaqen poshtë në kuti ([[Special:Captcha/help|më shumë informacion]]):',
+);
+
 /** Amharic (አማርኛ)
  * @author Codex Sinaiticus
  */
@@ -28,19 +68,23 @@
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'fancycaptcha-addurl' => "Ha encluyito binclos esternos en a suya edizión. Ta aduyar a protecher contra o spam automatico, escriba por fabor as palabras que amanixen en a caxa d'o cobaxo ([[Special:Captcha/help|más informazión]]):",
-	'fancycaptcha-badlogin' => "Ta aduyar a protecher contra o trenque automatico de palabras de paso, escriba por fabor as palabras que amanixen en a caxa d'o cobaxo ([[Special:Captcha/help|más informazión]]):",
-	'fancycaptcha-createaccount' => 'Ta aduyar a protecher contra a creyazión automatica de cuentas, escriba por fabor en o cuatrón as palabras que amanixen debaxo ([[Special:Captcha/help|más informazión]]):',
-	'fancycaptcha-create' => "Ta creyar a pachina, escriba por fabor as palabras que amanixen en a caxa d'o cobaxo
-([[Special:Captcha/help|más informazión]]):",
-	'fancycaptcha-edit' => "Ta editar ista pachian, escriba por fabor as palabras que amaneixen en a caixa d'o cobaxo
-([[Special:Captcha/help|más informazión]]):",
+	'fancycaptcha-desc' => 'Chenerador chocant de CAPTCHAs ta Confirmar Edicions.',
+	'fancycaptcha-addurl' => "Ha encluyito vinclos esternos en a suya edición. Ta aduyar a protecher contra o spam automatico, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo ([[Special:Captcha/help|más información]]):",
+	'fancycaptcha-badlogin' => "Ta aduyar a protecher contra o trenque automatico de parolas de paso, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo ([[Special:Captcha/help|más información]]):",
+	'fancycaptcha-createaccount' => 'Ta aduyar a protecher contra a creyación automatica de cuentas, escriba por favor en o quatrón as parolas que amaneixen debaixo ([[Special:Captcha/help|más información]]):',
+	'fancycaptcha-create' => "Ta creyar a pachina, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo
+([[Special:Captcha/help|más información]]):",
+	'fancycaptcha-edit' => "Ta editar ista pachina, escriba por favor as parolas que amaneixen en a caixa d'o cobaixo
+([[Special:Captcha/help|más información]]):",
+	'fancycaptcha-sendemail' => 'Ta protecher-nos contra o spam automatizau por favor escriba as parolas que amaneixen en o siguient quadro ([[Special:Captcha/help|mas información]]):',
 );
 
 /** Arabic (العربية)
+ * @author Aiman titi
  * @author Meno25
  */
 $messages['ar'] = array(
+	'fancycaptcha-desc' => 'مولد فانسي كابتشا لConfirm Edit',
 	'fancycaptcha-addurl' => 'تعديلك يتضمن وصلات خارجية جديدة.
 للحماية من السبام الأوتوماتيكي، من فضلك أدخل الكلمات التي تظهر بالأسفل في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
 	'fancycaptcha-badlogin' => 'للمساعدة في الحماية ضد سرقة كلمات السر، من فضلك أدخل الكلمات التي تظهر بالأسفل في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
@@ -49,6 +93,7 @@
 ([[Special:Captcha/help|مزيد من المعلومات]]):',
 	'fancycaptcha-edit' => 'لتعديل هذه الصفحة، من فضلك أدخل الكلمات التي تظهر بالأسفل في الصندوق
 ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'fancycaptcha-sendemail' => 'للمساعدة في منع إنشاء حسابات بطريقة أوتوماتيكية، قم من فضلك بإدخال الكلمات التي تظهر أدناه في الصندوق ([[Special:Captcha/help|مزيد من المعلومات]]):',
 );
 
 /** Egyptian Spoken Arabic (مصرى)
@@ -66,20 +111,22 @@
 );
 
 /** Assamese (অসমীয়া)
+ * @author Chaipau
  * @author Rajuonline
  */
 $messages['as'] = array(
 	'fancycaptcha-addurl' => 'আপোনাৰ সম্পাদনাত বাহ্যিক সংযোগ আছে।
-স্বয়ংক্রীয় সম্পাদনাৰ পৰা হাত সাৰিবলৈ, তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
-	'fancycaptcha-badlogin' => 'স্বয়ংক্রীয় গুপ্তশব্দ চুৰিৰ পৰা হাত সাৰিবলৈ,
+স্বয়ংক্ৰীয় সম্পাদনাৰ পৰা হাত সাৰিবলৈ, তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
+	'fancycaptcha-badlogin' => 'স্বয়ংক্ৰীয় গুপ্তশব্দ চুৰিৰ পৰা হাত সাৰিবলৈ,
 তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
-	'fancycaptcha-createaccount' => 'স্বয়ংক্রীয় নতুন সদস্যভুক্তিৰ পৰা হাত সাৰিবলৈ, তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
+	'fancycaptcha-createaccount' => 'স্বয়ংক্ৰীয় নতুন সদস্যভুক্তিৰ পৰা হাত সাৰিবলৈ, তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
 	'fancycaptcha-create' => 'পৃষ্ঠাটো বনাবলৈ, তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
 	'fancycaptcha-edit' => 'এই পৃষ্ঠাটো সম্পাদনা কৰিবলৈ, তলত দেখিবলৈ পোৱা শব্দটো বাকচৰ ভিতৰত লিখক। ([[Special:Captcha/help|অধিক তথ্য]]):',
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
 	'fancycaptcha-addurl' => "La to edición inclúi nuevos enllaces esternos. P'aidar a protexer escontra'l spam automatizáu, por favor escribi nel caxellu les pallabres qu'apaecen embaxo ([[Special:Captcha/help|más información]]):",
@@ -87,8 +134,22 @@
 	'fancycaptcha-createaccount' => "P'aidar a protexer escontra la creación automática de cuentes, por favor escribi nel caxellu les pallabres qu'apaecen embaxo ([[Special:Captcha/help|más información]]):",
 	'fancycaptcha-create' => "Pa crear la páxina, por favor escribi nel caxellu les pallabres qu'apaecen embaxo ([[Special:Captcha/help|más información]]):",
 	'fancycaptcha-edit' => "Pa editar la páxina, por favor escribi nel caxellu les pallabres qu'apaecen embaxo ([[Special:Captcha/help|más información]]):",
+	'fancycaptcha-sendemail' => "P'aidar a protexer escontra'l corréu puxarra automáticu, por favor escribi nel caxellu les pallabres qu'apaecen embaxo ([[Special:Captcha/help|más información]]):",
 );
 
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'fancycaptcha-addurl' => 'Һеҙҙең текстығыҙҙа яңы тышҡы һылтанмалар бар.
+Автоматик спамдан һаҡлау маҡсатында, зинһар, күрһәтелгән һүҙҙәрҙе түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'fancycaptcha-badlogin' => 'Паролде автоматик ватыуҙан һаҡлау маҡсатында, зинһар, күрһәтелгән һүҙҙәрҙе түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'fancycaptcha-createaccount' => 'Иҫәп яҙмаларын автоматик булдырыуҙан һаҡлау маҡсатында, зинһар, күрһәтелгән һүҙҙәрҙе түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'fancycaptcha-create' => 'Яңы бит булдырыу өсөн, зинһар, күрһәтелгән һүҙҙәрҙе түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'fancycaptcha-edit' => 'Был битте мөхәррирләү өсөн, зинһар, күрһәтелгән һүҙҙәрҙе түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'fancycaptcha-sendemail' => 'Автоматик спамдан һаҡлау маҡсатында, зинһар, күрһәтелгән һүҙҙәрҙе түбәндәге юлға керетегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
@@ -100,8 +161,9 @@
 	'fancycaptcha-edit' => 'په اصلاح کتن ای صفحه، لطفا کلماتی که ته جهلگی جعبه ظاهراند واردش کنیت ([[Special:Captcha/help|گیشتر اطلاعات]]):',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
+ * @author Jim-by
  * @author Red Winged Duck
  */
 $messages['be-tarask'] = array(
@@ -111,6 +173,7 @@
 	'fancycaptcha-createaccount' => 'У мэтах абароны ад аўтаматычнага стварэньня рахункаў, калі ласка, увядзіце словы, якія паказаныя ў выяве ([[Special:Captcha/help|болей інфармацыі]]):',
 	'fancycaptcha-create' => 'Для стварэньня старонкі, калі ласка, увядзіце словы, якія паказаныя ў выяве ([[Special:Captcha/help|болей інфармацыі]]):',
 	'fancycaptcha-edit' => 'Для рэдагаваньня гэтай старонкі, калі ласка, увядзіце словы, якія паказаныя ў выяве ([[Special:Captcha/help|болей інфармацыі]]):',
+	'fancycaptcha-sendemail' => 'У мэтах абароны супраць аўтаматычнага спаму, калі ласка, увядзіце словы паказаныя ніжэй у полі ([[Special:Captcha/help|дадатковая інфармацыя]]):',
 );
 
 /** Bulgarian (Български)
@@ -123,6 +186,7 @@
 	'fancycaptcha-createaccount' => 'Системата за защита от автоматично създаване на потребителски сметки изисква да въведете това, което виждате в кутията по-долу ([[Special:Captcha/help|повече информация]]):',
 	'fancycaptcha-create' => 'За създаване на страницата е необходимо да се въведат думите от картинката в полето по-долу ([[Special:Captcha/help|повече информация]]):',
 	'fancycaptcha-edit' => 'За редактиране на страницата е необходимо да се въведат думите от картинката в полето по-долу ([[Special:Captcha/help|повече информация]]):',
+	'fancycaptcha-sendemail' => 'Като защита срещу автоматизиран спам, въведете в кутията думите, които са показани по-долу ([[Special:Captcha/help|повече информация]]):',
 );
 
 /** Bengali (বাংলা)
@@ -142,11 +206,12 @@
  */
 $messages['br'] = array(
 	'fancycaptcha-addurl' => "Liammoù diavaez nevez zo bet degaset ganeoc'h. Evit stourm a-enep d'ar strob emgefre, skrivit ar gerioù a zeu war wel er voest a-is ([[Special:Captcha/help|gouzout hiroc'h]]):",
-	'fancycaptcha-badlogin' => "A-benn talañ ouzh ar preizhañ kontoù dre c'herioù-termen emgefre, skrivit er vaezienn ar gerioù merket dindan ([[Special:Captcha/help|Petra eo se?]]):",
+	'fancycaptcha-badlogin' => "A-benn talañ ouzh ar preizhañ kontoù dre c'herioù-tremen emgefre, skrivit er vaezienn ar gerioù merket dindan ([[Special:Captcha/help|Petra eo se?]]):",
 	'fancycaptcha-createaccount' => "Evit stourm a-enep d'ar c'hontoù  krouet ent emgefre, skrivit ar gerioù
 a zeu war wel er voest a-is ([[Special:Captcha/help|gouzout hiroc'h]]):",
 	'fancycaptcha-create' => "Liammoù diavaez nevez zo bet degaset ganeoc'h. Evit stourm a-enep d'ar strob emgefre, skrivit ar gerioù a zeu war wel er voest a-is ([[Special:Captcha/help|gouzout hiroc'h]]):",
 	'fancycaptcha-edit' => "Liammoù diavaez nevez zo bet degaset ganeoc'h. Evit stourm a-enep d'ar strob emgefre, skrivit ar gerioù a zeu war wel er voest a-is ([[Special:Captcha/help|gouzout hiroc'h]]):",
+	'fancycaptcha-sendemail' => "Evit hor skoazellañ da zizarbenn ar strob emgefre, adskrivit ar gerioù a welit er voest dindan ([[Special:Captcha/help|gouzout hiroc'h]]):",
 );
 
 /** Bosnian (Bosanski)
@@ -159,17 +224,21 @@
 	'fancycaptcha-createaccount' => 'Da bi pomogli u sprječavanju automatskog pravljenja računa, molimo Vas da unesete riječi koje su prikazane u kutiji ispod ([[Special:Captcha/help|više informacija]]):',
 	'fancycaptcha-create' => 'Da bi ste napravili stranicu, molimo Vas unesite riječi koje su prikazane u kutiji ispod ([[Special:Captcha/help|više informacija]]):',
 	'fancycaptcha-edit' => 'Da bi ste uređivali ovu stranicu, molimo Vas unesite riječi koje su prikazane u kutiji ispod ([[Special:Captcha/help|više informacija]]):',
+	'fancycaptcha-sendemail' => 'Da bi pomogli u sprječavanju protiv automatskog spamovanja, molimo Vas da unesete riječi koje su prikazane ispod u kutiji ([[Special:Captcha/help|više informacija]]):',
 );
 
 /** Catalan (Català)
+ * @author Davidpar
  * @author SMP
+ * @author Ssola
  */
 $messages['ca'] = array(
-	'fancycaptcha-addurl' => "La vostra edició inclou nous enllaços externs. Com a protecció contra la propaganda automatitzada heu d'escriure en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):",
+	'fancycaptcha-addurl' => "La vostra modificació inclou nous enllaços externs. Com a protecció contra la propaganda automatitzada heu d'escriure en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):",
 	'fancycaptcha-badlogin' => "Com a protecció contra l'obtenció automatitzada de contrasenyes cal que escriviu en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):",
 	'fancycaptcha-createaccount' => 'Com a protecció contra la creació automatitzada de nous comptes cal que escriviu en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):',
 	'fancycaptcha-create' => "Per a poder crear la pàgina heu d'escriure en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):",
-	'fancycaptcha-edit' => "Per a poder editar la pàgina heu d'escriure en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):",
+	'fancycaptcha-edit' => "Per a poder modificar la pàgina heu d'escriure en la caixa les paraules que apareixen a continuació ([[Special:Captcha/help|més informació]]):",
+	'fancycaptcha-sendemail' => 'Per ajudar a protegir contra el correu brossa automatitzat, si us plau, introduïu les paraules que apareixen a sota la caixa ([[Special:Captcha/help|més informació]]):',
 );
 
 /** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄) */
@@ -181,18 +250,20 @@
  * @author Mormegil
  */
 $messages['cs'] = array(
+	'fancycaptcha-desc' => 'Pokročilý generátor captcha pro rozšíření „Confirm Edit“',
 	'fancycaptcha-addurl' => 'Vaše editace obsahuje nové odkazy formou URL; v zájmu ochrany před automatickým spamováním musíte opsat text z následujícího obrázku: ([[Special:Captcha/help|Co tohle znamená?]])',
 	'fancycaptcha-badlogin' => 'V rámci ochrany proti automatickým pokusům uhodnout heslo musíte opsat text z následujícího obrázku. ([[Special:Captcha/help|Co tohle znamená?]])',
 	'fancycaptcha-createaccount' => 'V rámci ochrany před automatickým zakládáním účtů musíte pro provedení registrace opsat text z následujícího obrázku: ([[Special:Captcha/help|Co tohle znamená?]])',
 	'fancycaptcha-create' => 'Abyste mohli založit stránku, musíte opsat text z následujícího obrázku: ([[Special:Captcha/help|Co tohle znamená?]])',
 	'fancycaptcha-edit' => 'Abyste mohli editovat tuto stránku, musíte opsat text z následujícího obrázku: ([[Special:Captcha/help|Co tohle znamená?]])',
+	'fancycaptcha-sendemail' => 'V rámci ochrany proti automatickému spamování musíte opsat níže zobrazená slova ([[Special:Captcha/help|více informací]]):',
 );
 
 /** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
  * @author ОйЛ
  */
 $messages['cu'] = array(
-	'fancycaptcha-createaccount' => 'блюдє́ниꙗ дѣл҄ьма́ на аѵтома́тьно мѣстозида́ниѥ · а́влѥнъ сло́ва обраꙁъ ни́жьшиѥмь окънѣ́ напиши́ ⁙ ([[Special:Captcha/help|испльнѧ́щѧ вѣ́сти]]) :',
+	'fancycaptcha-createaccount' => 'блюдєниꙗ дѣл҄ьма на аѵтоматьно мѣстоꙁиданиѥ · авлѥнъ слова обраꙁъ нижьшиѥмь окънѣ напиши ⁙ ([[Special:Captcha/help|испльнѧщѧ вѣсти]]) :',
 );
 
 /** Welsh (Cymraeg)
@@ -205,31 +276,65 @@
 	'fancycaptcha-createaccount' => "Er mwyn ceisio rhwystro peiriannau creu cyfrifon, byddwch gystal â theipio'r geiriau a welwch isod yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):",
 	'fancycaptcha-create' => "Er mwyn creu'r dudalen, byddwch gystal â theipio'r geiriau a welwch isod yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):",
 	'fancycaptcha-edit' => "Er mwyn gallu golygu'r dudalen hon, byddwch gystal â theipio'r geiriau a welwch isod yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):",
+	'fancycaptcha-sendemail' => "Er mwyn cyfrannu at ddiogelu rhag sbamio awtomatig, byddwch gystal â gwneud y swm isod ac ysgrifennu'r ateb yn y blwch ([[Special:Captcha/help|rhagor o wybodaeth]]):",
 );
 
-/** Danish (Dansk) */
+/** Danish (Dansk)
+ * @author Peter Alberti
+ */
 $messages['da'] = array(
 	'fancycaptcha-addurl' => 'Din ændring tilføjer nye eksterne henvisninger. For at beskytte mod automatiseret spam, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):',
 	'fancycaptcha-badlogin' => 'For at beskytte mod automatiske forsøg på at gætte kodeord, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):',
 	'fancycaptcha-createaccount' => 'For at beskytte mod automatisk oprettelse af brugernavne, der bruges til spam, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):',
 	'fancycaptcha-create' => 'For at oprette en ny side, skal du indtaste ordet som vises nedenfor i feltet under det. ([[Special:Captcha/help|mere information]]):',
-	'fancycaptcha-edit' => 'or at redigere denne side
-([[Special:Captcha/help|more info]]):',
+	'fancycaptcha-edit' => 'For at redigere denne side, indtast da venligst ordene, der står i feltet nedenfor ([[Special:Captcha/help|mere information]]):',
 );
 
 /** German (Deutsch)
+ * @author Metalhead64
  * @author Raimond Spekking
  * @author Umherirrender
  */
 $messages['de'] = array(
+	'fancycaptcha-desc' => 'Fancy-CAPTCHA-Generator für die Erweiterung „Confirm Edit“',
 	'fancycaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links.
-Zum Schutz vor automatisiertem Spamming gib das folgende Wort in das Feld unten ein. Klicke dann erneut auf „Seite speichern“ [[Special:Captcha/help|(Fragen oder Probleme?)]].',
+Zum Schutz vor automatisiertem Spamming gib das folgende Wort in das Feld unten ein. Klicke dann erneut auf „Seite speichern“ ([[Special:Captcha/help|Fragen oder Probleme?]]).',
 	'fancycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos gib das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]]:',
 	'fancycaptcha-createaccount' => 'Zum Schutz vor automatisierter Anlage von Benutzerkonten gib bitte das folgende Wort in das Feld unten ein ([[Special:Captcha/help|Fragen oder Probleme?]]):',
 	'fancycaptcha-create' => 'Zur Erstellung der Seite gib das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
 	'fancycaptcha-edit' => 'Zur Bearbeitung der Seite gib das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
+	'fancycaptcha-sendemail' => 'Um gegen automatischen Spam vorzugehen, gib bitte die Wörter unten in das Feld ein ([[Special:Captcha/help|mehr Informationen]]):',
 );
 
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Imre
+ * @author MichaelFrey
+ * @author Umherirrender
+ */
+$messages['de-formal'] = array(
+	'fancycaptcha-addurl' => 'Ihre Bearbeitung enthält neue externe Links.
+Zum Schutz vor automatisiertem Spamming geben Sie das folgende Wort in das Feld unten ein. Klicken Sie dann erneut auf „Seite speichern“ ([[Special:Captcha/help|Fragen oder Probleme?]]).',
+	'fancycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung Ihres Benutzerkontos geben Sie bitte das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Haben Sie Fragen oder Probleme?)]]:',
+	'fancycaptcha-createaccount' => 'Zum Schutz vor automatisierter Anlage von Benutzerkonten geben Sie bitte das folgende Wort in das Feld unten ein ([[Special:Captcha/help|Fragen oder Probleme?]]):',
+	'fancycaptcha-create' => 'Zur Erstellung der Seite geben Sie das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
+	'fancycaptcha-edit' => 'Zur Bearbeitung der Seite geben Sie das folgende Wort in das Feld unten ein [[Special:Captcha/help|(Fragen oder Probleme?)]].',
+	'fancycaptcha-sendemail' => 'Um gegen automatischen Spam vorzugehen, geben Sie bitte die Wörter unten in das Feld ein ([[Special:Captcha/help|mehr Informationen]]):',
+);
+
+/** Zazaki (Zazaki)
+ * @author Xoser
+ */
+$messages['diq'] = array(
+	'fancycaptcha-addurl' => 'Vurnayîşanê tu de linkanê harîcîyê newe esto. 
+Qe otomatik spamî ra pawitîş, ma rica keno çekuyanê ke qutiya cor de înan binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'fancycaptcha-badlogin' => 'Qe otomatik parola crack kerdişî ra pawitîş, ma rica keno çekuyanê ke qutiya cor de înan binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'fancycaptcha-createaccount' => 'Qe otomatik hesab viraştişî ra pawitîş, ma rica keno çekuyanê ke qutiya cor de înan binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'fancycaptcha-create' => 'Qe pel viraştîşî, ma rica keno çekuyanê ke qutiya cor de înan binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'fancycaptcha-edit' => 'Qe pel vurnayîşî, ma rica keno çekuyanê ke qutiya cor de înan binuse ([[Special:Captcha/help|enformasyonê bînî]]):',
+	'fancycaptcha-sendemail' => 'Qe spamê otomayoni ra pawitîşi, ma rica keno çekuyanê ke qutiya cor de înan binuse 
+([[Special:Captcha/help|enformasyonê bînî]]):',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
@@ -240,19 +345,26 @@
 	'fancycaptcha-createaccount' => 'Za šćit pśeśiwo awtomatiskemu załoženjeju kontow, zapódaj pšosym słowa, kótarež pokazuju se dołojce w kašćiku ([[Special:Captcha/help|dalšne informacije]]):',
 	'fancycaptcha-create' => 'Aby bok napórał, zapódaj pšosym słowa, kótarež pokazuju se dołojce w kašćiku ([[Special:Captcha/help|dalšne informacije]]):',
 	'fancycaptcha-edit' => 'Aby toś ten bok wobźěłał, zapódaj pšosym słowa, kótarež pokazuju se dołojce w kašćiku ([[Special:Captcha/help|dalšne informacije]]):',
+	'fancycaptcha-sendemail' => 'Za šćit pśeśiwo awtomatiskemu spamowanjeju, zapódaj pšosym słowa, kótarež pokazuju se dołojce w kašćiku ([[Special:Captcha/help|dalšne informacije]]):',
 );
 
 /** Greek (Ελληνικά)
  * @author Badseed
  * @author Consta
+ * @author Geraki
+ * @author Glavkos
  * @author ZaDiak
  */
 $messages['el'] = array(
+	'fancycaptcha-addurl' => 'Η επεξεργασία σας περιλαμβάνει νέους εξωτερικούς σύνδεσμους.
+Ως βοήθεια για την προστασία από αυτόματα spam, παρακαλούμε γράψτε τις λέξεις που εμφανίζονται παρακάτω στο πλαίσιο ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
+	'fancycaptcha-badlogin' => 'Ως βοήθεια για την προστασία από αυτόματα προγράμματα σπασίματος κωδικών, παρακαλούμε γράψτε τις λέξεις που εμφανίζονται παρακάτω στο πλαίσιο ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
 	'fancycaptcha-createaccount' => 'Για να βοηθήσετε στην προστασία κατά των αυτόματα δημιουργούμενων λογαριασμών, παρακαλούμε πληκτρολογήστε στο πλαίσιο τις λέξεις που εμφανίζονται πιο κάτω ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
 	'fancycaptcha-create' => 'Για να δημιουργήσετε αυτήν την σελίδα, παρακαλώ εισάγετε τις λέξεις που εμφανίζονται παρακάτω μέσα στο κουτί
 ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
 	'fancycaptcha-edit' => 'Για να επεξεργαστείτε αυτήν την σελίδα, παρακαλώ εισάγετε τις λέξεις που εμφανίζονται παρακάτω μέσα στο κουτί
 ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
+	'fancycaptcha-sendemail' => 'Ως βοήθεια για την προστασία από αυτόματα προγράμματα σπασίματος κωδικών, παρακαλούμε γράψτε τις λέξεις που εμφανίζονται παρακάτω στο πλαίσιο ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
 );
 
 /** Esperanto (Esperanto)
@@ -265,10 +377,12 @@
 	'fancycaptcha-createaccount' => 'Helpi protekti kontraŭ aŭtomata kreado de kontoj, bonvolu enigi la jenajn vortojn en la skatolo ([[Special:Captcha/help|plua informo]]):',
 	'fancycaptcha-create' => 'Por krei la paĝon, bonvolu enigi la vortojn montritajn en la jena skatolo ([[Special:Captcha/help|plua informo]]):',
 	'fancycaptcha-edit' => 'Por redakti ĉi tiun paĝon, bonvolu enigi la vortojn jenajn en la kesto ([[Special:Captcha/help|plua informo]]):',
+	'fancycaptcha-sendemail' => 'Por helpi protekti kontraŭ aŭtomata spamado, bonvolu enigi la jenajn vortojn de la skatolo ([[Special:Captcha/help|plua informo]]):',
 );
 
 /** Spanish (Español)
  * @author Icvav
+ * @author Pertile
  * @author Sanbec
  */
 $messages['es'] = array(
@@ -277,26 +391,50 @@
 	'fancycaptcha-createaccount' => 'Para evitar la creación automatizada de cuentas, introduce por favor en el recuadro las palabras que aparecen debajo ([[Special:Captcha/help|más información]]):',
 	'fancycaptcha-create' => 'Para crear la página, por favor introduce en el recuadro las palabras que aparecen debajo ([[Special:Captcha/help|más información]]):',
 	'fancycaptcha-edit' => 'Para editar esta página, por favor introduce en el recuadro las palabras que aparecen debajo ([[Special:Captcha/help|más información]]):',
+	'fancycaptcha-sendemail' => 'Para protegernos contra el spam automatizado por favor ingrese las palabras que aparecen en el siguiente cuadro ([[Special:Captcha/help|más información]]):',
 );
 
-/** Basque (Euskara) */
+/** Estonian (Eesti)
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'fancycaptcha-desc' => 'Kirevate piltidega robotilõks, kinnitamaks muudatuste õigsust.',
+	'fancycaptcha-addurl' => 'Sinu muudatus sisaldab uusi välislinke.
+Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):',
+	'fancycaptcha-badlogin' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaatsete parooliäraarvajate eest ([[Special:Captcha/help|lisateave]]):',
+	'fancycaptcha-createaccount' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks kontode automaatse loomise eest ([[Special:Captcha/help|lisateave]]):',
+	'fancycaptcha-create' => 'Lehekülje loomiseks sisesta palun allpool olevas kastis kuvatud sõnad ([[Special:Captcha/help|lisateave]]):',
+	'fancycaptcha-edit' => 'Selle lehekülje muutmiseks sisesta palun allpool olevas kastis kuvatud sõnad ([[Special:Captcha/help|lisateave]]):',
+	'fancycaptcha-sendemail' => 'Palun sisesta allpool olevas kastis kuvatud sõnad. Abinõu on kaitseks automaadistatud rämpsmuudatuste vastu ([[Special:Captcha/help|lisateave]]):',
+);
+
+/** Basque (Euskara)
+ * @author An13sa
+ */
 $messages['eu'] = array(
 	'fancycaptcha-addurl' => 'Zure aldaketak kanpo lotura berriak ditu. Spam automatikoa saihestu ahal izateko, beheko koadroan ageri diren hitzak idatzi ([[Special:Captcha/help|informazio gehigarria]]):',
 	'fancycaptcha-badlogin' => 'Pasahitzen cracking automatikoa saihestu asmoz, beheko koadroan ageri diren hitzak idazteko eskatzen dizugu ([[Special:Captcha/help|informazio gehigarria]]):',
 	'fancycaptcha-createaccount' => 'Erabiltzaile kontuak automatikoki sortzea saihestu asmoz, beheko koadroan ageri diren hitzak idazteko eskatzen dizugu ([[Special:Captcha/help|informazio gehigarria]]):',
 	'fancycaptcha-create' => 'Orrialde sortu ahal izateko, beheko koadroan ageri hitzak idatzi ([[Special:Captcha/help|informazio gehigarria]]):',
 	'fancycaptcha-edit' => 'Orrialde hau aldatu ahal izateko, beheko koadroan ageri diren hitzak idatzi ([[Special:Captcha/help|informazio gehigarria]]):',
+	'fancycaptcha-sendemail' => 'Zabor-posta automatizatuaz babesteko, idatzi azpiko kutxako hitzak ([[Special:Captcha/help|informazio gehiago]]):',
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
+ * @author Ladsgroup
+ * @author Meisam
+ * @author Wayiran
  */
 $messages['fa'] = array(
-	'fancycaptcha-addurl' => 'ویرایش شما حاوی پیوندهای خارجی جدیدی است. برای جلوگیری از هرزنگاری خودکار، لطفاً واژه‌ای را که در تصویر می‌بینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
+	'fancycaptcha-addurl' => 'ویرایش شما حاوی پیوندهای خارجی جدیدی است.
+برای کمک به جلوگیری از هرزنگاری خودکار، لطفاً واژه‌ای را که در تصویر می‌بینید در جعبه وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 	'fancycaptcha-badlogin' => 'برای کمک به جلوگیری از سرقت خودکار کلمه عبور، لطفاً واژه‌ای را که در تصویر می‌بینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 	'fancycaptcha-createaccount' => 'برای کمک به جلوگیری از ایجاد خودکار حساب کاربری، لطفاً واژه‌ای را که در تصویر می‌بینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 	'fancycaptcha-create' => 'برای ایجاد این صفحه، لطفاً واژه‌ای را که در تصویر می‌بینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 	'fancycaptcha-edit' => 'برای ویرایش این صفحه، لطفاً واژه‌ای را که در تصویر می‌بینید وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
+	'fancycaptcha-sendemail' => 'برای کمک به محافظت در برابر هرزه‌نگاری خودکار، لطفاً واژه‌هایی را که در جعبهٔ زیر نمایش داده می‌شوند وارد کنید ([[Special:Captcha/help|اطلاعات بیشتر]]):',
 );
 
 /** Finnish (Suomi)
@@ -309,6 +447,7 @@
 	'fancycaptcha-createaccount' => 'Kirjoita kuvan sisältämät sanat alla olevaan tekstikenttään ([[Special:Captcha/help|lisätietoja]]):',
 	'fancycaptcha-create' => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Kirjoita kuvan sisältämät sanat alla olevaan tekstikenttään ([[Special:Captcha/help|lisätietoja]]):',
 	'fancycaptcha-edit' => 'Muokkauksesi sisältää uusia linkkejä muille sivuille. Kirjoita kuvan sisältämät sanat alla olevaan tekstikenttään ([[Special:Captcha/help|lisätietoja]]):',
+	'fancycaptcha-sendemail' => 'Automatisoidun roskapostin lähettämisen vaikeuttamiseksi kirjoita kuvan sisältämät sanat alla olevaan tekstikenttään ([[Special:Captcha/help|lisätietoja]]):',
 );
 
 /** Faroese (Føroyskt)
@@ -320,27 +459,34 @@
 );
 
 /** French (Français)
+ * @author Crochet.david
+ * @author IAlex
  * @author Sherbrooke
  * @author Verdy p
  */
 $messages['fr'] = array(
+	'fancycaptcha-desc' => "Générateur d’images ''captcha'' anti-robots demandant une confirmation humaine des modifications.",
 	'fancycaptcha-addurl' => 'Votre modification inclut de nouveaux liens externes.
-Pour vérifier qu’il ne s’agit pas de pourriel automatisés, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha|plus d’informations]]) :',
+Pour vérifier qu’il ne s’agit pas de pourriels automatisés, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
 	'fancycaptcha-badlogin' => 'Afin de nous aider à prévenir le cassage des mots de passe par des automates, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
 	'fancycaptcha-createaccount' => 'Afin de nous aider à lutter contre les créations automatiques de comptes, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
 	'fancycaptcha-create' => 'Pour créer la page, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha|plus d’informations]]) :',
 	'fancycaptcha-edit' => 'Pour modifier cette page, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha|plus d’informations]]) :',
+	'fancycaptcha-sendemail' => 'Afin de nous aider à prévenir le spam automatique, veuillez entrer les mots qui apparaissent dans la boîte ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
 );
 
 /** Franco-Provençal (Arpetan)
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'fancycaptcha-addurl' => 'Voutra modificacion encllut de novéls lims de defôr. Coment protèccion contre lo spame ôtomatico, volyéd entrar los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'fancycaptcha-badlogin' => 'Coment protèccion contre lo piratâjo ôtomatisâ de mots de pâssa per des bots, volyéd entrar los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'fancycaptcha-createaccount' => 'Coment protèccion contre les crèacions de compto abusives, volyéd entrar los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'fancycaptcha-create' => 'Por crèar ceta pâge, volyéd entrar los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
-	'fancycaptcha-edit' => 'Por modifiar ceta pâge, volyéd entrar los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
+	'fancycaptcha-desc' => "G·ènèrator d’émâges ''captch·a'' anti-robots que demande una confirmacion d’homo des changements.",
+	'fancycaptcha-addurl' => 'Voutron changement encllut de lims de defôr novéls.
+Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
+	'fancycaptcha-badlogin' => 'Por nos édiér a combatre contre lo cassâjo ôtomatisâ de contresegnos, volyéd buchiér los mots qu’aparèssont dedens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
+	'fancycaptcha-createaccount' => 'Por nos édiér a combatre contre les crèacions ôtomatisâs de comptos, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
+	'fancycaptcha-create' => 'Por fâre ceta pâge, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
+	'fancycaptcha-edit' => 'Por changiér ceta pâge, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
+	'fancycaptcha-sendemail' => 'Por nos édiér a combatre contre lo spame ôtomatisâ, volyéd buchiér los mots qu’aparèssont dens la bouèta ce-desot ([[Special:Captcha/help|més d’enformacions]]) :',
 );
 
 /** Western Frisian (Frysk)
@@ -360,30 +506,32 @@
  * @author Xosé
  */
 $messages['gl'] = array(
-	'fancycaptcha-addurl' => 'A súa edición inclúe ligazóns externas novas. Para axudar na protección contra o spam
-automatizado, introduza as palabras que aparecen na páxina de embaixo ([[Special:Captcha/help|máis información]]):',
-	'fancycaptcha-badlogin' => 'Para contribuír a que non se descubran os contrasinais por medios automáticos, introduza as palabras que aparecen na caixa de embaixo
-([[Special:Captcha/help|máis información]]):',
-	'fancycaptcha-createaccount' => 'Para contribuír contra a creación automatizada de contas, introduza na caixa as palabras que aparecen embaixo ([[Special:Captcha/help|máis información]]):',
-	'fancycaptcha-create' => 'Para crear a páxina, introduza as palabras que aparecen na caixa de embaixo
-([[Special:Captcha/help|máis información]]):',
-	'fancycaptcha-edit' => 'Para editar esta páxina, introduza as palabras que aparecen na caixa de embaixo
-([[Special:Captcha/help|máis información]]):',
+	'fancycaptcha-desc' => 'Xerador de imaxes CAPTCHA para Confirm Edit',
+	'fancycaptcha-addurl' => 'A súa edición inclúe ligazóns externas novas.
+Para contribuír na protección contra o spam automatizado, introduza as palabras que aparecen na caixa de embaixo ([[Special:Captcha/help|máis información]]):',
+	'fancycaptcha-badlogin' => 'Para contribuír a que non se descubran os contrasinais por medios automáticos, introduza as palabras que aparecen na caixa de embaixo ([[Special:Captcha/help|máis información]]):',
+	'fancycaptcha-createaccount' => 'Para contribuír contra a creación automatizada de contas, introduza as palabras que aparecen na caixa de embaixo ([[Special:Captcha/help|máis información]]):',
+	'fancycaptcha-create' => 'Para crear a páxina, introduza as palabras que aparecen na caixa de embaixo ([[Special:Captcha/help|máis información]]):',
+	'fancycaptcha-edit' => 'Para editar esta páxina, introduza as palabras que aparecen na caixa de embaixo ([[Special:Captcha/help|máis información]]):',
+	'fancycaptcha-sendemail' => 'Para contribuír na protección contra o spam automatizado, introduza as palabras que aparecen na caixa de embaixo ([[Special:Captcha/help|máis información]]):',
 );
 
 /** Swiss German (Alemannisch)
  * @author Als-Holder
+ * @author Melancholie
  */
 $messages['gsw'] = array(
 	'fancycaptcha-addurl' => 'In Dyynere Bearbeitig het s neiji externi Gleicher.
-Zum Schutz vor automatisiertem Spamming gib des Wort in s Fäld unten yy. Druck derno nomol uf „Syte spychere“ [[Special:Captcha/help|(Frogen oder Probläm?)]].',
+Zum Schutz vor automatisiertem Spamming gib des Wort in s Fäld unten yy. Druck derno nomol uf „Syte spychere“. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
 	'fancycaptcha-badlogin' => 'Zum Schutz vor ere Kompromittierig vu Dyynm Benutzerkonto gib des Wort in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]]:',
 	'fancycaptcha-createaccount' => 'Zum Schutz vor ere automatisierte Aalag vu Benutzerkonte gib bitte des Wort in s Fäld unten yy ([[Special:Captcha/help|Frogen oder Probläm?]]):',
-	'fancycaptcha-create' => 'Zum d Syten aalege gib des Wort in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]].',
-	'fancycaptcha-edit' => 'Zum d Syte bearbeite gib des Wort in s Fäld unten yy [[Special:Captcha/help|(Frogen oder Probläm?)]].',
+	'fancycaptcha-create' => 'Zum d Syten aalege gib des Wort in s Fäld unten yy. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
+	'fancycaptcha-edit' => 'Zum d Syte bearbeite gib des Wort in s Fäld unten yy. [[Special:Captcha/help|(Frogen oder Probläm?)]]',
+	'fancycaptcha-sendemail' => 'As Schutz gege e automatischs Spamming, gib bitte des Wort in s Fäld unten yy ([[Special:Captcha/help|meh Informatione]]):',
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotem Liss
  */
 $messages['he'] = array(
@@ -393,6 +541,7 @@
 	'fancycaptcha-createaccount' => 'כהגנה מפני יצירת חשבונות אוטומטית, אנא הקלידו את המילים המופיעות להלן בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
 	'fancycaptcha-create' => 'כדי ליצור את הדף, אנא הקלידו את המילים המופיעות להלן בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
 	'fancycaptcha-edit' => 'כדי לערוך את הדף, אנא הקלידו את המילים המופיעות להלן בתיבה ([[Special:Captcha/help|מידע נוסף]]):',
+	'fancycaptcha-sendemail' => 'כדי לעזור להתגונן מפני שליחת זבל אוטומטית, אנא הכניסו את המילים שמופיעות בתיבה למטה ([[Special:Captcha/help|מידע נוסף]]):',
 );
 
 /** Hindi (हिन्दी)
@@ -420,20 +569,25 @@
 	'fancycaptcha-create' => 'Da bi stvorili novu stranicu, molimo unesite
 slova koja vidite na slici dolje: <br />([[Special:Captcha/help|Pomoć]])',
 	'fancycaptcha-edit' => 'Da bi uređivali ovu stranicu, molimo unesite slova koja vidite na slici dolje: <br />([[Special:Captcha/help|Pomoć]])',
+	'fancycaptcha-sendemail' => 'Da bi ste nam pomogli protiv automatskog spama, molimo unesite riječi koje su prikazane ispod u okvir ([[Special:Captcha/help|više informacija]]):',
 );
 
-/** Upper Sorbian (Hornjoserbsce) */
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
 $messages['hsb'] = array(
 	'fancycaptcha-addurl' => 'W twojej změnje su nowe eksterne wotkazy. Jako škitna naprawa přećiwo awtomatiskemu spamej zapodaj prošu sćěhowace znamješka do kašćika ([[Special:Captcha/help|čehodla?]]).',
 	'fancycaptcha-badlogin' => 'Jako škitna naprawa přećiwo awtomatiskemu zadobywanju do wužiwarskich kontow zapodaj prošu sćěhowace znamješka do kašćika ([[Special:Captcha/help|čehodla?]]):',
 	'fancycaptcha-createaccount' => 'Jako škitna naprawa přećiwo awtomatiskemu wutworjenju wužiwarskich kontow zapodaj prošu sćěhowace znamješka do kašćika ([[Special:Captcha/help|čehodla?]]):',
 	'fancycaptcha-create' => 'Zo by stronu wutworić móhł zapodaj prošu sćěhowace znamješka do kašćika ([[Special:Captcha/help|čehodla?]]):',
 	'fancycaptcha-edit' => 'Zo by stronu wobdźěłować móhł zapodaj prošu sćěhowace znamješka do kašćika ([[Special:Captcha/help|čehodla?]]):',
+	'fancycaptcha-sendemail' => 'Za škit přećiwo awtomatiskemu spamowanju, zapodaj prošu słowa, kotrež so deleka w kašćiku jewi ([[Special:Captcha/help|dalše informacije]]):',
 );
 
 /** Hungarian (Magyar)
  * @author Adam78
  * @author Dorgan
+ * @author Glanthor Reviol
  */
 $messages['hu'] = array(
 	'fancycaptcha-addurl' => 'A szerkesztésed új külső hivatkozásokat tartalmaz. Az automatizált spamek megelőzése miatt kérjük, hogy add meg a lenti keretben olvasható szavakat ([[Special:Captcha/help|további segítség]]):',
@@ -441,6 +595,7 @@
 	'fancycaptcha-createaccount' => 'A felhasználói fiókok automatizált létrehozásának elkerülésére, kérlek, írd be az alább megjelenő szót a szövegdobozba ([[Special:Captcha/help|segítség]]):',
 	'fancycaptcha-create' => 'A lap létrehozásához kérjük, hogy add meg a lenti keretben olvasható szavakat ([[Special:Captcha/help|további segítség]]):',
 	'fancycaptcha-edit' => 'A szerkesztésed új külső linkeket tartalmaz. A spam-robotok elleni védekezés elősegítésére kérlek írd be az alább megjelenő szót a szövegdobozba ([[Special:Captcha/help|segítség]]):',
+	'fancycaptcha-sendemail' => 'Hogy segíts az automatikus spammelés elleni védekezésben, kérünk írd be az alábbi szavakat a szövegdobozba ([[Special:Captcha/help|segítség]]):',
 );
 
 /** Interlingua (Interlingua)
@@ -453,40 +608,64 @@
 	'fancycaptcha-createaccount' => 'Como protection contra le creation automatic de contos, per favor entra le parolas que appare infra in le quadro ([[Special:Captcha/help|plus info]]):',
 	'fancycaptcha-create' => 'Pro crear le pagina, per favor entra le parolas que appare infra in le quadro ([[Special:Captcha/help|plus info]]):',
 	'fancycaptcha-edit' => 'Pro modificar iste pagina, per favor entra le parolas que appare infra in le quadro ([[Special:Captcha/help|plus info]]):',
+	'fancycaptcha-sendemail' => 'Pro adjutar nos in le protection contra le spam automatic, per favor entra le parolas que appare hic infra in le quadro ([[Special:Captcha/help|plus info]]):',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
  * @author IvanLanin
+ * @author Iwan Novirion
  */
 $messages['id'] = array(
-	'fancycaptcha-addurl' => 'Suntingan Anda mencantumkan pranala luar baru. Untuk perlindungan terhadap spam otomatis, harap masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
-	'fancycaptcha-badlogin' => 'Untuk membantu perlindungan terhadap perengkahan kunci sandi otomatis, harap masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
-	'fancycaptcha-createaccount' => 'Untuk perlindungan terhadap pembuatan akun otomatis, tolong masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
-	'fancycaptcha-create' => 'Suntingan Anda mencantumkan pranala luar baru. Untuk perlindungan terhadap spam otomatis, harap masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
-	'fancycaptcha-edit' => 'Suntingan Anda mencantumkan pranala luar baru. Untuk perlindungan terhadap spam otomatis, harap masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'fancycaptcha-addurl' => 'Suntingan Anda mencantumkan pranala luar baru. Untuk pelindungan terhadap spam otomatis, harap masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'fancycaptcha-badlogin' => 'Sebagai pelindungan terhadap pemecah kata kunci otomatis, harap masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'fancycaptcha-createaccount' => 'Untuk pelindungan terhadap pembuatan akun otomatis, tolong masukkan kata di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'fancycaptcha-create' => 'Untuk membuat halaman, silahkan masukkan kata-kata yang muncul di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'fancycaptcha-edit' => 'Untuk menyunting halaman ini, silahkan masukkan kata-kata yang muncul di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
+	'fancycaptcha-sendemail' => 'Sebagai pelindungan terhadap spam otomatis, silahkan masukkan kata-kata yang muncul di bawah ini ke dalam kotak yang tersedia ([[Special:Captcha/help|info lengkap]]):',
 );
 
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'fancycaptcha-addurl' => 'Ti inurnos mo ket adda nagyan na a baro a panilpo ti ruar.
+Tapno  masalakniban kadagiti automatiko a spam, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'fancycaptcha-badlogin' => 'Tapno  masalakniban kadagiti automatiko a pinagsulbar ti kontrasenias, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'fancycaptcha-createaccount' => 'Tapno  makasalaknib kadagiti automatiko a pinagaramid ti pakabilangan, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'fancycaptcha-create' => 'Tapno makaaramid ti panid, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'fancycaptcha-edit' => 'Tapno makaurnos daytoy a panid, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'fancycaptcha-sendemail' => 'Tapno  makasalaknib kadagiti automatiko a pinagspam, pangaasim nga ikabil ti balikas nga agparang dita baba a kahon. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+);
+
 /** Italian (Italiano)
+ * @author Beta16
  * @author BrokenArrow
  * @author Darth Kule
  */
 $messages['it'] = array(
-	'fancycaptcha-addurl' => "La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l'inserimento automatico di spam, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine ([[Special:Captcha/help|come funziona?]]):",
-	'fancycaptcha-badlogin' => 'Come misura precauzionale contro i tentativi di forzatura automatica della password, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine ([[Special:Captcha/help|come funziona?]]):',
-	'fancycaptcha-createaccount' => 'Come misura di sicurezza nei confronti dei messaggi di spam automatici, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine ([[Special:Captcha/help|come funziona?]]):',
-	'fancycaptcha-create' => "La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l'inserimento automatico di spam, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine ([[Special:Captcha/help|come funziona?]]):",
-	'fancycaptcha-edit' => "La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l'inserimento automatico di spam, si prega di inserire nella casella sottostante la parola che compare distorta in questa immagine ([[Special:Captcha/help|come funziona?]]):",
+	'fancycaptcha-addurl' => "La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l'inserimento automatico di spam, si prega di inserire nella casella sottostante le parole che compaiono di seguito ([[Special:Captcha/help|come funziona?]]):",
+	'fancycaptcha-badlogin' => 'Come misura precauzionale contro i tentativi di forzatura automatica della password, si prega di inserire nella casella sottostante le parole che compaiono di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'fancycaptcha-createaccount' => 'Come misura precauzionale contro i tentativi di creazione automatica degli account, si prega di inserire nella casella sottostante le parole che compaiono di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'fancycaptcha-create' => 'Per creare la pagina si prega di inserire nella casella sottostante le parole che compaiono nella casella di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'fancycaptcha-edit' => 'Per modificare questa pagina si prega di inserire nella casella sottostante le parole che compaiono di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'fancycaptcha-sendemail' => 'Come misura precauzionale nei confronti dei messaggi di spam automatici, si prega di inserire nella casella sottostante le parole che compaiono di seguito ([[Special:Captcha/help|come funziona?]]):',
 );
 
 /** Japanese (日本語)
+ * @author Aotake
  * @author Fryed-peach
+ * @author Marine-Blue
  */
 $messages['ja'] = array(
-	'fancycaptcha-addurl' => 'あなたの編集では新たな外部リンクが追加されています。自動で実行されるスパム行為防止のため、編集を有効にするには以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
+	'fancycaptcha-desc' => 'Confirm Edit 用の装飾的な CAPTCHA 生成器',
+	'fancycaptcha-addurl' => 'あなたの編集で新たな外部リンクが追加されています。
+自動化スクリプトによるスパム行為防止のため、以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
 	'fancycaptcha-badlogin' => '自動化スクリプトによるパスワードクラック攻撃を防止するため、以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
-	'fancycaptcha-createaccount' => '自動で実行されるスパム行為防止のため、アカウントを登録するには以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
+	'fancycaptcha-createaccount' => '自動化されたアカウント作成を防止するため、以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
 	'fancycaptcha-create' => 'ページを作成するには以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
 	'fancycaptcha-edit' => 'このページを編集するには以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
+	'fancycaptcha-sendemail' => 'ロボットによるスパムを防ぐため、以下のボックスに表示される確認用の文字列を入力してください ([[Special:Captcha/help|詳細]]):',
 );
 
 /** Jutish (Jysk)
@@ -512,11 +691,20 @@
 	'fancycaptcha-edit' => 'Suntingan panjenengan ngandhut pranala jaba anyar. Kanggo nyunting kaca iki, mangga isèkna tembung-tembung sing ana ing kothak iki ([[Special:Captcha/help|info jangkep]]):',
 );
 
+/** Georgian (ქართული)
+ * @author ITshnik
+ */
+$messages['ka'] = array(
+	'fancycaptcha-addurl' => 'თქვენი ცვლილება შეიცავს ახალ გარე ბმულებს.
+ავტომატური სპამინგისგან თავდაცვის მიზნით, გთხოვთ, შეიყვანოთ ქვემოთ მოცემული სიტყვები ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+	'fancycaptcha-badlogin' => 'პაროლების ავტომატური გატეხვისგან თავდაცვის მიზნით, გთხოვთ, შეიყვანოთ ქვემოთ მოცემული სიტყვები ყუთში ([[Special:Captcha/help|მეტი ინფორმაცია]]):',
+);
+
 /** Kara-Kalpak (Qaraqalpaqsha)
  * @author Atabek
  */
 $messages['kaa'] = array(
-	'fancycaptcha-createaccount' => "Jan'a akkauntlardın' avtomatik jaratılıwının' aldın alıw ushın, to'mendegi 
+	'fancycaptcha-createaccount' => "Jan'a akkauntlardın' avtomatik jaratılıwının' aldın alıw ushın, to'mendegi
 ko'rsetilgen so'zlerdi kiritin'([[{{ns:special}}:Captcha/help|ko'birek mag'lıwmat]]):",
 );
 
@@ -534,7 +722,7 @@
 تٶمەندەگٸ كٶرسەتٸلگەن سٶزدەردٸ اۋماققا ەنگٸزٸڭٸز ([[{{ns:special}}:Captcha/help|كٶبٸرەك اقپارات]]):',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */
 $messages['kk-cyrl'] = array(
 	'fancycaptcha-addurl' => 'Түзетуіңізде жаңа сыртқы сілтемелер бар екен. Өздік түрде «спам» жасалуынан қорғану үшін,
 төмендегі көрсетілген сөздерді аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):',
@@ -548,7 +736,7 @@
 төмендегі көрсетілген сөздерді аумаққа енгізіңіз ([[{{ns:special}}:Captcha/help|көбірек ақпарат]]):',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin)) */
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */
 $messages['kk-latn'] = array(
 	'fancycaptcha-addurl' => 'Tüzetwiñizde jaña sırtqı siltemeler bar eken. Özdik türde «spam» jasalwınan qorğanw üşin,
 tömendegi körsetilgen sözderdi awmaqqa engiziñiz ([[{{ns:special}}:Captcha/help|köbirek aqparat]]):',
@@ -584,15 +772,17 @@
 	'fancycaptcha-addurl' => '편집이 새로운 외부 링크를 포함하고 있습니다.
 자동화된 스팸을 막기 위해 아래 상자의 단어를 적어주세요. ([[Special:Captcha/help|더 많은 정보]])',
 	'fancycaptcha-badlogin' => '자동화된 암호깨기를 막기 위해서, 아래 상자에 있는 단어를 입력해 주시기 바랍니다. ([[Special:Captcha/help|추가 도움말]]):',
-	'fancycaptcha-createaccount' => '자동화된 암호깨기를 막기 위해서, 아래 상자에 있는 단어를 입력해 주시기 바랍니다. ([[Special:Captcha/help|추가 도움말]]):',
+	'fancycaptcha-createaccount' => '자동화된 계정 생성을 막기 위해서, 아래 상자에 있는 단어를 입력해 주시기 바랍니다. ([[Special:Captcha/help|추가 도움말]]):',
 	'fancycaptcha-create' => '이 문서를 생성하시려면, 아래의 상자 안에 있는 낱말을 입력해주세요 ([[Special:Captcha/help|자세한 정보]]):',
 	'fancycaptcha-edit' => '이 문서를 편집하시려면, 아래의 상자 안에 있는 낱말을 입력해주세요 ([[Special:Captcha/help|자세한 정보]]):',
+	'fancycaptcha-sendemail' => '자동화된 스팸을 방지하기 위해, 아래 상자에 있는 단어를 입력해 주시기 바랍니다. ([[Special:Captcha/help|추가 도움말]]):',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
+	'fancycaptcha-desc' => 'Määt e nett Käptsche för dä <code lang="en">Confirm Edit</code> Projramm-Zohsatz',
 	'fancycaptcha-addurl' => 'Do häß neu Lingks op frembde Websigge dobei jedonn.
 Mer schöze uns Wiki jäje automatesche SPAM, dröm
 don di Wööter en dat Käßje endraare. (Verklierung)',
@@ -604,6 +794,9 @@
 don di Wööt onge en dat Käßje endraare. (Verklierung)',
 	'fancycaptcha-create' => 'Öm di Sigg neu aanzelääje, don di Wööt onge en dat Käßje endraare. (Verklierung)',
 	'fancycaptcha-edit' => 'Öm de Sigg ze ändere, don di Wööt onge en dat Käßje endraare. ([[Special:Captcha/help|Verklierung]])',
+	'fancycaptcha-sendemail' => 'Öm et Wiki jääje automattesch enjedraare SPAM ze schötze,
+bes esu joot, donn di Wööter enjävve, di en däm Käßje heh dronger shtonn.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
 );
 
 /** Latin (Latina)
@@ -618,20 +811,23 @@
 );
 
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
-	'fancycaptcha-addurl' => 'An ärer ännerung sinn nei extern Linken.
+	'fancycaptcha-addurl' => 'An Ärer Ännerung sinn nei extern Linken.
 
-Fir ze hellëfe, géint automatiséierte Spam virzegoen, gitt w.e.g. déi Wierder déi an der Këscht ënnedrënner stinn an ([[Special:Captcha/help|méi Informatiounen]]):',
-	'fancycaptcha-badlogin' => "Fir ze hellëfe fir d'automatiséiert Hacke vu Psswierder méi schwéier ze maachen, gitt w.e.g. déi Wierder déi an der Këscht ënnedrënner stinn an ([[Special:Captcha/help|méi Informatiounen]]):",
-	'fancycaptcha-createaccount' => 'Fir géint automatiséiert Opmaache vu Benotzerkonte virzegoen, gitt w.e.g. déi Wierder déi an der Këscht ënnedrënner stinn an ([[Special:Captcha/help|méi Informatiounen]]):',
-	'fancycaptcha-create' => 'Fir dës Säit unzeleeën, gitt w.e.g. déi Wierder déi an der Këscht ënnedrënner stinn an ([[Special:Captcha/help|méi Informatiounen]]):',
-	'fancycaptcha-edit' => "Fir dës Säit z'änneren, gitt w.e.g. déi Wierder déi an der Këscht ënnedrënner stinn an ([[Special:Captcha/help|méi Informatiounen]]):",
+Fir ze hellëfen, géint automatiséierte Spam virzegoen, gitt w.e.g. déi Wierder an, déi an der Këscht ënnendrënner stinn ([[Special:Captcha/help|méi Informatiounen]]):',
+	'fancycaptcha-badlogin' => "Fir ze hellëfe fir d'automatiséiert Hacke vu Passwierder méi schwéier ze maachen, gitt w.e.g. déi Wierder an, déi an der Këscht ënnendrënner stinn ([[Special:Captcha/help|méi Informatiounen]]):",
+	'fancycaptcha-createaccount' => "Fir géint d'automatiséiert Opmaache vu Benotzerkonte virzegoen, gitt w.e.g. déi Wierder an, déi an der Këscht ënnedrënner stinn ([[Special:Captcha/help|méi Informatiounen]]):",
+	'fancycaptcha-create' => 'Fir dës Säit unzeleeën, gitt w.e.g. déi Wierder an, déi an der Këscht ënnendrënner stinn ([[Special:Captcha/help|méi Informatiounen]]):',
+	'fancycaptcha-edit' => "Fir dës Säit z'änneren, gitt w.e.g. déi Wierder an, déi an der Këscht ënnendrënner stinn ([[Special:Captcha/help|méi Informatiounen]]):",
+	'fancycaptcha-sendemail' => 'Fir eis géint automatescht Spammen ze schützen, gitt w.e.g. déi Wierder déi an der Këscht ënnedrënner stinn an ([[Special:Captcha/help|méi Informatiounen]]):',
 );
 
 /** Limburgish (Limburgs)
  * @author Matthias
+ * @author Ooswesthoesbes
  */
 $messages['li'] = array(
 	'fancycaptcha-addurl' => 'Uw bewerking bevat nieuwe externe links. Voer alstublieft de woorden die
@@ -643,6 +839,7 @@
 hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|meer informatie]]):',
 	'fancycaptcha-edit' => 'Uw bewerking bevat nieuwe externe links. Voer alstublieft de woorden die
 hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|mie informatie]]):',
+	'fancycaptcha-sendemail' => "Veur de weurd die hie onger versjienen in 't inveurvèldj in es besjerming taege geautometiseerde spam ([[Special:Captcha/help|mier info]]):",
 );
 
 /** Lao (ລາວ) */
@@ -654,21 +851,37 @@
 	'fancycaptcha-edit' => 'ກະລຸນາ ພິມຄຳສັບຂ້າງລຸ່ມນີ້ ໃສ່ໃນກັບ ເພື່ອ ດັດແກ້ໜ້ານີ້ ([[Special:Captcha/help|ຂໍ້ມູນເພີ່ມຕື່ມ]]):',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'fancycaptcha-desc' => 'Збогатен создавач CAPTCHA за потврда на уредувања',
+	'fancycaptcha-addurl' => 'Вашето уредување вклучува нови надворешни врски.
+Со цел да се заштитиме од автоматизиран спам, внесете ги зборовите на сликичката подолу ([[Special:Captcha/help|повеќе информации]]):',
+	'fancycaptcha-badlogin' => 'Со цел да се заштитиме од автоматизирано пробивање на лозинки, внесете ги зборовите на сликичката подолу ([[Special:Captcha/help|повеќе информации]]):',
+	'fancycaptcha-createaccount' => 'Со цел да се заштитиме од автоматизирано создавање на сметки, внесете ги зборовите на сликичката подолу ([[Special:Captcha/help|повеќе информации]]):',
+	'fancycaptcha-create' => 'За да создадете страница, внесете ги зборовите на сликичката подолу ([[Special:Captcha/help|повеќе информации]]):',
+	'fancycaptcha-edit' => 'За да ја уредите страницава, внесете ги зборовите на сликичката подолу ([[Special:Captcha/help|повеќе информации]]):',
+	'fancycaptcha-sendemail' => 'За да се заштитиме од автоматизирано спамирање, препишете ги зборовите од сликичката во полето подолу ([[Special:Captcha/help|повеќе информации]]):',
+);
+
 /** Malayalam (മലയാളം)
  * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'fancycaptcha-addurl' => 'താങ്കളുടെ തിരുത്തലലില്‍ പുറം കണ്ണികള്‍ ഉള്‍പ്പെട്ടിരിക്കുന്നു.
-യാന്ത്രിക സ്പാമിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകള്‍ പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'fancycaptcha-badlogin' => 'രഹസ്യവാക്ക് യാന്ത്രികമായി  പൊളിക്കുന്നത് തടയുന്നതിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകള്‍ പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'fancycaptcha-createaccount' => 'അക്കൗണ്ട് യാന്ത്രികമായി സൃഷ്ടിക്കുന്നതു തടയുന്നതൊഴിവാക്കാനുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകള്‍ പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'fancycaptcha-create' => 'ഈ താള്‍ സൃഷ്ടിക്കുവാന്‍ താഴെയുള്ള പെട്ടിയില്‍ കാണുന്ന വാക്കുകള്‍ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
-	'fancycaptcha-edit' => 'ഈ താള്‍ തിരുത്തുവാന്‍ ദയവായി താഴെ കാണുന്ന വാക്കുകള്‍ പെട്ടിയില്‍ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതല്‍ വിവരങ്ങള്‍]]):',
+	'fancycaptcha-addurl' => 'താങ്കളുടെ തിരുത്തലലിൽ പുറം കണ്ണികൾ ഉൾപ്പെട്ടിരിക്കുന്നു.
+യാന്ത്രിക സ്പാമിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകൾ പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'fancycaptcha-badlogin' => 'രഹസ്യവാക്ക് യാന്ത്രികമായി  പൊളിക്കുന്നത് തടയുന്നതിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകൾ പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'fancycaptcha-createaccount' => 'അംഗത്വം യാന്ത്രികമായി സൃഷ്ടിക്കുന്നതു തടയുന്നതൊഴിവാക്കാനുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകൾ പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'fancycaptcha-create' => 'ഈ താൾ സൃഷ്ടിക്കുവാൻ താഴെയുള്ള പെട്ടിയിൽ കാണുന്ന വാക്കുകൾ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'fancycaptcha-edit' => 'ഈ താൾ തിരുത്തുവാൻ ദയവായി താഴെ കാണുന്ന വാക്കുകൾ പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+	'fancycaptcha-sendemail' => 'യാന്ത്രികമായ പാഴെഴുത്ത് ഉൾപ്പെടുത്തലിനുള്ള പ്രതിരോധമെന്ന നിലയിൽ, താഴെ കാണുന്ന വാക്കുകൾ പെട്ടിയിൽ ടൈപ്പ് ചെയ്യുക ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
 );
 
 /** Marathi (मराठी)
  * @author Kaustubh
+ * @author Mahitgar
  */
 $messages['mr'] = array(
 	'fancycaptcha-addurl' => 'तुमच्या संपादनात नवीन बाह्य दुवे आहेत.
@@ -677,9 +890,11 @@
 	'fancycaptcha-createaccount' => 'आपोआप होणार्‍या सदस्य नोंदणीपासून वाचण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
 	'fancycaptcha-create' => 'हे पान तयार करण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
 	'fancycaptcha-edit' => 'हे पान संपादित करण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
+	'fancycaptcha-sendemail' => 'आपोआप होणार्‍या उत्पातापासून वाचण्यासाठी, खाली दिसणारे शब्द दिलेल्या पृष्ठपेटी मध्ये लिहा ([[Special:Captcha/help|अधिक माहिती]]):',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
  * @author Aviator
  */
 $messages['ms'] = array(
@@ -688,8 +903,23 @@
 	'fancycaptcha-createaccount' => 'Untuk membanteras kegiatan pembukaan akaun secara automatik, anda diminta mengisi huruf-huruf berikut dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
 	'fancycaptcha-create' => 'Untuk mencipta laman ini, anda diminta mengisi huruf-huruf berikut dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
 	'fancycaptcha-edit' => 'Untuk menyunting laman ini, anda diminta mengisi huruf-huruf berikut dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
+	'fancycaptcha-sendemail' => 'Untuk membanteras kegiatan spam secara automatik, anda diminta mengisi huruf-huruf berikut dalam kotak yang disediakan ([[Special:Captcha/help|maklumat lanjut]]):',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Harald Khan
+ * @author Jon Harald Søby
+ * @author Laaknor
+ */
+$messages['nb'] = array(
+	'fancycaptcha-addurl' => 'Din endring inkluderer nye eksterne lenker. For hjelpe oss å beskytte oss mot automatisk spam, vennligst skriv inn ordene som kommer opp i denne boksen ([[Special:Captcha/help|mer informasjon]]):',
+	'fancycaptcha-badlogin' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot passordtyveri ([[Special:Captcha/help|mer informasjon]]):',
+	'fancycaptcha-createaccount' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):',
+	'fancycaptcha-create' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):',
+	'fancycaptcha-edit' => 'For å endre denne siden, vennligst skriv inn ordene som dukker opp i boksen nedenfor ([[Special:Captcha/help|mer informasjon]]):',
+	'fancycaptcha-sendemail' => 'For å beskytte mot automatisert spam så må du skrive ordene under inn i tekstboksen ([[Special:Captcha/help|mer informasjon]]):',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
@@ -702,18 +932,32 @@
 	'fancycaptcha-edit' => 'Disse Sied to ännern, geev disse Bookstavenreeg in dat Feld ünnen in ([[Special:Captcha/help|mehr Infos]]).',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'fancycaptcha-addurl' => "Joew bewarking bevat uutgaonde verwiezingen. 
+Um dit projekt te bescharmen tegen ongewunst reklame, mö'j t woord dat hieronder steet invullen ([[Special:Captcha/help|hulpe]]):",
+	'fancycaptcha-badlogin' => "Um disse webstee te beveiligen tegen t kraken van wachtwoorden, wö'j verzöcht um de woorden die'j hieronder zien in te vullen ([[Special:Captcha/help|hulpe]]):",
+	'fancycaptcha-createaccount' => "Um disse wiki te bescharmen tegen t automaties anmaken van gebrukersprefielen mö'j t woord hieronder invullen ([[Special:Captcha/help|hulpe]]):",
+	'fancycaptcha-create' => "Um n pagina an te maken, mö'j t woord dat hieronder steet invullen
+([[Special:Captcha/help|hulpe]]):",
+	'fancycaptcha-edit' => "Joew bewarking bevat nieje uutgaonde verwiezingen. Um disse wiki te bescharmen tegen ongewunste reklame mö'j de woorden hieronder invullen ([[Special:Captcha/help|hulpe]]):",
+	'fancycaptcha-sendemail' => 'Voer de woorden die hieronder staon in t invoerveld in as bescharming tegen automatiese ongewunste reklame ([[Special:Captcha/help|meer informasie]]):',
+);
+
 /** Dutch (Nederlands)
  * @author Siebrand
  */
 $messages['nl'] = array(
+	'fancycaptcha-desc' => "Generator voor opgedirkte captcha's voor ConfirmEdit",
 	'fancycaptcha-addurl' => 'Uw bewerking bevat nieuwe externe verwijzingen.
 Voer de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|meer informatie]]):',
-	'fancycaptcha-badlogin' => 'Voer de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen het automatisch kraken van wachtwoorden ([[Special:Captcha/help|meer informatie]]):',
-	'fancycaptcha-createaccount' => 'Voer de woorden die hieronder verschijnen in het invoerveld in ter bescherming tegen het automatisch aanmaken van gebruikers ([[Special:Captcha/help|meer informatie]]):',
-	'fancycaptcha-create' => 'Uw bewerking bevat nieuwe externe verwijzingen.
-Voer de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|meer informatie]]):',
-	'fancycaptcha-edit' => 'Uw bewerking bevat nieuwe externe verwijzingen.
-Voer de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen automatische spam ([[Special:Captcha/help|meer informatie]]):',
+	'fancycaptcha-badlogin' => 'Voer de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen geautomatiseerde wachtwoordaanvallen ([[Special:Captcha/help|meer informatie]]):',
+	'fancycaptcha-createaccount' => 'Voer de woorden die hieronder verschijnen in het invoerveld in ter bescherming tegen het geautomatiseerd aanmaken van gebruikers ([[Special:Captcha/help|meer informatie]]):',
+	'fancycaptcha-create' => 'Voer de woorden die hieronder verschijnen in het invoerveld in om de pagina aan te maken ([[Special:Captcha/help|meer informatie]]):',
+	'fancycaptcha-edit' => 'Voer de woorden die hieronder verschijnen in het invoerveld in om deze pagina te bewerken ([[Special:Captcha/help|meer informatie]]):',
+	'fancycaptcha-sendemail' => 'Voer de woorden die hieronder verschijnen in het invoerveld in als bescherming tegen geautomatiseerde spam ([[Special:Captcha/help|meer informatie]]):',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
@@ -728,41 +972,47 @@
 	'fancycaptcha-edit' => 'For å endra denne sida, ver venleg og skriv inn orda som kjem til syne i boksen nedanfor ([[Special:Captcha/help|meir informasjon]]):',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Harald Khan
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'fancycaptcha-addurl' => 'Din endring inkluderer nye eksterne lenker. For hjelpe oss å beskytte oss mot automatisk spam, vennligst skriv inn ordene som kommer opp i denne boksen ([[Special:Captcha/help|mer informasjon]]):',
-	'fancycaptcha-badlogin' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot passordtyveri ([[Special:Captcha/help|mer informasjon]]):',
-	'fancycaptcha-createaccount' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å hjelpe oss å beskytte oss mot automatisk kontoopprettelse ([[Special:Captcha/help|mer informasjon]]):',
-	'fancycaptcha-create' => 'Skriv inn ordene som dukker opp i boksen nedenfor for å opprette siden ([[Special:Captcha/help|mer informasjon]]):',
-	'fancycaptcha-edit' => 'For å endre denne siden, vennligst skriv inn ordene som dukker opp i boksen nedenfor ([[Special:Captcha/help|mer informasjon]]):',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
+	'fancycaptcha-desc' => "Generador d’imatges ''captcha'' antirobòts que demandan una confirmacion umana de las modificacions.",
 	'fancycaptcha-addurl' => "Vòstra modificacion inclutz de ligams extèrnes novèls. Per verificar que s’agisson pas de spams automatics, epicatz los mots qu'apareisson dins la bóstia çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :",
 	'fancycaptcha-badlogin' => 'Per ajudar a vos protegir contra lo piratatge de compte per de senhals automatics, mercés de picar los mots que s’afichan dins aquesta bóstia ([[Special:Captcha/help|Ajuda]]) :',
 	'fancycaptcha-createaccount' => 'Coma proteccion contra las creacions de compte abusivas, picatz los mots çaijós dins la bóstia ([[Special:Captcha/help|mai d’entresenhas]]) :',
 	'fancycaptcha-create' => "Vòstra modificacion inclutz de ligams extèrnes novèls. Per verificar que s’agisson pas de spams automatics, picatz los mots qu'apareisson dins la bóstia çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :",
 	'fancycaptcha-edit' => "Vòstra modificacion inclutz de ligams extèrnes novèls. Per verificar que s’agís pas de spam automatic, picatz los mots qu'apareisson dins la bóstia çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :",
+	'fancycaptcha-sendemail' => "Per tal de nos ajudar a prevenir lo spam automatic, entratz los mots qu'apareisson dins la bóstia çaijós ([[Special:Captcha/help|mai d’informacions]]) :",
 );
 
+/** Oriya (ଓଡ଼ିଆ)
+ * @author Psubhashish
+ */
+$messages['or'] = array(
+	'fancycaptcha-addurl' => 'ଆପଣଙ୍କ ସମ୍ପାଦନାରେ ନୂଆ ବାହାର ଲିଙ୍କ ରହିଛି ।
+ଆପେଆପେ ହେଉଥିବା ସ୍ପାମର ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ  ଘର ତଳେ ଥିବା ଶବ୍ଦସବୁ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ବିବରଣୀ]]):',
+	'fancycaptcha-badlogin' => 'ଆପେଆପେ ହେଉଥିବା ପାସବାର୍ଡ଼ ଚୋରାଇବାକୁ ପ୍ରତିରୋଧ କରିବା ନିମନ୍ତେ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତାହା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):',
+	'fancycaptcha-createaccount' => 'ଆପେଆପେ ଖାତା ଖୋଲିବାକୁ ଅଟକାଇବା ପାଇଁ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତାହା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):',
+	'fancycaptcha-create' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ତିଆରିବା ନିମନ୍ତେ, ଘର ତଳେ ଥିବା ଶବ୍ଦଟିକୁ ଏଠାରେ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):',
+	'fancycaptcha-edit' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ବଦଳାଇବା ନିମନ୍ତେ, ଘର ତଳେ ଥିବା ଶବ୍ଦଟିକୁ ଏଠାରେ ଦିଅନ୍ତୁ ([[Special:Captcha/help|ଅଧିକ ଜାଣନ୍ତୁ]]):',
+	'fancycaptcha-sendemail' => 'ଆପେଆପେ ହେଉଥିବା ସ୍ପାମକୁ ରୋକିବା ନିମନ୍ତେ ଦୟାକରି ଏହି ଘରଭିତରେ ଥିବା ଶବ୍ଦସବୁକୁ ତାହା ତଳେ ଥିବା ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ । ([[Special:Captcha/help|ଅଧିକ ସୂଚନା]]):',
+);
+
 /** Polish (Polski)
  * @author Sp5uhe
  */
 $messages['pl'] = array(
+	'fancycaptcha-desc' => 'Generator obrazka, którego odczytanie jest wymagane dla zatwierdzenia edycji.',
 	'fancycaptcha-addurl' => 'Twoja edycja zawiera nowe linki zewnętrzne. Ze względu na ochronę przed zautomatyzowanym spamem prosimy o wpisanie słów, które widzisz poniżej, do pola tekstowego ([[Special:Captcha/help|pomoc]]):',
 	'fancycaptcha-badlogin' => 'Ze względu na zabezpieczenie przed automatycznym łamaniem haseł prosimy o wpisanie słów, które widzisz poniżej, do pola tekstowego ([[Special:Captcha/help|pomoc]]):',
 	'fancycaptcha-createaccount' => 'Ze względu na ochronę przed automatycznym spamem, aby się zarejestrować musisz wpisać słowo, które widzisz poniżej, do pola tekstowego ([[Special:Captcha/help|pomoc]])',
 	'fancycaptcha-create' => 'Aby utworzyć tę stronę, wpisz słowa, które widzisz poniżej, do pola tekstowego ([[Special:Captcha/help|pomoc]]):',
 	'fancycaptcha-edit' => 'Aby edytować tę stronę, wpisz słowa, które widzisz poniżej, do pola tekstowego ([[Special:Captcha/help|pomoc]]):',
+	'fancycaptcha-sendemail' => 'Zabezpieczenie przed automatycznie dodawanym spamem. Wprowadzić słowa widoczne w poniższym prostokącie ([[Special:Captcha/help|więcej informacji]]).',
 );
 
 /** Piedmontese (Piemontèis)
+ * @author Borichèt
  * @author Bèrto 'd Sèra
  */
 $messages['pms'] = array(
@@ -772,8 +1022,22 @@
 	'fancycaptcha-createaccount' => "Për dene na man a vardesse da ij programa ch'a deurbo cont neuv n'aotomàtich, për piasì, ch'a l'arbata le paròle ch'a s-ciàira ambelessì sota ([[Special:Captcha/help|për savejne dë pì]]):",
 	'fancycaptcha-create' => "Për creé sta pàgina-i d'amblé, për piasì, ch'a l'arbata le paròle ch'a s-ciàira ambelessì sota ([[Special:Captcha/help|për savejne dë pì]]):",
 	'fancycaptcha-edit' => "Për fe-ie dle modìfiche ansima a sta pàgina-sì, për piasì, ch'a l'arbata le paròle ch'a s-ciàira ambelessì sota ([[Special:Captcha/help|për savejne dë pì]]):",
+	'fancycaptcha-sendemail' => "Për giuté a protegi contra la rumenta automàtica, për piasì ch'a anseriss le paròle che as vëddo sota ant la casela ([[Special:Captcha/help|për savèjne ëd pi]]):",
 );
 
+/** Western Punjabi (پنجابی)
+ * @author Khalid Mahmood
+ */
+$messages['pnb'] = array(
+	'fancycaptcha-addurl' => 'تواڈی تبدیلی چ نویں بارلے جوڑ نیں۔
+اس صفحے نوں تبدیل کرن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'fancycaptcha-badlogin' => 'اپنے آپ کنجی توڑن دے خلاف مدد واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'fancycaptcha-createaccount' => 'اپنے آپ غلط نویں کھاتے بنان نوں روکن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'fancycaptcha-create' => 'صفحہ بنان واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'fancycaptcha-edit' => 'اس صفحے تے تبدیلی کرن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):',
+	'fancycaptcha-sendemail' => 'اپنے آپ غلط مال آن نوں روکن واسطے، مہربانی کر کے ڈبے چ دتے گۓ شبداں نوں لکھو ([[Special:Captcha/help|مزید جانکاری]]):',
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
@@ -783,18 +1047,23 @@
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'fancycaptcha-addurl' => "A sua edição inclui novas ligações externas. Como prevenção contra sistemas automatizados que inserem ''spam'', por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):",
-	'fancycaptcha-badlogin' => 'Como prevenção contra formas automatizadas de descoberta de palavras-chave, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
-	'fancycaptcha-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
-	'fancycaptcha-create' => 'Para criar a página, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
-	'fancycaptcha-edit' => 'Para editar esta página, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
+	'fancycaptcha-desc' => 'Gerador sofisticado de captcha para o Confirm Edit',
+	'fancycaptcha-addurl' => "A sua edição introduziu links externos novos.
+Para ajudar a prevenir o ''spam'' automatizado, por favor, introduza na caixa abaixo as palavras apresentadas ([[Special:Captcha/help|mais informações]]):",
+	'fancycaptcha-badlogin' => 'Para ajudar a prevenir mecanismos automatizados de descoberta de palavras-chave, por favor, introduza na caixa abaixo as palavras apresentadas ([[Special:Captcha/help|mais informações]]):',
+	'fancycaptcha-createaccount' => 'Para ajudar a prevenir a criação de contas automatizada, por favor, introduza na caixa abaixo as palavras apresentadas ([[Special:Captcha/help|mais informações]]):',
+	'fancycaptcha-create' => 'Para criar a página, por favor, introduza na caixa abaixo as palavras apresentadas ([[Special:Captcha/help|mais informações]]):',
+	'fancycaptcha-edit' => 'Para editar esta página, por favor, introduza na caixa abaixo as palavras apresentadas ([[Special:Captcha/help|mais informações]]):',
+	'fancycaptcha-sendemail' => "Para ajudar a prevenir o ''spam'' automatizado, por favor, introduza na caixa as palavras que aparecem abaixo ([[Special:Captcha/help|mais informações]]):",
 );
 
 /** Brazilian Portuguese (Português do Brasil)
  * @author Eduardo.mps
+ * @author Giro720
  */
 $messages['pt-br'] = array(
 	'fancycaptcha-addurl' => "A sua edição inclui novas ligações externas. Como prevenção contra sistemas automatizados que inserem ''spam'', por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):",
@@ -802,29 +1071,71 @@
 	'fancycaptcha-createaccount' => 'Como prevenção contra sistemas automatizados de criação de contas, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
 	'fancycaptcha-create' => 'Para criar a página, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
 	'fancycaptcha-edit' => 'Para editar esta página, por favor, introduza as palavras exibidas na seguinte caixa ([[Special:Captcha/help|mais informações]]):',
+	'fancycaptcha-sendemail' => "Para ajudar a prevenir o ''spam'' automatizado, por favor, introduza na caixa as palavras que aparecem abaixo ([[Special:Captcha/help|mais informações]]):",
 );
 
+/** Romansh (Rumantsch)
+ * @author Kazu89
+ */
+$messages['rm'] = array(
+	'fancycaptcha-createaccount' => "Per impedir la creaziun automatica da contos d'utilisader, endatescha per plaschair ils bustabs che vegnan mussads sutvart ([[Special:Captcha/help|dapli infos]]):",
+);
+
 /** Romanian (Română)
+ * @author Firilacroco
  * @author Mihai
  */
 $messages['ro'] = array(
-	'fancycaptcha-createaccount' => 'Pentru a ajuta protecţia împotriva creării automate de conturi, te rog să introduci în cutie cuvintele care apar mai jos ([[Special:Captcha/help|mai multe detalii]]):',
+	'fancycaptcha-addurl' => 'Modificarea dumneavoastră include legături externe noi.
+Pentru a împiedica roboții de spam, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):',
+	'fancycaptcha-badlogin' => 'Pentru a împiedica spargerea automată a parolelor, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):',
+	'fancycaptcha-createaccount' => 'Pentru a împiedica crearea automată de conturi, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):',
 	'fancycaptcha-create' => 'Pentru a crea pagina, te rog să introduci în cutie cuvintele care apar mai jos ([[Special:Captcha/help|mai multe detalii]]):',
 	'fancycaptcha-edit' => 'Pentru a modifica această pagină, te rog să introduci în cutie cuvintele care apar mai jos ([[Special:Captcha/help|mai multe detalii]]):',
+	'fancycaptcha-sendemail' => 'Pentru a împiedica roboții de spam, vă rugăm să introduceți cuvintele care apar mai jos în căsuță ([[Special:Captcha/help|mai multe detalii]]):',
 );
 
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'fancycaptcha-addurl' => "'U cangiamende tue inglude de le collegaminde esterne.
+Pe aiutà a proteggere condre a 'u spam automateche, pe piacere mitte le parole ca combare sotte ([[Special:Captcha/help|cchiù 'mbormaziune]]):",
+	'fancycaptcha-badlogin' => 'Pe aiutà a proteggere condre a futteminde automatece de password, pe piacere mitte le parole ca combare aqquà sotte ([[Special:Captcha/help|more info]]):',
+	'fancycaptcha-createaccount' => 'Pe aiutà a proteggere condre a ccreazione automateche de cunde utinde, pe piacere mitte le parole ca combare aqquà sotte ([[Special:Captcha/help|more info]]):',
+	'fancycaptcha-create' => 'Pe ccrejà sta pàgene, pe piacere mitte le parole ca combare aqquà sotte ([[Special:Captcha/help|more info]]):',
+	'fancycaptcha-edit' => 'Pe cangià sta pàgene, pe piacere mitte le parole combare aqquà sotte ([[Special:Captcha/help|more info]]):',
+	'fancycaptcha-sendemail' => "Pe aiutà a proteggere condre a spam automatece, pe piacere mitte le parole ca combare aqquà sotte ([[Special:Captcha/help|cchiù 'mbormaziune]]):",
+);
+
 /** Russian (Русский)
+ * @author Dim Grits
+ * @author Lockal
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
+	'fancycaptcha-desc' => 'Необычный CAPTCHA-генератор для подтверждения редактирования',
 	'fancycaptcha-addurl' => 'Ваша правка содержит новые внешние ссылки. В целях защиты от спама, пожалуйста, введите слова, показанные ниже в рамке ([[Special:Captcha/help|подробнее…]]):',
 	'fancycaptcha-badlogin' => 'В целях защиты от автоматического взлома паролей, пожалуйста, введите в поле ввода буквы с изображения ([[Special:Captcha/help|подробнее]]):',
-	'fancycaptcha-createaccount' => 'Для предотвращения автоматической регистрации учётных записей используется контрольная последовательность символов. Пожалуйста, введите изображённые символы в текстовое поле ниже ([[Special:Captcha/help|подробнее]]):',
+	'fancycaptcha-createaccount' => 'Для предотвращения автоматической регистрации учётных записей, пожалуйста, введите изображённые символы в текстовое поле ([[Special:Captcha/help|подробнее]]):',
 	'fancycaptcha-create' => 'Для создания страницы, пожалуйста, введите буквы, которые видны на изображении ниже ([[Special:Captcha/help|подробнее…]]):',
 	'fancycaptcha-edit' => 'Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже ([[Special:Captcha/help|подробнее…]]):',
+	'fancycaptcha-sendemail' => 'В целях защиты от автоматического спама, пожалуйста, введите показанные ниже слова ([[Special:Captcha/help|подробнее]]):',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'fancycaptcha-addurl' => 'Ваше едітованя обсягує новы одказы формов URL; про охорону перед автоматічным спамом мусите описати текст з наступного образку. ([[Special:Captcha/help|Што тото значіть?]])',
+	'fancycaptcha-badlogin' => 'В рамках охороны перед автоматічныма пробами угаднути гесло мусите описати текст з наступного образку. ([[Special:Captcha/help|Што тото значіть?]]):',
+	'fancycaptcha-createaccount' => 'В рамках охороны перед автоматічныма створёванями конт мусите про выконаня реґістрації описати текст з наступного образку. ([[Special:Captcha/help|Што тото значіть?]]):',
+	'fancycaptcha-create' => 'Жебы сьте могли створити сторінку, мусите описати текст з наступного образку:([[Special:Captcha/help|Што тото значіть?]])',
+	'fancycaptcha-edit' => 'Жебы сьте могли едітовати тоту сторінку, мусите описати текст з наступного образку: ([[Special:Captcha/help|Што тото значіть?]])',
+	'fancycaptcha-sendemail' => 'В рамках охороны перед автоматічным спамом мусите описати текст з наступного образку. ([[Special:Captcha/help|Што тото значіть?]]):',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
@@ -833,9 +1144,11 @@
 	'fancycaptcha-createaccount' => 'Ааттары аптамаатынан бэлиэтиири суох оҥорор туһуттан бу дьайыыны оҥороргор көрдөһөбүт: ойууламмыт сурук бэлиэлэрин анал сиргэ киллэр  ([[Special:Captcha/help|сиһилии]]):',
 	'fancycaptcha-create' => 'Эн көннөрүүҥ тас ыйынньыктардаах эбит. Спаамтан көмүскэнэр туһуттан манна баар тыллары хатылыыргар көрдөһөбүт ([[Special:Captcha/help|сиһилии…]]):',
 	'fancycaptcha-edit' => 'Эн көннөрүүҥ тас ыйынньыктардаах эбит. Спаамтан көмүскэнэр туһуттан манна баар тыллары хатылыыргар көрдөһөбүт ([[Special:Captcha/help|сиһилии…]]):',
+	'fancycaptcha-sendemail' => 'Аптамаат спаамтан көмүскэнэр дьайыыны оҥороргор көрдөһөбүт, манна ойууламмыт тыллары хатылаа ([[Special:Captcha/help|сиһилии]]):',
 );
 
 /** Sinhala (සිංහල)
+ * @author Thameera123
  * @author නන්දිමිතුරු
  */
 $messages['si'] = array(
@@ -845,6 +1158,7 @@
 	'fancycaptcha-createaccount' => 'ස්වයංක්‍රීය ගිණුම් තැනීම වැලකුම‍ට උදවු වනු වස්, පහත පෙන්නුම් කෙරෙන වචන  කොටුව තුල ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩිමනත් තොරතුරු]]):',
 	'fancycaptcha-create' => 'පිටුව තනනු වස්, පහත පෙන්නුම් කෙරෙන වචන  කොටුව තුල ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩිමනත් තොරතුරු]]):',
 	'fancycaptcha-edit' => 'මෙම පිටුව සංස්කරණය කරනු වස්, පහත පෙන්නුම් කෙරෙන වචන  කොටුව තුල ඇතුලත් කරන්න ([[Special:Captcha/help|වැඩිමනත් තොරතුරු]]):',
+	'fancycaptcha-sendemail' => 'ස්වයංක්‍රීය ස්පෑම් කිරීම්වලින් ආරක්ෂා කිරීම සඳහා උදව් වීමට පහත කොටුවේ පෙන්වන වචන ඇතුළත් කරන්න ([[Special:Captcha/help|more info]]):',
 );
 
 /** Slovak (Slovenčina)
@@ -856,10 +1170,25 @@
 	'fancycaptcha-createaccount' => 'Kvôli ochrane proti automatizovanému spamu je potrebné napísať slová zobrazené na tomto obrázku, až potom bude vytvorený nový účet: <br />([[Special:Captcha/help|Čo je toto?]])',
 	'fancycaptcha-create' => 'Vaša úprava obsahuje nové URL odkazy; kvôli ochrane proti automatizovanému spamu je potrebné napísať slová zobrazené na tomto obrázku: <br />([[Special:Captcha/help|Čo je toto?]])',
 	'fancycaptcha-edit' => 'Vaša úprava obsahuje nové URL odkazy; kvôli ochrane proti automatizovanému spamu je potrebné napísať slová zobrazené na tomto obrázku: <br />([[Special:Captcha/help|Čo je toto?]])',
+	'fancycaptcha-sendemail' => 'Ako ochranu proti automatizovanému spamu, prosím zadajte slová z nasledujúceho obrázka do poľa pre odpoveď ([[Special:Captcha/help|ďalšie informácie]]):',
 );
 
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'fancycaptcha-addurl' => 'Vaše urejanje vključuje nove zunanje povezave.
+Zaradi zaščite pred samodejnim smetjem, prosimo vnesite spodnje besede v polje ([[Special:Captcha/help|več informacij]]):',
+	'fancycaptcha-badlogin' => 'Zaradi zaščite pred samodejnim ugotavljanjem gesel, prosimo vnesite spodnje besede v polje ([[Special:Captcha/help|več informacij]]):',
+	'fancycaptcha-createaccount' => 'Zaradi zaščite pred samodejnim ustvarjanjem računov, prosimo vnesite spodnje besede v polje ([[Special:Captcha/help|več informacij]]):',
+	'fancycaptcha-create' => 'Če želite ustvariti stran, prosimo vnesite spodnje besede v polje ([[Special:Captcha/help|več informacij]]):',
+	'fancycaptcha-edit' => 'Če želite urejati stran, prosimo vnesite spodnje besede v polje ([[Special:Captcha/help|več informacij]]):',
+	'fancycaptcha-sendemail' => 'Zaradi zaščite pred samodejnim smetenjem, prosimo vnesite spodnje besede v polje ([[Special:Captcha/help|več informacij]]):',
+);
+
 /** Albanian (Shqip)
  * @author Dori
+ * @author Olsi
  */
 $messages['sq'] = array(
 	'fancycaptcha-addurl' => 'Redaktimi juaj ka lidhje URL të reja dhe si mbrojtje kundër abuzimeve automatike duhet të shtypni çfarë shfaqet tek figura e mëposhtme:<br /> ([[Special:Captcha|Çfarë është kjo?]])',
@@ -867,30 +1196,53 @@
 	'fancycaptcha-createaccount' => 'Për të mbrojtur kundër hapjeve të llogarive në mënyrë automatike ju lutem shtypni çfarë shfaqet tek figura e mëposhtme ([[Special:Captcha|Çfarë është kjo?]]):',
 	'fancycaptcha-create' => 'Për të krijuar një faqe, ju lutem shtypni çfarë shfaqet tek figura e mëposhtme ([[Special:Captcha|Çfarë është kjo?]]):',
 	'fancycaptcha-edit' => 'Për të redaktuar këtë faqe ju lutem shtypni çfarë shfaqet tek figura e mëposhtme ([[Special:Captcha|Çfarë është kjo?]]):',
+	'fancycaptcha-sendemail' => "Për t'u mbrojtur nga metoda automatike e gjetjes së fjalëkalimeve ju kërkojmë të vendosni fjalët e figurës në kuti ([[Special:Captcha/help|më shumë informacion]]):",
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
+ * @author Жељко Тодоровић
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
-	'fancycaptcha-addurl' => 'Твоја измена укључује нове спољне везе. У циљу заштите од аутоматског спама, унеси речи које се налазе испод у кутију ([[Special:Captcha/help|детаљније]]):',
-	'fancycaptcha-badlogin' => 'У циљу спречавања аутоматског откривања лозинки, унеси речи које се налазе испод у кутију ([[Special:Captcha/help|детаљније]]):',
-	'fancycaptcha-createaccount' => 'У циљу заштите од аутоматског спама, унеси речи одоздо у кутију ([[Special:Captcha/help|детаљније]]):',
-	'fancycaptcha-create' => 'Да би се направила страна, потребно је унети речи које се налазе испод кутије ([[Special:Captcha/help|детаљније]]):',
-	'fancycaptcha-edit' => 'За измену ове стране унеси речи које се налазе испод кутије ([[Special:Captcha/help|детаљније]]):',
+	'fancycaptcha-desc' => 'Обогаћен стварач сликовног кода за потврду уређивања',
+	'fancycaptcha-addurl' => 'Ваша измена садржи нове спољашње везе.
+У циљу заштите од непожељних порука, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):',
+	'fancycaptcha-badlogin' => 'У циљу заштите од пробијања лозинки, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):',
+	'fancycaptcha-createaccount' => 'У циљу заштите од самоотварања налога, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):',
+	'fancycaptcha-create' => 'Да бисте направили страницу, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):',
+	'fancycaptcha-edit' => 'Да бисте уредили ову страницу, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):',
+	'fancycaptcha-sendemail' => 'У циљу заштите од непожељних порука, унесите речи са слике у поље испод ([[Special:Captcha/help|више информација]]):',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ * @author Жељко Тодоровић
+ */
+$messages['sr-el'] = array(
+	'fancycaptcha-desc' => 'Obogaćen stvarač slikovnog koda za potvrdu uređivanja',
+	'fancycaptcha-addurl' => 'Tvoja izmena uključuje nove spoljne veze. U cilju zaštite od automatskog spama, unesi reči koje se nalaze ispod u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'fancycaptcha-badlogin' => 'U cilju sprečavanja automatskog otkrivanja lozinki, unesi reči koje se nalaze ispod u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'fancycaptcha-createaccount' => 'U cilju zaštite od automatskog spama, unesi reči odozdo u kutiju ([[Special:Captcha/help|detaljnije]]):',
+	'fancycaptcha-create' => 'Da bi se napravila stranica, potrebno je uneti reči koje se nalaze ispod kutije ([[Special:Captcha/help|detaljnije]]):',
+	'fancycaptcha-edit' => 'Za izmenu ove strane unesi reči koje se nalaze ispod kutije ([[Special:Captcha/help|detaljnije]]):',
+	'fancycaptcha-sendemail' => 'U cilju zaštite od automatskog spama, unesi reči odozdo u kutiju ([[Special:Captcha/help|detaljnije]]):',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'fancycaptcha-addurl' => 'Dien Beoarbaidenge änthaalt näie externe Ferbiendengen. Tou Schuts foar automatisierde Spamminge reek dät foulgjende Woud in dät Fäild ien. Klik dan fonnäien ap „Siede spiekerje“ [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
-	'fancycaptcha-badlogin' => 'Toun Schuts foar ne Kompromittierenge fon dien Benutserkonto reek dät foulgjende Woud in dät Fäild hierunner ien [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]]:',
-	'fancycaptcha-createaccount' => 'Toun Schuts foar automatisierde Anloage fon Benutserkonten reek dät foulgjende Woud in dät Fäild hierunner ien  [[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
+	'fancycaptcha-addurl' => 'Dien Beoarbaidenge änthaalt näie externe Ferbiendengen.
+Tou Skuts foar automatisierde Spamminge reek dät foulgjende Woud in dät Fäild ien.
+Klik dan fonnäien ap „Siede spiekerje“ [[Special:Captcha/help|(Froagen of Probleme?)]].',
+	'fancycaptcha-badlogin' => 'Toun Skuts foar ne Kompromittierenge fon dien Benutserkonto reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]]:',
+	'fancycaptcha-createaccount' => 'Toun Skuts foar automatisierde Anloage fon Benutserkonten reek dät foulgjende Woud in dät Fäild hierunner ien [[Special:Captcha/help|(Froagen of Probleme?)]].',
 	'fancycaptcha-create' => 'Tou dät Moakjen fon ju Siede reek dät foulgjende Woud in dät Fäild hierunner ien
-[[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
+[[Special:Captcha/help|(Froagen of Probleme?)]].',
 	'fancycaptcha-edit' => 'Tou Beoarbaidenge fon disse Siede reek dät foulgjende Woud in dät Fäild hierunner ien
-[[{{ns:special}}:Captcha/help|(Froagen of Probleme?)]].',
+[[Special:Captcha/help|(Froagen of Probleme?)]].',
 );
 
 /** Sundanese (Basa Sunda)
@@ -900,7 +1252,9 @@
 	'fancycaptcha-edit' => 'Éditan Anjeun ngeusikeun tumbu kaluar nu anyar. Pikeun panangtayungan ka spam otomatis, mangga asukkeun kecap di handapeun ieu ka kotak anu disadiakeun ([[Special:Captcha/help|salengkeupna]]):',
 );
 
-/** Swedish (Svenska) */
+/** Swedish (Svenska)
+ * @author Ainali
+ */
 $messages['sv'] = array(
 	'fancycaptcha-addurl' => 'Din ändring lägger till nya externa länkar i texten. För att skydda wikin mot
 automatisk spam måste du skriva orden som visas härunder i rutan ([[Special:Captcha/help|mer information]]):',
@@ -912,6 +1266,8 @@
 ([[Special:Captcha/help|mer information]]):',
 	'fancycaptcha-edit' => 'För att redigera den här sidan måste du först skriva orden som visas härunder i rutan
 ([[Special:Captcha/help|mer information]]):',
+	'fancycaptcha-sendemail' => 'För att skydda wikin mot automatiserad lösenordknäckning måste du skriva
+orden som visas härunder i rutan ([[Special:Captcha/help|mer information]]):',
 );
 
 /** Telugu (తెలుగు)
@@ -929,7 +1285,7 @@
 ([[Special:Captcha/help|మరింత సమాచారం]]):',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
@@ -940,6 +1296,38 @@
 	'fancycaptcha-edit' => 'Барои вироиши ин саҳифа, вожаеро ки дар тасвир мебинед, ворид кунед ([[Special:Captcha/help|иттилооти бештар]]):',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'fancycaptcha-addurl' => 'Viroişi şumo pajvandhoi çadidi xoriçiro dar bar megirad. Baroi kūmak ba peşgiri az haraznigori xudkor, lutfan voƶaero ki dar tasvir mebined, vorid kuned ([[Special:Captcha/help|ittilooti beştar]]):',
+	'fancycaptcha-badlogin' => 'Baroi kūmak ba peşgiri az şikastani xudkori kalimahoi ubur, voƶaero ki dar tasvir mebined, vorid kuned  ([[Special:Captcha/help|ittilooti beştar]]):',
+	'fancycaptcha-createaccount' => 'Baroi kūmak az eçodi xudkori hisobi korbarī, voƶaero ki dar tasvir mebined, vorid kuned ([[Special:Captcha/help|ittilooti beştar]]):',
+	'fancycaptcha-create' => 'Baroi eçodi sahifa, voƶaero ki dar tasvir mebined, vorid kuned  ([[Special:Captcha/help|ittilooti beştar]]):',
+	'fancycaptcha-edit' => 'Baroi viroişi in sahifa, voƶaero ki dar tasvir mebined, vorid kuned ([[Special:Captcha/help|ittilooti beştar]]):',
+);
+
+/** Thai (ไทย)
+ * @author Harley Hartwell
+ */
+$messages['th'] = array(
+	'fancycaptcha-addurl' => 'การแก้ไขของคุณมีการเพิ่มลิงก์ไปสู่เว็บไซต์อื่น เพื่อช่วยป้องกันการสแปมอัตโนมัติ กรุณาพิมพ์ข้อความที่คุณเห็นด้านล่างลงในกล่องที่กำหนดให้ ([[Special:Captcha/help|ข้อมูลเพิ่มเติม]])',
+	'fancycaptcha-badlogin' => 'เพื่อป้องกันการแคร็กรหัสผ่านจากกระบวนการอัตโนมัติ กรุณาพิมพ์ข้อความที่คุณเห็นด้านล่างลงในกล่องที่กำหนดให้ ([[Special:Captcha/help|ข้อมูลเพิ่มเติม]])',
+	'fancycaptcha-createaccount' => 'เพื่อป้องกันการสร้างบัญชีผู้ใช้ด้วยกระบวนการอัตโนมัติ กรุณาพิมพ์ข้อความที่คุณเห็นด้านล่างลงในกล่องที่กำหนดให้ ([[Special:Captcha/help|ข้อมูลเพิ่มเติม]])',
+	'fancycaptcha-create' => 'เพื่อสร้างหน้านี้ กรุณาพิมพ์ข้อความที่คุณเห็นด้านล่างลงในกล่องที่กำหนดให้ ([[Special:Captcha/help|ข้อมูลเพิ่มเติม]])',
+	'fancycaptcha-edit' => 'เพื่อแก้ไขหน้านี้ กรุณาพิมพ์ข้อความที่คุณเห็นด้านล่างลงในกล่องที่กำหนดให้ ([[Special:Captcha/help|ข้อมูลเพิ่มเติม]])',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'fancycaptcha-badlogin' => 'Awtomatik parol döwülmeginden goranmak üçin, aşakdaky sözleri gutunyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'fancycaptcha-createaccount' => 'Hasaby awtomatik parol döwülmeginden goramak üçin, aşakdaky sözleri gutunyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'fancycaptcha-create' => 'Sahypa döretmek üçin, aşakdaky sözleri gutunyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+	'fancycaptcha-edit' => 'Bu sahypany redaktirlemek üçin, aşakdaky sözleri gutunyň içine ýazyň ([[Special:Captcha/help|jikme-jik]]):',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
@@ -950,6 +1338,7 @@
 	'fancycaptcha-createaccount' => 'Upang makatulong sa pagsasanggalang laban sa kusang paglikha ng kuwenta/akawnt, pakilagay lamang ang mga salitang lumitaw sa ibaba patungo sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):',
 	'fancycaptcha-create' => 'Upang malikha ang pahina, pakilagay lamang ang mga salitang lumitaw sa ibaba patungo sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):',
 	'fancycaptcha-edit' => 'Upang mabago ang pahinang ito, pakilagay lamang ang mga salitang lumitaw sa ibaba patungo sa loob ng kahon ([[Special:Captcha/help|mas marami pang kabatiran]]):',
+	'fancycaptcha-sendemail' => 'Upang makatulong sa pagsasanggalang laban sa mga kusang pagsalakay ng ispam, pakilagay lamang ang mga salitang lumilitaw sa ibaba sa loob ng kahong ([[Special:Captcha/help|marami pang kabatiran]]):',
 );
 
 /** Turkish (Türkçe)
@@ -963,18 +1352,23 @@
 	'fancycaptcha-createaccount' => 'Otomatik hesap oluşturmaya karşı korumaya yardım etmek için, lütfen aşağıdaki kutuda görünen kelimeleri girin ([[Special:Captcha/help|daha fazla bilgi]]):',
 	'fancycaptcha-create' => 'Sayfayı oluşturmak için, lütfen aşağıdaki kutuda görünen kelimeleri girin ([[Special:Captcha/help|daha fazla bilgi]]):',
 	'fancycaptcha-edit' => 'Bu sayfayı değiştirmek için, lütfen aşağıdaki kutuda görünen kelimeleri girin ([[Special:Captcha/help|daha fazla bilgi]]):',
+	'fancycaptcha-sendemail' => 'Otomatik spamlerden korunmaya yardımcı olmak için, lütfen aşağıda görünen sözcükleri kutuya yazın ([[Special:Captcha/help|daha fazla bilgi]]):',
 );
 
 /** Ukrainian (Українська)
  * @author Ahonc
+ * @author Dim Grits
+ * @author Ytsukeng Fyvaprol
  */
 $messages['uk'] = array(
+	'fancycaptcha-desc' => 'Чудернацький CAPTCHA-генератор для підтвердження редагування',
 	'fancycaptcha-addurl' => 'Ваше редагування містить нові зовнішні посилання.
 Із метою захисту від спаму, будь ласка, введіть у текстове поле слова, зображені на картинці ([[Special:Captcha/help|докладніше]]):',
 	'fancycaptcha-badlogin' => 'Із метою захисту від автоматичного злому пароля, будь ласка, введіть у текстове поле слова, зображені на картинці ([[Special:Captcha/help|докладніше]]):',
 	'fancycaptcha-createaccount' => 'Із метою захисту від автоматичного створення облікових записів, будь ласка, введіть у текстове поле слова, зображені на картинці ([[Special:Captcha/help|докладніше]]):',
 	'fancycaptcha-create' => 'Щоб створити сторінку, будь ласка, введіть у текстове поле слова, зображені на картинці: ([[Special:Captcha/help|докладніше]]):',
 	'fancycaptcha-edit' => 'Щоб редагувати цю сторінку, будь ласка, введіть у текстове поле слова, зображені на картинці: ([[Special:Captcha/help|докладніше]]):',
+	'fancycaptcha-sendemail' => 'Для захисту від автоматичного спаму, будь ласка, введіть слова, які показані нижче в полі ([[Special:Captcha/help|more info]]):',
 );
 
 /** Vèneto (Vèneto)
@@ -987,17 +1381,21 @@
 	'fancycaptcha-createaccount' => 'Par jutarne a inpedir la creazion automatica dei account, par piaser inserissi ne la casela le parole che vien fora qua soto ([[Special:Captcha/help|magiori informazion]]):',
 	'fancycaptcha-create' => 'Par crear la pagina, par piaser inserissi ne la casela le parole che vien fora qua soto ([[Special:Captcha/help|magiori informazion]]):',
 	'fancycaptcha-edit' => 'Par modificar la pagina, par piaser inserissi ne la casela le parole che vien fora qua soto ([[Special:Captcha/help|magiori informazion]]):',
+	'fancycaptcha-sendemail' => 'Par precauzion contro i tentativi de forzatura automatica de le password, par piaser inserissi ne la casela le parole che vien fora qua soto ([[Special:Captcha/help|magiori informazion]]):',
 );
 
 /** Vietnamese (Tiếng Việt)
+ * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
+	'fancycaptcha-desc' => 'Trình sản xuất hình CAPTCHA đặc biệt cho ConfirmEdit',
 	'fancycaptcha-addurl' => 'Sửa đổi của bạn có chứa các liên kết ngoài. Để giúp tránh spam tự động, xin hãy nhập những từ xuất hiện ở dưới vào ô ([[Special:Captcha/help|thông tin thêm]]):',
 	'fancycaptcha-badlogin' => 'Để giúp tránh bẻ mật khẩu tự động, xin hãy nhập những từ xuất hiện ở dưới vào ô ([[Special:Captcha/help|thông tin thêm]]):',
 	'fancycaptcha-createaccount' => 'Để giúp tránh tạo tài khoản tự động, xin hãy nhập những chữ xuất hiện ở dưới vào ô ([[Special:Captcha/help|thông tin thêm]]):',
 	'fancycaptcha-create' => 'Để tạo trang, xin hãy nhập những chữ xuất hiện ở dưới vào ô ([[Special:Captcha/help|thông tin thêm]]):',
 	'fancycaptcha-edit' => 'Để sửa trang này, xin hãy nhập những từ xuất hiện ở dưới vào ô ([[Special:Captcha/help|thông tin thêm]]):',
+	'fancycaptcha-sendemail' => 'Để giúp chúng tôi chống lại spam tự động, xin hãy nhập những từ xuất hiện ở dưới vào ô ([[Special:Captcha/help|thông tin thêm]]):',
 );
 
 /** Volapük (Volapük)
@@ -1019,7 +1417,23 @@
 ([[Special:Captcha/help|Abiteedüs]]):',
 );
 
-/** Yue (粵語) */
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'fancycaptcha-create' => 'צו שאַפֿן דעם בלאַט, זײַט אזוי גוט און קלאַפט אַרײַן די ווערטער וואָס זענען אינעם קעסטל אונטן ([[Special:Captcha/help|מער אינפֿארמאַציע]]):',
+	'fancycaptcha-edit' => 'צו רעדאִקטירן דעם בלאַט, זײַט אזוי גוט און קלאַפט אַרײַן די ווערטער וואָס שטייען אינעם קעסטל אונטן ([[Special:Captcha/help|מער אינפֿארמאַציע]]):',
+);
+
+/** Yoruba (Yorùbá)
+ * @author Demmy
+ */
+$messages['yo'] = array(
+	'fancycaptcha-addurl' => 'Àwọn àtúnṣe yín ní àwọn ìjápọ̀ òde nínú.
+Láti ṣèránwọ́ láti kojú spam aṣefúnrararẹ̀, ẹ jọ̀wọ́ ẹ fi àwọn ọ̀rọ̀ tí wọ́n hàn nísàlẹ̀ sínú ààyè ([[Special:Captcha/help|ẹ̀kúnrẹ́rẹ́]]):',
+);
+
+/** Cantonese (粵語) */
 $messages['yue'] = array(
 	'fancycaptcha-addurl' => '你嘅編輯包括咗新嘅外部連結。為咗防止自動化嘅濫貼,請響下面個盒度輸入下面嘅文字 ([[Special:Captcha/help|更多資訊]]):',
 	'fancycaptcha-badlogin' => '為咗防止不當程式破解密碼,請響下面個盒度輸入下面嘅文字 ([[Special:Captcha/help|更多資訊]]):',
@@ -1028,21 +1442,28 @@
 	'fancycaptcha-edit' => '要編輯呢一版,請響下面個盒度輸入下面嘅文字 ([[Special:Captcha/help|更多資訊]]):',
 );
 
-/** Simplified Chinese (‪中文(简体)‬) */
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Bencmq
+ */
 $messages['zh-hans'] = array(
-	'fancycaptcha-addurl' => '你的编辑内容中含有本网站以外的连结。为防止不当程式大量破坏,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
-	'fancycaptcha-badlogin' => '为防止不当程式破解密码,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
-	'fancycaptcha-createaccount' => '为防止不当程式大量建立帐户,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
-	'fancycaptcha-create' => '为防止不当程式大量建立页面,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
-	'fancycaptcha-edit' => '如你想要编辑這个页面,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
+	'fancycaptcha-addurl' => '你的编辑内容中含有本网站以外的链接。为防止不当程式大量破坏,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
+	'fancycaptcha-badlogin' => '为防止不当程式破解密码,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
+	'fancycaptcha-createaccount' => '为防止不当程式大量建立帐户,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
+	'fancycaptcha-create' => '为防止不当程式大量建立页面,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
+	'fancycaptcha-edit' => '如你想要编辑這个页面,请输入以下的文字([[Special:Captcha/help|相关信息]]):',
+	'fancycaptcha-sendemail' => '为防止不当程式进行破坏,请输入以下的文字([[Special:Captcha/help|相关资讯]]):',
 );
 
-/** Traditional Chinese (‪中文(繁體)‬) */
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Horacewai2
+ * @author Waihorace
+ */
 $messages['zh-hant'] = array(
-	'fancycaptcha-addurl' => '您的編輯內容中含有本網站以外的連結。為防止不當程式大量破壞,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
-	'fancycaptcha-badlogin' => '為防止不當程式破解密碼,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
-	'fancycaptcha-createaccount' => '為防止不當程式大量建立帳戶,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
-	'fancycaptcha-create' => '為防止不當程式大量建立頁面,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
-	'fancycaptcha-edit' => '如您想要編輯此頁面,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
+	'fancycaptcha-addurl' => '您的編輯內容中含有本網站以外的連結。為防止不當程式大量破壞,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
+	'fancycaptcha-badlogin' => '為防止不當程式破解密碼,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
+	'fancycaptcha-createaccount' => '為防止不當程式大量建立帳戶,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
+	'fancycaptcha-create' => '為防止不當程式大量建立頁面,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
+	'fancycaptcha-edit' => '如您想要編輯此頁面,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
+	'fancycaptcha-sendemail' => '為防止不當程式進行破壞,請輸入以下的文字([[Special:Captcha/help|相關資訊]]):',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/FancyCaptcha.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,16 +18,20 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  */
 
 if ( !defined( 'MEDIAWIKI' ) ) {
 	exit;
 }
 
+require_once dirname( __FILE__ ) . '/ConfirmEdit.php';
+$wgCaptchaClass = 'FancyCaptcha';
+
 global $wgCaptchaDirectory;
 $wgCaptchaDirectory = "$wgUploadDirectory/captcha"; // bad default :D
 
@@ -37,6 +41,13 @@
 global $wgCaptchaSecret;
 $wgCaptchaSecret = "CHANGE_THIS_SECRET!";
 
-$wgExtensionMessagesFiles['FancyCaptcha'] = dirname(__FILE__).'/FancyCaptcha.i18n.php';
+/**
+ * By default the FancyCaptcha rotates among all available captchas.
+ * Setting $wgCaptchaDeleteOnSolve to true will delete the captcha
+ * files when they are correctly solved. Thus the user will need
+ * something like a cron creating new thumbnails to avoid drying up.
+ */
+$wgCaptchaDeleteOnSolve = false;
+
+$wgExtensionMessagesFiles['FancyCaptcha'] = dirname( __FILE__ ) . '/FancyCaptcha.i18n.php';
 $wgAutoloadClasses['FancyCaptcha'] = dirname( __FILE__ ) . '/FancyCaptcha.class.php';
-

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/HTMLCaptchaField.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/HTMLCaptchaField.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/HTMLCaptchaField.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,84 @@
+<?php
+/**
+ * HTMLFormField for inserting Captchas into a form.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @class
+ */
+class HTMLCaptchaField extends HTMLFormField {
+
+	/**
+	 * @var Captcha
+	 */
+	private $captcha;
+
+	public $prefix = '';
+
+	/**
+	 * @var Bool|Array
+	 */
+	private $validationResult;
+
+	public function __construct( $params ) {
+		parent::__construct( $params );
+
+		// For differentiating the type of form, mainly
+		if ( isset( $params['prefix'] ) ) {
+			$this->prefix = $params['prefix'];
+		}
+	}
+
+	/**
+	 * Get the captcha body.  Don't include any of the surrounding table cells/rows
+	 *
+	 * @param  $value String
+	 * @return String
+	 */
+	public function getInputHTML( $value ) {
+		# TODO
+	}
+
+	public function validate( $data, $alldata ) {
+		// We sent back the exists status of the captcha before.  If it *doesn't* exist
+		// we actually want to validate this as true, because we don't want an angry red
+		// error message, just for the user to put the captcha in again
+		if ( $data === false ) {
+			return true;
+		}
+
+
+	}
+
+	/**
+	 * @param  $request WebRequest
+	 * @return void
+	 */
+	public function loadDataFromRequest( $request ) {
+		$this->captcha = Captcha::factory();
+		$this->captcha->loadFromRequest( $request, $this );
+		if ( !$this->captcha->exists() ) {
+			// The captcha doesn't exist; probably because it's already been used and
+			// then deleted for security.  Load the field up with a new captcha which
+			// will be shown to the user when the validation of said new object fails
+			$this->captcha = Captcha::newRandom();
+		}
+
+		// This will be useful as the difference between "the captcha doesn't exist" and
+		// "you answered the captcha wrongly"
+		return $this->captcha->exists();
+	}
+}
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.class.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -7,26 +7,26 @@
 		return (int)$answer == (int)$info['answer'];
 	}
 
-	function addCaptchaAPI(&$resultArr) {
+	function addCaptchaAPI( &$resultArr ) {
 		list( $sum, $answer ) = $this->pickSum();
-		$index = $this->storeCaptcha( array('answer' => $answer ) );
+		$index = $this->storeCaptcha( array( 'answer' => $answer ) );
 		$resultArr['captcha']['type'] = 'math';
 		$resultArr['captcha']['mime'] = 'text/tex';
 		$resultArr['captcha']['id'] = $index;
 		$resultArr['captcha']['question'] = $sum;
 	}
-	
+
 	/** Produce a nice little form */
 	function getForm() {
 		list( $sum, $answer ) = $this->pickSum();
 		$index = $this->storeCaptcha( array( 'answer' => $answer ) );
-		
+
 		$form = '<table><tr><td>' . $this->fetchMath( $sum ) . '</td>';
-		$form .= '<td>' . Xml::input( 'wpCaptchaWord', false, false, array( 'tabindex' => '1' ) ) . '</td></tr></table>';
-		$form .= Xml::hidden( 'wpCaptchaId', $index );
+		$form .= '<td>' . Html::input( 'wpCaptchaWord', false, false, array( 'tabindex' => '1', 'required' ) ) . '</td></tr></table>';
+		$form .= Html::hidden( 'wpCaptchaId', $index );
 		return $form;
 	}
-	
+
 	/** Pick a random sum */
 	function pickSum() {
 		$a = mt_rand( 0, 100 );
@@ -36,14 +36,16 @@
 		$ans = $op == '+' ? ( $a + $b ) : ( $a - $b );
 		return array( $sum, $ans );
 	}
-	
+
 	/** Fetch the math */
 	function fetchMath( $sum ) {
-		$math = new MathRenderer( $sum );
+		if ( MWInit::classExists( 'MathRenderer' ) ) {
+			$math = new MathRenderer( $sum );
+		} else {
+			throw new MWException( 'MathCaptcha requires the Math extension for MediaWiki versions 1.18 and above.' );
+		}
 		$math->setOutputMode( MW_MATH_PNG );
 		$html = $math->render();
 		return preg_replace( '/alt=".*?"/', '', $html );
 	}
-
 }
-?>

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/MathCaptcha.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -4,15 +4,18 @@
  * Captcha class using simple sums and the math renderer
  * Not brilliant, but enough to dissuade casual spam bots
  *
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Rob Church <robchur at gmail.com>
  * @copyright © 2006 Rob Church
  * @licence GNU General Public Licence 2.0
  */
 
-if( !defined( 'MEDIAWIKI' ) ) {
-	echo( "This file is an extension to the MediaWiki software and cannot be used standalone.\n" );
-	die( 1 );
+if ( !defined( 'MEDIAWIKI' ) ) {
+	exit;
 }
+
+require_once dirname( __FILE__ ) . '/ConfirmEdit.php';
+$wgCaptchaClass = 'MathCaptcha';
+
 $wgAutoloadClasses['MathCaptcha'] = dirname( __FILE__ ) . '/MathCaptcha.class.php';
-

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.class.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * QuestyCaptcha class
+ *
+ * @file
+ * @author Benjamin Lees <emufarmers at gmail.com>
+ * @ingroup Extensions
+ */
+
+class QuestyCaptcha extends SimpleCaptcha {
+
+	/** Validate a captcha response */
+	function keyMatch( $answer, $info ) {
+		if ( is_array( $info['answer'] ) ) {
+			return in_array( strtolower( $answer ), $info['answer'] );
+		} else {
+			return strtolower( $answer ) == strtolower( $info['answer'] );
+		}
+	}
+
+	function addCaptchaAPI( &$resultArr ) {
+		$captcha = $this->getCaptcha();
+		$index = $this->storeCaptcha( $captcha );
+		$resultArr['captcha']['type'] = 'question';
+		$resultArr['captcha']['mime'] = 'text/plain';
+		$resultArr['captcha']['id'] = $index;
+		$resultArr['captcha']['question'] = $captcha['question'];
+	}
+
+	function getCaptcha() {
+		global $wgCaptchaQuestions;
+		return $wgCaptchaQuestions[mt_rand( 0, count( $wgCaptchaQuestions ) - 1 )]; // pick a question, any question
+	}
+
+	function getForm() {
+		$captcha = $this->getCaptcha();
+		if ( !$captcha ) {
+			die( "No questions found; set some in LocalSettings.php using the format from QuestyCaptcha.php." );
+		}
+		$index = $this->storeCaptcha( $captcha );
+		return "<p><label for=\"wpCaptchaWord\">{$captcha['question']}</label> " .
+			Html::element( 'input', array(
+				'name' => 'wpCaptchaWord',
+				'id'   => 'wpCaptchaWord',
+				'required',
+				'tabindex' => 1 ) ) . // tab in before the edit textarea
+			"</p>\n" .
+			Xml::element( 'input', array(
+				'type'  => 'hidden',
+				'name'  => 'wpCaptchaId',
+				'id'    => 'wpCaptchaId',
+				'value' => $index ) );
+	}
+
+	function getMessage( $action ) {
+		$name = 'questycaptcha-' . $action;
+		$text = wfMsg( $name );
+		# Obtain a more tailored message, if possible, otherwise, fall back to
+		# the default for edits
+		return wfEmptyMsg( $name, $text ) ? wfMsg( 'questycaptcha-edit' ) : $text;
+	}
+
+	function showHelp() {
+		global $wgOut;
+		$wgOut->setPageTitle( wfMsg( 'captchahelp-title' ) );
+		$wgOut->addWikiText( wfMsg( 'questycaptchahelp-text' ) );
+		if ( CaptchaStore::get()->cookiesNeeded() ) {
+			$wgOut->addWikiText( wfMsg( 'captchahelp-cookies-needed' ) );
+		}
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,1151 @@
+<?php
+/**
+ * Internationalisation file for the QuestyCaptcha module of the ConfirmEdit
+ * extension.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$messages = array();
+
+/** English */
+$messages['en'] = array(
+	'questycaptcha-desc' => 'Questy CAPTCHA generator for Confirm Edit',
+	'questycaptcha-addurl' => 'Your edit includes new external links.
+To help protect against automated spam, please answer the question that appears below ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-badlogin' => 'To help protect against automated password cracking, please answer the question that appears below ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-createaccount' => 'To help protect against automated account creation, please answer the question that appears below ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-create' => 'To create the page, please answer the question that appears below ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-edit' => 'To edit this page, please answer the question that appears below ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-sendemail' => 'To help protect against automated spamming, please answer the question that appears below ([[Special:Captcha/help|more info]]):',
+	'questycaptchahelp-text' => "Web sites that accept contributions from the public, like this wiki, are often abused by spammers who use automated tools to add their links to many sites.
+While these spam links can be removed, they are a significant nuisance.
+
+Sometimes, especially when adding new web links to a page, the wiki may ask you to answer a question.
+Since this is a task that is hard to automate, it will allow most real humans to make their contributions while stopping most spammers and other robotic attackers.
+
+Please contact the [[{{MediaWiki:Grouppage-sysop}}|site administrators]] for assistance if this is unexpectedly preventing you from making legitimate contributions.
+
+Click the 'back' button in your browser to return to the page editor.",
+);
+
+/** Message documentation (Message documentation)
+ * @author Fryed-peach
+ * @author Hamilton Abreu
+ */
+$messages['qqq'] = array(
+	'questycaptcha-desc' => '{{desc}}',
+	'questycaptcha-addurl' => 'See also
+*{{msg-mw|captcha-addurl}}
+*{{msg-mw|Fancycaptcha-addurl}}',
+	'questycaptcha-badlogin' => 'See also
+*{{msg-mw|captcha-badlogin}}
+*{{msg-mw|Fancycaptcha-badlogin}}',
+	'questycaptcha-createaccount' => 'See also
+*{{msg-mw|captcha-createaccount}}
+*{{msg-mw|Fancycaptcha-createaccount}}',
+	'questycaptcha-create' => 'See also
+*{{msg-mw|Captcha-create}}
+*{{msg-mw|Fancycaptcha-create}}',
+	'questycaptcha-edit' => 'See also
+*{{msg-mw|Captcha-edit}}
+*{{msg-mw|Fancycaptcha-edit}}',
+	'questycaptchahelp-text' => 'See also {{msg-mw|Captchahelp-text}}.',
+);
+
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'questycaptcha-addurl' => 'Your redakto përfshin të jashtme lidhje të reja. Për të ndihmuar në mbrojtjen kundër spam automatizuar, ju lutem përgjigje pyetjes që duket më poshtë ([[Special:Captcha/help|më shumë informacion]]):',
+	'questycaptcha-badlogin' => 'Për të ndihmuar në mbrojtjen kundër fjalëkalimin automatizuar plasaritje, ju lutem përgjigje pyetjes që duket më poshtë ([[Special:Captcha/help|më shumë informacion]]):',
+	'questycaptcha-createaccount' => 'Për të ndihmuar në mbrojtjen kundër krijimit llogari e automatizuar, ju lutemi përgjigje pyetjes që duket më poshtë ([[Special:Captcha/help|më shumë informacion]]):',
+	'questycaptcha-create' => 'Për të krijuar një faqe, ju lutem përgjigje të pyetjes që duket më poshtë ([[Special:Captcha/help|më shumë informacion]]):',
+	'questycaptcha-edit' => 'Për të redaktuar këtë faqe, ju lutem përgjigje të pyetjes që duket më poshtë ([[Special:Captcha/help|më shumë informacion]]):',
+	'questycaptcha-sendemail' => 'Për të ndihmuar në mbrojtjen kundër spamming automatizuar, ju lutem përgjigje pyetjes që duket më poshtë ([[Special:Captcha/help|më shumë informacion]]):',
+	'questycaptchahelp-text' => "Web faqet që të pranojë kontribute nga publiku, si ky wiki, shpesh keqtrajtohen nga spammers që përdorin mjete të automatizuar për të shtuar lidhjet e tyre me shumë vende. Përderisa këto lidhje spam mund të hiqen, ata janë një ngatërresë të rëndësishme. Ndonjëherë, sidomos kur duke shtuar të reja web lidhje me një faqe, wiki mund të kërkojë që për t'iu përgjigjur një pyetje. Ngaqë kjo është një detyrë që është e vështirë për të automatizuar, ajo do të lejojë të vërtetë njerëzit më të japin kontribute të tyre, ndërsa ndaluar spammers më dhe robotik sulmuesit të tjera. Ju lutem kontaktoni [[{{MediaWiki:Grouppage-sysop}}|faqe administratorët]] për ndihmë, nëse kjo është e papritur në parandalimin e ju nga bërja e kontributeve të ligjshme. Kliko 'butonin mbrapa në shfletuesin tuaj për t'u kthyer në faqen e redaktorit.",
+);
+
+/** Arabic (العربية)
+ * @author Ciphers
+ * @author Meno25
+ * @author OsamaK
+ */
+$messages['ar'] = array(
+	'questycaptcha-desc' => 'مولد كويستي كابتشا لConfirm Edit',
+	'questycaptcha-addurl' => 'يحتوي تعديلك على وصلات خارجية جديدة.
+للمساعدة في الحماية من السبام التلقائي، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'questycaptcha-badlogin' => 'للمساعدة في الحماية من السبام التلقائي، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'questycaptcha-createaccount' => 'للمساعدة في الحماية من إنشاء الحسابات التلقائي، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'questycaptcha-create' => 'لتنشئ الصفحة، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'questycaptcha-edit' => 'لتحرّر هذه الصفحة، من فضلك أجب على السؤال الذي يظهر أدناه ([[Special:Captcha/help|مزيد من المعلومات]]):',
+	'questycaptcha-sendemail' => 'للمساعدة في الحماية ضد البريد الإلكتروني الآلي المرغوب فيه، الرجاء الإجابة على السؤال الذي يظهر أدناه ([[Special:Captcha/help|المزيد من المعلومات]]):',
+	'questycaptchahelp-text' => "عادة ما يتم في المواقع التي تقبل الردود والرسائل من العامة، كهذا الويكي، تخريب الموقع عن طريق الأشخاص الذين يستعملون آليات معينة لإرسال وصلاتهم لمواقع متعددة بصورة آلية.
+وعلى الرغم من أن هذا يمكن إزالته ولكنه مزعج للغاية.
+
+في بعض الأحيان، خصوصا عند إضافة وصلات لصفحة، ربما يعرض الويكي صورة ملونة أو مشوشة ويطلب منك إدخال كلمات موجودة بالصورة أو يعرض عليك مسألة رياضية عشوائية ويطلب منك حلها.
+ولأن هذه المهمة صعبة للغاية لأن يقوم بها برنامج، سيسمح هذا للأشخاص الآدميين بإضافة تحريراتهم بينما ستوقف البرامج التخريبية والهجمات الآلية الأخرى.
+
+للأسف سيكون هذا صعبا بالنسبة لمستخدمي المتصفحات المحدودة أو التي تعتمد على النصوص فقط أو قراءة النصوص.
+في الوقت الحالي لا يوجد لدينا بديل سمعي.
+من فضلك راسل [[{{MediaWiki:Grouppage-sysop}}|إداريي الموقع]] للمساعدة إذا كان هذا الأمر يمنعك من التعديل ووضع وصلات قانونية.
+
+إذا كنت تحرر صفحة معينة: اضغط زر 'العودة' في متصفحك للعودة إلى التحرير.",
+);
+
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'questycaptcha-addurl' => 'Һеҙҙең текстығыҙҙа яңы тышҡы һылтанмалар бар.
+Автоматик спамдан һаҡлау маҡсатында, зинһар, түбәндә килтерелгән һорауға яуап бирегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'questycaptcha-badlogin' => 'Паролде автоматик ватыуҙан һаҡлау маҡсатында, зинһар, түбәндә килтерелгән һорауға яуап бирегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'questycaptcha-createaccount' => 'Иҫәп яҙмаларын автоматик булдырыуҙан һаҡлау маҡсатында, зинһар, түбәндә килтерелгән һорауға яуап бирегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'questycaptcha-create' => 'Яңы бит булдырыу өсөн, зинһар, түбәндә килтерелгән һорауға яуап бирегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'questycaptcha-edit' => 'Был битте мөхәррирләү өсөн, зинһар, түбәндә килтерелгән һорауға яуап бирегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'questycaptcha-sendemail' => 'Автоматик спамдан һаҡлау маҡсатында, зинһар, түбәндә килтерелгән һорауға яуап бирегеҙ ([[Special:Captcha/help|тулыраҡ мәғлүмәт]]):',
+	'questycaptchahelp-text' => 'Үҙенә эстәлек өҫтәргә һәм эстәлеген мөхәррирләргә мөмкинлек биргән веб-сайттар, шул иҫәптән был вики, йыш ҡына сайттарға автоматик һылтанмалар өҫтәү өсөн программалар ҡулланған спамлаусыларҙың маҡсатына әйләнә.
+Бындай һылтанмалар юйыла ала, әммә улар һиҙелерлек уңайһыҙлыҡ килтерә.
+
+Ҡайһы бер ғәмәлдәрҙе башҡарған ваҡытта — мәҫәлән, биткә һылтанма өҫтәгән ваҡытта — вики һеҙгә һорауға яуап бирергә тәҡдим итә ала. Был мәсьәләне автоматик рәүештә сисеү ауыр булғанға күрә, ул күпселек кешеләргә мөхәррирләүҙе башҡарырға мөмкинлек бирәсәк, һәм шул уҡ ваҡытта спамлаусыларҙың һәм башҡа автоматлаштырылған зыян килтереүселәрҙең күпселеген туҡтатасаҡ.
+
+Зинһар, әгәр бындай тикшереү һеҙгә сайтта намыҫ менән эшләргә ҡамасаулаһа, [[{{MediaWiki:Grouppage-sysop}}|хәкимдәргә]] мөрәжәғәт итегеҙ.
+
+Мөхәррирләүгә кире ҡайтыу өсөн, браузерығыҙҙа кире ҡайтыу төймәһенә баҫығыҙ.',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ * @author Jim-by
+ */
+$messages['be-tarask'] = array(
+	'questycaptcha-addurl' => 'Вашае рэдагаваньне ўтрымлівае вонкавыя спасылкі.
+Каб абараніцца да аўтаматычнага спаму, калі ласка, адкажыце на пытаньне, паказанае ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'questycaptcha-badlogin' => 'Для абароны супраць аўтаматычнага падбору пароля, калі ласка, адкажыце на пытаньне, паказанае ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'questycaptcha-createaccount' => 'Для абароны супраць аўтаматычнага стварэньня рахункаў, калі ласка, адкажыце на пытаньне, паказанае ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'questycaptcha-create' => 'Для стварэньня старонкі, калі ласка, адкажыце на пытаньне, паказанае ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'questycaptcha-edit' => 'Для рэдагаваньня гэтай старонкі, калі ласка, адкажыце на пытаньне, паказанае ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'questycaptcha-sendemail' => 'У мэтах абароны супраць аўтаматычнага спаму, калі ласка, адкажыце на пытаньне, паказанае ніжэй ([[Special:Captcha/help|дадатковая інфармацыя]]):',
+	'questycaptchahelp-text' => 'Вэб-сайты, якія прымаюць запісы ад грамадзкасьці, падобныя на {{GRAMMAR:вінавальны|{{SITENAME}}}}, часта атакуюцца спамэрамі, якія ўжываюць аўтаматызаваныя інструмэнты, каб зьмяшчаць свае спасылкі на шмат сайтаў.
+І хаця гэтыя спасылкі могуць быць прыбраныя, яны выклікаюць значныя нязручнасьці.
+
+Часам, асабліва калі Вы дадаеце новыя вонкавыя спасылкі на старонку, {{SITENAME}} можа паказаць Вам выяву з каляровым ці скажоным тэкстам і папрасіць увесьці гэты тэкст.
+Праз тое, што гэтае заданьне цяжка аўтаматызаваць, яно дазволіць большасьці рэальных людзей рабіць запісы, але спыніць большасьць спамэраў і іншых аўтаматызаваных робатаў.
+
+На жаль, гэта можа выклікаць нязручнасьці для ўдзельнікаў з абмежаваньнямі па зроку і для тых, хто ўжывае тэкставыя ці моўныя браўзэры.
+На гэты момант мы ня маем аўдыё-альтэрнатывы гэтай праверцы.
+Калі ласка, зьвяжыцеся з [[{{MediaWiki:Grouppage-sysop}}|адміністратарамі]], калі гэтая праверка перашкаджае Вам рабіць слушныя запісы.
+
+Націсьніце кнопку «назад» у Вашым браўзэры, каб вярнуцца да рэдагаваньня старонкі.',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'questycaptcha-addurl' => "Degaset hoc'h liammoù diavaez nevez.
+A-benn hor skoazellañ da stourm a-enep d'ar strob emgefre, respontit d'ar goulenn a-is ([[Special:Captcha/help|muioc'h a ditouroù]]) :",
+	'questycaptcha-badlogin' => "A-benn hor skoazellañ da stourm a-enep ar freuzañ gerioù-tremen gant ardivinkoù, respontit d'ar goulenn a-is ([[Special:Captcha/help|muioc'h a ditouroù]]) :",
+	'questycaptcha-createaccount' => "A-benn hor skoazellañ da stourm a-enep ar c'hrouiñ kontoù emgefre, respontit d'ar goulenn a-is ([[Special:Captcha/help|muioc'h a ditouroù]]) :",
+	'questycaptcha-create' => "A-benn gellout krouiñ ar bajenn, respontit d'ar goulenn a-is ([[Special:Captcha/help|muioc'h a ditouroù]]) :",
+	'questycaptcha-edit' => "A-benn gellout degas kemmoù er bajenn-mañ, respontit d'ar goulenn a-is ([[Special:Captcha/help|muioc'h a ditouroù]]) :",
+	'questycaptcha-sendemail' => "Evit hor skoazellañ da zizarbenn ar strob emgefre, respontit d'ar goulenn skrivet dindan ([[Special:Captcha/help|gouzout hiroc'h]]) :",
+	'questycaptchahelp-text' => "Alies e vez taget al lec'hiennoù a zegemer kemennadennoù a-berzh an holl, evel ar wiki-mañ, gant ar stroberien a implij ostilhoù emgefre evit postañ o liammoù war-du lec'hiennoù a bep seurt. Ha pa c'hallfent bezañ diverket, kazus-mat ez eo ar stroboù-se memes tra.
+
+A-wezhioù, dreist-holl pa vez ouzhpennet liammoù Web nevez war ur bajenn, e c'hallo ar wiki-mañ sevel ur goulenn ouzhoc'h. 
+Un trevell start da emgefrekaat eo hemañ. Gant se e c'hallo an implijerien wirion postañ ar pezh a fell dezho tra ma vo lakaet un harz d'an darn vrasañ eus ar stroberien pe d'an dagerien robotek all.
+
+Kit e darempred gant [[{{MediaWiki:Grouppage-sysop}}|merourien al lec'hienn]] evit bezañ skoazellet m'hoc'h eus diaesterioù da gemer perzh da vat abalamour d'an teknik-se.
+
+Pouezit war bouton 'kent' ho merdeer evit distreiñ d'ar bajenn gemmañ.",
+);
+
+/** Bosnian (Bosanski)
+ * @author CERminator
+ */
+$messages['bs'] = array(
+	'questycaptcha-addurl' => 'Vaša izmjena uključuje nove vanjske linkove.
+Da bi pomogli protiv automatskog spama, molimo odgovorite na pitanje koje je prikazano ispod ([[Special:Captcha/help|više informacija]]):',
+	'questycaptcha-badlogin' => 'Da bi pomogli u sprječavanju protiv automatskog probijanja šifre, molimo Vas da odgovorite na pitanje koje je prikazano ispod ([[Special:Captcha/help|više informacija]]):',
+	'questycaptcha-createaccount' => 'Da bi pomogli u sprječavanju automatskog pravljenja računa, molimo Vas da odgovorite na pitanje koje je prikazano ispod ([[Special:Captcha/help|više informacija]]):',
+	'questycaptcha-create' => 'Da bi ste napravili stranicu, molimo Vas da odgovorite na pitanje koje je prikazano ispod ([[Special:Captcha/help|više informacija]]):',
+	'questycaptcha-edit' => 'Da bi ste uredili ovu stranicu, molimo Vas da odgovorite na pitanje koje je prikazano ispod ([[Special:Captcha/help|više informacija]]):',
+	'questycaptcha-sendemail' => 'Da bi pomogli u zaštiti protiv automatskog spamovanja, molimo Vas da odgovorite na pitanje koje je prikazano ispod ([[Special:Captcha/help|više informacija]]):',
+	'questycaptchahelp-text' => "Websajtovi koji podržavaju doprinose iz javnosti, kao što je ovaj viki, često zloupotrebljavaju vandali koji koriste automatizovane alate da šalju svoje linkove ka mnogim sajtovima.
+Iako se ovi neželjeni linkovi mogu ukloniti, oni ipak zadaju veliku muku.
+
+Ponekad, pogotovo kad se dodaju novi internet linkovi na stranicu, wiki može tražiti od Vas da odgovorite na pitanje. Pošto je teško automatizovati ovakav zadatak, on omogućuje svim pravim ljudima da vrše svoje izmjene, ali će zato spriječiti vandale i ostale robotske napadače.
+
+Molimo Vas da kontaktirate [[{{MediaWiki:Grouppage-sysop}}|administratore stranice]] za pomoć ako je ovo prepreka za Vas da pravite uobičajene izmjene.
+
+Kliknite 'nazad' ('back') dugme vašeg preglednika da se vratite na polje za unos teksta.",
+);
+
+/** Catalan (Català)
+ * @author Paucabot
+ * @author Toniher
+ */
+$messages['ca'] = array(
+	'questycaptcha-addurl' => "L'edició inclou enllaços externs nous.
+Per ajudar a protegir-se contra la brossa automàtica, responeu la pregunta que apareix a continuació ([[Special:Captcha/help|més informació]]):",
+	'questycaptcha-create' => 'Per crear la pàgina, per favor responeu la pregunta que apareix a continuació ([[Special:Captcha/help|més informació]]):',
+);
+
+/** Czech (Česky)
+ * @author Mormegil
+ */
+$messages['cs'] = array(
+	'questycaptcha-addurl' => 'Vaše editace obsahuje nové externí odkazy.
+V zájmu ochrany před automatickým spamováním musíte zodpovědět níže uvedenou otázku ([[Special:Captcha/help|další informace]]):',
+	'questycaptcha-badlogin' => 'V rámci ochrany proti automatickým pokusům uhodnout heslo musíte zodpovědět níže uvedenou otázku ([[Special:Captcha/help|další informace]]):',
+	'questycaptcha-createaccount' => 'V rámci ochrany před automatickým vytvářením účtů musíte pro provedení registrace zodpovědět níže uvedenou otázku ([[Special:Captcha/help|další informace]]):',
+	'questycaptcha-create' => 'Abyste mohli založit stránku, musíte zodpovědět níže uvedenou otázku ([[Special:Captcha/help|další informace]]):',
+	'questycaptcha-edit' => 'Abyste mohli editovat tuto stránku, musíte zodpovědět níže uvedenou otázku ([[Special:Captcha/help|další informace]]):',
+	'questycaptcha-sendemail' => 'V rámci ochrany proti automatickému spamování musíte zodpovědět níže zobrazenou otázku ([[Special:Captcha/help|více informací]]):',
+	'questycaptchahelp-text' => 'Webové stránky, do kterých mohou přispívat jejich návštěvníci (jako například tato wiki), jsou často terčem spammerů, kteří pomocí automatických nástrojů vkládají své odkazy na velké množství stránek. Přestože lze tento spam odstranit, představuje nepříjemné obtěžování.
+
+Někdy, zvláště při přidávání nových webových odkazů, vás wiki může požádat o zodpovězení otázky.
+Jelikož takovou úlohu lze jen těžko automatizovat, skuteční lidé mohou dále přispívat, zatímco většinu spammerů a jiných robotických útočníků to zastaví.
+
+Pokud vám to brání v užitečných příspěvcích a potřebujete pomoc, kontaktujte laskavě [[{{MediaWiki:Grouppage-sysop}}|správce serveru]].
+
+Pro návrat na předchozí stránku stiskněte ve svém prohlížeči tlačítko „zpět“.',
+);
+
+/** German (Deutsch)
+ * @author Kghbln
+ * @author Pill
+ * @author Umherirrender
+ */
+$messages['de'] = array(
+	'questycaptcha-desc' => 'Questy-CAPTCHA-Generator für die Erweiterung „Confirm Edit“',
+	'questycaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links.
+Zum Schutz vor automatisiertem Spam, beantworte bitte die untenstehende Frage, um die Seite speichern zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung deines Benutzerkontos, beantworte bitte die untenstehende Frage, um dich anmelden zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-createaccount' => 'Zum Schutz vor einer automatisierten Anlage von Benutzerkonten ist es erforderlich, die folgende Frage zu beantworten ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-create' => 'Bitte beantworte die folgende Frage, um diese Seite erstellen zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-edit' => 'Bitte beantworte die folgende Frage, um diese Seite speichern zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-sendemail' => 'Zum Schutz vor automatisiertem Spam, beantworte bitte die untenstehende Frage, um die E-Mail-Nachricht senden zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptchahelp-text' => 'Internetangebote, die — wie dieses Wiki — für Beiträge von praktisch jedem offen sind, werden häufig von Spammern missbraucht, welche versuchen, mithilfe entsprechender Werkzeuge ihre Links automatisch auf vielen Webseiten zu platzieren.
+Zwar können derartige Spam-Links wieder entfernt werden, doch stellen sie trotzdem ein erhebliches Ärgernis dar.
+
+In manchen Fällen, meist beim Versuch, neue Weblinks zu einer Seite hinzuzufügen, kann es vorkommen, dass du um die Beantwortung einer Frage gebeten wirst.
+Da es kaum möglich ist, dies zu automatisieren, können hierdurch die meisten Spammer aufgehalten werden. Menschlichen Benutzer sollten ihre Bearbeitungen hingegen durchführen können.
+
+Sollte dich dieses Verfahren beim Vornehmen erwünschter Bearbeitungen behindern, wende dich bitte an einen [[{{MediaWiki:Grouppage-sysop}}|Administrator]], um Unterstützung zu erhalten.
+
+Die Schaltfläche „Zurück“ des Browsers führt zurück zum vorherigen Bearbeitungsfenster.',
+);
+
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Imre
+ * @author Umherirrender
+ */
+$messages['de-formal'] = array(
+	'questycaptcha-addurl' => 'Ihre Bearbeitung enthält neue externe Links.
+Zum Schutz vor automatisiertem Spam beantworten Sie bitte die untenstehende Frage ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-badlogin' => 'Zum Schutz vor einer Kompromittierung Ihres Benutzerkontos beantworten Sie bitte die folgende Frage ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-create' => 'Bitte beantworten Sie die folgende Frage, um diese Seite erstellen zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-edit' => 'Bitte beantworten Sie die folgende Frage, um diese Seite bearbeiten zu können ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptcha-sendemail' => 'Zum Schutz vor automatisiertem Spam bitten wir Sie, die folgende Frage zu beantworten ([[Special:Captcha/help|weitere Informationen]]):',
+	'questycaptchahelp-text' => 'Internetangebote, die — wie dieses Wiki — für Beiträge von praktisch jedem offen sind, werden häufig von Spammern missbraucht, welche versuchen, mithilfe entsprechender Werkzeuge ihre Links automatisch auf vielen Webseiten zu platzieren.
+Zwar können derartige Spam-Links wieder entfernt werden, doch stellen sie trotzdem ein erhebliches Ärgernis dar.
+
+In manchen Fällen, meist beim Versuch, neue Weblinks zu einer Seite hinzuzufügen, kann es vorkommen, dass Sie um die Beantwortung einer Frage gebeten wirst.
+Da es kaum möglich ist, dies zu automatisieren, können hierdurch die meisten Spammer aufgehalten werden. Menschlichen Benutzer sollten ihre Bearbeitungen hingegen durchführen können.
+
+Sollte Sie dieses Verfahren beim Vornehmen erwünschter Bearbeitungen behindern, wenden Sie sich bitte an einen [[{{MediaWiki:Grouppage-sysop}}|Administrator]], um Unterstützung zu erhalten.
+
+Der „Zurück“-Knopf des Browsers führt zurück zum Bearbeitungsfenster.',
+);
+
+/** Lower Sorbian (Dolnoserbski)
+ * @author Michawiki
+ */
+$messages['dsb'] = array(
+	'questycaptcha-addurl' => 'Twója změna wopśimujo nowe eksterne wótkaze.
+Za šćit pśeśiwo zawtomatizěrowanemu spamoju, wótegroń pšosym na pšašanje, kótarež pokazujo se dołojce ([[Special:Captcha/help|dalšne informacije]]):',
+	'questycaptcha-badlogin' => 'Za šćit pśeśiwo zawtomatizěrowanemu wusnuchlenjeju gronidła, wótegroń pšosym na pšašanje, kótarež pokazujo se dołojce ([[Special:Captcha/help|dalšne informacije]]):',
+	'questycaptcha-createaccount' => 'Za šćit pśeśiwo zawtomatizěrowanemu napóranjeju kontow, wótegroń pšosym na pšašanje, kótarež pokazujo se dołojce ([[Special:Captcha/help|dalšne informacije]]):',
+	'questycaptcha-create' => 'Aby napórał bok, wótegroń pšosym na pšašanje, kótarež pokazujo se dołojce ([[Special:Captcha/help|dalšne informacije]]):',
+	'questycaptcha-edit' => 'Aby wobźěłał toś ten bok, wótegroń pšosym na pšašanje, kótarež pokazujo se dołojce ([[Special:Captcha/help|dalšne informacije]]):',
+	'questycaptcha-sendemail' => 'Za šćit pśeśiwo awtomatiskemu spamowanjeju, wótegroń pšosym pšašanje, kótarež pokazujo se dołojce ([[Special:Captcha/help|dalšne informacije]]):',
+	'questycaptchahelp-text' => 'Websedła, kótarež akceptěruju zjawne pśinoski, ako toś ten wiki, znjewužywaju se cesto wót spamowarjow, kótarež wužywaju zawtomatizěrowane rědy, aby pśidali swóje wótkaze na wjele sedłow. Lěcrownož toś te spamowe wótkaze daju se wótpóraś, su wóne bejna pógóršota. 
+
+Wótergi, wósebnje, gaž se nowe wótkaze pśidawaju bokoju, jo móžno, až se śi wiki něco pšaša. 
+Dokulaž to jo nadawk, kótaryž dajo se śěžko awtomatizěrowaś, dowólujo to napšawdnym luźam jich pśinoski wótpósłaś, nejwěcej spamowarjow a robotowe ataki pak se zaźaržyju. 
+
+Staj se pšosym z [[{{MediaWiki:Grouppage-sysop}}|administratorami sedła]] z pšosbu wó pomoc do zwiska, jolic to śi njewócakane zawobarujo słanje legitimnych pśinoskow. 
+
+Klikni na tłocašk "Slědk" we swójom wobglědowaku, aby wróśił se k wobźěłowańskemu woknoju.',
+);
+
+/** Greek (Ελληνικά)
+ * @author Omnipaedista
+ */
+$messages['el'] = array(
+	'questycaptcha-addurl' => 'Η επεξεργασία σας περιέχει νέους εξωτερικούς συνδέσμους.
+Για να μας βοηθήσετε στην προστασία κατά των αυτοματοποιημένων σπαμ, παρακαλώ απαντήστε στην παρακάτω ερώτηση ([[Special:Captcha/help|περισσότερες πληροφορίες]]):',
+);
+
+/** Esperanto (Esperanto)
+ * @author Castelobranco
+ */
+$messages['eo'] = array(
+	'questycaptcha-addurl' => 'Via redakto entenas novajn eksterajn ligilojn. 
+Por helpi protekti kontraŭ aŭtomatan spamadon, bonvolu respondu la demandon sube ([[Special:Captcha/help|pli da informo]]):',
+	'questycaptcha-badlogin' => 'Por helpi protekti kontraŭ aŭtomata divenado de pasvortoj, bonvolu respondu la demandon sube ([[Special:Captcha/help|pli da informo]]):',
+	'questycaptcha-createaccount' => 'Por helpi protekti kontraŭ aŭtomata konto-kreado, bonvolu respondu la demandon sube ([[Special:Captcha/help|pli da informo]]):',
+	'questycaptcha-create' => 'Por krei la paĝon, bonvolu respondu la demandon sube ([[Special:Captcha/help|pli da informo]]):',
+	'questycaptcha-edit' => 'Por redakti ĉi tiun paĝon, bonvolu respondu la demandon sube ([[Special:Captcha/help|pli da informo]]):',
+	'questycaptchahelp-text' => "Retejoj kiuj akcepti informon de publiko, kiel ĉi tiu vikio, estas ofte misuzitaj de spamistoj kiu uzas aŭtomatajn ilojn por afiŝi ligilojn al multaj retejoj. Kvankam ĉi tiu spam-ligiloj estas forigeblaj, ili estas granda ĝeno.
+
+Iufoje, ja kiam aldonante novajn retligilojn al paĝo, la vikio eble petos al vi respondi demandon. Tial ĉi tiu tasko estas malfacila por fari aŭtomate, ebligos al realaj homoj fari aldonaĵojn, kaj malebligos spamistojn kaj aliajn robotajn atakilojn.
+
+Bonvolu kontakti la [[{{MediaWiki:Grouppage-sysop}}|administrantojn de la retejo]] por helpo se ĉi tio malebligas al vi fari bonan aldonon.
+
+Klaku la 'reiru' butonon en via retumilo por reiri al la paĝo-redaktilo.",
+);
+
+/** Spanish (Español)
+ * @author Crazymadlover
+ * @author Pertile
+ */
+$messages['es'] = array(
+	'questycaptcha-addurl' => 'Tu edición incluye nuevos vínculos externos.
+Para ayudar a proteger contra spam automático, por favor responde la pregunta que aparece abajo ([[Special:Captcha/help|más información]]):',
+	'questycaptcha-badlogin' => 'Para ayudar a proteger contra craqueo de contraseña, por favor responde la pregunta que aparece abajo ([[Special:Captcha/help|más información]]):',
+	'questycaptcha-createaccount' => 'Para ayudar a proteger contra la creación automática de cuentas, por favor responde la pregunta que aparece abajo ([[Special:Captcha/help|más información]]):',
+	'questycaptcha-create' => 'Para crear la página, por favor responde la pregunta que aparece abajo ([[Special:Captcha/help|más información]]):',
+	'questycaptcha-edit' => 'Para editar esta página, por favor responde la pregunta que aparece abajo ([[Special:Captcha/help|más información]]):',
+	'questycaptcha-sendemail' => 'Para protegernos contra el spam automatizado por favor conteste la pregunta que aparece a continuación ([[Special:Captcha/help|más información]]):',
+	'questycaptchahelp-text' => "Sitios Web que aceptan contribuciones del público, como este wiki, son constantemente abusadas por enviadores de spam quienes usan herramientas automáticas para agregar sus enlaces a muchos sitios.
+Así estos enlaces spam puedan ser borrados, son una molestia significativa.
+
+A veces, especialmente cuando se agregan nuevos enlaces web a una página, el wiki puede pedirte que respondas a una pregunta.
+Ya que esta es una tarea que es difícil de automatizar, eso permitirá que más seres humanos reales hagan sus contribuciones mientras detiene a la mayor parte de enviadores de spam y otros atacantes robóticos.
+
+Por favor contacta a los [[{{MediaWiki:Grouppage-sysop}}|administradores del sitio]] para asistencia si esto está impidiéndote hacer contribuciones legítimas.
+
+Haz click en el botón 'atrás' en tu navegador para regresar al editor de página.",
+);
+
+/** Estonian (Eesti)
+ * @author Pikne
+ */
+$messages['et'] = array(
+	'questycaptcha-addurl' => 'Sinu muudatus sisaldab uusi välislinke.
+Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):',
+	'questycaptcha-badlogin' => 'Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks automaatsete parooliäraarvajate eest ([[Special:Captcha/help|lisateave]]):',
+	'questycaptcha-createaccount' => 'Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks kontode automaatse loomise eest ([[Special:Captcha/help|lisateave]]):',
+	'questycaptcha-create' => 'Lehekülje loomiseks vasta palun alljärgnevale küsimusele ([[Special:Captcha/help|lisateave]]):',
+	'questycaptcha-edit' => 'Selle lehekülje muutmiseks vasta palun alljärgnevale küsimusele ([[Special:Captcha/help|lisateave]]):',
+	'questycaptcha-sendemail' => 'Palun vasta alljärgnevale küsimusele. Abinõu on kaitseks automaadistatud rämpsmuudatuste eest ([[Special:Captcha/help|lisateave]]):',
+	'questycaptchahelp-text' => "Võrgukohti, mis lubavad külastajatel sisu muuta, nagu ka see viki, kasutavad sageli rämpsposti levitajad, lisades näiteks lehekülgedele reklaamilinke. Kuigi neid linke saab eemaldada, on nad siiski tülikad.
+
+Kasutajakontot registreerides või mõnele lehele uusi internetiaadresse postitades võidakse paluda sul küsimusele vastata.
+Kuna sellist tegevust on raske automaadistada, on see efektiivseks kaitseks rämpspostirobotite vastu ja lubab samas tavakasutajatel rahus muudatusi teha.
+
+Kui sul tekib raskusi muudatuste tegemisel, võta palun ühendust selle võrgukoha [[{{MediaWiki:Grouppage-sysop}}|administraatoritega]].
+
+Redigeerimislehele naasmiseks klõpsa võrgulehitseja ''tagasi''-nuppu.",
+);
+
+/** Basque (Euskara)
+ * @author Kobazulo
+ */
+$messages['eu'] = array(
+	'questycaptcha-create' => 'Orrialdea sortzeko, behean agertzen den galdera erantzun ezazu mesedez ([[Special:Captcha/help|informazio gehiago]]):',
+	'questycaptcha-edit' => 'Orrialde hau aldatzeko, behean agertzen den galdera erantzun ezazu mesedez ([[Special:Captcha/help|informazio gehiago]]):',
+);
+
+/** Finnish (Suomi)
+ * @author Crt
+ * @author Nike
+ */
+$messages['fi'] = array(
+	'questycaptcha-addurl' => 'Muokkauksesi sisältää uusia ulkoisia linkkejä.
+Automatisoitujen roskamuokkausten välttämiseksi vastaa alla olevaan kysymykseen ([[Special:Captcha/help|lisätietoja]]):',
+	'questycaptcha-badlogin' => 'Automatisoidun salasanan murtamisen estämiseksi vastaa alla olevaan kysymykseen ([[Special:Captcha/help|lisätietoja]]):',
+	'questycaptcha-createaccount' => 'Automaattisen käyttäjätunnusten luonnin estämiseksi vastaa alla olevaan kysymykseen ([[Special:Captcha/help|lisätietoja]]):',
+	'questycaptcha-create' => 'Luodaksesi sivun vastaa alla olevaan kysymykseen ([[Special:Captcha/help|lisätietoja]]):',
+	'questycaptcha-edit' => 'Muokataksesi tätä sivua vastaa alla olevaan kysymykseen ([[Special:Captcha/help|lisätietoja]]):',
+	'questycaptcha-sendemail' => 'Automatisoidun roskapostin lähettämisen estämiseksi vastaa alla olevaan kysymykseen ([[Special:Captcha/help|lisätietoja]]):',
+	'questycaptchahelp-text' => 'Web-sivustot, jotka hyväksyvät materiaalia yleisöltä, kuten tämä wiki, joutuvat usein automaattisia työkaluja käyttävien "spämmääjien" kohteeksi jotka lisäävät linkkejä eri sivustoille. Vaikka nämä roskalinkit voidaan poistaa, ne ovat merkittävä haittatekijä.
+
+Joskus, erityisesti kun lisäät uusia Web-linkkejä sivulle, wiki saattaa pyytää sinua vastaamaan kysymykseen.
+Koska tämä on vaikeasti automatisoitava tehtävä, se antaa useimpien oikeiden henkilöiden osallistua estäen roskamuokkausten ja muiden automaattisten hyökkäysten tekijöitä.
+
+Ota yhteyttä [[{{MediaWiki:Grouppage-sysop}}|ylläpitäjiin]] saadaksesi avustusta jos tämä odottamattomasti estää sinua tekemästä asiallisia muokkauksia.
+
+Napsauta selaimesi \'takaisin\'-painiketta palataksesi sivumuokkaimeen.',
+);
+
+/** French (Français)
+ * @author IAlex
+ * @author Verdy p
+ */
+$messages['fr'] = array(
+	'questycaptcha-desc' => "Générateur de questions ''captcha'' pour confirmer les modifications",
+	'questycaptcha-addurl' => 'Votre modification inclut de nouveaux liens externes.
+Pour nous aider dans la protection contre le pourriel automatisé, veuillez répondre à la question ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'questycaptcha-badlogin' => 'Afin de nous aider à prévenir le cassage des mots de passe par des automates, veuillez répondre à la question ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'questycaptcha-createaccount' => 'Afin de nous aider à lutter contre les créations automatiques de comptes, veuillez répondre à la question qui apparaît ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'questycaptcha-create' => 'Pour créer la page, veuillez répondre à la question ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'questycaptcha-edit' => 'Pour modifier cette page, veuillez répondre à la question ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'questycaptcha-sendemail' => 'Afin de nous aider à prévenir le spam automatique, veuillez répondre à la question ci-dessous ([[Special:Captcha/help|plus d’informations]]) :',
+	'questycaptchahelp-text' => 'Les sites web qui acceptent des contributions du public, tels que ce wiki, sont souvent victimes de polluposteurs qui utilisent des outils automatisés pour placer de nombreux liens vers leurs sites.
+Même si cette pollution peut être effacée, elle n’en reste pas moins irritante.
+
+Parfois, particulièrement lors de l’ajout de nouveaux liens externes dans une page, le wiki peut vous demander de répondre à une question.
+Cette tâche étant difficile à accomplir de façon automatisée, cela permet à la plupart des humains de réaliser leurs contributions tout en stoppant la plupart des polluposteurs et autres attaquants robotisés.
+
+Veuillez contacter [[{{MediaWiki:Grouppage-sysop}}|les administrateurs du site]] si cela vous empêche de façon inattendue de faire des contributions légitimes.
+
+Cliquez sur le bouton « Précédent » de votre navigateur pour revenir à la page de modification.',
+);
+
+/** Galician (Galego)
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'questycaptcha-desc' => 'Xerador de preguntas CAPTCHA para Confirm Edit',
+	'questycaptcha-addurl' => 'A súa edición inclúe novas ligazóns externas.
+Para axudar na protección contra o spam automatizado, conteste a pregunta que aparece a continuación ([[Special:Captcha/help|máis información]]):',
+	'questycaptcha-badlogin' => 'Para axudar na protección contra o descifrado automatizado de contrasinais, conteste a pregunta que aparece a continuación ([[Special:Captcha/help|máis información]]):',
+	'questycaptcha-createaccount' => 'Para axudar na protección contra a creación automática de contas, conteste a pregunta que aparece a continuación ([[Special:Captcha/help|máis información]]):',
+	'questycaptcha-create' => 'Para crear a páxina, conteste a pregunta que aparece a continuación ([[Special:Captcha/help|máis información]]):',
+	'questycaptcha-edit' => 'Para editar esta páxina, conteste a pregunta que aparece a continuación ([[Special:Captcha/help|máis información]]):',
+	'questycaptcha-sendemail' => 'Para contribuír na protección contra o spam automatizado, responda a pregunta que aparece a continuación ([[Special:Captcha/help|máis información]]):',
+	'questycaptchahelp-text' => "Os sitios web que aceptan publicar as contribucións dos usuarios, coma este wiki, sofren, con frecuencia, o abuso por parte de ''spammers'' que usan ferramentas que automatizan a inclusión de lixo en forma de ligazóns publicitarias, nunha chea de páxinas, en pouco tempo.
+Mentres as devanditas ligazóns non son eliminadas supoñen unha molestia e unha perda de tempo.
+
+En ocasións, en particular cando engada algunha nova ligazón externa, o wiki pode pedirlle que conteste unha pregunta.
+Como esta tarefa é difícil de automatizar, permite distinguir entre persoas e robots e dificulta os ataques automatizados dos ''spammers''.
+
+Por favor, contacte cun [[{{MediaWiki:Grouppage-sysop}}|administrador do sitio]] para solicitar axuda se o sistema lle impide rexistrarse para facer contribucións lexítimas.
+
+Prema no botón \"atrás\" do seu navegador para volver á páxina de edición.",
+);
+
+/** Swiss German (Alemannisch)
+ * @author Als-Holder
+ */
+$messages['gsw'] = array(
+	'questycaptcha-addurl' => 'In Dynere Bearbeitig het s neji extärni Gleicher (Links).
+As Schutz gege automatischi Spam, beantwort bitte d FRog, wu do unter gnännt wird ([[Special:Captcha/help|meh Informatione]]):',
+	'questycaptcha-badlogin' => 'As Schutz gege ne automatisch Passwort-Knacke, beantwort bitte d Frog, wu do unte gnännt wird ([[Special:Captcha/help|meh Informatione]]):',
+	'questycaptcha-createaccount' => 'As Schutz gege ne automatisch Aalege vu Benutzerkonte, beantwort bitte d Frog, wu do unte gnännt wird ([[Special:Captcha/help|meh Informatione]]):',
+	'questycaptcha-create' => 'Go d Syte aalege, beantwort bitte d Frog, wu do unte gnännt wird ([[Special:Captcha/help|meh Informatione]]):',
+	'questycaptcha-edit' => 'Go die Syte bearbeite, beantwort bitte d Frog, wu do unte gnännt wird ([[Special:Captcha/help|meh Informatione]]):',
+	'questycaptcha-sendemail' => 'As Schutz gege e automatischs Spamming, beantwort bitte d Frog, wu do unte gnännt wird ([[Special:Captcha/help|meh Informatione]]):',
+	'questycaptchahelp-text' => "Websyte, wu jede cha byytrage, wie des Wiki, wäre vylmol missbrucht vu Spammer, wu automatischi Wärchzyg bruche go ihri Gleicher (Links) in meglischt vyli Syte yyfiege.
+Au wänn die Spamgleicher chenne wider uusegnuu wäre, sin si einewäg e zimlig Ärgernis.
+
+Ab un zue, vor allem wänn neji Netzgleicher (Weblinks) in e Syte yygfiegt wäre, forderet s Wiki Di villicht uf, e Frog z beantworte.
+Wel des e Ufgab isch, wu mer schwär cha automatisiere, isch des e Megligkeit, Spammer un anderi automatischi Attacke z verhindere, derwylscht di meischte mänschlige Benutzer ihri Bearbeitige chenne byytrage.
+
+Bitte nimm Kontakt uf zue dr [[{{MediaWiki:Grouppage-sysop}}|Website-Administratore]] fir Hilf, wänn des unerwarteterwys verhinderet, ass Du chasch rächtmäßigi Bearbeitige mache.
+
+Druck dr 'Zruck'-Chnopf in Dyym Browser go zuem Bearbeitigsfänschter zruckgoh.",
+);
+
+/** Hebrew (עברית)
+ * @author Rotemliss
+ * @author YaronSh
+ */
+$messages['he'] = array(
+	'questycaptcha-addurl' => 'עריכתכם כוללת קישורים חיצוניים חדשים.
+כהגנה מפני ספאם אוטומטי, אנא ענו על השאלה המופיעה להלן ([[Special:Captcha/help|מידע נוסף]]):',
+	'questycaptcha-badlogin' => 'כהגנה מפני פריצת סיסמאות אוטומטית, אנא ענו על השאלה המופיעה להלן ([[Special:Captcha/help|מידע נוסף]]):',
+	'questycaptcha-createaccount' => 'כהגנה מפני יצירת חשבונות אוטומטית, אנא ענו על השאלה המופיעה להלן ([[Special:Captcha/help|מידע נוסף]]):',
+	'questycaptcha-create' => 'כדי ליצור את הדף, אנא ענו על השאלה המופיעה להלן ([[Special:Captcha/help|מידע נוסף]]):',
+	'questycaptcha-edit' => 'כדי לערוך את הדף, אנא ענו על השאלה המופיעה להלן ([[Special:Captcha/help|מידע נוסף]]):',
+	'questycaptcha-sendemail' => 'כדי לסייע בהגנה מפני הודעות ספאם אוטומטיות, נא לענות על השאלה המופיעה להלן ([[Special:Captcha/help|מידע נוסף]]):',
+	'questycaptchahelp-text' => "פעמים רבות מנצלים ספאמרים אתרים שמקבלים תוכן מהציבור, כמו אתר הוויקי הזה, כדי להוסיף את הקישורים שלהם לאתרים רבים באינטרנט, באמצעות כלים אוטומטיים.
+אמנם ניתן להסיר את קישורי הספאם הללו, אך הם מהווים מטרד משמעותי.
+
+לעתים, בעיקר כשאתם מכניסים קישורי אינטרנט חדשים לתוך עמוד, אתר הוויקי עשוי לבקש מכם לענות על שאלה.
+כיוון שזו משימה שקשה לבצעה בצורה אוטומטית, הדבר יאפשר לבני־אדם אמיתיים לשלוח את הדפים, אך יעצור את רוב הספאמרים והמתקיפים הרובוטיים האחרים.
+
+אנא צרו קשר עם [[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] לעזרה אם המערכת מונעת מכם באופן בלתי צפוי לבצע עריכות לגיטימיות.
+
+לחצו על הכפתור 'Back' בדפדפן שלכם כדי לחזור לדף העריכה.",
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'questycaptcha-addurl' => 'Twoja změna wobsahuje nowe eksterne wotkazy.
+Za škit přećiwo awtomatizowanemu spamej, wotmołw prošu na prašenje, kotrež so deleka jewi ([[Special:Captcha/help|dalše informacije]]):',
+	'questycaptcha-badlogin' => 'Za škit přećiwo awtomatiskemu kradnjenju hesła, wotmołw prošu na prašenje, kotrež so deleka jewi ([[Special:Captcha/help|dalše informacije]]):',
+	'questycaptcha-createaccount' => 'Za škit přećiwo awtomatizowanemu tworjenju kontow, wotmołw prošu na prašenje, kotrež so deleka jewi ([[Special:Captcha/help|dalš informacije]]):',
+	'questycaptcha-create' => 'Zo by stronu wutworił, wotmołw prošu na prašenje, kotrež so deleka jewi ([[Special:Captcha/help|dalše informacije]]):',
+	'questycaptcha-edit' => 'Zo by tutu stronu změnił, wotmołw prošu na prašenje, kotrež so deleka jewi ([[Special:Captcha/help|dalše informacije]]):',
+	'questycaptcha-sendemail' => 'Za škit přećiwo awtomatiskemu spamowanju, wotmołw prošu na prašenje, kotrež so deleka jewi ([[Special:Captcha/help|dalše informacije]]):',
+	'questycaptchahelp-text' => 'Websydła, kotrež přinoški ze zjawnosće akceptuja, kaž tutón wiki, so často wot spamarjow znjewužiwaja, kotřiž awtomatizowane nastroje wužiwaja, zo bychu swoje wotkazy wjele sydłam přidali. Hačrunjež so tute spamowe wotkazy hodźa wotstronić, su wone njesnadne mjerzanje.
+
+Druhdy, wosebje, hdyž so nowe webwotkazy stronje přidawaja, wiki so ći něčeho praša.
+Dokelž to je nadawk, kotryž hodźi so jenož ćežko awtomatizować, dowoluje to woprawdźitym wosobam swoje přinoški wotpósłać, mjeztym zo so najwjace spamarjow a druhich nadpadowacych botow blokuje. 
+
+Prošu staj so z [[{{MediaWiki:Grouppage-sysop}}|administratorami sydła]] z prostwu wo pomoc do zwiska, jeli to će haći legitimne přinoški pósłać. 
+
+Klikń na tłócatko "Wróćo" w swojim wobhladowaku, zo by so k wobdźěłowanskemu woknu wróćił.',
+);
+
+/** Hungarian (Magyar)
+ * @author Glanthor Reviol
+ */
+$messages['hu'] = array(
+	'questycaptcha-addurl' => 'A szerkesztésed új külső hivatkozásokat tartalmaz.
+Segíts az automatikus spamek elleni védekezésben, kérlek válaszolj az alábbi kérdésre ([[Special:Captcha/help|további információk]]):',
+	'questycaptcha-badlogin' => 'Segíts az automatikus jelszófeltörés kivédésében, kérlek válaszolj az alábbi kérdésre ([[Special:Captcha/help|további információk]]):',
+	'questycaptcha-createaccount' => 'Segíts az automatikus felhasználói fiók készítés kivédésében, kérlek válszolj az alábbi kérdésre ([[Special:Captcha/help|további információk]]):',
+	'questycaptcha-create' => 'Kérlek válaszolj az alábbi kérdésre a lap létrehozásához ([[Special:Captcha/help|további információk]]):',
+	'questycaptcha-edit' => 'A lap szerkesztéséhez kérlek válaszolj az alábbi kérdésre ([[Special:Captcha/help|további információk]]):',
+	'questycaptcha-sendemail' => 'Hogy segíts az automatikus spammelés elleni védekezésben, kérünk válaszolj az alábbi kérdésre ([[Special:Captcha/help|segítség]]):',
+	'questycaptchahelp-text' => 'Az olyan weboldalakat, amelyekre bárki írhat, gyakran támadják meg spammerek olyan eszközök felhasználásával, amelyek képesek automatikusan, emberi felügyelet nélkül elhelyezni hivatkozásokat sok különböző oldalon. 
+
+Néha, különösen ha egy új külső hivatkozást teszel egy szócikkbe, a wiki egy egy kérdés megválaszolására kérhet.
+Mivel ezt nehéz automatizálni, a valódi szerkesztőknek lehetőségük lesz szerkeszteni, miközben kiszűri a legtöbb spammert és más automatizált kártevőket.
+
+Ha ez nem várt módon akadályoz a hasznos közreműködéseidben, segítségért kérlek vedd fel a kapcsolatot [[{{MediaWiki:Grouppage-sysop}}|az oldal adminisztrátoraival]].
+
+Használd a böngésződ „vissza” gombját a szöveg szerkesztéséhez való visszalépéshez.',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'questycaptcha-addurl' => 'Tu modification include nove ligamines externe.
+Pro adjutar nos in le protection contra le spam automatisate, per favor responde al question ci infra ([[Special:Captcha/help|plus info]]):',
+	'questycaptcha-badlogin' => 'Pro adjutar nos in le protection contra le deciframento automatisate de contrasignos, per favor responde al question ci infra ([[Special:Captcha/help|plus info]]):',
+	'questycaptcha-createaccount' => 'Pro adjutar nos in le protection contra le creation automatisate de contos, per favor responde al question ci infra ([[Special:Captcha/help|plus info]]):',
+	'questycaptcha-create' => 'Pro crear le pagina, per favor responde al question ci infra ([[Special:Captcha/help|plus info]]):',
+	'questycaptcha-edit' => 'Pro modificar iste pagina, per favor responde al question ci infra ([[Special:Captcha/help|plus info]]):',
+	'questycaptcha-sendemail' => 'Pro adjutar nos in le protection contra le spam automatic, per favor responde al question hic infra ([[Special:Captcha/help|plus info]]):',
+	'questycaptchahelp-text' => "Le sitos web que accepta contributiones del publico, como iste wiki, es frequentemente abusate per spammatores que usa instrumentos automatic pro publicar lor ligamines in multe sitos.
+Ben que iste ligamines spam pote esser eliminate, illos constitue un considerabile molestia.
+
+Alcun vices, specialmente quando tu adde nove ligamines web a un pagina, le wiki pote demandar te de responder a un question.
+Post que isto es un carga difficile de automatisar, isto permittera al major parte del humanos real de facer lor contributiones, durante que le major parte del spammatores e altere attaccatores robotic es stoppate.
+
+Per favor contacta le [[{{MediaWiki:Grouppage-sysop}}|administratores del sito]] pro assistentia si isto insperatemente te impedi de facer contributiones legitime.
+
+Clicca le button 'retro' in tu navigator pro retornar al editor de paginas.",
+);
+
+/** Indonesian (Bahasa Indonesia)
+ * @author Bennylin
+ * @author Irwangatot
+ * @author IvanLanin
+ * @author Iwan Novirion
+ */
+$messages['id'] = array(
+	'questycaptcha-addurl' => 'Suntingan Anda menambahkan pranala eksternal yang baru.
+Untuk melindungi dari spam otomatis, mohon jawab pertanyaan di bawah ini
+([[Special:Captcha/help|info lebih lanjut]]):',
+	'questycaptcha-badlogin' => 'Untuk melindungi dari pemecah kata sandi otomatis, mohon jawab pertanyaan di bawah ini
+([[Special:Captcha/help|info lebih lanjut]]):',
+	'questycaptcha-createaccount' => 'Untuk melindungi dari pembuatan akun otomatis, mohon jawab pertanyaan di bawah ini
+([[Special:Captcha/help|info lebih lanjut]]):',
+	'questycaptcha-create' => 'Untuk membuat halaman, mohon jawab pertanyaan di bawah ini
+([[Special:Captcha/help|info lebih lanjut]]):',
+	'questycaptcha-edit' => 'Untuk menyunting halaman ini, mohon jawab pertanyaan di bawah ini
+([[Special:Captcha/help|info lebih lanjut]]):',
+	'questycaptcha-sendemail' => 'Sebagai pelindungan terhadap spam otomatis, silahkan jawab pertanyaan di bawah ini ([[Special:Captcha/help|info lengkap]]):',
+	'questycaptchahelp-text' => "Situs-situs web yang menerima tulisan dari publik, seperti wiki ini, kerapkali disalahgunakan oleh pengguna-pengguna yang tidak bertanggungjawab untuk mengirimkan spam dengan menggunakan program-program otomatis guna membahkan prnala mereka pada berbagai situs web.
+Walaupun pranala-pranala spam tersebut dapat dibuang, tetapi tetap saja menimbulkan gangguan yang berarti.
+
+Kadang-kadang, terutama sat menambahkan pranala web baru ke suatu halaman, wiki akan meminta anda menjawab suatu pertanyaan. 
+Karena ini merupakan suatu pekerjaan yang sulit diotomatisasi, pembatasan ini akan dapat dengan mudah dilalui oleh manusia, sekaligus juga dapat menghentikan hampir semua serangan spam dan robot otomatis lainnya.
+
+Silakan hubungi [[{{MediaWiki:Grouppage-sysop}}|pengurus]] untuk meminta bantuan jika hal ini menghambat anda untuk mengirimkan suntingan yang layak.
+
+Tekan tombol 'back' di penjelajah web Anda untuk kembali ke halaman penyuntingan.",
+);
+
+/** Iloko (Ilokano)
+ * @author Lam-ang
+ */
+$messages['ilo'] = array(
+	'questycaptcha-addurl' => 'Ti inurnos mo ket adda nagyan na a baro a panilpo ti ruar.
+Tapno  makasalaknib kadagiti automatiko a spam, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'questycaptcha-badlogin' => 'Tapno  makasalaknib kadagiti automatiko a pinagsulbar ti kontrasenias, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'questycaptcha-createaccount' => 'Tapno  makasalaknib kadagiti automatiko a pinagaramid ti pakabilangan, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'questycaptcha-create' => 'Tapno makaaramid ti panid, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'questycaptcha-edit' => 'Tapno makaurnoy ditoya panid, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'questycaptcha-sendemail' => 'Tapno  makasalaknib kadagiti automatiko a pinagspam, pangaasim a sungbatan ti saludsud a nagparang dita baba. ([[Special:Captcha/help|adu pay a pakaammo]]):',
+	'questycaptchahelp-text' => "Dagiti sapot a pagsaadan nga agaw-awat kadagiti maipablaak iti publiko, kasla daytoy a wiki, ket kanayon nga inabuso dagiti spammers nga agus-usar ti automatiko a ramramit ti pinagipablaak da kadagiti kukua da a panilpo ti adu a pagsasaadan. 
+Maikkat met dagitoy a panilpo, mgen makariri da unay.
+
+No sagpaminsan pay, nangruna no agikabil kadagiti baro a panilpo ti sapot iti panid, ti wiki ket agdamag kenka nga agsungbat ti maysa a saludsod. 
+Yantangay daytoy ket obra a narigat a ma-automatiko, agpalubos kadagiti agpayso a tattao ti agipablaak bayat nga agpasardeng ti kaaduan a spammers ken dagiti robot nga agraraut.
+
+Pangngaasi a kontaken ti [[{{MediaWiki:Grouppage-sysop}}|administrador ti pagsaadan ]] para iti pannulong no daytoy ket saan a napadpadaanan a pawilan na ti agpayso a pinagbaplaak mo.
+
+Peslen ti 'agsubli' a buton dita pagbasabasam (browser) ti agsubli idiay panid ti pinagurnos.",
+);
+
+/** Italian (Italiano)
+ * @author Beta16
+ * @author Darth Kule
+ */
+$messages['it'] = array(
+	'questycaptcha-addurl' => "La modifica richiesta aggiunge dei collegamenti esterni alla pagina; come misura precauzionale contro l'inserimento automatico di spam, si prega di rispondere alla domanda che compare di seguito ([[Special:Captcha/help|come funziona?]]):",
+	'questycaptcha-badlogin' => 'Come misura precauzionale contro i tentativi di forzatura automatica della password, si prega di rispondere alla domanda che compare di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'questycaptcha-createaccount' => 'Come misura precauzionale contro i tentativi di creazione automatica degli account, si prega di rispondere alla domanda che compare di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'questycaptcha-create' => 'Per creare la pagina si prega di rispondere alla domanda che compare di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'questycaptcha-edit' => 'Per modificare questa pagina si prega di rispondere alla domanda che compare di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'questycaptcha-sendemail' => 'Come misura precauzionale nei confronti dei messaggi di spam automatici, si prega di inserire nella casella sottostante le parole che compaiono di seguito ([[Special:Captcha/help|come funziona?]]):',
+	'questycaptchahelp-text' => "Capita spesso che i siti Web che accettano messaggi pubblici, come questo wiki, siano presi di mira da spammer che usano strumenti automatici per inserire collegamenti pubblicitari verso un gran numero di siti. Per quanto i collegamenti indesiderati si possano rimuovere, si tratta comunque di una seccatura non indifferente. 
+
+In alcuni casi, ad esempio quando si tenta di aggiungere nuovi collegamenti Web in una pagina, il software wiki può richiedere di rispondere a una domanda. Poiché si tratta di un'azione difficile da replicare da parte di un computer, questo meccanismo consente a (quasi tutti) gli utenti reali di effettuare i proprio contributi, impedendo l'accesso alla maggior parte degli spammer e degli altri attacchi automatizzati. 
+
+Se queste procedure impediscono contributi che si ritengono legittimi, si prega di contattare gli [[{{MediaWiki:Grouppage-sysop}}|amministratori del sito]] e chiedere loro assistenza. 
+
+Fare clic sul pulsante 'indietro' del browser per tornare alla pagina di modifica.",
+);
+
+/** Japanese (日本語)
+ * @author Aotake
+ * @author Fryed-peach
+ */
+$messages['ja'] = array(
+	'questycaptcha-desc' => 'Confirm Edit 用の質問形式 CAPTCHA 生成器',
+	'questycaptcha-addurl' => 'あなたの編集では新たな外部リンクが追加されています。自動で実行されるスパム行為防止のため、以下に表示される確認用の質問に回答してください ([[Special:Captcha/help|詳細]]):',
+	'questycaptcha-badlogin' => '自動化スクリプトによるパスワードクラック攻撃を防止するため、以下に表示される確認用の質問に回答してください ([[Special:Captcha/help|詳細]]):',
+	'questycaptcha-createaccount' => '自動化されたアカウント作成を防止するため、以下に表示される確認用の質問に回答してください ([[Special:Captcha/help|詳細]]):',
+	'questycaptcha-create' => 'ページを作成するには以下に表示される確認用の質問に回答してください ([[Special:Captcha/help|詳細]]):',
+	'questycaptcha-edit' => 'このページを編集するには以下に表示される確認用の質問に回答してください ([[Special:Captcha/help|詳細]]):',
+	'questycaptcha-sendemail' => 'ロボットによるスパムを防ぐため、以下に表示される確認用の質問に回答してください ([[Special:Captcha/help|詳細]]):',
+	'questycaptchahelp-text' => '一般からの投稿を受け付けるこのウィキのようなウェブサイトは、自動投稿ツールを使って多くのサイトにリンクを張ってまわるスパマーにより荒らされがちです。このようなスパムは除去できるものの、その作業は大変に面倒なものです。
+
+このため、このウィキではときどき、特に新しい外部リンクがページに追加されたときなどに、質問に答えていただくようお願いすることがあります。この作業は自動化が難しいため、スパマーなどのプログラムを用いた攻撃をほぼ阻止しつつ、大半の生身の人間による投稿を可能にします。
+
+正当な投稿をするにあたって本機能が障害となっている場合、[[{{MediaWiki:Grouppage-sysop}}|サイト管理者]]に連絡して協力を求めてください。
+
+ページの編集に戻るには、ブラウザの「戻る」ボタンを押してください。',
+);
+
+/** Korean (한국어)
+ * @author Kwj2772
+ */
+$messages['ko'] = array(
+	'questycaptcha-badlogin' => '자동화된 비밀번호 깨기를 방지하기 위해 아래애 보이는 질문에 대답해주세요 ([[Special:Captcha/help|자세한 정보]]):',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'questycaptcha-addurl' => 'Ding Änderung säz neu Lengks noh ußerhallef vum Wiki.
+Öm uns jäje der automattesch dobeijedonn <i lang="en">SPAM</i> ze hellefe,
+bes esu joot un donn di Frooch be_anntwoode, di heh dronger shteiht.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
+	'questycaptcha-badlogin' => 'Öm uns jäje et automattesche Paßwootknacke ze hellefe,
+bes esu joot un donn di Frooch be_anntwoode, di heh dronge shteiht.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
+	'questycaptcha-createaccount' => 'Öm uns jäje et maßesch automattesch neu Metmaacher Aanlääje ze hellefe,
+bes esu joot un donn di Frooch be_anntwoode, di heh dronger shteiht.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
+	'questycaptcha-create' => 'Öm di Sigg aanzelääje,
+bes esu joot, donn di Frooch be_anntwoode, di heh dronge shteiht.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
+	'questycaptcha-edit' => 'Öm di Sigg ze änderee,
+bes esu joot, donn di Frooch be_anntwoode, di heh dronge shteiht.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
+	'questycaptcha-sendemail' => 'Öm et Wiki jääje automattesch enjedraare SPAM ze schötze,
+bes esu joot, donn di Frooch be_anntwoode, di heh dronger shteiht.
+([[Special:Captcha/help|Mieh Enfommazjuhne]])',
+	'questycaptchahelp-text' => 'Websigge, di Beijdrääsch vun de Öffentleschkeit aannämme, wi dat Wiki heh,
+wääde öff vun <i lang="en">SPAM</i>mer heimjesöhk. Di bruche Projramme
+för ier Lengks udder annder Jedrieße automattesch en dousende Wikis erin
+ze bränge. Der <i lang="en">SPAM</i> kam_mer wider fott maache, ävver dä
+blief e Ärjeneß.
+
+Manschmohl, besönders, wann De neu Lengks en en Sigg donn wells, künnt et
+Wiki Desch bedde, en Frooch ze be_antwoode. Nohdämm dat schwiiresch mem
+automattesche Projramm henzekrijje es, löht et de Minsche ier Beidrääsch
+maache, deiht ävver de miehßte <i lang="en">SPAM</i>mer un ander Robots affhallde.
+
+Donn Desh aan de [[{{MediaWiki:Grouppage-sysop}}|Köbeße vum Wiki]] wende,
+wann et Der trozdämm en de Fööß kütt, un De Dinge aanshtändejje Beijdraach
+nit en et Wiki kriß!
+
+Dä „Retuur“-Lengk udder -Knopp vun Dingem Brauser brängk Desch wider op
+di Sigg zom Ändere, woh De jraad wohß.',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'questycaptcha-addurl' => "An Ärer Ännerung sinn nei extern Linken.
+Fir d'Protectioun géint automatesche Spam ze vergréisseren, beäntwert w.e.g. déi Fro hei ënnendrënner ([[Special:Captcha/help|méi Informatiounen]]):",
+	'questycaptcha-badlogin' => "Fir d'Protectioun géint d'automatiséiert Knacke vu Passwierder ze vergréisseren, beäntwert w.e.g. déi Fro hei ënnedrënner ([[Special:Captcha/help|méi Informatiounen]]):",
+	'questycaptcha-createaccount' => "Fir d'Protectioun géint d'automatiséiert Uleeë vu Benotzerkonten ze vergréisseren, beäntwert w.e.g. déi Fro hei ënnendrënner ([[Special:Captcha/help|méi Informatiounen]]):",
+	'questycaptcha-create' => "Fir d'Säit unzeleeën, beäntwert w.e.g. déi Fro hei ënnedrënner ([[Special:Captcha/help|méi Informatiounen]]):",
+	'questycaptcha-edit' => "Fir dës Säit z'änneren, beäntwert w.e.g. déi Fro hei ënnedrënner ([[Special:Captcha/help|méi Informatiounen]]):",
+	'questycaptcha-sendemail' => 'Fir ze hëllefe eis géint automatiséierte Spam ze schütze, beäntwert w.e.g. déi Fro hei ënnendrënner ([[Special:Captcha/help|méi Informatiounen]]):',
+	'questycaptchahelp-text' => "Websäiten, déi et jidwerengem erlaben Ännerunge virzehuelen, sou wéi dës Wiki, ginn dacks vu sougenannte Spammer mëssbraucht, déi automatiséiert hir Linken op vill Internetsäite setzen.
+Esou Spam-Linke kënne wuel geläscht ginn, mee si sinn trotzdem eng grouss Plo.
+
+Heiandsdo, besonnesch wann nei Internet-Linken op eng Säit derbäigesat ginn, freet dës Wiki Iech eng Fro ze beäntwerten.
+Well dëst eng Aufgab ass déi schwéier z'automatiséieren ass, erlaabt dëst datt Mënschen hir Ännerunge kënnen agi wärend déi meescht Spammer an aner Roboter-Attacke kënnen ofgewiert ginn.
+
+Kontaktéiert w.e.g. d'[[{{MediaWiki:Grouppage-sysop}}|Administrateure vun dësem Site]] fir Hëllef wann dëst Iech onerwaarter Wäis vu legitimen Editen ofhält.
+
+Dréckt op den 'Zréck' Knäppche vun ärem Browser fir an d'Beaarbechtungsfënster zréckzekommen.",
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'questycaptcha-desc' => 'Создавач CAPTCHA со текнувало за потврда на уредувања',
+	'questycaptcha-addurl' => 'Вашето уредување содржи нови надворешни врски.
+За да ни помогнете да се заштитиме од автоматизиран спам, одговорете на прашањето подолу ([[Special:Captcha/help|повеќе инфо]]):',
+	'questycaptcha-badlogin' => 'За да ни помогнете да се заштитиме од автоматизирано пробивање на лозинки, одговорете на прашањето подолу ([[Special:Captcha/help|повеќе инфо]]):',
+	'questycaptcha-createaccount' => 'За да ни помогнете да се заштитиме од автоматизирано создавање на сметки, одговорете на прашањето подолу ([[Special:Captcha/help|повеќе инфо]]):',
+	'questycaptcha-create' => 'За да ја создадете страницата, одговорете на прашањето подолу ([[Special:Captcha/help|повеќе инфо]]):',
+	'questycaptcha-edit' => 'За да ја уредите страницава, одговорете на прашањето подолу ([[Special:Captcha/help|повеќе инфо]]):',
+	'questycaptcha-sendemail' => 'За да се заштитиме од автоматизирано спамирање, одговорете на долупоставеното прашање ([[Special:Captcha/help|повеќе информации]]):',
+	'questycaptchahelp-text' => 'Мрежните места  кои прифаќаат учество на јавноста, како ова вики, честопати страдаат од спамери кои користат автоматизирани алатки за да ги додаваат нивните врски на голем број мрежни места.
+Иако врските на спамерот може да се отстранат, тие значително ја пореметуваат нашата работа.
+
+Понекогаш, особено кога додава нови врски на страница, викито може да ви побара да одговорите на прашање.
+Бидејќи ова е задача која е тешко да се автоматизира, им овозможува вистинските корисници да придонесуваат, а им попречува на спамерите и другите роботски напаѓачи.
+
+Контактирајте ги [[{{MediaWiki:Grouppage-sysop}}|администраторите на страната]] за помош доколку ова неочекувано ве спречува во правењето на искрени придонеси.
+
+Кликнете на копчето „назад“ во вашиот прелисувач за да се вратите на уредувањето на страницата.',
+);
+
+/** Malayalam (മലയാളം)
+ * @author Junaidpv
+ */
+$messages['ml'] = array(
+	'questycaptcha-addurl' => 'താങ്കളുടെ തിരുത്തലുകളിൽ പുറം കണ്ണികൾ ഉൾപ്പെട്ടിരിക്കുന്നു.
+യാന്ത്രിക സ്പാമിനെതിരെയുള്ള സം‌രക്ഷണത്തിന്റെ ഭാഗമായി, താഴെ കാണുന്ന വാക്കുകൾ പെട്ടിയിൽ ടൈപ്പു ചെയ്യുക  ([[Special:Captcha/help|കൂടുതൽ വിവരങ്ങൾ]]):',
+);
+
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ */
+$messages['ms'] = array(
+	'questycaptcha-addurl' => 'Suntingan anda mengandungi pautan luar baru.
+Untuk membanteras kegiatan spam automatik, anda diminta menjawab soalan yang berikut ([[Special:Captcha/help|maklumat lanjut]]):',
+	'questycaptcha-badlogin' => 'Untuk membanteras kegiatan meneka kata laluan secara automatik, anda diminta menjawab soalan berikut ([[Special:Captcha/help|maklumat lanjut]]):',
+	'questycaptcha-createaccount' => 'Untuk membanteras kegiatan pembukaan akaun secara automatik, anda diminta menjawab soalan berikut ([[Special:Captcha/help|maklumat lanjut]]):',
+	'questycaptcha-create' => 'Untuk mencipta laman ini, anda diminta menjawab soalan berikut ([[Special:Captcha/help|maklumat lanjut]]):',
+	'questycaptcha-edit' => 'Untuk menyunting laman ini, anda diminta menjawab soalan berikut ([[Special:Captcha/help|maklumat lanjut]]):',
+	'questycaptcha-sendemail' => 'Untuk membanteras kegiatan spam secara automatik, anda diminta menjawab soalan berikut ([[Special:Captcha/help|maklumat lanjut]]):',
+	'questycaptchahelp-text' => "Tapak-tapak web yang menerima sumbangan awam, misalnya wiki ini, sering disalah guna oleh pembuat spam yang menggunakan peralatan berautomasi untuk membubuh pautan mereka di banyak tapak.
+Walaupun pautan-pautan spam ini boleh dipadamkan, namun ia amat menyusahkan.
+
+Adakalanya, terutamanya apabila membubuh pautan web baru pada sesuatu laman, wiki ini mungkin akan menanya anda satu soalan.
+Memandangkan ini ialah tugas yang sukar diautomasi, ia akan membolehkan kebanyakan manusia sebenar untuk membuat sumbangan, sambil menghalang spam dan serangan robotik yang seumpamanya.
+
+Sila hubungi [[{{MediaWiki:Grouppage-sysop}}|pentadbir laman]] untuk mendapatkan bantuan jika ia menghalang anda daripada membuat sumbangan yang munasabah tanpa dijangka.
+
+Klik butang '←' untuk kembali ke editor laman.",
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Nghtwlkr
+ * @author Simny
+ */
+$messages['nb'] = array(
+	'questycaptcha-addurl' => 'Din endring inneholder nye eksterne lenker.
+For å beskytte mot autmatisert spam, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):',
+	'questycaptcha-badlogin' => 'For å hindre passordtyveri, vær vennlig og svar på spørsmålet under ([[Special:Captcha/help|mer informasjon]]):',
+	'questycaptcha-createaccount' => 'For å beskytte mot autmatisert spam, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):',
+	'questycaptcha-create' => 'For å opprette siden, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):',
+	'questycaptcha-edit' => 'For å endre denne siden, vennligst svar på spørsmålet som vises under ([[Special:Captcha/help|mer informasjon]]):',
+	'questycaptcha-sendemail' => 'For å beskytte mot automatisert søppelpost, svar på spørsmålet som vises nedenfor ([[Special:Captcha/help|mer info]]):',
+	'questycaptchahelp-text' => "Nettsteder som tar imot bidrag fra allmennheten, som denne wikien, er ofte utsatt for angrep fra spammere som bruker automatiserte verktøy for å legge til lenker til mange sider.
+Selv om disse spam-lenkene kan fjernes er de en stor plage.
+
+Iblant, spesielt ved tillegg av nye lenker til en side, kan wikien be deg svare på et spørsmål.
+Siden dette er en oppgave som er vanskelig å automatisere, vil den tillate de fleste virkelige personer å bidra mens den stopper de fleste spammere og andre robotangrep.
+
+Vennligst kontakt [[{{MediaWiki:Grouppage-sysop}}|sideadministratorer]] for hjelp dersom dette er uventet hindrer deg fra å bidra med legitime bidrag.
+
+Klikk på 'tilbake'-knappen i nettleseren din for å gå tilbake til sideeditoren.",
+);
+
+/** Dutch (Nederlands)
+ * @author Siebrand
+ */
+$messages['nl'] = array(
+	'questycaptcha-addurl' => 'Uw bewerking bevat nieuwe externe verwijzingen.
+Beantwoord de onderstaande vraag als bescherming tegen automatische spam ([[Special:Captcha/help|meer informatie]]):',
+	'questycaptcha-badlogin' => 'Beantwoord de onderstaande vraag als bescherming tegen geautomatiseerde wachtwoordaanvallen ([[Special:Captcha/help|meer informatie]]):',
+	'questycaptcha-createaccount' => 'Beantwoord de onderstaande vraag als bescherming tegen het geautomatiseerd aanmaken van gebruikers ([[Special:Captcha/help|meer informatie]]):',
+	'questycaptcha-create' => 'Beantwoord de onderstaande vraag om de pagina aan te maken ([[Special:Captcha/help|meer informatie]]):',
+	'questycaptcha-edit' => 'Beantwoord de onderstaande vraag om deze pagina te bewerken ([[Special:Captcha/help|meer informatie]]):',
+	'questycaptcha-sendemail' => 'Beantwoord de onderstaande vraag als bescherming tegen geautomatiseerde spam ([[Special:Captcha/help|meer informatie]]):',
+	'questycaptchahelp-text' => "Websites die vrij te bewerken zijn, zoals deze wiki, worden vaak misbruikt door spammers die er met hun programma's automatisch verwijzigen op zetten naar vele websites.
+Hoewel deze externe verwijzingen weer verwijderd kunnen worden, leveren ze wel veel hinder en administratief werk op.
+
+Soms, en in het bijzonder bij het toevoegen van externe verwijzingen op pagina's, vraag de wiki u een vraag te beantwoorden.
+Omdat dit proces lastig te automatiseren is, zijn vrijwel alleen mensen in staat dit proces succesvol te doorlopen en worden hiermee spammers en andere geautomatiseerde aanvallen geweerd.
+
+Vraag assistentie van de [[{{MediaWiki:Grouppage-sysop}}|sitebeheerders]] als dit proces u verhindert een nuttige bijdrage te leveren.
+
+Klik op de knop 'terug' in uw browser om terug te gaan naar het tekstbewerkingsscherm.",
+);
+
+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
+ * @author Gunnernett
+ */
+$messages['nn'] = array(
+	'questycaptcha-addurl' => 'Endringa di inneheld nye lenkjer ut. 
+Som ei hjelp til å unngå automatisert spam, ver venleg og skiv inn spørsmålet som er synt nedanfor ([[Special:Captcha/help|meir informasjon]]):',
+	'questycaptcha-createaccount' => 'For å hjelpa til med å hindra automatisk kontooppretting, ver venleg og svar på spørsmålet nedanfor ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-create' => 'For å oppretta sida, ver venleg og svar på spørsmålet nedanfor ([[Special:Captcha/help|meir informasjon]]):',
+	'questycaptcha-edit' => 'For å endra sida, ver venleg og svar på spørsmålet som er synt nedanfor ([[Special:Captcha/help|meir informasjon]]):',
+);
+
+/** Occitan (Occitan)
+ * @author Cedric31
+ */
+$messages['oc'] = array(
+	'questycaptcha-addurl' => 'Vòstra modificacion inclutz de ligams extèrnes novèls.
+Per nos ajudar dins la proteccion contra lo spam automatizat, respondètz a la question çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :',
+	'questycaptcha-badlogin' => "Per nos ajudar a prevenir la copadura dels senhals per d'automats, respondètz a la question çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :",
+	'questycaptcha-createaccount' => "Per nos ajudar a luchar contra las creacions automaticas de comptes, respondètz a la question qu'apareis çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :",
+	'questycaptcha-create' => 'Per crear la pagina, respondètz a la question çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :',
+	'questycaptcha-edit' => 'Per modificar aquesta pagina, respondètz a la question çaijós ([[Special:Captcha/help|mai d’entresenhas]]) :',
+	'questycaptcha-sendemail' => "Per tal de nos ajudar a prevenir lo spam automatic, entratz los mots qu'apareisson dins la bóstia çaijós ([[Special:Captcha/help|mai d’informacions]]) :",
+	'questycaptchahelp-text' => "Los sites web qu'acceptan de contribucions del public, coma aqueste wiki, son sovent victimas de polluposteires qu'utilizan d'espleches automatizats per plaçar de ligams nombroses cap a lors sites.
+Quitament s'aquesta pollucion pòt èsser escafada, es irritanta.
+
+De còps, particularament al moment de l’apondon de ligams extèrnes novèls dins una pagina, lo wiki vos pòt demandar de respondre a una question.
+Aqueste prètzfach es pas de bon acomplir d'un biais automatizat, aquò permet a la màger part dels umans de realizar lors contribucions tot en empachant la màger part dels polluposteires e autres atacants robotizats.
+
+Contactatz [[{{MediaWiki:Grouppage-sysop}}|los administrators del site]] s'aquò vos empacha de faiçon imprevista de far de contribucions legitimas.
+
+Clicatz sul boton « Precedent » de vòstre navigador per tornar a la pagina de modificacion.",
+);
+
+/** Polish (Polski)
+ * @author Sp5uhe
+ */
+$messages['pl'] = array(
+	'questycaptcha-addurl' => 'Edycja zawiera nowe linki zewnętrzne. 
+Ochrona przed zautomatyzowanym spamem wymaga odpowiedzi na poniższe pytanie ([[Special:Captcha/help|więcej informacji]])',
+	'questycaptcha-badlogin' => 'Ochrona przed zautomatyzowanym łamaniem haseł wymaga odpowiedzi na poniższe pytanie ([[Special:Captcha/help|więcej informacji]])',
+	'questycaptcha-createaccount' => 'Ochrona przed zautomatyzowanym tworzeniem kont wymaga odpowiedzi na poniższe pytanie ([[Special:Captcha/help|więcej informacji]])',
+	'questycaptcha-create' => 'Utworzenie strony jest możliwe po udzieleniu odpowiedzi na poniższe pytanie ([[Special:Captcha/help|więcej informacji]])',
+	'questycaptcha-edit' => 'Edycja strony jest możliwa po udzieleniu odpowiedzi na poniższe pytanie ([[Special:Captcha/help|więcej informacji]])',
+	'questycaptcha-sendemail' => 'Z uwagi na ochronę przed automatycznym spamem, należy odpowiedzieć na znajdujące się poniżej pytanie ([[Special:Captcha/help|pomoc]])',
+	'questycaptchahelp-text' => "Witryny, które publicznie udostępniają możliwość wprowadzania zmian, tak jak ta wiki, często są wykorzystywane przez spamerów, którzy korzystają ze zautomatyzowanych narzędzi, aby dodawać swoje linki do wielu stron.
+Pomimo tego, że takie linki mogą zostać usunięte, jest to jednak uciążliwe.
+
+Czasami, zwłaszcza jeśli dodano nowe linki zewnętrzne, wiki może poprosić o udzielenie odpowiedzi na pytanie.
+Ponieważ odpowiadanie na pytania jest czynnością trudną do zautomatyzowania, pozwala większości ludziom na wykonywanie edycji, zarazem uniemożliwiając ją spamerom i innym atakującym automatom.
+
+Skontaktuj się z [[{{MediaWiki:Grouppage-sysop}}|administratorami]], jeśli potrzebujesz pomocy ponieważ mechanizm ten uniemożliwia Ci dokonywania uzasadnionych edycji.
+
+Kliknij przycisk 'wstecz' w przeglądarce, aby wrócić do strony edycji.",
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'questycaptcha-addurl' => 'Toa modìfica a conten na neuva anliura esterna.
+Për giuté a protegi contra spam automàtich, për piasì arspond a la custion che a-i é sì sota ([[Special:Captcha/help|për savèjne ëd pì]]):',
+	'questycaptcha-badlogin' => 'Për giuté a protegi contra ël crack ëd ciav automatisà, për piasì arspond a la custion che a ven fòra sota ([[Special:Captcha/help|për savèjne ëd pì]]):',
+	'questycaptcha-createaccount' => 'Për giuté a protegi contra la creassion automàtica ëd cont, për piasì arspond a la custion che a ven fòra sota ([[Special:Captcha/help|për savejne ëd pì]]):',
+	'questycaptcha-create' => 'Për creé la pàgina, për piasì arspond a la custion che a ven fòra sota: ([[Special:Captcha/help|për savejne ëd pì]]):',
+	'questycaptcha-edit' => 'Për modifiché sta pàgina-sì, për piasì arspond a la custion che a ven fòra sota ([[Special:Captcha/help|për savejne ëd pì]]):',
+	'questycaptcha-sendemail' => "Për giuté a protegi contra la rumenta automàtica, për piasì ch'a risponda a la chestion ch'as vëdd sì-sota ([[Special:Captcha/help|për savèjne ëd pi]]):",
+	'questycaptchahelp-text' => "Soèns a-i riva che ij sit dla Ragnà che la gent a peul dovré për ëscrive chèich-còs, coma sta wiki-sì, a resto ambërlifà ëd reclam da màchine che a carìo soa ròba dadsà e dadlà n'automàtich. 
+Për tant che sta reclam un a peula peuj gavela, a resta sempe un gran fastudi. 
+
+Dle vire, dzortut quand un a caria dj'anliure esterne neuve ansime a na pàgina, la wiki a peul ciamete d'arsponde a na custion. 
+Da già ch'a l'é grama scrive un programa ch'a lo fasa, a ven che la pì gran part dla gent a-i la fa a scrive, ma la ói part dle màchine a-i la fa pa. 
+
+Për piasì contata j'[[{{MediaWiki:Grouppage-sysop}}|aministrador dël sit]] për assistensa se sòn-sì a l'ha nen lassate fé na contribussion legìtima.
+
+Ch'a-i bata ansima al boton 'andré' ant sò navigator për torné andré a l'editor dla pàgina.",
+);
+
+/** Portuguese (Português)
+ * @author Crazymadlover
+ * @author Giro720
+ * @author Hamilton Abreu
+ */
+$messages['pt'] = array(
+	'questycaptcha-addurl' => "A sua edição introduziu links externos novos.
+Para ajudar a prevenir o ''spam'' automatizado, por favor, responda à questão apresentada abaixo ([[Special:Captcha/help|mais informações]]):",
+	'questycaptcha-badlogin' => 'Para ajudar a prevenir mecanismos automatizados de descoberta de palavras-chave, por favor, responda à questão apresentada abaixo ([[Special:Captcha/help|mais informações]]):',
+	'questycaptcha-createaccount' => 'Para ajudar a prevenir a criação de contas automatizada, por favor, responda à questão apresentada abaixo ([[Special:Captcha/help|mais informações]]):',
+	'questycaptcha-create' => 'Para criar a página, por favor, responda à questão apresentada abaixo ([[Special:Captcha/help|mais informações]]):',
+	'questycaptcha-edit' => 'Para editar esta página, por favor, responda à questão apresentada abaixo ([[Special:Captcha/help|mais informações]]):',
+	'questycaptcha-sendemail' => "Para ajudar a prevenir o ''spam'' automatizado, por favor, responda à seguinte pergunta ([[Special:Captcha/help|mais informações]]):",
+	'questycaptchahelp-text' => "Sites na internet abertos a edição pública, como é o caso desta wiki, são frequentemente abusados por ''spammers'' que utilizam ferramentas automatizadas para inserção em massa de links em muitos sites.
+Embora esses links possam ser removidos, representam um incómodo significativo.
+
+Por vezes, especialmente quando introduzir links externos novos numa página, a wiki pedirá que responda a uma pergunta.
+Porque esta é uma tarefa difícil de automatizar, permite que a maioria das pessoas façam as suas edições, ao mesmo tempo que inibe edições feitas por ''spammers'' e outros mecanismos automatizados.
+
+Por favor, contacte os [[{{MediaWiki:Grouppage-sysop}}|administradores]] para assistência, caso esta funcionalidade esteja a impedi-lo de fazer edições legítimas.
+
+Clique o botão 'voltar' do seu browser para voltar à página de edição.",
+);
+
+/** Brazilian Portuguese (Português do Brasil)
+ * @author Eduardo.mps
+ * @author Giro720
+ */
+$messages['pt-br'] = array(
+	'questycaptcha-addurl' => 'Sua edição inclui novas ligações externas.
+Para proteção contra spam automático, por favor responda a questão que aparece abaixo ([[Special:Captcha/help|mais informações]]):',
+	'questycaptcha-badlogin' => 'Para proteger contra quebra automatizada de palavra-chave, por favor responda a questão que aparece abaixo ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-createaccount' => 'Para proteger contra criação automática de contas, por favor responda as questões que aparecem abaixo ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-create' => 'Para criar a página, por favor responda a questão que aparece abaixo ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-edit' => 'Para editar esta página, por favor responda a questão que aparece abaixo ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-sendemail' => "Para ajudar a prevenir o ''spam'' automatizado, por favor, responda à seguinte pergunta ([[Special:Captcha/help|mais informações]]):",
+	'questycaptchahelp-text' => "Sítios que aceitam contribuições públicas, como este wiki, são vulneráveis a spammers que utilizam ferramentas automatizadas para inserir as suas ligações em diversos locais. 
+Apesar de ser possível emover tais ligações, elas são um incômodo significativo.
+
+Algumas vezes, especialmente ao adicionar novas ligações externas a uma página, a wiki pode pedir a você que responda a uma pergunta. 
+Uma vez que essa é uma tarefa um difícil de ser automatizada, ela possibilita que a maioria dos humanos faça as suas contribuições ao mesmo tempo que inibe as que forem feitas por spammers e mecanismos automatizados.
+
+Por favor entre em contato com os [[{{MediaWiki:Grouppage-sysop}}|administradores do sítio]] para assistí-lo caso isto esteja impedindo-o de realizar contribuições legítimas.
+
+Pressione o botão 'voltar' de seu navegador para retornar à página de edição.\"",
+);
+
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'questycaptcha-addurl' => "'U cangiamende tue inglude de le collegaminde esterne.
+Pe aiutà a proteggere condre a 'u spam automateche, pe piacere respunne a 'a domande ca combare sotte ([[Special:Captcha/help|cchiù 'mbormaziune]]):",
+	'questycaptcha-badlogin' => "Pe aiutà a proteggere condre a futteminde automatece de password, pe piacere respunne a 'a domande ca combare aqquà sotte ([[Special:Captcha/help|more info]]):",
+	'questycaptcha-createaccount' => "Pe aiutà a proteggere condre a ccreazione automateche de cunde utinde, pe piacere respunne a 'a domande ca combare aqquà sotte ([[Special:Captcha/help|more info]]):",
+	'questycaptcha-create' => "Pe ccrejà sta pàgene, pe piacere respunne a 'a domande ca combare aqquà sotte ([[Special:Captcha/help|more info]]):",
+	'questycaptcha-edit' => "Pe cangià sta pàgene, pe piacere respunne a 'a domande ca combare aqquà sotte ([[Special:Captcha/help|more info]]):",
+	'questycaptcha-sendemail' => "Pe aiutà a proteggere condre a spam automatece, pe piacere respunne a 'a domande ca combare aqquà sotte ([[Special:Captcha/help|cchiù 'mbormaziune]]):",
+	'questycaptchahelp-text' => "Le site web ca accettane condrebbute da 'u pubbleche, cumme sta Uicchi, sonde spesse abusate da le ''spammer'' ca ausane struminde automatece e aggiungene le lore collegaminde a 'nu sacche de site.<br />
+Pure ca chiste collegaminde de spam ponne essere luate, lore sò sembre 'nu scassamende de palle.<br />
+<br />
+Certe vote, specialmende quanne aggiunge 'nu nuève collegamende web a 'na pàgene, Uicchi te pò chiedere de responnere a 'na domande.<br />
+Accussì addeviene 'nu combete cchiù defficile da automatizzà, accussì se permette a le cristiane de fà cangiaminde reale e se blocchene de cchiù le ''spammer'' e otre attacche de robot.<br />
+<br />
+Pe piacere condatte le [[{{MediaWiki:Grouppage-sysop}}|amministrature d'u site]] pe assistenze ce stu fatte non ge funzione accume se deve e no te face fà le cangiaminde legittime.<br />
+<br />
+Cazze 'u buttone 'rrete' jndr'à 'u browser tue pe turnà 'a pàgene d'u cangiamende.",
+);
+
+/** Russian (Русский)
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'questycaptcha-addurl' => 'Ваша правка содержит новые внешние ссылки.
+В целях защиты от автоматического спама, пожалуйста, ответьте на приведённый ниже вопрос ([[Special:Captcha/help|подробнее]]):',
+	'questycaptcha-badlogin' => 'В целях защиты от автоматического подбора пароля, пожалуйста, ответьте на приведённый ниже вопрос  ([[Special:Captcha/help|подробнее]]):',
+	'questycaptcha-createaccount' => 'В целях защиты от автоматического создания учётных записей, пожалуйста, ответьте на приведённый ниже вопрос  ([[Special:Captcha/help|подробнее]]):',
+	'questycaptcha-create' => 'Для создания страницы, пожалуйста, ответьте на приведённый ниже вопрос  ([[Special:Captcha/help|подробнее]]):',
+	'questycaptcha-edit' => 'Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос  ([[Special:Captcha/help|подробнее]]):',
+	'questycaptcha-sendemail' => 'В целях защиты от автоматического спама, пожалуйста, ответьте на приведённый ниже вопрос ([[Special:Captcha/help|подробнее]]):',
+	'questycaptchahelp-text' => 'Веб-сайты позволяющие изменять своё содержимое, как эта вики, часто становятся целью спамеров, использующих автоматические инструменты для добавления ссылок на другие сайты.
+Несмотря на то, что такие ссылки могут быть удалены, они являются заметной помехой.
+
+Иногда, в частности при добавлении на страницу новых веб-ссылок, вики может попросить вас ответить на вопрос.
+Так как эта задача, которую сложно автоматизировать, то это позволит большинству людей сделать данную правку, и в тоже время остановит большинство спамеров и других роботизированных недоброжелателей.
+
+Пожалуйста, обратитесь к [[{{MediaWiki:Grouppage-sysop}}|администраторам сайта]] за помощь, если данная система не позволяет вам вносить допустимые изменения.
+
+Нажмите в вашем браузере кнопку «назад», чтобы вернуться к странице редактирования.',
+);
+
+/** Slovak (Slovenčina)
+ * @author Helix84
+ */
+$messages['sk'] = array(
+	'questycaptcha-addurl' => 'Vaša úprava obsahuje nové externé odkazy.
+Ako opatrenie proti automatizovanému spamu musíte zodpovedať dolu uvedenú otázku
+([[Special:Captcha/help|ďalšie informácie]]):',
+	'questycaptcha-badlogin' => 'Ako opatrenie proti automatizovanému lámaniu hesiel musíte zodpovedať dolu uvedenú otázku
+([[Special:Captcha/help|ďalšie informácie]]):',
+	'questycaptcha-createaccount' => 'Ako opatrenie proti automatizovanému vytváraniu účtov musíte zodpovedať dolu uvedenú otázku
+([[Special:Captcha/help|ďalšie informácie]]):',
+	'questycaptcha-create' => 'Ak chcete vytvoriť stránku, musíte zodpovedať dolu uvedenú otázku
+([[Special:Captcha/help|ďalšie informácie]]):',
+	'questycaptcha-edit' => 'Ak chcete upraviť túto stránku, musíte zodpovedať dolu uvedenú otázku
+([[Special:Captcha/help|ďalšie informácie]]):',
+	'questycaptchahelp-text' => 'Webstránky, ktoré prijímajú príspevky od verejnosti ako táto wiki, sú často cieľom zneužitia spammermi, ktorí používajú automatizované nástroje na pridávanie odkazov na svoje stránku na mnohé lokality.
+Hoci je možné odkazy na spam odstrániť, je to významná nepríjemnosť.
+
+Niekedy, obzvlášť pri pridávaní nových webových odkazov na stránku, vás wiki môže požiadať o zodpovedanie otázky.
+Pretože takúto úlohu je ťažké zautomatizovať, umožní väčšine skutočných ľudí prispievať a zastaví vačšinu spammerov a robotických útočníkov.
+
+Kontaktujte prosím [[{{MediaWiki:Grouppage-sysop}}|správcov lokality]] ak potrebujete pomoc v prípade, že vám táto funkcia neočakávaným spôsobom bráni v právoplatných príspevkoch.
+
+Späť na úpravu stránky sa vrátite kliknutím na tlačidlo „Späť“ vo vašom prehliadači.',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Rancher
+ */
+$messages['sr-ec'] = array(
+	'questycaptcha-desc' => 'Стварач сликовног кода за потврду уређивања',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬) */
+$messages['sr-el'] = array(
+	'questycaptcha-desc' => 'Stvarač slikovnog koda za potvrdu uređivanja',
+);
+
+/** Swedish (Svenska)
+ * @author Boivie
+ */
+$messages['sv'] = array(
+	'questycaptcha-addurl' => 'Din redigering inkluderar nya externa länkar.
+För att hjälpa till i skyddet mot automatisk spam, vänligen svara på frågan som finns nedan ([[Special:Captcha/help|mer information]]):',
+	'questycaptcha-badlogin' => 'För att hjälpa till i skyddet mot automatisk lösenordsknäckning, vänligen svara på frågan som finns nedan ([[Special:Captcha/help|mer information]]):',
+	'questycaptcha-createaccount' => 'För att hjälpa till i skyddet mot automatiskt kontoskapande, vänligen svara på frågan som finns nedan ([[Special:Captcha/help|mer information]]):',
+	'questycaptcha-create' => 'För att skapa sidan, vänligen svara på frågan som finns nedan ([[Special:Captcha/help|mer information]]):',
+	'questycaptcha-edit' => 'För att redigera denna sida, vänligen svara på frågan som finns nedan ([[Special:Captcha/help|mer information]]):',
+	'questycaptcha-sendemail' => 'För att skydda mot automatisk spamning, vänligen svara på frågan som visas nedan ([[Special:Captcha/help|mer information]]):',
+	'questycaptchahelp-text' => "Webbplatser som accepterar bidrag från allmänheten, som denna wiki, blir ofta utnyttjade av spammare som använder automatiska verktyg för att lägga till sina linkar till många sajter.
+Även om dessa spam-länkar kan tas bort är de väldigt störande.
+
+Ibland, särskilt vid tillägg av nya webblänkar till en sida, kan wikin be dig svara på en fråga.
+Eftersom denna uppgift är svår att automatisera, låter den de flesta riktiga människor göra sina bidrag medan den stoppar de flesta spammare och andra robotattackerare.
+
+Vänligen kontakta [[{{MediaWiki:Grouppage-sysop}}|sajtens administratörer]] för hjälp ifall detta oväntat förhindrar dig från att göra tillåtna bidrag.
+
+Klicka 'tillbaka'-knappen i din webbläsare för att återvända till sidredigeraren.",
+);
+
+/** Telugu (తెలుగు)
+ * @author Kiranmayee
+ * @author Veeven
+ */
+$messages['te'] = array(
+	'questycaptcha-addurl' => 'మీరు చేసిన మార్పులో కొత్త బయటి లింకులు ఉన్నాయి.
+ఆటోమేటెడ్ స్పాము నుండి రక్షణకై, క్రింద కనిపించే ప్రశ్నకు సమాధానమివ్వండి ([[Special:Captcha/help|మరింత సమాచారం]]):',
+	'questycaptcha-edit' => 'ఈ పేజీని సరిదిద్దడానికి, క్రింద కనిపించే ప్రశ్నకి జవాబివ్వండి ([[Special:Captcha/help|మరింత సమాచారం]]):',
+);
+
+/** Thai (ไทย)
+ * @author Harley Hartwell
+ */
+$messages['th'] = array(
+	'questycaptchahelp-text' => "เว็บไซต์ที่บุคคลภายนอกเข้ามาช่วยเขียนได้ เช่น วิกินี้ มักถูกสแปมโดยผู้ใช้ที่ใช้บอตหรือโปรแกรมอัตโนมัติเพื่อเพิ่มลิงก์ไปยังเว็บไซต์หลาย ๆ เว็บไซต์ แม้เราจะสามารถนำลิงก์ที่สแปมออกได้ก็ตาม แต่ก็ย่ิอมก่อให้เกิดความรำคาญต่อผู้ใช้ได้เช่นกัน
+
+เนื่องจากการใส่ลิงก์เป็นเรื่องยากในการดูแลโดยอัตโนมัติ ในบางครั้ง โดยเฉพาะเมื่อคุณใส่ลิงก์เว็บภายนอก ระบบวิกิอาจขอให้คุณตอบคำถาม เพื่อป้องกันนักสแปมและโรบอตโจมตีอื่น ๆ ทำการแก้ไข แต่จะอนุญาตให้ผู้ที่ใกล้เคียงมนุษย์มากทีุ่สุดแก้ไขได้
+
+กรุณาติดต่อ [[{{MediaWiki:Grouppage-sysop}}|ผู้ดูแลระบบ]] หากกระบวนการนี้ไม่สามารถทำให้คุณแก้ไขข้อมูลให้ถูกต้องได้
+
+กดปุ่ม 'Back' บนเบราเซอร์ของคุณเพื่อกลับไปยังหน้าแก้ไข",
+);
+
+/** Tagalog (Tagalog)
+ * @author AnakngAraw
+ */
+$messages['tl'] = array(
+	'questycaptcha-addurl' => 'Kasali sa pagbago mo ang bagong panglabas na mga kawing.
+Upang makatulong sa pagsanggalang laban sa kusang panglulusob, pakisagot ang tanong na nakalitaw sa ibaba ([[Special:Captcha/help|more info]]):',
+	'questycaptcha-badlogin' => 'Upang makatulong sa pagsasanggalang laban sa mga kusang paglutas ng hudyat, pakisagot lamang ang tanong na nakalitaw sa ibaba ([[Special:Captcha/help|marami pang kabatiran]]):',
+	'questycaptcha-createaccount' => 'Upang makatulong sa pagsasanggalang laban sa kusang paglikha ng akawnt, pakisagot ang tanong na nakalitaw sa ibaba ([[Special:Captcha/help|marami pang kabatiran]]):',
+	'questycaptcha-create' => 'Upang malikha ang pahina, pakisagot ang tanong na nakalitaw sa ibaba ([[Special:Captcha/help|marami pang kabatiran]]):',
+	'questycaptcha-edit' => 'Upang mabago ang pahina, pakisagot ang tanong na nakalitaw sa ibaba ([[Special:Captcha/help|marami pang kabatiran]]):',
+	'questycaptcha-sendemail' => 'Upang makatulong sa pagsasanggalang laban sa mga kusang paglusob, pakisagot lamang ang tanong na nakalitaw sa ibaba ([[Special:Captcha/help|marami pang kabatiran]]):',
+	'questycaptchahelp-text' => "Ang mga websayt na tumatanggap ng mga ambag mula sa madla, katulad ng wiking ito, ay madalas abusuhin ng mga manlulusob na gumagamit ng kasangkapang pangkusa upang madagdag ang kanilang mga kawing sa maraming mga sayt.
+
+Kung minsan, partikular na kapag nagdaragdag ng bagong mga kawing pangweb sa isang pahina, maaaring humiling ang wiki na sagutin mo ang isang tanong.  
+Dahil isa itong gawaing mahirap ikusa, magpapahintulot ito ng karamihan sa tunay na mga tao na gawin ang kanilang mga kontribusyon habang pinahihinto ang karamihan sa mga ispamer at iba pang mga makarobot na mga panglusob.
+
+Mangyaring makipag-ugnayan sa [[{{MediaWiki:Grouppage-sysop}}|mga tagapangasiwa ng sayt]] para sa pagtulong kung hindi inaasahang pigilan ka mula sa paggawa ng tunay na mga ambag.
+
+Pindutin ang pindutang 'bumalik' sa iyong pantingin-tingin upang makabalik sa pambago ng pahina.",
+);
+
+/** Turkish (Türkçe)
+ * @author Joseph
+ * @author Vito Genovese
+ */
+$messages['tr'] = array(
+	'questycaptcha-addurl' => 'Değişikliğiniz yeni dış bağlantı içeriyor.
+Otomatik reklama karşı korunmaya yardımcı olmak için, lütfen ([[Special:Captcha/help|daha fazla bilgi]]) bölümünün altında yer alan soruya cevap verin:',
+	'questycaptcha-badlogin' => 'Otomatik şifre kırmaya karşı korunmaya yardımcı olmak için, lütfen ([[Special:Captcha/help|daha fazla bilgi]]) bölümünün altında yer alan soruya cevap verin:',
+	'questycaptcha-createaccount' => 'Otomatik hesap oluşturmaya karşı korunmaya yardımcı olmak için, lütfen ([[Special:Captcha/help|daha fazla bilgi]]) bölümünün altında yer alan soruya cevap verin:',
+	'questycaptcha-create' => 'Sayfayı oluşturmak için, lütfen ([[Special:Captcha/help|daha fazla bilgi]]) bölümünün altında yer alan soruya cevap verin:',
+	'questycaptcha-edit' => 'Sayfayı değiştirmek için, lütfen ([[Special:Captcha/help|daha fazla bilgi]]) bölümünün altında yer alan soruya cevap verin:',
+	'questycaptcha-sendemail' => 'Otomatik spamlerden korunmaya yardımcı olmak için, lütfen aşağıda görünen soruyu cevaplayın ([[Special:Captcha/help|daha fazla bilgi]]):',
+	'questycaptchahelp-text' => "Bu viki gibi herkesin katkı yapmasına izin veren web siteleri, genellikle bir çok siteye verilen bağlantıları ekleyen otomatik araçlar kullanan reklam amaçlı kullanıcılar tarafından istismar edilmektedir.
+Bu reklam bağlantıları kaldırılabiliyor olsa da, önemli bir sıkıntı yaratmaktadırlar.
+
+Bazen, özellikle bir sayfaya yeni web bağlantıları eklenirken, viki size bir soru sorabilir.
+Bu, otomatikleştirilmesi zor bir iş olduğu için, insanların katkılarını yapmasını mümkün kılarken çoğu reklam amaçlı kullanıcıyı ya da robot saldırganı durduracaktır.
+
+Bu durumun sizi normal katkılarınızı yapmaktan olağandışı bir şekilde alıkoyması halinde, lütfen destek için [[{{MediaWiki:Grouppage-sysop}}|site hizmetlileri]] ile irtibata geçin.
+
+Sayfa editörüne dönmek için tarayıcınızın 'geri' düğmesine tıklayın.",
+);
+
+/** Ukrainian (Українська)
+ * @author Diemon.ukr
+ */
+$messages['uk'] = array(
+	'questycaptcha-addurl' => 'Ваше редагування містить нові зовнішні посилання.
+Із метою захисту від спаму, будь ласка, дайте відповідь на питання, що наводиться нижче ([[Special:Captcha/help|докладніше]]):',
+	'questycaptcha-badlogin' => 'Із метою захисту від автоматичного підбору пароля, будь ласка, дайте відповідь на питання, що наводиться нижче ([[Special:Captcha/help|докладніше]]):',
+	'questycaptcha-createaccount' => 'Із метою захисту від автоматичного створення облікових записів, будь ласка, дайте відповідь на питання, що наводиться нижче ([[Special:Captcha/help|докладніше]]):',
+	'questycaptcha-create' => 'Щоб створити сторінку, будь ласка, дайте відповідь на питання, що наводиться нижче ([[Special:Captcha/help|докладніше]]):',
+	'questycaptcha-edit' => 'Щоб редагувати цю сторінку, будь ласка, дайте відповідь на питання, що наводиться нижче ([[Special:Captcha/help|докладніше]]):',
+	'questycaptcha-sendemail' => 'Із метою захисту від автоматичного спаму, будь ласка, дайте відповідь на питання, що наводиться нижче ([[Special:Captcha/help|докладніше]]):',
+	'questycaptchahelp-text' => 'Сайти, які надають можливість змінювати свій зміст, як це вікі, часто є місцем зловживання спамерів, які використовують автоматизовані інструменти для додавання посилань на інші сайти. 
+Хоча ці спам-посилання можуть бути вилучені, вони є суттєвим негативним чинником. 
+
+Іноді, особливо при додаванні нових посилань веб-сторінки, вікі може попросити вас відповісти на запитання. 
+Це є завданням, яке важко автоматизувати, тому воно дозволить більшості реальних людей зробити свій внесок, і в той же час зупинить більшість спамерів та інших роботизованих нападників. 
+
+Будь ласка, зв\'яжіться з [[{{MediaWiki:Grouppage-sysop}}|адміністраторами сайту]] по допомогу, якщо ця система не дозволяє вам робити допустимий внесок. 
+
+Натисніть на кнопку "назад" у браузері, щоб повернутися на сторінку редагування.',
+);
+
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'questycaptcha-create' => 'צו שאַפֿן דעם בלאַט, ביטע ענטפֿערט די פֿראַגע אונטן  ([[Special:Captcha/help|מער אינפֿארמאַציע]]):',
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$messages['zh-hans'] = array(
+	'questycaptcha-addurl' => '您的编辑内容中含有本网站以外的连结。为防止不当程式大量破坏,请回答以下的问题([[Special:Captcha/help|相关资讯]]):',
+	'questycaptcha-badlogin' => '为防止不当程式破解密码,请回答以下的问题([[Special:Captcha/help|相关资讯]]):',
+	'questycaptcha-createaccount' => '为防止不当程式大量建立帐户,请回答以下的问题([[Special:Captcha/help|相关资讯]]):',
+	'questycaptcha-create' => '为防止不当程式大量建立页面,请回答以下问题([[Special:Captcha/help|相关资讯]]):',
+	'questycaptcha-edit' => '为防破坏,如您想要编辑此页面,请回答以下的问题([[Special:Captcha/help|相关资讯]]):',
+	'questycaptcha-sendemail' => '为防止不当程式破解密码,请回答下列问题([[Special:Captcha/help|相关资讯]]):',
+);
+
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Horacewai2
+ * @author Waihorace
+ */
+$messages['zh-hant'] = array(
+	'questycaptcha-addurl' => '您的編輯內容中含有本網站以外的連結。為防止不當程式大量破壞,請回答以下的問題([[Special:Captcha/help|相關資訊]]):',
+	'questycaptcha-badlogin' => '為防止不當程式破解密碼,請回答以下的問題([[Special:Captcha/help|相關資訊]]):',
+	'questycaptcha-createaccount' => '為防止不當程式大量建立帳戶,請回答以下的問題([[Special:Captcha/help|相關資訊]]):',
+	'questycaptcha-create' => '為防止不當程式大量建立頁面,請回答以下問題([[Special:Captcha/help|相關資訊]]):',
+	'questycaptcha-edit' => '為防破壞,如您想要編輯此頁面,請回答以下的問題([[Special:Captcha/help|相關資訊]]):',
+	'questycaptcha-sendemail' => '為防止不當程式破解密碼,請回答下列問題([[Special:Captcha/help|相關資訊]]):',
+);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/QuestyCaptcha.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,45 @@
+<?php
+/**
+ * A question-based captcha plugin.
+ *
+ * Copyright (C) 2009 Benjamin Lees <emufarmers at gmail.com>
+ * http://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+	exit;
+}
+
+require_once dirname( __FILE__ ) . '/ConfirmEdit.php';
+$wgCaptchaClass = 'QuestyCaptcha';
+
+global $wgCaptchaQuestions;
+$wgCaptchaQuestions = array();
+
+// Add your questions in LocalSettings.php using this format
+// $wgCaptchaQuestions[] = array( 'question' => "A question?", 'answer' => "An answer!" );
+// $wgCaptchaQuestions[] = array( 'question' => 'How much wood would a woodchuck chuck if a woodchuck could chuck wood?', 'answer' => 'as much wood as...' );
+// $wgCaptchaQuestions[] = array( 'question' => "What is this wiki's name?", 'answer' => "$wgSitename" );
+// You can also provide several acceptable answers to a given question (the answers shall be in lowercase):
+// $wgCaptchaQuestions[] = array( 'question' => "2 + 2 ?", 'answer' => array( '4', 'four' ) );
+
+$wgExtensionMessagesFiles['QuestyCaptcha'] = dirname( __FILE__ ) . '/QuestyCaptcha.i18n.php';
+$wgAutoloadClasses['QuestyCaptcha'] = dirname( __FILE__ ) . '/QuestyCaptcha.class.php';

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.class.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,89 @@
+<?php
+
+class ReCaptcha extends SimpleCaptcha {
+	// reCAPTHCA error code returned from recaptcha_check_answer
+	private $recaptcha_error = null;
+
+	/**
+	 * Displays the reCAPTCHA widget.
+	 * If $this->recaptcha_error is set, it will display an error in the widget.
+	 *
+	 */
+	function getForm() {
+		global $wgReCaptchaPublicKey, $wgReCaptchaTheme;
+
+		$useHttps = ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' );
+		$js = 'var RecaptchaOptions = ' . Xml::encodeJsVar( array( 'theme' => $wgReCaptchaTheme, 'tabindex' => 1  ) );
+
+		return Html::inlineScript( $js ) . recaptcha_get_html( $wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps );
+	}
+
+	/**
+	 * Calls the library function recaptcha_check_answer to verify the users input.
+	 * Sets $this->recaptcha_error if the user is incorrect.
+	 * @return boolean
+	 *
+	 */
+	function passCaptcha() {
+		global $wgReCaptchaPrivateKey, $wgRequest;
+
+		// API is hardwired to return wpCaptchaId and wpCaptchaWord, so use that if the standard two are empty
+		$challenge = $wgRequest->getVal( 'recaptcha_challenge_field', $wgRequest->getVal( 'wpCaptchaId' ) );
+		$response = $wgRequest->getVal( 'recaptcha_response_field', $wgRequest->getVal( 'wpCaptchaWord' ) );
+
+		if ( $response === null ) {
+			// new captcha session
+			return false;
+		}
+
+		$recaptcha_response = recaptcha_check_answer(
+			$wgReCaptchaPrivateKey,
+			$wgRequest->getIP(),
+			$challenge,
+			$response
+		);
+
+		if ( !$recaptcha_response->is_valid ) {
+			$this->recaptcha_error = $recaptcha_response->error;
+			return false;
+		}
+
+		$recaptcha_error = null;
+
+		return true;
+
+	}
+
+	function addCaptchaAPI( &$resultArr ) {
+		global $wgReCaptchaPublicKey;
+
+		$resultArr['captcha']['type'] = 'recaptcha';
+		$resultArr['captcha']['mime'] = 'image/png';
+		$resultArr['captcha']['key'] = $wgReCaptchaPublicKey;
+		$resultArr['captcha']['error'] = $this->recaptcha_error;
+	}
+
+	/**
+	 * Show a message asking the user to enter a captcha on edit
+	 * The result will be treated as wiki text
+	 *
+	 * @param $action Action being performed
+	 * @return string
+	 */
+	function getMessage( $action ) {
+		$name = 'recaptcha-' . $action;
+		$text = wfMsg( $name );
+
+		# Obtain a more tailored message, if possible, otherwise, fall back to
+		# the default for edits
+		return wfEmptyMsg( $name, $text ) ? wfMsg( 'recaptcha-edit' ) : $text;
+	}
+
+	public function APIGetAllowedParams( &$module, &$params ) {
+		return true;
+	}
+
+	public function APIGetParamDescription( &$module, &$desc ) {
+		return true;
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,475 @@
+<?php
+/**
+ * Internationalisation file for the reCAPTCHA module of the ConfirmEdit
+ * extension.
+ *
+ * @addtogroup Extensions
+*/
+
+$messages = array();
+
+/* English */
+$messages['en'] = array(
+	'recaptcha-desc' => 'reCAPTCHA module for Confirm Edit',
+        'recaptcha-edit' => 'To help protect against automated edit spam, please type the two words you see in the box below:', 
+        'recaptcha-addurl' => 'Your edit includes new external links. To help protect against automated spam, please type the two words you see in the box below:',
+	'recaptcha-badpass' => 'To help protect against automated password cracking, please type the two words you see in the box below:',
+	'recaptcha-createaccount' => 'To help protect against automated account creation, please type the two words you see in the box below:',
+	'recaptcha-createaccount-fail' => "Incorrect or missing reCAPTCHA answer.",
+	'recaptcha-create' => 'To help protect against automated page creation, please type the two words you see in the box below:', 
+);
+
+/** Message documentation (Message documentation)
+ * @author Umherirrender
+ */
+$messages['qqq'] = array(
+	'recaptcha-desc' => '{{desc}}',
+);
+
+/** Arabic (العربية)
+ * @author Alexknight12
+ * @author Ciphers
+ * @author Meno25
+ */
+$messages['ar'] = array(
+	'recaptcha-desc' => 'موديل reCAPTCHA لConfirm Edit',
+	'recaptcha-edit' => 'للمساعدة في الحماية ضد التحرير السبام، يرجى كتابة الكلمتين التي تراها في المربع أدناه :',
+	'recaptcha-addurl' => 'إن تعديلك يتضمن وصلات خارجية جديدة. للمساعدة في الحماية ضد السبام، يرجى كتابة الكلمتين التي تراها في المربع أدناه :',
+	'recaptcha-badpass' => 'للمساعدة في الحماية ضد الكسر الآلي لكلمة السر، يرجى كتابة الكلمتين اللتين تراهما في المربع أدناه :',
+	'recaptcha-createaccount' => 'للمساعدة في الحماية ضد الإنشاء الآلي للحسابات، رجاء اكتب الكلمتين اللتين تراهما في المربع أدناه:',
+	'recaptcha-createaccount-fail' => 'جواب reCAPTCHA غير صحيح أو مفقود.',
+	'recaptcha-create' => 'للمساعدة في الحماية ضد الإنشاء الآلي للصفحات، يرجى كتابة الكلمتين اللتين تراهما في المربع أدناه :',
+);
+
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'recaptcha-edit' => "P'ayudar a protexenos escontra'l spam d'edición, escribi les dos pallabres que se ven na caxella d'abaxo:",
+	'recaptcha-addurl' => "La to edición incluye enllaces esternos nuevos. P'ayudar a protexenos escontra'l spam automáticu, escribi les dos pallabres que se ven na caxella d'abaxo:",
+	'recaptcha-badpass' => "P'ayudar a protexenos escontra'l frañimientu de claves automáticu, escribi les dos pallabres que se ven na caxella d'abaxo:",
+	'recaptcha-createaccount' => "P'ayudar a protexenos escontra la creación de cuentes automática, escribi les dos pallabres que se ven na caxella d'abaxo:",
+	'recaptcha-createaccount-fail' => 'Falta la rempuesta a la entruga de reCAPTCHA o ye incorreuta',
+	'recaptcha-create' => "P'ayudar a protexenos escontra la creación de páxines automática, escribi les dos pallabres que se ven na caxella d'abaxo:",
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ * @author Jim-by
+ */
+$messages['be-tarask'] = array(
+	'recaptcha-edit' => 'Для абароны супраць спаму, калі ласка, увядзіце два словы, якія Вы бачыце ў полі ніжэй:',
+	'recaptcha-addurl' => 'Вашае рэдагаваньне ўтрымлівае новыя вонкавыя спасылкі. Для абароны супраць спаму, калі ласка, увядзіце два словы, якія Вы бачыце ў полі ніжэй:',
+	'recaptcha-badpass' => 'Для абароны супраць узлому паролю, калі ласка, увядзіце два словы, якія Вы бачыце ў полі ніжэй:',
+	'recaptcha-createaccount' => 'Для абароны супраць аўтаматычнага стварэньня рахункаў, калі ласка, увядзіце два словы, якія Вы бачыце ў полі ніжэй:',
+	'recaptcha-createaccount-fail' => 'Адказ reCAPTCHA няслушны ці адсутнічае.',
+	'recaptcha-create' => 'Для абароны супраць аўтаматычнага стварэньня старонак, калі ласка, увядзіце два словы, якія Вы бачыце ў полі ніжэй:',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'recaptcha-edit' => "Da sikour en em wareziñ diouzh ar stroboù emgefre, merkit an daou c'her a welit er voest dindan :",
+	'recaptcha-addurl' => "Liamm diavaez nevez zo bet degaset ganeoc'h. Da sikour en em wareziñ diouzh ar stroboù, merkit an daou c'her a welit er voest dindan :",
+	'recaptcha-badpass' => "Da sikour en em wareziñ diouzh an diskuliañ gerioù-tremen emgefre dre daolioù-esae, merkit an daou c'her a welit er voest dindan :",
+	'recaptcha-createaccount' => "Da sikour en em wareziñ diouzh ar c'hrouiñ kontoù emgefre, merkit an daou c'her a welit er voest dindan :",
+	'recaptcha-createaccount-fail' => 'Respont reCAPTHCA faziek pe ezvezant.',
+	'recaptcha-create' => "Da sikour en em wareziñ diouzh ar c'hrouiñ pajennoù emgefre, merkit an daou c'her a welit er voest dindan :",
+);
+
+/** Bosnian (Bosanski)
+ * @author CERminator
+ */
+$messages['bs'] = array(
+	'recaptcha-edit' => 'Da bismo pomogli protiv automatiziranog spam uređivanja, molimo upišite dvije riječi koje vidite u kutiju ispod:',
+	'recaptcha-addurl' => 'Vaše izmjene uključuju nove vanjske linkove. Da bismo pomogli protiv automatiziranog spama, molimo upišite dvije riječi koje vidite u kutiju ispod.',
+	'recaptcha-badpass' => 'Da bismo pomogli protiv automatiziranog probijanja šifre, molimo upišite dvije riječi koje vidite u kutiju ispod:',
+	'recaptcha-createaccount' => 'Da bismo pomogli protiv automatiziranog pravljenja računa, molimo upišite dvije riječi koje vidite u kutiju ispod:',
+	'recaptcha-createaccount-fail' => 'Neispravan ili nedostajući reCAPTCHA odgovor.',
+	'recaptcha-create' => 'Da bismo pomogli protiv automatiziranog pravljenja stranica, molimo upišite dvije riječi koje vidite u kutiju ispod:',
+);
+
+/** Czech (Česky)
+ * @author Jkjk
+ * @author Mormegil
+ */
+$messages['cs'] = array(
+	'recaptcha-desc' => 'Podpora reCAPTCHA pro rozšíření Confirm Edit',
+	'recaptcha-edit' => 'V zájmu ochrany před automatickým spamováním opište dvě slova, která vidíte na obrázku:',
+	'recaptcha-addurl' => 'Vaše editace obsahuje nové externí odkazy. V zájmu ochrany před automatickým spamováním opište dvě slova, která vidíte na obrázku:',
+	'recaptcha-badpass' => 'V zájmu ochrany proti automatickým pokusům uhodnout heslo opište dvě slova, která vidíte na obrázku:',
+	'recaptcha-createaccount' => 'V rámci ochrany před automatickým vytvářením účtů opište dvě slova, která vidíte na obrázku:',
+	'recaptcha-createaccount-fail' => 'Nesprávná nebo chybějící odpověď na reCAPTCHA.',
+	'recaptcha-create' => 'V zájmu ochrany před automatickým zakládáním stránek opište dvě slova, která vidíte na obrázku:',
+);
+
+/** Welsh (Cymraeg)
+ * @author Lloffiwr
+ */
+$messages['cy'] = array(
+	'recaptcha-edit' => "Er mwyn ei gwneud yn anodd i olygyddion awtomatig osod sbam, teipiwch y ddau air sydd i'w gweld yn y blwch isod:",
+	'recaptcha-addurl' => "Mae'ch golygiad yn cynnwys cysylltiadau allanol newydd. Er mwyn helpu i ddiogelu rhag sbam awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:",
+	'recaptcha-badpass' => "Er mwyn helpu i arbed rhag i'ch cyfrinair gael ei ddatrys gan beiriant, teipiwch y ddau air sydd i'w gweld yn y blwch isod:",
+	'recaptcha-createaccount' => "Er mwyn ei gwneud yn anodd i beiriannau i agor cyfrifon yn awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:",
+	'recaptcha-createaccount-fail' => "Mae'r ateb i'r pos CAPTCHA yn anghywir neu yn eisiau.",
+	'recaptcha-create' => "Er mwyn ei gwneud yn anodd i beiriannau i ddechrau tudalennau yn awtomatig, teipiwch y ddau air sydd i'w gweld yn y blwch isod:",
+);
+
+/** German (Deutsch)
+ * @author Kghbln
+ * @author Umherirrender
+ */
+$messages['de'] = array(
+	'recaptcha-desc' => 'reCAPTCHA-Module für die Erweiterung „Confirm Edit“',
+	'recaptcha-edit' => 'Zum Schutz vor automatisiertem Spam, gib bitte die beiden folgenden Wörter in das untenstehende Feld ein:',
+	'recaptcha-addurl' => 'Deine Bearbeitung enthält neue externe Links. Zum Schutz vor automatisiertem Spam gib bitte die beiden folgenden Wörter in das folgende Feld ein:',
+	'recaptcha-badpass' => 'Zum Schutz gegen automatisiertes Knacken von Passwörtern, gib bitte die beiden folgenden Wörter in das folgende Feld ein:',
+	'recaptcha-createaccount' => 'Zum Schutz gegen die automatisierte Erstellung von Benutzerkonten bitten wir dich, die folgenden beiden Wörter in das untenstehende Feld einzugeben:',
+	'recaptcha-createaccount-fail' => 'Fehlerhafte oder fehlende reCAPTCHA Antwort.',
+	'recaptcha-create' => 'Zum Schutz gegen automatisierte Erstellung von Seiten gib bitte die beiden folgenden Wörter in das folgende Feld ein:',
+);
+
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author Kghbln
+ */
+$messages['de-formal'] = array(
+	'recaptcha-createaccount' => 'Zum Schutz gegen die automatisierte Erstellung von Benutzerkonten bitten wir Sie, die folgenden beiden Wörter in das untenstehende Feld einzugeben:',
+);
+
+/** Spanish (Español)
+ * @author Fitoschido
+ */
+$messages['es'] = array(
+	'recaptcha-edit' => 'Para protegernos de la publicidad automatizada, escribe las dos palabras visibles en el cuadro de abajo:',
+	'recaptcha-addurl' => 'Tu edición incluye nuevos enlaces externos. Para ayudar a protegernos contra el spam automatizado, por favor, escribe las dos palabras que ves en el cuadro a continuación:',
+	'recaptcha-badpass' => 'Para protegernos del robo automatizado de contraseñas, escribe las dos palabras visibles en el cuadro de abajo:',
+	'recaptcha-createaccount' => 'Para protegernos de la creación automática de cuentas, escribe las dos palabras que ves en el cuadro de abajo:',
+	'recaptcha-createaccount-fail' => 'ReCAPTCHA incorrecto o sin responder.',
+	'recaptcha-create' => 'Para protegernos de la creación automática de páginas, escribe las dos palabras que ves en el cuadro de abajo:',
+);
+
+/** French (Français) */
+$messages['fr'] = array(
+	'recaptcha-edit' => "Pour nous protéger des robots, merci d'écrire les deux mots visibles dans le cadre qui suit:",
+	'recaptcha-addurl' => "Votre contribution contient des liens vers un site externe. Pour nous protéger des robots, merci d'écrire les deux mots visibles dans le cadre qui suit:",
+	'recaptcha-badpass' => "Pour nous protéger des essais automatiques de cassage de mot de passe, merci d'écrire les deux mots visibles dans le cadre qui suit:",
+	'recaptcha-createaccount' => "Pour nous protéger des créations automatiques de compte, merci d'écrire les deux mots visibles dans le cadre qui suit:",
+	'recaptcha-createaccount-fail' => 'Réponse de reCAPTCHA fausse ou manquante.',
+	'recaptcha-create' => "Pour nous protéger des créations automatiques de pages, merci d'écrire les deux mots visibles dans le cadre qui suit:",
+);
+
+/** Galician (Galego)
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'recaptcha-desc' => 'Módulo de reCAPTCHA para Confirm Edit',
+	'recaptcha-edit' => 'Para axudarnos á protección contra o spam, escriba as dúas palabras que vexa nesta caixa:',
+	'recaptcha-addurl' => 'A súa edición inclúe novas ligazóns externas. Para axudar na protección contra o spam automático, ten que escribir as dúas palabras que aparecen na caixa inferior:',
+	'recaptcha-badpass' => 'Para axudarnos á protección contra o roubo de contrasinais, escriba as dúas palabras que vexa nesta caixa:',
+	'recaptcha-createaccount' => 'Para axudarnos á protección contra a creación automática de contas, escriba as dúas palabras que vexa nesta caixa:',
+	'recaptcha-createaccount-fail' => 'Falta a resposta ao reCAPTCHA ou esta é incorrecta.',
+	'recaptcha-create' => 'Para axudarnos á protección contra a creación automática de páxinas, escriba as dúas palabras que vexa nesta caixa:',
+);
+
+/** Swiss German (Alemannisch)
+ * @author Als-Holder
+ */
+$messages['gsw'] = array(
+	'recaptcha-edit' => 'Zum Schutz vor automatisiertem Spam, gib bitte di beide Werter in s Fäld unten yy:',
+	'recaptcha-addurl' => 'In Dyre Bearbeitg het s neji extärni Links. Zum Schutz vor automatisiertem Spam, gib bitte di beide Werter in s Fäld unten yy:',
+	'recaptcha-badpass' => 'Zum Schutz gege automatisiert Knacken vu Passwerter, gib bitte di beide Werter in s Fäld unten yy:',
+	'recaptcha-createaccount' => 'Zum Schutz gege s automatisiert Aalege vu Benutzerkonte, gib bitte di beide Werter in s Fäld unten yy:',
+	'recaptcha-createaccount-fail' => 'D reCAPTCHA-Antwort isch fählerhaft oder si fählt.',
+	'recaptcha-create' => 'Zum Schutz gege s automatisiert Aalege vu Syte, gib bitte di beide Werter in s Fäld unten yy:',
+);
+
+/** Hebrew (עברית) */
+$messages['he'] = array(
+	'recaptcha-edit' => 'אינכם משתמש רשום.כהגנה מפני ספאם אוטומטי, אנא הקלידו את שתי המילים שלהלן. תודה.',
+	'recaptcha-addurl' => 'אינכם משתמש רשום.כהגנה מפני ספאם אוטומטי, אנא הקלידו את שתי המילים שלהלן. תודה.',
+	'recaptcha-badpass' => 'כהגנה מפני מפצחי סיסמאות אוטומטיים אנא הקלידו את שתי המילים שלהלן:',
+	'recaptcha-createaccount' => 'כהגנה מפני יצירת חשבונות פיקטיביים ע"י אוטומטים אנא הקלידו את שתי המילים שלהלן:',
+	'recaptcha-createaccount-fail' => 'לא הוקלדו מילות האישור, או שהוקלדו מילים לא נכונות. נסו שנית.',
+	'recaptcha-create' => 'אינכם משתמש רשום.כהגנה מפני ספאם אוטומטי, אנא הקלידו את שתי המילים שלהלן. תודה.',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'recaptcha-edit' => 'Za škit přećiwo awtomatizowanemu spamej, prošu zapisaj dwě słowje, kotrejž w slědowacym polu widźiš:',
+	'recaptcha-addurl' => 'Twoja změna wobsahuje nowe eksterne wotkazy. Za škit přećiwo awtomatizowanemu spamej, prošu zapisaj dwě słowje, kotrerjž w slědowacym polu widźiš:',
+	'recaptcha-badpass' => 'Za škit přećiwo awtomatizowanemu złamanju hesłow, zapisaj prošu wobě słowje, kotrejž widźiš, do slědowaceho pola:',
+	'recaptcha-createaccount' => 'Za škit přećiwo awtomatiskemu wutworjenju konta, prošu zapisaj tej wobě słowje, kotrejž w slědowacym polu widźiš:',
+	'recaptcha-createaccount-fail' => 'Wopačna abo falowaca wotmołwa reCAPTCHA.',
+	'recaptcha-create' => 'Za škit přećiwo awtomatiskemu wutworjenju strony, prošu zapisaj tej wobě słowje, kotrejž w slědowacym polu widźiš:',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'recaptcha-edit' => 'Pro adjutar a proteger nos contra le spam automatisate, per favor entra le duo parolas que tu vide in le quadro sequente:',
+	'recaptcha-addurl' => 'Iste modification include nove ligamines externe. Pro adjutar a proteger nos contra le spam automatisate, per favor entra le duo parolas que tu vide in le quadro sequente:',
+	'recaptcha-badpass' => 'Pro adjutar a proteger nos contra le furto automatisate de contrasignos, per favor entra le duo parolas que tu vide in le quadro sequente:',
+	'recaptcha-createaccount' => 'Pro adjutar a proteger nos contra le creation automatisate de contos, per favor entra le duo parolas que tu vide in le quadro sequente:',
+	'recaptcha-createaccount-fail' => 'Responsa reCAPTCHA incorrecte o mancante.',
+	'recaptcha-create' => 'Pro adjutar a proteger nos contra le creation automatisate de paginas, per favor entra le duo parolas que tu vide in le quadro sequente:',
+);
+
+/** Indonesian (Bahasa Indonesia)
+ * @author IvanLanin
+ */
+$messages['id'] = array(
+	'recaptcha-edit' => 'Untuk membantu pelindungan terhadap spam penyuntingan otomatis, silakan ketik dua kata yang Anda lihat dalam kotak di bawah ini:',
+	'recaptcha-addurl' => 'Suntingan Anda menyertakan pranala eksternal baru. Untuk membantu pelindungan terhadap spam otomatis, silakan ketik dua kata yang Anda lihat dalam kotak di bawah ini:',
+	'recaptcha-badpass' => 'Untuk membantu pelindungan terhadap perengkahan sandi otomatis, silakan ketik dua kata yang Anda lihat dalam kotak di bawah ini:',
+	'recaptcha-createaccount' => 'Untuk membantu pelindungan terhadap pembuatan akun otomatis, silakan ketik dua kata yang Anda lihat dalam kotak di bawah ini:',
+	'recaptcha-createaccount-fail' => 'Jawaban reCAPTCHA tidak benar atau tidak dimasukkan.',
+	'recaptcha-create' => 'Untuk membantu pelindungan terhadap pembuatan halaman otomatis, silakan ketik dua kata yang Anda lihat dalam kotak di bawah ini:',
+);
+
+/** Italian (Italiano)
+ * @author Nemo bis
+ */
+$messages['it'] = array(
+	'recaptcha-edit' => 'Per aiutarci a proteggerci dalle modifiche automatiche che aggiungono spam, scrivi le due parole mostrate nel riquadro sottostante:',
+	'recaptcha-addurl' => 'La tua modifica aggiunge qualche nuovo collegamento esterno. Per aiutarci a proteggerci dallo spam automatico, scrivi le due parole mostrate nel riquadro sottostante:',
+	'recaptcha-badpass' => 'Per aiutarci a proteggerci dalla forzatura automatica delle password, scrivi le due parole mostrate nel riquadro sottostante:',
+	'recaptcha-createaccount' => 'Per aiutarci a proteggerci dalla creazione automatica di nuovi accessi, scrivi le due parole mostrate nel riquadro sottostante:',
+	'recaptcha-createaccount-fail' => 'Risposta reCAPTCHA mancante o errata.',
+	'recaptcha-create' => 'Per aiutarci a proteggerci dalla creazione automatica di pagine, scrivi le due parole mostrate nel riquadro sottostante:',
+);
+
+/** Japanese (日本語) */
+$messages['ja'] = array(
+	'recaptcha-edit' => '自動編集スパムからの保護のため、下の画像に表示されている2つの言葉を入力 してください。',
+	'recaptcha-addurl' => 'あなたの編集は新しい外部リンクを含んでいます。自動スパムからの保護のた め、下の画像に表示されている2つの言葉を入力してください。',
+	'recaptcha-badpass' => '自動パスワードクラッキングからの保護のために、下の画像に表示されている2 つの言葉を入力してください。',
+	'recaptcha-createaccount' => '自動アカウント登録からの保護のために、下の画像に表示されている2つの言葉 を入力してください。',
+	'recaptcha-createaccount-fail' => '入力された文字列が正しくありません。',
+	'recaptcha-create' => '自動ページ作成からの保護のために、下の画像に表示されている2つの言葉を入 力してください。',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'recaptcha-edit' => 'Schrief di zwei Wööt en dä Kaste onge erin.
+Dat sull jääje et automattesche Ändere un SPAM em Wiki schöze.',
+	'recaptcha-addurl' => 'Schrief di zwei Wööt en dä Kaste onge erin.
+Dat sull jääje automattesch en et Wiki jebraate SPAM schöze, nohdämm en Dingem Beidraach {{PLURAL:$1|ene neue Lengk dren es|neue Lengks dren sin|kein neue Lengks dren sin}}.',
+	'recaptcha-badpass' => 'Schrief di zwei Wööt en dä Kaste onge erin.
+Dat sull jääje et automattesche Paßwoot Knacke em Wiki schöze.',
+	'recaptcha-createaccount' => 'Schrief di zwei Wööt en dä Kaste onge erin.
+Dat sull jääje SPAM un automattesch aanjelaate Zohjäng nohm Wiki schöze.',
+	'recaptcha-createaccount-fail' => 'Dat wohr en verkehte udder jaa kei Antwoot op dat Kaptscha.',
+	'recaptcha-create' => 'Schrief di zwei Wööt en dä Kaste onge erin.
+Dat sull jääje SPAM un automattesch aanjelaate Sigge em Wiki schöze.',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'recaptcha-edit' => "Fir ze hëllefe eis géint automatiséierte Spam ze schützen, tippt w.e.g. déi zwee Wierder déi Dir gesitt an d'Këscht ënnendrënner an:",
+	'recaptcha-addurl' => "An Ärer Ännerung sinn nei extern Linken! Fir ze hëllefe géint automatiséierte Spam virzegoen, tippt w.e.g. déi zwee Wierder déi Dir gesitt an d'Këscht ënnendrënner:",
+	'recaptcha-badpass' => "Fir ze hëllefe eis géint d'automatiséiert hacke vu Passwierder ze schützen, tippt w.e.g. déi zwee Wierder déi Dir gesitt an d'Këscht ënnendrënner an:",
+	'recaptcha-createaccount' => "Fir ze hëllefe eis géint d'automatiséiert Uleeë vu Benotzerkonten ze schützen, tippt w.e.g. déi zwee Wierder déi Dir gesitt an d'Këscht ënnendrënner an:",
+	'recaptcha-createaccount-fail' => 'reCAPTCHA Äntwert feelt oder ass net korrekt.',
+	'recaptcha-create' => "Fir ze hëllefe eis géint d'automatiséiert Uleeë vu Säiten ze schützen, tippt w.e.g. déi zwee Wierder déi Dir gesitt an d'Këscht ënnendrënner an:",
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'recaptcha-desc' => 'Модул reCAPTCHA за потврда на уредувања',
+	'recaptcha-edit' => 'Како заштитна мерка против автоматизиран спам, внесете ги двата збора прикажани во полето:',
+	'recaptcha-addurl' => 'Во вашите измени има нови надворешни врски. Како заштитна мерка против автоматизиран спам, внесете ги двата збора прикажани во полето:',
+	'recaptcha-badpass' => 'Како заштитна мерка против автоматизирано провалување на лозинки, внесете ги двата збора прикажани во полето:',
+	'recaptcha-createaccount' => 'Како заштитна мерка против автоматизирано создавање на сметки, внесете ги двата збора прикажани во полето:',
+	'recaptcha-createaccount-fail' => 'reCAPTCHA доби погрешен одговор или одговорот недостасува.',
+	'recaptcha-create' => 'Како заштитна мерка против автоматизирано создавање на страници, внесете ги двата збора прикажани во полето:',
+);
+
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ */
+$messages['ms'] = array(
+	'recaptcha-edit' => 'Untuk membanteras kegiatan spam automatik, sila taipkan dua perkataan yang anda lihat dalam petak di bawah:',
+	'recaptcha-addurl' => 'Suntingan anda termasuk pautan luar baru. Untuk membanteras kegiatan spam automatik, sila taipkan dua perkataan yang anda lihat dalam petak di bawah:',
+	'recaptcha-badpass' => 'Untuk membanteras kegiatan meneka kata laluan secara automatik, sila taipkan dua perkataan yang anda lihat dalam petak di bawah:',
+	'recaptcha-createaccount' => 'Untuk membanteras kegiatan membuka akaun secara automatik, sila taipkan dua perkataan yang anda lihat dalam petak di bawah:',
+	'recaptcha-createaccount-fail' => 'Jawapan reCAPTCHA tidak betul atau tidak ada.',
+	'recaptcha-create' => 'Untuk membanteras kegiatan mencipta laman secara automatik, sila taipkan dua perkataan yang anda lihat dalam petak di bawah:',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Event
+ */
+$messages['nb'] = array(
+	'recaptcha-edit' => 'Som beskyttelse mot automatisk redigert spam, vennligst skriv inn de to ordene du ser i boksen under:',
+	'recaptcha-addurl' => 'Din redigering inneholder nye eksterne lenker. Som beskyttelse mot automatisk spam, vennligst skriv inn de to ordene du ser i boksen under:',
+	'recaptcha-badpass' => 'Som beskyttelse mot automatisk passordknekking, vennligst skriv inn de to ordene du ser i boksen under:',
+	'recaptcha-createaccount' => 'Som beskyttelse mot automatisk opprettelse av brukerkonto, vennligst skriv inn de to ordene du ser i boksen under:',
+	'recaptcha-createaccount-fail' => 'Feil eller manglende reCAPTCHA-svar.',
+	'recaptcha-create' => 'Som beskyttelse mot automatisk opprettelse av side, vennligst skriv inn de to ordene du ser i boksen under:',
+);
+
+/** Dutch (Nederlands)
+ * @author Siebrand
+ */
+$messages['nl'] = array(
+	'recaptcha-edit' => 'Voer ter bescherming tegen geautomatiseerde spam de twee woorden die u ziet in het invoervenster in:',
+	'recaptcha-addurl' => 'Uw bewerking bevat nieuwe externe verwijzingen. Voer ter bescherming tegen geautomatiseerde spam de twee woorden die u ziet in het invoervenster in:',
+	'recaptcha-badpass' => 'Voer ter bescherming tegen het automatisch kraken van wachtwoorden de twee woorden die u ziet in het invoervenster in:',
+	'recaptcha-createaccount' => 'Om het automatisch aanmaken van gebruikers tegen te gaan moet u de twee woorden die u ziet invoeren:',
+	'recaptcha-createaccount-fail' => 'Het reCAPTCHA-antwoord is onjuist of niet ingevoerd.',
+	'recaptcha-create' => "Om het automatisch aanmaken van pagina's tegen te gaan moet u de twee woorden die u ziet invoeren:",
+);
+
+/** Polish (Polski) */
+$messages['pl'] = array(
+	'recaptcha-edit' => 'Aby uchronić nas przed robotami, proszę wpisać dwa widoczne słowa w poniższym polu:',
+	'recaptcha-addurl' => 'Twoja edycja zawiera linki zewnętrzne. Aby uchronić nas przed robotami, proszę wpisać dwa widoczne słowa w poniższym polu:',
+	'recaptcha-badpass' => 'Aby uchronić nas przed złamaniem automatycznym haseł, proszę wpisać dwa widoczne słowa w poniższym polu:',
+	'recaptcha-createaccount' => 'Aby uchronić nas przed automatycznym stworzeniem użytkowników, proszę wpisać dwa widoczne słowa w poniższym polu:',
+	'recaptcha-createaccount-fail' => 'Odpowiedź na reCAPTCHA jest fałszywa lub brakująca.',
+	'recaptcha-create' => 'Aby uchronić nas przed tworzeniem stron przez robotów, proszę wpisać dwa widoczne słowa w poniższym polu:',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'recaptcha-edit' => "Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a scriva le doe paròle ch'a s-ciàira ant ël quàder sì-sota:",
+	'recaptcha-addurl' => "Soa modìfica a conten d'anliure esterne neuv. Për giuté a protege contra la rumenta dle modìfiche automàtiche, për piasì ch'a scriva le doe paròle ch'a s-ciàira ant ël quàder sì-sota:",
+	'recaptcha-badpass' => "Për giuté a protege contra la forsadura automatisà ëd le ciav, për piasì ch'a scriva le doe paròle ch'a s-ciàira ant ël formolari sì-sota:",
+	'recaptcha-createaccount' => "Për giuté a protege contra la creassion automatisà ëd cont, për piasì ch'a scriva le doe paròle ch'a s-ciàira ant ël formolari sì-sota:",
+	'recaptcha-createaccount-fail' => 'Rispòsta ëd reCAPTCHA fàussa o mancanta.',
+	'recaptcha-create' => "Për giuté a protege contra la creassion automatisà ëd pàgine, për piasì ch'a scriv le doe paròle ch'a s-ciàira ant la casela sì-sota:",
+);
+
+/** Portuguese (Português)
+ * @author Hamilton Abreu
+ */
+$messages['pt'] = array(
+	'recaptcha-edit' => 'Para proteger-nos de spam, por favor escreva  as duas palavras visíveis abaixo:',
+	'recaptcha-addurl' => "A sua edição contém links externos novos. Como prevenção contra sistemas automatizados de inserção de ''spam'', escreva as duas palavras visíveis na caixa abaixo:",
+	'recaptcha-badpass' => 'Para proteger-nos de robots que tentam adivinhar senhas, por favor escreva  as duas palavras visíveis abaixo:',
+	'recaptcha-createaccount' => 'Para proteger-nos de criação automática de contas, por favor escreva  as duas palavras visíveis abaixo:',
+	'recaptcha-createaccount-fail' => 'A resposta ao reCAPTCHA é errada.',
+	'recaptcha-create' => 'Para proteger-nos da criação automática de páginas, por favor escreva  as duas palavras visíveis abaixo:',
+);
+
+/** Brazilian Portuguese (Português do Brasil) */
+$messages['pt-br'] = array(
+	'recaptcha-edit' => 'Para ajudar a prevenir contra vandalismos, por favor digite as duas palavras que você vê na caixa abaixo:',
+	'recaptcha-addurl' => 'A sua edição inclui ligações externas. Para ajudar a prevenir contra vandalismos, por favor digite as duas palavras que você vê na caixa abaixo:',
+	'recaptcha-badpass' => 'Para ajudar a prevenir contra tentativas de desbloquear senhas, por favor digite as duas palavras que você vê na caixa abaixo:',
+	'recaptcha-createaccount' => 'Para ajudar a prevenir contra criação automatizada de usuários, por favor digite as duas palavras que você vê na caixa abaixo:',
+	'recaptcha-createaccount-fail' => 'Resposta incorreta ao reCAPTCHA.',
+	'recaptcha-create' => 'Para ajudar a prevenir contra criação automatizada de páginas, por favor digite as duas palavras que você vê na caixa abaixo:',
+);
+
+/** Russian (Русский)
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'recaptcha-edit' => 'В целях защиты от автоматического спама в правках, пожалуйста, введите два слова, которые вы видите ниже:',
+	'recaptcha-addurl' => 'Ваша правка содержит новые внешние ссылки. В целях защиты от автоматического спама, пожалуйста, введите два слова, которые вы видите ниже:',
+	'recaptcha-badpass' => 'В целях защиты от автоматического подбора пароля, пожалуйста, введите два слова, которые вы видите ниже:',
+	'recaptcha-createaccount' => 'В целях защиты от автоматического создания учётных записей, пожалуйста, введите два слова, которые вы видите ниже:',
+	'recaptcha-createaccount-fail' => 'Ответ reCAPTCHA неправильный или отсутствует.',
+	'recaptcha-create' => 'В целях защиты от автоматического создания страниц, пожалуйста, введите два слова, которые вы видите ниже:',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Rancher
+ */
+$messages['sr-ec'] = array(
+	'recaptcha-desc' => 'Модул reCAPTCHA за потврду уређивања',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬) */
+$messages['sr-el'] = array(
+	'recaptcha-desc' => 'Modul reCAPTCHA za potvrdu uređivanja',
+);
+
+/** Swedish (Svenska) */
+$messages['sv'] = array(
+	'recaptcha-edit' => 'Den här sidan skyddas mot spam-robotar, bevisa att du är en människa genom att skriva de två orden du ser i boxen nedan:',
+	'recaptcha-addurl' => 'Din förändring av sidan innehåller nya externa länkar, vilket är typiskt för spam. Bevisa att du är en människa genom att skriva de två orden du ser i boxen nedan:',
+	'recaptcha-badpass' => 'För att skydda wikin mot robotar som gissar användares lösenord behöver användare bevisa att de är människor. Skriv ner de två orden som du ser i boxen nedan:',
+	'recaptcha-createaccount' => 'För att skydda wikin mot robotar som skapar konton behöver användare bevisa att de är människor. Var vänlig och skriv ner de två orden du ser i boxen nedan:',
+	'recaptcha-createaccount-fail' => 'Du har angivit ett felaktig svar för reCAPTCHA.',
+	'recaptcha-create' => 'För att skydda wikin mot robotar som skapar nya artiklar. Var vänlig och skriv ner de två orden som finns i boxen nedan:',
+);
+
+/** Swahili (Kiswahili)
+ * @author Lloffiwr
+ */
+$messages['sw'] = array(
+	'recaptcha-edit' => 'Ili kusaidia kuzuia mashine zisihariri, tafadhali andika maneno mawili yanayoonekana katika kisanduku pakipo chini:',
+	'recaptcha-addurl' => 'Haririo lako lina viungo vipya vya nje. Ili kusaidia katika kuzuisha viungo visivyotakiwa visiwekwe na mashine, tafadhali andika maneno mawili yanayoonekana katika kisanduku pakipo chini:',
+	'recaptcha-badpass' => 'Ili kusaidia katika kuzuia neno lako la siri lisigunduliwe na mashine, tafadhali andika maneno mawili yanayoonekana katika kisanduku pakipo chini:',
+	'recaptcha-createaccount' => 'Ili kusaidia kuzuia akaunti zisifunguliwe nyingi na mashine, tafadhali andika maneno mawili yanayoonekana katika kisanduku pakipo chini:',
+	'recaptcha-createaccount-fail' => 'Jibu la swali la CAPTCHA si sahihi au halipo.',
+	'recaptcha-create' => 'Ili kusaidia kuzuia kurasa zisianzishwe nyingi na mashine, tafadhali andika maneno mawili yanayoonekana katika kisanduku pakipo chini:',
+);
+
+/** Tagalog (Tagalog)
+ * @author AnakngAraw
+ */
+$messages['tl'] = array(
+	'recaptcha-edit' => 'Upang makatulong sa pagprutekta laban sa kusang basurang pamamatnugot, paki imakinilya ang dalawang mga salitang nakikita mo sa loob ng kahong nasa ibaba:',
+	'recaptcha-addurl' => 'Ang pagbabago mo ay nagsasama ng bagong panlabas na mga kawing.  Upang makatulong sa pagprutekta laban sa kusang paglusob ng basurang-liham, paki imakinilya ang dalawang mga salitang nakikita sa loob ng kahong nasa ibaba:',
+	'recaptcha-badpass' => 'Upang makatulong sa pagsasanggalang laban sa kusang panghuhula ng hudyat, paki imakinilya ang dalawang mga salitang nakikita mo sa loob ng kahong nasa ibaba:',
+	'recaptcha-createaccount' => 'Upang makatulong sa pagprutekta laban sa kusang paglikha ng akawnt, paki imakinilya ang dalawang mga salitang nakikita mo sa loob ng kahong nasa ibaba:',
+	'recaptcha-createaccount-fail' => 'Hindi tama o nawawalang sagot sa reCAPTCHA.',
+	'recaptcha-create' => 'Upang makatulong sa pagprutekta laban sa kusang paglikha ng pahina, paki imakinilya ang dalawang mga salitang nakikita mo sa loob ng kahong nasa ibaba:',
+);
+
+/** Ukrainian (Українська)
+ * @author Тест
+ */
+$messages['uk'] = array(
+	'recaptcha-createaccount-fail' => 'Відповідь reCAPTCHA неправильна або відсутня.',
+);
+
+/** Vietnamese (Tiếng Việt) */
+$messages['vi'] = array(
+	'recaptcha-edit' => 'Để giúp tránh các sửa đổi rác tự động, xin hãy gõ hai từ mà bạn nhìn thấy vào ô dưới đây:',
+	'recaptcha-addurl' => 'Sửa đổi của bạn có chứa liên kết ngoài mới. Để giúp tránh các sửa đổi rác tự động, xin hãy gõ hai từ mà bạn nhìn vào ô dưới đây:',
+	'recaptcha-badpass' => 'Để giúp tránh bẻ khóa mật khẩu tự động, xin hãy gõ hai từ mà bạn nhìn vào ô dưới đây:',
+	'recaptcha-createaccount' => 'Để giúp tránh việc mở tài khoản tự động, xin hãy gõ hai từ mà bạn nhìn vào ô dưới đây:',
+	'recaptcha-createaccount-fail' => 'Thiếu câu trả lời reCAPTCHA hoặc câu trả lời không đúng.',
+	'recaptcha-create' => 'Để giúp tránh việc tạo trang tự động, xin hãy gõ hai từ mà bạn nhìn vào ô dưới đây:',
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Hydra
+ * @author Hzy980512
+ */
+$messages['zh-hans'] = array(
+	'recaptcha-edit' => '要帮助保护免受垃圾邮件自动的编辑,请键入您在下面的框中看到这两个词:',
+	'recaptcha-addurl' => '您的编辑包含新的外部链接。为了帮助防止自动垃圾邮件,请键入您在下面的框中看到这两个词:',
+	'recaptcha-badpass' => '为帮助防止自动密码破解,请键入您看到下面的框中的两个字:',
+	'recaptcha-createaccount' => '为了防止自动程序创建账户,请键入您在下面的框中看到的两个词:',
+	'recaptcha-createaccount-fail' => '不正确或缺失的 reCAPTCHA 答案。',
+	'recaptcha-create' => '为了防止自动程序创建页面,请输入您在下面的框中看到的两个词:',
+);
+
+/** Traditional Chinese (‪中文(繁體)‬) */
+$messages['zh-hant'] = array(
+	'recaptcha-edit' => '要幫助保護免受垃圾郵件自動的編輯,請鍵入您在下面的框中看到這兩個詞:',
+	'recaptcha-addurl' => '您的編輯包含新的外部鏈接。為了幫助防止自動垃圾郵件,請鍵入您在下面的框中看到這兩個詞:',
+	'recaptcha-badpass' => '為幫助防止自動密碼破解,請鍵入您看到下面的框中的兩個字:',
+	'recaptcha-createaccount' => '為了幫助防止創建自動化的帳戶,請鍵入您在下面的框中看到的這兩個字:',
+	'recaptcha-createaccount-fail' => '不正確或缺失的 reCAPTCHA 答案。',
+	'recaptcha-create' => '為了幫助防止自動的頁創建,請鍵入您在下面的框中看到這兩個詞:',
+);
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ReCaptcha.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * Captcha class using the reCAPTCHA widget.
+ * Stop Spam. Read Books.
+ *
+ * @addtogroup Extensions
+ * @author Mike Crawford <mike.crawford at gmail.com>
+ * @copyright Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+ * @licence MIT/X11
+ */
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+	exit;
+}
+
+require_once dirname( __FILE__ ) . '/ConfirmEdit.php';
+$wgCaptchaClass = 'ReCaptcha';
+
+$dir = dirname( __FILE__ );
+
+$wgExtensionMessagesFiles['ReCaptcha'] = $dir . '/ReCaptcha.i18n.php';
+
+$wgAutoloadClasses['ReCaptcha'] = $dir . '/ReCaptcha.class.php';
+
+require_once( 'recaptchalib.php' );
+
+// Set these in LocalSettings.php
+$wgReCaptchaPublicKey = '';
+$wgReCaptchaPrivateKey = '';
+// For backwards compatibility
+$recaptcha_public_key = '';
+$recaptcha_private_key = '';
+
+/**
+ * Sets the theme for ReCaptcha
+ *
+ * See http://code.google.com/apis/recaptcha/docs/customization.html
+ */
+$wgReCaptchaTheme = 'red';
+
+$wgExtensionFunctions[] = 'efReCaptcha';
+
+/**
+ * Make sure the keys are defined.
+ */
+function efReCaptcha() {
+	global $wgReCaptchaPublicKey, $wgReCaptchaPrivateKey;
+	global $recaptcha_public_key, $recaptcha_private_key;
+	global $wgServerName;
+
+	// Backwards compatibility
+	if ( $wgReCaptchaPublicKey == '' ) {
+		$wgReCaptchaPublicKey = $recaptcha_public_key;
+	}
+	if ( $wgReCaptchaPrivateKey == '' ) {
+		$wgReCaptchaPrivateKey = $recaptcha_private_key;
+	}
+
+	if ( $wgReCaptchaPublicKey == '' || $wgReCaptchaPrivateKey == '' ) {
+		die ( 'You need to set $wgReCaptchaPrivateKey and $wgReCaptchaPublicKey in LocalSettings.php to ' .
+				"use the reCAPTCHA plugin. You can sign up for a key <a href='" .
+				htmlentities( recaptcha_get_signup_url ( $wgServerName, "mediawiki" ) ) . "'>here</a>." );
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/captcha.py
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/captcha.py	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/captcha.py	2012-06-29 14:46:19 UTC (rev 343)
@@ -16,7 +16,7 @@
 #
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 # http://www.gnu.org/copyleft/gpl.html
 #
 # Further tweaks by Brion Vibber <brion at pobox.com>:
@@ -26,17 +26,24 @@
 # 2008-01-06: Add regex check to skip words containing other than a-z
 
 import random
-import Image
-import ImageFont
-import ImageDraw
-import ImageEnhance
-import ImageOps
-import math, string, md5
-import getopt
+import math
+import hashlib
+from optparse import OptionParser
 import os
 import sys
 import re
 
+try:
+	import Image
+	import ImageFont
+	import ImageDraw
+	import ImageEnhance
+	import ImageOps
+except:
+	sys.exit("This script requires the Python Imaging Library - http://www.pythonware.com/products/pil/")
+
+nonalpha = re.compile('[^a-z]') # regex to test for suitability of words
+
 # Does X-axis wobbly copy, sandwiched between two rotates
 def wobbly_copy(src, wob, col, scale, ang):
 	x, y = src.size
@@ -48,7 +55,6 @@
 	# Do a cheap bounding-box op here to try to limit work below
 	bbx = rot.getbbox()
 	if bbx == None:
-		print "whoops"
 		return src
 	else:
 		l, t, r, b= bbx
@@ -102,13 +108,13 @@
 	# save the image, in format determined from filename
 	im.save(file_name)
 
-def gen_subdir(basedir, hash, levels):
+def gen_subdir(basedir, md5hash, levels):
 	"""Generate a subdirectory path out of the first _levels_
 	characters of _hash_, and ensure the directories exist
 	under _basedir_."""
 	subdir = None
 	for i in range(0, levels):
-		char = hash[i]
+		char = md5hash[i]
 		if subdir:
 			subdir = os.path.join(subdir, char)
 		else:
@@ -124,9 +130,9 @@
 	word = word1+word2
 	if verbose:
 		print "word is %s" % word
-	r = re.compile('[^a-z]');
-	if r.search(word):
-		print "skipping word pair '%s' because it contains non-alphabetic characters" % word
+	if nonalpha.search(word):
+		if verbose:
+			print "skipping word pair '%s' because it contains non-alphabetic characters" % word
 		return None
 
 	for naughty in blacklist:
@@ -137,13 +143,14 @@
 	return word
 
 def pick_word(words, blacklist, verbose):
-	while True:
+	for x in range(1000): # If we can't find a valid combination in 1000 tries, just give up
 		word = try_pick_word(words, blacklist, verbose)
 		if word:
 			return word
+	sys.exit("Unable to find valid word combinations")
 
 def read_wordlist(filename):
-	return [string.lower(x.strip()) for x in open(wordlist).readlines()]
+	return [x.strip().lower() for x in open(wordlist).readlines()]
 
 if __name__ == '__main__':
 	"""This grabs random words from the dictionary 'words' (one
@@ -153,47 +160,51 @@
 	To check a reply, hash it in the same way with the same salt and
 	secret key, then compare with the hash value given.
 	"""
-	font = "VeraBd.ttf"
-	wordlist = "awordlist.txt"
-	blacklistfile = None
-	key = "CHANGE_THIS_SECRET!"
-	output = "."
-	count = 20
-	fill = 0
-	dirs = 0
-	verbose = False
+	parser = OptionParser()
+	parser.add_option("--wordlist", help="A list of words (required)", metavar="WORDS.txt")
+	parser.add_option("--key", help="The passphrase set as $wgCaptchaSecret (required)", metavar="KEY")
+	parser.add_option("--output", help="The directory to put the images in - $wgCaptchaDirectory (required)", metavar="DIR")
+	parser.add_option("--font", help="The font to use (required)", metavar="FONT.ttf")
+	parser.add_option("--font-size", help="The font size (default 40)", metavar="N", type='int', default=40)
+	parser.add_option("--count", help="The maximum number of images to make (default 20)", metavar="N", type='int', default=20)
+	parser.add_option("--blacklist", help="A blacklist of words that should not be used", metavar="FILE")
+	parser.add_option("--fill", help="Fill the output directory to contain N files, overrides count, cannot be used with --dirs", metavar="N", type='int')
+	parser.add_option("--dirs", help="Put the images into subdirectories N levels deep - $wgCaptchaDirectoryLevels", metavar="N", type='int')
+	parser.add_option("--verbose", "-v", help="Show debugging information", action='store_true')	
 	
-	opts, args = getopt.getopt(sys.argv[1:], "", ["font=", "wordlist=", "blacklist=", "key=", "output=", "count=", "fill=", "dirs=", "verbose"])
-	for o, a in opts:
-		if o == "--font":
-			font = a
-		if o == "--wordlist":
-			wordlist = a
-		if o == "--blacklist":
-			blacklistfile = a
-		if o == "--key":
-			key = a
-		if o == "--output":
-			output = a
-		if o == "--count":
-			count = int(a)
-		if o == "--fill":
-			fill = int(a)
-		if o == "--dirs":
-			dirs = int(a)
-		if o == "--verbose":
-			verbose = True
+	opts, args = parser.parse_args()
+
+	if opts.wordlist:
+		wordlist = opts.wordlist
+	else:
+		sys.exit("Need to specify a wordlist")
+	if opts.key:
+		key = opts.key
+	else:
+		sys.exit("Need to specify a key")
+	if opts.output:
+		output = opts.output
+	else:
+		sys.exit("Need to specify an output directory")
+	if opts.font and os.path.exists(opts.font):
+		font = opts.font
+	else:
+		sys.exit("Need to specify the location of a font")
 	
+	blacklistfile = opts.blacklist
+	count = opts.count
+	fill = opts.fill
+	dirs = opts.dirs
+	verbose = opts.verbose
+	fontsize = opts.font_size
+	
 	if fill:
-		# Option processing order is not guaranteed, so count the output
-		# files after...
 		count = max(0, fill - len(os.listdir(output)))
 	
 	words = read_wordlist(wordlist)
 	words = [x for x in words
-		if len(x) <= 5 and len(x) >= 4 and x[0] != "f"
-		and x[0] != x[1] and x[-1] != x[-2]
-		and (not "'" in x)]
+		if len(x) in (4,5) and x[0] != "f"
+		and x[0] != x[1] and x[-1] != x[-2]]
 	
 	if blacklistfile:
 		blacklist = read_wordlist(blacklistfile)
@@ -204,11 +215,12 @@
 		word = pick_word(words, blacklist, verbose)
 		salt = "%08x" % random.randrange(2**32)
 		# 64 bits of hash is plenty for this purpose
-		hash = md5.new(key+salt+word+key+salt).hexdigest()[:16]
-		filename = "image_%s_%s.png" % (salt, hash)
+		md5hash = hashlib.md5(key+salt+word+key+salt).hexdigest()[:16]
+		filename = "image_%s_%s.png" % (salt, md5hash)
 		if dirs:
-			subdir = gen_subdir(output, hash, dirs)
+			subdir = gen_subdir(output, md5hash, dirs)
 			filename = os.path.join(subdir, filename)
 		if verbose:
 			print filename
-		gen_captcha(word, font, 40, os.path.join(output, filename))
+		gen_captcha(word, font, fontsize, os.path.join(output, filename))
+

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ext.confirmedit.asirra.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ext.confirmedit.asirra.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/ext.confirmedit.asirra.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,55 @@
+/*======================================================================*\
+|| #################################################################### ||
+|| # Asirra module for ConfirmEdit by Bachsau                         # ||
+|| # ---------------------------------------------------------------- # ||
+|| # This code is released into public domain, in the hope that it    # ||
+|| # will be useful, but without any warranty.                        # ||
+|| # ------------ YOU CAN DO WITH IT WHATEVER YOU LIKE! ------------- # ||
+|| #################################################################### ||
+\*======================================================================*/
+
+jQuery( function( $ ) {
+	var asirraform = $( "form#userlogin2" )
+	var submitButtonClicked = document.createElement("input");
+	var passThroughFormSubmit = false;
+
+	function PrepareSubmit() {
+		console.log( 'daa' );
+		submitButtonClicked.type = "hidden";
+		var inputFields = asirraform.find( "input" );
+		for (var i=0; i<inputFields.length; i++) {
+			if (inputFields[i].type === "submit") {
+				inputFields[i].onclick = function(event) {
+					console.log( this );
+					submitButtonClicked.name = this.name;
+					submitButtonClicked.value = this.value;
+				}
+			}
+		}
+
+		asirraform.submit( function() {
+			return MySubmitForm();
+		} );
+	}
+
+	function MySubmitForm() {
+		if (passThroughFormSubmit) {
+			return true;
+		}
+		Asirra_CheckIfHuman(HumanCheckComplete);
+		return false;
+	}
+
+	function HumanCheckComplete(isHuman) {
+		if (!isHuman) {
+			alert( mw.msg( 'asirra-failed' ) );
+		} else {
+			asirraform.append(submitButtonClicked);
+			passThroughFormSubmit = true;
+			asirraform.submit();
+		}
+	}
+	
+	PrepareSubmit();
+	
+} );

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/recaptchalib.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/recaptchalib.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-confirmedit/usr/share/mediawiki-extensions/confirmedit/recaptchalib.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,277 @@
+<?php
+/**
+ * This is a PHP library that handles calling reCAPTCHA.
+ *    - Documentation and latest version
+ *          http://recaptcha.net/plugins/php/
+ *    - Get a reCAPTCHA API Key
+ *          https://www.google.com/recaptcha/admin/create
+ *    - Discussion group
+ *          http://groups.google.com/group/recaptcha
+ *
+ * Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+ * AUTHORS:
+ *   Mike Crawford
+ *   Ben Maurer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * The reCAPTCHA server URL's
+ */
+define( "RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api" );
+define( "RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api" );
+define( "RECAPTCHA_VERIFY_SERVER", "www.google.com" );
+
+/**
+ * Encodes the given data into a query string format
+ * @param $data - array of string elements to be encoded
+ * @return string - encoded request
+ */
+function _recaptcha_qsencode ( $data ) {
+        $req = "";
+        foreach ( $data as $key => $value )
+                $req .= $key . '=' . urlencode( stripslashes( $value ) ) . '&';
+
+        // Cut the last '&'
+        $req = substr( $req, 0, strlen( $req ) -1 );
+        return $req;
+}
+
+
+
+/**
+ * Submits an HTTP POST to a reCAPTCHA server
+ * @param string $host
+ * @param string $path
+ * @param array $data
+ * @param int port
+ * @return array response
+ */
+function _recaptcha_http_post( $host, $path, $data, $port = 80 ) {
+
+        $req = _recaptcha_qsencode ( $data );
+
+        $http_request  = "POST $path HTTP/1.0\r\n";
+        $http_request .= "Host: $host\r\n";
+        $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
+        $http_request .= "Content-Length: " . strlen( $req ) . "\r\n";
+        $http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
+        $http_request .= "\r\n";
+        $http_request .= $req;
+
+        $response = '';
+        if ( false == ( $fs = @fsockopen( $host, $port, $errno, $errstr, 10 ) ) ) {
+                die ( 'Could not open socket' );
+        }
+
+        fwrite( $fs, $http_request );
+
+        while ( !feof( $fs ) )
+                $response .= fgets( $fs, 1160 ); // One TCP-IP packet
+        fclose( $fs );
+        $response = explode( "\r\n\r\n", $response, 2 );
+
+        return $response;
+}
+
+
+
+/**
+ * Gets the challenge HTML (javascript and non-javascript version).
+ * This is called from the browser, and the resulting reCAPTCHA HTML widget
+ * is embedded within the HTML form it was called from.
+ * @param string $pubkey A public key for reCAPTCHA
+ * @param string $error The error given by reCAPTCHA (optional, default is null)
+ * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false)
+
+ * @return string - The HTML to be embedded in the user's form.
+ */
+function recaptcha_get_html ( $pubkey, $error = null, $use_ssl = false )
+{
+	if ( $pubkey == null || $pubkey == '' ) {
+		die ( "To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>" );
+	}
+
+	if ( $use_ssl ) {
+                $server = RECAPTCHA_API_SECURE_SERVER;
+        } else {
+                $server = RECAPTCHA_API_SERVER;
+        }
+
+        $errorpart = "";
+        if ( $error ) {
+           $errorpart = "&error=" . $error;
+        }
+        return '<script type="text/javascript" src="' . $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
+
+	<noscript>
+  		<iframe src="' . $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
+  		<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
+  		<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
+	</noscript>';
+}
+
+
+
+
+/**
+ * A ReCaptchaResponse is returned from recaptcha_check_answer()
+ */
+class ReCaptchaResponse {
+        var $is_valid;
+        var $error;
+}
+
+
+/**
+  * Calls an HTTP POST function to verify if the user's guess was correct
+  * @param string $privkey
+  * @param string $remoteip
+  * @param string $challenge
+  * @param string $response
+  * @param array $extra_params an array of extra variables to post to the server
+  * @return ReCaptchaResponse
+  */
+function recaptcha_check_answer ( $privkey, $remoteip, $challenge, $response, $extra_params = array() )
+{
+	if ( $privkey == null || $privkey == '' ) {
+		die ( "To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>" );
+	}
+
+	if ( $remoteip == null || $remoteip == '' ) {
+		die ( "For security reasons, you must pass the remote ip to reCAPTCHA" );
+	}
+
+
+
+        // discard spam submissions
+        if ( $challenge == null || strlen( $challenge ) == 0 || $response == null || strlen( $response ) == 0 ) {
+                $recaptcha_response = new ReCaptchaResponse();
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = 'incorrect-captcha-sol';
+                return $recaptcha_response;
+        }
+
+        $response = _recaptcha_http_post ( RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
+                                          array (
+                                                 'privatekey' => $privkey,
+                                                 'remoteip' => $remoteip,
+                                                 'challenge' => $challenge,
+                                                 'response' => $response
+                                                 ) + $extra_params
+                                          );
+
+        $answers = explode ( "\n", $response [1] );
+        $recaptcha_response = new ReCaptchaResponse();
+
+        if ( trim ( $answers [0] ) == 'true' ) {
+                $recaptcha_response->is_valid = true;
+        }
+        else {
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = $answers [1];
+        }
+        return $recaptcha_response;
+
+}
+
+/**
+ * gets a URL where the user can sign up for reCAPTCHA. If your application
+ * has a configuration page where you enter a key, you should provide a link
+ * using this function.
+ * @param string $domain The domain where the page is hosted
+ * @param string $appname The name of your application
+ */
+function recaptcha_get_signup_url ( $domain = null, $appname = null ) {
+	return "https://www.google.com/recaptcha/admin/create?" .  _recaptcha_qsencode ( array ( 'domains' => $domain, 'app' => $appname ) );
+}
+
+function _recaptcha_aes_pad( $val ) {
+	$block_size = 16;
+	$numpad = $block_size - ( strlen ( $val ) % $block_size );
+	return str_pad( $val, strlen ( $val ) + $numpad, chr( $numpad ) );
+}
+
+/* Mailhide related code */
+
+function _recaptcha_aes_encrypt( $val, $ky ) {
+	if ( ! function_exists ( "mcrypt_encrypt" ) ) {
+		die ( "To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed." );
+	}
+	$mode = MCRYPT_MODE_CBC;
+	$enc = MCRYPT_RIJNDAEL_128;
+	$val = _recaptcha_aes_pad( $val );
+	return mcrypt_encrypt( $enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" );
+}
+
+
+function _recaptcha_mailhide_urlbase64 ( $x ) {
+	return strtr( base64_encode ( $x ), '+/', '-_' );
+}
+
+/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */
+function recaptcha_mailhide_url( $pubkey, $privkey, $email ) {
+	if ( $pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null ) {
+		die ( "To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
+		     "you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>" );
+	}
+
+
+	$ky = pack( 'H*', $privkey );
+	$cryptmail = _recaptcha_aes_encrypt ( $email, $ky );
+
+	return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ( $cryptmail );
+}
+
+/**
+ * gets the parts of the email to expose to the user.
+ * eg, given johndoe at example,com return ["john", "example.com"].
+ * the email is then displayed as john... at example.com
+ */
+function _recaptcha_mailhide_email_parts ( $email ) {
+	$arr = preg_split( "/@/", $email );
+
+	if ( strlen ( $arr[0] ) <= 4 ) {
+		$arr[0] = substr ( $arr[0], 0, 1 );
+	} elseif ( strlen ( $arr[0] ) <= 6 ) {
+		$arr[0] = substr ( $arr[0], 0, 3 );
+	} else {
+		$arr[0] = substr ( $arr[0], 0, 4 );
+	}
+	return $arr;
+}
+
+/**
+ * Gets html to display an email address given a public an private key.
+ * to get a key, go to:
+ *
+ * http://www.google.com/recaptcha/mailhide/apikey
+ */
+function recaptcha_mailhide_html( $pubkey, $privkey, $email ) {
+	$emailparts = _recaptcha_mailhide_email_parts ( $email );
+	$url = recaptcha_mailhide_url ( $pubkey, $privkey, $email );
+
+	return htmlentities( $emailparts[0] ) . "<a href='" . htmlentities ( $url ) .
+		"' onclick=\"window.open('" . htmlentities ( $url ) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ( $emailparts [1] );
+
+}
+
+
+?>

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/doc/mediawiki-extensions/geshi/README
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/doc/mediawiki-extensions/geshi/README	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/doc/mediawiki-extensions/geshi/README	2012-06-29 14:46:19 UTC (rev 343)
@@ -4,8 +4,22 @@
 
     http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi
 
+== Requirements ==
+
+This version of the extension has been tested with GeSHi 1.0.8.10 and MediaWiki 1.18
+as of 2011-02-19. It may or may not work with earlier versions of the aforementioned
+software. To get releases of this extension compatible with earlier versions of
+MediaWiki, visit: 
+
+    http://www.mediawiki.org/wiki/Special:ExtensionDistributor/SyntaxHighlight_GeSHi
+
+
 == Installation ==
 
+If you downloaded this from MediaWiki.org, there should already be
+a 'geshi' directory in this folder. If there is, you can skip the next
+paragraph.
+
 Download the latest stable build from
 http://sourceforge.net/project/showfiles.php?group_id=114997, and unzip it into
 your extensions/SyntaxHighlight_GeSHi/ directory. (Note: the zip file creates a 
@@ -20,7 +34,7 @@
 into your extensions/SyntaxHighlight_GeSHi/ directory. Then invoke the command 
 to obtain the latest build of the GeSHi code:
 
-	svn checkout http://geshi.svn.sourceforge.net/svnroot/geshi/trunk/geshi-1.0.X/src/ geshi
+	svn checkout https://geshi.svn.sourceforge.net/svnroot/geshi/trunk/geshi-1.0.X/src/ geshi
 
 If needed, change the following line on SyntaxHighlight_GeSHi.class.php to 
 suit the path of your geshi.php file
@@ -36,7 +50,7 @@
     v = "string";    // sample initialization
 ?>
 html text
-<?
+<?php
     echo v;         // end of php code
 ?>
 </source>

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.class.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.class.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.class.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -21,21 +21,44 @@
 	 * @return string
 	 */
 	public static function parserHook( $text, $args = array(), $parser ) {
+		global $wgSyntaxHighlightDefaultLang, $wgUseSiteCss, $wgUseTidy;
+		wfProfileIn( __METHOD__ );
 		self::initialise();
 		$text = rtrim( $text );
 		// Don't trim leading spaces away, just the linefeeds
 		$text = preg_replace( '/^\n+/', '', $text );
+
+		if( $wgUseTidy ) {
+			// HTML Tidy will convert tabs to spaces incorrectly (bug 30930).
+			// Preemptively replace the spaces in a more controlled fashion.
+			$text = self::tabsToSpaces( $text );
+		}
+
 		// Validate language
-		if( isset( $args['lang'] ) ) {
-			$lang = strtolower( $args['lang'] );
+		if( isset( $args['lang'] ) && $args['lang'] ) {
+			$lang = $args['lang'];
 		} else {
-			return self::formatError( htmlspecialchars( wfMsgForContent( 'syntaxhighlight-err-language' ) ) );
+			// language is not specified. Check if default exists, if yes, use it.
+			if ( !is_null( $wgSyntaxHighlightDefaultLang ) ) {
+				$lang = $wgSyntaxHighlightDefaultLang;
+			} else {
+				$error = self::formatLanguageError( $text );
+				wfProfileOut( __METHOD__ );
+				return $error;
+			}
 		}
-		if( !preg_match( '/^[a-z_0-9-]*$/', $lang ) )
-			return self::formatError( htmlspecialchars( wfMsgForContent( 'syntaxhighlight-err-language' ) ) );
+		$lang = strtolower( $lang );
+		if( !preg_match( '/^[a-z_0-9-]*$/', $lang ) ) {
+			$error = self::formatLanguageError( $text );
+			wfProfileOut( __METHOD__ );
+			return $error;
+		}
 		$geshi = self::prepare( $text, $lang );
-		if( !$geshi instanceof GeSHi )
-			return self::formatError( htmlspecialchars( wfMsgForContent( 'syntaxhighlight-err-language' ) ) );
+		if( !$geshi instanceof GeSHi ) {
+			$error = self::formatLanguageError( $text );
+			wfProfileOut( __METHOD__ );
+			return $error;
+		}
 
 		$enclose = self::getEncloseType( $args );
 
@@ -46,42 +69,86 @@
 		// Highlighting specific lines
 		if( isset( $args['highlight'] ) ) {
 			$lines = self::parseHighlightLines( $args['highlight'] );
-			if ( count($lines) ) $geshi->highlight_lines_extra( $lines );
+			if ( count( $lines ) ) {
+				$geshi->highlight_lines_extra( $lines );
+			}
 		}
 		// Starting line number
-		if( isset( $args['start'] ) )
+		if( isset( $args['start'] ) ) {
 			$geshi->start_line_numbers_at( $args['start'] );
+		}
 		$geshi->set_header_type( $enclose );
 		// Strict mode
-		if( isset( $args['strict'] ) )
+		if( isset( $args['strict'] ) ) {
 			$geshi->enable_strict_mode();
+		}
 		// Format
 		$out = $geshi->parse_code();
+		if ( $geshi->error == GESHI_ERROR_NO_SUCH_LANG ) {
+			// Common error :D
+			$error = self::formatLanguageError( $text );
+			wfProfileOut( __METHOD__ );
+			return $error;
+		}
 		$err = $geshi->error();
 		if( $err ) {
-			// Error!
-			return self::formatError( $err );
+			// Other unknown error!
+			$error = self::formatError( $err );
+			wfProfileOut( __METHOD__ );
+			return $error;
+		}
+		// Armour for Parser::doBlockLevels()
+		if( $enclose === GESHI_HEADER_DIV ) {
+			$out = str_replace( "\n", '', $out );
+		}
+		// Register CSS
+		$parser->getOutput()->addHeadItem( self::buildHeadItem( $geshi ), "source-{$lang}" );
+
+		if( $wgUseSiteCss ) {
+			$parser->getOutput()->addModuleStyles( 'ext.geshi.local' );
+		}
+
+		$encloseTag = $enclose === GESHI_HEADER_NONE ? 'span' : 'div';
+		$attribs = Sanitizer::validateTagAttributes( $args, $encloseTag );
+
+		//lang is valid in HTML context, but also used on GeSHi
+		unset( $attribs['lang'] );
+
+		if ( $enclose === GESHI_HEADER_NONE ) {
+			$attribs = self::addAttribute( $attribs, 'class', 'mw-geshi ' . $lang . ' source-' . $lang );
 		} else {
-			// Armour for Parser::doBlockLevels()
-			if( $enclose === GESHI_HEADER_DIV )
-				$out = str_replace( "\n", '', $out );
-			// Register CSS
-			$parser->mOutput->addHeadItem( self::buildHeadItem( $geshi ), "source-{$lang}" );
-			if ( $enclose === GESHI_HEADER_NONE ) {
-				return '<span class="'.$lang.' source-'.$lang.'"> '.$out . '</span>';
-			} else {
-				return '<div dir="ltr" style="text-align: left;">' . $out . '</div>';
-			}
+			// Default dir="ltr" (but allow dir="rtl", although unsure if needed)
+			$attribs['dir'] = isset( $attribs['dir'] ) && $attribs['dir'] === 'rtl' ? 'rtl' : 'ltr';
+			$attribs = self::addAttribute( $attribs, 'class', 'mw-geshi mw-content-' . $attribs['dir'] );
 		}
+		$out = Xml::tags( $encloseTag, $attribs, $out );
+
+		wfProfileOut( __METHOD__ );
+		return $out;
 	}
-	
+
 	/**
+	 * @param $attribs array
+	 * @param $name string
+	 * @param $value string
+	 * @return array
+	 */
+	private static function addAttribute( $attribs, $name, $value ) {
+		if( isset( $attribs[$name] ) ) {
+			$attribs[$name] = $value . ' ' . $attribs[$name];
+		} else {
+			$attribs[$name] = $value;
+		}
+		return $attribs;
+	}
+
+	/**
 	 * Take an input specifying a list of lines to highlight, returning
 	 * a raw list of matching line numbers.
 	 *
 	 * Input is comma-separated list of lines or line ranges.
 	 *
-	 * @input string
+	 * @param $arg string
 	 * @return array of ints
 	 */
 	protected static function parseHighlightLines( $arg ) {
@@ -105,9 +172,12 @@
 		}
 		return $lines;
 	}
-	
+
 	/**
 	 * Validate a provided input range
+	 * @param $start
+	 * @param $end
+	 * @return bool
 	 */
 	protected static function validHighlightRange( $start, $end ) {
 		// Since we're taking this tiny range and producing a an
@@ -124,6 +194,10 @@
 			$end - $start < $arbitrarilyLargeConstant;
 	}
 
+	/**
+	 * @param $args array
+	 * @return int
+	 */
 	static function getEncloseType( $args ) {
 		// Since version 1.0.8 geshi can produce valid pre, but we need to check for it
 		if ( defined('GESHI_HEADER_PRE_VALID') ) {
@@ -161,7 +235,9 @@
 	 * @return bool
 	 */
 	public static function viewHook( $text, $title, $output ) {
+		global $wgUseSiteCss;
 		// Determine the language
+		$matches = array();
 		preg_match( '!\.(css|js)$!u', $title->getText(), $matches );
 		$lang = $matches[1] == 'css' ? 'css' : 'javascript';
 		// Attempt to format
@@ -172,6 +248,9 @@
 				// Done
 				$output->addHeadItem( "source-$lang", self::buildHeadItem( $geshi ) );
 				$output->addHTML( "<div dir=\"ltr\">{$out}</div>" );
+				if( $wgUseSiteCss ) {
+					$output->addModuleStyles( 'ext.geshi.local' );
+				}
 				return false;
 			}
 		}
@@ -187,11 +266,12 @@
 	 * @param string $lang
 	 * @return GeSHi
 	 */
-	private static function prepare( $text, $lang ) {
+	public static function prepare( $text, $lang ) {
 		self::initialise();
 		$geshi = new GeSHi( $text, $lang );
-		if( $geshi->error() == GESHI_ERROR_NO_SUCH_LANG )
+		if( $geshi->error() == GESHI_ERROR_NO_SUCH_LANG ) {
 			return null;
+		}
 		$geshi->set_encoding( 'UTF-8' );
 		$geshi->enable_classes();
 		$geshi->set_overall_class( "source-$lang" );
@@ -206,9 +286,10 @@
 	 * @param GeSHi $geshi
 	 * @return string
 	 */
-	private static function buildHeadItem( $geshi ) {
+	public static function buildHeadItem( $geshi ) {
 		global $wgUseSiteCss, $wgSquidMaxage;
 		$lang = $geshi->language;
+		$css = array();
 		$css[] = '<style type="text/css">/*<![CDATA[*/';
 		$css[] = ".source-$lang {line-height: normal;}";
 		$css[] = ".source-$lang li, .source-$lang pre {";
@@ -217,18 +298,22 @@
 		$css[] = $geshi->get_stylesheet( false );
 		$css[] = '/*]]>*/';
 		$css[] = '</style>';
-		if( $wgUseSiteCss ) {
-			$title = Title::makeTitle( NS_MEDIAWIKI, 'Geshi.css' );
-			$q = "usemsgcache=yes&action=raw&ctype=text/css&smaxage={$wgSquidMaxage}";
-			$css[] = '<style type="text/css">/*<![CDATA[*/';
-			$css[] = '@import "' . $title->getLocalUrl( $q ) . '";';
-			$css[] = '/*]]>*/';
-			$css[] = '</style>';
-		}
 		return implode( "\n", $css );
 	}
 
 	/**
+	 * Format an 'unknown language' error message and append formatted
+	 * plain text to it.
+	 *
+	 * @param string $text
+	 * @return string HTML fragment
+	 */
+	private static function formatLanguageError( $text ) {
+		$error = self::formatError( htmlspecialchars( wfMsgForContent( 'syntaxhighlight-err-language' ) ), $text );
+		return $error . '<pre>' . htmlspecialchars( $text ) . '</pre>';
+	}
+
+	/**
 	 * Format an error message
 	 *
 	 * @param string $error
@@ -236,8 +321,9 @@
 	 */
 	private static function formatError( $error = '' ) {
 		$html = '';
-		if( $error )
+		if( $error ) {
 			$html .= "<p>{$error}</p>";
+		}
 		$html .= '<p>' . htmlspecialchars( wfMsgForContent( 'syntaxhighlight-specify' ) )
 			. ' <samp><source lang="html4strict">...</source></samp></p>'
 			. '<p>' . htmlspecialchars( wfMsgForContent( 'syntaxhighlight-supported' ) ) . '</p>'
@@ -257,7 +343,7 @@
 			foreach( $langs as $lang ) {
 				$list[] = '<samp>' . htmlspecialchars( $lang ) . '</samp>';
 			}
-			return '<p style="padding: 0em 1em;">' . implode( ', ', $list ) . '</p>';
+			return '<p class="mw-collapsible mw-collapsed" style="padding: 0em 1em;">' . implode( ', ', $list ) . '</p><br style="clear: all"/>';
 		} else {
 			return '<p>' . htmlspecialchars( wfMsgForContent( 'syntaxhighlight-err-loading' ) ) . '</p>';
 		}
@@ -282,14 +368,68 @@
 
 	/**
 	 * Initialise messages and ensure the GeSHi class is loaded
+	 * @return bool
 	 */
 	private static function initialise() {
 		if( !self::$initialised ) {
-			wfLoadExtensionMessages( 'SyntaxHighlight_GeSHi' );
-			if( !class_exists( 'GeSHi' ) )
+			if( !class_exists( 'GeSHi' ) ) {
 				require( 'geshi/geshi.php' );
+			}
 			self::$initialised = true;
 		}
 		return true;
 	}
+
+	/**
+	 * Get the GeSHI's version information while Special:Version is read.
+	 * @param $extensionTypes
+	 * @return bool
+	 */
+	public static function hSpecialVersion_GeSHi( &$extensionTypes ) {
+		global $wgExtensionCredits;
+		self::initialise();
+		$wgExtensionCredits['parserhook']['SyntaxHighlight_GeSHi']['version'] = GESHI_VERSION;
+		return true;
+	}
+
+	/**
+	 * @see SyntaxHighlight_GeSHi::hSpecialVersion_GeSHi
+	 * @param $sp
+	 * @param $extensionTypes
+	 * @return bool
+	 */
+	public static function hOldSpecialVersion_GeSHi( &$sp, &$extensionTypes ) {
+		return self::hSpecialVersion_GeSHi( $extensionTypes );
+	}
+
+	/**
+	 * Convert tabs to spaces
+	 *
+	 * @param string $text
+	 * @return string
+	 */
+	private static function tabsToSpaces( $text ) {
+		$lines = explode( "\n", $text );
+		$lines = array_map( array( __CLASS__, 'tabsToSpacesLine' ), $lines );
+		return implode( "\n", $lines );
+	}
+
+	/**
+	 * Convert tabs to spaces for a single line
+	 *
+	 * @param $line
+	 * @internal param string $text
+	 * @return string
+	 */
+	private static function tabsToSpacesLine( $line ) {
+		$parts = explode( "\t", $line );
+		$width = 8; // To match tidy's config & typical browser defaults
+		$out = $parts[0];
+		foreach( array_slice( $parts, 1 ) as $chunk ) {
+			$spaces = $width - (strlen( $out ) % $width);
+			$out .= str_repeat( ' ', $spaces );
+			$out .= $chunk;
+		}
+		return $out;
+	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -2,8 +2,9 @@
 /**
  * Internationalisation file for extension SyntaxHighlight.
  *
- * @addtogroup Extensions
-*/
+ * @file
+ * @ingroup Extensions
+ */
 
 $messages = array();
 
@@ -11,7 +12,7 @@
  * @author Brion Vibber
  */
 $messages['en'] = array(
-	'syntaxhighlight-desc'         => 'Provides syntax highlighting <tt><nowiki><source></nowiki></tt> using [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc'         => 'Provides syntax highlighting <code><syntaxhighlight></code> using [http://qbnz.com/highlighter/ GeSHi - Generic Syntax Highlighter]',
 	'syntaxhighlight-specify'      => 'You need to specify a language like this:',
 	'syntaxhighlight-supported'    => 'Supported languages for syntax highlighting:',
 	'syntaxhighlight-err-loading'  => '(error loading supported language list)',
@@ -21,15 +22,21 @@
 
 /** Message documentation (Message documentation)
  * @author Meno25
+ * @author The Evil IP address
  */
 $messages['qqq'] = array(
-	'syntaxhighlight-desc' => 'Short description of the SyntaxHighlight extension, shown on [[Special:Version]]. Do not translate or change links.',
+	'syntaxhighlight-desc' => '{{desc}}',
 );
 
 /** Afrikaans (Afrikaans)
+ * @author Naudefj
  * @author SPQRobin
+ * @author පසිඳු කාවින්ද
  */
 $messages['af'] = array(
+	'syntaxhighlight-specify' => "U moet 'n taal as volg spesifiseer:",
+	'syntaxhighlight-supported' => 'Ondersteunde tale vir accentuering:',
+	'syntaxhighlight-err-loading' => '(fout met die laai van die lys van ondersteunde tale)',
 	'syntaxhighlight-err-language' => 'Ongeldige taal.',
 );
 
@@ -37,19 +44,19 @@
  * @author Juanpabl
  */
 $messages['an'] = array(
-	'syntaxhighlight-desc' => 'Premite o resalte sintactico <tt><nowiki><source></nowiki></tt> usando [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Premite o resalte sintactico <code><syntaxhighlight></code> usando [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => "Ha d'endicar un lenguache asinas:",
 	'syntaxhighlight-supported' => 'Lenguaches suportatos ta o resalte sintactico:',
-	'syntaxhighlight-err-loading' => '(error cargando a lista de lenguaches suportatos)',
-	'syntaxhighlight-err-language' => 'Lenguache incorreuto.',
-	'geshi.css' => "/* Iste codigo CSS s'aplicará ta destacar a sintacsis GeSHi*/",
+	'syntaxhighlight-err-loading' => '(error en cargar a lista de luengaches suportatos)',
+	'syntaxhighlight-err-language' => 'Luengache invalido.',
+	'geshi.css' => "/* Iste codigo CSS s'aplicará ta destacar a sintaxi GeSHi*/",
 );
 
 /** Arabic (العربية)
  * @author Meno25
  */
 $messages['ar'] = array(
-	'syntaxhighlight-desc' => 'يوفر تعليم النص <tt><nowiki><source></nowiki></tt> باستخدام [http://qbnz.com/highlighter/ معلم GeSHi]',
+	'syntaxhighlight-desc' => 'يوفر تعليم النص <code><syntaxhighlight></code> باستخدام [http://qbnz.com/highlighter/ معلم GeSHi]',
 	'syntaxhighlight-specify' => 'يجب عليك تحديد لغة مثل هذه:',
 	'syntaxhighlight-supported' => 'اللغات المدعومة لتظليل الصياغة:',
 	'syntaxhighlight-err-loading' => '(خطأ في تحميل قائمة اللغات المدعومة)',
@@ -62,7 +69,7 @@
  * @author Ramsis II
  */
 $messages['arz'] = array(
-	'syntaxhighlight-desc' => 'بيوفر تظليل السينتاكس <tt><nowiki><source></nowiki></tt> باستعمال [http://qbnz.com/highlighter/ GeSHi مظلل]',
+	'syntaxhighlight-desc' => 'بيوفر تظليل السينتاكس <code><syntaxhighlight></code> باستعمال [http://qbnz.com/highlighter/ GeSHi مظلل]',
 	'syntaxhighlight-specify' => 'انت لازم تحدد لغة زى كدا:',
 	'syntaxhighlight-supported' => 'اللغات المدعومة لتظليل السينتاكس:',
 	'syntaxhighlight-err-loading' => '(غلط فى تحميل لستة اللغات المدعومة)',
@@ -74,7 +81,7 @@
  * @author Esbardu
  */
 $messages['ast'] = array(
-	'syntaxhighlight-desc' => 'Proporciona resaltáu de sintaxis <tt><nowiki><source></nowiki></tt> usando [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Proporciona resaltáu de sintaxis <code><syntaxhighlight></code> usando [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Necesites conseñar una llingua como esta:',
 	'syntaxhighlight-supported' => 'Llingües sofitaes pa la sintaxis en colores:',
 	'syntaxhighlight-err-loading' => '(error al cargar la llista de llingües sofitaes)',
@@ -82,11 +89,23 @@
 	'geshi.css' => '/* El códigu CSS allugáu equí va ser aplicáu por GeSHi pa la sintaxis en colores */',
 );
 
+/** Bashkir (Башҡортса)
+ * @author Assele
+ */
+$messages['ba'] = array(
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] ярҙамында синтаксисты айырып күрһәтеү өсөн <code><syntaxhighlight></code> билдәһен ҡулланыу мөмкинлеген бирә',
+	'syntaxhighlight-specify' => 'Һеҙ телде түбәндәгесә күрһәтергә тейешһегеҙ:',
+	'syntaxhighlight-supported' => 'Синтаксисты айырып күрһәтеү мөмкин булған телдәр:',
+	'syntaxhighlight-err-loading' => '(телдәр исемлеген сығарыу хатаһы)',
+	'syntaxhighlight-err-language' => 'Тел дөрөҫ түгел.',
+	'geshi.css' => '/* Бында ҡуйылған CSS-код систанксисты GeSHi ярҙамында айырып күрһәтеү өсөн ҡулланыласаҡ */',
+);
+
 /** Southern Balochi (بلوچی مکرانی)
  * @author Mostafadaneshvar
  */
 $messages['bcc'] = array(
-	'syntaxhighlight-desc' => 'ساختار پررنگی آریت <tt><nowiki><source></nowiki></tt> گون استفاده چه[http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'ساختار پررنگی آریت <code><syntaxhighlight></code> گون استفاده چه[http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'لازمنت شما یک زبانی په داب شی مشخض کنیت:',
 	'syntaxhighlight-supported' => 'حمایتی زبانان په ساختار پررنگی:',
 	'syntaxhighlight-err-loading' => '(حطا ته بار کتن لیست زبان داشتگین)',
@@ -94,12 +113,12 @@
 	'geshi.css' => '/* CSS که ادان هستن ته ساختار جی شی پررنگ کتن کارمرز بین */',
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  */
 $messages['be-tarask'] = array(
-	'syntaxhighlight-desc' => 'Дазваляе выкарыстоўваць тэг  <tt><nowiki><source></nowiki></tt> для падсьветкі сынтаксісу з дапамогай [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Дазваляе выкарыстоўваць тэг  <code><syntaxhighlight></code> для падсьветкі сынтаксісу з дапамогай [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Вам неабходна пазначыць мову наступным чынам:',
 	'syntaxhighlight-supported' => 'Мовы, якія падтрымліваюцца для праверкі сынтаксісу:',
 	'syntaxhighlight-err-loading' => '(памылка загрузкі сьпісу моваў)',
@@ -110,8 +129,10 @@
 /** Bulgarian (Български)
  * @author Borislav
  * @author DCLXVI
+ * @author Turin
  */
 $messages['bg'] = array(
+	'syntaxhighlight-desc' => 'Осигурява синтактично осветяване на <code><syntaxhighlight></code> чрез [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Нужно е да укажете език по следния начин:',
 	'syntaxhighlight-supported' => 'Поддържани езици за синтактично открояване:',
 	'syntaxhighlight-err-loading' => '(грешка при зареждането на списъка на поддържаните езици)',
@@ -123,7 +144,7 @@
  * @author Zaheen
  */
 $messages['bn'] = array(
-	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi হাইলাইটার] ব্যবহার করে <tt><nowiki><source></nowiki></tt> সিনট্যাক্স হাইলাইটিং-এর ক্ষমতা দেয়',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi হাইলাইটার] ব্যবহার করে <code><syntaxhighlight></code> সিনট্যাক্স হাইলাইটিং-এর ক্ষমতা দেয়',
 	'syntaxhighlight-specify' => 'আপনাকে এভাবে একটি ভাষা নির্দিষ্ট করতে হবে:',
 	'syntaxhighlight-supported' => 'যেসব ভাষার জন্য সিনট্যাক্স হাইলাইটিং সমর্থিত:',
 	'syntaxhighlight-err-loading' => '(সমর্থিত ভাষার তালিকা আনতে ত্রুটি)',
@@ -135,15 +156,19 @@
  * @author Fulup
  */
 $messages['br'] = array(
+	'syntaxhighlight-desc' => 'Talvezout a ra da lakaat an ereadur war wel dre ar valizenn <code><syntaxhighlight></code> en ur ober gant [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => "Ret eo deoc'h spisaat ur yezh evel-henn :",
+	'syntaxhighlight-supported' => 'Yezhoù skoret evit al livadur ereadurel :',
+	'syntaxhighlight-err-loading' => '(fazi en ur gargañ roll ar yezhoù skoret)',
 	'syntaxhighlight-err-language' => 'Yezh direizh.',
+	'geshi.css' => "/* Talvezout a raio ar c'hod CSS lakaet amañ d'al livadur ereadurel GeSHi */",
 );
 
 /** Bosnian (Bosanski)
  * @author CERminator
  */
 $messages['bs'] = array(
-	'syntaxhighlight-desc' => 'Omogućava isticanje sintakse <tt><nowiki><source></nowiki></tt> uz pomoć [http://qbnz.com/highlighter/ GeSHi Highlightera]',
+	'syntaxhighlight-desc' => 'Omogućava isticanje sintakse <code><syntaxhighlight></code> uz pomoć [http://qbnz.com/highlighter/ GeSHi Highlightera]',
 	'syntaxhighlight-specify' => 'Potrebno je da specificirate jezik ovako:',
 	'syntaxhighlight-supported' => 'Podržani jezici za isticanje sintakse:',
 	'syntaxhighlight-err-loading' => '(greška pri korištenju spiska podržanih jezika)',
@@ -153,21 +178,30 @@
 
 /** Catalan (Català)
  * @author SMP
+ * @author Solde
  */
 $messages['ca'] = array(
-	'syntaxhighlight-desc' => "Proveeix de ressaltat sintàctic amb l'etiqueta <tt><nowiki><source></nowiki></tt> usant el programa [http://qbnz.com/highlighter/ GeSHi]",
+	'syntaxhighlight-desc' => "Proveeix de ressaltat sintàctic amb l'etiqueta <code><syntaxhighlight></code> usant el programa [http://qbnz.com/highlighter/ GeSHi]",
 	'syntaxhighlight-specify' => "Heu d'especificar un dels llenguatges:",
 	'syntaxhighlight-supported' => 'Llenguatges admesos per al ressaltament sintàctic:',
 	'syntaxhighlight-err-loading' => '(error en carregar la llista de llenguatges)',
 	'syntaxhighlight-err-language' => 'Llenguatge invàlid.',
+	'geshi.css' => '/* El CSS ubicat aquí serà aplicat al ressaltat de sintaxi de GeSHi */',
 );
 
+/** Chechen (Нохчийн)
+ * @author Sasan700
+ */
+$messages['ce'] = array(
+	'geshi.css' => '/* CSS-ишар, кху чу хlоттайахь, оцо болх бийра бу сизашдо беснашна хlокхуньца GeSHI */',
+);
+
 /** Czech (Česky)
  * @author Li-sung
  * @author Matěj Grabovský
  */
 $messages['cs'] = array(
-	'syntaxhighlight-desc' => 'Poskytuje zvýrazňování syntaxe <tt><source></tt> pomocí [http://qnbz.com/higlighter zvýrazňovače GeSHi]',
+	'syntaxhighlight-desc' => 'Poskytuje zvýrazňování syntaxe <code><syntaxhighlight></code> pomocí [http://qnbz.com/higlighter zvýrazňovače GeSHi]',
 	'syntaxhighlight-specify' => 'Musíte určit jazyk tímto způsobem:',
 	'syntaxhighlight-supported' => 'Seznam jazyků, u kterých je podporováno zvýrazňování syntaxe:',
 	'syntaxhighlight-err-loading' => '(chyba při načítání seznamu podporovaných jazyků)',
@@ -175,23 +209,43 @@
 	'geshi.css' => '/* Zde uvedené CSS bude ovlivňovat zvýrazňování syntaxe GeSHi */',
 );
 
+/** Danish (Dansk)
+ * @author Sarrus
+ */
+$messages['da'] = array(
+	'syntaxhighlight-err-language' => 'Ugyldigt sprog.',
+);
+
 /** German (Deutsch)
+ * @author Kghbln
  * @author Raimond Spekking
  */
 $messages['de'] = array(
-	'syntaxhighlight-desc' => 'Syntax-Hervorhebung <tt><nowiki><source></nowiki></tt> mit Hilfe des [http://qbnz.com/highlighter/ GeSHi-Highlighters]',
+	'syntaxhighlight-desc' => 'Ergänzt das Tag <code><syntaxhighlight></code> zur Syntaxhervorhebung mit Hilfe des [http://qbnz.com/highlighter/ Generic Syntax Highlighter (GeSHi)]',
 	'syntaxhighlight-specify' => 'Die gewünschte Sprache muss wie folgt definiert werden:',
-	'syntaxhighlight-supported' => 'Unterstützte Sprachen für die Syntax-Hervorhebung:',
+	'syntaxhighlight-supported' => 'Unterstützte Sprachen für die Syntaxhervorhebung:',
 	'syntaxhighlight-err-loading' => '(Fehler beim Laden der Sprachenliste)',
 	'syntaxhighlight-err-language' => 'Ungültige Sprache.',
 	'geshi.css' => '/* CSS in dieser MediaWiki-Systemnachricht wird auf die GeSHi-Syntaxhervorhebung angewendet */',
 );
 
+/** Zazaki (Zazaki)
+ * @author Aspar
+ */
+$messages['diq'] = array(
+	'syntaxhighlight-desc' => 'pê şuxulnayişê [http://qbnz.com/highlighter/ GeSHi Highlighter] i rêza <code><syntaxhighlight></code> i işaret beno',
+	'syntaxhighlight-specify' => 'zey ıni yew zıwan bıvıcinê:',
+	'syntaxhighlight-supported' => 'zıwanê ke rêzvateyê eyi destek beni',
+	'syntaxhighlight-err-loading' => '(zıwanê ke destek geni, wexata bar biyene xeta da)',
+	'syntaxhighlight-err-language' => 'zıwano nemeqbul',
+	'geshi.css' => 'CSS o ke tiya /* de yo, işaretê rêzvateyê GeSHi tetbiq beno */',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
-	'syntaxhighlight-desc' => 'Zmóžnja syntaksowe wuzwignjenje <tt><nowiki><source></nowiki></tt> z pomocu [http://qbnz.com/highlighter/ rěda GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Zmóžnja syntaksowe wuzwignjenje <code><syntaxhighlight></code> z pomocu [http://qbnz.com/highlighter/ rěda GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Musyš rěc kaž slědujo pódaś:',
 	'syntaxhighlight-supported' => 'Pódpěrane rěcy za syntaksowe wuzwignjenje:',
 	'syntaxhighlight-err-loading' => '(zmólka pśi zacytowanju lisćiny pódpěranych rěcow)',
@@ -206,7 +260,7 @@
  * @author ZaDiak
  */
 $messages['el'] = array(
-	'syntaxhighlight-desc' => 'Παρέχει έμφαση σύνταξης <tt><nowiki><source></nowiki></tt> χρησιμοποιώντας το [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Παρέχει έμφαση σύνταξης <code><syntaxhighlight></code> χρησιμοποιώντας το [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Πρέπει να επιλέξετε μια γλώσσα σαν κι αυτήν:',
 	'syntaxhighlight-supported' => 'Υποστηριζόμενες γλώσσες για επισημάνσεις συντακτικού',
 	'syntaxhighlight-err-loading' => '(λάθος στη φόρτωση της λίστας των υποστηριζόμενων γλωσσών)',
@@ -215,14 +269,15 @@
 );
 
 /** Esperanto (Esperanto)
+ * @author Michawiki
  * @author Yekrats
  */
 $messages['eo'] = array(
-	'syntaxhighlight-desc' => 'Provizas kolorigado de sintakso <tt><nowiki><source></nowiki></tt> per [http://qbnz.com/highlighter/ GeSHi Kolorigilo de Sintakso]',
-	'syntaxhighlight-specify' => 'Vi nepre specifigu lingvon ĉi tiel:',
+	'syntaxhighlight-desc' => 'Provizas kolorigado de sintakso <code><syntaxhighlight></code> per [http://qbnz.com/highlighter/ GeSHi Kolorigilo de Sintakso]',
+	'syntaxhighlight-specify' => 'Vi nepre specifu lingvon kiel ĉi tiu:',
 	'syntaxhighlight-supported' => 'Subtenaj lingvoj por sintaksa emfazo',
 	'syntaxhighlight-err-loading' => '(eraro ŝarĝante subtenitan lingvo-liston)',
-	'syntaxhighlight-err-language' => 'Nevalida lingvo.',
+	'syntaxhighlight-err-language' => 'Malvalida lingvo.',
 	'geshi.css' => '/* CSS enigita ĉi tie estos sintakse emfazita de GeSHi */',
 );
 
@@ -233,7 +288,7 @@
  * @author Sanbec
  */
 $messages['es'] = array(
-	'syntaxhighlight-desc' => 'Permite resaltar el código fuente usando la etiqueta <tt><nowiki><source></nowiki></tt>. Esta extensión usa [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Permite resaltar el código fuente usando la etiqueta <code><syntaxhighlight></code>. Esta extensión usa [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Necesita especificar un idioma como esto:',
 	'syntaxhighlight-supported' => 'lenguajes soportados para sintaxis remarcada:',
 	'syntaxhighlight-err-loading' => '(error cargando lista de lenguajes soportados)',
@@ -242,9 +297,11 @@
 );
 
 /** Estonian (Eesti)
+ * @author Pikne
  * @author [[et:Kasutaja:M2s17]]
  */
 $messages['et'] = array(
+	'syntaxhighlight-desc' => 'Võimaldab [http://qbnz.com/highlighter/ GeSHi] abil <code><syntaxhighlight></code>-märgendit kasutades süntaksit esile tõsta.',
 	'syntaxhighlight-specify' => 'Sa pead täpsustama keelt nõnda:',
 	'syntaxhighlight-supported' => 'Süntaksi esiletoomise on toetatud järgnevates keeltes:',
 	'syntaxhighlight-err-loading' => '(toetatud keelte loetelu laadimisel esines viga)',
@@ -252,28 +309,33 @@
 	'geshi.css' => '/* CSS mis on asetatud siia, määrab GeSHi süntaksi esiletoomise stiili */',
 );
 
-/** Basque (Euskara) */
+/** Basque (Euskara)
+ * @author An13sa
+ */
 $messages['eu'] = array(
+	'syntaxhighlight-specify' => 'Hizkuntza bat zehaztu behar duzu honela:',
 	'syntaxhighlight-err-language' => 'Baliogabeko hizkuntza.',
 );
 
 /** Persian (فارسی)
+ * @author Ebraminio
  * @author Huji
  */
 $messages['fa'] = array(
-	'syntaxhighlight-desc' => 'امکان رنگین کردن دستورات <tt><nowiki><source></nowiki></tt> با استفاده از [http://qbnz.com/highlighter/ GeSHi Highlighter] را فراهم می‌آورد',
+	'syntaxhighlight-desc' => 'امکان رنگین کردن دستورات <code><syntaxhighlight></code> با استفاده از [http://qbnz.com/highlighter/ GeSHi Highlighter] را فراهم می‌آورد',
 	'syntaxhighlight-specify' => 'شما باید به این شکل زبانی را مشخص کنید:',
 	'syntaxhighlight-supported' => 'زبان‌های پشتیبانی‌شده برای رنگین‌کردن دستورات:',
 	'syntaxhighlight-err-loading' => '(خطا در بارگذاری فهرست زبان‌های پشتیبانی‌شده)',
 	'syntaxhighlight-err-language' => 'زبان غیرمجاز.',
-	'geshi.css' => '/* دستورات CSS این‌جا توسط سامانه رنگین‌کردن دستورات GeSHi به کار گرفته می‌شوند */',
+	'geshi.css' => '/* دستورات CSS اینجا توسط سامانه رنگین‌کردن دستورات GeSHi به کار گرفته می‌شوند */',
 );
 
 /** Finnish (Suomi)
+ * @author Crt
  * @author Nike
  */
 $messages['fi'] = array(
-	'syntaxhighlight-desc' => 'Mahdollistaa syntaksin korostuksen GeSHillä <nowiki><source></nowiki>-elementtiä käyttämällä.',
+	'syntaxhighlight-desc' => 'Mahdollistaa syntaksin korostuksen [http://qbnz.com/highlighter/ GeSHillä] <code><syntaxhighlight></code>-elementtiä käyttämällä.',
 	'syntaxhighlight-specify' => 'Kieli pitää määritellä seuraavasti:',
 	'syntaxhighlight-supported' => 'Syntaksinkorostus on mahdollista seuraaville kielille:',
 	'syntaxhighlight-err-loading' => '(tuettujen kielten luettelon lataaminen epäonnistui)',
@@ -287,7 +349,7 @@
  * @author Verdy p
  */
 $messages['fr'] = array(
-	'syntaxhighlight-desc' => 'Fournit la mise en relief de la syntaxe par la balise <tt><nowiki><source></nowiki></tt> en utilisant [http://qbnz.com/highlighter/ la coloration syntaxique GeSHi]',
+	'syntaxhighlight-desc' => 'Fournit la mise en relief de la syntaxe par la balise <code><syntaxhighlight></code> en utilisant [http://qbnz.com/highlighter/ la coloration syntaxique GeSHi]',
 	'syntaxhighlight-specify' => 'Vous devez spécifier un langage comme ceci :',
 	'syntaxhighlight-supported' => 'Langages supportés pour la coloration syntaxique :',
 	'syntaxhighlight-err-loading' => '(erreur en chargeant la liste des langages supportés)',
@@ -299,12 +361,12 @@
  * @author ChrisPtDe
  */
 $messages['frp'] = array(
-	'syntaxhighlight-desc' => 'Fornét la misa en relièf de la sintaxa per la balisa <tt><nowiki><source></nowiki></tt> en utilisent [http://qbnz.com/highlighter/ la coloracion sintaxica GeSHi].',
+	'syntaxhighlight-desc' => 'Balye la misa en èvidence de la sintaxa per la balisa <code><syntaxhighlight></code> en utilisent [http://qbnz.com/highlighter/ la coloracion sintaxica GeSHi].',
 	'syntaxhighlight-specify' => 'Vos dête spècefiar un lengâjo d’ense :',
-	'syntaxhighlight-supported' => 'Lengâjos sotegnus por la coloracion sintaxica :',
-	'syntaxhighlight-err-loading' => '(èrror en chargient la lista des lengâjos sotegnus)',
-	'syntaxhighlight-err-language' => 'Lengâjo envalido',
-	'geshi.css' => '/* Lo CSS placiê ique serat aplicâ per GeSHi por la coloracion sintaxica. */',
+	'syntaxhighlight-supported' => 'Lengâjos recognus por la coloracion sintaxica :',
+	'syntaxhighlight-err-loading' => '(èrror en chargient la lista des lengâjos recognus)',
+	'syntaxhighlight-err-language' => 'Lengâjo envalido.',
+	'geshi.css' => '/* Lo code CSS betâ ique serat aplicâ a la coloracion sintaxica GeSHi. */',
 );
 
 /** Friulian (Furlan)
@@ -326,11 +388,11 @@
  * @author Xosé
  */
 $messages['gl'] = array(
-	'syntaxhighlight-desc' => 'Proporciona unha sintaxe resaltada <tt><nowiki><source></nowiki></tt> usando [http://qbnz.com/highlighter/ GeSHi Highlighter]',
-	'syntaxhighlight-specify' => 'Ten que especificar unha linguaxe así:',
-	'syntaxhighlight-supported' => 'Linguaxes coñecidas para resaltar a sintaxe:',
-	'syntaxhighlight-err-loading' => '(erro ao cargar a lista de linguaxes coñecidas)',
-	'syntaxhighlight-err-language' => 'Linguaxe non válida.',
+	'syntaxhighlight-desc' => 'Proporciona unha sintaxe resaltada <code><syntaxhighlight></code> usando [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-specify' => 'Ten que especificar unha lingua, así:',
+	'syntaxhighlight-supported' => 'Linguas soportadas para resaltar a sintaxe:',
+	'syntaxhighlight-err-loading' => '(erro ao cargar a lista de linguas soportadas)',
+	'syntaxhighlight-err-language' => 'A lingua non é válida.',
 	'geshi.css' => '/* O CSS colocado aquí será aplicado ao resalte da sintaxe de GeSHi */',
 );
 
@@ -345,7 +407,7 @@
  * @author Als-Holder
  */
 $messages['gsw'] = array(
-	'syntaxhighlight-desc' => 'Syntax firihebe <tt><nowiki><source></nowiki></tt> mit Hilf vum [http://qbnz.com/highlighter/ GeSHi-Highlighter]',
+	'syntaxhighlight-desc' => 'Syntax firihebe <code><syntaxhighlight></code> mit Hilf vum [http://qbnz.com/highlighter/ GeSHi-Highlighter]',
 	'syntaxhighlight-specify' => 'Di gwinscht Sproch muess eso definiert wäre:',
 	'syntaxhighlight-supported' => 'Unterstitzti Sproche fir s Fiirihebe vu dr Syntax:',
 	'syntaxhighlight-err-loading' => '(Fehler bim Lade vu dr Sprochelischt)',
@@ -353,11 +415,20 @@
 	'geshi.css' => '/* CSS in däre MediaWiki-Syschtemnochricht wird uf s GeSHi-Syntax-Firihebe aagwändet */',
 );
 
+/** Gujarati (ગુજરાતી)
+ * @author Ashok modhvadia
+ */
+$messages['gu'] = array(
+	'syntaxhighlight-supported' => 'વાક્યરચના સ્પષ્ટીકરણ માટે સહાયક ભાષાઓ:',
+	'syntaxhighlight-err-loading' => '(સહાયક ભાષા યાદી લાદણમાં ત્રુટિ)',
+	'syntaxhighlight-err-language' => 'અમાન્ય ભાષા.',
+);
+
 /** Hebrew (עברית)
  * @author Rotem Liss
  */
 $messages['he'] = array(
-	'syntaxhighlight-desc' => 'אפשרות לסימון קוד מקור בצבעים עם התגית <tt><nowiki><source></nowiki></tt> באמצעות [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'אפשרות לסימון קוד מקור בצבעים עם התגית <code><syntaxhighlight></code> באמצעות [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'עליכם לציין שפה באופן הבא:',
 	'syntaxhighlight-supported' => 'שפות נתמכות:',
 	'syntaxhighlight-err-loading' => '(שגיאה בטעינת הרשימה של השפות הנתמכות)',
@@ -370,7 +441,7 @@
  * @author Shyam
  */
 $messages['hi'] = array(
-	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] प्रयोग करके चिन्हांकित <tt><nowiki><source></nowiki></tt> वाक्य विश्लेषण उपलब्ध करता है',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] प्रयोग करके चिन्हांकित <code><syntaxhighlight></code> वाक्य विश्लेषण उपलब्ध करता है',
 	'syntaxhighlight-specify' => 'आपने इसप्रकार भाषा देना जरूरी हैं:',
 	'syntaxhighlight-supported' => 'सिन्टॅक्स हायलायटींग निम्नलिखित भाषाओंके लिये उपलब्ध हैं:',
 	'syntaxhighlight-err-loading' => '(सपोर्टेड भाषाओंकी सूची नहीं दर्शा पा रहें हैं)',
@@ -383,7 +454,7 @@
  * @author SpeedyGonsales
  */
 $messages['hr'] = array(
-	'syntaxhighlight-desc' => 'Omogućava bojanje sintakse <tt><nowiki><source></nowiki></tt> korištenjem [http://qbnz.com/highlighter/ GeSHi Highlighter-a]',
+	'syntaxhighlight-desc' => 'Omogućava bojanje sintakse <code><syntaxhighlight></code> korištenjem [http://qbnz.com/highlighter/ GeSHi Highlighter-a]',
 	'syntaxhighlight-specify' => 'Molimo navedite jezik na slijedeći način:',
 	'syntaxhighlight-supported' => 'Jezici podržani za bojanje sintakse:',
 	'syntaxhighlight-err-loading' => '(greška pri učitavanju popisa podržanih jezika)',
@@ -395,7 +466,7 @@
  * @author Michawiki
  */
 $messages['hsb'] = array(
-	'syntaxhighlight-desc' => 'Syntaksowe wuzběhnjenje <tt><nowiki><source></nowiki></tt> z pomocu rozšěrjenja [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Syntaksowe wuzběhnjenje <code><syntaxhighlight></code> z pomocu rozšěrjenja [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Dyrbiš rěč takle definować:',
 	'syntaxhighlight-supported' => 'Podpěrowane rěče za syntaksowe wuzběhnjenje:',
 	'syntaxhighlight-err-loading' => '(Zmylk při začitanju lisćiny rěčow)',
@@ -407,7 +478,7 @@
  * @author Dani
  */
 $messages['hu'] = array(
-	'syntaxhighlight-desc' => 'Lehetőséget nyújt szintaxiskiemelésre a <tt><nowiki><source></nowiki></tt> tag-gel, a [http://qbnz.com/highlighter/ GeSHi Highlighter] használatával',
+	'syntaxhighlight-desc' => 'Lehetőséget nyújt szintaxiskiemelésre a <code><syntaxhighlight></code> tag-gel, a [http://qbnz.com/highlighter/ GeSHi Highlighter] használatával',
 	'syntaxhighlight-specify' => 'Meg kell adnod egy nyelvet az alábbi módon:',
 	'syntaxhighlight-supported' => 'Támogatott programozási nyelvek:',
 	'syntaxhighlight-err-loading' => '(hiba történt a támogatott nyelvek listájának betöltése közben)',
@@ -419,19 +490,19 @@
  * @author McDutchie
  */
 $messages['ia'] = array(
-	'syntaxhighlight-desc' => 'Forni le emphase visual syntactic in <tt><nowiki><source></nowiki></tt> per medio de [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Forni le coloration syntactic in <code><syntaxhighlight></code> per medio de [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Tu debe specificar un linguage in iste modo:',
-	'syntaxhighlight-supported' => 'Linguages supportate pro le emphase visual syntactic:',
+	'syntaxhighlight-supported' => 'Linguages supportate pro le coloration syntactic:',
 	'syntaxhighlight-err-loading' => '(error durante le cargamento del lista de linguages supportate)',
 	'syntaxhighlight-err-language' => 'Linguage invalide.',
-	'geshi.css' => '/* Omne CSS inserite hic se applicara al emphase visual syntactic con GeSHi */',
+	'geshi.css' => '/* Omne CSS inserite hic se applicara al coloration syntactic con GeSHi */',
 );
 
 /** Indonesian (Bahasa Indonesia)
  * @author IvanLanin
  */
 $messages['id'] = array(
-	'syntaxhighlight-desc' => 'Memberikan penyorotan sintaks <tt><nowiki><source></nowiki></tt> menggunakan [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Memberikan penyorotan sintaks <code><syntaxhighlight></code> menggunakan [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Anda harus menentukan suatu bahasa seperti ini:',
 	'syntaxhighlight-supported' => 'Bahasa-bahasa yang didukung oleh pewarnaan sintaks:',
 	'syntaxhighlight-err-loading' => '(kesalahan pemuatan daftar bahasa yang didukung)',
@@ -439,6 +510,23 @@
 	'geshi.css' => '/* CSS di sini akan diterapkan untuk penyorotan sintaks GeSHi */',
 );
 
+/** Interlingue (Interlingue)
+ * @author Renan
+ */
+$messages['ie'] = array(
+	'syntaxhighlight-desc' => 'Provide superation de sintaxe de li code fonte, che li element <code><syntaxhighlight></code>, usant li [http://qbnz.com/highlighter/ GeSHi - Generic Syntax Highlighter]',
+	'syntaxhighlight-specify' => 'Vu besona specificar li lingue quam ti:',
+	'syntaxhighlight-supported' => 'Lingues suportat por superation de sintaxe:',
+	'syntaxhighlight-err-language' => 'Lingue ínvalid.',
+);
+
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'syntaxhighlight-err-language' => 'Asụsụ ámághị.',
+);
+
 /** Ido (Ido)
  * @author Malafaya
  */
@@ -450,7 +538,7 @@
  * @author BrokenArrow
  */
 $messages['it'] = array(
-	'syntaxhighlight-desc' => 'Evidenzia la sintassi dei linguaggi di programmazione <tt><nowiki><source></nowiki></tt> tramite [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Evidenzia la sintassi dei linguaggi di programmazione <code><syntaxhighlight></code> tramite [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'È necessario specificare un linguaggio in questo modo:',
 	'syntaxhighlight-supported' => 'Linguaggi di cui è possibile evidenziare la sintassi in colore:',
 	'syntaxhighlight-err-loading' => "(errore nel caricamento dell'elenco dei linguaggi supportati)",
@@ -459,14 +547,15 @@
 );
 
 /** Japanese (日本語)
+ * @author Aotake
  * @author Fryed-peach
  * @author JtFuruhata
  */
 $messages['ja'] = array(
-	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi 構文ハイライト機能] を利用したタグ <tt><nowiki><source></nowiki></tt> を提供する',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi 構文ハイライト機能] を利用したタグ <code><syntaxhighlight></code> を提供する',
 	'syntaxhighlight-specify' => '以下のように言語を指定する必要があります:',
 	'syntaxhighlight-supported' => '構文ハイライト機能に対応している言語は以下の通りです:',
-	'syntaxhighlight-err-loading' => '(対応言語の読み込み時にエラーが発生しました)',
+	'syntaxhighlight-err-loading' => '(対応言語一覧の読み込み時にエラーが発生しました)',
 	'syntaxhighlight-err-language' => '不正な言語名です。',
 	'geshi.css' => '/* ここへ、GeShi 構文ハイライト機能に適用する CSS を記述してください */',
 );
@@ -476,7 +565,7 @@
  * @author Ælsån
  */
 $messages['jut'] = array(
-	'syntaxhighlight-desc' => 'Gäv syntaks highlighting <tt><nowiki><source></nowiki></tt> via [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Gäv syntaks highlighting <code><syntaxhighlight></code> via [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Du nødst til spæsifiær en språg als dette:',
 	'syntaxhighlight-supported' => 'Understønde språg før syntaks highlighting:',
 	'syntaxhighlight-err-loading' => '(fejl lægende understønde språg liste)',
@@ -488,7 +577,7 @@
  * @author Meursault2004
  */
 $messages['jv'] = array(
-	'syntaxhighlight-desc' => 'Mènèhaké panyorotan sintaksis <tt><nowiki><source></nowiki></tt> nganggo [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Mènèhaké panyorotan sintaksis <code><syntaxhighlight></code> nganggo [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Panjenengan kudu nentokaké sawijining basa kaya iki:',
 	'syntaxhighlight-supported' => 'Basa-basa sing disengkuyung déning panandhan werna sintaksis:',
 	'syntaxhighlight-err-loading' => '(ana kaluputan ngunggahaké daftar basa sing disengkuyung)',
@@ -496,6 +585,18 @@
 	'geshi.css' => '/* CSS ing kéné bakal ditrapaké kanggo panyorotan sintaksis GeSHi */',
 );
 
+/** Georgian (ქართული)
+ * @author გიორგიმელა
+ */
+$messages['ka'] = array(
+	'syntaxhighlight-desc' => 'გაძლევთ ნებართვას ფამოიყენოთ თეგი <code><syntaxhighlight></code> სინტაქსის გასანათებლად[http://qbnz.com/highlighter/ GeSHi Highlighter-ის] მეშვეობით',
+	'syntaxhighlight-specify' => 'თქვენ უნდა წარადგინოთ სახელი შემდეგი სახით:',
+	'syntaxhighlight-supported' => 'მხარდამჭერი ახელები',
+	'syntaxhighlight-err-loading' => '(შეუძებელია მხარდამჭერი ენების სიის ატვირთვა)',
+	'syntaxhighlight-err-language' => 'მოთხოვნილია მხარდაჭერის არმქონე ენა',
+	'geshi.css' => '/* აქ წარმოდგენილი CSS-კოდი, გამოიყენება GeSHI სნტაქსის გასანათებლად*/',
+);
+
 /** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬)
  * @author AlefZet
  */
@@ -507,7 +608,7 @@
 	'geshi.css' => '/* مىنداعى CSS امىرلەرى GeSHi سىينتاكسىيستى كومەسكى جارىقتاۋعا قولدانىلادى */',
 );
 
-/** Kazakh (Cyrillic) (Қазақша (Cyrillic))
+/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬)
  * @author AlefZet
  */
 $messages['kk-cyrl'] = array(
@@ -518,7 +619,7 @@
 	'geshi.css' => '/* Мындағы CSS әмірлері GeSHi синтаксисті көмескі жарықтауға қолданылады */',
 );
 
-/** Kazakh (Latin) (Қазақша (Latin))
+/** Kazakh (Latin script) (‪Qazaqşa (latın)‬)
  * @author AlefZet
  */
 $messages['kk-latn'] = array(
@@ -531,9 +632,11 @@
 
 /** Khmer (ភាសាខ្មែរ)
  * @author Chhorran
+ * @author គីមស៊្រុន
  */
 $messages['km'] = array(
 	'syntaxhighlight-specify' => 'អ្នកចាំបាច់ សំដៅ មួយភាសា ដូច នេះ ៖',
+	'syntaxhighlight-err-loading' => '(បញ្ហាក្នុងការរៀបចំបញ្ជីភាសាដែលប្រើបាន)',
 	'syntaxhighlight-err-language' => 'ភាសា គ្មានសុពលភាព ។',
 );
 
@@ -542,7 +645,7 @@
  * @author ToePeu
  */
 $messages['ko'] = array(
-	'syntaxhighlight-desc' => '<tt><nowiki><source></nowiki></tt> 태그로 [http://qbnz.com/highlighter/ GeSHi Highlighter]를 이용해 문법 강조 기능을 지원합니다.',
+	'syntaxhighlight-desc' => '<code><syntaxhighlight></code> 태그로 [http://qbnz.com/highlighter/ GeSHi Highlighter]를 이용해 문법 강조 기능을 지원합니다.',
 	'syntaxhighlight-specify' => '오른쪽과 같이 언어를 설정해야 합니다:',
 	'syntaxhighlight-supported' => '문법 강조가 지원되는 언어 목록',
 	'syntaxhighlight-err-loading' => '(지원하는 언어 목록을 불러오는 중 오류 발생)',
@@ -550,11 +653,11 @@
 	'geshi.css' => '/* 이 문서에서 설정한 CSS는 GeSHi에 적용됩니다. */',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
-	'syntaxhighlight-desc' => 'Deijt — en <tt><nowiki><source></nowiki></tt>-Affschnedde — de Syntax fon beshtemmpte Computer-Shprooche makeere. Bruch dobei dä [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Deijt — en <code><syntaxhighlight></code>-Affschnedde — de Syntax fon beshtemmpte Computer-Shprooche makeere. Bruch dobei dä [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Mer moß en Shprooch aanjevve, esu en dä Aat wi hee:',
 	'syntaxhighlight-supported' => 'Di Shprooche, dänne ier Syntax mer makeere könne, sin:',
 	'syntaxhighlight-err-loading' => '(Enne Fääler es opjetrodde, wi mer de Leß met de Shprooch laade wollte)',
@@ -563,14 +666,15 @@
 );
 
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
-	'syntaxhighlight-desc' => "Syntax-Ervirhiewung <tt><nowiki><source></nowiki></tt> mat Hellëf vu [http://qbnz.com/highlighter/ 'GeSHi Highlighter']",
+	'syntaxhighlight-desc' => "Syntax-Ervirhiewung <code><syntaxhighlight></code> mat Hëllef vu [http://qbnz.com/highlighter/ 'GeSHi Highlighter']",
 	'syntaxhighlight-specify' => 'Déi gewënschte Sprooch muss esou definéiert ginn:',
-	'syntaxhighlight-supported' => "Ënnerstetzte Sproochen fir d'Syntax faarweg ze markéieren",
-	'syntaxhighlight-err-loading' => '(Feeler beim Luede vun der Lëscht vun den ënnerstetzte Sproochen)',
-	'syntaxhighlight-err-language' => 'Ongëlteg Sprooch',
+	'syntaxhighlight-supported' => "Ënnerstëtzte Sprooche fir d'Syntax faarweg ze markéieren",
+	'syntaxhighlight-err-loading' => '(Feeler beim Luede vun der Lëscht vun den ënnerstëtzte Sproochen)',
+	'syntaxhighlight-err-language' => 'Net valabel Sprooch.',
 	'geshi.css' => "/* Den CSS deen hei steet gëtt benotzt fir d'GeSHi Syntax faarweg ze markéieren. /*",
 );
 
@@ -578,7 +682,7 @@
  * @author Ooswesthoesbes
  */
 $messages['li'] = array(
-	'syntaxhighlight-desc' => 'Guf syntaxismarkering <tt><nowiki><source></nowiki></tt> gebroekende [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Guf syntaxismarkering <code><syntaxhighlight></code> gebroekende [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => "Gaef 'ne taal es volg op:",
 	'syntaxhighlight-supported' => 'Óngersteunde täöl veur syntaxismarkering:',
 	'syntaxhighlight-err-loading' => "(fout bie 't laje vanne lies mit óngersteunde täöl)",
@@ -588,15 +692,25 @@
 
 /** Lithuanian (Lietuvių)
  * @author Garas
+ * @author Homo
  * @author Matasg
  */
 $messages['lt'] = array(
+	'syntaxhighlight-desc' => 'Teikia sintaksės paryškinimus <code><syntaxhighlight></code> naudojant [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Jums reikia nurodyti kalbą kaip čia:',
 	'syntaxhighlight-supported' => 'Palaikomos kalbos sintaksės paryškinimui:',
 	'syntaxhighlight-err-loading' => '(klaida įkeliant palaikomų kalbų sąrašą)',
 	'syntaxhighlight-err-language' => 'Neleistina kalba.',
+	'geshi.css' => '/* Čia pateiktas CSS bus taikomas GeSHi sintaksės paryškinimams */',
 );
 
+/** Latvian (Latviešu)
+ * @author Papuass
+ */
+$messages['lv'] = array(
+	'syntaxhighlight-err-language' => 'Nederīga valoda.',
+);
+
 /** Malagasy (Malagasy)
  * @author Jagwar
  */
@@ -605,14 +719,29 @@
 	'syntaxhighlight-err-language' => 'Diso fiteny',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'syntaxhighlight-desc' => 'Овозможува потцртување на синтакса <code><syntaxhighlight></code> со помош на [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-specify' => 'Треба да наведете јазик на следниов начин:',
+	'syntaxhighlight-supported' => 'Поддржани јазици за синтаксно потцртување:',
+	'syntaxhighlight-err-loading' => '(грешка при вчитувањето на списокот на поддржани јазици)',
+	'syntaxhighlight-err-language' => 'Неважечки јазик.',
+	'geshi.css' => '/* Тука поставениот CSS-код ќе биде применет во GeSHi потцртување на синтаксата */',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'syntaxhighlight-specify' => 'താങ്കള്‍ ഇപ്രകാരം ഒരു ഭാഷ തിരഞ്ഞെടുക്കണം:',
-	'syntaxhighlight-supported' => 'സിറ്റാക്സ് ഹൈലൈറ്റിങ്ങ് അനുകൂലിക്കുന്ന ഭാഷകള്‍:',
-	'syntaxhighlight-err-loading' => '(ഭാഷകളുടെ പട്ടിക ലോഡ് ചെയ്യുന്നതില്‍ പിശക്)',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi പ്രമുഖമാക്കൽ ഉപകരണമുപയോഗിച്ച്] <code><syntaxhighlight></code> വിന്യാസം പ്രമുഖമാക്കിക്കാട്ടാൻ സഹായിക്കുന്നു',
+	'syntaxhighlight-specify' => 'താങ്കൾ ഇപ്രകാരം ഒരു ഭാഷ തിരഞ്ഞെടുക്കണം:',
+	'syntaxhighlight-supported' => 'സിറ്റാക്സ് ഹൈലൈറ്റിങ്ങ് അനുകൂലിക്കുന്ന ഭാഷകൾ:',
+	'syntaxhighlight-err-loading' => '(പിന്തുണയുള്ള ഭാഷകളുടെ പട്ടിക ശേഖരിക്കുന്നതിൽ പിഴവ്)',
 	'syntaxhighlight-err-language' => 'അസാധുവായ ഭാഷ.',
+	'geshi.css' => '/* ഇവിടെ നൽകുന്ന സി.എസ്.എസ്.  GeSHi വിന്യാസം പ്രമുഖമാക്കിക്കാട്ടലിനു ബാധകമായിത്തീരും */',
 );
 
 /** Marathi (मराठी)
@@ -620,7 +749,7 @@
  * @author Mahitgar
  */
 $messages['mr'] = array(
-	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi हायलायटर] वापरून सिन्टॅक्स हायलाईट करा <tt><nowiki><source></nowiki></tt>',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi हायलायटर] वापरून सिन्टॅक्स हायलाईट करा <code><syntaxhighlight></code>',
 	'syntaxhighlight-specify' => 'तुम्ही याप्रमाणे भाषा देणे गरजेचे आहे:',
 	'syntaxhighlight-supported' => 'सिन्टॅक्स हायलायटींग खालील भाषांवर वापरता येते:',
 	'syntaxhighlight-err-loading' => '(सहाय्य देणार्‍या भाषांची यादी दाखविण्यास असमर्थ)',
@@ -632,7 +761,7 @@
  * @author Aviator
  */
 $messages['ms'] = array(
-	'syntaxhighlight-desc' => 'Menyediakan tag <tt><nowiki><source></nowiki></tt> untuk penonjolan sintaks menggunakan [http://qbnz.com/highlighter/ GeSHi]',
+	'syntaxhighlight-desc' => 'Menyediakan tag <code><syntaxhighlight></code> untuk penonjolan sintaks menggunakan [http://qbnz.com/highlighter/ GeSHi]',
 	'syntaxhighlight-specify' => 'Anda hendaklah menyatakan bahasa seperti ini:',
 	'syntaxhighlight-supported' => 'Bahasa-bahasa yang disokong untuk penonjolan sintaks:',
 	'syntaxhighlight-err-loading' => '(berlaku ralat ketika memuat senarai bahasa yang disokong)',
@@ -642,16 +771,29 @@
 
 /** Nahuatl (Nāhuatl)
  * @author Fluence
+ * @author Teòtlalili
  */
 $messages['nah'] = array(
-	'syntaxhighlight-err-language' => 'Ahcualli tlahtōlli',
+	'syntaxhighlight-err-language' => 'Âmò kualli tlâtòlli',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ */
+$messages['nb'] = array(
+	'syntaxhighlight-desc' => 'Gir syntaks som framhever <code><syntaxhighlight></code> ved hjelp av [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-specify' => 'Du må angi et språk slik:',
+	'syntaxhighlight-supported' => 'Støttede språk for syntaksutheving:',
+	'syntaxhighlight-err-loading' => '(feil under last av liste over støttede språk)',
+	'syntaxhighlight-err-language' => 'Ugyldig språk.',
+	'geshi.css' => '/* CSS plassert her gjelder GeSHi syntaksutheving */',
+);
+
 /** Low German (Plattdüütsch)
  * @author Slomox
  */
 $messages['nds'] = array(
-	'syntaxhighlight-desc' => 'Syntax-Rutheven <tt><nowiki><source></nowiki></tt> mit Help vun’n [http://qbnz.com/highlighter/ GeSHi-Highlighter]',
+	'syntaxhighlight-desc' => 'Syntax-Rutheven <code><syntaxhighlight></code> mit Help vun’n [http://qbnz.com/highlighter/ GeSHi-Highlighter]',
 	'syntaxhighlight-specify' => 'Du musst op disse Wies en Spraak angeven:',
 	'syntaxhighlight-supported' => 'Ünnerstütt Spraken för dat Syntax-Rutheven:',
 	'syntaxhighlight-err-loading' => '(Fehler bi dat Laden vun de Sprakenlist)',
@@ -659,16 +801,23 @@
 	'geshi.css' => '/* CSS in disse MediaWiki-Systemnaricht warrt för dat GeSHi-Syntaxrutheven bruukt */',
 );
 
+/** Nedersaksisch (Nedersaksisch)
+ * @author Servien
+ */
+$messages['nds-nl'] = array(
+	'syntaxhighlight-err-language' => 'Niet de juuste taal.',
+);
+
 /** Dutch (Nederlands)
  * @author Siebrand
  * @author Tvdm
  */
 $messages['nl'] = array(
-	'syntaxhighlight-desc' => 'Voorziet in het markeren van syntaxis voor <tt><nowiki><source></nowiki></tt> met [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Voorziet in het markeren van syntaxis voor <code><syntaxhighlight></code> met [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Geef een taal als volgt op:',
 	'syntaxhighlight-supported' => 'Ondersteunde talen voor syntaxismarkering:',
 	'syntaxhighlight-err-loading' => '(fout bij het laden van de lijst met ondersteunde talen)',
-	'syntaxhighlight-err-language' => 'Onjuiste taal.',
+	'syntaxhighlight-err-language' => 'Ongeldige taal.',
 	'geshi.css' => '/* Hier geplaatste CSS wordt toegepast op GeSHi Syntax Highlighting */',
 );
 
@@ -676,7 +825,7 @@
  * @author Frokor
  */
 $messages['nn'] = array(
-	'syntaxhighlight-desc' => 'Gjev syntaks som framhevar <tt><nowiki><source></nowiki></tt> ved hjelp av [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Gjev syntaks som framhevar <code><syntaxhighlight></code> ved hjelp av [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Du må gje eit språk slik:',
 	'syntaxhighlight-supported' => 'Støtta språk for syntaksutheving:',
 	'syntaxhighlight-err-loading' => '(feil under lasting av liste over støtta språk)',
@@ -684,23 +833,11 @@
 	'geshi.css' => '/* CSS plassert her gjeld GeSHi syntaksutheving */',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'syntaxhighlight-desc' => 'Gir syntaks som framhever <tt><nowiki><source></nowiki></tt> ved hjelp av [http://qbnz.com/highlighter/ GeSHi Highlighter]',
-	'syntaxhighlight-specify' => 'Du må angi et språk slik:',
-	'syntaxhighlight-supported' => 'Støttede språk for syntaksutheving:',
-	'syntaxhighlight-err-loading' => '(feil under last av liste over støttede språk)',
-	'syntaxhighlight-err-language' => 'Ugyldig språk.',
-	'geshi.css' => '/* CSS plassert her gjelder GeSHi syntaksutheving */',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
-	'syntaxhighlight-desc' => 'Provesís la mesa en relèu de la sintaxi per la balisa <tt><nowiki><source></nowiki></tt> en utilizant [http://qbnz.com/highlighter/ la coloracion sintaxica GeSHi]',
+	'syntaxhighlight-desc' => 'Provesís la mesa en relèu de la sintaxi per la balisa <code><syntaxhighlight></code> en utilizant [http://qbnz.com/highlighter/ la coloracion sintaxica GeSHi]',
 	'syntaxhighlight-specify' => 'Vos cal especificar un lengatge coma aquò :',
 	'syntaxhighlight-supported' => 'Lengatges suportats per la coloracion sintaxica :',
 	'syntaxhighlight-err-loading' => '(error en cargant la lista dels lengatges suportats)',
@@ -708,19 +845,26 @@
 	'geshi.css' => '/* Lo còde CSS inserit aicí serà aplicat per GeSHi per la coloracion sintaxica. */',
 );
 
-/** Ossetic (Иронау)
+/** Ossetic (Ирон)
  * @author Amikeco
  */
 $messages['os'] = array(
 	'syntaxhighlight-err-language' => 'Раст æвзаг нæу.',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'syntaxhighlight-err-language' => 'Falsch Schprooch',
+);
+
 /** Polish (Polski)
  * @author Derbeth
  * @author Sp5uhe
  */
 $messages['pl'] = array(
-	'syntaxhighlight-desc' => 'Zapewnia kolorowanie składni dla znacznika <tt><nowiki><source></nowiki></tt> wykorzystując [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Zapewnia kolorowanie składni dla znacznika <code><syntaxhighlight></code> wykorzystując [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Musisz wybrać język w następujący sposób:',
 	'syntaxhighlight-supported' => 'Języki obsługiwane w podświetlaniu składni:',
 	'syntaxhighlight-err-loading' => '(błąd przy wczytywaniu listy obsługiwanych języków)',
@@ -730,8 +874,10 @@
 
 /** Piedmontese (Piemontèis)
  * @author Bèrto 'd Sèra
+ * @author Dragonòt
  */
 $messages['pms'] = array(
+	'syntaxhighlight-desc' => 'A evidensia la sintassi <code><syntaxhighlight></code>an dovrand [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'A venta specifiché na lenga coma:',
 	'syntaxhighlight-supported' => "Lenghe dont as peul fé l'evidensiassion dla sintassi:",
 	'syntaxhighlight-err-loading' => '(eror ën cariand la lista dle lenghe dont sintassi as peul evidensié)',
@@ -748,11 +894,12 @@
 );
 
 /** Portuguese (Português)
+ * @author Hamilton Abreu
  * @author Malafaya
  */
 $messages['pt'] = array(
-	'syntaxhighlight-desc' => 'Providencia <tt><nowiki><source></nowiki></tt> de sinalização de sintaxe  através do [http://qbnz.com/highlighter/ GeSHi Highlighter]',
-	'syntaxhighlight-specify' => 'Você precisa especificar uma linguagem, tal como:',
+	'syntaxhighlight-desc' => 'Permite o realce sintáctico de código fonte, através do elemento <code><syntaxhighlight></code>, usando o [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-specify' => 'Precisa de especificar uma linguagem assim:',
 	'syntaxhighlight-supported' => 'Linguagens suportadas no realce de sintaxe:',
 	'syntaxhighlight-err-loading' => '(erro ao carregar a lista de linguagens suportadas)',
 	'syntaxhighlight-err-language' => 'Linguagem inválida.',
@@ -760,10 +907,11 @@
 );
 
 /** Brazilian Portuguese (Português do Brasil)
+ * @author Helder.wiki
  * @author Heldergeovane
  */
 $messages['pt-br'] = array(
-	'syntaxhighlight-desc' => 'Providencia realce de sintaxe <tt><nowiki><source></nowiki></tt> através do [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Providencia realce de sintaxe <code><syntaxhighlight></code> através do [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Você precisa especificar uma linguagem, tal como:',
 	'syntaxhighlight-supported' => 'Linguagens suportadas no realce de sintaxe:',
 	'syntaxhighlight-err-loading' => '(erro ao carregar a lista de linguagens suportadas)',
@@ -779,18 +927,36 @@
 );
 
 /** Romanian (Română)
+ * @author AdiJapan
  * @author KlaudiuMihaila
+ * @author Stelistcristi
  */
 $messages['ro'] = array(
-	'syntaxhighlight-specify' => 'Trebuie să specificaţi o limbă în acest mod:',
+	'syntaxhighlight-desc' => 'Produce evidențierea sintaxei prin baliza <code><syntaxhighlight></code> folosind [http://qbnz.com/highlighter/ GeSHi - Generic Syntax Highlighter]',
+	'syntaxhighlight-specify' => 'Trebuie să specificați o limbă în acest mod:',
+	'syntaxhighlight-supported' => 'Limbile suportate pentru evidențierea sintaxei:',
+	'syntaxhighlight-err-loading' => '(eroare la încărcarea listei cu limbile suportate)',
 	'syntaxhighlight-err-language' => 'Limbă incorectă.',
+	'geshi.css' => '/* Codul CSS inserat aici se va aplica la evidențierea sintaxei prin GeSHi. */',
 );
 
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'syntaxhighlight-desc' => "Dè 'na sindasse evidenziate <code><syntaxhighlight></code> ausanne [http://qbnz.com/highlighter/ GeSHi l'Evidenziatore]",
+	'syntaxhighlight-specify' => "Tu, abbesogne de 'na lènga specifiche cumme a queste:",
+	'syntaxhighlight-supported' => 'Linguagge supportate pa sindasse evidenziate:',
+	'syntaxhighlight-err-loading' => "(errore carecanne 'a liste de linguagge supportate)",
+	'syntaxhighlight-err-language' => 'Lénghe invalide.',
+	'geshi.css' => "/* CSS mise aqquà avène applicate 'a sindasse GeSHi evidenziate */",
+);
+
 /** Russian (Русский)
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
-	'syntaxhighlight-desc' => 'Позволяет использовать тег <tt><nowiki><source></nowiki></tt> для подсветки синтаксиса с помощью [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Позволяет использовать тег <code><syntaxhighlight></code> для подсветки синтаксиса с помощью [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Вы должны указать язык следующим образом:',
 	'syntaxhighlight-supported' => 'Поддерживаемые языки:',
 	'syntaxhighlight-err-loading' => '(невозможно загрузить список языков)',
@@ -798,11 +964,23 @@
 	'geshi.css' => '/* CSS-код, размещённый здесь, будет применён для подсветки синтаксиса GeSHI */',
 );
 
-/** Yakut (Саха тыла)
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'syntaxhighlight-desc' => 'Додавать звыразнїна сінтаксіс <code><syntaxhighlight></code> за помочі [http://qnbz.com/higlighter звыразнёвача GeSHi]',
+	'syntaxhighlight-specify' => 'Мусите становити язык тым способом:',
+	'syntaxhighlight-supported' => 'Список языків, у котрый є підпороване звыразнёваня сінтаксіс:',
+	'syntaxhighlight-err-loading' => '(хыба при начітаню списка підпорованых языків)',
+	'syntaxhighlight-err-language' => 'Неправилный язык.',
+	'geshi.css' => '/* Гев зазначене CSS буде овпливнёвати звыразнёваня сінтаксісу GeSHi */',
+);
+
+/** Sakha (Саха тыла)
  * @author HalanTul
  */
 $messages['sah'] = array(
-	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] көмөтүнэн синтаксис подсветкатын холбуурга <tt><nowiki><source></nowiki></tt> тиэги туһанар кыах биэрэр.',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] көмөтүнэн синтаксис подсветкатын холбуурга <code><syntaxhighlight></code> тиэги туһанар кыах биэрэр.',
 	'syntaxhighlight-specify' => 'Омугун тылын маннык ыйыахтааххын:',
 	'syntaxhighlight-supported' => 'Өйөнүллэр тыллара:',
 	'syntaxhighlight-err-loading' => '(тылларын испииһэгэ кыайан көрдөрүллүбэтэ)',
@@ -810,11 +988,23 @@
 	'geshi.css' => '/* манна баар CSS-куод GeSHI синтаксииһын сырдатарга туттуллуо */',
 );
 
+/** Sinhala (සිංහල)
+ * @author Calcey
+ * @author පසිඳු කාවින්ද
+ */
+$messages['si'] = array(
+	'syntaxhighlight-specify' => 'ඔබට මෙවැනි භාෂාවක් විශේෂණය කල යුතු වේ:',
+	'syntaxhighlight-supported' => 'වාග් රීති උද්දීපනය කිරීම සඳහා සහාය දක්වන භාෂා:',
+	'syntaxhighlight-err-loading' => '(සහය දක්වන භාෂා ලැයිස්තුව පූරණය වීමේ දෝෂය)',
+	'syntaxhighlight-err-language' => 'අවලංගු භාෂාව.',
+	'geshi.css' => '/* මෙහි යොදන CSS GeSHi කාරකරීති තීව‍්‍රාලෝකය සඳහා යෙදේ */',
+);
+
 /** Slovak (Slovenčina)
  * @author Helix84
  */
 $messages['sk'] = array(
-	'syntaxhighlight-desc' => 'Poskytuje zvýazňovanie syntaxe <tt><nowiki><source></nowiki></tt> pomocou [http://qbnz.com/highlighter/ zvýrazňovača GeSHi]',
+	'syntaxhighlight-desc' => 'Poskytuje zvýazňovanie syntaxe <code><syntaxhighlight></code> pomocou [http://qbnz.com/highlighter/ zvýrazňovača GeSHi]',
 	'syntaxhighlight-specify' => 'Musíte uviesť jazyk takto:',
 	'syntaxhighlight-supported' => 'Jazyky, pre ktoré je zvýrazňovanie syntaxe podporované:',
 	'syntaxhighlight-err-loading' => '(chyba pri načítaní zoznamu podporovaných jazykov)',
@@ -823,32 +1013,49 @@
 );
 
 /** Slovenian (Slovenščina)
+ * @author Dbc334
  * @author Yerpo
  */
 $messages['sl'] = array(
+	'syntaxhighlight-desc' => 'Nudi označevanje skladnje <code><syntaxhighlight></code> z uporabo [http://qbnz.com/highlighter/ označevalnika GeSHi]',
+	'syntaxhighlight-specify' => 'Morate navesti jezik tako:',
 	'syntaxhighlight-supported' => 'Jeziki, ki jih podpira funkcija za označevanje sintakse:',
 	'syntaxhighlight-err-loading' => '(napaka pri nalaganju podprtih jezikov)',
 	'syntaxhighlight-err-language' => 'Neveljaven jezik.',
+	'geshi.css' => '/* CSS placed here will be applied to GeSHi syntax highlighting */',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
  * @author Millosh
+ * @author Rancher
  * @author Sasa Stefanovic
  */
 $messages['sr-ec'] = array(
-	'syntaxhighlight-desc' => 'Омогућава визуелно означавање синтаксе <tt><nowiki><source></nowiki></tt> коришћењем [http://qbnz.com/highlighter/ GeSHi хајлајтера].',
+	'syntaxhighlight-desc' => 'Омогућава визуелно означавање синтаксе <code><syntaxhighlight></code> коришћењем [http://qbnz.com/highlighter/ GeSHi хајлајтера].',
 	'syntaxhighlight-specify' => 'Потребно је одредити језик као овај:',
 	'syntaxhighlight-supported' => 'Подржани језици у визуелом означавању синтаксе:',
 	'syntaxhighlight-err-loading' => '(грешка при учитавању подржаних језика)',
-	'syntaxhighlight-err-language' => 'Неподобан језик',
+	'syntaxhighlight-err-language' => 'Неисправан језик.',
 	'geshi.css' => '/* CSS постављен овде биће примењен на визуелно означавање синтксе GeSHi */',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Michaello
+ */
+$messages['sr-el'] = array(
+	'syntaxhighlight-desc' => 'Omogućava vizuelno označavanje sintakse <code><syntaxhighlight></code> korišćenjem [<a href="http://qbnz.com/highlighter/">http://qbnz.com/highlighter/</a> GeSHi hajlajtera].',
+	'syntaxhighlight-specify' => 'Potrebno je odrediti jezik kao ovaj:',
+	'syntaxhighlight-supported' => 'Podržani jezici u vizuelom označavanju sintakse:',
+	'syntaxhighlight-err-loading' => '(greška pri učitavanju podržanih jezika)',
+	'syntaxhighlight-err-language' => 'Nepodoban jezik',
+	'geshi.css' => '/* CSS postavljen ovde biće primenjen na vizuelno označavanje sintkse GeSHi */',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'syntaxhighlight-desc' => 'Syntax-Apljuchtenge <tt><nowiki><source></nowiki></tt> mäd Hälpe fon dän [http://qbnz.com/highlighter/ GeSHi-Apljuchter]',
+	'syntaxhighlight-desc' => 'Syntax-Apljuchtenge <code><syntaxhighlight></code> mäd Hälpe fon dän [http://qbnz.com/highlighter/ GeSHi-Apljuchter]',
 	'syntaxhighlight-specify' => 'Ju wonskede Sproake mout as foulget definierd wäide:',
 	'syntaxhighlight-supported' => 'Unnerstöände Sproaken foar ju Syntax-Betoonenge:',
 	'syntaxhighlight-err-loading' => '(Failer bie dät Leeden fon ju Sproakenlieste)',
@@ -860,7 +1067,7 @@
  * @author Kandar
  */
 $messages['su'] = array(
-	'syntaxhighlight-desc' => 'Nyadiakeun sorotan rumpaka <tt><nowiki><source></nowiki></tt> migunakeun [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Nyadiakeun sorotan rumpaka <code><syntaxhighlight></code> migunakeun [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Anjeun kudu milih basa kawas kieu:',
 	'syntaxhighlight-supported' => 'Basa nu dirojong ku sorotan rumpaka:',
 	'syntaxhighlight-err-loading' => '(éror ngamuat daptar basa nu dirojong)',
@@ -872,7 +1079,7 @@
  * @author Lejonel
  */
 $messages['sv'] = array(
-	'syntaxhighlight-desc' => 'Ger syntaxmarkering med [http://qbnz.com/highlighter/ GeSHi Highlighter] inuti <tt><nowiki><source></nowiki></tt>-taggar',
+	'syntaxhighlight-desc' => 'Ger syntaxmarkering med [http://qbnz.com/highlighter/ GeSHi Highlighter] inuti <code><syntaxhighlight></code>-taggar',
 	'syntaxhighlight-specify' => 'Du måste ange vilket språk som används, så här:',
 	'syntaxhighlight-supported' => 'Det finns stöd för följande språk:',
 	'syntaxhighlight-err-loading' => '(fel vid laddning av listan över stödda språk)',
@@ -885,15 +1092,16 @@
  */
 $messages['te'] = array(
 	'syntaxhighlight-specify' => 'భాషని ఈ విధంగా ఇవ్వాలి:',
+	'syntaxhighlight-supported' => 'ఛందస్సు ఉద్దీపనకి తోడ్పాటు ఉన్న భాషలు:',
 	'syntaxhighlight-err-loading' => '(తోడ్పాటున్న భాషల జాబితా లోడింగులో పొరపాటు జరిగింది)',
 	'syntaxhighlight-err-language' => 'తప్పుడు భాష.',
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
-	'syntaxhighlight-desc' => 'Имкони дастуроти рангин карданро <tt><nowiki><source></nowiki></tt> бо истифода аз [http://qbnz.com/highlighter/ GeSHi Highlighter]-ро фароҳам меоварад',
+	'syntaxhighlight-desc' => 'Имкони дастуроти рангин карданро <code><syntaxhighlight></code> бо истифода аз [http://qbnz.com/highlighter/ GeSHi Highlighter]-ро фароҳам меоварад',
 	'syntaxhighlight-specify' => 'Шумо бояд бо ин шакл забонеро мушаххас кунед:',
 	'syntaxhighlight-supported' => 'Забонҳои пуштибонишуда барои рангин кардани дастуроти наҳвӣ:',
 	'syntaxhighlight-err-loading' => '(хато дар богузории забонҳои пуштибонишуда)',
@@ -901,11 +1109,35 @@
 	'geshi.css' => '/* CSS инҷо гузошташуда ба дастуроти рангинкунии GeSHi ба кор бурда мешавад */',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'syntaxhighlight-desc' => 'Imkoni dasturoti rangin kardanro <code><syntaxhighlight></code> bo istifoda az [http://qbnz.com/highlighter/ GeSHi Highlighter]-ro faroham meovarad',
+	'syntaxhighlight-specify' => 'Şumo bojad bo in şakl zabonero muşaxxas kuned:',
+	'syntaxhighlight-supported' => 'Zabonhoi puştibonişuda baroi rangin kardani dasturoti nahvī:',
+	'syntaxhighlight-err-loading' => '(xato dar boguzoriji zabonhoi puştibonişuda)',
+	'syntaxhighlight-err-language' => 'Zaboni ƣajri miçoz.',
+	'geshi.css' => '/* CSS inço guzoştaşuda ba dasturoti ranginkuniji GeSHi ba kor burda meşavad */',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] ulanyp <code><syntaxhighlight></code> sintaksis nygtamasyny üpjün edýär',
+	'syntaxhighlight-specify' => 'Şunuň ýaly bir dil görkezmeli:',
+	'syntaxhighlight-supported' => 'Sintaksis nygtamasy üçin goldanylýan diller:',
+	'syntaxhighlight-err-loading' => '(goldanylýan diller sanawyny ýükleme säwligi)',
+	'syntaxhighlight-err-language' => 'Nädogry dil.',
+	'geshi.css' => '/* Bu ýere ýerleşdirilen CSS, GeSHi sintaksis nygtamasyna berjaý ediljekdir */',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
-	'syntaxhighlight-desc' => "Nagbibigay ng pagbibigay ng liwanag sa palaugnayan <tt><nowiki><pinagmulan></nowiki></tt> na ginagamitan ng [http://qbnz.com/highlighter/ pambigay ng liwanag (''highlighter'') ng GeSHi]",
+	'syntaxhighlight-desc' => "Nagbibigay ng pagbibigay ng liwanag sa palaugnayan <code><syntaxhighlight></code> na ginagamitan ng [http://qbnz.com/highlighter/ pambigay ng liwanag (''highlighter'') ng GeSHi]",
 	'syntaxhighlight-specify' => 'Kinakailangan mong tumukoy ng isang wikang katulad nito:',
 	'syntaxhighlight-supported' => 'Sinusuportahang mga wika para sa pagbibigay ng liwanag/pagtatampok ng palaugnayan:',
 	'syntaxhighlight-err-loading' => '(kamalian sa pagkarga ng sinusuportahang talaan ng wika)',
@@ -918,7 +1150,7 @@
  * @author Joseph
  */
 $messages['tr'] = array(
-	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] kullanarak <tt><nowiki><source></nowiki></tt> sözdizimi vurgulamasını sağlar',
+	'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter] kullanarak <code><syntaxhighlight></code> sözdizimi vurgulamasını sağlar',
 	'syntaxhighlight-specify' => 'Bu gibi bir dil belirtmelisiniz:',
 	'syntaxhighlight-supported' => 'Sözdizimi vurgulaması için desteklenen diller:',
 	'syntaxhighlight-err-loading' => '(desteklenen diller listesi yüklenirken hata)',
@@ -930,7 +1162,7 @@
  * @author Ahonc
  */
 $messages['uk'] = array(
-	'syntaxhighlight-desc' => 'Дозволяє використовувати тег <tt><nowiki><source></nowiki></tt> для підсвічування синтаксису за допомогою [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Дозволяє використовувати тег <code><syntaxhighlight></code> для підсвічування синтаксису за допомогою [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Ви повинні зазначити мову наступним чином:',
 	'syntaxhighlight-supported' => 'Підтримувані мови:',
 	'syntaxhighlight-err-loading' => '(неможливо завантажити список мов)',
@@ -942,7 +1174,7 @@
  * @author Candalua
  */
 $messages['vec'] = array(
-	'syntaxhighlight-desc' => 'Evidensia la sintassi dei linguagi de programazion <tt><nowiki><source></nowiki></tt> tramite [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Evidensia la sintassi dei linguagi de programazion <code><syntaxhighlight></code> tramite [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Te ghè da specificar un linguagio in sta maniera:',
 	'syntaxhighlight-supported' => 'Linguagi de cui se pol evidensiar la sintassi coi colori:',
 	'syntaxhighlight-err-loading' => "(eror nel caricamento de l'elenco dei linguagi suportà)",
@@ -950,11 +1182,18 @@
 	'geshi.css' => "/* I stili CSS inserìi qua i se àplica a l'evidenziazion de sintassi con GeSHi */",
 );
 
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'syntaxhighlight-err-language' => "Vär kel'",
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  */
 $messages['vi'] = array(
-	'syntaxhighlight-desc' => 'Tô màu cú pháp trong thẻ <tt><nowiki><source></nowiki></tt> dùng [http://qbnz.com/highlighter/ GeSHi Highlighter]',
+	'syntaxhighlight-desc' => 'Tô màu cú pháp trong thẻ <code><syntaxhighlight></code> dùng [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'syntaxhighlight-specify' => 'Bạn cần phải định rõ một ngôn ngữ như vầy:',
 	'syntaxhighlight-supported' => 'Các ngôn ngữ được tô màu cú pháp:',
 	'syntaxhighlight-err-loading' => '(gặp lỗi khi nạp danh sách các ngôn ngữ được hỗ trợ)',
@@ -977,14 +1216,15 @@
  * @author פוילישער
  */
 $messages['yi'] = array(
+	'syntaxhighlight-specify' => 'איר דארפֿט ספעציפֿירן א שפראַך אזוי:',
 	'syntaxhighlight-err-language' => 'אומגילטיקע שפראַך.',
 );
 
-/** Yue (粵語)
+/** Cantonese (粵語)
  * @author Shinjiman
  */
 $messages['yue'] = array(
-	'syntaxhighlight-desc' => '用[http://qbnz.com/highlighter/ GeSHi Highlighter]以<tt><nowiki><source></nowiki></tt>提供醒目提示',
+	'syntaxhighlight-desc' => '用[http://qbnz.com/highlighter/ GeSHi Highlighter]以<code><syntaxhighlight></code>提供醒目提示',
 	'syntaxhighlight-specify' => '你需要指定一種語言,好似咁:',
 	'syntaxhighlight-supported' => '語法醒目標示所支援嘅語言:',
 	'syntaxhighlight-err-loading' => '(支援語言清單載入錯誤)',
@@ -996,23 +1236,24 @@
  * @author Shinjiman
  */
 $messages['zh-hans'] = array(
-	'syntaxhighlight-desc' => '使用[http://qbnz.com/highlighter/ GeSHi Highlighter]以<tt><nowiki><source></nowiki></tt>提供高亮',
+	'syntaxhighlight-desc' => '使用[http://qbnz.com/highlighter/ GeSHi Highlighter]以<code><syntaxhighlight></code>提供高亮',
 	'syntaxhighlight-specify' => '您需要指定一种语言,像这样:',
 	'syntaxhighlight-supported' => '语法高亮所支持的语言:',
-	'syntaxhighlight-err-loading' => '(支持语言列表载入错误)',
+	'syntaxhighlight-err-loading' => '(支持语言列表载入错误)',
 	'syntaxhighlight-err-language' => '无效的语言。',
 	'geshi.css' => '/* 放在这里的CSS会以GeSHi语法高亮方式显示 */',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Mark85296341
  * @author Shinjiman
  */
 $messages['zh-hant'] = array(
-	'syntaxhighlight-desc' => '使用[http://qbnz.com/highlighter/ GeSHi Highlighter]以<tt><nowiki><source></nowiki></tt>提供醒目提示',
-	'syntaxhighlight-specify' => '您需要指定一種語言,像這樣:',
-	'syntaxhighlight-supported' => '語法醒目標示所支援的語言:',
-	'syntaxhighlight-err-loading' => '(支援語言清單載入錯誤)',
+	'syntaxhighlight-desc' => '使用 [http://qbnz.com/highlighter/ GeSHi Highlighter] 以 <code><syntaxhighlight></code> 提供醒目提示',
+	'syntaxhighlight-specify' => '您需要指定一種語言,像這樣:',
+	'syntaxhighlight-supported' => '語法醒目標示所支援的語言:',
+	'syntaxhighlight-err-loading' => '(支援語言清單載入錯誤)',
 	'syntaxhighlight-err-language' => '無效的語言。',
-	'geshi.css' => '/* 放在這裏的CSS會以GeSHi語法醒目提示方式顯示 */',
+	'geshi.css' => '/* 放在這裡的 CSS 會以 GeSHi 語法醒目提示方式顯示 */',
 );
 

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.local.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.local.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.local.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Custom ResourceLoader module that loads a Geshi.css per-wiki.
+ */
+class HighlightGeSHilocal extends ResourceLoaderWikiModule {
+
+	/**
+	 * @param $context ResourceLoaderContext
+	 * @return array
+	 */
+	protected function getPages( ResourceLoaderContext $context ) {
+		return array(
+			'MediaWiki:Geshi.css'      => array( 'type' => 'style' ),
+		);
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-geshi/usr/share/mediawiki-extensions/geshi/SyntaxHighlight_GeSHi.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -16,12 +16,13 @@
  *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  */
 
 /**
- * @addtogroup Extensions
+ * @file
+ * @ingroup Extensions
  * @author Brion Vibber
  *
  * This extension wraps the GeSHi highlighter: http://qbnz.com/highlighter/
@@ -33,39 +34,38 @@
  * A language is specified like: <source lang="c">void main() {}</source>
  * If you forget, or give an unsupported value, the extension spits out
  * some help text and a list of all supported languages.
- *
- * The extension has been tested with GeSHi 1.0.8 and MediaWiki 1.14a
- * as of 2008-09-28.
  */
 
-if( !defined( 'MEDIAWIKI' ) )
+if( !defined( 'MEDIAWIKI' ) ) {
 	die();
+}
 
 $wgExtensionCredits['parserhook']['SyntaxHighlight_GeSHi'] = array(
+	'path'           => __FILE__,
 	'name'           => 'SyntaxHighlight',
-	'svn-date' => '$LastChangedDate: 2008-09-28 17:30:45 +0200 (Sun, 28 Sep 2008) $',
-	'svn-revision' => '$LastChangedRevision: 41349 $',
 	'author'         => array( 'Brion Vibber', 'Tim Starling', 'Rob Church', 'Niklas Laxström' ),
-	'description'    => 'Provides syntax highlighting using [http://qbnz.com/highlighter/ GeSHi Highlighter]',
 	'descriptionmsg' => 'syntaxhighlight-desc',
-	'url'            => 'http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi',
+	'url'            => 'https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi',
 );
 
+$wgSyntaxHighlightDefaultLang = null; //Change this in LocalSettings.php
 $dir = dirname(__FILE__) . '/';
 $wgExtensionMessagesFiles['SyntaxHighlight_GeSHi'] = $dir . 'SyntaxHighlight_GeSHi.i18n.php';
 $wgAutoloadClasses['SyntaxHighlight_GeSHi'] = $dir . 'SyntaxHighlight_GeSHi.class.php';
 $wgHooks['ShowRawCssJs'][] = 'SyntaxHighlight_GeSHi::viewHook';
-if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
-	$wgHooks['ParserFirstCallInit'][] = 'efSyntaxHighlight_GeSHiSetup';
-} else {
-	$wgExtensionFunctions[] = 'efSyntaxHighlight_GeSHiSetup';
-}
+$wgHooks['ParserFirstCallInit'][] = 'efSyntaxHighlight_GeSHiSetup';
+$wgHooks['ExtensionTypes'][] = 'SyntaxHighlight_GeSHi::hSpecialVersion_GeSHi';
 
+$wgAutoloadClasses['HighlightGeSHilocal'] = $dir . 'SyntaxHighlight_GeSHi.local.php';
+$wgResourceModules['ext.geshi.local'] = array( 'class' => 'HighlightGeSHilocal' );
+
 /**
  * Register parser hook
+ *
+ * @param $parser Parser
  */
-function efSyntaxHighlight_GeSHiSetup() {
-	global $wgParser;
-	$wgParser->setHook( 'source', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) );
+function efSyntaxHighlight_GeSHiSetup( &$parser ) {
+	$parser->setHook( 'source', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) );
+	$parser->setHook( 'syntaxhighlight', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) );
 	return true;
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Internationalization file for the GraphViz extension.
  *
@@ -15,7 +14,125 @@
  * @author Jeroen De Dauw
  */
 $messages['en'] = array(
-	'graphviz-desc' => '[http://www.graphviz.org Graphviz] is a program/language that allows the creation of numerous types of graphs.
-fThis extension allows the embedding of graphviz markup in MediaWiki pages and generates inline images to display.',
+	'graphviz-desc' => 'Allows embedding [http://www.graphviz.org Graphviz] markup and generates inline images',
 );
 
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'graphviz-desc' => 'Permite incorporar llinguax de marques de [http://www.graphviz.org Graphviz] y xenera imaxes en llinia',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author Wizardist
+ */
+$messages['be-tarask'] = array(
+	'graphviz-desc' => 'Дазваляе выкарыстаньне разьметкі [http://www.graphviz.org Graphviz] і стварэньня ўбудаваных выяваў',
+);
+
+/** German (Deutsch)
+ * @author Kghbln
+ */
+$messages['de'] = array(
+	'graphviz-desc' => 'Ermöglicht das Einbetten und Anzeigen von Grafiken mit Hilfe von [http://www.graphviz.org Graphviz]',
+);
+
+/** Lower Sorbian (Dolnoserbski)
+ * @author Michawiki
+ */
+$messages['dsb'] = array(
+	'graphviz-desc' => 'Zmóžnja zasajźowanje a  napóranje wobrazow z pomocu [http://www.graphviz.org Graphviz]',
+);
+
+/** French (Français)
+ * @author Gomoko
+ */
+$messages['fr'] = array(
+	'graphviz-desc' => 'Permet un balisage [http://www.graphviz.org Graphviz] embarqué et génère les images en ligne',
+);
+
+/** Galician (Galego)
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'graphviz-desc' => 'Permite a incorporación de formato [http://www.graphviz.org Graphviz] e xera imaxes en liña',
+);
+
+/** Hebrew (עברית)
+ * @author Amire80
+ */
+$messages['he'] = array(
+	'graphviz-desc' => 'מאפשרת הטמעת סימון [http://www.graphviz.org Graphviz] ומייצרת תמונות מתוך הטקסט',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'graphviz-desc' => 'Zmóžnja zasadźowanje a  wutworjenje wobrazow z pomocu [http://www.graphviz.org Graphviz]',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'graphviz-desc' => 'Permitte incorporar le marcation [http://www.graphviz.org Graphviz] e genera imagines pro insertion in pagina',
+);
+
+/** Japanese (日本語)
+ * @author Whym
+ */
+$messages['ja'] = array(
+	'graphviz-desc' => '[http://www.graphviz.org Graphviz]記法の埋め込みとインライン画像の生成を可能にする',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'graphviz-desc' => 'Määd_et müjjelesch, <i lang="en">[http://www.graphviz.org Graphviz]</i> sing Befähle enzebenge un Belder enzefööje.',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'graphviz-desc' => "Erlaabt d'Abannen an d'Weise vu Biller mat Hëllef vu [http://www.graphviz.org Graphviz]",
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'graphviz-desc' => 'Овозможува вметнување на кодово означување „[http://www.graphviz.org Graphviz]“ и создава слики во самите редови текст',
+);
+
+/** Dutch (Nederlands)
+ * @author Siebrand
+ */
+$messages['nl'] = array(
+	'graphviz-desc' => 'Maakt het mogelijk [http://www.graphviz.org Graphviz-markup] te gebruiken en inline afbeeldingen aan te maken',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'graphviz-desc' => "A përmëtt d'anserì dij marcador [http://www.graphviz.org Graphviz] e a génera dle figure an linia",
+);
+
+/** Russian (Русский)
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'graphviz-desc' => 'Позволяет использовать разметку [http://www.graphviz.org Graphviz] и создавать встроенные изображения',
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Linforest
+ */
+$messages['zh-hans'] = array(
+	'graphviz-desc' => '允许内置 [http://www.graphviz.org Graphviz] 标记,并生成内嵌式图像',
+);
+

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-graphviz/usr/share/mediawiki-extensions/graphviz/GraphViz.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,8 +1,5 @@
 <?php
-/*
- * @date: 2010-11-01
- * @version: 0.9 (by hummel-riegel)
- *
+/**
  * See mediawiki.org/wiki/Extension:GraphViz for more information
  *
  * Extension to allow Graphviz to work inside MediaWiki.
@@ -77,7 +74,7 @@
 
 define( 'GraphViz_VERSION', '0.9.1 alpha' );
 
-/*
+/**
  * The GraphViz-Class with the essential settings
  */
 class GraphVizSettings {
@@ -91,7 +88,7 @@
 
 $wgGraphVizSettings = new GraphVizSettings(); // create new instance of GraphVizSettings
 
-/*
+/**
  * Configuration of the graphviz instance
  * if parameters are overwritten in the LocalSettings.php nothing will be changed
  */
@@ -124,7 +121,7 @@
 
 
 
-/*
+/**
  * Media Wiki Plugin Stuff
  */
 
@@ -140,13 +137,13 @@
 		'[mailto://arno.venner@gmail.com MasterOfDesaster]',
 		'[http://hummel-universe.net Thomas Hummel]'
 		),
-	'url' => 'http://www.mediawiki.org/wiki/Extension:GraphViz',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:GraphViz',
 	'descriptionmsg' => 'graphviz-desc'
 	);
 
 	$wgExtensionMessagesFiles['GraphViz'] = dirname( __FILE__ ) . '/GraphViz.i18n.php';
 
-	/*
+	/**
 	 * Information about the hooks used
 	 */
 	function wfGraphVizSetHook( $parser ) {
@@ -170,7 +167,7 @@
 	 */
 	function renderGraphviz( $timelinesrc, $args = null, $parser = null )	  // Raw Script data
 	{
-			
+
 		if ( isset( $args["renderer"] ) ) {
 			switch( $args["renderer"] ) {
 				case 'circo':
@@ -190,7 +187,7 @@
 		return renderEngine( $timelinesrc, $args, $parser ); // go to the "normal" rendering stuff
 
 	}
-	/*
+	/**
 	 * The actual renderingfunction for handling all the stuff
 	 */
 	function renderEngine( $timelinesrc, $args = null, $parser = null )	  // Raw Script data
@@ -277,7 +274,7 @@
 		/* create actual storagename
 		 */
 		$wgGraphVizSettings->named = strtolower($wgGraphVizSettings->named );   // avoid problems with upper/lowercase
-		
+
 		/* get title name from parser. If parser not set, use $wgTitle instead
 		 */
 		if ($parser!=null){
@@ -285,24 +282,18 @@
 		} else{
 			$title = $wgTitle->getFulltext();
 		}
-		
+
 		$storagename = str_replace( "%", '_perc_', urlencode( $title ) ) . '---'; // clean up pagename (special chars etc)
 
 		if ( $wgGraphVizSettings->named == 'md5' ) {
-			$storagename .= md5( $timelinesrc );  // produce md5-hash out of the storagename !can be duplicate!
+			$storagename = md5( $storagename . $timelinesrc );  // produce md5-hash out of the storagename !can be duplicate!
 		} elseif ( $wgGraphVizSettings->named == 'sha1' ) {
-			$storagename .= sha1( $timelinesrc );  // produce sha1-hash
+			$storagename = sha1( $storagename . $timelinesrc );  // produce sha1-hash
 		} else { // named == 'named'
 			$storagename .=  str_replace( "%", '_perc_',
-			urlencode(
-			trim(
-			str_replace( "\n", '',
-			str_replace( "\\", '/',
-			substr( $timelinesrc, 0, strpos( $timelinesrc, '{' ) )  // extract the name of the graph out of the graph
-			)
-			)
-			)
-			)
+				urlencode( trim( str_replace( array( "\n", "\\" ), array( '', '/' ),
+					substr( $timelinesrc, 0, strpos( $timelinesrc, '{' ) )  // extract the name of the graph out of the graph
+				) ) )
 			);
 		}
 		$info .= "<pre>storagename=" . $storagename . "</pre>";

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.i18n.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,353 @@
+<?php
+/**
+ * Internationalisation file for extension LdapAuthentication.
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$messages = array();
+
+/** English
+ * @author Ryan Lane
+ */
+$messages['en'] = array(
+	'ldapauthentication-desc' => 'LDAP authentication plugin with support for multiple LDAP authentication methods',
+);
+
+/** Message documentation (Message documentation)
+ * @author Fryed-peach
+ */
+$messages['qqq'] = array(
+	'ldapauthentication-desc' => '{{desc}}',
+);
+
+/** Afrikaans (Afrikaans)
+ * @author Naudefj
+ */
+$messages['af'] = array(
+	'ldapauthentication-desc' => 'Uitbreiding vir LDAP-outentisiteit wat die meeste LDAP-outentisiteitsmetodes ondersteun',
+);
+
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'ldapauthentication-desc' => 'plugin LDAP vertetimi me mbështetje për metoda të shumta tek LDAP',
+);
+
+/** Arabic (العربية)
+ * @author Meno25
+ */
+$messages['ar'] = array(
+	'ldapauthentication-desc' => 'إضافة تحقيق LDAP بدعم لوسائل تحقيق LDAP متعددة',
+);
+
+/** Asturian (Asturianu)
+ * @author Xuacu
+ */
+$messages['ast'] = array(
+	'ldapauthentication-desc' => "Complemento p'autenticación LDAP con sofitu pa dellos métodos d'autenticación LDAP",
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
+ * @author EugeneZelenko
+ */
+$messages['be-tarask'] = array(
+	'ldapauthentication-desc' => 'Дапаўненьне LDAP-аўтэнтыфікацыі з падтрымкай некалькіх мэтадаў аўтэнтыфікацыі LDAP',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fulup
+ */
+$messages['br'] = array(
+	'ldapauthentication-desc' => 'Adveziant gwiriekaat LDAP ennañ meur a hentenn wiriekaat LDAP',
+);
+
+/** Bosnian (Bosanski)
+ * @author CERminator
+ */
+$messages['bs'] = array(
+	'ldapauthentication-desc' => 'Proširenje LDAP autentifikacije sa podrškom za mnoge metode LDAP autentifikacije',
+);
+
+/** Catalan (Català)
+ * @author Paucabot
+ */
+$messages['ca'] = array(
+	'ldapauthentication-desc' => "Connector d'autentificació LDAP amb suport per a diversos mètodes d'autenticació LDAP",
+);
+
+/** Czech (Česky)
+ * @author Mormegil
+ */
+$messages['cs'] = array(
+	'ldapauthentication-desc' => 'Autentizační modul pro LDAP podporující několik autentizačních metod LDAP',
+);
+
+/** German (Deutsch)
+ * @author Imre
+ */
+$messages['de'] = array(
+	'ldapauthentication-desc' => 'Plug-in für LDAP-Authentifizierung mit Unterstützung einiger LDAP-Authentifizierungsmethoden',
+);
+
+/** Lower Sorbian (Dolnoserbski)
+ * @author Michawiki
+ */
+$messages['dsb'] = array(
+	'ldapauthentication-desc' => 'Tykac awtentifikacije LDAP z pódpěru za někotare metody LDAP-awtentifikacije',
+);
+
+/** Esperanto (Esperanto)
+ * @author Blahma
+ */
+$messages['eo'] = array(
+	'ldapauthentication-desc' => 'LDAP-aŭtentiga kromprogramo kun subteno de pluraj LDAP-aŭtentigaj metodoj',
+);
+
+/** Spanish (Español)
+ * @author Translationista
+ */
+$messages['es'] = array(
+	'ldapauthentication-desc' => 'Complemento de autentificación LDAP con apoyo de múltiples métodos de autentificación LDAP',
+);
+
+/** Finnish (Suomi)
+ * @author Centerlink
+ */
+$messages['fi'] = array(
+	'ldapauthentication-desc' => 'LDAP-todentamisliitännäinen useiden LDAP-todennustapojen tuella',
+);
+
+/** French (Français)
+ * @author IAlex
+ * @author Urhixidur
+ */
+$messages['fr'] = array(
+	'ldapauthentication-desc' => 'Extension d’authentification LDAP prenant en charge de multiples méthodes d’authentification LDAP',
+);
+
+/** Galician (Galego)
+ * @author Toliño
+ */
+$messages['gl'] = array(
+	'ldapauthentication-desc' => 'Complemento de autenticación LDAP con soporte para varios métodos de autenticación LDAP',
+);
+
+/** Swiss German (Alemannisch)
+ * @author Als-Holder
+ */
+$messages['gsw'] = array(
+	'ldapauthentication-desc' => 'LDAP-Authentifizierigs-Plugin mit Unterstitzig fir multipli LDAP-Authentifizierigs-Merthode',
+);
+
+/** Hebrew (עברית)
+ * @author YaronSh
+ */
+$messages['he'] = array(
+	'ldapauthentication-desc' => 'תוסף אימות LDAP עם תמיכה במספר שיטות LDAP לאימות',
+);
+
+/** Upper Sorbian (Hornjoserbsce)
+ * @author Michawiki
+ */
+$messages['hsb'] = array(
+	'ldapauthentication-desc' => 'Tykač awtentifikacije LDAP z podpěru za wjacore metody LDAP-awtentifikacije',
+);
+
+/** Hungarian (Magyar)
+ * @author Glanthor Reviol
+ */
+$messages['hu'] = array(
+	'ldapauthentication-desc' => 'LDAP hitelesítési bővítmény többféle LDAP azonosítási módszer támogatásával',
+);
+
+/** Interlingua (Interlingua)
+ * @author McDutchie
+ */
+$messages['ia'] = array(
+	'ldapauthentication-desc' => 'Plugin pro authentication LDAP con supporto pro multiple methodos de authentication LDAP',
+);
+
+/** Indonesian (Bahasa Indonesia)
+ * @author IvanLanin
+ */
+$messages['id'] = array(
+	'ldapauthentication-desc' => 'Pengaya otentikasi LDAP dengan dukungan untuk berbagai metode otentikasi LDAP',
+);
+
+/** Italian (Italiano)
+ * @author HalphaZ
+ */
+$messages['it'] = array(
+	'ldapauthentication-desc' => 'Plugin di autenticazione LDAP con supporto a diversi metodi di autenticazione LDAP',
+);
+
+/** Japanese (日本語)
+ * @author Aotake
+ */
+$messages['ja'] = array(
+	'ldapauthentication-desc' => '複数のLDAP認証方式をサポートするLDAP認証プラグイン',
+);
+
+/** Colognian (Ripoarisch)
+ * @author Purodha
+ */
+$messages['ksh'] = array(
+	'ldapauthentication-desc' => 'Dat Zohsatzprojramm för et Enlogge övver <i lang="en">LDAP</i> löht ungerscheidlijje Mettoohde zoh, för et Prööfe, wä wä es.',
+);
+
+/** Luxembourgish (Lëtzebuergesch)
+ * @author Robby
+ */
+$messages['lb'] = array(
+	'ldapauthentication-desc' => 'Authentifikatiouns-Plugin fir LDAP mat Ënnerstëtzung fir multipel LDAP Authentifikatiouns-Methoden',
+);
+
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'ldapauthentication-desc' => 'LDAP приклучок за потврдување со поддршка за повеќе методи на LDAP потврдување',
+);
+
+/** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ */
+$messages['ms'] = array(
+	'ldapauthentication-desc' => 'Pemalam pengesahan LDAP dengan sokongan untuk berbilang kaedah pengesahan LDAP',
+);
+
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Nghtwlkr
+ */
+$messages['nb'] = array(
+	'ldapauthentication-desc' => 'Programutvidelse for LDAP-autentisering med støtte for flere LDAP-autentiseringsmetoder',
+);
+
+/** Dutch (Nederlands)
+ * @author Siebrand
+ */
+$messages['nl'] = array(
+	'ldapauthentication-desc' => 'LDAP-authenticatieplug-in met ondersteuning voor meerdere LDAP-authenticatiemethoden',
+);
+
+/** Occitan (Occitan)
+ * @author Cedric31
+ */
+$messages['oc'] = array(
+	'ldapauthentication-desc' => "Plugin d'autentificacion LDAP amb supòrt de metòdes d'autentificacion LDAP multiples",
+);
+
+/** Polish (Polski)
+ * @author Sp5uhe
+ */
+$messages['pl'] = array(
+	'ldapauthentication-desc' => 'Wtyczka autoryzacji użytkowników z użyciem LDAP ze wsparciem dla wielu metod autoryzacji',
+);
+
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'ldapauthentication-desc' => "Plugin për l'autenticassion LDAP con apògg për vàire manere d'autenticassion LDAP",
+);
+
+/** Portuguese (Português)
+ * @author Hamilton Abreu
+ */
+$messages['pt'] = array(
+	'ldapauthentication-desc' => "''Plugin'' de autenticação LDAP, com suporte para vários métodos de autenticação",
+);
+
+/** Brazilian Portuguese (Português do Brasil)
+ * @author Giro720
+ */
+$messages['pt-br'] = array(
+	'ldapauthentication-desc' => "''Plugin'' de autenticação LDAP, com suporte para vários métodos de autenticação",
+);
+
+/** Tarandíne (Tarandíne)
+ * @author Joetaras
+ */
+$messages['roa-tara'] = array(
+	'ldapauthentication-desc' => "plugin de autendicazione LDAP cu 'u supporte pe autendicaziune multeple de metode LDAP",
+);
+
+/** Russian (Русский)
+ * @author Александр Сигачёв
+ */
+$messages['ru'] = array(
+	'ldapauthentication-desc' => 'Плагин LDAP-аутентификации с поддержкой нескольких методов проверки подлинности LDAP',
+);
+
+/** Slovak (Slovenčina)
+ * @author Helix84
+ */
+$messages['sk'] = array(
+	'ldapauthentication-desc' => 'Zásuvný modul na autentifikáciu prostredníctvom LDAP s podporou viacerých metód LDAP',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Михајло Анђелковић
+ */
+$messages['sr-ec'] = array(
+	'ldapauthentication-desc' => 'Плагин за LDAP ауторизацију, са подршком за више метода LDAP ауторизације',
+);
+
+/** Serbian (Latin script) (‪Srpski (latinica)‬) */
+$messages['sr-el'] = array(
+	'ldapauthentication-desc' => 'Plagin za LDAP autorizaciju, sa podrškom za više metoda LDAP autorizacije',
+);
+
+/** Swedish (Svenska)
+ * @author Boivie
+ */
+$messages['sv'] = array(
+	'ldapauthentication-desc' => 'LDAP-autentiseringsplugin med stöd för flera LDAP-autentiseringsmetoder',
+);
+
+/** Tagalog (Tagalog)
+ * @author AnakngAraw
+ */
+$messages['tl'] = array(
+	'ldapauthentication-desc' => 'Pampasak na pangpagpapatotoo ng LDAP na may suporta para sa maramihang mga pamamaraan ng pagpapatotoo ng LDAP',
+);
+
+/** Turkish (Türkçe)
+ * @author Vito Genovese
+ */
+$messages['tr'] = array(
+	'ldapauthentication-desc' => 'Birden çok LDAP kimlik doğrulama yöntemini destekleyen LDAP kimlik doğrulama eklentisi',
+);
+
+/** Ukrainian (Українська)
+ * @author Ytsukeng Fyvaprol
+ */
+$messages['uk'] = array(
+	'ldapauthentication-desc' => 'Плагін LDAP-аутентифікації з підтримкою декількох методів перевірки автентичності LDAP',
+);
+
+/** Vietnamese (Tiếng Việt)
+ * @author Minh Nguyen
+ */
+$messages['vi'] = array(
+	'ldapauthentication-desc' => 'Phần bổ trợ xác thực LDAP hỗ trợ nhiều phương pháp xác thực LDAP',
+);
+
+/** Simplified Chinese (‪中文(简体)‬)
+ * @author Yanmiao liu
+ */
+$messages['zh-hans'] = array(
+	'ldapauthentication-desc' => '具有多种LDAP认证方法支持的LDAP认证插件',
+);
+
+/** Traditional Chinese (‪中文(繁體)‬)
+ * @author Anakmalaysia
+ */
+$messages['zh-hant'] = array(
+	'ldapauthentication-desc' => '具有多種LDAP認證方法支持的LDAP認證外掛程式',
+);
+

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAuthentication.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -13,86 +13,461 @@
 #
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 # http://www.gnu.org/copyleft/gpl.html
 
 /**
- * LdapAuthentication plugin.
+ * LdapAuthentication plugin. LDAP Authentication and authorization integration with MediaWiki.
  *
- * Password authentication, and Smartcard Authentication support are currently
- * available. All forms of authentication, current and future, should support
- * group, and attribute based restrictions; preference pulling; and group
- * syncronization. All forms of authentication should have basic support for 
- * adding users, changing passwords, and updating preferences in LDAP.
- *
- * Password authentication has a number of configurations, including straight binds,
- * proxy based authentication, and anonymous-search based authentication.
- *
- * @package MediaWiki
+ * @file
+ * @ingroup MediaWiki
  */
 
 #
 # LdapAuthentication.php
 #
 # Info available at http://www.mediawiki.org/wiki/Extension:LDAP_Authentication
-# and at http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Configuration_Examples
-# and at http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Smartcard_Configuration_Examples
+# Support is available at http://www.mediawiki.org/wiki/Extension_talk:LDAP_Authentication
 #
-# Support is available at http://www.mediawiki.org/wiki/Extension_talk:LDAP_Authentication 
-#
 
+if ( !defined( 'MEDIAWIKI' ) ) exit;
+
+$wgLDAPDomainNames = array();
+$wgLDAPServerNames = array();
+$wgLDAPUseLocal = false;
+$wgLDAPEncryptionType = array();
+$wgLDAPOptions = array();
+$wgLDAPPort = array();
+$wgLDAPSearchStrings = array();
+$wgLDAPProxyAgent = array();
+$wgLDAPProxyAgentPassword = array();
+$wgLDAPSearchAttributes = array();
+$wgLDAPBaseDNs = array();
+$wgLDAPGroupBaseDNs = array();
+$wgLDAPUserBaseDNs = array();
+$wgLDAPWriterDN = array();
+$wgLDAPWriterPassword = array();
+$wgLDAPWriteLocation = array();
+$wgLDAPAddLDAPUsers = array();
+$wgLDAPUpdateLDAP = array();
+$wgLDAPPasswordHash = array();
+$wgLDAPMailPassword = array();
+$wgLDAPPreferences = array();
+$wgLDAPDisableAutoCreate = array();
+$wgLDAPDebug = 0;
+$wgLDAPGroupUseFullDN = array();
+$wgLDAPLowerCaseUsername = array();
+$wgLDAPLowerCaseUsernameScheme = array();
+$wgLDAPGroupUseRetrievedUsername = array();
+$wgLDAPGroupObjectclass = array();
+$wgLDAPGroupAttribute = array();
+$wgLDAPGroupNameAttribute = array();
+$wgLDAPGroupsUseMemberOf = array();
+$wgLDAPUseLDAPGroups = array();
+$wgLDAPLocallyManagedGroups = array();
+$wgLDAPGroupsPrevail = array();
+$wgLDAPRequiredGroups = array();
+$wgLDAPExcludedGroups = array();
+$wgLDAPGroupSearchNestedGroups = array();
+$wgLDAPAuthAttribute = array();
+$wgLDAPAutoAuthUsername = "";
+$wgLDAPAutoAuthDomain = "";
+$wgPasswordResetRoutes['domain'] = true;
+
+define( "LDAPAUTHVERSION", "2.0a" );
+
 /**
  * Add extension information to Special:Version
  */
 $wgExtensionCredits['other'][] = array(
+	'path' => __FILE__,
 	'name' => 'LDAP Authentication Plugin',
-	'version' => '1.2b (alpha)',
+	'version' => LDAPAUTHVERSION,
 	'author' => 'Ryan Lane',
-	'description' => 'LDAP Authentication plugin with support for multiple LDAP authentication methods',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:LDAP_Authentication',
-	);
+	'descriptionmsg' => 'ldapauthentication-desc',
+	'url' => 'https://www.mediawiki.org/wiki/Extension:LDAP_Authentication',
+);
 
-//constants for search base
-define("GROUPDN", 0);
-define("USERDN", 1);
-define("DEFAULTDN", 2);
+$dir = dirname( __FILE__ ) . '/';
+$wgExtensionMessagesFiles['LdapAuthentication'] = $dir . 'LdapAuthentication.i18n.php';
 
-//constants for error reporting
-define("NONSENSITIVE", 1);
-define("SENSITIVE", 2);
-define("HIGHLYSENSITIVE", 3);
+// constants for search base
+define( "GROUPDN", 0 );
+define( "USERDN", 1 );
+define( "DEFAULTDN", 2 );
 
+// constants for error reporting
+define( "NONSENSITIVE", 1 );
+define( "SENSITIVE", 2 );
+define( "HIGHLYSENSITIVE", 3 );
+
 class LdapAuthenticationPlugin extends AuthPlugin {
 
-	//ldap connection resource
+	// ldap connection resource
 	var $ldapconn;
 
-	//preferences
+	// preferences
 	var $email, $lang, $realname, $nickname, $externalid;
 
-	//username pulled from ldap
+	// username pulled from ldap
 	var $LDAPUsername;
 
-	//userdn pulled from ldap
+	// userdn pulled from ldap
 	var $userdn;
 
-	//groups pulled from ldap
+	// groups pulled from ldap
 	var $userLDAPGroups;
 	var $allLDAPGroups;
 
-	//boolean to test for failed auth
+	// boolean to test for failed auth
 	var $authFailed;
 
-	//boolean to test for fetched user info
+	// boolean to test for fetched user info
 	var $fetchedUserInfo;
 
-	//the user's entry and all attributes
+	// the user's entry and all attributes
 	var $userInfo;
 
-	function LdapAuthenticationPlugin() {
+	// the user we are currently bound as
+	var $boundAs;
+
+	/**
+	 * Wrapper for ldap_connect
+	 * @param null $hostname
+	 * @param int $port
+	 * @return resource|false
+	 */
+	public static function ldap_connect( $hostname=null, $port=389 ) {
+		wfSuppressWarnings();
+		$ret = ldap_connect( $hostname, $port );
+		wfRestoreWarnings();
+		return $ret;
 	}
 
 	/**
+	 * Wrapper for ldap_bind
+	 * @param $ldapconn
+	 * @param null $dn
+	 * @param null $password
+	 * @return bool
+	 */
+	public static function ldap_bind( $ldapconn, $dn=null, $password=null ) {
+		wfSuppressWarnings();
+		$ret = ldap_bind( $ldapconn, $dn, $password );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_unbind
+	 * @param $ldapconn
+	 * @return bool
+	 */
+	public static function ldap_unbind( $ldapconn ) {
+		if ( $ldapconn ) {
+			wfSuppressWarnings();
+			$ret = ldap_unbind( $ldapconn );
+			wfRestoreWarnings();
+		} else {
+			$ret = false;
+		}
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_modify
+	 * @param $ldapconn
+	 * @param $dn
+	 * @param $entry
+	 * @return bool
+	 */
+	public static function ldap_modify( $ldapconn, $dn, $entry ) {
+		wfSuppressWarnings();
+		$ret = ldap_modify( $ldapconn, $dn, $entry );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_add
+	 * @param $ldapconn
+	 * @param $dn
+	 * @param $entry
+	 * @return bool
+	 */
+	public static function ldap_add( $ldapconn, $dn, $entry ) {
+		wfSuppressWarnings();
+		$ret = ldap_add( $ldapconn, $dn, $entry );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_delete
+	 * @param $ldapconn
+	 * @param $dn
+	 * @return bool
+	 */
+	public static function ldap_delete( $ldapconn, $dn ) {
+		wfSuppressWarnings();
+		$ret = ldap_delete( $ldapconn, $dn );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_search
+	 * @param $ldapconn
+	 * @param $basedn
+	 * @param $filter
+	 * @param null $attributes
+	 * @param null $attrsonly
+	 * @param null $sizelimit
+	 * @param null $timelimit
+	 * @param null $deref
+	 * @return resource
+	 */
+	public static function ldap_search( $ldapconn, $basedn, $filter, $attributes=array(), $attrsonly=null, $sizelimit=null, $timelimit=null, $deref=null ) {
+		wfSuppressWarnings();
+		$ret = ldap_search( $ldapconn, $basedn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_read
+	 * @param $ldapconn
+	 * @param $basedn
+	 * @param $filter
+	 * @param null $attributes
+	 * @param null $attrsonly
+	 * @param null $sizelimit
+	 * @param null $timelimit
+	 * @param null $deref
+	 * @return resource
+	 */
+	public static function ldap_read( $ldapconn, $basedn, $filter, $attributes=array(), $attrsonly=null, $sizelimit=null, $timelimit=null, $deref=null ) {
+		wfSuppressWarnings();
+		$ret = ldap_read( $ldapconn, $basedn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_list
+	 * @param $ldapconn
+	 * @param $basedn
+	 * @param $filter
+	 * @param null $attributes
+	 * @param null $attrsonly
+	 * @param null $sizelimit
+	 * @param null $timelimit
+	 * @param null $deref
+	 * @return \resource
+	 */
+	public static function ldap_list( $ldapconn, $basedn, $filter, $attributes=array(), $attrsonly=null, $sizelimit=null, $timelimit=null, $deref=null ) {
+		wfSuppressWarnings();
+		$ret = ldap_list( $ldapconn, $basedn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_get_entries
+	 * @param $ldapconn
+	 * @param $resultid
+	 * @return array
+	 */
+	public static function ldap_get_entries( $ldapconn, $resultid ) {
+		wfSuppressWarnings();
+		$ret = ldap_get_entries( $ldapconn, $resultid );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Wrapper for ldap_count_entries
+	 * @param $ldapconn
+	 * @param $resultid
+	 * @return int
+	 */
+	public static function ldap_count_entries( $ldapconn, $resultid ) {
+		wfSuppressWarnings();
+		$ret = ldap_count_entries( $ldapconn, $resultid );
+		wfRestoreWarnings();
+		return $ret;
+	}
+
+	/**
+	 * Get the user's domain as defined in the user's session.
+	 *
+	 * @return string
+	 */
+	public function getSessionDomain() {
+		if ( isset( $_SESSION['wsDomain'] ) ) {
+			return $_SESSION['wsDomain'];
+		} else {
+			return '';
+		}
+	}
+
+	/**
+	 * Get configuration defined by admin, or return default value
+	 *
+	 * @param string $preference
+	 * @return mixed
+	 */
+	public function getConf( $preference, $domain='' ) {
+		if ( !$domain ) {
+			$domain = $this->getSessionDomain();
+		}
+		switch ( $preference ) {
+		case 'ServerNames':
+			global $wgLDAPServerNames;
+			return self::setOrDefault( $wgLDAPServerNames, $domain );
+		case 'UseLocal':
+			global $wgLDAPUseLocal;
+			return $wgLDAPUseLocal;
+		case 'EncryptionType':
+			global $wgLDAPEncryptionType;
+			return self::setOrDefault( $wgLDAPEncryptionType, $domain, 'tls' );
+		case 'Options':
+			global $wgLDAPOptions;
+			return self::setOrDefault( $wgLDAPOptions, $domain, array() );
+		case 'Port':
+			global $wgLDAPPort;
+			if ( isset( $wgLDAPPort[$domain] ) ) {
+				$this->printDebug( "Using non-standard port: " . $wgLDAPPort[$domain], SENSITIVE );
+				return (string)$wgLDAPPort[$domain];
+			} elseif ( $this->getConf( 'EncryptionType' ) == 'ssl' ) {
+				return "636";
+			} else {
+				return "389";
+			}
+		case 'SearchString':
+			global $wgLDAPSearchStrings;
+			return self::setOrDefault( $wgLDAPSearchStrings, $domain );
+		case 'ProxyAgent':
+			global $wgLDAPProxyAgent;
+			return self::setOrDefault( $wgLDAPProxyAgent, $domain );
+		case 'ProxyAgentPassword':
+			global $wgLDAPProxyAgentPassword;
+			return self::setOrDefault( $wgLDAPProxyAgentPassword, $domain );
+		case 'SearchAttribute':
+			global $wgLDAPSearchAttributes;
+			return self::setOrDefault( $wgLDAPSearchAttributes, $domain );
+		case 'BaseDN':
+			global $wgLDAPBaseDNs;
+			return self::setOrDefault( $wgLDAPBaseDNs, $domain );
+		case 'GroupBaseDN':
+			global $wgLDAPGroupBaseDNs;
+			return self::setOrDefault( $wgLDAPGroupBaseDNs, $domain );
+		case 'UserBaseDN':
+			global $wgLDAPUserBaseDNs;
+			return self::setOrDefault( $wgLDAPUserBaseDNs, $domain );
+		case 'WriterDN':
+			global $wgLDAPWriterDN;
+			return self::setOrDefault( $wgLDAPWriterDN, $domain );
+		case 'WriterPassword':
+			global $wgLDAPWriterPassword;
+			return self::setOrDefault( $wgLDAPWriterPassword, $domain );
+		case 'WriteLocation':
+			global $wgLDAPWriteLocation;
+			return self::setOrDefault( $wgLDAPWriteLocation, $domain );
+		case 'AddLDAPUsers':
+			global $wgLDAPAddLDAPUsers;
+			return self::setOrDefault( $wgLDAPAddLDAPUsers, $domain, false );
+		case 'UpdateLDAP':
+			global $wgLDAPUpdateLDAP;
+			return self::setOrDefault( $wgLDAPUpdateLDAP, $domain, false );
+		case 'PasswordHash':
+			global $wgLDAPPasswordHash;
+			return self::setOrDefault( $wgLDAPPasswordHash, $domain, 'clear' );
+		case 'MailPassword':
+			global $wgLDAPMailPassword;
+			return self::setOrDefault( $wgLDAPMailPassword, $domain, false );
+		case 'Preferences':
+			global $wgLDAPPreferences;
+			return self::setOrDefault( $wgLDAPPreferences, $domain, array() );
+		case 'DisableAutoCreate':
+			global $wgLDAPDisableAutoCreate;
+			return self::setOrDefault( $wgLDAPDisableAutoCreate, $domain, false );
+		case 'GroupUseFullDN':
+			global $wgLDAPGroupUseFullDN;
+			return self::setOrDefault( $wgLDAPGroupUseFullDN, $domain, false );
+		case 'LowerCaseUsername':
+			global $wgLDAPLowerCaseUsername;
+			if ( isset( $wgLDAPLowerCaseUsername[$domain] ) ) {
+				$this->printDebug( "Configuration set to lowercase username.", NONSENSITIVE );
+				return $wgLDAPLowerCaseUsername[$domain];
+			} else {
+				return false;
+			}
+		case 'LowerCaseUsernameScheme':
+			global $wgLDAPLowerCaseUsernameScheme;
+			// Default set to true for backwards compatibility with
+			// versions < 2.0a
+			return self::setOrDefault( $wgLDAPLowerCaseUsernameScheme, $domain, true );
+		case 'GroupUseRetievedUsername':
+			global $wgLDAPGroupUseRetrievedUsername;
+			return self::setOrDefault( $wgLDAPGroupUseRetrievedUsername, $domain, false );
+		case 'GroupObjectclass':
+			global $wgLDAPGroupObjectclass;
+			return self::setOrDefault( $wgLDAPGroupObjectclass, $domain );
+		case 'GroupAttribute':
+			global $wgLDAPGroupAttribute;
+			return self::setOrDefault( $wgLDAPGroupAttribute, $domain );
+		case 'GroupNameAttribute':
+			global $wgLDAPGroupNameAttribute;
+			return self::setOrDefault( $wgLDAPGroupNameAttribute, $domain );
+		case 'GroupsUseMemberOf':
+			global $wgLDAPGroupsUseMemberOf;
+			return self::setOrDefault( $wgLDAPGroupsUseMemberOf, $domain, false );
+		case 'UseLDAPGroups':
+			global $wgLDAPUseLDAPGroups;
+			return self::setOrDefault( $wgLDAPUseLDAPGroups, $domain, false );
+		case 'LocallyManagedGroups':
+			global $wgLDAPLocallyManagedGroups;
+			return self::setOrDefault( $wgLDAPLocallyManagedGroups, $domain, array() );
+		case 'GroupsPrevail':
+			global $wgLDAPGroupsPrevail;
+			return self::setOrDefault( $wgLDAPGroupsPrevail, $domain, false );
+		case 'RequiredGroups':
+			global $wgLDAPRequiredGroups;
+			return self::setOrDefault( $wgLDAPRequiredGroups, $domain, array() );
+		case 'ExcludedGroups':
+			global $wgLDAPExcludedGroups;
+			return self::setOrDefault( $wgLDAPExcludedGroups, $domain, array() );
+		case 'GroupSearchNestedGroups':
+			global $wgLDAPGroupSearchNestedGroups;
+			return self::setOrDefault( $wgLDAPGroupSearchNestedGroups, $domain, false );
+		case 'AuthAttribute':
+			global $wgLDAPAuthAttribute;
+			return self::setOrDefault( $wgLDAPAuthAttribute, $domain );
+		case 'AutoAuthUsername':
+			global $wgLDAPAutoAuthUsername;
+			return $wgLDAPAutoAuthUsername;
+		case 'AutoAuthDomain':
+			global $wgLDAPAutoAuthDomain;
+			return $wgLDAPAutoAuthDomain;
+		}
+		return '';
+	}
+
+	/**
+	 * Returns the item from $array at index $key if it is set,
+	 * else, it returns $default
+	 *
+	 * @param $array array
+	 * @param $key
+	 * @param $default mixed
+	 * @return mixed
+	 */
+	private static function setOrDefault( $array, $key, $default = '' ) {
+		return isset( $array[$key] ) ? $array[$key] : $default;
+	}
+
+	/**
 	 * Check whether there exists a user account with the given name.
 	 * The name will be normalized to MediaWiki's requirements, so
 	 * you might need to munge it (for instance, for lowercase initial
@@ -100,85 +475,62 @@
 	 *
 	 * @param string $username
 	 * @return bool
-	 * @access public
 	 */
-	function userExists( $username ) {
-		global $wgLDAPAddLDAPUsers;
-
+	public function userExists( $username ) {
 		$this->printDebug( "Entering userExists", NONSENSITIVE );
 
-		//If we can't add LDAP users, we don't really need to check
-		//if the user exists, the authenticate method will do this for
-		//us. This will decrease hits to the LDAP server.
-		//We do however, need to use this if we are using auto authentication.
-		if ( ( !isset( $wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) || !$wgLDAPAddLDAPUsers[$_SESSION['wsDomain']]) && !$this->useAutoAuth() ) {
+		// If we can't add LDAP users, we don't really need to check
+		// if the user exists, the authenticate method will do this for
+		// us. This will decrease hits to the LDAP server.
+		// We do however, need to use this if we are using auto authentication.
+		if ( !$this->getConf( 'AddLDAPUsers' ) && !$this->useAutoAuth() ) {
 			return true;
 		}
 
-		$this->ldapconn = $this->connect();
-		if ( $this->ldapconn ) {
-			$this->printDebug( "Successfully connected", NONSENSITIVE );
+		$ret = false;
+		if ( $this->connect() ) {
+			$searchstring = $this->getSearchString( $username );
 
-			$searchstring = $this->getSearchString( $this->ldapconn, $username );
-
-			//If we are using auto authentication, and we got
-			//anything back, then the user exists.
+			// If we are using auto authentication, and we got
+			// anything back, then the user exists.
 			if ( $this->useAutoAuth() && $searchstring != '' ) {
-				//getSearchString is going to bind, but will not unbind
-				//Let's clean up
-				@ldap_unbind();
-				return true;
-			}
+				$ret = true;
+			} else {
+				// Search for the entry.
+				$entry = LdapAuthenticationPlugin::ldap_read( $this->ldapconn, $searchstring, "objectclass=*" );
 
-			//Search for the entry.
-			$entry = @ldap_read( $this->ldapconn, $searchstring, "objectclass=*" );
-
-			//getSearchString is going to bind, but will not unbind
-			//Let's clean up
-			@ldap_unbind();
-			if ( !$entry ) {
-				$this->printDebug( "Did not find a matching user in LDAP", NONSENSITIVE );
-				return false;
-			} else {
-				$this->printDebug( "Found a matching user in LDAP", NONSENSITIVE );
-				return true;
+				if ( $entry ) {
+					$this->printDebug( "Found a matching user in LDAP", NONSENSITIVE );
+					$ret = true;
+				} else {
+					$this->printDebug( "Did not find a matching user in LDAP", NONSENSITIVE );
+				}
 			}
-		} else {
-			$this->printDebug( "Failed to connect", NONSENSITIVE );
-			return false;
+			// getSearchString is going to bind, but will not unbind
+			LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 		}
-		
+		return $ret;
 	}
 
 	/**
 	 * Connect to LDAP
-	 *
-	 * @access private
+	 * @param string $domain
+	 * @return bool
 	 */
-	function connect() {
-		global $wgLDAPServerNames;
-		global $wgLDAPEncryptionType;
-		global $wgLDAPOptions;
-
+	public function connect( $domain='' ) {
 		$this->printDebug( "Entering Connect", NONSENSITIVE );
 
-                if ( !function_exists( 'ldap_connect' ) ) {
-			$this->printDebug( "It looks like you are issing LDAP support; please ensure you have either compiled LDAP support in, or have enabled the module. If the authentication is working for you, the plugin isn't properly detecting the LDAP module, and you can safely ignore this message.", NONSENSITIVE );
+		if ( !function_exists( 'ldap_connect' ) ) {
+			$this->printDebug( "It looks like you are missing LDAP support; please ensure you have either compiled LDAP "
+				. "support in, or have enabled the module. If the authentication is working for you, the plugin isn't properly "
+				. "detecting the LDAP module, and you can safely ignore this message.", NONSENSITIVE );
 			return false;
-                }
-
-		//If the admin didn't set an encryption type, we default to tls
-		if ( isset( $wgLDAPEncryptionType[$_SESSION['wsDomain']] ) ) {
-			$encryptionType = $wgLDAPEncryptionType[$_SESSION['wsDomain']];
-		} else {
-			$encryptionType = "tls";
 		}
 
-		//Set the server string depending on whether we use ssl or not
+		// Set the server string depending on whether we use ssl or not
+		$encryptionType = $this->getConf( 'EncryptionType', $domain );
 		switch( $encryptionType ) {
 			case "ldapi":
-				# this is a really dirty place to put this,
-				# but it is easy and avoids another config option.
 				$this->printDebug( "Using ldapi", SENSITIVE );
 				$serverpre = "ldapi://";
 				break;
@@ -191,41 +543,45 @@
 				$serverpre = "ldap://";
 		}
 
-		//Make a space separated list of server strings with the ldap:// or ldaps://
-		//string added.
+		// Make a space separated list of server strings with the connection type
+		// string added.
 		$servers = "";
-		$tmpservers = $wgLDAPServerNames[$_SESSION['wsDomain']];
+		$tmpservers = $this->getConf( 'ServerNames', $domain );
 		$tok = strtok( $tmpservers, " " );
 		while ( $tok ) {
-			$servers = $servers . " " . $serverpre . $tok;
+			$servers = $servers . " " . $serverpre . $tok . ":" . $this->getConf( 'Port', $domain );
 			$tok = strtok( " " );
 		}
-		$servers = rtrim($servers);
+		$servers = rtrim( $servers );
 
 		$this->printDebug( "Using servers: $servers", SENSITIVE );
 
-		//Connect and set options
-		$this->ldapconn = @ldap_connect( $servers );
-		ldap_set_option( $this->ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
-		ldap_set_option( $this->ldapconn, LDAP_OPT_REFERRALS, 0);
+		// Connect and set options
+		$this->ldapconn = LdapAuthenticationPlugin::ldap_connect( $servers );
+		if ( !$this->ldapconn ) {
+			$this->printDebug( "PHP's LDAP connect method returned null, this likely implies a misconfiguration of the plugin.", NONSENSITIVE );
+			return false;
+		}
+		ldap_set_option( $this->ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3 );
+		ldap_set_option( $this->ldapconn, LDAP_OPT_REFERRALS, 0 );
 
-		if ( isset( $wgLDAPOptions[$_SESSION['wsDomain']] ) ) {
-			$options = $wgLDAPOptions[$_SESSION['wsDomain']];
-			foreach ( $options as $key => $value ) {
-				if ( !ldap_set_option( $this->ldapconn, constant( $key ), $value ) ) {
-					$this->printDebug( "Can't set option to LDAP! Option code and value: " . $key . "=" . $value, 1 );
-				}
+		foreach ( $this->getConf( 'Options' )  as $key => $value ) {
+			if ( !ldap_set_option( $this->ldapconn, constant( $key ), $value ) ) {
+				$this->printDebug( "Can't set option to LDAP! Option code and value: " . $key . "=" . $value, 1 );
 			}
 		}
 
-		//TLS needs to be started after the connection is made
+		// TLS needs to be started after the connection resource is available
 		if ( $encryptionType == "tls" ) {
 			$this->printDebug( "Using TLS", SENSITIVE );
 			if ( !ldap_start_tls( $this->ldapconn ) ) {
 				$this->printDebug( "Failed to start TLS.", SENSITIVE );
-				return;
+				return false;
 			}
 		}
+		$this->printDebug( "PHP's LDAP connect method returned true (note, this does not imply it connected to the server).", NONSENSITIVE );
+
+		return true;
 	}
 
 	/**
@@ -238,71 +594,59 @@
 	 * @param string $username
 	 * @param string $password
 	 * @return bool
-	 * @access public
 	 */
-	function authenticate( $username, $password='' ) {
-		global $wgLDAPAuthAttribute;
-		global $wgLDAPAutoAuthUsername;
-		global $wgLDAPLowerCaseUsername;
-		global $wgLDAPSearchStrings;
+	public function authenticate( $username, $password = '' ) {
+		$this->printDebug( "Entering authenticate for username $username", NONSENSITIVE );
 
-		$this->printDebug( "Entering authenticate", NONSENSITIVE );
-
-		//We don't handle local authentication
-		if ( 'local' == $_SESSION['wsDomain'] ) {
+		// We don't handle local authentication
+		if ( 'local' == $this->getSessionDomain() ) {
 			$this->printDebug( "User is using a local domain", SENSITIVE );
 			return false;
 		}
 
-		//If the user is using auto authentication, we need to ensure
-		//that he/she isn't trying to fool us by sending a username other
-		//than the one the web server got from the auto-authentication method.
-		if ( $this->useAutoAuth() && $wgLDAPAutoAuthUsername != $username ) {
-			$this->printDebug( "The username provided ($username) doesn't match the username provided by the webserver ($wgLDAPAutoAuthUsername). The user is probably trying to log in to the auto-authentication domain with password authentication via the wiki. Denying access.", SENSITIVE );
+		// If the user is using auto authentication, we need to ensure
+		// that he/she isn't trying to fool us by sending a username other
+		// than the one the web server got from the auto-authentication method.
+		if ( $this->useAutoAuth() && $this->getConf( 'AutoAuthUsername' ) != $username ) {
+			$this->printDebug( "The username provided ($username) doesn't match the username provided by the webserver (" . $this->getConf( 'AutoAuthUsername' ) . "). The user is probably trying to log in to the auto-authentication domain with password authentication via the wiki. Denying access.", SENSITIVE );
 			return false;
 		}
 
-		//We need to ensure that if we require a password, that it is
-		//not blank. We don't allow blank passwords, so we are being
-		//tricked if someone is supplying one when using password auth.
-		//Smartcard authentication uses a pin, and does not require
-		//a password to be given; a blank password here is wanted.
+		// We need to ensure that if we require a password, that it is
+		// not blank. We don't allow blank passwords, so we are being
+		// tricked if someone is supplying one when using password auth.
+		// auto-authentication is handled by the webserver; a blank password
+		// here is wanted.
 		if ( '' == $password && !$this->useAutoAuth() ) {
 			$this->printDebug( "User used a blank password", NONSENSITIVE );
 			return false;
 		}
 
-		$this->connect();
-		if ( $this->ldapconn ) {
-			$this->printDebug( "Connected successfully", NONSENSITIVE );
-
-			//Mediawiki munges the username before authenticate is called,
-			//this can mess with authentication, group pulling/restriction,
-			//preference pulling, etc. Let's allow the admin to use
-			//a lowercased username if needed.
-			if ( isset( $wgLDAPLowerCaseUsername[$_SESSION['wsDomain']] ) && $wgLDAPLowerCaseUsername[$_SESSION['wsDomain']] ) {
-				$this->printDebug( "Lowercasing the username: $username", NONSENSITIVE );
+		if ( $this->connect() ) {
+			// Mediawiki munges the username before authenticate is called,
+			// this can mess with authentication, group pulling/restriction,
+			// preference pulling, etc. Let's allow the admin to use
+			// a lowercased username if needed.
+			if ( $this->getConf( 'LowerCaseUsername') ) {
 				$username = strtolower( $username );
 			}
 
 			$this->userdn = $this->getSearchString( $username );
 
-			//It is possible that getSearchString will return an
-			//empty string; if this happens, the bind will ALWAYS
-			//return true, and will let anyone in!
+			// It is possible that getSearchString will return an
+			// empty string; if this happens, the bind will ALWAYS
+			// return true, and will let anyone in!
 			if ( '' == $this->userdn ) {
 				$this->printDebug( "User DN is blank", NONSENSITIVE );
-				@ldap_unbind();
+				LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 				$this->markAuthFailed();
 				return false;
 			}
 
-			//If we are using password authentication, we need to bind as the
-			//user to make sure the password is correct.
+			// If we are using password authentication, we need to bind as the
+			// user to make sure the password is correct.
 			if ( !$this->useAutoAuth() ) {
 				$this->printDebug( "Binding as the user", NONSENSITIVE );
-
-				//Let's see if the user can authenticate.
 				$bind = $this->bindAs( $this->userdn, $password );
 				if ( !$bind ) {
 					$this->markAuthFailed();
@@ -311,61 +655,51 @@
 
 				$this->printDebug( "Bound successfully", NONSENSITIVE );
 
-				if ( isset( $wgLDAPSearchStrings[$_SESSION['wsDomain']] ) ) { 
-					$ss = $wgLDAPSearchStrings[$_SESSION['wsDomain']];
+				$ss = $this->getConf( 'SearchString' );
+				if ( $ss ) {
 					if ( strstr( $ss, "@" ) || strstr( $ss, '\\' ) ) {
-						//We are most likely configured using USER-NAME at DOMAIN, or
-						//DOMAIN\\USER-NAME.
-						//Get the user's full DN so we can search for groups and such.
+						// We are most likely configured using USER-NAME at DOMAIN, or
+						// DOMAIN\\USER-NAME.
+						// Get the user's full DN so we can search for groups and such.
 						$this->userdn = $this->getUserDN( $username );
-						$this->printDebug( "Pulled the user's DN: $this->userdn", NONSENSITIVE );
+						$this->printDebug( "Fetched UserDN: $this->userdn", NONSENSITIVE );
+					} else {
+						// Now that we are bound, we can pull the user's info.
+						$this->getUserInfo();
 					}
 				}
+			}
 
-				if ( isset( $wgLDAPAuthAttribute[$_SESSION['wsDomain']] ) ) {
-
-					$this->printDebug( "Checking for auth attributes", NONSENSITIVE );
-
-					$filter = "(" . $wgLDAPAuthAttribute[$_SESSION['wsDomain']] . ")";
-					$attributes = array( "dn" );
-
-					$entry = ldap_read( $this->ldapconn, $this->userdn, $filter, $attributes );
-					$info = ldap_get_entries( $this->ldapconn, $entry );
-
-					if ( $info["count"] < 1 ) {
-						$this->printDebug( "Failed auth attribute check", NONSENSITIVE );
-						@ldap_unbind();
-						$this->markAuthFailed();
-						return false;
-					}
+			// Ensure the user's entry has the required auth attribute
+			$aa = $this->getConf( 'AuthAttribute' ); 
+			if ( $aa ) {
+				$this->printDebug( "Checking for auth attributes: $aa", NONSENSITIVE );
+				if ( !isset( $this->userInfo ) || !isset( $this->userInfo[0][$aa] ) ) {
+					$this->printDebug( "Failed auth attribute check", NONSENSITIVE );
+					LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
+					$this->markAuthFailed();
+					return false;
 				}
 			}
 
 			$this->getGroups( $username );
 
 			if ( !$this->checkGroups( $username ) ) {
-				@ldap_unbind();
+				LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 				$this->markAuthFailed();
 				return false;
 			}
 
 			$this->getPreferences();
 
-			if ( !$this->synchUsername( $username ) ) {
-				@ldap_unbind();
-				$this->markAuthFailed();
-				return false;
-			}
-
-			@ldap_unbind();
+			LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 		} else {
-			$this->printDebug( "Failed to connect", NONSENSITIVE );
 			$this->markAuthFailed();
 			return false;
 		}
 		$this->printDebug( "Authentication passed", NONSENSITIVE );
 
-		//We made it this far; the user authenticated and didn't fail any checks, so he/she gets in.
+		// We made it this far; the user authenticated and didn't fail any checks, so he/she gets in.
 		return true;
 	}
 
@@ -377,37 +711,42 @@
 	 * Modify options in the login template.
 	 *
 	 * @param UserLoginTemplate $template
-	 * @access public
+	 * @param $type
 	 */
-	function modifyUITemplate( &$template ) {
-		global $wgLDAPDomainNames, $wgLDAPUseLocal;
-		global $wgLDAPAddLDAPUsers;
-		global $wgLDAPAutoAuthDomain;
-
+	public function modifyUITemplate( &$template, &$type ) {
 		$this->printDebug( "Entering modifyUITemplate", NONSENSITIVE );
+		$template->set( 'create', $this->getConf( 'AddLDAPUsers' ) );
+		$template->set( 'usedomain', true );
+		$template->set( 'useemail', $this->getConf( 'MailPassword' ) );
+		$template->set( 'canreset', $this->getConf( 'MailPassword' ) );
+		$template->set( 'domainnames', $this->domainList() );
+		wfRunHooks( 'LDAPModifyUITemplate', array( &$template ) );
+	}
 
-		if ( !isset( $wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) || !$wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) {
-			$template->set( 'create', false );
-		}
+	/**
+	 * @return array
+	 */
+	function domainList() {
+		global $wgLDAPDomainNames;
 
-		$template->set( 'usedomain', true );
-		$template->set( 'useemail', false );
-
 		$tempDomArr = $wgLDAPDomainNames;
-		if ( $wgLDAPUseLocal ) {
+		if ( $this->getConf( 'UseLocal' ) ) {
 			$this->printDebug( "Allowing the local domain, adding it to the list.", NONSENSITIVE );
 			array_push( $tempDomArr, 'local' );
 		}
 
-		if ( isset( $wgLDAPAutoAuthDomain ) ) {
+		if ( $this->getConf( 'AutoAuthDomain' ) ) {
 			$this->printDebug( "Allowing auto-authentication login, removing the domain from the list.", NONSENSITIVE );
+			// There is no reason for people to log in directly to the wiki if the are using an
+			// auto-authentication domain. If they try to, they are probably up to something fishy.
+			unset( $tempDomArr[array_search( $this->getConf( 'AutoAuthDomain' ), $tempDomArr )] );
+		}
 
-			//There is no reason for people to log in directly to the wiki if the are using an
-			//auto-authentication domain. If they try to, they are probably up to something fishy.
-			unset( $tempDomArr[array_search( $wgLDAPAutoAuthDomain, $tempDomArr )] );
+		$domains = array();
+		foreach ( $tempDomArr as $tempDom ) {
+			$domains["$tempDom"] = $tempDom;
 		}
-
-		$template->set( 'domainnames', $tempDomArr );
+		return $domains;
 	}
 
 	/**
@@ -418,16 +757,9 @@
 	 * This is just a question, and shouldn't perform any actions.
 	 *
 	 * @return bool
-	 * @access public
 	 */
-	function autoCreate() {
-		global $wgLDAPDisableAutoCreate;
-
-		if ( isset( $wgLDAPDisableAutoCreate[$_SESSION['wsDomain']] ) && $wgLDAPDisableAutoCreate[$_SESSION['wsDomain']] ) {
-			return false;
-		} else {
-			return true;
-		}
+	public function autoCreate() {
+		return !$this->getConf( 'DisableAutoCreate' );
 	}
 
 	/**
@@ -437,68 +769,56 @@
 	 * @param User $user
 	 * @param string $password
 	 * @return bool
-	 * @access public
 	 */
-	function setPassword( $user, &$password ) {
-		global $wgLDAPUpdateLDAP, $wgLDAPWriterDN, $wgLDAPWriterPassword;
-
+	public function setPassword( $user, $password ) {
 		$this->printDebug( "Entering setPassword", NONSENSITIVE );
 
-		if ( $_SESSION['wsDomain'] == 'local' ) {
+		if ( $this->getSessionDomain() == 'local' ) {
 			$this->printDebug( "User is using a local domain", NONSENSITIVE );
 
-			//We don't set local passwords, but we don't want the wiki
-			//to send the user a failure.		
+			// We don't set local passwords, but we don't want the wiki
+			// to send the user a failure.
 			return true;
-		} else if ( !isset( $wgLDAPUpdateLDAP[$_SESSION['wsDomain']] ) || !$wgLDAPUpdateLDAP[$_SESSION['wsDomain']] ) {
+		}
+		if ( !$this->getConf( 'UpdateLDAP' ) ) {
 			$this->printDebug( "Wiki is set to not allow updates", NONSENSITIVE );
 
-			//We aren't allowing the user to change his/her own password
+			// We aren't allowing the user to change his/her own password
 			return false;
 		}
 
-		if ( !isset( $wgLDAPWriterDN[$_SESSION['wsDomain']] ) ) {
+		$writer = $this->getConf( 'WriterDN' );
+		if ( !$writer ) {
 			$this->printDebug( "Wiki doesn't have wgLDAPWriterDN set", NONSENSITIVE );
 
-			//We can't change a user's password without an account that is
-			//allowed to do it.
+			// We can't change a user's password without an account that is
+			// allowed to do it.
 			return false;
 		}
-
 		$pass = $this->getPasswordHash( $password );
 
-		$this->connect();
-		if ( $this->ldapconn ) {
-			$this->printDebug( "Connected successfully", NONSENSITIVE );
+		if ( $this->connect() ) {
 			$this->userdn = $this->getSearchString( $user->getName() );
-
 			$this->printDebug( "Binding as the writerDN", NONSENSITIVE );
-			$bind = $this->bindAs( $wgLDAPWriterDN[$_SESSION['wsDomain']], $wgLDAPWriterPassword[$_SESSION['wsDomain']] );
+			$bind = $this->bindAs( $writer, $this->getConf( 'WriterPassword' ) );
 			if ( !$bind ) {
 				return false;
 			}
-
 			$values["userpassword"] = $pass;
 
-			//Blank out the password in the database. We don't want to save
-			//domain credentials for security reasons.
+			// Blank out the password in the database. We don't want to save
+			// domain credentials for security reasons.
 			$password = '';
 
-			$success = @ldap_modify( $this->ldapconn, $this->userdn, $values );
-
-			//Let's clean up
-			@ldap_unbind();
+			$success = LdapAuthenticationPlugin::ldap_modify( $this->ldapconn, $this->userdn, $values );
+			LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 			if ( $success ) {
 				$this->printDebug( "Successfully modified the user's password", NONSENSITIVE );
 				return true;
-			} else {
-				$this->printDebug( "Failed to modify the user's password", NONSENSITIVE );
-				return false;
 			}
-		} else {
-			$this->printDebug( "Failed to connect", NONSENSITIVE );
-			return false;
+			$this->printDebug( "Failed to modify the user's password", NONSENSITIVE );
 		}
+		return false;
 	}
 
 	/**
@@ -507,65 +827,56 @@
 	 *
 	 * @param User $user
 	 * @return bool
-	 * @access public
-	 */	
-	function updateExternalDB( $user ) {
-		global $wgLDAPUpdateLDAP;
-		global $wgLDAPWriterDN, $wgLDAPWriterPassword;
+	 */
+	public function updateExternalDB( $user ) {
+		global $wgMemc;
 
 		$this->printDebug( "Entering updateExternalDB", NONSENSITIVE );
-
-		if ( ( !isset( $wgLDAPUpdateLDAP[$_SESSION['wsDomain']] ) || !$wgLDAPUpdateLDAP[$_SESSION['wsDomain']] ) ||
-			$_SESSION['wsDomain'] == 'local' ) {
+		if ( !$this->getConf( 'UpdateLDAP' ) || $this->getSessionDomain() == 'local' ) {
 			$this->printDebug( "Either the user is using a local domain, or the wiki isn't allowing updates", NONSENSITIVE );
-
-			//We don't handle local preferences, but we don't want the
-			//wiki to return an error.
+			// We don't handle local preferences, but we don't want the
+			// wiki to return an error.
 			return true;
 		}
 
-		if ( !isset( $wgLDAPWriterDN[$_SESSION['wsDomain']] ) ) {
+		$writer = $this->getConf( 'WriterDN' );
+		if ( !$writer ) {
 			$this->printDebug( "The wiki doesn't have wgLDAPWriterDN set", NONSENSITIVE );
-
-			//We can't modify LDAP preferences if we don't have a user
-			//capable of editing LDAP attributes.
+			// We can't modify LDAP preferences if we don't have a user
+			// capable of editing LDAP attributes.
 			return false;
 		}
 
 		$this->email = $user->getEmail();
 		$this->realname = $user->getRealName();
 		$this->nickname = $user->getOption( 'nickname' );
-		$this->language = $user->getOption( 'language' );
-
-		$this->connect();
-		if ( $this->ldapconn ) {
-			$this->printDebug( "Connected successfully", NONSENSITIVE );
+		$this->lang = $user->getOption( 'language' );
+		if ( $this->connect() ) {
 			$this->userdn = $this->getSearchString( $user->getName() );
-
 			$this->printDebug( "Binding as the writerDN", NONSENSITIVE );
-			$bind = $this->bindAs( $wgLDAPWriterDN[$_SESSION['wsDomain']], $wgLDAPWriterPassword[$_SESSION['wsDomain']] );
+			$bind = $this->bindAs( $writer, $this->getConf( 'WriterPassword' ) );
 			if ( !$bind ) {
 				return false;
 			}
 
-			if ( '' != $this->email ) { $values["mail"] = $this->email; }
-			if ( '' != $this->nickname ) { $values["displayname"] = $this->nickname; }
-			if ( '' != $this->realname ) { $values["cn"] = $this->realname; }
-			if ( '' != $this->language ) { $values["preferredlanguage"] = $this->language; }
+			$values = array();
+			if ( is_string( $this->email ) ) { $values["mail"] = $this->email; }
+			if ( is_string( $this->nickname ) ) { $values["displayname"] = $this->nickname; }
+			if ( is_string( $this->realname ) ) { $values["cn"] = $this->realname; }
+			if ( is_string( $this->lang ) ) { $values["preferredlanguage"] = $this->lang; }
 
-			if ( 0 != sizeof( $values ) && @ldap_modify( $this->ldapconn, $this->userdn, $values ) ) {
+			if ( count( $values ) && LdapAuthenticationPlugin::ldap_modify( $this->ldapconn, $this->userdn, $values ) ) {
+				// We changed the user, we need to invalidate the memcache key
+				$key = wfMemcKey( 'ldapauthentication', 'userinfo', $this->userdn );
+				$wgMemc->delete( $key );
 				$this->printDebug( "Successfully modified the user's attributes", NONSENSITIVE );
-				@ldap_unbind();
+				LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 				return true;
-			} else {
-				$this->printDebug( "Failed to modify the user's attributes", NONSENSITIVE );
-				@ldap_unbind();
-				return false;
 			}
-		} else {
-			$this->printDebug( "Failed to Connect", NONSENSITIVE );
-			return false;
+			$this->printDebug( "Failed to modify the user's attributes", NONSENSITIVE );
+			LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 		}
+		return false;
 	}
 
 	/**
@@ -573,16 +884,9 @@
 	 * Return true if yes.
 	 *
 	 * @return bool
-	 * @access public
-	 */	
-	function canCreateAccounts() {
-		global $wgLDAPAddLDAPUsers;
-
-		if ( isset( $wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) && $wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) {
-			return true;
-		} else {
-			return false;
-		}
+	 */
+	public function canCreateAccounts() {
+		return $this->getConf( 'AddLDAPUsers' );
 	}
 
 	/**
@@ -591,30 +895,18 @@
 	 * Return true if yes.
 	 *
 	 * @return bool
-	 * @access public
-	 */	
-	function allowPasswordChange() {
-		global $wgLDAPUpdateLDAP, $wgLDAPMailPassword;
-		global $wgLDAPUseLocal;
-
+	 */
+	public function allowPasswordChange() {
 		$this->printDebug( "Entering allowPasswordChange", NONSENSITIVE );
 
-		$retval = false;
-
 		// Local domains need to be able to change passwords
-		if ( (isset($wgLDAPUseLocal) && $wgLDAPUseLocal) && 'local' == $_SESSION['wsDomain'] ) {
-			$retval = true;
+		if ( $this->getConf( 'UseLocal' ) && 'local' == $this->getSessionDomain() ) {
+			return true;
 		}
-
-		if ( isset( $wgLDAPUpdateLDAP[$_SESSION['wsDomain']] ) && $wgLDAPUpdateLDAP[$_SESSION['wsDomain']] ) {
-			$retval = true;
+		if ( $this->getConf( 'UpdateLDAP' ) || $this->getConf( 'MailPassword' ) ) {
+			return true;
 		}
-
-		if ( isset( $wgLDAPMailPassword[$_SESSION['wsDomain']] ) && $wgLDAPMailPassword[$_SESSION['wsDomain']] ) {
-			$retval = true;
-		}
-
-		return $retval;
+		return false;
 	}
 
 	/**
@@ -623,111 +915,109 @@
 	 *
 	 * @param User $user
 	 * @param string $password
+	 * @param string $email
+	 * @param string $realname
 	 * @return bool
-	 * @access public
 	 */
-	function addUser( $user, $password ) {
-		global $wgLDAPAddLDAPUsers, $wgLDAPWriterDN, $wgLDAPWriterPassword;
-		global $wgLDAPSearchAttributes;
-		global $wgLDAPWriteLocation;
-		global $wgLDAPRequiredGroups, $wgLDAPGroupDN;
-		global $wgLDAPAuthAttribute;
-
+	public function addUser( $user, $password, $email = '', $realname = '' ) {
 		$this->printDebug( "Entering addUser", NONSENSITIVE );
 
-		if ( ( !isset( $wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) || !$wgLDAPAddLDAPUsers[$_SESSION['wsDomain']] ) ||
-			'local' == $_SESSION['wsDomain'] ) {
+		if ( !$this->getConf( 'AddLDAPUsers' ) || 'local' == $this->getSessionDomain() ) {
 			$this->printDebug( "Either the user is using a local domain, or the wiki isn't allowing users to be added to LDAP", NONSENSITIVE );
 
-			//Tell the wiki not to return an error.
+			// Tell the wiki not to return an error.
 			return true;
 		}
-
-		if ( $wgLDAPRequiredGroups || $wgLDAPGroupDN ) {
+		if ( $this->getConf( 'RequiredGroups' ) ) {
 			$this->printDebug( "The wiki is requiring users to be in specific groups, and cannot add users as this would be a security hole.", NONSENSITIVE );
-			//It is possible that later we can add users into
-			//groups, but since we don't support it, we don't want
-			//to open holes!
+			// It is possible that later we can add users into
+			// groups, but since we don't support it, we don't want
+			// to open holes!
 			return false;
 		}
 
-		if ( !isset( $wgLDAPWriterDN[$_SESSION['wsDomain']] ) ) {
+		$writer = $this->getConf( 'WriterDN' );
+		if ( !$writer ) {
 			$this->printDebug( "The wiki doesn't have wgLDAPWriterDN set", NONSENSITIVE );
 
-			//We can't add users without an LDAP account capable of doing so.
+			// We can't add users without an LDAP account capable of doing so.
 			return false;
 		}
 
 		$this->email = $user->getEmail();
 		$this->realname = $user->getRealName();
 		$username = $user->getName();
-
+		if ( $this->getConf( 'LowercaseUsernameScheme' ) ) {
+			$username = strtolower( $username );
+		}
 		$pass = $this->getPasswordHash( $password );
-
-		$this->connect();
-		if ( $this->ldapconn ) {
-			$this->printDebug( "Successfully connected", NONSENSITIVE );
-
+		if ( $this->connect() ) {
+			$writeloc = $this->getConf( 'WriteLocation' );
 			$this->userdn = $this->getSearchString( $username );
 			if ( '' == $this->userdn ) {
-				$this->printDebug( "$this->userdn is blank, attempting to use wgLDAPWriteLocation", NONSENSITIVE );
-				if ( isset( $wgLDAPWriteLocation[$_SESSION['wsDomain']] ) ) {
+				$this->printDebug( "userdn is blank, attempting to use wgLDAPWriteLocation", NONSENSITIVE );
+				if ( $writeloc ) {
 					$this->printDebug( "wgLDAPWriteLocation is set, using that", NONSENSITIVE );
-					$this->userdn = $wgLDAPSearchAttributes[$_SESSION['wsDomain']] . "=" .
-						$username . "," . $wgLDAPWriteLocation[$_SESSION['wsDomain']];
+					$this->userdn = $this->getConf( 'SearchAttribute' ) . "=" .
+						$username . "," . $writeloc;
 				} else {
 					$this->printDebug( "wgLDAPWriteLocation is not set, failing", NONSENSITIVE );
-					//getSearchString will bind, but will not unbind
-					@ldap_unbind();
+					// getSearchString will bind, but will not unbind
+					LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 					return false;
 				}
 			}
 
 			$this->printDebug( "Binding as the writerDN", NONSENSITIVE );
-
-			$bind = $this->bindAs( $wgLDAPWriterDN[$_SESSION['wsDomain']], $wgLDAPWriterPassword[$_SESSION['wsDomain']] );
+			$bind = $this->bindAs( $writer, $this->getConf( 'WriterPassword' ) );
 			if ( !$bind ) {
 				$this->printDebug( "Failed to bind as the writerDN; add failed", NONSENSITIVE );
 				return false;
 			}
 
-			//Set up LDAP attributes
+			// Set up LDAP objectclasses and attributes
+			// TODO: make objectclasses and attributes configurable
 			$values["uid"] = $username;
-			//sn is required for objectclass inetorgperson
+			// sn is required for objectclass inetorgperson
 			$values["sn"] = $username;
-			if ( '' != $this->email ) { $values["mail"] = $this->email; }
-			if ( '' != $this->realname ) {$values["cn"] = $this->realname; }
+			if ( is_string( $this->email ) ) { $values["mail"] = $this->email; }
+			if ( is_string( $this->realname ) ) { $values["cn"] = $this->realname; }
 				else { $values["cn"] = $username; }
 			$values["userpassword"] = $pass;
-			$values["objectclass"] = "inetorgperson";
+			$values["objectclass"] = array( "inetorgperson" );
 
-			if ( isset ( $wgLDAPAuthAttribute[$_SESSION['wsDomain']] ) ) {
-				$values[$wgLDAPAuthAttribute[$_SESSION['wsDomain']]] = "true";
+			$result = true;
+			# Let other extensions modify the user object before creation
+			wfRunHooks( 'LDAPSetCreationValues', array( $this, $username, &$values, $writeloc, &$this->userdn, &$result ) );
+			if ( !$result ) {
+				$this->printDebug( "Failed to add user because LDAPSetCreationValues returned false", NONSENSITIVE );
+				LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
+				return false;
 			}
 
+			$aa = $this->getConf( 'AuthAttribute' );
+			if ( $aa ) {
+				$values[$aa] = "true";
+			}
+
 			$this->printDebug( "Adding user", NONSENSITIVE );
-			if ( @ldap_add( $this->ldapconn, $this->userdn, $values ) ) {
+			if ( LdapAuthenticationPlugin::ldap_add( $this->ldapconn, $this->userdn, $values ) ) {
 				$this->printDebug( "Successfully added user", NONSENSITIVE );
-				@ldap_unbind();
+				LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 				return true;
-			} else {
-				$this->printDebug( "Failed to add user", NONSENSITIVE );
-				@ldap_unbind();
-				return false;
 			}
-		} else {
-			$this->printDebug( "Failed to connect; add failed", NONSENSITIVE );
-			return false;
+			$this->printDebug( "Failed to add user", NONSENSITIVE );
+			LdapAuthenticationPlugin::ldap_unbind( $this->ldapconn );
 		}
+		return false;
 	}
 
 	/**
 	 * Set the domain this plugin is supposed to use when authenticating.
 	 *
 	 * @param string $domain
-	 * @access public	
 	 */
-	function setDomain( $domain ) {
+	public function setDomain( $domain ) {
 		$this->printDebug( "Setting domain as: $domain", NONSENSITIVE );
 		$_SESSION['wsDomain'] = $domain;
 	}
@@ -738,84 +1028,65 @@
 	 *
 	 * @param string $domain
 	 * @return bool
-	 * @access public
 	 */
-	function validDomain( $domain ) {
-		global $wgLDAPDomainNames, $wgLDAPUseLocal;
+	public function validDomain( $domain ) {
+		global $wgLDAPDomainNames;
 
 		$this->printDebug( "Entering validDomain", NONSENSITIVE );
-
-		if ( in_array( $domain, $wgLDAPDomainNames ) || ( $wgLDAPUseLocal && 'local' == $domain ) ) {
-			$this->printDebug( "User is using a valid domain.", NONSENSITIVE );
+		if ( in_array( $domain, $wgLDAPDomainNames ) || ( $this->getConf( 'UseLocal' ) && 'local' == $domain ) ) {
+			$this->printDebug( "User is using a valid domain ($domain).", NONSENSITIVE );
 			return true;
-		} else {
-			$this->printDebug( "User is not using a valid domain.", NONSENSITIVE );
-			return false;
 		}
+		$this->printDebug( "User is not using a valid domain ($domain).", NONSENSITIVE );
+		return false;
 	}
 
 	/**
 	 * When a user logs in, update user with information from LDAP.
 	 *
-	 * @param User $user
-	 * @access public
+	 * @param $user User
 	 * TODO: fix the setExternalID stuff
 	 */
-	function updateUser( &$user ) {
-		global $wgLDAPRetrievePrefs, $wgLDAPPreferences;
-		global $wgLDAPUseLDAPGroups;
-		global $wgLDAPUniqueBlockLogin, $wgLDAPUniqueRenameUser;
-
+	public function updateUser( &$user ) {
 		$this->printDebug( "Entering updateUser", NONSENSITIVE );
-
-		if ($this->authFailed) {
+		if ( $this->authFailed ) {
 			$this->printDebug( "User didn't successfully authenticate, exiting.", NONSENSITIVE );
 			return;
 		}
 
 		$saveSettings = false;
 
-		//If we aren't pulling preferences, we don't want to accidentally
-		//overwrite anything.
-		if ( ( isset( $wgLDAPRetrievePrefs[$_SESSION['wsDomain']] ) && $wgLDAPRetrievePrefs[$_SESSION['wsDomain']] )
-			|| isset( $wgLDAPPreferences[$_SESSION['wsDomain']] ) ) {
+		if ( $this->getConf( 'Preferences' ) ) {
 			$this->printDebug( "Setting user preferences.", NONSENSITIVE );
-
-			if ( '' != $this->lang ) {
+			if ( is_string( $this->lang ) ) {
 				$this->printDebug( "Setting language.", NONSENSITIVE );
 				$user->setOption( 'language', $this->lang );
 			}
-			if ( '' != $this->nickname ) {
+			if ( is_string( $this->nickname ) ) {
 				$this->printDebug( "Setting nickname.", NONSENSITIVE );
 				$user->setOption( 'nickname', $this->nickname );
 			}
-			if ( '' != $this->realname ) {
+			if ( is_string( $this->realname ) ) {
 				$this->printDebug( "Setting realname.", NONSENSITIVE );
 				$user->setRealName( $this->realname );
 			}
-			if ( '' != $this->email ) {
+			if ( is_string( $this->email ) ) {
 				$this->printDebug( "Setting email.", NONSENSITIVE );
 				$user->setEmail( $this->email );
 				$user->confirmEmail();
 			}
-			if ( ( isset( $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] ) && $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] )
-				|| ( isset( $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) && $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) ) {
-
-				if ( '' != $this->externalid ) {
-					$user->setExternalID( $this->externalid );
-				}
-			}
-
 			$saveSettings = true;
 		}
 
-		if ( isset( $wgLDAPUseLDAPGroups[$_SESSION['wsDomain']] ) && $wgLDAPUseLDAPGroups[$_SESSION['wsDomain']] ) {
+		if ( $this->getConf( 'UseLDAPGroups' ) ) {
 			$this->printDebug( "Setting user groups.", NONSENSITIVE );
 			$this->setGroups( $user );
-
 			$saveSettings = true;
 		}
 
+		# Let other extensions update the user
+		wfRunHooks( 'LDAPUpdateUser', array( $this ) );
+
 		if ( $saveSettings ) {
 			$this->printDebug( "Saving user settings.", NONSENSITIVE );
 			$user->saveSettings();
@@ -824,35 +1095,32 @@
 
 	/**
 	 * When creating a user account, initialize user with information from LDAP.
+	 * TODO: fix setExternalID stuff
 	 *
 	 * @param User $user
-	 * @access public
-	 * TODO: fix setExternalID stuff
+	 * @param bool $autocreate
 	 */
-	function initUser( &$user ) {
-		global $wgLDAPUseLDAPGroups;
-
+	public function initUser( &$user, $autocreate = false ) {
 		$this->printDebug( "Entering initUser", NONSENSITIVE );
 
-		if ($this->authFailed) {
+		if ( $this->authFailed ) {
 			$this->printDebug( "User didn't successfully authenticate, exiting.", NONSENSITIVE );
-			return;
+			return null;
 		}
-
-		if ( 'local' == $_SESSION['wsDomain'] ) {
+		if ( 'local' == $this->getSessionDomain() ) {
 			$this->printDebug( "User is using a local domain", NONSENSITIVE );
-			return;
+			return null;
 		}
 
-		//We are creating an LDAP user, it is very important that we do
-		//NOT set a local password because it could compromise the
-		//security of our domain.
+		// We are creating an LDAP user, it is very important that we do
+		// NOT set a local password because it could compromise the
+		// security of our domain.
 		$user->mPassword = '';
 
-		//The update user function does everything else we need done.
-		$this->updateUser($user);
+		// The update user function does everything else we need done.
+		$this->updateUser( $user );
 
-		//updateUser() won't definately save the user's settings
+		// updateUser() won't necessarily save the user's settings
 		$user->saveSettings();
 	}
 
@@ -863,71 +1131,82 @@
 	 * This is just a question, and shouldn't perform any actions.
 	 *
 	 * @return bool
-	 * @access public
 	 */
-	function strict() {
-		global $wgLDAPUseLocal, $wgLDAPMailPassword;
-
+	public function strict() {
 		$this->printDebug( "Entering strict.", NONSENSITIVE );
 
-		if ( $wgLDAPUseLocal || $wgLDAPMailPassword ) {
+		if ( $this->getConf( 'UseLocal' ) || $this->getConf( 'MailPassword' ) ) {
 			$this->printDebug( "Returning false in strict().", NONSENSITIVE );
 			return false;
-		} else {
-			$this->printDebug( "Returning true in strict().", NONSENSITIVE );
-			return true;
 		}
+		$this->printDebug( "Returning true in strict().", NONSENSITIVE );
+		return true;
 	}
 
 	/**
-	 * Munge the username to always have a form of uppercase for the first letter,
-	 * and lowercase for the rest of the letters.
+	 * Munge the username based on a scheme (lowercase, by default)
 	 *
 	 * @param string $username
 	 * @return string
-	 * @access public
 	 */
-	function getCanonicalName( $username ) {
-		global $wgLDAPUseLocal;
+	public function getCanonicalName( $username ) {
+		global $wgMemc;
+
 		$this->printDebug( "Entering getCanonicalName", NONSENSITIVE );
-
+		$key = wfMemcKey( 'ldapauthentication', 'canonicalname', $username );
+		$canonicalname = $username;
 		if ( $username != '' ) {
 			$this->printDebug( "Username isn't empty.", NONSENSITIVE );
+			if ( $this->getConf( 'LowercaseUsernameScheme' ) ) {
+				$canonicalname = strtolower( $canonicalname );
+			} else {
+				# Fetch username, so that we can possibly use it.
+				$userInfo = $wgMemc->get( $key );
+				if ( is_array( $userInfo ) ) {
+					$this->printDebug( "Fetched userInfo from memcache.", NONSENSITIVE );
+					if ( $userInfo["username"] == $username ) {
+						$this->printDebug( "Username matched a key in memcache, using the fetched name: " . $userInfo["canonicalname"], NONSENSITIVE );
+						return $userInfo["canonicalname"];
+					}
+				} else {
+					if ( $this->connect() ) {
+						// Try to pull the username from LDAP. In the case of straight binds,
+						// try to fetch the username by search before bind.
+						$this->userdn = $this->getUserDN( $username, true );
+						$hookSetUsername = $this->LDAPUsername;
+						wfRunHooks( 'SetUsernameAttributeFromLDAP', array( &$hookSetUsername, $this->userInfo ) );
+						if ( is_string( $hookSetUsername ) ) {
+							$this->printDebug( "Username munged by hook: $hookSetUsername", NONSENSITIVE );
+							$this->LDAPUsername = $hookSetUsername;
+						} else {
+							$this->printDebug( "Fetched username is not a string (check your hook code...). This message can be safely ignored if you do not have the SetUsernameAttributeFromLDAP hook defined.", NONSENSITIVE );
+						}
+					}
+				}
 
-			//We want to use the username returned by LDAP
-			//if it exists
-			if ( $this->LDAPUsername != '' ) {
-				$this->printDebug( "Using LDAPUsername.", NONSENSITIVE );
-				$username = $this->LDAPUsername;
+				// We want to use the username returned by LDAP
+				// if it exists
+				if ( $this->LDAPUsername != '' ) {
+					$canonicalname = $this->LDAPUsername;
+					$this->printDebug( "Using LDAPUsername: $canonicalname", NONSENSITIVE );
+				}
 			}
 
-			if ( isset($_SESSION['wsDomain']) && 'local' != $_SESSION['wsDomain']) {
-				//Change username to lowercase so that multiple user accounts
-				//won't be created for the same user.
-				//But don't do it for the local domain!
-				$username = strtolower( $username );
-			}
-
-			//The wiki considers an all lowercase name to be invalid; need to
-			//uppercase the first letter
-			$username[0] = strtoupper( $username[0] );
+			// The wiki considers an all lowercase name to be invalid; need to
+			// uppercase the first letter
+			$canonicalname[0] = strtoupper( $canonicalname[0] );
 		}
-
-		$this->printDebug( "Munged username: $username", NONSENSITIVE );
-
-		return $username;
+		$this->printDebug( "Munged username: $canonicalname", NONSENSITIVE );
+		$wgMemc->set( $key, array( "username" => $username, "canonicalname" => $canonicalname ), 3600 * 24 );
+		return $canonicalname;
 	}
 
 	/**
 	 * Configures the authentication plugin for use with auto-authentication
 	 * plugins.
-	 *
-	 * @access public
 	 */
-	function autoAuthSetup() {
-		global $wgLDAPAutoAuthDomain;
-
-		$this->setDomain( $wgLDAPAutoAuthDomain );
+	public function autoAuthSetup() {
+		$this->setDomain( $this->getConf( 'AutoAuthDomain' ) );
 	}
 
 	/**
@@ -939,35 +1218,14 @@
 	 * @access private
 	 */
 	function getSearchString( $username ) {
-		global $wgLDAPSearchStrings;
-		global $wgLDAPProxyAgent, $wgLDAPProxyAgentPassword;
-
 		$this->printDebug( "Entering getSearchString", NONSENSITIVE );
-
-		if ( isset( $wgLDAPSearchStrings[$_SESSION['wsDomain']] ) ) {
-			//This is a straight bind
+		$ss = $this->getConf( 'SearchString' );
+		if ( $ss ) {
+			// This is a straight bind
 			$this->printDebug( "Doing a straight bind", NONSENSITIVE );
-
-			$tmpuserdn = $wgLDAPSearchStrings[$_SESSION['wsDomain']];
-			$userdn = str_replace( "USER-NAME", $username, $tmpuserdn );
+			$userdn = str_replace( "USER-NAME", $username, $ss );
 		} else {
-			//This is a proxy bind, or an anonymous bind with a search
-			if ( isset( $wgLDAPProxyAgent[$_SESSION['wsDomain']] ) ) {
-				//This is a proxy bind
-				$this->printDebug( "Doing a proxy bind", NONSENSITIVE );
-				$bind = $this->bindAs( $wgLDAPProxyAgent[$_SESSION['wsDomain']], $wgLDAPProxyAgentPassword[$_SESSION['wsDomain']] );
-			} else {
-				//This is an anonymous bind
-				$this->printDebug( "Doing an anonymous bind", NONSENSITIVE );
-				$bind = $this->bindAs();
-			}
-	
-			if ( !$bind ) {
-				$this->printDebug( "Failed to bind", NONSENSITIVE );
-				return '';
-			}
-
-			$userdn = $this->getUserDN( $username );
+			$userdn = $this->getUserDN( $username, true );
 		}
 		$this->printDebug( "userdn is: $userdn", SENSITIVE );
 		return $userdn;
@@ -976,227 +1234,138 @@
 	/**
 	 * Gets the DN of a user based upon settings for the domain.
 	 * This function will set $this->LDAPUsername
-	 * You must bind to the server before calling this.
 	 *
 	 * @param string $username
 	 * @return string
 	 * @access private
 	 */
-	function getUserDN( $username ) {
-		global $wgLDAPSearchAttributes;
-		global $wgLDAPAuthAttribute;
+	function getUserDN( $username, $bind=false ) {
+		$this->printDebug( "Entering getUserDN", NONSENSITIVE );
+		if ( $bind ) {
+			// This is a proxy bind, or an anonymous bind with a search
+			$proxyagent = $this->getConf( 'ProxyAgent');
+			if ( $proxyagent ) {
+				// This is a proxy bind
+				$this->printDebug( "Doing a proxy bind", NONSENSITIVE );
+				$bind = $this->bindAs( $proxyagent, $this->getConf( 'ProxyAgentPassword' ) );
+			} else {
+				// This is an anonymous bind
+				$this->printDebug( "Doing an anonymous bind", NONSENSITIVE );
+				$bind = $this->bindAs();
+			}
+			if ( !$bind ) {
+				$this->printDebug( "Failed to bind", NONSENSITIVE );
+				return '';
+			}
+		}
 
-		$this->printDebug("Entering getUserDN", NONSENSITIVE);
+		$searchattr = $this->getConf( 'SearchAttribute' );
+		// we need to do a subbase search for the entry
+		$filter = "(" . $searchattr . "=" . $this->getLdapEscapedString( $username ) . ")";
+		$this->printDebug( "Created a regular filter: $filter", SENSITIVE );
 
-		//we need to do a subbase search for the entry
-
-		//Auto auth needs to check LDAP for required attributes.
-		if ( ( isset( $wgLDAPAuthAttribute[$_SESSION['wsDomain']] ) )
-			&& $this->useAutoAuth() ) {
-			$auth_filter = "(" . $wgLDAPAuthAttribute[$_SESSION['wsDomain']] . ")";
-			$srch_filter = "(" . $wgLDAPSearchAttributes[$_SESSION['wsDomain']] . "=" . $this->getLdapEscapedString( $username ) . ")";
-			$filter = "(&" . $srch_filter . $auth_filter . ")";
-			$this->printDebug( "Created an auth attribute filter: $filter", SENSITIVE );
-		} else {
-			$filter = "(" . $wgLDAPSearchAttributes[$_SESSION['wsDomain']] . "=" . $this->getLdapEscapedString( $username ) . ")";
-			$this->printDebug( "Created a regular filter: $filter", SENSITIVE );
-		}
-
-		$attributes = array( "*" );
+		// We explicitly put memberof here because it's an operational attribute in some servers.
+		$attributes = array( "*", "memberof" );
 		$base = $this->getBaseDN( USERDN );
-
 		$this->printDebug( "Using base: $base", SENSITIVE );
-
-		$entry = @ldap_search( $this->ldapconn, $base, $filter, $attributes );
-		if ( !$entry ) {
+		$entry = LdapAuthenticationPlugin::ldap_search( $this->ldapconn, $base, $filter, $attributes );
+		if ( LdapAuthenticationPlugin::ldap_count_entries( $this->ldapconn, $entry ) == 0 ) {
 			$this->printDebug( "Couldn't find an entry", NONSENSITIVE );
 			$this->fetchedUserInfo = false;
 			return '';
 		}
-
-		$this->userInfo = @ldap_get_entries( $this->ldapconn, $entry );
+		$this->userInfo = LdapAuthenticationPlugin::ldap_get_entries( $this->ldapconn, $entry );
 		$this->fetchedUserInfo = true;
-
-		//This is a pretty useful thing to have for auto authentication,
-		//group checking, and pulling preferences.
-		wfRunHooks( 'SetUsernameAttributeFromLDAP', array( &$this->LDAPUsername, $this->userInfo ) );
-		if ( !is_string( $this->LDAPUsername ) ) {
-			$this->printDebug( "Fetched username is not a string (check your hook code...). This message can be safely ignored if you do not have the SetUsernameAttributeFromLDAP hook defined.", NONSENSITIVE );
-			$this->LDAPUsername = '';
+		if ( isset( $this->userInfo[0][$searchattr] ) ) {
+			$username = $this->userInfo[0][$searchattr][0];
+			$this->printDebug( "Setting the LDAPUsername based on fetched wgLDAPSearchAttributes: $username", NONSENSITIVE );
+			$this->LDAPUsername = $username;
 		}
-
 		$userdn = $this->userInfo[0]["dn"];
 		return $userdn;
 	}
 
+	/**
+	 * Load the current user's entry
+	 *
+	 * @return bool
+	 */
 	function getUserInfo() {
-		//Don't fetch the same data more than once
+		// Don't fetch the same data more than once
 		if ( $this->fetchedUserInfo ) {
-			return $this->userInfo;
+			return true;
 		}
-
-		$entry = @ldap_read( $this->ldapconn, $this->userdn, "objectclass=*" );
-		$userInfo = @ldap_get_entries( $this->ldapconn, $entry );
-		if ( $userInfo["count"] < 1 ) {
+		$userInfo = $this->getUserInfoStateless( $this->userdn );
+		if ( is_null( $userInfo ) ) {
 			$this->fetchedUserInfo = false;
-			return;
 		} else {
 			$this->fetchedUserInfo = true;
-			return $userInfo;
+			$this->userInfo = $userInfo;
 		}
+		return $this->fetchedUserInfo;
 	}
 
 	/**
-	 * Retrieve user preferences from LDAP
-	 *
-	 * @param string $userDN
-	 * @access private
+	 * @param $userdn string
+	 * @return array|null
 	 */
-	function getPreferences() {
-		global $wgLDAPPreferences;
-		global $wgLDAPRetrievePrefs;
+	function getUserInfoStateless( $userdn ) {
+		global $wgMemc;
 
-		$this->printDebug("Entering getPreferences", NONSENSITIVE);
-
-		$this->userInfo = $this->getUserInfo();
-		if ( is_null( $this->userInfo ) ) {
-			$this->printDebug("Failed to get preferences", NONSENSITIVE);
-		}
-
-		//Retrieve preferences
-		if ( isset( $wgLDAPPreferences[$_SESSION['wsDomain']] ) ) {
-			$this->printDebug( "Retrieving preferences", NONSENSITIVE );
-			$prefs = $wgLDAPPreferences[$_SESSION['wsDomain']];
-			foreach ( array_keys( $prefs ) as $key ) {
-				switch ( $key ) {
-					case "email":
-						if ( isset( $this->userInfo[0]["$prefs[$key]"] ) ) {
-							$this->email = $this->userInfo[0]["$prefs[$key]"][0];
-							$this->printDebug( "Retrieved email ($this->email) using attribute ($prefs[$key])", NONSENSITIVE );
-						}
-						break;
-					case "language":
-						if ( isset( $this->userInfo[0]["$prefs[$key]"] ) ) {
-							$this->lang = $this->userInfo[0][$prefs[$key]][0];
-							$this->printDebug( "Retrieved language ($this->lang) using attribute ($prefs[$key])", NONSENSITIVE );
-						}
-						break;
-					case "nickname":
-						if ( isset( $this->userInfo[0]["$prefs[$key]"] ) ) {
-							$this->nickname = $this->userInfo[0]["$prefs[$key]"][0];
-							$this->printDebug( "Retrieved nickname ($this->nickname) using attribute ($prefs[$key])", NONSENSITIVE );
-						}
-						break;
-					case "realname":
-						if ( isset( $this->userInfo[0]["$prefs[$key]"] ) ) {
-							$this->realname = $this->userInfo[0]["$prefs[$key]"][0];
-							$this->printDebug( "Retrieved realname ($this->realname) using attribute ($prefs[$key])", NONSENSITIVE );
-						}
-						break;
-				}
+		$key = wfMemcKey( 'ldapauthentication', 'userinfo', $userdn );
+		$userInfo = $wgMemc->get( $key );
+		if ( !is_array( $userInfo ) ) {
+			$entry = LdapAuthenticationPlugin::ldap_read( $this->ldapconn, $userdn, "objectclass=*", array( '*', 'memberof' ) );
+			$userInfo = LdapAuthenticationPlugin::ldap_get_entries( $this->ldapconn, $entry );
+			if ( $userInfo["count"] < 1 ) {
+				return null;
 			}
-		} else if ( isset( $wgLDAPRetrievePrefs[$_SESSION['wsDomain']] ) && $wgLDAPRetrievePrefs[$_SESSION['wsDomain']] ) {
-			//DEPRECATED. Kept for backwards compatibility.
-			$this->printDebug( "Retrieving preferences", NONSENSITIVE );
-			$this->printDebug( '$wgLDAPRetrievePrefs is a DEPRECATED option, please use $wgLDAPPreferences.', NONSENSITIVE );
-
-			if (isset($this->userInfo[0]["mail"])) {
-				$this->email = $this->userInfo[0]["mail"][0];
-			}
-			if (isset($this->userInfo[0]["preferredlanguage"])) {
-				$this->lang = $this->userInfo[0]["preferredlanguage"][0];
-			}
-			if (isset($this->userInfo[0]["displayname"])) {
-				$this->nickname = $this->userInfo[0]["displayname"][0];
-			}
-			if (isset($this->userInfo[0]["cn"])) {
-				$this->realname = $this->userInfo[0]["cn"][0];
-			}
-
-			$this->printDebug( "Retrieved: $this->email, $this->lang, $this->nickname, $this->realname", SENSITIVE );
+			$wgMemc->set( $key, $userInfo, 3600 * 24 );
 		}
+		return $userInfo;
 	}
 
-	function synchUsername( $username ) {
-		global $wgLDAPUniqueBlockLogin, $wgLDAPUniqueRenameUser;
-		global $wgLDAPUniqueAttribute;
+	/**
+	 * Retrieve user preferences from LDAP
+	 */
+	private function getPreferences() {
+		$this->printDebug( "Entering getPreferences", NONSENSITIVE );
 
-		$this->printDebug("Entering synchUsername", NONSENSITIVE);
-
-		$this->userInfo = $this->getUserInfo();
-		if ( is_null( $this->userInfo ) ) {
-			$this->printDebug("Failed to get preferences", NONSENSITIVE);
+		// Retrieve preferences
+		$prefs = $this->getConf( 'Preferences' );
+		if ( !$prefs ) {
+			return null;
 		}
-
-		// Are we blocking login/renaming users on unique external ID mismatches?
-		//     *** WARNING ***
-		//     This needs to be fixed before use! This probably does not work correctly
-		//     with all options. It is probably a good idea to refactor the username stuff
-		//     in general (as it is currently somewhat of a kludge). Also, MediaWiki does
-		//     not currently have support for this.
-		//     *** WARNING ***
-		if ( ( isset( $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] ) && $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] )
-			|| ( isset( $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) && $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) ) {
-
-			$this->printDebug( "Checking for username change in LDAP.", SENSITIVE );
-
-			//Get the user's unique attribute from LDAP
-			if ( isset( $wgLDAPUniqueAttribute[$_SESSION['wsDomain']] ) ) {
-				$ldapuniqueattr = $wgLDAPUniqueAttribute[$_SESSION['wsDomain']];
-				$this->externalid = $this->info[0][$ldapuniqueattr][0];
-			} else {
-				return false;
+		if ( !$this->getUserInfo() ) {
+			$this->printDebug( "Failed to get preferences, the user's entry wasn't found.", NONSENSITIVE );
+			return null;
+		}
+		$this->printDebug( "Retrieving preferences", NONSENSITIVE );
+		foreach ( array_keys( $prefs ) as $key ) {
+			$attr = strtolower( $prefs[$key] );
+			if ( !isset( $this->userInfo[0][$attr] ) ) {
+				continue;
 			}
-
-			$this->printDebug( "Retrieved external id: $this->externalid", SENSITIVE );
-
-			$retrievedusername = User::whoIsExternalID( "$this->externalid" );
-
-			$this->printDebug( "Username (in MediaWiki database) of fetched external id: $retrievedusername", SENSITIVE );
-
-			// See if the username returned from the database matches the username given
-			if ( $retrievedusername != '' && ( $username != $retrievedusername ) ) {
-				if ( isset( $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] )
-					&& $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] ) {
-
-					$this->printDebug( "Usernames do not match, blocking login.", SENSITIVE );
-					return false;
-				} else if ( isset( $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] )
-					&& $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) {
-
-					$this->printDebug( "Usernames do not match, renaming user in database.", SENSITIVE );
-
-					global $wgVersion;
-					if ( version_compare( $wgVersion, '1.7.0', '<' ) ) {
-						$this->printDebug( "Renaming users is only supported in MediaWiki 1.7+, please upgrade.", SENSITIVE );
-						$this->markAuthFailed();
-						return false;
-					}
-
-					$olduser = User::newFromName( $retrievedusername );
-					$uid = $olduser->idForName();
-
-					// Ensure we don't require the same class twice
-					if ( !class_exists( 'RenameuserSQL' ) ) {
-						require( 'Renameuser/SpecialRenameuser_body.php' );
-					}
-
-					// Make a new rename user object with: from, to, uid of from	
-					$rename = new RenameuserSQL( $retrievedusername, $username, $uid );
-					$rename->rename();
-
-					// For the time being we can't just allow the user to log in
-					// as MediaWiki will try to create the user account after we
-					// do a rename. If we don't return false, the user will get
-					// a database error
-					return false;
-				}
+			$value = $this->userInfo[0][$attr][0];
+			switch ( $key ) {
+				case "email":
+					$this->email = $value;
+					$this->printDebug( "Retrieved email ($this->email) using attribute ($prefs[$key])", NONSENSITIVE );
+					break;
+				case "language":
+					$this->lang = $value;
+					$this->printDebug( "Retrieved language ($this->lang) using attribute ($prefs[$key])", NONSENSITIVE );
+					break;
+				case "nickname":
+					$this->nickname = $value;
+					$this->printDebug( "Retrieved nickname ($this->nickname) using attribute ($prefs[$key])", NONSENSITIVE );
+					break;
+				case "realname":
+					$this->realname = $value;
+					$this->printDebug( "Retrieved realname ($this->realname) using attribute ($prefs[$key])", NONSENSITIVE );
+					break;
 			}
-
-			$this->printDebug( "Usernames matched or the user doesn't exist in the database yet.", SENSITIVE );
 		}
-
-		return true;
 	}
 
 	/**
@@ -1207,25 +1376,11 @@
 	 * @access private
 	 */
 	function checkGroups( $username ) {
-		global $wgLDAPGroupDN;
-		global $wgLDAPRequiredGroups, $wgLDAPExcludedGroups;
+		$this->printDebug( "Entering checkGroups", NONSENSITIVE );
 
-		$this->printDebug("Entering checkGroups", NONSENSITIVE);
-
-		//Old style groups, non-nestable and fairly limited on group type (full DN
-		//versus username). DEPRECATED
-		if ( $wgLDAPGroupDN ) {
-			$this->printDebug( "Checking for (old style) group membership", NONSENSITIVE );
-			//we need to do a subbase search for the entry
-			$filter = "(member=" . $this->getLdapEscapedString( $this->userdn ) . ")";
-			$info = @ldap_get_entries( $this->ldapconn, @ldap_search( $this->ldapconn, $wgLDAPGroupDN, $filter ) );
-
-			return ( $info["count"] >= 1 );
-		}
-
-		if ( isset( $wgLDAPExcludedGroups[$_SESSION['wsDomain']] ) ) {
+		$excgroups = $this->getConf( 'ExcludedGroups' );
+		if ( $excgroups ) {
 			$this->printDebug( "Checking for excluded group membership", NONSENSITIVE );
-			$excgroups = $wgLDAPExcludedGroups[$_SESSION['wsDomain']];
 			for ( $i = 0; $i < count( $excgroups ); $i++ ) {
 				$excgroups[$i] = strtolower( $excgroups[$i] );
 			}
@@ -1241,10 +1396,9 @@
 			}
 		}
 
-		//New style group checking
-		if ( isset( $wgLDAPRequiredGroups[$_SESSION['wsDomain']] ) ) {
+		$reqgroups = $this->getConf( 'RequiredGroups' );
+		if ( $reqgroups ) {
 			$this->printDebug( "Checking for (new style) group membership", NONSENSITIVE );
-			$reqgroups = $wgLDAPRequiredGroups[$_SESSION['wsDomain']];
 			for ( $i = 0; $i < count( $reqgroups ); $i++ ) {
 				$reqgroups[$i] = strtolower( $reqgroups[$i] );
 			}
@@ -1259,7 +1413,7 @@
 				}
 			}
 
-			$this->printDebug("Couldn't find the user in any groups.", NONSENSITIVE );
+			$this->printDebug( "Couldn't find the user in any groups.", NONSENSITIVE );
 			return false;
 		}
 
@@ -1269,28 +1423,20 @@
 
 	/**
 	 * Function to get the user's groups.
-	 *
-	 * @access private
+	 * @param string $username
 	 */
-	function getGroups( $username ) {
-		global $wgLDAPRequiredGroups, $wgLDAPUseLDAPGroups;
-		global $wgLDAPGroupUseFullDN, $wgLDAPGroupUseRetrievedUsername;
-		global $wgLDAPGroupSearchNestedGroups;
-		global $wgLDAPGroupsPrevail;
-		global $wgLDAPGroupsUseMemberOf;
+	private function getGroups( $username ) {
+		$this->printDebug( "Entering getGroups", NONSENSITIVE );
 
-		$this->printDebug("Entering getGroups", NONSENSITIVE);
-
-		//Find groups
-		if ( isset( $wgLDAPRequiredGroups[$_SESSION['wsDomain']] ) || ( isset( $wgLDAPUseLDAPGroups[$_SESSION['wsDomain']] ) && $wgLDAPUseLDAPGroups[$_SESSION['wsDomain']] ) ) {
+		// Find groups
+		if ( $this->getConf( 'RequiredGroups' ) || $this->getConf( 'UseLDAPGroups' ) ) {
 			$this->printDebug( "Retrieving LDAP group membership", NONSENSITIVE );
 
-			//Let's figure out what we should be searching for
-			if ( isset( $wgLDAPGroupUseFullDN[$_SESSION['wsDomain']] ) && $wgLDAPGroupUseFullDN[$_SESSION['wsDomain']] ) {
+			// Let's figure out what we should be searching for
+			if ( $this->getConf( 'GroupUseFullDN' ) ) {
 				$usertopass = $this->userdn;
 			} else {
-				if ( ( isset( $wgLDAPGroupUseRetrievedUsername[$_SESSION['wsDomain']] ) && $wgLDAPGroupUseRetrievedUsername[$_SESSION['wsDomain']] )
-					&& $this->LDAPUsername != '' ) {
+				if ( $this->getConf( 'GroupUseRetrievedUsername' ) && $this->LDAPUsername != '' ) {
 
 					$usertopass = $this->LDAPUsername;
 				} else {
@@ -1298,35 +1444,45 @@
 				}
 			}
 
-			if ( isset( $wgLDAPGroupsUseMemberOf[$_SESSION['wsDomain']] ) && $wgLDAPGroupsUseMemberOf[$_SESSION['wsDomain']] ) {
+			if ( $this->getConf( 'GroupsUseMemberOf' ) ) {
 				$this->printDebug( "Using memberOf", NONSENSITIVE );
-				$this->userInfo = $this->getUserInfo();
-				if ( is_null( $this->userInfo ) ) {
-					$this->printDebug("Failed to get memberOf attribute", NONSENSITIVE);
-				}
-				if ( isset( $this->userInfo[0]["memberof"] ) ) {
+				if ( !$this->getUserInfo() ) {
+					$this->printDebug( "Couldn't get the user's entry.", NONSENSITIVE );
+				} else if ( isset( $this->userInfo[0]["memberof"] ) ) {
 					# The first entry is always a count
 					$memberOfMembers = $this->userInfo[0]["memberof"];
 					array_shift( $memberOfMembers );
 					$groups = array( "dn"=> array(), "short"=>array() );
+
 					foreach( $memberOfMembers as $mem ) {
 						array_push( $groups["dn"], strtolower( $mem ) );
+
+						// Get short name of group
+						$memAttrs = explode( ',', strtolower( $mem ) );
+						if ( isset( $memAttrs[0] ) ) {
+							$memAttrs = explode( '=', $memAttrs[0] );
+							if ( isset( $memAttrs[0] ) ) {
+								array_push( $groups["short"], strtolower( $memAttrs[1] ) );
+							}
+						}
 					}
+					$this->printDebug( "Got the following groups:", SENSITIVE, $groups["dn"] );
+
 					$this->userLDAPGroups = $groups;
+				} else {
+					$this->printDebug( "memberOf attribute isn't set", NONSENSITIVE );
 				}
 			} else {
 				$this->printDebug( "Searching for the groups", NONSENSITIVE );
 				$this->userLDAPGroups = $this->searchGroups( $usertopass );
-
-				if ( isset( $wgLDAPGroupSearchNestedGroups[$_SESSION['wsDomain']] ) && $wgLDAPGroupSearchNestedGroups[$_SESSION['wsDomain']] ) {
+				if ( $this->getConf( 'GroupSearchNestedGroups' ) ) {
 					$this->userLDAPGroups = $this->searchNestedGroups( $this->userLDAPGroups );
 					$this->printDebug( "Got the following nested groups:", SENSITIVE, $this->userLDAPGroups["dn"] );
 				}
 			}
-
-			//Only find all groups if the user has any groups; otherwise, we are
-			//just wasting a search.
-			if ( ( isset( $wgLDAPGroupsPrevail[$_SESSION['wsDomain']] ) && $wgLDAPGroupsPrevail[$_SESSION['wsDomain']] ) && count( $this->userLDAPGroups ) != 0 ) {
+			// Only find all groups if the user has any groups; otherwise, we are
+			// just wasting a search.
+			if ( $this->getConf( 'GroupsPrevail' ) && count( $this->userLDAPGroups ) != 0 ) {
 				$this->allLDAPGroups = $this->searchGroups( '*' );
 			}
 		}
@@ -1337,52 +1493,49 @@
 	 * $searchedgroups is used for tail recursion and shouldn't be provided
 	 * when called externally.
 	 *
-	 * @param string $userDN
+	 * @param $groups
 	 * @param array $searchedgroups
 	 * @return bool
 	 * @access private
 	 */
-	function searchNestedGroups( $groups, $searchedgroups = array( "dn" => Array(), "short" => Array() ) ) {
+	function searchNestedGroups( $groups, $searchedgroups = array( "dn" => array(), "short" => array() ) ) {
 		$this->printDebug( "Entering searchNestedGroups", NONSENSITIVE );
 
-		//base case, no more groups left to check
+		// base case, no more groups left to check
 		if ( count( $groups["dn"] ) == 0 ) {
 			$this->printDebug( "No more groups to search.", NONSENSITIVE );
 			return $searchedgroups;
 		}
 
 		$this->printDebug( "Searching groups:", SENSITIVE, $groups["dn"] );
-
-		$groupstosearch = array( "short"=>array(), "dn"=>array() );
+		$groupstosearch = array( "short" => array(), "dn" => array() );
 		foreach ( $groups["dn"] as $group ) {
 			$returnedgroups = $this->searchGroups( $group );
 			$this->printDebug( "Group $group is in the following groups:", SENSITIVE, $returnedgroups["dn"] );
 			foreach ( $returnedgroups["dn"] as $searchme ) {
 				if ( in_array( $searchme, $searchedgroups["dn"] ) ) {
-					//We already searched this, move on
+					// We already searched this, move on
 					continue;
 				} else {
-					//We'll need to search this group's members now
+					// We'll need to search this group's members now
 					$this->printDebug( "Adding $searchme to the list of groups (1)", SENSITIVE );
 					$groupstosearch["dn"][] = $searchme;
 				}
 			}
 			foreach ( $returnedgroups["short"] as $searchme ) {
 				if ( in_array( $searchme, $searchedgroups["short"] ) ) {
-					//We already searched this, move on
+					// We already searched this, move on
 					continue;
 				} else {
 					$this->printDebug( "Adding $searchme to the list of groups (2)", SENSITIVE );
-					//We'll need to search this group's members now
+					// We'll need to search this group's members now
 					$groupstosearch["short"][] = $searchme;
 				}
 			}
 		}
-
 		$searchedgroups = array_merge_recursive( $groups, $searchedgroups );
 
-		//Mmmmmm. Tail recursion. Tasty.
-		return $this->searchNestedGroups( $groupstosearch, $searchedgroups ); 
+		return $this->searchNestedGroups( $groupstosearch, $searchedgroups );
 	}
 
 	/**
@@ -1390,64 +1543,103 @@
 	 *
 	 * @param string $dn
 	 * @return array
-	 * @access private
 	 */
-	function searchGroups( $dn ) {
-		global $wgLDAPGroupObjectclass, $wgLDAPGroupAttribute, $wgLDAPGroupNameAttribute;
-		global $wgLDAPProxyAgent, $wgLDAPProxyAgentPassword;
-		global $wgUser;
-
+	private function searchGroups( $dn ) {
 		$this->printDebug( "Entering searchGroups", NONSENSITIVE );
 
 		$base = $this->getBaseDN( GROUPDN );
+		$objectclass = $this->getConf( 'GroupObjectclass' );
+		$attribute = $this->getConf( 'GroupAttribute' );
+		$nameattribute = $this->getConf( 'GroupNameAttribute' );
 
-		$objectclass = $wgLDAPGroupObjectclass[$_SESSION['wsDomain']];
-		$attribute = $wgLDAPGroupAttribute[$_SESSION['wsDomain']];
-		$nameattribute = $wgLDAPGroupNameAttribute[$_SESSION['wsDomain']];
+		// We actually want to search for * not \2a, ensure we don't escape *
+		$value = $dn;
+		if ( $value != "*" ) {
+			$value = $this->getLdapEscapedString( $value );
+		}
 
-                // We actually want to search for * not \2a
-                $value = $dn;
-                if ( $value != "*" )
-                        $value = $this->getLdapEscapedString( $value );
+		$proxyagent = $this->getConf( 'ProxyAgent' );
+		if ( $proxyagent ) {
+			// We'll try to bind as the proxyagent as the proxyagent should normally have more
+			// rights than the user. If the proxyagent fails to bind, we will still be able
+			// to search as the normal user (which is why we don't return on fail).
+			$this->printDebug( "Binding as the proxyagent", NONSENSITIVE );
+			$this->bindAs( $proxyagent, $this->getConf( 'ProxyAgentPassword' ) );
+		}
 
-		$filter = "(&($attribute=$value)(objectclass=$objectclass))";
+		$groups = array( "short" => array(), "dn" => array() );
 
-		$this->printDebug( "Search string: $filter", SENSITIVE );
+		// AD does not include the primary group in the list of groups, we have to find it ourselves.
+		// TODO: find a way to only do this search for AD domains.
+		if ( $dn != "*" ) {
+			$PGfilter = "(&(distinguishedName=$value)(objectclass=user))";
+			$this->printDebug( "User Filter: $PGfilter", SENSITIVE );
+			$PGinfo = LdapAuthenticationPlugin::ldap_search( $this->ldapconn, $base, $PGfilter );
+			$PGentries = LdapAuthenticationPlugin::ldap_get_entries( $this->ldapconn, $PGinfo );
+			if ( $PGentries ) {
+				$Usid = $PGentries[0]['objectsid'][0];
+				$PGrid = $PGentries[0]['primarygroupid'][0];
+				$PGsid = bin2hex( $Usid );
+				$PGSID = array();
+				for ( $i=0; $i < 56; $i += 2 ) {
+					$PGSID[] = substr( $PGsid, $i, 2 );
+				}
+				$dPGrid = dechex( $PGrid );
+				$dPGrid = str_pad( $dPGrid, 8, '0', STR_PAD_LEFT );
+				$PGRID = array();
+				for ( $i = 0; $i < 8; $i += 2 ) {
+					array_push( $PGRID, substr( $dPGrid, $i, 2 ) );
+				}
+				for ( $i = 24; $i < 28; $i++ ) {
+					$PGSID[$i] = array_pop( $PGRID );
+				}
+				$PGsid_string = '';
+				foreach ( $PGSID as $PGsid_bit ) {
+					$PGsid_string .= "\\" . $PGsid_bit;
+				}
+				$PGfilter = "(&(objectSid=$PGsid_string)(objectclass=$objectclass))";
+				$this->printDebug( "Primary Group Filter: $PGfilter", SENSITIVE );
+				$info = LdapAuthenticationPlugin::ldap_search( $this->ldapconn, $base, $PGfilter );
+				$PGentries = LdapAuthenticationPlugin::ldap_get_entries( $this->ldapconn, $info );
+				array_shift( $PGentries );
+				$dnMember = strtolower( $PGentries[0]['dn'] );
+				$groups["dn"][] = $dnMember;
+				// Get short name of group
+				$memAttrs = explode( ',', strtolower( $dnMember ) );
+				if ( isset( $memAttrs[0] ) ) {
+					$memAttrs = explode( '=', $memAttrs[0] );
+					if ( isset( $memAttrs[0] ) ) {
+						$groups["short"][] = strtolower( $memAttrs[1] );
+					}
+				}
 
-		if ( isset( $wgLDAPProxyAgent[$_SESSION['wsDomain']] ) ) {
-			//We'll try to bind as the proxyagent as the proxyagent should normally have more
-			//rights than the user. If the proxyagent fails to bind, we will still be able
-			//to search as the normal user (which is why we don't return on fail).
-			$this->printDebug( "Binding as the proxyagent", NONSENSITIVE );
-			$bind = $this->bindAs( $wgLDAPProxyAgent[$_SESSION['wsDomain']], $wgLDAPProxyAgentPassword[$_SESSION['wsDomain']] );
+			}
 		}
 
-		$info = @ldap_search( $this->ldapconn, $base, $filter );
-		#if ( $info["count"] < 1 ) {
+		$filter = "(&($attribute=$value)(objectclass=$objectclass))";
+		$this->printDebug( "Search string: $filter", SENSITIVE );
+		$info = LdapAuthenticationPlugin::ldap_search( $this->ldapconn, $base, $filter );
 		if ( !$info ) {
 			$this->printDebug( "No entries returned from search.", SENSITIVE );
-
-			//Return an array so that other functions
-			//don't error out.
-			return array( "short"=>array(), "dn"=>array() );
+			// Return an array so that other functions
+			// don't error out.
+			return array( "short" => array(), "dn" => array() );
 		}
 
-		$entries = @ldap_get_entries( $this->ldapconn, $info );
-
-		//We need to shift because the first entry will be a count
-		array_shift( $entries );
-
-		//Let's get a list of both full dn groups and shortname groups
-		$groups = array( "short"=>array(), "dn"=>array() );
-		foreach ( $entries as $entry ) {
-			$shortMember = strtolower( $entry[$nameattribute][0] );
-			$dnMember = strtolower( $entry['dn'] );
-			$groups["short"][] = $shortMember;
-			$groups["dn"][] = $dnMember;
+		$entries = LdapAuthenticationPlugin::ldap_get_entries( $this->ldapconn, $info );
+		if ( $entries ){
+			// We need to shift because the first entry will be a count
+			array_shift( $entries );
+			// Let's get a list of both full dn groups and shortname groups
+			foreach ( $entries as $entry ) {
+				$shortMember = strtolower( $entry[$nameattribute][0] );
+				$dnMember = strtolower( $entry['dn'] );
+				$groups["short"][] = $shortMember;
+				$groups["dn"][] = $dnMember;
+			}
 		}
 
 		$this->printDebug( "Returned groups:", SENSITIVE, $groups["dn"] );
-
 		return $groups;
 	}
 
@@ -1461,7 +1653,6 @@
 	 */
 	function hasLDAPGroup( $group ) {
 		$this->printDebug( "Entering hasLDAPGroup", NONSENSITIVE );
-
 		return in_array( strtolower( $group ), $this->userLDAPGroups["short"] );
 	}
 
@@ -1474,7 +1665,6 @@
 	 */
 	function isLDAPGroup( $group ) {
 		$this->printDebug( "Entering isLDAPGroup", NONSENSITIVE );
-
 		return in_array( strtolower( $group ), $this->allLDAPGroups["short"] );
 	}
 
@@ -1486,45 +1676,41 @@
 	 * @access private
 	 */
 	function setGroups( &$user ) {
-                global $wgLDAPGroupsPrevail, $wgGroupPermissions;
-		global $wgLDAPLocallyManagedGroups;
+		global $wgGroupPermissions;
 
-		//TODO: this is *really* ugly code. clean it up!
-
+		// TODO: this is *really* ugly code. clean it up!
 		$this->printDebug( "Entering setGroups.", NONSENSITIVE );
 
+		# Add ldap groups as local groups
+		if ( $this->getConf( 'GroupsPrevail' ) ) {
+			$this->printDebug( "Adding all groups to wgGroupPermissions: ", SENSITIVE, $this->allLDAPGroups );
+
+			foreach ( $this->allLDAPGroups["short"] as $ldapgroup ) {
+				if ( !array_key_exists( $ldapgroup, $wgGroupPermissions ) )
+						$wgGroupPermissions[$ldapgroup] = array();
+			}
+		}
+
 		# add groups permissions
 		$localAvailGrps = $user->getAllGroups();
 		$localUserGrps = $user->getEffectiveGroups();
-		
 		$defaultLocallyManagedGrps = array( 'bot', 'sysop', 'bureaucrat' );
-
-		if ( isset( $wgLDAPLocallyManagedGroups[$_SESSION['wsDomain']] ) ) {
-			$locallyManagedGrps = $wgLDAPLocallyManagedGroups[$_SESSION['wsDomain']];
-			$locallyManagedGrps = array_unique( array_merge( $defaultLocallyManagedGrps, $locallyManagedGrps ) );		
+		$locallyManagedGrps = $this->getConf( 'LocallyManagedGroups' );
+		if ( $locallyManagedGrps ) {
+			$locallyManagedGrps = array_unique( array_merge( $defaultLocallyManagedGrps, $locallyManagedGrps ) );
 			$this->printDebug( "Locally managed groups: ", SENSITIVE, $locallyManagedGrps );
 		} else {
 			$locallyManagedGrps = $defaultLocallyManagedGrps;
 			$this->printDebug( "Locally managed groups is unset, using defaults: ", SENSITIVE, $locallyManagedGrps );
 		}
-			
 
-                # Add ldap groups as local groups
-                if ( isset( $wgLDAPGroupsPrevail[$_SESSION['wsDomain']] ) && $wgLDAPGroupsPrevail[$_SESSION['wsDomain']] ) {
-			$this->printDebug( "Adding all groups to wgGroupPermissions: ", SENSITIVE, $this->allLDAPGroups );
-                        foreach ( $this->allLDAPGroups["short"] as $ldapgroup )
-                                if ( !array_key_exists( $ldapgroup, $wgGroupPermissions ) )
-                                        $wgGroupPermissions[$ldapgroup] = array();
-		}
-
 		$this->printDebug( "Available groups are: ", NONSENSITIVE, $localAvailGrps );
 		$this->printDebug( "Effective groups are: ", NONSENSITIVE, $localUserGrps );
-
 		# note: $localUserGrps does not need to be updated with $cGroup added,
 		#       as $localAvailGrps contains $cGroup only once.
 		foreach ( $localAvailGrps as $cGroup ) {
 			# did we once add the user to the group?
-			if ( in_array( $cGroup,$localUserGrps ) ) {
+			if ( in_array( $cGroup, $localUserGrps ) ) {
 				$this->printDebug( "Checking to see if we need to remove user from: $cGroup", NONSENSITIVE );
 				if ( ( !$this->hasLDAPGroup( $cGroup ) ) && ( !in_array( $cGroup, $locallyManagedGrps ) ) ) {
 					$this->printDebug( "Removing user from: $cGroup", NONSENSITIVE );
@@ -1550,31 +1736,26 @@
 	 * @access private
 	 */
 	function getPasswordHash( $password ) {
-		global $wgLDAPPasswordHash;
-
 		$this->printDebug( "Entering getPasswordHash", NONSENSITIVE );
 
-		if ( isset( $wgLDAPPasswordHash[$_SESSION['wsDomain']] ) ) {
-			$hashtouse = $wgLDAPPasswordHash[$_SESSION['wsDomain']];
-		} else {
-			$hashtouse = '';
-		}
-
-		//Set the password hashing based upon admin preference
-		switch ( $hashtouse ) {
+		// Set the password hashing based upon admin preference
+		switch ( $this->getConf( 'PasswordHash' ) ) {
 			case 'crypt':
+				// https://bugs.php.net/bug.php?id=55439
+				if ( crypt( 'password', '$1$U7AjYB.O$' ) == '$1$U7AjYB.O' ) {
+					die( 'The version of PHP in use has a broken crypt function. Please upgrade your installation of PHP, or use another encryption function for LDAP.' );
+				}
 				$pass = '{CRYPT}' . crypt( $password );
 				break;
 			case 'clear':
 				$pass = $password;
 				break;
 			default:
-				$pwd_sha = base64_encode( pack( 'H*',sha1( $password ) ) );
-				$pass = "{SHA}".$pwd_sha;
+				$pwd_sha = base64_encode( pack( 'H*', sha1( $password ) ) );
+				$pass = "{SHA}" . $pwd_sha;
 				break;
 		}
 
-		$this->printDebug( "Password is $pass", HIGHLYSENSITIVE );
 		return $pass;
 	}
 
@@ -1584,20 +1765,21 @@
 	 *
 	 * @param string $debugText
 	 * @param string $debugVal
+	 * @param Array|null $debugArr
 	 * @access private
 	 */
 	function printDebug( $debugText, $debugVal, $debugArr = null ) {
+		if ( !function_exists( 'wfDebugLog' ) ) {
+			return;
+		}
+
 		global $wgLDAPDebug;
 
-		if ( isset( $debugArr ) ) {
-			if ( $wgLDAPDebug > $debugVal ) {
-				$text = $debugText . " " . implode( "::", $debugArr );
-				wfDebugLog( 'ldap', $text, false );
+		if ( $wgLDAPDebug >= $debugVal ) {
+			if ( isset( $debugArr ) ) {
+				$debugText = $debugText . " " . implode( "::", $debugArr );
 			}
-		} else {
-			if ( $wgLDAPDebug > $debugVal ) {
-				wfDebugLog( 'ldap', $debugText, false );
-			}
+			wfDebugLog( 'ldap', LDAPAUTHVERSION . ' ' . $debugText, false );
 		}
 	}
 
@@ -1610,18 +1792,18 @@
 	 * @return bool
 	 * @access private
 	 */
-	function bindAs( $userdn=null, $password=null ) {
-		//Let's see if the user can authenticate.
+	function bindAs( $userdn = null, $password = null ) {
+		// Let's see if the user can authenticate.
 		if ( $userdn == null || $password == null ) {
-			$bind = @ldap_bind( $this->ldapconn );
+			$bind = LdapAuthenticationPlugin::ldap_bind( $this->ldapconn );
 		} else {
-			$bind = @ldap_bind( $this->ldapconn, $userdn, $password );
+			$bind = LdapAuthenticationPlugin::ldap_bind( $this->ldapconn, $userdn, $password );
 		}
 		if ( !$bind ) {
 			$this->printDebug( "Failed to bind as $userdn", NONSENSITIVE );
-			$this->printDebug( "with password: $password", HIGHLYSENSITIVE );
 			return false;
 		}
+		$this->boundAs = $userdn;
 		return true;
 	}
 
@@ -1633,64 +1815,54 @@
 	 * @access private
 	 */
 	function useAutoAuth() {
-		global $wgLDAPAutoAuthDomain;
-
 		$this->printDebug( "", NONSENSITIVE );
-		return isset( $wgLDAPAutoAuthDomain ) && $_SESSION['wsDomain'] == $wgLDAPAutoAuthDomain;
+		return $this->getSessionDomain() == $this->getConf( 'AutoAuthDomain' );
 	}
 
 	/**
 	 * Returns a string which has the chars *, (, ), \ & NUL escaped to LDAP compliant
 	 * syntax as per RFC 2254
 	 * Thanks and credit to Iain Colledge for the research and function.
-	 * 
+	 *
 	 * @param string $string
 	 * @return string
 	 * @access private
 	 */
-	function getLdapEscapedString ( $string ) {
+	function getLdapEscapedString( $string ) {
 		// Make the string LDAP compliant by escaping *, (, ) , \ & NUL
 		return str_replace(
-			array( "*", "(", ")", "\\", "\x00" ), //replace this
-			array( "\\2a", "\\28", "\\29", "\\5c", "\\00" ), //with this
-			$string //in this
+			array( "\\", "(", ")", "*", "\x00" ),
+			array( "\\5c", "\\28", "\\29", "\\2a", "\\00" ),
+			$string
 			);
 	}
 
 	/**
 	 * Returns a basedn by the type of entry we are searching for.
-	 * 
+	 *
 	 * @param int $type
 	 * @return string
 	 * @access private
 	 */
-	function getBaseDN ( $type ) {
-		global $wgLDAPBaseDNs, $wgLDAPGroupBaseDNs, $wgLDAPUserBaseDNs;
-
+	function getBaseDN( $type ) {
 		$this->printDebug( "Entering getBaseDN", NONSENSITIVE );
 
 		$ret = '';
 		switch( $type ) {
 			case USERDN:
-				if ( isset( $wgLDAPUserBaseDNs[$_SESSION['wsDomain']] ) ) {
-					$ret = $wgLDAPUserBaseDNs[$_SESSION['wsDomain']];
-				}
+				$ret = $this->getConf( 'UserBaseDN' );
 				break;
 			case GROUPDN:
-				if ( isset( $wgLDAPGroupBaseDNs[$_SESSION['wsDomain']] ) ) {
-					$ret =  $wgLDAPGroupBaseDNs[$_SESSION['wsDomain']];
-				}
+				$ret = $this->getConf( 'GroupBaseDN' );
 				break;
 			case DEFAULTDN:
-				if ( isset( $wgLDAPBaseDNs[$_SESSION['wsDomain']] ) ) {
-					$ret = $wgLDAPBaseDNs[$_SESSION['wsDomain']];
-					$this->printDebug( "basedn is $ret", NONSENSITIVE );
+				$ret = $this->getConf( 'BaseDN' );
+				if ( $ret ) {
 					return $ret;
 				} else {
 					$this->printDebug( "basedn is not set.", NONSENSITIVE );
 					return '';
 				}
-				break;
 		}
 
 		if ( $ret == '' ) {
@@ -1703,46 +1875,27 @@
 			return $ret;
 		}
 	}
-
 }
 
-// The following was derived from the SSL Authentication plugin
+// The auto-auth code was originally derived from the SSL Authentication plugin
 // http://www.mediawiki.org/wiki/SSL_authentication
 
 /**
- * Sets up the SSL authentication piece of the LDAP plugin.
+ * Sets up the auto-authentication piece of the LDAP plugin.
  *
  * @access public
  */
 function AutoAuthSetup() {
-	global $wgLDAPAutoAuthUsername;
-	global $wgLDAPSSLUsername;
-	global $wgLDAPAutoAuthDomain;
-	global $wgLDAPSmartcardDomain;
 	global $wgHooks;
 	global $wgAuth;
-
 	$wgAuth = new LdapAuthenticationPlugin();
 
 	$wgAuth->printDebug( "Entering AutoAuthSetup.", NONSENSITIVE );
 
-	//Set configuration options for backwards compatibility
-	if ( isset( $wgLDAPSSLUsername ) ) {
-		$wgAuth->printDebug( 'Setting $wgLDAPAutoAuthUsername to $wgLDAPSSLUsername; please change your configuration to fix this deprecated configuration variable.', NONSENSITIVE );
-		$wgLDAPAutoAuthUsername = $wgLDAPSSLUsername;
-	}
-	if ( isset( $wgLDAPSmartcardDomain ) ) {
-		$wgAuth->printDebug( 'Setting $wgLDAPAutoAuthDomain to $wgLDAPSmartcardDomain; please change your configuration to fix this deprecated configuration variable.', NONSENSITIVE );
-		$wgLDAPAutoAuthDomain = $wgLDAPSmartcardDomain;
-	}
+	if ( !$wgAuth->getConf( 'AutoAuthUsername' ) ) {
+		$wgAuth->printDebug( "wgLDAPAutoAuthUsername is not null, adding hooks.", NONSENSITIVE );
+		$wgHooks['UserLoadAfterLoadFromSession'][] = 'LdapAutoAuthentication::Authenticate';
 
-	if( $wgLDAPAutoAuthUsername != null ) {
-		$wgAuth->printDebug( "wgLDAPAutoAuthUsername is not null, adding hooks.", NONSENSITIVE );
-		if ( version_compare( $wgVersion, '1.14.0', '<' ) ) {
-			$wgHooks['UserLoadFromSession'][] = 'LdapAutoAuthentication::Authenticate';
-		} else {
-			$wgHooks['UserLoadAfterLoadFromSession'][] = 'LdapAutoAuthentication::Authenticate';
-		}
 		$wgHooks['PersonalUrls'][] = 'LdapAutoAuthentication::NoLogout'; /* Disallow logout link */
 	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAutoAuthentication.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAutoAuthentication.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-ldapauth/usr/share/mediawiki-extensions/ldapauth/LdapAutoAuthentication.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -5,84 +5,78 @@
 	/**
 	 * Does the web server authentication piece of the LDAP plugin.
 	 *
-	 * @access public
+	 * @param $user User
+	 * @param $result bool
+	 * @return bool
 	 */
-	static function Authenticate( $user, &$result ) {
-	        global $wgUser;
-	        global $wgAuth;
-		global $wgLDAPAutoAuthUsername;
-		global $wgVersion;
-	
-	        $wgAuth->printDebug( "Entering AutoAuthentication.", NONSENSITIVE );
+	public static function Authenticate( $user, &$result = null ) {
+		/**
+		 * @var $wgAuth LdapAuthenticationPlugin
+		 */
+		global $wgAuth;
 
-		if ( version_compare( $wgVersion, '1.14.0', '<' ) ) {
-			//The following section is a hack to determine whether or not
-			//the user is logged in. We need a core fix to make this simpler.
-			if ( isset( $_SESSION['wsUserID'] ) ) {
-				$user->setID( $_SESSION['wsUserID'] );
-				if ( $user->loadFromId() ) {
-					if ( $_SESSION['wsToken'] == $user->mToken  && $_SESSION['wsUserName'] == $user->mName ) {
-				                $wgAuth->printDebug( "User is already logged in.", NONSENSITIVE );
-						$result = true;
-				                return true;
-				        } else {
-						$user->loadDefaults();
-					}
-				}
-			}
-		} else {
-			if ( $user->isLoggedIn() ) {
-				$wgAuth->printDebug( "User is already logged in.", NONSENSITIVE );
-				return true;
-			}
+		$wgAuth->printDebug( "Entering AutoAuthentication.", NONSENSITIVE );
+
+		if ( $user->isLoggedIn() ) {
+			$wgAuth->printDebug( "User is already logged in.", NONSENSITIVE );
+			return true;
 		}
-	
-	        $wgAuth->printDebug( "User isn't logged in, calling setup.", NONSENSITIVE );
-	
-	        //Let regular authentication plugins configure themselves for auto
-	        //authentication chaining
-	        $wgAuth->autoAuthSetup();
-	
-	        $wgAuth->printDebug( "Calling authenticate with username ($wgLDAPAutoAuthUsername).", NONSENSITIVE );
-	        //The user hasn't already been authenticated, let's check them
-	        $authenticated = $wgAuth->authenticate( $wgLDAPAutoAuthUsername );
-	        if ( !$authenticated ) {
-	                //If the user doesn't exist in LDAP, there isn't much reason to
-	                //go any further.
-	                $wgAuth->printDebug("User wasn't found in LDAP, exiting.", NONSENSITIVE );
-	                return false;
-	        }
-	
-	        //We need the username that MediaWiki will always use, *not* the one we
-	        //get from LDAP.
-	        $mungedUsername = $wgAuth->getCanonicalName( $wgLDAPAutoAuthUsername );
-	
-	        $wgAuth->printDebug( "User exists in LDAP; finding the user by name ($mungedUsername) in MediaWiki.", NONSENSITIVE );
-	
+
+		$wgAuth->printDebug( "User isn't logged in, calling setup.", NONSENSITIVE );
+
+		// Let regular authentication plugins configure themselves for auto
+		// authentication chaining
+		$wgAuth->autoAuthSetup();
+
+		$autoauthname = $wgAuth->getConf( 'AutoAuthUsername' );
+		$wgAuth->printDebug( "Calling authenticate with username ($autoauthname).", NONSENSITIVE );
+
+		// The user hasn't already been authenticated, let's check them
+		$authenticated = $wgAuth->authenticate( $autoauthname, '' );
+		if ( !$authenticated ) {
+			// If the user doesn't exist in LDAP, there isn't much reason to
+			// go any further.
+			$wgAuth->printDebug( "User wasn't found in LDAP, exiting.", NONSENSITIVE );
+			return false;
+		}
+
+		// We need the username that MediaWiki will always use, not necessarily the one we
+		// get from LDAP.
+		$mungedUsername = $wgAuth->getCanonicalName( $autoauthname );
+
+		$wgAuth->printDebug( "User exists in LDAP; finding the user by name ($mungedUsername) in MediaWiki.", NONSENSITIVE );
 		$localId = User::idFromName( $mungedUsername );
-	        $wgAuth->printDebug( "Got id ($localId).", NONSENSITIVE );
-	
-	        //Is the user already in the database?
-	        if( !$localId ) {
+		$wgAuth->printDebug( "Got id ($localId).", NONSENSITIVE );
+
+		// Is the user already in the database?
+		if ( !$localId ) {
 			$userAdded = self::attemptAddUser( $user, $mungedUsername );
 			if ( !$userAdded ) {
 				$result = false;
 				return false;
 			}
 		} else {
-	                $wgAuth->printDebug( "User exists in local database, logging in.", NONSENSITIVE );
+			$wgAuth->printDebug( "User exists in local database, logging in.", NONSENSITIVE );
 			$user->setID( $localId );
 			$user->loadFromId();
 			$user->setCookies();
 			$wgAuth->updateUser( $user );
 			wfSetupSession();
 			$result = true;
-	        }
+		}
 
-	        return true;
+		return true;
 	}
 
-	static function attemptAddUser( $user, $mungedUsername ) {
+	/**
+	 * @param $user User
+	 * @param $mungedUsername String
+	 * @return bool
+	 */
+	public static function attemptAddUser( $user, $mungedUsername ) {
+		/**
+		 * @var $wgAuth LdapAuthenticationPlugin
+		 */
 		global $wgAuth;
 
 		if ( !$wgAuth->autoCreate() ) {
@@ -90,33 +84,37 @@
 			return false;
 		}
 
-	        $wgAuth->printDebug( "User does not exist in local database; creating.", NONSENSITIVE );
-	
+		$wgAuth->printDebug( "User does not exist in local database; creating.", NONSENSITIVE );
 		// Checks passed, create the user
 		$user->loadDefaults( $mungedUsername );
 		$user->addToDatabase();
-
 		$wgAuth->initUser( $user, true );
-	        $user->setCookies();
+		$user->setCookies();
 		wfSetupSession();
-
 		# Update user count
 		$ssUpdate = new SiteStatsUpdate( 0, 0, 0, 0, 1 );
 		$ssUpdate->doUpdate();
-
 		# Notify hooks (e.g. Newuserlog)
 		wfRunHooks( 'AuthPluginAutoCreate', array( $user ) );
 
 		return true;
 	}
 
-	/* No logout link in MW */
-	static function NoLogout( &$personal_urls, $title ) {
-	        global $wgAuth;
-	        $wgAuth->printDebug( "Entering NoLogout.", NONSENSITIVE );
-	
-	        $personal_urls['logout'] = null;
-	
-	        return true;
+	/**
+	 * No logout link in MW
+	 * @param $personal_urls array
+	 * @param $title Title
+	 * @return bool
+	 */
+	public static function NoLogout( &$personal_urls, $title ) {
+		/**
+		 * @var $wgAuth LdapAuthenticationPlugin
+		 */
+		global $wgAuth;
+
+		$wgAuth->printDebug( "Entering NoLogout.", NONSENSITIVE );
+		unset( $personal_urls['logout'] );
+		return true;
 	}
+
 }

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/README.OpenID-mediawiki-extension
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/README.OpenID-mediawiki-extension	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/README.OpenID-mediawiki-extension	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,489 @@
+MediaWiki OpenID extension README.OpenID-mediawiki-extension file
+version 0.947-beta 20120205
+Homepage and manual http://www.mediawiki.org/wiki/Extension:OpenID
+
+Please check OpenID.setup.php for the current program version number
+
+This is the README file for the OpenID extension for MediaWiki software. The
+extension is only useful if you've got a MediaWiki installation; it can only be
+installed by the administrator of the site.
+
+The extension lets users log in with an OpenID (http://www.openid.net/) instead
+of a username and password. An OpenID is a special URL that people can use to
+log in to a Web site. The extension also lets users who have an account on the
+wiki log in to other OpenID-aware Web sites with their wiki user page as their
+OpenID.
+
+Typical uses:
+
+* Single-signon between multiple affiliated wikis and other sites.
+* Single-signon across the Internet. Many, many sites now support OpenID,
+  including "big names" like Yahoo!, Google, and AOL. Allowing users to login
+  with OpenID means one less step for them to contribute to your wiki.
+* Distributed reputation. Logging into a new wiki with the same username as you
+  have on another wiki doesn't prove that they're the same person. Logging in
+  with your OpenID from the old wiki does. Using OpenID can help build a
+  distributed reputation across the wiki world.
+
+The software supports OpenID 2.0 and '''requires''' the openidenabled.com 2.2.2
+libraries. Users of previous versions should see [[#Upgrade]] for more
+information.
+
+This extension has been in use for years on several large wikis without known
+security problems. However, no software is completely bug-free or secure, and
+there's no guarantee that this software will work as advertised. See [[#Bugs]]
+section below for info on how to report problems.
+
+== License ==
+
+Copyright 2006,2007 Internet Brands (http://www.internetbrands.com/)
+Copyright 2008 Evan Prodromou (http://vinismo.com/en/User:Evan)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+== Authors ==
+
+Evan Prodromou <evan at vinismo.com>
+Patches for YADIS support and FileStore storage by Jonathan Daugherty
+<cygnus at janrain.com>.
+Thomas Gries
+
+== Pre-requisites ==
+
+This software has been tested with MediaWiki 1.19 rev. 88135
+
+The software depends on the OpenIDEnabled.com PHP library for OpenID, which in
+turn depends on the OpenIDEnabled.com PHP library for YADIS. At the time of this
+writing, info on installing these libraries was available here:
+
+   http://www.openidenabled.com/php-openid/
+
+Unfortunately, tt requires patches when running with PHP 5.3.x and later.
+The download from the above Url and the patch will be automatically done
+when you run "make" (see next section).
+
+The version tested with is 2.2.2; '''versions below 2.0 will not work'''.
+
+There are also some required PHP extensions; see the OpenIDEnabled documentation
+for details. This software has been tested with the gmp and curl PHP extensions
+installed, and it's recommended that you install them, too.
+
+/* FIXME: */
+Note that some versions of MediaWiki overwrite the PHP library path in
+LocalSettings.php. You may need to add the path to your PHP library directory
+to the $path variable, like "/usr/share/php" or "/usr/local/share/php".
+
+== Installation ==
+
+The repository downloader can be accessed by:
+
+   http://www.mediawiki.org/wiki/Special:ExtensionDistributor/OpenID
+
+To install the MediaWiki extension, download the MediaWiki extension tarball
+to your extensions subdirectory $IP/extensions of your MediaWiki installation,
+$IP being the directory of your LocalSettings.php, and untar the package to
+the subdirectory $IP/extensions/OpenID.
+
+The following examples shows the step for extension revision r######:
+
+   cd $IP/extensions
+   wget http://upload.wikimedia.org/ext-dist/OpenID-trunk-r#####.tar.gz
+   tar -xzf http://upload.wikimedia.org/ext-dist/OpenID-trunk-r#####.tar.gz
+
+Remark:
+
+Note that the software currently depends on having all its code in the "OpenID"
+sub-directory; naming it "OpenID-Test" or "newextension1" or whatever
+won't work.
+
+A makefile is included which now automates the second step, the installation of
+the php-openid library (MediaWiki OpenID depends on the OpenIDEnabled.com PHP
+library for OpenID, which in turn depends on the OpenIDEnabled.com PHP library
+for YADIS).
+
+Download and patch of openid library:
+
+	cd $IP/extensions/OpenID
+	make
+
+The makefile downloads the openid-php library from http://www.openidenabled.com/php-openid/
+and applies a patch to avoid PHP errors because Call-time pass-by-reference is deprecated
+since PHP 5.3.x see https://github.com/openid/php-openid/issues#issue/8  and
+the patch and fork of user kost https://github.com/openid/php-openid/pull/44/files
+    
+Version 0.3 and below of this extension used a different database structure
+that was pretty inefficient. If you installed this extension before, you should
+copy the optionToTable.php script to your MediaWiki "maintenance" directory and
+run it from the command line. This will copy the OpenID mappings from the user
+table to the new table (but it doesn't erase the old data... just in case).
+
+In your MediaWiki LocalSettings.php, add the following line some place towards
+the bottom of the file:
+
+	require_once( "$IP/extensions/OpenID/OpenID.setup.php" );
+
+Run update.php script in in your MediaWiki maintenance folder to conditionally create
+a new table in MediaWiki database as required by the OpenID extension:
+
+	cd $IP/maintenance
+	php update.php
+
+Theoretically it should work out of the box, but you'll almost definitely want
+to set the trust root and access controls (see Configuration below).
+
+== Upgrade ==
+
+'''This is an incompatible upgrade to the previous version of the MediaWiki
+OpenID library.''' In particular, the interfaces of the openidenabled.com
+libraries have changed from 1.x to 2.x, and no effort has been made to retain
+backwards compatibility with the 1.x versions of the library.
+
+To upgrade, you'll need to do at least the following:
+
+* Install the 2.x version of the openidenabled.com PHP OpenID library.
+* Check that your consumer and server stores are correct. I got tired of
+  maintaining the MemcStore that nobody seemed to want, so if you used that, you
+  need to use the filestore now. See below for how to configure it.
+* Change your require_once line in LocalSettings.php to use the .setup.php file.
+* 'openidlogininstructions' is now wikitext, not HTML. If you've customized it,
+  you may need to re-customize it. Also, it's now shown '''below''' the login
+  box, so if you say ''the box below'', you may want to change that to ''the box
+  above''.
+* The extension has been converted to use a clumsy and perverse OOP-like
+  structure, with one class per special page. Most function names have been
+  changed to methods of these classes. If you used them, look around for their
+  replacements.
+* The extension has been converted to use the autoloading features of MediaWiki,
+  which means that you need to require() the files directly if you really want
+  to use their code. Or you might get lucky and have autoloading work for you.
+
+If you find other incompatibilities that I haven't mentioned here, please let
+me know.
+
+== Logging in using OpenID ==
+
+To log in to the wiki using an OpenID, go to the Special:OpenIDLogin
+page on the wiki. Add the OpenID identity URL to the login box, and
+click "Verify".
+
+This ''should'' take you to the OpenID server for your identity, where
+you can either log in (if you're not already) or approve allowing the
+wiki to use your OpenID for logging in. If the OpenID server supports
+the Simple Registration Extension ('sreg'), it may also ask you
+whether to share personal information like your preferred nickname,
+real name, email address, etc. Choose as you wish.
+
+Once you're logged in to your OpenID server, and you've finished
+approving the login, you should return to the wiki from whence you
+came automatically.
+
+Every user who logs in with an OpenID identity for the first time will
+be assigned a "fake" username in the local wiki. (This just makes
+things work better.)
+
+If you've allowed your nickname to be passed to the wiki, and it's not
+already taken, and it's a legal MediaWiki user name, then it should
+use that for your login automatically.
+
+If not, the extension will try to make up some good candidate
+usernames for you and present you with a choice. If you don't like any
+of them, you can make up your own.
+
+After you're logged in, you can edit, read, write, and do all the
+other things that MediaWiki users do. Since you've got a "real"
+account, you'll also have a home page and a message page and such. It
+should also be possible to assign extra permissions ('sysop',
+'bureaucrat') to the account. You can log out as normal.
+
+To log back in, use the OpenIDLogin page again. Don't try to login
+using the regular login page, since it won't work.
+
+You can log in with an Interwiki abbreviation of an URL right now, but
+that's experimental and may disappear in later versions. Don't fall in
+love with this convenient, useful feature. You may get hurt.
+
+== Using a MediaWiki account as an OpenID ==
+
+To log in to other sites with your MediaWiki account, your OpenID
+identity URL is the full URL of your MediaWiki user page. So, for
+example, the author's identity URL is:
+
+	 http://wikitravel.org/en/User:Evan
+
+When you use this OpenID with another site, logging in should take you
+to the wiki site. You may need to enter your password if you're not
+already logged in.
+
+You'll then be asked if you want to let the other site log you in, and
+if you want the MediaWiki wiki to share your personal information
+(nickname, email, full name, language) with the other site. Choose
+what feels comfortable to you. For some sites, you may not be asked;
+see Configuration below.
+
+Once you've finished deciding, the other site will finish the login.
+
+You can't log in through OpenID on the same server. You can't use the
+user page for a fake account created for an OpenID login as an OpenID
+itself.
+
+== Configuration ==
+
+The administrator can configure these variables in the
+LocalSettings.php file. Please read carefully.
+
+* $wgTrustRoot -- This is an URL that identifies your site to OpenID
+  servers. Typically, it's the "root" url of the site, like
+  "http://en.wikipedia.org/" or "http://wikitravel.org/it/". If this is
+  not set, the software will make a half-hearted guess, but it's not
+  very good and you should probably just set it.
+
+* $wgOpenIDConsumerDenyByDefault -- The administrator can decide which
+  OpenIDs are allowed to login to their server. If this flag is
+  true, only those OpenIDs that match one of the $wgOpenIDConsumerAllow
+  and not one of the $wgOpenIDConsumerDeny patterns will be allowed to
+  log in. If it is false, all OpenIDs are allowed to log in, unless
+  they are matched by an $wgOpenIDConsumerDeny pattern and not an
+  $wgOpenIDConsumerAllow. Typically you'll set this to true for
+  testing and then false for general use.
+
+* $wgOpenIDConsumerAllow -- an array of regular expressions that match
+  OpenIDs you want to allow to log in. For example,
+  "@^(http://)?wikitravel.org/@" will allow OpenIDs from the Wikitravel
+  domain.
+
+* $wgOpenIDConsumerDeny -- an array of regular expressions that match
+  OpenIDs you want to deny access to. This is mostly useful for
+  servers that are known to be bad. Example: "#^(http://)?example.com/#".
+
+* $wgOpenIDConsumerForce -- a single provider which will always be used,
+  bypassing the selection dialog and manual entry.  Useful for team wikis
+  using a provider such as Google Apps for Your Domain.
+  
+* $wgOpenIDUseEmailAsNickname -- designed for use with the above, parse 
+  the e-mail address provided by your provider and use the user component
+  as the MediaWiki username.
+
+* $wgOpenIDProposeUsernameFromSREG
+  defaults to true; when first-time logging in with OpenID, propose and
+  allow new account names from OpenID SREG data such as fullname or nickname
+
+* $wgOpenIDAllowNewAccountname
+  defaults to true; when first-time logging in with OpenID, show option
+  to enter and to allow a manually chosen username for a new wiki account
+
+* $wgOpenIDAllowExistingAccountSelection
+  defaults to true; whether associating an existing account with OpenID is
+  allowed
+
+* $wgOpenIDAllowAutomaticUsername
+  defaults to true; when first-time logging in with OpenID, show option
+  to choose and to allow an automatically generated username
+    
+* $wgOpenIDTrustEmailAddress -- trust the e-mail address sent by the 
+  provider and don't require it to be verified.  If false (the default), 
+  all new users will be required to validate their e-mail address.
+
+* $wgOpenIDServerForceAllowTrust -- an array of regular expressions
+  that match trust roots that you want to skip trust checks for when
+  the user logs in from those sites. A typical example would be a
+  closely federated cluster of sites (like Wikimedia, Wikia, or
+  Wikitravel) where the personal data is available to the trusting
+  server ''anyways''. Be very careful using this across organizational
+  boundaries.
+
+* $wgOpenIDConsumerStoreType and $wgOpenIDServerStoreType -- strings
+  denoting the type of storage to be used to store OpenID assocation
+  data when acting as an OpenID relying party (consumer) and server,
+  respectively. Valid values are "file", "memcached" and "db".
+
+* $wgOpenIDConsumerStorePath and $wgOpenIDServerStorePath -- strings
+  specifying the paths where OpenID assocation data should be stored
+  when acting as a relying party (consumer) or server, respectively.
+  Each of these need only be set if the store type settings (above)
+  are set to "file", respectively.  These strings, if both are set,
+  MUST NOT be equal. If the store type is "file", the default here is
+  "/tmp/$wgDBname/openidconsumer/" and "/tmp/$wgDBname/openidserver/"
+  respectively. The path will be automatically created if it doesn't
+  exist at runtime.
+
+* $wgHideOpenIDLoginLink -- boolean that says whether or not to hide
+  the OpenID login link in the personal URLs. Typically you'd use this
+  if you've already got some other method for showing the OpenID login
+  link, like in your skin. Note that it will *not* prevent login if
+  the user navigates to Special:OpenIDLogin directly; it's simply
+  cosmetic. This is mostly a backwards-compatibility option.
+
+* $wgOpenIDLoginLogoUrl -- Url of the OpenID login logo. Defaults to
+  'http://www.openid.net/login-bg.gif', but you may want to move it to
+  a local URL, or an URL on a CDN, if that kind of thing floats your
+  boat.
+
+* $wgOpenIDShowUrlOnUserPage -- whether to show the OpenID identity URL
+  on a user's home page. Possible values are 'always', 'never', or 'user'
+  (lets the user decide). Default is 'user'.
+
+* $wgOpenIDOnly -- defaults to false. With this enabled, users can
+  ''only'' log in with OpenID.
+
+* $wgOpenIDClientOnly -- defaults to false. With this enabled, users
+  cannot use their accounts on the local wiki as OpenIDs on another
+  site. Sucks for users, but some admins have emailed me about not
+  wanting the responsibility of being an OpenID server, so this flag
+  is for them.
+
+* $wgOpenIDAllowServingOpenIDUserAccounts -- defaults to false.
+  Having this enabled, it allows to use Urls of this wiki's users' pages
+  as OpenID identities on other OpenID-aware sites even when OpenID(s) are
+  associated with user accounts on this wiki. Some users might want to do that
+  for vanity purposes or whatever.
+
+  False prevents the serving of User page URLs as OpenID accounts
+  on other sites.
+  
+  Remark:
+
+  User page urls can (currently) only act as OpenID if the user page really
+  exists i.e. has content. The mere existence of a user account is (currently)
+  not sufficient.
+
+* $wgOpenIDMergeOnAccountMerge (default: false)
+  When merging accounts with the UserMerge and Delete extension,
+  should OpenIDs associated to the "from" account automatically be associated
+  to the "to" account ?
+
+* $wgOpenIDShowProviderIcons -- defaults to false due to potential
+  brand issues. With this enabled, users will see button graphics
+  instead of just links in OpenID provider UI.
+
+== Setups of standard scenarios ==
+This section shows some settings for typical applications.
+
+Example 1:
+
+The following code in $IP/LocalSettings.php sets a MediaWiki for allowing
+user name account creations by Sysops only ("account creation by mail").
+
+Sysop-defined users can then login to their accounts but only with an OpenID
+identity. They need to associate their OpenID identity with their user name and
+user account; this step is only required once.
+
+The other setting allows user pages of this MediaWiki to serve as OpenID
+identities on another OpenID-aware site:
+
+require( "$IP/extensions/OpenID/OpenID.php" );
+$wgOpenIDOnly = true;
+$wgOpenIDAllowServingOpenIDUserAccounts = true;
+
+// Implicit group for all visitors
+$wgGroupPermissions['*'    ]['createaccount']   = false;
+$wgGroupPermissions['*'    ]['read']            = true;
+$wgGroupPermissions['*'    ]['edit']            = false;
+$wgGroupPermissions['*'    ]['createpage']      = false;
+$wgGroupPermissions['*'    ]['createtalk']      = false;
+
+Example 2:
+
+The following setting configures a MediaWiki so that anyone can create an
+account and can log in with either their userid/password - or with their OpenID
+identity.
+
+During first-time log-ins with OpenID, users see only a box where they can enter
+their wanted username for the account creation, or to be associated with the
+OpenID identity when they enter a username of an existing account (the
+corresponding account password must be then entered once).
+
+Subsequent log-ins can be then done with either the userid/password method or
+simply with the OpenID, which does not require any further password sub-
+mission to the MediaWiki.
+
+require_once("$IP/extensions/OpenID/OpenID.php");
+/**
+ * when logging on:
+ * show only the option to enter and to allow a manually chosen username
+ * do not propose new account names from their OpenID SREG data
+   (such as fullname or nickname on their OpenID server)
+ * do not propose an automatically generated username
+ */
+$wgOpenIDAllowManualUsername = true;
+$wgOpenIDProposeUsernameFromSREG = false;
+$wgOpenIDAllowAutomaticUsername = false;
+
+== Translation ==
+
+The user interface strings for this extension are configurable and all start
+with "openid". See OpenID.i18n.php for details. Translation is done via
+translatewiki.net, as usual.
+
+== OpenID services ==
+
+These are some of the OpenID services I tested this extension with;
+all have free signup for identities if you want to test, too.
+
+* http://www.myopenid.com/ -- uses Simple Registration Extension
+* http://getopenid.com/
+* http://www.typekey.com/
+* http://www.claimid.com/
+* http://pip.verisignlabs.com/
+* http://certifi.ca/
+
+== Bugs ==
+
+List of known bugs is
+
+   http://preview.tinyurl.com/openid-bugs
+
+Bugs and important observations should be filed as
+Product: MediaWiki extensions, Component: OpenID in bugzilla via
+
+   http://preview.tinyurl.com/openid-filebug
+
+== TODO ==
+
+* Code review http://preview.tinyurl.com/openid-codereview
+* Move TODO file and things below into Bugzilla
+
+The TODO file in this distribution has stuff I think needs to be
+todone; + marks show things I've already done, and - shows things
+that are yet to be done.
+
+The big changes for the future:
+
+* Configure some stuff through Special:Preferences or a dedicated
+  control panel
+* Auto-login if you've logged in before with an OpenID, and are logged
+  into that account now
+
+== CHANGES ==
+* 0.947 using jQuery closure for redirect
+* 0.946 fixed the problem of broken automatic redirect to OpenID provider login
+        replaced hookEvent() by	jQuery( document ).ready( submitOpenIDForm )
+* 0.945 improved Makefile: added the SHA1 checksum of php-openid library.tar.gz
+* 0.944 improved the Makefile by adding a test if "patch" (program) exists
+        some users reported that this is not standard in all distrubtions
+* 0.942 code cosmetic db schema updater
+* 0.940 changed database schema updater; tested for MySQL
+* 0.939 function name changes
+* 0.938 list uoi_user_registration timestamp if present in openid-preference tab
+* 0.937 added uoi_user_registration timestamp field (bug30623)
+* 0.934 fixes
+  bug 29543 After logging in with OpenID, user page link in the personal toolbar
+  pt portlet) still has the User:IP link (needs refresh to link to
+  User:Username)
+* [http://svn.wikimedia.org/viewvc/mediawiki/tags/extensions/OpenID/REL_0_8_4/ 0.8.4] (April 16, 2009) - Added provider buttons to the OpenID login page with optional icons ($wgOpenIDShowProviderIcons)
+* [http://svn.wikimedia.org/viewvc/mediawiki/tags/extensions/OpenID/REL_0_8_4_1/ 0.8.4.1] (April 16, 2009) - Post-release fix to broken icon on user's page.
+* 0.9.1 fixes for PHP > 5.3.x; fixed bugs
+  bug 27419 OpenID extension: disallow new account creation for those users without "createaccount" permission
+  bug 27581 3 new OpenID login page parameters: $wgOpenIDAllowManualUsername, AllowAutomaticUsername, ProposeUsernameFromSREG
+  bug 18635 Allow to use User pages as OpenIDs even if user is using OpenID already

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/TODO
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/TODO	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/doc/mediawiki-extensions/openid/TODO	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,5 +1,53 @@
+Status: 0.929-beta 20110528
+
+? more details are needed to understand the "to do"
+* resolved, or partially resolved, wontfix
+- open
++ fixed
+
+? Dynamic HTML swap in of OpenID login form on Special:Userlogin
+? OpenID extension to share MW settings
+? Optionally redirect User: page to OpenID URL
+? AJAX login, rather than klutzy JS form
+? Provider-driven identifier selection (eh? do we care?)
+? Auto-login if you've logged in before with an OpenID,
+  and are logged into that account now
+
+- $byEmail parameter of AddNewAccount hook: should this be false, or true ?
+- i18n of OpenIDDashboard.body.php
+- redesign MediaWiki extension and php-openid library paths to avoid
+  $path=array( dirname( __FILE__ ) );
+  set_include_path(implode(PATH_SEPARATOR,$path).PATH_SEPARATOR.get_include_path());
+  in OpenID.setup.php. I don't know, if it can be avoided.
+- keep user from mailing new password in OpenID account except case S/OO
+- keep user from setting password in OpenID account except case S/OO
+- participate in account-creation throttle
+- audit to prevent circumventing blocks/bans
+- share timezone when/if available
+- Manage allow-to-trust settings in User preferences
+- optimize trust storage
+- If user logs in with OpenID, add a cookie, and auto-login next time
+  with check_immediate
+- configurable regexps for finding a user ID from an OpenID.
+- deal with difference between canonical ID and "display ID" with XRIs
+- support RP discovery
+- README (always keep README up to date)
+
+* warn if a user account has been used as a login before attaching an
+  OpenID (I think, this is solved; marked with * instead of +)
+* Configure some stuff through Special:Preferences or a dedicated control panel
+  (under construction, see Special:OpenIDDashboard)
+
++ be aware of user deletions done by extension UserMerge and Delete (and others)
+  https://bugzilla.wikimedia.org/show_bug.cgi?id=28993
++ allow user to set or reset a password in case of
+  !$wgOpenIDClientOnly && $wgOpenIDOnly
+  (https://bugzilla.wikimedia.org/show_bug.cgi?id=29027)
+  = case Server/OpenID-Only
++ Execute MediaWiki hook 'AddNewAccount' when new account is added
+  https://bugzilla.wikimedia.org/show_bug.cgi?id=21711
 + Add a Storage class for $wgMemc
-+ Prevent running OpenIDLogin, OpenIDFinish when you're already logged in
++ Prevent running OpenIDLogin when you're already logged in
 + Add a server mode
 + Prevent serving OpenID accounts
 + Prevent trusting the same server
@@ -8,58 +56,36 @@
 + Function to let skins tell if user is OpenID user
 + Function to let skins know user's OpenID URL
 + Interwiki login
-- drop-down for username prefixes (Yahoo, etc.)
++ drop-down for username prefixes (Yahoo, etc.)
 + server mode login
 + server mode trust form
 + server mode share fields form
 + change a "regular" account to an OpenID account
-- keep user from setting password in OpenID account
-- keep user from mailing new password in OpenID account
-- participate in account-creation throttle
-- audit to prevent circumventing blocks/bans
-- OpenID extension to share MW settings
-- share timezone when/if available
 + split big file into 2-3 smaller modules
 + add openid.server to user pages
 + hide openid.server for non-user pages
-- optimize trust storage
 + change trust data separators from , and | to FS and RS
-- User preferences tab for OpenID
-- Manage allow-to-trust settings in User preferences
-- Optionally redirect User: page to OpenID URL
-- If user logs in with OpenID, add a cookie, and auto-login next time
-  with check_immediate
++ User preferences tab for OpenID
 + Have some $trust_root values that we _always_ allow to trust
-+ README
 + form to choose user ID if not sreg.nickname or sreg.fullname
 + try to guess user name from URL with /
   like http://getopenid.com/evanprodromou or
   http://profile.typekey.com/EvanProdromou/
 + Allow specifying a FileStore
-- Allow specifying a MySQLStore
-- Allow specifying a memcached store
++ Allow specifying a MySQLStore
++ Allow specifying a memcached store
 + Fall back to FileStore if Memc is bogus
 + Unit test for MemcStore
 + for just-a-hostname OpenIDs, if the first element is not
   www, use the first element as a proposed ID
-- configurable regexps for finding a user ID from an OpenID.
 + Make the OpenID login page more prominent. A personal toolbox link for each page?
 + Update Sreg support for new API in version 2.0 libraries
-- Provider-driven identifier selection (eh? do we care?)
 + fix problem with getting $request->identity after login on server
 + fix problem with return_to parsing on login
 + fix problem with return_to parsing on convert
 + optionally allow user to specify an existing username/password after
   logging in with OpenID the first time (like ma.gnolia.com)
-- deal with difference between canonical ID and "display ID" with XRIs
 + add more explanatory text to the default login instructions (copy Wikitravel text)
-- add a public-domain Help:OpenID.wiki
-- add more than one OpenID to a user account
-+ link to Special:OpenIDConvert if user is already logged in
-- support RP discovery
-- AJAX login, rather than klutzy JS form
-- link to OpenID login on Special:Userlogin
-- Dynamic HTML swap in of OpenID login form on Special:Userlogin
-- warn if a user account has been used as a login before attaching an
-  OpenID
-  
\ No newline at end of file
++ add more than one OpenID to a user account
++ link to Special:OpenIDConvert if user is already logged in (fixed in 0.924-beta)
++ link to OpenID login on Special:Userlogin (fixed in 0.924-beta)

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/DatabaseConnection.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/DatabaseConnection.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/DatabaseConnection.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,81 @@
+<?php
+
+require_once( 'Auth/OpenID/DatabaseConnection.php' );
+
+class MediaWikiOpenIDDatabaseConnection extends Auth_OpenID_DatabaseConnection {
+
+	function __construct( $db ) {
+		$this->db = $db;
+	}
+
+	function autoCommit( $mode ) {
+		$old = $this->db->getFlag( DBO_TRX );
+		if ( $mode ) {
+			$this->db->setFlag( DBO_TRX );
+		} else {
+			$this->db->clearFlag( DBO_TRX );
+		}
+		return $old;
+	}
+
+	function query( $sql, $params = array() ) {
+		return $this->db->safeQuery( $sql, $params );
+	}
+
+	function begin() {
+		$this->db->begin();
+	}
+
+	function commit() {
+		$this->db->commit();
+	}
+
+	function rollback() {
+		$this->db->rollback();
+	}
+
+	function getOne( $sql, $params = array() ) {
+		$res = $this->query( $sql, $params );
+
+		if ( !$res instanceof ResultWrapper )
+			return $res;
+		if ( !$res->numRows() )
+			return false;
+
+		$row = $res->fetchRow();
+		if ( $row !== false ) {
+			$res->free();
+			return reset( $row );
+		} else {
+			return false;
+		}
+	}
+
+	function getRow( $sql, $params = array() ) {
+		$res = $this->query( $sql, $params );
+
+		if ( !$res instanceof ResultWrapper )
+			return $res;
+		if ( !$res->numRows() )
+			return false;
+
+		$row = $res->fetchRow();
+		$res->free();
+		return $row;
+	}
+
+	function getAll( $sql, $params = array() ) {
+		$res = $this->query( $sql, $params );
+
+		if ( !$res instanceof ResultWrapper )
+			return $res;
+		if ( !$res->numRows() )
+			return false;
+
+		$ret = array();
+		foreach ( $res as $row ) {
+			$ret[] = (array)$row;
+		}
+		return $ret;
+	}
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/MemcachedStore.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/MemcachedStore.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/MemcachedStore.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,87 @@
+<?php
+
+require_once( 'Auth/OpenID/MemcachedStore.php' );
+
+class MediaWikiOpenIDMemcachedStore extends Auth_OpenID_MemcachedStore {
+
+	function __construct( $connection ) {
+		$this->connection = $connection;
+	}
+
+	function storeAssociation( $server_url, $association ) {
+		$associationKey = $this->associationKey( $server_url,
+			$association->handle );
+		$serverKey = $this->associationServerKey( $server_url );
+
+		$serverAssociations = $this->connection->get( $serverKey );
+
+		if ( !$serverAssociations ) {
+			$serverAssociations = array();
+		}
+
+		$serverAssociations[$association->issued] = $associationKey;
+
+		$this->connection->set( $serverKey, $serverAssociations );
+
+		$this->connection->set( $associationKey, $association,
+			$association->issued + $association->lifetime );
+	}
+
+	function getAssociation( $server_url, $handle = null ) {
+		if ( $handle !== null ) {
+			$association = $this->connection->get(
+				$this->associationKey( $server_url, $handle ) );
+			return $association ? $association : null;
+		}
+
+		$serverKey = $this->associationServerKey( $server_url );
+
+		$serverAssociations = $this->connection->get( $serverKey );
+		if ( !$serverAssociations ) {
+			return null;
+		}
+
+		$keys = array_keys( $serverAssociations );
+		sort( $keys );
+		$lastKey = $serverAssociations[array_pop( $keys )];
+
+		$association = $this->connection->get( $lastKey );
+		return $association ? $association : null;
+	}
+
+	function removeAssociation( $server_url, $handle ) {
+		$serverKey = $this->associationServerKey( $server_url );
+		$associationKey = $this->associationKey( $server_url,
+			$handle );
+
+		$serverAssociations = $this->connection->get( $serverKey );
+		if ( !$serverAssociations ) {
+			return false;
+		}
+
+		$serverAssociations = array_flip( $serverAssociations );
+		if ( !array_key_exists( $associationKey, $serverAssociations ) ) {
+			return false;
+		}
+
+		unset( $serverAssociations[$associationKey] );
+		$serverAssociations = array_flip( $serverAssociations );
+
+		$this->connection->set( $serverKey, $serverAssociations );
+
+		return $this->connection->delete( $associationKey );
+	}
+
+	function useNonce( $server_url, $timestamp, $salt ) {
+		global $Auth_OpenID_SKEW;
+
+		if ( abs( $timestamp - time() ) > $Auth_OpenID_SKEW ) {
+			return false;
+		}
+
+		return $this->connection->add(
+			'openid_nonce_' . sha1( $server_url ) . '_' . sha1( $salt ),
+			1, $Auth_OpenID_SKEW );
+    }
+
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.alias.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.alias.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.alias.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -6,69 +6,176 @@
  * @ingroup Extensions
  */
 
-$aliases = array();
+$specialPageAliases = array();
 
-/** English
- * @author IAlex
- */
-$aliases['en'] = array(
-	'OpenIDLogin'  => array( 'OpenIDLogin' ),
-	'OpenIDFinish' => array( 'OpenIDFinish' ),
+/** English (English) */
+$specialPageAliases['en'] = array(
+	'OpenIDLogin' => array( 'OpenIDLogin' ),
 	'OpenIDConvert' => array( 'OpenIDConvert' ),
 	'OpenIDServer' => array( 'OpenIDServer' ),
 	'OpenIDXRDS' => array( 'OpenIDXRDS' ),
+	'OpenIDDashboard' => array( 'OpenIDDashboard' ),
 );
 
 /** Arabic (العربية) */
-$aliases['ar'] = array(
+$specialPageAliases['ar'] = array(
 	'OpenIDLogin' => array( 'دخول_الهوية_المفتوحة' ),
-	'OpenIDFinish' => array( 'نهاية_الهوية_المفتوحة' ),
 	'OpenIDConvert' => array( 'تحويل_الهوية_المفتوحة' ),
 	'OpenIDServer' => array( 'خادم_الهوية_المفتوحة' ),
 	'OpenIDXRDS' => array( 'إكسردس_الهوية_المفتوحة' ),
+	'OpenIDDashboard' => array( 'سبورة_الهوية_المفتوحة' ),
 );
 
 /** Egyptian Spoken Arabic (مصرى) */
-$aliases['arz'] = array(
-	'OpenIDLogin' => array( 'دخول_الهوية_المفتوحة' ),
-	'OpenIDFinish' => array( 'نهاية_الهوية_المفتوحة' ),
-	'OpenIDConvert' => array( 'تحويل_الهوية_المفتوحة' ),
-	'OpenIDServer' => array( 'خادم_الهوية_المفتوحة' ),
-	'OpenIDXRDS' => array( 'إكسردس_الهوية_المفتوحة' ),
+$specialPageAliases['arz'] = array(
+	'OpenIDLogin' => array( 'دخول_Open_ID' ),
+	'OpenIDConvert' => array( 'تحويل_Open_ID' ),
+	'OpenIDServer' => array( 'خادم_Open_ID' ),
+	'OpenIDXRDS' => array( 'إكس_آر_دى_إس_Open_ID' ),
 );
 
+/** Finnish (Suomi) */
+$specialPageAliases['fi'] = array(
+	'OpenIDLogin' => array( 'OpenID-kirjautuminen' ),
+	'OpenIDConvert' => array( 'OpenID-muunnos' ),
+	'OpenIDServer' => array( 'OpenID-palvelin' ),
+);
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = array(
+	'OpenIDLogin' => array( 'KoneksyonOpenID' ),
+	'OpenIDConvert' => array( 'KonvètiOpenID' ),
+	'OpenIDServer' => array( 'SèvèOpenID' ),
+);
+
 /** Interlingua (Interlingua) */
-$aliases['ia'] = array(
-	'OpenIDLogin' => array( 'Aperir session OpenID' ),
-	'OpenIDFinish' => array( 'Completar session OpenID' ),
-	'OpenIDConvert' => array( 'Converter a OpenID' ),
-	'OpenIDServer' => array( 'Servitor OpenID' ),
-	'OpenIDXRDS' => array( 'XRDS OpenID' ),
+$specialPageAliases['ia'] = array(
+	'OpenIDLogin' => array( 'Aperir_session_OpenID' ),
+	'OpenIDConvert' => array( 'Converter_a_OpenID' ),
+	'OpenIDServer' => array( 'Servitor_OpenID' ),
+	'OpenIDXRDS' => array( 'XRDS_OpenID' ),
+	'OpenIDDashboard' => array( 'Pannello_de_OpenID' ),
 );
 
 /** Japanese (日本語) */
-$aliases['ja'] = array(
-	'OpenIDLogin' => array( 'OpenIDログイン' ),
-	'OpenIDFinish' => array( 'OpenID完了' ),
-	'OpenIDConvert' => array( 'OpenID変換' ),
-	'OpenIDServer' => array( 'OpenIDサーバー' ),
+$specialPageAliases['ja'] = array(
+	'OpenIDLogin' => array( 'OpenIDログイン', 'OpenIDログイン' ),
+	'OpenIDConvert' => array( 'OpenID変換', 'OpenID変換' ),
+	'OpenIDServer' => array( 'OpenIDサーバー', 'OpenIDサーバー' ),
 );
 
-/** Sanskrit (संस्कृत) */
-$aliases['sa'] = array(
+/** Korean (한국어) */
+$specialPageAliases['ko'] = array(
+	'OpenIDLogin' => array( 'OpenID로그인' ),
+	'OpenIDConvert' => array( 'OpenID번역' ),
+	'OpenIDServer' => array( 'OpenID서버' ),
+);
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = array(
+	'OpenIDLogin' => array( 'OpenIDAanmedung' ),
+	'OpenIDConvert' => array( 'OpenIDÖmwandele' ),
+);
+
+/** Ladino (Ladino) */
+$specialPageAliases['lad'] = array(
+	'OpenIDLogin' => array( 'EntradaConIdentidadAvierta' ),
+	'OpenIDConvert' => array( 'MudarIdentidadAvierta' ),
+	'OpenIDServer' => array( 'Servidor_de_identidad_avierta' ),
+	'OpenIDXRDS' => array( 'IDXRDS_Avierta' ),
+);
+
+/** Luxembourgish (Lëtzebuergesch) */
+$specialPageAliases['lb'] = array(
+	'OpenIDLogin' => array( 'Login_fir_OpenID' ),
+	'OpenIDConvert' => array( 'OpenID_ëmwandelen' ),
+);
+
+/** Macedonian (Македонски) */
+$specialPageAliases['mk'] = array(
+	'OpenIDLogin' => array( 'НајаваСоOpenID' ),
+	'OpenIDConvert' => array( 'ПретворањеНаOpenID' ),
+	'OpenIDServer' => array( 'ОпслужувачНаOpenID' ),
+	'OpenIDDashboard' => array( 'КонтролнаТаблаНаOpenID' ),
+);
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = array(
+	'OpenIDLogin' => array( 'ഓപ്പൺഐ.ഡി.പ്രവേശനം' ),
+	'OpenIDServer' => array( 'ഓപ്പൺഐ.ഡി.സെർവർ' ),
+);
+
+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
+$specialPageAliases['nb'] = array(
+	'OpenIDLogin' => array( 'OpenID-innlogging' ),
+	'OpenIDConvert' => array( 'OpenID-konvertering' ),
+	'OpenIDServer' => array( 'OpenID-tjener' ),
+	'OpenIDXRDS' => array( 'OpenID-XRDS' ),
+);
+
+/** Nedersaksisch (Nedersaksisch) */
+$specialPageAliases['nds-nl'] = array(
+	'OpenIDLogin' => array( 'Open_ID_anmelden' ),
+	'OpenIDConvert' => array( 'Open_ID_ummezetten' ),
+	'OpenIDServer' => array( 'Open_ID-server' ),
+	'OpenIDXRDS' => array( 'Open_ID-XRDS' ),
+	'OpenIDDashboard' => array( 'Open_ID-schakelbord' ),
+);
+
+/** Dutch (Nederlands) */
+$specialPageAliases['nl'] = array(
+	'OpenIDLogin' => array( 'OpenIDAanmelden' ),
+	'OpenIDConvert' => array( 'OpenIDConverteren' ),
+);
+
+/** Polish (Polski) */
+$specialPageAliases['pl'] = array(
+	'OpenIDLogin' => array( 'Logowanie_OpenID' ),
+	'OpenIDConvert' => array( 'Konwersja_na_OpenID' ),
+	'OpenIDServer' => array( 'Serwer_OpenID' ),
+	'OpenIDXRDS' => array( 'DXRDS_OpenID' ),
+);
+
+/** Sanskrit (संस्कृतम्) */
+$specialPageAliases['sa'] = array(
 	'OpenIDLogin' => array( 'उद्घटपरिचयपत्रप्रवेश' ),
-	'OpenIDFinish' => array( 'उद्घटपरिचयपत्रसमापयति' ),
 	'OpenIDConvert' => array( 'उद्घटपरिचयपत्रांतर' ),
 	'OpenIDServer' => array( 'उद्घटपरिचयपत्रविदादाता' ),
 	'OpenIDXRDS' => array( 'उद्घटपरिचयपत्रXRDS' ),
 );
 
+/** Slovak (Slovenčina) */
+$specialPageAliases['sk'] = array(
+	'OpenIDLogin' => array( 'OpenIDPrihlásenie' ),
+	'OpenIDConvert' => array( 'OpenIDKonverzia' ),
+);
+
 /** Tagalog (Tagalog) */
-$aliases['tl'] = array(
+$specialPageAliases['tl'] = array(
 	'OpenIDLogin' => array( 'Paglagda sa OpenID' ),
-	'OpenIDFinish' => array( 'Pagtatapos ng OpenID' ),
 	'OpenIDConvert' => array( 'Pagpapalit ng OpenID' ),
 	'OpenIDServer' => array( 'Serbidor ng OpenID' ),
 	'OpenIDXRDS' => array( 'XRDS ng OpenID' ),
 );
 
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = array(
+	'OpenIDLogin' => array( 'AçıkKimlikOturumAçma' ),
+	'OpenIDConvert' => array( 'AçıkKimlikDönüştürme' ),
+	'OpenIDServer' => array( 'AçıkKimlikSunucusu' ),
+	'OpenIDXRDS' => array( 'AçıkKimlikXRDS' ),
+);
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = array(
+	'OpenIDLogin' => array( 'Đăng_nhập_OpenID' ),
+	'OpenIDConvert' => array( 'Đổi_OpenID' ),
+	'OpenIDServer' => array( 'Máy_chủ_OpenID' ),
+);
+
+/** Simplified Chinese (‪中文(简体)‬) */
+$specialPageAliases['zh-hans'] = array(
+	'OpenIDLogin' => array( 'OpenID登录' ),
+	'OpenIDConvert' => array( '转换OpenID' ),
+	'OpenIDServer' => array( 'OpenID服务器' ),
+);
\ No newline at end of file

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.hooks.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.hooks.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.hooks.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,25 +1,43 @@
 <?php
 
+/**
+ * Redirect classes to hijack the core UserLogin and CreateAccount facilities, because
+ * they're so badly written as to be impossible to extend
+ */
+class SpecialOpenIDCreateAccount extends SpecialRedirectToSpecial {
+	function __construct() {
+		parent::__construct( 'SpecialOpenIDCreateAccount', 'OpenIDLogin' );
+	}
+}
+class SpecialOpenIDUserLogin extends SpecialRedirectToSpecial {
+	function __construct() {
+		parent::__construct( 'SpecialOpenIDUserLogin', 'OpenIDLogin', false, array( 'returnto', 'returntoquery' ) );
+	}
+}
+
 class OpenIDHooks {
 	public static function onSpecialPage_initList( &$list ) {
 		global $wgOpenIDOnly, $wgOpenIDClientOnly;
 
 		if ( $wgOpenIDOnly ) {
-			$list['Userlogin'] = array( 'SpecialRedirectToSpecial', 'Userlogin', 'OpenIDLogin' );
-			# Used in 1.12.x and above
-			$list['CreateAccount'] = array( 'SpecialRedirectToSpecial', 'CreateAccount', 'OpenIDLogin' );
+			$list['Userlogin'] = 'SpecialOpenIDLogin';
+
+			# as Special:CreateAccount is an alias for Special:UserLogin/signup
+			# we show our own OpenID page here, too
+			$list['CreateAccount'] = 'SpecialOpenIDLogin';
 		}
 
-		# Special pages are added at global scope; remove server-related ones
-		# if client-only flag is set
-		$addList = array( 'Login', 'Finish', 'Convert' );
+		# Special pages are added at global scope;
+		# remove server-related ones if client-only flag is set
+		$addList = array( 'Login', 'Convert', 'Dashboard' );
 		if ( !$wgOpenIDClientOnly ) {
 			$addList[] = 'Server';
 			$addList[] = 'XRDS';
 		}
 
 		foreach ( $addList as $sp ) {
-			$list['OpenID'.$sp] = 'SpecialOpenID' . $sp;
+			$list['OpenID' . $sp] = 'SpecialOpenID' . $sp;
+			SpecialPageFactory::setGroup( 'OpenID' . $sp, 'openid' );
 		}
 
 		return true;
@@ -27,7 +45,7 @@
 
 	# Hook is called whenever an article is being viewed
 	public static function onArticleViewHeader( &$article, &$outputDone, &$pcache ) {
-		global $wgOut, $wgOpenIDClientOnly;
+		global $wgOut, $wgOpenIDClientOnly, $wgOpenIDAllowServingOpenIDUserAccounts;
 
 		$nt = $article->getTitle();
 
@@ -39,9 +57,9 @@
 
 		if ( $nt && $nt->getNamespace() == NS_USER && strpos( $nt->getText(), '/' ) === false ) {
 			$user = User::newFromName( $nt->getText() );
-			if ($user && $user->getID() != 0) {
-				$openid = SpecialOpenID::getUserUrl( $user );
-				if ( isset( $openid ) && strlen( $openid ) != 0 ) {
+			if ( $user && $user->getID() != 0 ) {
+				$openid = SpecialOpenID::getUserOpenIDInformation( $user );
+				if ( count( $openid ) && strlen( $openid[0]->uoi_openid ) != 0 ) {
 					global $wgOpenIDShowUrlOnUserPage;
 
 					if ( $wgOpenIDShowUrlOnUserPage == 'always' ||
@@ -49,41 +67,40 @@
 					{
 						global $wgOpenIDLoginLogoUrl;
 
-						$url = SpecialOpenID::OpenIDToUrl( $openid );
-						$disp = htmlspecialchars( $openid );
-						$wgOut->setSubtitle("<span class='subpages'>" .
+						$url = SpecialOpenID::OpenIDToUrl( $openid[0]->uoi_openid );
+						$disp = htmlspecialchars( $openid[0]->uoi_openid );
+						$wgOut->setSubtitle( "<span class='subpages'>" .
 											"<img src='$wgOpenIDLoginLogoUrl' alt='OpenID' />" .
 											"<a href='$url'>$disp</a>" .
-											"</span>");
+											"</span>" );
 					}
-				} else {
-					# Add OpenID data iif its allowed
-					if ( !$wgOpenIDClientOnly ) {
-						$st = SpecialPage::getTitleFor( 'OpenIDServer' );
-						$wgOut->addLink( array( 'rel' => 'openid.server',
-											    'href' => $st->getFullURL() ) );
-						$wgOut->addLink( array( 'rel' => 'openid2.provider',
-											    'href' => $st->getFullURL() ) );
-						$rt = SpecialPage::getTitleFor( 'OpenIDXRDS', $user->getName() );
-						$wgOut->addMeta( 'http:X-XRDS-Location', $rt->getFullURL() );
-						header( 'X-XRDS-Location', $rt->getFullURL() );
-					}
 				}
+
+				# Add OpenID data if its allowed
+				if ( !$wgOpenIDClientOnly && !( count( $openid ) && ( strlen( $openid[0]->uoi_openid ) != 0 ) && !$wgOpenIDAllowServingOpenIDUserAccounts ) ) {
+					$st = SpecialPage::getTitleFor( 'OpenIDServer' );
+					$wgOut->addLink( array( 'rel' => 'openid.server',
+											'href' => $st->getFullURL() ) );
+					$wgOut->addLink( array( 'rel' => 'openid2.provider',
+											'href' => $st->getFullURL() ) );
+					$rt = SpecialPage::getTitleFor( 'OpenIDXRDS', $user->getName() );
+					$wgOut->addMeta( 'http:X-XRDS-Location', $rt->getFullURL() );
+					header( 'X-XRDS-Location: ' . $rt->getFullURL() );
+				}
+
 			}
 		}
 
 		return true;
 	}
 
-	public static function onPersonalUrls(&$personal_urls, &$title) {
-		global $wgHideOpenIDLoginLink, $wgUser, $wgLang, $wgOut, $wgOpenIDOnly;
+	public static function onPersonalUrls( &$personal_urls, &$title ) {
+		global $wgHideOpenIDLoginLink, $wgUser, $wgLang, $wgOpenIDOnly;
 
 		if ( !$wgHideOpenIDLoginLink && $wgUser->getID() == 0 ) {
-			wfLoadExtensionMessages( 'OpenID' );
-			$wgOut->addHeadItem( 'openidloginstyle', self::loginStyle() );
 			$sk = $wgUser->getSkin();
 			$returnto = $title->isSpecial( 'Userlogout' ) ?
-			  '' : ('returnto=' . $title->getPrefixedURL() );
+			  '' : ( 'returnto=' . $title->getPrefixedURL() );
 
 			$personal_urls['openidlogin'] = array(
 				'text' => wfMsg( 'openidlogin' ),
@@ -104,75 +121,254 @@
 		return true;
 	}
 
-	# list of preferences used by extension
-	private static $oidPrefs = array( 'hide', 'update-userinfo-on-login' );
+	public static function onBeforePageDisplay( $out, &$sk ) {
+		global $wgHideOpenIDLoginLink, $wgUser;
 
-	public static function onInitPreferencesForm( $prefs, $request ) {
-		foreach (self::$oidPrefs as $oidPref)
-		{
-			$prefs->mToggles['openid-'.$oidPref]
-				= $request->getCheck( "wpOpOpenID-".$oidPref ) ? 1 : 0;
+		# We need to do this *before* PersonalUrls is called
+		if ( !$wgHideOpenIDLoginLink && $wgUser->getID() == 0 ) {
+			$out->addHeadItem( 'openidloginstyle', self::loginStyle() );
 		}
 
 		return true;
 	}
 
-	public static function onRenderPreferencesForm( $prefs, $out ) {
-		wfLoadExtensionMessages( 'OpenID' );
+	private static function getInfoTable( $user ) {
+		global $wgLang;
+		$openid_urls_registration = SpecialOpenID::getUserOpenIDInformation( $user );
+		$delTitle = SpecialPage::getTitleFor( 'OpenIDConvert', 'Delete' );
+		$sk = $user->getSkin();
+		$rows = '';
+		foreach ( $openid_urls_registration as $url_reg ) {
+		
+			if ( !empty( $url_reg->uoi_user_registration ) ) { $registrationTime = wfMsgExt(
+				'openid-urls-registration-date-time', 
+				'parsemag',
+				$wgLang->timeanddate( $url_reg->uoi_user_registration, true ),
+				$wgLang->date( $url_reg->uoi_user_registration, true ),
+				$wgLang->time( $url_reg->uoi_user_registration, true ) 
+				);
+			} else {
+				$registrationTime = '';
+			}
 
-		$out->addHTML( "\n<fieldset>\n<legend>" . wfMsgHtml( 'openid-prefs' ) . "</legend>\n" );
+			$rows .= Xml::tags( 'tr', array(),
+				Xml::tags( 'td',
+					array(),
+					Xml::element( 'a', array( 'href' => $url_reg->uoi_openid ), $url_reg->uoi_openid )
+				) .
+				Xml::tags( 'td',
+					array(),
+					$registrationTime
+				) .
+				Xml::tags( 'td',
+					array(),
+					$sk->link( $delTitle, wfMsgHtml( 'openid-urls-delete' ),
+						array(),
+						array( 'url' => $url_reg->uoi_openid ) 
+					) 
+				)
+			) . "\n";
+		}
+		$info = Xml::tags( 'table', array( 'class' => 'wikitable' ),
+			Xml::tags( 'tr', array(),
+				Xml::element( 'th',
+					array(), 
+					wfMsg( 'openid-urls-url' ) ) .
+				Xml::element( 'th',
+					array(), 
+					wfMsg( 'openid-urls-registration' ) ) .
+				Xml::element( 'th', 
+					array(), 
+					wfMsg( 'openid-urls-action' ) )
+				) . "\n" .
+			$rows
+		);
+		$info .= $sk->link( SpecialPage::getTitleFor( 'OpenIDConvert' ), wfMsgHtml( 'openid-add-url' ) );
+		return $info;
+	}
 
-		$out->addWikiText( wfMsg( 'openid-prefstext') );
+	public static function onGetPreferences( $user, &$preferences ) {
+		global $wgOpenIDShowUrlOnUserPage, $wgAllowRealName;
+		global $wgAuth, $wgUser, $wgLang;
 
-		foreach (self::$oidPrefs as $oidPref)
-		{
-			$out->addHTML( '<div class="toggle"><input type="checkbox" value="1" '.
-					'id="openid-'.$oidPref.'" name="wpOpOpenID-'.$oidPref.'"'.
-					($prefs->mToggles['openid-'.$oidPref] == 1 ? ' checked="checked"' : '').
-				'/> ' .
-				'<span class="toggletext">'.
-				'<label for="openid-'.$oidPref.'">'.wfMsg( 'openid-pref-'.$oidPref ).'</label>'.
-				"</span></div>\n" );
+		if ( $wgOpenIDShowUrlOnUserPage == 'user' ) {
+			$preferences['openid-hide'] =
+				array(
+					'type' => 'toggle',
+					'section' => 'openid',
+					'label-message' => 'openid-pref-hide',
+				);
 		}
 
-		$out->addHTML( "</fieldset>\n\n" );
+		$update = array();
+		$update[wfMsg( 'openidnickname' )] = 'nickname';
+		$update[wfMsg( 'openidemail' )] = 'email';
+		if ( $wgAllowRealName )
+			$update[wfMsg( 'openidfullname' )] = 'fullname';
+		$update[wfMsg( 'openidlanguage' )] = 'language';
+		$update[wfMsg( 'openidtimezone' )] = 'timezone';
 
+		$preferences['openid-update-on-login'] =
+			array(
+				'type' => 'multiselect',
+				'section' => 'openid',
+				'label-message' => 'openid-pref-update-userinfo-on-login',
+				'options' => $update,
+				'prefix' => 'openid-update-on-login-',
+			);
+
+		$preferences['openid-urls'] =
+				array(
+					'type' => 'info',
+					'label-message' => 'openid-urls-desc',
+					'default' => self::getInfoTable( $user ),
+					'raw' => true,
+					'section' => 'openid',
+				);
+
+       		if ( $wgAuth->allowPasswordChange() ) {
+
+			$resetlink = $wgUser->getSkin()->link( SpecialPage::getTitleFor( 'PasswordReset' ),
+				wfMsgHtml( 'passwordreset' ), array(),
+				array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' ) ) );
+
+			if ( empty( $wgUser->mPassword ) && empty( $wgUser->mNewpassword ) ) {
+ 				$preferences['password'] = array(
+					'type' => 'info',
+					'raw' => true,
+					'default' => $resetlink,
+					'label-message' => 'yourpassword',
+					'section' => 'personal/info',
+				);
+			} else {
+				$preferences['resetpassword'] = array(
+					'type' => 'info',
+					'raw' => true,
+					'default' => $resetlink,
+					'label-message' => null,
+					'section' => 'personal/info',
+				);
+			}
+
+			global $wgCookieExpiration;
+			if ( $wgCookieExpiration > 0 ) {
+				unset( $preferences['rememberpassword'] );
+				$preferences['rememberpassword'] = array(
+					'type' => 'toggle',
+					'label' => wfMsgExt(
+						'tog-rememberpassword',
+						array( 'parsemag' ),
+						$wgLang->formatNum( ceil( $wgCookieExpiration / ( 3600 * 24 ) ) )
+						),
+					'section' => 'personal/info',
+				);
+			}
+
+		}
+
 		return true;
 	}
 
-	public static function onSavePreferences($prefs, $user, &$message, $old)
-	{
-		foreach (self::$oidPrefs as $oidPref)
-		{
-			$user->setOption('openid-'.$oidPref, $prefs->mToggles['openid-'.$oidPref]);
-			wfDebugLog('OpenID', 'Setting user preferences: ' . print_r($user, true) );
-		}
+	public static function onDeleteAccount( &$userObj ) {
+		global $wgOut;
 
-		$user->saveSettings();
+		if ( is_object( $userObj ) ) {
 
+			$username = $userObj->getName();
+			$userID = $userObj->getID();
+
+  			$dbw = wfGetDB( DB_MASTER );
+
+			$dbw->delete( 'user_openid', array( 'uoi_user' => $userID ) );
+			$wgOut->addHTML( "OpenID " . wfMsgExt( 'usermerge-userdeleted', array( 'escape' ), $username, $userID ) );
+
+			wfDebug( "OpenID: deleted OpenID user $username ($userID)\n" );
+
+                }
+
 		return true;
+
 	}
 
-	public static function onResetPreferences( $prefs, $user )
-	{
-		foreach ( self::$oidPrefs as $oidPref ) {
-			$prefs->mToggles['openid-'.$oidPref] = $user->getOption( 'openid-'.$oidPref );
+	public static function onMergeAccountFromTo( &$fromUserObj, &$toUserObj ) {
+		global $wgOut, $wgOpenIDMergeOnAccountMerge;
+
+		if ( is_object( $fromUserObj ) && is_object( $toUserObj ) ) {
+
+			$fromUsername = $fromUserObj->getName();
+			$fromUserID = $fromUserObj->getID();
+			$toUsername = $toUserObj->getName();
+			$toUserID = $toUserObj->getID();
+
+                  	if ( $wgOpenIDMergeOnAccountMerge ) {
+
+				$dbw = wfGetDB( DB_MASTER );
+
+				$dbw->update( 'user_openid', array( 'uoi_user' => $toUserID ), array( 'uoi_user' => $fromUserID ) );
+				$wgOut->addHTML( "OpenID " . wfMsgExt( 'usermerge-updating', array( 'escape' ), 'user_openid', $fromUsername, $toUsername ) . "<br />\n" );
+
+				wfDebug( "OpenID: transferred OpenID(s) of $fromUsername ($fromUserID) => $toUsername ($toUserID)\n" );
+
+			} else {
+
+				$wgOut->addHTML( wfMsgHtml( 'openid-openids-were-not-merged' ) . "<br />\n" );
+				wfDebug( "OpenID: OpenID(s) were not merged for merged users $fromUsername ($fromUserID) => $toUsername ($toUserID)\n" );
+
+			}
+
 		}
 
 		return true;
+
 	}
 
-	public static function onLoadExtensionSchemaUpdates() {
-		global $wgDBtype, $wgExtNewTables;
+	public static function onLoadExtensionSchemaUpdates( $updater = null ) {
+		if ( $updater === null ) {
+			// <= 1.16 support - but OpenID does not work with such old MW versions
+			global $wgExtNewTables, $wgExtNewFields;
+			$wgExtNewTables[] = array(
+				'user_openid',
+				dirname( __FILE__ ) . '/patches/openid_table.sql'
+			);
 
-		$base = dirname( __FILE__ );
+			# when updating an older OpenID version
+			# make the index non unique (remove unique index uoi_user, add new index user_openid_user)
+			$db = wfGetDB( DB_MASTER );
+			$info = $db->fieldInfo( 'user_openid', 'uoi_user' );
+			if ( $info && !$info->isMultipleKey() ) {
+				echo( "Making uoi_user field non UNIQUE...\n" );
+				$db->sourceFile( dirname( __FILE__ ) . '/patches/patch-uoi_user-not-unique.sql' );
+				echo( " done.\n" );
+			} else {
+				echo( "...uoi_user field is already non UNIQUE.\n" );
+			}
+			
+			# uoi_user_registration field was added in OpenID version 0.937
+			$wgExtNewFields[] = array(
+				'user_openid',
+				'uoi_user_registration',
+				dirname( __FILE__ ) . '/patches/patch-add_uoi_user_registration.sql'
+			);
+		} else {
+			// >= 1.17 support
+			$updater->addExtensionTable( 'user_openid',
+				dirname( __FILE__ ) . '/patches/openid_table.sql' );
 
-		if( $wgDBtype == 'mysql' ) {
-			$wgExtNewTables[] = array( 'user_openid', "$base/openid_table.sql" );
-		} else if( $wgDBtype == 'postgres' ) {
-			$wgExtNewTables[] = array( 'user_openid', "$base/openid_table.pg.sql" );
+			# when updating an older OpenID version
+			# make the index non unique (remove unique index uoi_user, add new index user_openid_user)
+			$db = $updater->getDB();
+			$info = $db->fieldInfo( 'user_openid', 'uoi_user' );
+			if ( $info && !$info->isMultipleKey() ) {
+				$updater->addExtensionUpdate( array( 'dropIndex', 'user_openid', 'uoi_user',
+					dirname( __FILE__ ) . '/patches/patch-drop_non_multiple_key_index_uoi_user.sql', true ) );
+				$updater->addExtensionIndex( 'user_openid', 'user_openid_user',
+					dirname( __FILE__ ) . '/patches/patch-add_multiple_key_index_user_openid_user.sql' );
+			}
+
+			# uoi_user_registration field was added in OpenID version 0.937
+			$updater->addExtensionField( 'user_openid', 'uoi_user_registration',
+				dirname( __FILE__ ) . '/patches/patch-add_uoi_user_registration.sql' );
 		}
-
 		return true;
 	}
 
@@ -186,6 +382,7 @@
 		  text-transform: none;
 		}
 		</style>
+
 EOS;
 	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.i18n.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.i18n.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.i18n.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,19 +18,22 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
 $messages = array();
 
 /** English
  * @author Evan Prodromou <evan at prodromou.name>
+ * @author Sergey Chernyshev
+ * @author Alexandre Emsenhuber
+ * @author Thomas Gries
  */
 $messages['en'] = array(
-	'openid-desc' => 'Login to the wiki with an [http://openid.net/ OpenID], and login to other OpenID-aware web sites with a wiki user account',
-	'openidlogin' => 'Login with OpenID',
-	'openidfinish' => 'Finish OpenID login',
+	'openid-desc' => 'Let users log in to the wiki with an [//openid.net/ OpenID]. If this is enabled on the wiki, they can also use their user account URL of this wiki as OpenID to log in to other OpenID-aware web sites',
+	'openidlogin' => 'Log in / create account with OpenID',
 	'openidserver' => 'OpenID server',
 	'openidxrds' => 'Yadis file',
 	'openidconvert' => 'OpenID converter',
@@ -46,9 +49,14 @@
 	'openidfailure' => 'Verification failed',
 	'openidfailuretext' => 'Verification of the OpenID URL failed. Error message: "$1"',
 	'openidsuccess' => 'Verification succeeded',
-	'openidsuccesstext' => 'Verification of the OpenID URL succeeded.',
+	'openidsuccesstext' => "'''Successful verification and log in as user $1'''.
+
+Your OpenID is $2 .
+
+This and optional further OpenIDs can be managed in the [[Special:Preferences#prefsection-openid|OpenID tab]] of your preferences.<br />
+An optional account password can be added in your [[Special:Preferences#prefsection-personal|User profile]].",
 	'openidusernameprefix' => 'OpenIDUser',
-	'openidserverlogininstructions' => 'Enter your password below to log in to $3 as user $2 (user page $1).',
+	'openidserverlogininstructions' => '$3 requests that you enter your password for your user $2 page $1 (this is your OpenID URL)',
 	'openidtrustinstructions' => 'Check if you want to share data with $1.',
 	'openidallowtrust' => 'Allow $1 to trust this user account.',
 	'openidnopolicy' => 'Site has not specified a privacy policy.',
@@ -59,102 +67,286 @@
 	'openidfullname' => 'Fullname',
 	'openidemail' => 'E-mail address',
 	'openidlanguage' => 'Language',
-	'openidnotavailable' => 'Your preferred nickname ($1) is already in use by another user.',
-	'openidnotprovided' => 'Your OpenID server did not provide a nickname (either because it cannot, or because you told it not to).',
+	'openidtimezone' => 'Time zone',
+	'openidchooselegend' => 'Username and account choice',
 	'openidchooseinstructions' => 'All users need a nickname;
 you can choose one from the options below.',
+	'openidchoosenick' => 'Your nickname ($1)',
 	'openidchoosefull' => 'Your full name ($1)',
 	'openidchooseurl' => 'A name picked from your OpenID ($1)',
 	'openidchooseauto' => 'An auto-generated name ($1)',
 	'openidchoosemanual' => 'A name of your choice:',
-	'openidchooseexisting' => 'An existing account on this wiki:',
-	'openidchoosepassword' => 'password:',
-	'openidconvertinstructions' => 'This form lets you change your user account to use an OpenID URL.',
+	'openidchooseexisting' => 'An existing account on this wiki',
+	'openidchooseusername' => 'Username:',
+	'openidchoosepassword' => 'Password:',
+	'openidconvertinstructions' => 'This form lets you change your user account to use an OpenID URL or add more OpenID URLs',
+	'openidconvertoraddmoreids' => 'Convert to OpenID or add another OpenID URL',
 	'openidconvertsuccess' => 'Successfully converted to OpenID',
 	'openidconvertsuccesstext' => 'You have successfully converted your OpenID to $1.',
 	'openidconvertyourstext' => 'That is already your OpenID.',
 	'openidconvertothertext' => 'That is someone else\'s OpenID.',
-	'openidalreadyloggedin' => "'''You are already logged in, $1!'''
+	'openidalreadyloggedin' => 'You are already logged in.',
+	'openidalreadyloggedintext' => "'''You are already logged in, $1!'''
 
-If you want to use OpenID to log in in the future, you can [[Special:OpenIDConvert|convert your account to use OpenID]].",
+You can manage (view, delete, add further) OpenIDs in the [[Special:Preferences#prefsection-openid|OpenID tab]] of your preferences.",
 	'openidnousername' => 'No username specified.',
 	'openidbadusername' => 'Bad username specified.',
 	'openidautosubmit' => 'This page includes a form that should be automatically submitted if you have JavaScript enabled.
-If not, try the \"Continue\" button.',
+If not, try the "Continue" button.',
 	'openidclientonlytext' => 'You cannot use accounts from this wiki as OpenIDs on another site.',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => '{{SITENAME}} supports the [http://openid.net/ OpenID] standard for single signon between Web sites.
-OpenID lets you log into many different Web sites without using a different password for each.
-(See [http://en.wikipedia.org/wiki/OpenID Wikipedia\'s OpenID article] for more information.)
+	'openidlogininstructions' => '{{SITENAME}} supports the [//openid.net/ OpenID] standard for single sign-on between websites.
+OpenID lets you log in to many different websites without using a different password for each.
+(See [//en.wikipedia.org/wiki/OpenID Wikipedia\'s OpenID article] for more information.)
+There are many [//openid.net/get/ OpenID providers], and you may already have an OpenID-enabled account on another service.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''only'' allows you to log in with OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'If you already have an account on {{SITENAME}}, you can [[Special:UserLogin|log in]] with your username and password as usual.
+To use OpenID in the future, you can [[Special:OpenIDConvert|convert your account to OpenID]] after you have logged in normally.',
+	'openidupdateuserinfo' => 'Update my personal information:',
+	'openiddelete' => 'Delete OpenID',
+	'openiddelete-text' => 'By clicking the "{{int:openiddelete-button}}" button, you will remove the OpenID $1 from your account.
+You will no longer be able to log in with this OpenID.',
+	'openiddelete-button' => 'Confirm',
+	'openiddeleteerrornopassword' => 'You cannot delete all your OpenIDs because your account has no password.
+You would not able to log in without an OpenID.',
+	'openiddeleteerroropenidonly' => 'You cannot delete all your OpenIDs because your are only allowed to log in with OpenID.
+You would not able to log in without an OpenID.',
+	'openiddelete-sucess' => 'The OpenID has been successfully removed from your account.',
+	'openiddelete-error' => 'An error occured while removing the OpenID from your account.',
+        'openid-openids-were-not-merged' => 'OpenID(s) were not merged when merging the user accounts.',
 
-If you already have an account on {{SITENAME}}, you can [[Special:UserLogin|log in]] with your username and password as usual.
-To use OpenID in the future, you can [[Special:OpenIDConvert|convert your account to OpenID]] after you have logged in normally.
+	'prefs-openid' => 'OpenID',
+	'openid-prefstext' => '[//openid.net/ OpenID] preferences',
+	'openid-pref-hide' => 'Hide your OpenID URL on your user page, if you log in with OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Update the following information from OpenID persona every time I log in:',
+	'openid-urls-desc' => 'OpenIDs associated with your account:',
+	'openid-urls-url' => 'URL',
+	'openid-urls-action' => 'Action',
+	'openid-urls-registration' => 'Registration time',
+	'openid-urls-registration-date-time'  => '$1', # only translate this message to other languages if you have to change it
+	'openid-urls-delete' => 'Delete',
+	'openid-add-url' => 'Add a new OpenID',
 
-There are many [http://openid.net/get/ OpenID providers], and you may already have an OpenID-enabled account on another service.',
-	'openidupdateuserinfo' => 'Update my personal information',
-	'openid-prefs' => 'OpenID',
-	'openid-prefstext' => '[http://openid.net/ OpenID] preferences',
-	'openid-pref-hide' => 'Hide your OpenID URL on your user page, if you log in with OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Update my information from OpenID persona every time I login'
+	'openid-login-or-create-account' => 'Log in or create a new account',
+	'openid-provider-label-openid' => 'Enter your OpenID URL',
+	'openid-provider-label-google' => 'Log in using your Google account',
+	'openid-provider-label-yahoo' => 'Log in using your Yahoo account',
+	'openid-provider-label-aol' => 'Enter your AOL screenname',
+	'openid-provider-label-other-username' => 'Enter your $1 username',
+
+	'specialpages-group-openid' => 'OpenID service pages and status information',
+	'right-openid-dashboard-access' => 'Standard access to the OpenID dashboard',
+	'right-openid-dashboard-admin' => 'Administrator access to the OpenID dashboard',
+
+	'openid-dashboard-title' => 'OpenID dashboard',
+	'openid-dashboard-title-admin' => 'OpenID dashboard (administrator)',
+	'openid-dashboard-introduction' => 'The current OpenID extension settings ([$1 help])',
+	'openid-dashboard-number-openid-users' => 'Number of users with OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Number of OpenIDs (total)',
+	'openid-dashboard-number-users-without-openid' => 'Number of users without OpenID',
 );
 
 /** Message documentation (Message documentation)
+ * @author Dbc334
+ * @author EugeneZelenko
  * @author Fryed-peach
+ * @author Hamilton Abreu
+ * @author IAlex
  * @author Jon Harald Søby
+ * @author Nike
  * @author Purodha
  * @author Raymond
  * @author Siebrand
+ * @author The Evil IP address
+ * @author Thomas Gries
+ * @author Umherirrender
+ * @author Wikinaut
  */
 $messages['qqq'] = array(
-	'openid-desc' => 'Short description of the Openid extension, shown in [[Special:Version]]. Do not translate or change links.',
+	'openid-desc' => '{{desc}}',
+	'openidsuccesstext' => 'Parameters:
+* $1 is a username
+* $2 is an OpenID.',
+	'openidserverlogininstructions' => 'The message is shown to users when they want to log in on another site ($3) with their MediaWiki userpage url (this MediaWiki as OpenID server) acting as OpenID identity. 
+
+If not logged in by cookie or session, the MediaWiki prompts the user to log in as user $2. After a successful login to the MediaWiki which acts as OpenID server, the process flow is redirected to the other OpenID consumer site, where the user will be logged via their (MediaWiki userpage) OpenID.
+
+System message output example after parameter substitution:
+
+"http://www.consumer.org/foo requests that you enter your password for your user MeMyself page http://www.server.org/mediawiki/index.php/User:MeMyself (this is your OpenID url)"
+
+Parameters:
+* $1 is the fully specified user page url which acts as OpenID identity. This is the OpenID identity for log-ins on the other, requesting site $3 (the OpenID consumer site $3)
+* $2 MediaWiki account username (on this wiki, which acts as OpenID server). Remark: a password must be associated to that MediaWiki account, OpenID alone is not sufficient.
+* $3 OpenID consumer site url',
 	'openidtrustinstructions' => '* $1 is a trust root. A trust root looks much like a normal URL, but is used to describe a set of URLs. Trust roots are used by OpenID to verify that a user has approved the OpenID enabled website.',
 	'openidoptional' => '{{Identical|Optional}}',
+	'openidrequired' => '{{Identical|Required}}',
 	'openidemail' => '{{Identical|E-mail address}}',
 	'openidlanguage' => '{{Identical|Language}}',
+	'openidtimezone' => '{{Identical|Time zone}}',
 	'openidchoosepassword' => '{{Identical|Password}}',
-	'openidalreadyloggedin' => '$1 is a user name.',
-	'openid-prefs' => '{{optional}}
+	'openidalreadyloggedin' => '',
+	'openidalreadyloggedintext' => 'Parameters:
+* $1 is a username.',
+	'openidautosubmit' => '{{doc-important|"Continue" will never be localised. It is hardcoded in a PHP extension. Translations could be made like ""Continue" (translation)"}}',
+	'openiddelete-button' => '{{Identical|Confirm}}',
+	'openid-openids-were-not-merged' => 'When merging user accounts by UserMerge or similar extensions, OpenID(s) are not merged if $wgOpenIDMergeOnAccountMerge=false (default).',
+	'prefs-openid' => '{{optional}}
 OpenID preferences tab title',
 	'openid-prefstext' => 'OpenID preferences tab text above the list of preferences',
 	'openid-pref-hide' => 'OpenID preference label (Hide your OpenID URL on your user page, if you log in with OpenID)',
 	'openid-pref-update-userinfo-on-login' => 'OpenID preference label for updating fron OpenID persona upon login',
+	'openid-urls-url' => '{{optional}}',
+	'openid-urls-action' => '{{Identical|Action}}',
+	'openid-urls-registration' => 'Used in the same way as {{msg-mw|prefs-registration}}',
+	'openid-urls-registration-date-time' => '{{optional}}
+Used in the same way as {{msg-mw|prefs-registration-date-time}}.',
+	'openid-urls-delete' => '{{Identical|Delete}}',
+	'specialpages-group-openid' => 'Display group name for OpenID-extension related special pages for Special:SpecialPages',
+	'right-openid-dashboard-access' => '{{doc-right|openid-dashboard-access}}
+the standard access right for the OpenID dashboard, which is a restricted special page',
+	'right-openid-dashboard-admin' => '{{doc-right|openid-dashboard-admin}}
+the special adminstrator access right for the OpenID dashboard, which is a restricted special page',
+	'openid-dashboard-title' => 'Display name and page title for the OpenID dashboard (non-admin) on Special:SpecialPages',
+	'openid-dashboard-title-admin' => 'Display name and page title for the administrator OpenID dashboard on Special:SpecialPages',
+	'openid-dashboard-introduction' => 'Intro text for the special OpenID dashboard page: the user gets status information about the current OpenID settings of this wiki.
+* $1 is the url of the help page explaining the parameters',
 );
 
 /** Faeag Rotuma (Faeag Rotuma)
  * @author Jose77
  */
 $messages['rtm'] = array(
-	'openidchoosepassword' => 'ou password:',
+	'openidchoosepassword' => 'Ou password:',
 );
 
 /** Niuean (ko e vagahau Niuē)
  * @author Jose77
  */
 $messages['niu'] = array(
-	'openidchoosepassword' => 'kupu fufu:',
+	'openidchoosepassword' => 'Kupu fufu:',
 );
 
-/** Veps (Vepsan kel')
- * @author Игорь Бродский
- */
-$messages['vep'] = array(
-	'openidoptional' => 'Opcionaline',
-	'openidemail' => 'E-počtan adres',
-	'openidlanguage' => "Kel'",
-);
-
 /** Afrikaans (Afrikaans)
  * @author Arnobarnard
  * @author Naudefj
  */
 $messages['af'] = array(
+	'openid-desc' => "Teken by die wiki aan met 'n [//openid.net/ OpenID], en teken by ander OpenID ondersteunde webwerwe aan met 'n wikigebruiker",
+	'openidlogin' => 'Meld aan/ registreer met OpenID',
+	'openidserver' => 'OpenID-bediener',
+	'openidxrds' => 'Yadis-lêer',
+	'openidconvert' => 'OpenID-omskakeling',
+	'openiderror' => 'Verifikasiefout',
+	'openiderrortext' => "'n Fout het voorgekom tydens die verifikasie van die OpenID-URL.",
+	'openidconfigerror' => 'Fout met OpenID se konfigurasie',
+	'openidconfigerrortext' => "OpenID se stoor-instellings vir hierdie wiki is ongeldig.
+Raadpleeg asseblief 'n [[Special:ListUsers/sysop|administrateur]].",
+	'openidpermission' => 'Fout in die regte vir OpenID',
+	'openidpermissiontext' => 'Die OpenID wat u verskaf het word nie toegelaat om na hierdie bediener aan te teken nie.',
+	'openidcancel' => 'Verifikasie is gekanselleer',
+	'openidcanceltext' => 'Verifikasie van die OpenID-URL is gekanselleer.',
+	'openidfailure' => 'Verifikasie het gefaal',
+	'openidfailuretext' => 'Verifikasie van die OpenID-URL het gefaal. Foutboodskap: "$1"',
+	'openidsuccess' => 'Verifikasie suksesvol uitgevoer',
+	'openidsuccesstext' => "'''Verifikasie en aanmelding was suksesvol vir gebruiker $1'''.
+
+U OpenID is $2 .
+
+Hierdie en verdere OpenID's, saam met 'n opsionele wagwoord, kan in u [[Special:Preferences|voorkeure]] bestuur word.",
+	'openidusernameprefix' => 'OpenIDGebruiker',
+	'openidserverlogininstructions' => 'Sleutel u wagwoord hier onder in om by $3 aan te meld as gebruiker $2 (gebruikersbladsy $1).',
+	'openidtrustinstructions' => 'Kontroleer of u data met $1 wil deel.',
+	'openidallowtrust' => 'Laat $1 toe om hierdie gebruiker te vertrou.',
+	'openidnopolicy' => "Die werf het nie 'n privaatheidsbeleid nie.",
+	'openidpolicy' => 'Lees die <a target="_new" href="$1">privaatheidsbeleid</a> vir meer inligting.',
 	'openidoptional' => 'Opsioneel',
 	'openidrequired' => 'Verpligtend',
-	'openidemail' => 'E-pos adres',
+	'openidnickname' => 'Noemnaam',
+	'openidfullname' => 'Volledige naam',
+	'openidemail' => 'E-posadres',
 	'openidlanguage' => 'Taal',
-	'openidchoosepassword' => 'wagwoord:',
+	'openidtimezone' => 'Tydsone',
+	'openidchooselegend' => 'Gebruikersnaamkeuse',
+	'openidchooseinstructions' => "Alle gebruikers moet 'n gebruikersnaam kies. U kan een kies uit die opsies hieronder.",
+	'openidchoosenick' => 'U bynaam ($1)',
+	'openidchoosefull' => 'U volledige naam ($1)',
+	'openidchooseurl' => "'n Naam vanuit u OpenID ($1)",
+	'openidchooseauto' => "'n Outomaties gegenereerde naam ($1)",
+	'openidchoosemanual' => "'n Naam van u keuse:",
+	'openidchooseexisting' => "'n Bestaande gebruiker op hierdie wiki:",
+	'openidchooseusername' => 'Gebruikersnaam:',
+	'openidchoosepassword' => 'Wagwoord:',
+	'openidconvertinstructions' => "Hierdie vorm laat u toe om u gebruiker te verander om 'n OpenID-URL te gebruik of om meer OpenID-URL's by te voeg.",
+	'openidconvertoraddmoreids' => "Skakel om na OpenID of voeg 'n ander OpenID-URL by",
+	'openidconvertsuccess' => 'Suksesvol omgeskakel na OpenID',
+	'openidconvertsuccesstext' => 'U OpenID is omgeskakel na $1.',
+	'openidconvertyourstext' => 'Dit is al reeds u OpenID.',
+	'openidconvertothertext' => 'Dit is iemand anders se OpenID.',
+	'openidalreadyloggedin' => "'''U is al reeds aangeteken!'''",
+	'openidnousername' => 'Geen gebruikersnaam is verskaf nie.',
+	'openidbadusername' => 'Slegte gebruikersnaam verskaf.',
+	'openidautosubmit' => 'Hierdie bladsy bevat \'n vorm wat outomaties ingedien sal word as u JavaScript in u bladleser geaktveer het.
+As dit nie werk nie, kliek op die "Continue"-knoppie om voort te gaan.',
+	'openidclientonlytext' => "U kan nie gebruikers van die wiki as OpenID op 'n ander webwerf gebruik nie.",
+	'openidloginlabel' => 'OpenID URL',
+	'openidlogininstructions' => "{{SITENAME}} ondersteun die [//openid.net/ OpenID]-standaard wat u toelaat om verskeie webtuistes te besoek sonder om telkens weer aan te teken.
+Met OpenID kan u by verskeie webwerwe aanmeld sonder om elke keer opnuut 'n wagwoord te moet verskaf.
+Sien die [//af.wikipedia.org/wiki/OpenID Wikipedia-artikel oor OpenID] vir meer inligting.
+
+As u reeds 'n gebruiker op {{SITENAME}} het, kan u [[Special:UserLogin|aanmeld]] met u gebruikersnaam en wagwoord soos u normaalweg doen. Om in die toekoms OpenID te gebruik, kan u u [[Special:OpenIDConvert|gebruiker na OpenID omskakel]] nadat u aangeteken het.
+
+Daar is verskeie [http://wiki.openid.net/Public_OpenID_providers publieke OpenID-verskaffers], en waarskynlik het u reeds 'n OpenID-gebruiker by 'n ander diens.",
+	'openidupdateuserinfo' => 'Opdateer my persoonlike inligting:',
+	'openiddelete' => 'Skrap OpenID',
+	'openiddelete-text' => 'Deur op die "{{int:openiddelete-button}}"-knoppie te kliek, verwyder u die OpenID $1 vanuit u gebruiker.
+Dit sal dan nie langer moontlik wees om met hierdie OpenID aan te teken nie.',
+	'openiddelete-button' => 'Bevestig',
+	'openiddeleteerrornopassword' => "U kan nie al u OpenID's verwyder nie omdat u rekening nie 'n wagwoord het nie.
+Sonder 'n OpenID sou u glad nie meer kon aanteken nie.",
+	'openiddeleteerroropenidonly' => "U kan nie al u OpenID's verwyder nie omdat u slegs toegelaat word om met OpenID aan te teken.
+Sonder 'n OpenID sou u glad nie meer kon aanteken nie.",
+	'openiddelete-sucess' => 'Die OpenID is suksesvol van u gebruiker verwyder.',
+	'openiddelete-error' => "'n Fout het voorgekom tydens die verwydering van die OpenID uit u gebruiker.",
+	'openid-prefstext' => '[//openid.net/ OpenID] voorkeure',
+	'openid-pref-hide' => 'Versteek u OpenID op u gebruikersbladsy as u met OpenID aanteken.',
+	'openid-pref-update-userinfo-on-login' => 'Opdateer die volgende inligting vanuit die OpenID-gebruiker elke keer as ek inteken:',
+	'openid-urls-desc' => "OpenID's aan u gebruiker gekoppel:",
+	'openid-urls-action' => 'Aksie',
+	'openid-urls-delete' => 'Skrap',
+	'openid-add-url' => "Voeg 'n nuwe OpenID by",
+	'openid-login-or-create-account' => "Meld aan of skep 'n nuwe gebruiker",
+	'openid-provider-label-openid' => 'Sleutel die URL van u OpenID in',
+	'openid-provider-label-google' => 'Teken aan met u Google-gebruiker',
+	'openid-provider-label-yahoo' => 'Teken aan met u Yahoo-gebruiker',
+	'openid-provider-label-aol' => 'Teken aan met u AOL-gebruiker',
+	'openid-provider-label-other-username' => 'U gebruikersnaam by $1',
+	'openid-dashboard-title' => 'OpenID-beheerbord',
+	'openid-dashboard-title-admin' => 'OpenID-beheerbord (administrateur)',
 );
 
+/** Gheg Albanian (Gegë)
+ * @author Mdupont
+ */
+$messages['aln'] = array(
+	'openiddelete-sucess' => 'OpenID u hoq me sukses nga llogaria juaj.',
+	'openiddelete-error' => 'Gabim gjatë heqjes OpenID nga llogaria juaj.',
+	'openid-prefstext' => '[//openid.net/ OpenID preferencat]',
+	'openid-pref-hide' => 'Fshih URL OpenID tuaj në faqen tuaj të përdoruesit, nëse ju hyni në me OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Update informacionin e mëposhtëm nga persona OpenID çdo herë që në hyrje:',
+	'openid-urls-desc' => 'OpenIDs lidhur me llogarinë tuaj:',
+	'openid-urls-action' => 'Veprim',
+	'openid-urls-delete' => 'Fshij',
+	'openid-add-url' => 'Shto një OpenID ri',
+	'openid-login-or-create-account' => 'Regjistrohu ose hapni një llogari të re',
+	'openid-provider-label-openid' => 'Shkruani URL OpenID tuaj',
+	'openid-provider-label-google' => 'Hyni në llogarinë tuaj duke përdorur Google',
+	'openid-provider-label-yahoo' => 'Hyni ose duke përdorur llogarinë tuaj Yahoo',
+	'openid-provider-label-aol' => 'Shkruani AOL screenname tuaj',
+	'openid-provider-label-other-username' => 'Fusni emrin e përdoruesit $1',
+);
+
 /** Amharic (አማርኛ)
  * @author Codex Sinaiticus
  */
@@ -163,14 +355,24 @@
 	'openidlanguage' => 'ቋንቋ',
 );
 
+/** Aragonese (Aragonés)
+ * @author Juanpabl
+ */
+$messages['an'] = array(
+	'openidlanguage' => 'Idioma',
+	'openid-urls-action' => 'Acción',
+	'openid-urls-delete' => 'Borrar',
+);
+
 /** Arabic (العربية)
+ * @author ;Hiba;1
  * @author Meno25
+ * @author Orango
  * @author OsamaK
  */
 $messages['ar'] = array(
-	'openid-desc' => 'سجل الدخول للويكي [http://openid.net/ بهوية مفتوحة]، وسجل الدخول لمواقع ويب أخرى تعرف الهوية المفتوحة بحساب مستخدم ويكي',
-	'openidlogin' => 'تسجيل الدخول بالهوية المفتوحة',
-	'openidfinish' => 'إنهاء دخول الهوية المفتوحة',
+	'openid-desc' => 'سجل الدخول للويكي [//openid.net/ بهوية مفتوحة]، وسجل الدخول لمواقع الوب الأخرى التي تعترف بالهوية المفتوحة بحساب مستخدم ويكي',
+	'openidlogin' => 'سجل الدخول / أنشئ حساب مع الهوية المفتوحة',
 	'openidserver' => 'خادم الهوية المفتوحة',
 	'openidxrds' => 'ملف ياديس',
 	'openidconvert' => 'محول الهوية المفتوحة',
@@ -183,10 +385,10 @@
 	'openidpermissiontext' => 'الهوية المفتوحة التي وفرتها غير مسموح لها بتسجيل الدخول إلى هذا الخادم.',
 	'openidcancel' => 'التأكيد تم إلغاؤه',
 	'openidcanceltext' => 'التحقق من مسار الهوية المفتوحة تم إلغاؤه.',
-	'openidfailure' => 'التأكيد فشل',
+	'openidfailure' => 'فشل التحقق',
 	'openidfailuretext' => 'التحقق من مسار الهوية المفتوحة فشل. رسالة خطأ: "$1"',
-	'openidsuccess' => 'التأكيد نجح',
-	'openidsuccesstext' => 'التحقق من مسار الهوية المفتوحة نجح.',
+	'openidsuccess' => 'نحج التحقق',
+	'openidsuccesstext' => 'نجح التحقق من مسار الهوية المفتوحة.',
 	'openidusernameprefix' => 'مستخدم الهوية المفتوحة',
 	'openidserverlogininstructions' => 'أدخل كلمة سرك بالأسفل لتسجيل الدخول إلى $3 كمستخدم $2 (صفحة مستخدم $1).',
 	'openidtrustinstructions' => 'تأكد مما إذا كنت ترغب في مشاركة البيانات مع $1.',
@@ -199,53 +401,98 @@
 	'openidfullname' => 'الاسم الكامل',
 	'openidemail' => 'عنوان البريد الإلكتروني',
 	'openidlanguage' => 'اللغة',
-	'openidnotavailable' => 'لقبك المفضل ($1) قيد الاستخدام بالفعل بواسطة مستخدم آخر.',
-	'openidnotprovided' => 'خادم هويتك المفتوحة لم يوفر لقبا (إما لأنه لا يستطيع، أو لأنك أخبرته ألا يفعل).',
+	'openidtimezone' => 'المنطقة الزمنية',
+	'openidchooselegend' => 'اختيار اسم المستخدم والحساب',
 	'openidchooseinstructions' => 'كل المستخدمين يحتاجون إلى لقب؛
 يمكنك أن تختار واحدا من الخيارات بالأسفل.',
+	'openidchoosenick' => 'اسمك المستعار ($1)',
 	'openidchoosefull' => 'اسمك الكامل ($1)',
 	'openidchooseurl' => 'اسم مختار من هويتك المفتوحة ($1)',
 	'openidchooseauto' => 'اسم مولد تلقائيا ($1)',
 	'openidchoosemanual' => 'اسم من اختيارك:',
-	'openidchooseexisting' => 'حساب موجود في هذه الويكي:',
+	'openidchooseexisting' => 'حساب موجود في هذا الويكي',
+	'openidchooseusername' => 'اسم المستخدم:',
 	'openidchoosepassword' => 'كلمة السر:',
-	'openidconvertinstructions' => 'هذه الاستمارة تسمح لك بتغيير حساب مستخدمك ليستعمل مسار هوية مفتوحة.',
+	'openidconvertinstructions' => 'هذه الاستمارة تتيح لك تغيير حساب مستخدمك لتستخدم مسار هوية مفتوحة أو لاضافة المزيد من مسارات هويات مفتوحة.',
+	'openidconvertoraddmoreids' => 'حوّل إلى OpenID أو أضف عنوان OpenID آخر',
 	'openidconvertsuccess' => 'تم التحول بنجاح إلى الهوية المفتوحة',
 	'openidconvertsuccesstext' => 'أنت حولت بنجاح هويتك المفتوحة إلى $1.',
 	'openidconvertyourstext' => 'هذه بالفعل هويتك المفتوحة.',
 	'openidconvertothertext' => 'هذه هي الهوية المفتوحة لشخص آخر.',
-	'openidalreadyloggedin' => "'''أنت مسجل الدخول بالفعل، $1!'''
-
-لو كنت تريد استخدام الهوية المفتوحة لتسجيل الدخول في المستقبل، يمكنك [[Special:OpenIDConvert|تحويل حسابك لاستخدام الهوية المفتوحة]].",
+	'openidalreadyloggedin' => 'أنت مسجل الدخول بالفعل.',
 	'openidnousername' => 'لا اسم مستخدم تم تحديده.',
 	'openidbadusername' => 'اسم المستخدم المحدد سيء.',
 	'openidautosubmit' => 'هذه الصفحة تحتوي على استمارة ينبغي أن يتم إرسالها تلقائيا لو أنك لديك الجافاسكريبت مفعلة.
-لو لا، جرب زر \\"Continue\\".',
-	'openidclientonlytext' => 'أنت لا يمكنك استخدام الحسابات من هذا الويكي كهوية مفتوحة على موقع آخر.',
+لو لا، جرب زر "Continue".',
+	'openidclientonlytext' => 'لا يمكنك استخدام حسابات هذه الويكي كهوية مفتوحة على موقع آخر.',
 	'openidloginlabel' => 'مسار الهوية المفتوحة',
-	'openidlogininstructions' => '{{SITENAME}} تدعم معيار [http://openid.net/ الهوية المفتوحة] للدخول الفردي بين مواقع الويب.
-الهوية المفتوحة تسمح لك بتسجيل الدخول إلى مواقع ويب عديدة مختلفة بدون استخدام كلمة سر مختلفة لكل موقع.
-(انظر [http://en.wikipedia.org/wiki/OpenID مقالة الهوية المفتوحة في يويكيبيديا] لمزيد من المعلومات.)
+	'openidlogininstructions' => '{{SITENAME}} تدعم معيار [//openid.net/ الهوية المفتوحة] للدخول الفردي بين مواقع الوب.
+الهوية المفتوحة تسمح لك بتسجيل الدخول إلى مواقع وب عديدة مختلفة بدون استخدام كلمة سر مختلفة لكل موقع.
+(راجع [//en.wikipedia.org/wiki/OpenID مقالة الهوية المفتوحة في يويكيبيديا] لمزيد من المعلومات.)
 
-لو أنك لديك بالفعل حساب في {{SITENAME}}، يمكنك [[Special:UserLogin|تسجيل الدخول]] باسم مستخدمك وكلمة السر الخاصة بك كالمعتاد.
+إذا كان لديك بالفعل حساب في {{SITENAME}}، يمكنك [[Special:UserLogin|تسجيل الدخول]] باسم مستخدمك وكلمة سرك كالمعتاد.
 لاستخدام الهوية المفتوحة في المستقبل، يمكنك [[Special:OpenIDConvert|تحويل حسابك إلى الهوية المفتوحة]] بعد تسجيل دخولك بشكل عادي.
 
-يوجد العديد من [http://wiki.openid.net/Public_OpenID_providers موفري الهوية المفتوحة العلنيين]، وربما يكون لديك حسابك بهوية مفتوحة على خدمة أخرى.',
-	'openidupdateuserinfo' => 'تحديث معلوماتي الشخصية',
-	'openid-prefs' => 'هوية مفتوحة',
-	'openid-prefstext' => 'تفضيلات [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'أخف هويتك <a href="http://openid.net/">هويتك المفتوحة</a> على صفحتك الشخصية، لو سجلت الدخول بالهوية المفتوحة.',
-	'openid-pref-update-userinfo-on-login' => 'حدث معلوماتي من شخصية الهوية المفتوحة كل مرة أسجل الدخول',
+يوجد العديد من [http://wiki.openid.net/Public_OpenID_providers مزودي الهوية المفتوحة]، وقد يكون لديك حسابك بهوية مفتوحة على خدمة أخرى.',
+	'openidupdateuserinfo' => 'تحديث معلوماتي الشخصية:',
+	'openiddelete' => 'احذف الهوية المفتوحة',
+	'openiddelete-text' => 'بالضغط على زر "{{int:openiddelete-button}}"، ستزيل الهوية المفتوحة OpenID $1 من حسابك.
+لن تتمكن بعد الآن من الدخول بهذه الهوية المفتوحة.',
+	'openiddelete-button' => 'أكّد',
+	'openiddeleteerrornopassword' => 'لا يمكنك إزالة كل هوياتك المفتوحة لعدم وجود كلمة سر لحسابك.
+لن تتمكن من الولوج بدون هوية مفتوحة.',
+	'openiddeleteerroropenidonly' => 'لا يمكنك إزالة كل هوياتك المفتوحة لأنه يسمح لك بالدخول عبر هوية مفتوحة فقط.
+لن تتمكن من الولوج بدون هوية مفتوحة.',
+	'openiddelete-sucess' => 'أزيلت الهوية المفتوحة بنجاح من حسابك.',
+	'openiddelete-error' => 'صودف خطأ أثناء إزالة الهوية المفتوحة من حسابك.',
+	'prefs-openid' => 'هوية مفتوحة',
+	'openid-prefstext' => 'تفضيلات [//openid.net/ الهوية المفتوحة]',
+	'openid-pref-hide' => 'أخفِ مسار هويتك المفتوحة من صفحتك الشخصية، إذا سجلت الدخول بالهوية المفتوحة.',
+	'openid-pref-update-userinfo-on-login' => 'حدث المعلومات التالية من شخصية الهوية المفتوحة كل مرة أسجل الدخول:',
+	'openid-urls-desc' => 'الهويات المفتوحة المربوطة بحسابك:',
+	'openid-urls-url' => 'مسار',
+	'openid-urls-action' => 'إجراء',
+	'openid-urls-delete' => 'احذف',
+	'openid-add-url' => 'أضف هوية مفتوحة جديدة',
+	'openid-login-or-create-account' => 'سجل الدخول أو أنشئ حسابا جديدا',
+	'openid-provider-label-openid' => 'أدخل مسار هويتك المفتوحة',
+	'openid-provider-label-google' => 'سجل الدخول باستخدام حسابك في جوجل',
+	'openid-provider-label-yahoo' => 'سجل الدخول باستخدام حسابك في ياهو',
+	'openid-provider-label-aol' => 'أدخل اسم شاشة AOL الخاص بك',
+	'openid-provider-label-other-username' => 'أدخل اسم مستخدمك في $1',
 );
 
+/** Aramaic (ܐܪܡܝܐ)
+ * @author 334a
+ * @author Basharh
+ */
+$messages['arc'] = array(
+	'openidusernameprefix' => 'ܡܦܠܚܢܐ ܕܗܝܝܘܬܐ ܦܬܝܚܬܐ',
+	'openidoptional' => 'ܓܒܝܝܐ',
+	'openidfullname' => 'ܫܡܐ ܓܡܝܪܐ',
+	'openidemail' => 'ܦܪܫܓܢܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
+	'openidlanguage' => 'ܠܫܢܐ',
+	'openidtimezone' => 'ܙܘܢܐ ܙܒܢܝܐ:',
+	'openidchooselegend' => 'ܓܒܝܐ ܕܚܘܫܒܢܐ ܘܫܡܐ ܕܡܦܠܚܢܐ',
+	'openidchoosefull' => 'ܫܡܐ ܓܡܝܪܐ ܕܝܠܟ($1)',
+	'openidchoosepassword' => 'ܡܠܬܐ ܕܥܠܠܐ:',
+	'openidloginlabel' => 'URL ܕܗܝܝܘܬܐ ܦܬܝܚܬܐ',
+	'openiddelete' => 'ܫܘܦ ܗܝܝܘܬܐ ܦܬܝܚܬܐ',
+	'openiddelete-button' => 'ܚܬܬ',
+	'openid-urls-action' => 'ܥܒܕܐ',
+	'openid-urls-delete' => 'ܫܘܦ',
+	'openid-add-url' => 'ܐܘܣܦ ܗܝܝܘܬܐ ܦܬܝܚܬܐ ܚܕܬܐ',
+	'openid-provider-label-other-username' => 'ܐܥܠ ܫܡܐ ܕܡܦܠܚܢܐ ܕܝܠܟ ܒ $1',
+);
+
 /** Egyptian Spoken Arabic (مصرى)
+ * @author Dudi
  * @author Ghaly
  * @author Meno25
  */
 $messages['arz'] = array(
-	'openid-desc' => 'سجل الدخول للويكى [http://openid.net/ بهوية مفتوحة]، وسجل الدخول لمواقع ويب أخرى تعرف الهوية المفتوحة بحساب مستخدم ويكي',
+	'openid-desc' => 'سجل الدخول للويكى [//openid.net/ بهوية مفتوحة]، وسجل الدخول لمواقع ويب أخرى تعرف الهوية المفتوحة بحساب مستخدم ويكي',
 	'openidlogin' => 'تسجيل الدخول بالهوية المفتوحة',
-	'openidfinish' => 'إنهاء دخول الهوية المفتوحة',
 	'openidserver' => 'خادم الهوية المفتوحة',
 	'openidxrds' => 'ملف ياديس',
 	'openidconvert' => 'محول الهوية المفتوحة',
@@ -274,17 +521,15 @@
 	'openidfullname' => 'الاسم الكامل',
 	'openidemail' => 'عنوان البريد الإلكتروني',
 	'openidlanguage' => 'اللغة',
-	'openidnotavailable' => 'لقبك المفضل ($1) قيد الاستخدام بالفعل بواسطة مستخدم آخر.',
-	'openidnotprovided' => 'خادم هويتك المفتوحة لم يوفر لقبا (إما لأنه لا يستطيع، أو لأنك أخبرته ألا يفعل).',
 	'openidchooseinstructions' => 'كل المستخدمين يحتاجون إلى لقب؛
 يمكنك أن تختار واحدا من الخيارات بالأسفل.',
 	'openidchoosefull' => 'اسمك الكامل ($1)',
 	'openidchooseurl' => 'اسم مختار من هويتك المفتوحة ($1)',
 	'openidchooseauto' => 'اسم مولد تلقائيا ($1)',
 	'openidchoosemanual' => 'اسم من اختيارك:',
-	'openidchooseexisting' => 'حساب موجود فى هذه الويكي:',
+	'openidchooseexisting' => 'حساب موجود فى الويكى دى',
 	'openidchoosepassword' => 'كلمة السر:',
-	'openidconvertinstructions' => 'هذه الإستمارة تسمح لك بتغيير حساب مستخدمك ليستعمل مسار هوية مفتوحة.',
+	'openidconvertinstructions' => 'هذه الاستمارة تتيح لك تغيير حساب المستخدم الخاص بك لكى تستخدم OpenID URL او لاضافة المزيد من OpenID URLs .',
 	'openidconvertsuccess' => 'تم التحول بنجاح إلى الهوية المفتوحة',
 	'openidconvertsuccesstext' => 'أنت حولت بنجاح هويتك المفتوحة إلى $1.',
 	'openidconvertyourstext' => 'هذه بالفعل هويتك المفتوحة.',
@@ -295,40 +540,132 @@
 	'openidnousername' => 'مافيش اسم يوزر تم تحديده.',
 	'openidbadusername' => 'اسم المستخدم المحدد سيء.',
 	'openidautosubmit' => 'هذه الصفحة تحتوى على إستمارة ينبغى أن يتم إرسالها تلقائيا لو أنك لديك الجافاسكريبت مفعلة.
-لو لا، جرب زر \\"Continue\\".',
+لو لا، جرب زر "Continue".',
 	'openidclientonlytext' => 'أنت لا يمكنك استخدام الحسابات من هذا الويكى كهوية مفتوحة على موقع آخر.',
 	'openidloginlabel' => 'مسار الهوية المفتوحة',
-	'openidlogininstructions' => "{{SITENAME}} تدعم معيار [http://openid.net/ الهوية المفتوحة] للدخول الفردى بين مواقع الويب.
+	'openidlogininstructions' => '{{SITENAME}} تدعم معيار [//openid.net/ الهوية المفتوحة] للدخول الفردى بين مواقع الويب.
 الهوية المفتوحة تسمح لك بتسجيل الدخول إلى مواقع ويب عديدة مختلفة بدون استخدام كلمة سر مختلفة لكل موقع.
-(انظر [http://en.wikipedia.org/wiki/OpenID مقالة الهوية المفتوحة فى يويكيبيديا] لمزيد من المعلومات.)
+(انظر [//en.wikipedia.org/wiki/OpenID مقالة الهوية المفتوحة فى يويكيبيديا] لمزيد من المعلومات.)
 
 لو أنك لديك بالفعل حساب فى {{SITENAME}}، يمكنك [[Special:UserLogin|تسجيل الدخول]] باسم مستخدمك وكلمة السر الخاصة بك كالمعتاد.
-لاستخدام الهوية المفتوحة فى المستقبل، يمكنك [[Special:OpenIDConvert|تحويل حسابك إلى الهوية المفتوحة]] بعد تسجيل دخولك بشكل عادي.
+لاستخدام الهوية المفتوحة فى المستقبل، يمكنك [[Special:OpenIDConvert|تحويل حسابك إلى الهوية المفتوحة]] بعد تسجيل دخولك بشكل عادى.
 
-يوجد العديد من [http://wiki.openid.net/Public_OpenID_providers موفرى الهوية المفتوحة العلنيين]، وربما يكون لديك حسابك بهوية مفتوحة على خدمة أخرى.
-
-; الويكيات الأخرى : لو أنك لديك حساب على ويكى مفعل الهوية المفتوحة، مثل [http://wikitravel.org/ ويكى ترافيل]، [http://www.wikihow.com/ ويكى هاو]، [http://vinismo.com/ فينيزمو]، [http://aboutus.org/ أبوت أس] أو [http://kei.ki/ كيكي]، يمكنك تسجيل الدخول إلى {{SITENAME}} بواسطة إدخال '''المسار الكامل''' لصفحة مستخدمك على هذا الويكى الآخر فى الصندوق بالأعلى. على سبيل المثال، ''<nowiki>http://kei.ki/en/User:Evan</nowiki>''.
-; [http://openid.yahoo.com/ ياهو!] : إذا لديك حساب مع ياهو!، يمكنك تسجيل الدخول إلى هذا الموقع بواسطة إدخال هويتك المفتوحة الموفرة بواسطة ياهو! فى الصندوق بالأعلى. مسارات هوية ياهو! المفتوحة تأخذ الصيغة ''<nowiki>https://me.yahoo.com/yourusername</nowiki>''.
-; [http://dev.aol.com/aol-and-63-million-openids إيه أو إل] : لو لديك حساب مع [http://www.aol.com/ إيه أو إل]، مثل حساب [http://www.aim.com/ إيه أى إم]، يمكنك تسجيل الدخول إلى {{SITENAME}} بواسطة إدخال هويتك المفتوحة الموفرة بواسطة AOL فى الصندوق بالأعلى. مسارات هوية AOL المفتوحة تأخذ الصيغة ''<nowiki>http://openid.aol.com/yourusername</nowiki>''. اسم مستخدمك ينبغى أن يكون كله حروفا صغيرة، لا مسافات.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html بلوجر], [http://faq.wordpress.com/2007/03/06/what-is-openid/ وورد بريس دوت كوم]، [http://www.livejournal.com/openid/about.bml ليف جورنال]، [http://bradfitz.vox.com/library/post/openid-for-vox.html فوكس] : لو لديك مدونة على أى من هذه الخدمات، أدخل مسار مدونتك فى الصندوق بالأعلى. على سبيل المثال، ''<nowiki>http://yourusername.blogspot.com/</nowiki>''، ''<nowiki>http://yourusername.wordpress.com/</nowiki>''، ''<nowiki>http://yourusername.livejournal.com/</nowiki>''، أو ''<nowiki>http://yourusername.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'أخف هويتك <a href="http://openid.net/">هويتك المفتوحة</a> على صفحتك الشخصية، لو سجلت الدخول بالهوية المفتوحة.',
+يوجد العديد من [http://wiki.openid.net/Public_OpenID_providers موفرى الهوية المفتوحة العلنيين]، وربما يكون لديك حسابك بهوية مفتوحة على خدمة أخرى.',
+	'openid-pref-hide' => 'أخف هويتك هويتك المفتوحة على صفحتك الشخصية، لو سجلت الدخول بالهوية المفتوحة.',
 );
 
 /** Asturian (Asturianu)
  * @author Esbardu
+ * @author Xuacu
  */
 $messages['ast'] = array(
+	'openid-desc' => "Permite a los usuarios l'accesu a la wiki con una [//openid.net/ OpenID]. Si esto ta activao na wiki, tamién puen utilizar la URL de la so cuenta d'usuariu d'esta wiki como OpenID p'aniciar sesión n'otros sitios web qu'utilicen OpenID",
+	'openidlogin' => 'Aniciar sesión / crear cuenta con OpenID',
+	'openidserver' => 'Sirvidor OpenID',
+	'openidxrds' => 'Ficheru Yadis',
+	'openidconvert' => 'Convertidor OpenID',
+	'openiderror' => 'Error de verificación',
+	'openiderrortext' => 'Hebo un error mentanto se comprobaba la URL de la OpenID.',
+	'openidconfigerror' => "Error de configuración d'OpenID",
+	'openidconfigerrortext' => "La configuración del almacenamientu OpenID d'esta wiki ye inválida.
+Consulta con un [[Special:ListUsers/sysop|alministrador]].",
+	'openidpermission' => 'Error de permisos OpenID',
+	'openidpermissiontext' => "La OpenID qu'indicasti nun tien permisu d'accesu nesti sirvidor.",
+	'openidcancel' => "S'encaboxó la comprobación",
+	'openidcanceltext' => "S'encaboxó la comprobación de la URL d'OpenID",
+	'openidfailure' => 'Falló la comprobación',
+	'openidfailuretext' => "Falló la comprobación de la URL d'OpenID. Mensaxe d'error: «$1»",
+	'openidsuccess' => 'Comprobación correuta',
+	'openidsuccesstext' => "'''Comprobación y aniciu de sesión como usuariu $1 correutos.'''
+
+La to OpenID ye $2.
+
+Esti y otros OpenID opcionales se puen xestionar na [[Special:Preferences#prefsection-openid|llingüeta OpenID]] de les preferencies.<br />
+Se pue amestar una conseña de cuenta opcional nel [[Special:Preferences#prefsection-personal|perfil d'usuariu]].",
+	'openidusernameprefix' => 'Usuariu OpenID',
+	'openidserverlogininstructions' => "$3 pide qu'escribas la to conseña de la páxina $1 pal usuariu $2 (esta ye la URL del to OpenID)",
+	'openidtrustinstructions' => 'Comprueba si quies compartir datos con $1.',
+	'openidallowtrust' => "Permitir a $1 confiar nesta cuenta d'usuariu.",
+	'openidnopolicy' => "El sitiu nun conseñó la so política d'intimidá.",
+	'openidpolicy' => 'Comprueba la <a target="_new" href="$1">política d\'intimidá</a> pa mayor información.',
+	'openidoptional' => 'Opcional',
+	'openidrequired' => 'Requeríu',
+	'openidnickname' => 'Alcuñu',
+	'openidfullname' => 'Nome completu',
+	'openidemail' => 'Direición de corréu electrónicu',
 	'openidlanguage' => 'Llingua',
+	'openidtimezone' => 'Estaya horaria',
+	'openidchooselegend' => "Eleición del nome d'usuariu y cuenta",
+	'openidchooseinstructions' => "Tolos usuarios necesiten un alcuñu;
+pues escoyer unu ente les opciones d'abaxo.",
+	'openidchoosenick' => 'El to alcuñu ($1)',
+	'openidchoosefull' => 'El to nome completu ($1)',
+	'openidchooseurl' => 'Un nome sacáu de la to OpenID ($1)',
+	'openidchooseauto' => 'Un nome xeneráu automáticamente ($1)',
+	'openidchoosemanual' => 'Un nome escoyíu por ti:',
+	'openidchooseexisting' => 'Una cuenta esistente nesta wiki',
+	'openidchooseusername' => "Nome d'usuariu:",
+	'openidchoosepassword' => 'Conseña:',
+	'openidconvertinstructions' => "Esti formulariu te permite camudar la to cuenta d'usuariu pa usar una URL d'OpenID o amestar más URLs d'OpenID.",
+	'openidconvertoraddmoreids' => 'Convertir a OpenID o amestar otra URL OpenID',
+	'openidconvertsuccess' => 'Convertida correutamente a OpenID',
+	'openidconvertsuccesstext' => 'Convertisti correutamente la to OpenID a $1.',
+	'openidconvertyourstext' => 'Esa yá ye la to OpenID.',
+	'openidconvertothertext' => "Esa ye la OpenID d'otra persona.",
+	'openidalreadyloggedin' => 'Yá aniciasti sesión.',
+	'openidalreadyloggedintext' => "'''Yá tas identificáu, $1!'''
+
+Pues xestionar (ver, desaniciar, amestar otres) les OpenID na [[Special:Preferences#prefsection-openid|llingüeta OpenID]] de les preferencies.",
+	'openidnousername' => "Nun escribisti dengún nome d'usuariu.",
+	'openidbadusername' => "Escribisti mal el nome d'usuariu.",
+	'openid-urls-desc' => 'OpenIDs asociaes cola to cuenta:',
+	'openid-urls-action' => 'Aición',
+	'openid-urls-registration' => 'Hora del rexistru',
+	'openid-urls-delete' => 'Desaniciar',
+	'openid-add-url' => 'Amestar una OpenID nueva',
+	'openid-login-or-create-account' => 'Entrar o crear una cuenta nueva',
+	'openid-provider-label-openid' => 'Escribi la URL de la to OpenID',
+	'openid-provider-label-google' => 'Aniciar sesión usando la to cuenta de Google',
+	'openid-provider-label-yahoo' => 'Aniciar sesión usando la to cuenta de Yahoo',
+	'openid-provider-label-aol' => "Escribi'l nome de la to cuenta AOL",
+	'openid-provider-label-other-username' => "Escribi'l nome d'usuariu de $1",
+	'openid-dashboard-title' => "Tableru d'OpenID",
+	'openid-dashboard-title-admin' => "Tableru d'OpenID (alministrador)",
+	'openid-dashboard-number-openid-users' => "Númberu d'usuarios con OpenID",
+	'openid-dashboard-number-openids-in-database' => "Númberu d'OpenIDs (total)",
+	'openid-dashboard-number-users-without-openid' => "Númberu d'usuarios ensin OpenID",
 );
 
-/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+/** Azerbaijani (Azərbaycanca)
+ * @author Cekli829
+ */
+$messages['az'] = array(
+	'openidnickname' => 'Ləqəb',
+	'openidemail' => 'E-poçt ünvanı',
+	'openidlanguage' => 'Dil',
+	'openidtimezone' => 'Vaxt zonası',
+	'openidchooseusername' => 'İstifadəçi adı:',
+	'openidchoosepassword' => 'Parol:',
+	'openiddelete-button' => 'Təsdiq et',
+	'openid-urls-delete' => 'Sil',
+);
+
+/** Belarusian (Беларуская)
+ * @author Тест
+ */
+$messages['be'] = array(
+	'openiddelete-button' => 'Пацвердзіць',
+);
+
+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
+ * @author Wizardist
+ * @author Zedlik
  */
 $messages['be-tarask'] = array(
-	'openid-desc' => 'Уваход ў {{GRAMMAR:вінавальны|{{SITENAME}}}} з дапамогай [http://openid.net/ OpenID], а так сама ў іншыя сайты, якія падтрымліваюць OpenID з вікі-рахунка',
-	'openidlogin' => 'Уваход у сыстэму з дапамогай OpenID',
-	'openidfinish' => 'Скончыць уваход у сыстэму з дапамогай OpenID',
+	'openid-desc' => 'Уваход ў {{GRAMMAR:вінавальны|{{SITENAME}}}} з дапамогай [//openid.net/ OpenID], а так сама ў іншыя сайты, якія падтрымліваюць OpenID з вікі-рахунка',
+	'openidlogin' => 'Уваход у сыстэму / стварэньне рахунку з дапамогай OpenID',
 	'openidserver' => 'Сэрвэр OpenID',
 	'openidxrds' => 'Файл Yadis',
 	'openidconvert' => 'Канвэртар OpenID',
@@ -344,9 +681,14 @@
 	'openidfailure' => 'Праверка не атрымалася',
 	'openidfailuretext' => 'Праверка адрасу OpenID не атрымалася. Паведамленьне пра памылку: «$1»',
 	'openidsuccess' => 'Праверка прайшла пасьпяхова',
-	'openidsuccesstext' => 'Праверка адрасу OpenID прайшла пасьпяхова.',
+	'openidsuccesstext' => "'''Праверка і ўваход для карыстальніка $1 прайшлі пасьпяхова'''.
+
+Ваш OpenID: $2.
+
+Гэты і дадатковыя OpenID могуць наладжаныя ў [[Special:Preferences#prefsection-openid|OpenID tab]].<br />
+Неабавязковы пароль для рахунка можа быць даданы ў Вашым [[Special:Preferences#prefsection-personal|профілі]].",
 	'openidusernameprefix' => 'КарыстальнікOpenID',
-	'openidserverlogininstructions' => 'Увядзіце Ваш пароль ніжэй, каб увайсьці на $3 як {{GENDER:$2|удзельнік|удзельніца}} $2 (старонка {{GENDER:$2|ўдзельніка|удзельніцы}} $1).',
+	'openidserverlogininstructions' => '$3 падаў запыт, каб Вы ўвялі Ваш пароль для {{GENDER:$2|удзельніка|удзельніцы}} $1 (гэта Ваш URL-адрас OpenID).',
 	'openidtrustinstructions' => 'Пазначце, калі Вы жадаеце даць доступ да зьвестак для $1.',
 	'openidallowtrust' => 'Дазволіць $1 давераць гэтаму рахунку.',
 	'openidnopolicy' => 'Сайт ня мае правілаў адносна прыватнасьці.',
@@ -357,49 +699,85 @@
 	'openidfullname' => 'Поўнае імя',
 	'openidemail' => 'Адрас электроннай пошты',
 	'openidlanguage' => 'Мова',
-	'openidnotavailable' => 'Пазначаная Вамі мянушка ($1) ужо выкарыстоўваецца.',
-	'openidnotprovided' => 'Ваш сэрвэр OpenID не даслаў мянушку (магчыма, таму што ня можа, альбо Вы загадалі гэтага не рабіць).',
+	'openidtimezone' => 'Часавы пояс',
+	'openidchooselegend' => 'Выбар імя карыстальніка і паролю',
 	'openidchooseinstructions' => 'Кожны ўдзельнік павінен мець мянушку;
 Вы можаце выбраць адну з пададзеных ніжэй.',
+	'openidchoosenick' => 'Ваша мянушка ($1)',
 	'openidchoosefull' => 'Ваша поўнае імя ($1)',
 	'openidchooseurl' => 'Імя атрыманае ад Вашага сэрвэра OpenID ($1)',
 	'openidchooseauto' => 'Аўтаматычна створанае імя ($1)',
 	'openidchoosemanual' => 'Імя на Ваш выбар:',
-	'openidchooseexisting' => 'Існуючы рахунак у {{GRAMMAR:месны|{{SITENAME}}}}:',
-	'openidchoosepassword' => 'пароль:',
-	'openidconvertinstructions' => 'Гэта форма дазваляе зьмяніць Ваш рахунак на выкарыстаньне адрасу OpenID.',
+	'openidchooseexisting' => 'Існуючы рахунак у {{GRAMMAR:месны|{{SITENAME}}}}',
+	'openidchooseusername' => 'Імя карыстальніка:',
+	'openidchoosepassword' => 'Пароль:',
+	'openidconvertinstructions' => 'Гэта форма дазваляе выкарыстоўваць для Вашага рахунку адрас OpenID альбо дадаць іншыя адрасы OpenID.',
+	'openidconvertoraddmoreids' => 'Канвэртаваць у OpenID альбо дадаць іншы адрас OpenID',
 	'openidconvertsuccess' => 'Пасьпяховае пераўтварэньне ў OpenID',
 	'openidconvertsuccesstext' => 'Вы пасьпяхова пераўтварылі Ваш OpenID у $1.',
 	'openidconvertyourstext' => 'Гэта ўжо Ваш OpenID.',
 	'openidconvertothertext' => 'Гэта ня Ваш OpenID.',
-	'openidalreadyloggedin' => "'''Вы ўжо ўвайшлі, $1!'''
+	'openidalreadyloggedin' => 'Вы ўжо ўвайшлі.',
+	'openidalreadyloggedintext' => "'''Вы ўжо ўвайшлі, $1!'''
 
-Калі Вы жадаеце выкарыстоўваць OpenID для ўваходаў у будучыні, Вы можаце [[Special:OpenIDConvert|пераўтварыць Ваш рахунак на выкарыстаньне OpenID]].",
+Вы можаце кіраваць (праглядаць, выдаляць, дадаваць) OpenID ва ўкладцы Вашых  [[Special:Preferences#prefsection-openid|наладаў]] OpenID.",
 	'openidnousername' => 'Не пазначана імя ўдзельніка.',
 	'openidbadusername' => 'Пазначана няслушнае імя ўдзельніка.',
 	'openidautosubmit' => 'Гэта старонка ўтрымлівае форму, якая павінна быць аўтаматычна адпраўлена, калі ў Вас уключаны JavaScript.
-Калі гэтага не адбылася, паспрабуйце націснуць кнопку «Працягнуць».',
+Калі гэтага не адбылася, паспрабуйце націснуць кнопку «Continue» (Працягнуць).',
 	'openidclientonlytext' => 'Вы ня можаце выкарыстоўваць рахункі {{GRAMMAR:родны|{{SITENAME}}}} як OpenID на іншых сайтах.',
 	'openidloginlabel' => 'Адрас OpenID',
-	'openidlogininstructions' => "{{SITENAME}} падтрымлівае стандарт [http://openid.net/ OpenID], які дазваляе выкарыстоўваць адзіны уліковы запіс для ўваходу ў розныя сайты без выкарыстаньня розных пароляў для кожнага зь іх.
-(Глядзіце падрабязнасьці на [http://en.wikipedia.org/wiki/OpenID Wikipedia's OpenID article].)
+	'openidlogininstructions' => '{{SITENAME}} падтрымлівае стандарт [//openid.net/ OpenID], які дазваляе выкарыстоўваць адзіны рахунак для ўваходу ў розныя сайты без выкарыстаньня розных пароляў для кожнага зь іх.
+(Глядзіце падрабязнасьці ў [//en.wikipedia.org/wiki/OpenID артыкуле пра OpenID у Вікіпэдыі].)
 
-Калі Вы ўжо маеце рахунак у {{GRAMMAR:месны|{{SITENAME}}}}, Вы можаце [[Special:UserLogin|ўвайсьці]] з Вашым імем і паролем як звычайна.
-Каб выкарыстоўваць OpenID у будучыні, Вы можаце [[Special:OpenIDConvert|пераўтварыць Ваш рахунак у OpenID]] пасьля таго, як увайшлі звычайным чынам.
-
-Існуе шмат [http://openid.net/get/ OpenID сэрвісаў], у Вы, магчыма, ужо маеце OpenID рахунак у іншым сэрвісе.",
-	'openidupdateuserinfo' => 'Абнавіць маю асабістую інфармацыю',
-	'openid-prefstext' => 'Устаноўкі [http://openid.net/ OpenID]',
+Існуе шмат [//openid.net/get/ сэрвісаў OpenID], і Вы, магчыма, ужо маеце рахунак OpenID у іншым сэрвісе.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} дазваляе Вам уваход ''толькі'' з дапамогай OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Калі Вы ўжо маеце рахунак у {{GRAMMAR:месны|{{SITENAME}}}}, Вы можаце [[Special:UserLogin|ўвайсьці]] з Вашым імем і паролем як звычайна.
+Каб выкарыстоўваць OpenID у будучыні, Вы можаце [[Special:OpenIDConvert|пераўтварыць Ваш рахунак у OpenID]] пасьля таго, як увайшлі звычайным чынам.',
+	'openidupdateuserinfo' => 'Абнавіць маю асабістую інфармацыю:',
+	'openiddelete' => 'Выдаліць OpenID',
+	'openiddelete-text' => 'Націснуўшы кнопку «{{int:openiddelete-button}}» Вы выдаліце OpenID $1 з Вашага рахунку.
+Вы болей ня зможаце ўваходзіць у сыстэму з гэтым OpenID.',
+	'openiddelete-button' => 'Пацьвердзіць',
+	'openiddeleteerrornopassword' => 'Вы ня можаце выдаліць усе Вашыя OpenID, таму што Ваш рахунак ня мае паролю.
+Вы ня зможаце ўвайсьці ў сыстэму без OpenID.',
+	'openiddeleteerroropenidonly' => 'Вы ня можаце выдаліць усе Вашыя OpenID, таму што Вам дазволена ўваходзіць у сыстэму толькі праз OpenID.
+Вы ня зможаце ўвайсьці ў сыстэму без OpenID.',
+	'openiddelete-sucess' => 'OpenID быў пасьпяхова выдалены з Вашага рахунку.',
+	'openiddelete-error' => 'Адбылася памылка пад час выдаленьня OpenID з Вашага рахунку.',
+	'openid-openids-were-not-merged' => 'Рахункі OpenID ня былі аб’яднаныя падчас аб’яднаныя рахункаў.',
+	'openid-prefstext' => 'Налады [//openid.net/ OpenID]',
 	'openid-pref-hide' => 'Хаваць Ваш адрас OpenID на Вашай старонцы ўдзельніка, калі Вы ўвайшлі з дапамогай OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Абнаўляць маю інфармацыю з OpenID кожны раз калі я уваходжу ў сыстэму',
+	'openid-pref-update-userinfo-on-login' => 'Абнаўляць наступную інфармацыю з OpenID кожны раз, калі я уваходжу ў сыстэму:',
+	'openid-urls-desc' => 'OpenID зьвязаныя з Вашым рахункам:',
+	'openid-urls-action' => 'Дзеяньне',
+	'openid-urls-registration' => 'Час рэгістрацыі',
+	'openid-urls-delete' => 'Выдаліць',
+	'openid-add-url' => 'Дадаць новы OpenID',
+	'openid-login-or-create-account' => 'Увайсьці альбо стварыць новы рахунак',
+	'openid-provider-label-openid' => 'Увядзіце Ваш адрас OpenID',
+	'openid-provider-label-google' => 'Увайсьці з дапамогай Вашага рахунку ў Google',
+	'openid-provider-label-yahoo' => 'Увайсьці з дапамогай Вашага рахунку ў Yahoo',
+	'openid-provider-label-aol' => 'Увядзіце назву Вашага рахунку ў AOL',
+	'openid-provider-label-other-username' => 'Увядзіце Вашае імя ўдзельніка $1',
+	'specialpages-group-openid' => 'Старонка сэрвісу OpenID і інфармацыя пра статус',
+	'right-openid-dashboard-access' => 'стандартны доступ да панэлі кіраваньня OpenID',
+	'right-openid-dashboard-admin' => 'доступ адміністратара да панэлі кіраваньня OpenID',
+	'openid-dashboard-title' => 'Дошка OpenID',
+	'openid-dashboard-title-admin' => 'Панэль кіраваньня OpenID (адміністратар)',
+	'openid-dashboard-introduction' => 'Цяперашнія налады пашырэньня OpenID ([$1 дапамога])',
+	'openid-dashboard-number-openid-users' => 'Колькасьць удзельнікаў з OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Колькасьць OpenID (агульна)',
+	'openid-dashboard-number-users-without-openid' => 'Колькасьць удзельнікаў без OpenID',
 );
 
 /** Bulgarian (Български)
  * @author DCLXVI
+ * @author Spiritia
+ * @author Stanqo
  */
 $messages['bg'] = array(
 	'openidlogin' => 'Влизане с OpenID',
-	'openidfinish' => 'Приключване на OpenID влизането',
 	'openidserver' => 'OpenID сървър',
 	'openidxrds' => 'Yadis файл',
 	'openidconvert' => 'Конвертор за OpenID',
@@ -421,14 +799,16 @@
 	'openidfullname' => 'Име',
 	'openidemail' => 'Електронна поща',
 	'openidlanguage' => 'Език',
-	'openidnotavailable' => 'Избраното потребителско име ($1) вече се използва от друг потребител.',
+	'openidtimezone' => 'Часова зона',
+	'openidchooselegend' => 'Избиране на потребителско име и сметка',
 	'openidchooseinstructions' => 'Всички потребители трябва да имат потребителско име;
 можете да изберете своето от предложенията по-долу.',
 	'openidchoosefull' => 'Вашето пълно име ($1)',
 	'openidchooseauto' => 'Автоматично генерирано име ($1)',
 	'openidchoosemanual' => 'Име по избор:',
-	'openidchooseexisting' => 'Съществуваща сметка в това уики:',
-	'openidchoosepassword' => 'парола:',
+	'openidchooseexisting' => 'Съществуваща сметка в това уики',
+	'openidchooseusername' => 'Потребителско име:',
+	'openidchoosepassword' => 'Парола:',
 	'openidconvertinstructions' => 'Този формуляр позволява да се промени потребителската сметка да използва OpenID URL.',
 	'openidconvertsuccess' => 'Преобразуването в OpenID беше успешно',
 	'openidconvertsuccesstext' => 'Успешно преобразувахте вашият OpenID в $1.',
@@ -440,7 +820,7 @@
 	'openidnousername' => 'Не е посочено потребителско име.',
 	'openidbadusername' => 'Беше посочено невалидно име.',
 	'openidautosubmit' => 'Тази страница включва формуляр, който би трябвало да се изпрати автоматично ако Джаваскриптът е разрешен.
-Ако не е, можете да използвате бутона \\"Продължаване\\".',
+Ако не е, можете да използвате бутона "Continue" (Продължаване).',
 	'openidclientonlytext' => 'Не можете да използвате сметки от това уики като OpenID за друг сайт.',
 	'openidloginlabel' => 'OpenID Адрес',
 	'openidlogininstructions' => "{{SITENAME}} поддържа [http://openid.net/ OpenID] стандарта за single signon between Web sites.
@@ -456,16 +836,173 @@
 ; [http://openid.yahoo.com/ Yahoo!]: Ако имате сметка в Yahoo!, можете да влезете в този сайт като в кутията по-горе въведете вашето Yahoo! OpenID. Yahoo! OpenID адресите са от вида ''<nowiki>https://me.yahoo.com/yourusername</nowiki>''.
 ; [http://dev.aol.com/aol-and-63-million-openids AOL]: Ако притежавате сметка в [http://www.aol.com/ AOL], напр. в [http://www.aim.com/ AIM], можете да влезете в {{SITENAME}} като въведете в кутията по-горе вашето AOL OpenID. AOL OpenID адресите са от вида ''<nowiki>http://openid.aol.com/yourusername</nowiki>''. Потребителското име се изписва само с малки букви и без интервали.
 ; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox] : Ако имате блог в някоя от тези услуги, въведете адреса на блога си в кутията по-горе, напр. ''<nowiki>http://yourusername.blogspot.com/</nowiki>'', ''<nowiki>http://yourusername.wordpress.com/</nowiki>'', ''<nowiki>http://yourusername.livejournal.com/</nowiki>'' или ''<nowiki>http://yourusername.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'Скриване на <a href="http://openid.net/">OpenID</a> от потребителската страница ако влезете чрез OpenID.',
+	'openidupdateuserinfo' => 'Актуализиране на моите лични данни:',
+	'openiddelete' => 'Изтриване на OpenID',
+	'openiddelete-button' => 'Потвърждаване',
+	'openid-pref-hide' => 'Скриване на OpenID от потребителската страница ако влезете чрез OpenID.',
+	'openid-urls-action' => 'Действие',
+	'openid-urls-delete' => 'Изтриване',
+	'openid-add-url' => 'Добавяне на нов OpenID',
+	'openid-login-or-create-account' => 'Влизане или създаване на нова сметка',
+	'openid-provider-label-openid' => 'Въведете своя OpenID адрес',
+	'openid-provider-label-google' => 'Влизане чрез сметката в Google',
+	'openid-provider-label-other-username' => 'Въведете вашето $1 потребителско име',
 );
 
+/** Bengali (বাংলা)
+ * @author Bellayet
+ * @author Ehsanulhb
+ * @author Wikitanvir
+ */
+$messages['bn'] = array(
+	'openidlogin' => 'ওপেনআইডি-এর সাহায্য লগইন',
+	'openidserver' => 'ওপেনআইডি সার্ভার',
+	'openidxrds' => 'ইয়াদিস ফাইল',
+	'openiderror' => 'নিশ্চিতকরণ ত্রুটি',
+	'openidconfigerror' => 'ওপেন আইডি কনফিগারেশন ত্রুটি',
+	'openidpermission' => 'ওপেনআইডি অনুমতি ত্রুটি',
+	'openidcancel' => 'নিশ্চিতকরণ বাতিল করা হয়েছে',
+	'openidcanceltext' => 'ওপেনআইডি ইউআরএল-এর নিশ্চিতকরণ বাতিল করা হয়েছে।',
+	'openidfailure' => 'নিশ্চিতকরণ ব্যর্থ হয়েছে',
+	'openidsuccess' => 'নিশ্চিতকরণ সফল',
+	'openidsuccesstext' => 'ওপেনআইডি ইউআরএল-এর নিশ্চিতকরণ সফল।',
+	'openidusernameprefix' => 'ওপেনআইডিইউজার',
+	'openidoptional' => 'ঐচ্ছিক',
+	'openidrequired' => 'বাধ্যতামূলক',
+	'openidnickname' => 'ডাকনাম',
+	'openidfullname' => 'পূর্ণ নাম',
+	'openidemail' => 'ই-মেইল ঠিকানা',
+	'openidlanguage' => 'ভাষা',
+	'openidtimezone' => 'সময় স্থান',
+	'openidchooselegend' => 'ব্যবহারকারী নামের পছন্দ',
+	'openidchoosenick' => 'আপনার ডাকনাম ($1)',
+	'openidchoosefull' => 'আপনার পূর্ণ নাম ($1)',
+	'openidchooseusername' => 'ব্যবহারকারী নাম:',
+	'openidchoosepassword' => 'শব্দচাবি:',
+	'openidconvertsuccess' => 'সফলভাবে ওপেনআইডিতে রূপান্তর করা হয়েছে',
+	'openiddelete-button' => 'নিশ্চিত করুন',
+	'openid-urls-action' => 'অ্যাকশন',
+	'openid-urls-delete' => 'অপসারণ',
+	'openid-add-url' => 'একটি নতুন ওপেনআইডি যোগ করুন',
+	'openid-login-or-create-account' => 'প্রবেশ করুন অথবা নতুন অ্যকাউন্ট তৈরি করুন',
+	'openid-provider-label-openid' => 'আপনার ওপেনআইডি ইউআরএল প্রবেশ করান',
+	'openid-provider-label-google' => 'আপনার গুগল অ্যাকাউন্ট ব্যবহার করে প্রবেশ করুন',
+	'openid-provider-label-yahoo' => 'আপনার ইয়াহু অ্যাকাউন্ট ব্যবহার করে প্রবেশ করুন',
+	'openid-provider-label-aol' => 'আপনার এওএল স্ক্রিননাম প্রবেশ করান',
+	'openid-provider-label-other-username' => 'আপনার $1 ব্যবহাকারী নাম প্রবেশ করান',
+);
+
+/** Breton (Brezhoneg)
+ * @author Fohanno
+ * @author Fulup
+ * @author Gwenn-Ael
+ * @author Y-M D
+ */
+$messages['br'] = array(
+	'openid-desc' => "Kevreañ ouzh ar wiki gant [//openid.net/ OpenID] ha kevreañ ouzh lec'hiennoù OpenID all gant ur gont implijer wiki.",
+	'openidlogin' => 'Kevreañ / Krouiñ ur gont gant OpenID',
+	'openidserver' => 'Servijer OpenID',
+	'openidxrds' => 'Restr Yadis',
+	'openidconvert' => 'Amdroer OpenID',
+	'openiderror' => 'Fazi gwiriañ',
+	'openiderrortext' => 'Ur fazi a zo bet e-pad gwiriekadenn ar URL OpenID.',
+	'openidconfigerror' => 'Fazi kefluniadur OpenID',
+	'openidconfigerrortext' => "N'eo ket mat stokañ ar c'hefluniañ OpenID evit ar wiki-mañ.
+Kit e darempred, mar plij, gant unan eus [[Special:ListUsers/sysop|merourien ]] al lec'hienn-mañ.",
+	'openidpermission' => 'Fazi aotre OpenID',
+	'openidpermissiontext' => "N'eo ket aotreet an OpenID hoc'h eus roet da gevreañ war ar servijer-mañ.",
+	'openidcancel' => 'Gwiriekadur nullet',
+	'openidcanceltext' => "Nullet eo bet ar gwiriekadenn eus ar chomlec'h OpenID.",
+	'openidfailure' => "C'hwitet eo ar gwiriadur",
+	'openidfailuretext' => 'C\'hwitet eo bet gwiriekadenn ar chomlec\'h OpenID. Kemennadenn fazi : "$1"',
+	'openidsuccess' => 'Gwiriet pep tra ervat',
+	'openidsuccesstext' => "'''Gwiriet eo bet an troaù ervat, kevreet oc'h evel $1'''.
+
+$2 eo hoc'h OpenID.
+
+Gallout a rit merañ an OpenID-mañ ha re all diret dre an ivinell [[Special:Preferences#prefsection-openid|OpenID]] en ho Penndibaboù.<br />
+Gallout a rit ouzhpennañ ur ger-tremen kont diret en ho [[Special:Preferences#prefsection-personal|profil implijer]].",
+	'openidusernameprefix' => 'Implijer OpenID',
+	'openidserverlogininstructions' => "Goulenn a ra $3 e lakfec'h ho ker-tremen evit ho pajenn $1 implijer $2 (URL OpenID)",
+	'openidtrustinstructions' => "Gwiriañ ha c'hoant hoc'h eus da rannañ titouroù gant $1.",
+	'openidallowtrust' => 'Aotren $1 da fiziout er gont implijer-mañ.',
+	'openidnopolicy' => "N'en deus ket meneget al lec'hienn a bolitikerezh prevezded.",
+	'openidpolicy' => 'Gwiriañ <a target="_new" href="$1">ar bolitikerezh prevezded</a> evit muioc\'h a ditouroù.',
+	'openidoptional' => 'Diret',
+	'openidrequired' => 'Rekis',
+	'openidnickname' => 'Lesanv',
+	'openidfullname' => 'Anv klok',
+	'openidemail' => "Chomlec'h postel",
+	'openidlanguage' => 'Yezh',
+	'openidtimezone' => 'Takad eur :',
+	'openidchooselegend' => 'Dibab an anv implijer hag anv ar gont',
+	'openidchooseinstructions' => "An holl implijerien o deus ezhomm ul lesanv ;
+gellout a rit dibab unan eus ar c'hinnigoù a-is.",
+	'openidchoosenick' => 'Ho lesanv ($1)',
+	'openidchoosefull' => "Hoc'h anv klok ($1)",
+	'openidchooseurl' => "Un anv tapet eus hoc'h OpenID ($1)",
+	'openidchooseauto' => 'Un anv krouet emgefre ($1)',
+	'openidchoosemanual' => "Un anv dibabet ganeoc'h :",
+	'openidchooseexisting' => 'Ur gont zo anezhi war ar wiki-mañ',
+	'openidchooseusername' => 'Anv implijer :',
+	'openidchoosepassword' => 'Ger-tremen :',
+	'openidconvertinstructions' => "Gant ar furmskrid-se e c'hallit kemmañ ho kont implijer evit implijout ur chomlec'h OpenID pe evit ouzhpennañ chomlec'hioù OpenID.",
+	'openidconvertoraddmoreids' => "Amdreiñ da OpenID pe ouzhpennañ ur chomlec'h OpenID all",
+	'openidconvertsuccess' => 'Amdroet eo bet ervat davet OpenID',
+	'openidconvertsuccesstext' => "Amdroet hoc'h eus ho OpenID davet $1.",
+	'openidconvertyourstext' => "Hoc'h OpenID eo hemañ dija.",
+	'openidconvertothertext' => 'OpenID un implijer all eo hemañ.',
+	'openidalreadyloggedin' => "Kevreet oc'h c'hoazh.",
+	'openidalreadyloggedintext' => "'''Kevreet oc'h c'hoazh, $1!'''
+
+Gallout a rit merañ (gwelet, diverkañ, ouzhpennañ) OpenIDoù all en ivinell [[Special:Preferences#prefsection-openid|OpenID]] ho penndibaboù.",
+	'openidnousername' => "N'eus bet diferet anv implijer ebet.",
+	'openidbadusername' => 'Un anv implijer fall zo bet lakaet.',
+	'openidautosubmit' => "Er bajenn-mañ ez eus ur furmskrid hag a c'hallfe bezañ kaset emgefre m'hoc'h eus gweredekaet JavaScript.
+Ma n'eus ket, pouezit war ar bouton \"Continue\" (kenderc'hel).",
+	'openidclientonlytext' => "Ne c'hallit ket implijout kontoù adalek ar wiki-mañ evel OpenID war lec'hiennoù all.",
+	'openidloginlabel' => 'URL OpenID',
+	'openidlogininstructions' => "{{SITENAME}} a embreg an [//openid.net/ OpenID] stantard evit ur sinadur hepken etre al lec'hiennoù Kenrouedad.
+Gant OpenID e c'hallit kevreañ ouzh lec'hiennoù disheñvel hep implijout ur ger-tremen disheñvel evit pep hini anezho.
+(Gwelit [//br.wikipedia.org/wiki/OpenID pennad Wikipedia] evit gouzout hiroc'h.)
+
+M'ho peus ur gont dija war {{SITENAME}} e c'hallit [[Special:UserLogin|kevreañ]] ouzh ho kont implijer hag ar ger-tremen boas anezhi. Evit implijout OpenID, en dazont, e c'hallit [[Special:OpenIDConvert|amdreiñ ho kont en OpenID]] goude bezañ kevreet ent reizh.
+
+Meur a [//openid.net/get/ bourchaser OpenID] ; gallout a rit neuze kaout ur gont OpenID gweredekaet war ur servij all dija.",
+	'openidupdateuserinfo' => 'Hizivaat ma zitouroù personel :',
+	'openiddelete' => 'Dilemel an OpenID',
+	'openiddelete-text' => 'En ur glikañ war ar bouton "{{int:openiddelete-button}}" e c\'hallit dilemel an OpenID $1 eus ho kont.
+Ne c\'hallit ket mui kevreañ ouzh an OpenID-mañ.',
+	'openiddelete-button' => 'Kadarnaat',
+	'openiddeleteerrornopassword' => "Ne c'hallit ket dilemel hoc'h holl OpenID abalamour ma n'eus ger-tremen ebet gant ho kont.
+Ne c'hallfec'h ket kevreañ hep OpenID.",
+	'openiddeleteerroropenidonly' => "Ne c'hallit ket dilemel hoc'h holl OpenID abalamour ma ne c'hallit kevreañ nemet gant hoc'h OpenID.
+Ne c'hallfec'h ket kevreañ hep OpenID.",
+	'openiddelete-sucess' => 'Tennet eo bet ervat an OpenID eus ho kont.',
+	'openiddelete-error' => "Ur fazi a zo bet pa oac'h o klask tennañ an OpenID eus ho kont.",
+	'openid-prefstext' => 'Penndibaboù an [//openid.net/ OpenID]',
+	'openid-pref-hide' => "Kuzhit hoc'h OpenID war ho pajenn implijer, ma kevreit gant OpenID.",
+	'openid-pref-update-userinfo-on-login' => "Hizivaat ar roadennoù da heul adalek OpenID bep tro m'en em lugan :",
+	'openid-urls-desc' => 'An OpenIDoù stag ouzh ho kont :',
+	'openid-urls-action' => 'Ober',
+	'openid-urls-delete' => 'Dilemel',
+	'openid-add-url' => 'Ouzhpennañ un OpenID nevez',
+	'openid-login-or-create-account' => 'Kevreañ pe krouiñ ur gont nevez',
+	'openid-provider-label-openid' => "Ebarzhit hoc'h URL OpenID",
+	'openid-provider-label-google' => 'Kevreañ dre ho kont Google',
+	'openid-provider-label-yahoo' => 'Kevreañ dre ho kont Yahoo',
+	'openid-provider-label-aol' => "Ebarzhit hoc'h anv AOL",
+	'openid-provider-label-other-username' => "Ebarzhit hoc'h anv implijer $1",
+	'openid-dashboard-number-openid-users' => 'Niver a implijerien gant OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Niver a OpenIDoù (hollad)',
+);
+
 /** Bosnian (Bosanski)
  * @author CERminator
  */
 $messages['bs'] = array(
-	'openid-desc' => 'Prijava na wiki sa [http://openid.net/ OpenID] i prijava na druge stranice koje podržavaju OpenID sa wiki korisničkim računom',
-	'openidlogin' => 'Prijava sa OpenID',
-	'openidfinish' => 'Završi OpenID prijavu',
+	'openid-desc' => 'Prijava na wiki sa [//openid.net/ OpenID] i prijava na druge stranice koje podržavaju OpenID sa wiki korisničkim računom',
+	'openidlogin' => 'Prijava / napravite račun sa OpenID',
 	'openidserver' => 'OpenID server',
 	'openidxrds' => 'Yadis datoteka',
 	'openidconvert' => 'OpenID pretvarač',
@@ -473,7 +1010,7 @@
 	'openiderrortext' => 'Desila se greška pri provjeri OpenID URL adrese.',
 	'openidconfigerror' => 'Greška OpenID postavki',
 	'openidconfigerrortext' => 'OpenID konfiguracija spremanja za ovaj wiki je nevaljana. 
-Molimo konsultujte se sa [[Special:Listusers/sysop|administratorom]].',
+Molimo konsultujte se sa [[Special:ListUsers/sysop|administratorom]].',
 	'openidpermission' => 'Greška kod OpenID dopuštenja',
 	'openidpermissiontext' => 'OpenID koji ste naveli nije dopušteno da se prijavi na ovaj server.',
 	'openidcancel' => 'Provjera poništena',
@@ -481,9 +1018,13 @@
 	'openidfailure' => 'Potvrda nije uspjela',
 	'openidfailuretext' => 'Provjera URL-a za OpenID nije uspjela. Poruka greške: "$1"',
 	'openidsuccess' => 'Provjera uspješna',
-	'openidsuccesstext' => 'Provjera URL-a za OpenID je uspjela.',
+	'openidsuccesstext' => "'''Uspješna provjera i prijava kao korisnika $1'''.
+
+Vaš OpenID je $2 .
+
+Ovaj i daljnji OpenIDevi, te neobavezna šifra računa, može biti postavljena u vašim [[Special:Preferences|postavkama]].",
 	'openidusernameprefix' => 'OpenIDKorisnik',
-	'openidserverlogininstructions' => 'Unesite ispod Vašu šifru da biste se prijavili na $3 kao korisnik $2 (korisnička stranica $1).',
+	'openidserverlogininstructions' => '$3 zahtijeca da unesete Vašu šifru za vašu $2 korisničku stranicu $1 (Ovo je vaš OpenID URL).',
 	'openidtrustinstructions' => 'Provjerite da li želite dijeliti podatke sa $1.',
 	'openidallowtrust' => 'Omogući $1 da vjeruje ovom korisničkom računu.',
 	'openidnopolicy' => 'Sajt nema napisana pravila privatnosti.',
@@ -494,50 +1035,109 @@
 	'openidfullname' => 'Puno ime',
 	'openidemail' => 'E-mail adresa',
 	'openidlanguage' => 'Jezik',
-	'openidnotavailable' => 'Vaš odabrani nadimak ($1) je već upotrijebio drugi korisnik.',
-	'openidnotprovided' => 'Vaš OpenID server nije poslao nadimak (bilo da ne može ili da ste ga Vi spriječili).',
+	'openidtimezone' => 'Vremenska zona',
+	'openidchooselegend' => 'Odabir korisničkog imena i računa',
 	'openidchooseinstructions' => 'Svi korisnici trebaju imati nadimak;
 možete odabrati jedan sa opcijama ispod.',
+	'openidchoosenick' => 'Vaš nadimak ($1)',
 	'openidchoosefull' => 'Vaše puno ime ($1)',
 	'openidchooseurl' => 'Ime uzeto sa Vašeg OpenID ($1)',
 	'openidchooseauto' => 'Automatski generisano ime ($1)',
 	'openidchoosemanual' => 'Naziv po Vašem izboru:',
-	'openidchooseexisting' => 'Postojeći račun na ovoj wiki:',
-	'openidchoosepassword' => 'šifra:',
-	'openidconvertinstructions' => 'Ovaj obrazac Vam omogućuje da promijeniti Vaš korisnički račun za upotrebu URL OpenID.',
+	'openidchooseexisting' => 'Postojeći račun na ovoj wiki',
+	'openidchooseusername' => 'korisničko ime:',
+	'openidchoosepassword' => 'Šifra:',
+	'openidconvertinstructions' => 'Ovaj obrazac Vam omogućuje da promijenite Vaš korisnički račun za upotrebu URL OpenID ili da dodate više OpenID URLova',
+	'openidconvertoraddmoreids' => 'Pretvorite u OpenID ili dodajte drugi OpenID URL',
 	'openidconvertsuccess' => 'Uspješno prevedeno u OpenID',
 	'openidconvertsuccesstext' => 'Uspješno ste pretvorili Vaš OpenID u $1.',
 	'openidconvertyourstext' => 'To je već Vaš OpenID.',
 	'openidconvertothertext' => 'To je OpenID koji pripada nekom drugom.',
-	'openidalreadyloggedin' => "'''Vi ste već prijavljeni, $1!'''
-
-Ako želite da koristite OpenID za buduće prijave, možete [[Special:OpenIDConvert|promijeniti Vaš račun za upotrebu OpenID]].",
+	'openidalreadyloggedin' => 'Već ste prijavljeni.',
 	'openidnousername' => 'Nije navedeno korisničko ime.',
 	'openidbadusername' => 'Navedeno loše korisničko ime.',
-	'openidautosubmit' => 'Ova stranica uključuje obrazac koji bi se trebao automatski poslati ako je kod Vas omogućena JavaScript. Ako nije, pokušajte nastaviti dalje putem dugmeta \\"Continue\\".',
+	'openidautosubmit' => 'Ova stranica uključuje obrazac koji bi se trebao automatski poslati ako je kod Vas omogućena JavaScript. Ako nije, pokušajte nastaviti dalje putem dugmeta "Continue".',
 	'openidclientonlytext' => 'Ne možete koristiti račune sa ove wiki kao OpenID na drugom sajtu.',
 	'openidloginlabel' => 'OpenID URL adresa',
-	'openidlogininstructions' => '{{SITENAME}} podržava [http://openid.net/ OpenID] standard za jedinstvenu prijavu između web sajtova.
+	'openidlogininstructions' => '{{SITENAME}} podržava [//openid.net/ OpenID] standard za jedinstvenu prijavu između web sajtova.
 OpenID omogućuje da se prijavite na mnoge različite web stranice bez korištenja različitih šifri za svaku od njih.
-(Pogledajte [http://en.wikipedia.org/wiki/OpenID članak na Wikipediji o OpenID-u] za više informacija.)
+(Pogledajte [//en.wikipedia.org/wiki/OpenID članak na Wikipediji o OpenID-u] za više informacija.)
 
-Ako već imate račun na {{SITENAME}}, možete se [[Special:UserLogin|prijaviti]] sa vašim korisničkim imenom i šifrom kao i uvijek.
-Da bi koristili OpenID u buduće, možete [[Special:OpenIDConvert|pretvoriti vaš račun u OpenID]] nakon što se normalno prijavite.
-
 Postoji mnogo [http://wiki.openid.net/Public_OpenID_providers javnih provajdera za OpenID], i možda već imate neki račun na drugom servisu koji podržava OpenID.',
-	'openidupdateuserinfo' => 'Ažuriraj moje lične informacije',
-	'openid-prefstext' => '[http://openid.net/ OpenID] postavke',
-	'openid-pref-hide' => 'Sakrij Vaš <a href="http://openid.net/">OpenID</a> na Vašoj korisničkoj stranici, ako ste prijavljeni sa OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Ažuriraj moje informacije sa OpenID identiteta svaki put kad se prijavim',
+	'openidupdateuserinfo' => 'Ažuriraj moje lične informacije:',
+	'openiddelete' => 'Obriši OpenID',
+	'openiddelete-text' => 'Klikanjem na dugme "{{int:openiddelete-button}}" uklonićete OpenID $1 sa vašeg računa.
+Nećete više biti u mogućnosti da se prijavite s ovim OpenID.',
+	'openiddelete-button' => 'Potvrdi',
+	'openiddeleteerrornopassword' => 'Ne možete obrisati sve vaše OpenID jer vaš račun nema šifre.
+Neće se moći prijaviti bez OpenID.',
+	'openiddeleteerroropenidonly' => 'Ne možete obrisati sve vaše OpenID jer vam je omogućeno da se prijavite samo sa OpenID.
+Bez OpenId nećete moći da se prijavite.',
+	'openiddelete-sucess' => 'OpenID je uspješno uklonjen sa vašeg računa.',
+	'openiddelete-error' => 'Desila se greška pri uklanjanju OpenID sa vašeg računa.',
+	'openid-prefstext' => '[//openid.net/ OpenID] postavke',
+	'openid-pref-hide' => 'Sakrij Vaš OpenID na Vašoj korisničkoj stranici, ako ste prijavljeni sa OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Ažuriraj slijedeće informacije sa OpenID identiteta svaki put kad se prijavim:',
+	'openid-urls-desc' => 'OpenIDovi pridruženi vašem računu:',
+	'openid-urls-action' => 'Akcija',
+	'openid-urls-delete' => 'Obriši',
+	'openid-add-url' => 'Dodaj novi OpenID',
+	'openid-login-or-create-account' => 'Prijavite se ili napravite novi račun',
+	'openid-provider-label-openid' => 'Unesite Vaš OpenID URL',
+	'openid-provider-label-google' => 'Prijava putem Vašeg Google računa',
+	'openid-provider-label-yahoo' => 'Prijava putem Vašeg Yahoo računa',
+	'openid-provider-label-aol' => 'Unesite svoj AOL nadimak',
+	'openid-provider-label-other-username' => 'Unesite Vaše $1 korisničko ime',
+	'openid-dashboard-number-openid-users' => 'Broj korisnika sa OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Broj OpenID-eva (ukupno)',
 );
 
+/** Catalan (Català)
+ * @author Paucabot
+ * @author SMP
+ * @author Solde
+ * @author Toniher
+ */
+$messages['ca'] = array(
+	'openid-desc' => 'Inicieu una sessió al wiki amb un [//openid.net/ OpenID], i inicieu una sessió a qualsevol lloc web compatible amb OpenID amb el vostre compte wiki',
+	'openidlogin' => 'Inicia una sessió amb OpenID',
+	'openidserver' => 'Servidor OpenID',
+	'openidxrds' => 'Fitxer Yadis',
+	'openidconvert' => 'Conversor OpenID',
+	'openiderror' => 'Error de verificació',
+	'openidfailure' => 'Verificació fallida',
+	'openidusernameprefix' => 'Usuari OpenID',
+	'openidoptional' => 'Opcional',
+	'openidrequired' => 'Requerit',
+	'openidnickname' => 'Sobrenom',
+	'openidfullname' => 'Nom complet',
+	'openidemail' => 'Adreça de correu electrònic',
+	'openidlanguage' => 'Idioma',
+	'openidtimezone' => 'Zona horaria',
+	'openidchooseinstructions' => 'Tots els usuaris cal que tinguin un sobrenom;
+podeu triar-ne un de les opcions a continuació.',
+	'openidchoosefull' => 'El vostre nom complet ($1)',
+	'openidchooseexisting' => 'Un compte existent en aquesta wiki',
+	'openidchoosepassword' => 'Contrasenya',
+	'openid-urls-action' => 'Acció',
+	'openid-urls-delete' => 'Elimina',
+	'openid-provider-label-other-username' => "Introduïu el vostre $1 nom d'usuari",
+);
+
+/** Sorani (کوردی) */
+$messages['ckb'] = array(
+	'openiddelete-button' => 'پشتدار بکەرەوە',
+	'openid-urls-delete' => 'سڕینەوە',
+);
+
 /** Czech (Česky)
+ * @author Kuvaly
  * @author Matěj Grabovský
+ * @author Mormegil
  */
 $messages['cs'] = array(
-	'openid-desc' => 'Přihlaste se na wiki pomocí [http://openid.net OpenID] a přihlaste se na jiné stránky podporující OpenID pomocí uživatelského účtu wiki',
-	'openidlogin' => 'Přihlásit se pomocí OpenID',
-	'openidfinish' => 'Dokončit přihlášení pomocí OpenID',
+	'openid-desc' => 'Přihlašování se na wiki pomocí [//openid.net/ OpenID] a přihlašování se na jiné stránky podporující OpenID pomocí uživatelského účtu z wiki',
+	'openidlogin' => 'Přihlášení pomocí OpenID',
 	'openidserver' => 'OpenID server',
 	'openidxrds' => 'Soubor Yadis',
 	'openidconvert' => 'OpenID konvertor',
@@ -564,43 +1164,66 @@
 	'openidrequired' => 'Požadované',
 	'openidnickname' => 'Přezdívka',
 	'openidfullname' => 'Celé jméno',
-	'openidemail' => 'E-mailová adresa:',
+	'openidemail' => 'E-mailová adresa',
 	'openidlanguage' => 'Jazyk',
-	'openidnotavailable' => 'Vaši preferovanou přezdívku ($1) už používá jiný uživatel.',
-	'openidnotprovided' => 'Váš OpenID server neposkytnul přezdívku (buď protože nemůže, nebo protože jste mu určili aby ji neposkytoval).',
+	'openidtimezone' => 'Časové pásmo',
+	'openidchooselegend' => 'Volba uživatelského jména',
 	'openidchooseinstructions' => 'Kyždý uživatel musí mít přezdívku; můžete si vybrat z níže uvedených možností.',
+	'openidchoosenick' => 'Vaše přezdívka ($1)',
 	'openidchoosefull' => 'Vaše celé jméno ($1)',
 	'openidchooseurl' => 'Jméno na základě vašeho OpenID ($1)',
 	'openidchooseauto' => 'Automaticky vytvořené jméno ($1)',
 	'openidchoosemanual' => 'Jméno, které si vyberete:',
-	'openidchooseexisting' => 'Existující účet na této wiki:',
-	'openidchoosepassword' => 'heslo:',
-	'openidconvertinstructions' => 'Tento formulář vám umožňuje změnit váš učet, aby používal OpenID URL.',
+	'openidchooseexisting' => 'Existující účet na této wiki',
+	'openidchooseusername' => 'Uživatelské jméno:',
+	'openidchoosepassword' => 'Heslo:',
+	'openidconvertinstructions' => 'Tento formulář vám umožňuje změnit váš učet, aby používal OpenID URL, nebo přidat více URL OpenID.',
+	'openidconvertoraddmoreids' => 'Převést na OpenID nebo přidat jinou OpenID URL',
 	'openidconvertsuccess' => 'Úspěšně převedeno na OpenID',
 	'openidconvertsuccesstext' => 'Úspěšně jste převedli váš OpenID na $1.',
 	'openidconvertyourstext' => 'To už je váš OpenID.',
 	'openidconvertothertext' => 'To je OpenID někoho jiného.',
-	'openidalreadyloggedin' => "'''Už jste přihlášený, $1!'''
+	'openidalreadyloggedin' => "'''Už jste {{GENDER:$1|přihlášen, uživateli|přihlášena, uživatelko|přihlášen, uživateli}} $1!'''
 
-Pokud chcete pro přihlašování v budoucnu používat OpenID, můžete [[Special:OpenIDConvert|převést váš účet na OpenID]].",
+Pokud chcete pro přihlašování v budoucnu používat OpenID, můžete [[Special:OpenIDConvert|svůj účet převést na OpenID]].",
 	'openidnousername' => 'Nebylo zadáno uživatelské jméno.',
 	'openidbadusername' => 'Bylo zadáno chybné uživatelské jméno.',
 	'openidautosubmit' => 'Tato stránka obsahuje formulář, který by měl být automaticky odeslán pokud máte zapnutý JavaScript.
-Pokud ne, zkuste tlačátko „Pokračovat“.',
+Pokud ne, zkuste tlačátko „Continue“ (Pokračovat).',
 	'openidclientonlytext' => 'Nemůžete používat účty z této wiki jako OpenID na jinýh webech.',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => "{{SITENAME}} podporuje standard [http://openid.net/ OpenID] pro sjednocené přihlašování na webové stránky.
-OpenID vám umožňuje přihlašovat se na množství různých webových stránek bez nutnosti používat pro každou jiné heslo. (Přečtěte si [http://en.wikipedia.org/wiki/OpenID článek o OpenID na Wikipedii])
+	'openidlogininstructions' => '{{SITENAME}} podporuje standard [//openid.net/ OpenID] pro sjednocené přihlašování na webové stránky.
+OpenID vám umožňuje přihlašovat se na množství různých webových stránek bez nutnosti používat pro každou jiné heslo.
+(Více informací se dočtete v [//en.wikipedia.org/wiki/OpenID článku o OpenID na Wikipedii].)
 
-Pokud už máte na {{GRAMMAR:6sg|{{SITENAME}}}} učet, můžete se [[Special:UserLogin|přihlásit]] pomocí uživatelského jména a heslo jako obvykle. Pokud chcete v budoucnosti pouívat OpenID, můžete po normálním přihlášení [[Special:OpenIDConvert|převést svůj účet na OpenID]].
+Pokud už máte na {{GRAMMAR:6sg|{{SITENAME}}}} účet, můžete se [[Special:UserLogin|přihlásit]] pomocí uživatelského jména a hesla jako obvykle.
+Pokud chcete v budoucnosti používat OpenID, můžete po normálním přihlášení [[Special:OpenIDConvert|převést svůj účet na OpenID]].
 
-Existuje množství [http://wiki.openid.net/Public_OpenID_providers veřejných poskytovatelů OpenID] a možná už máte učet s podporou OpenID u jiného poskytovatele.
-
-; Jiné wiki: Pokud máte účet na wiki s podporou OpenID, jako např. [http://wikitravel.org/ Wikitravel], [http://www.wikihow.com/ wikiHow], [http://vinismo.com/ Vinismo], [http://aboutus.org/ AboutUs] nebo [http://kei.ki/ Keiki], můžete se přihlásit na {{GRAMMAR:4sg|{{SITENAME}}}}
-; [http://openid.yahoo.com/ Yahoo!]: Pokud máte učet Yahoo!, můžete se na tuto wiki přihlásit zadáním vašeho OpenID, které poskytuje Yahoo!, do pole výše. Yahoo! OpenID URL bývají ve tvaru ''<nowiki>https://me.yahoo.com/uzivatelskejmeno</nowiki>''.
-; [http://dev.aol.com/aol-and-63-million-openids AOL]: Pokud máte účet [http://www.aol.com/ AOL], jako například účet [http://www.aim.com/ AIM], můžete se přihlásit na {{GRAMMAR:4sg|{{SITENAME}}}} zadáním vaeho OpenID, které poskytuje AOL, do pole výše. AOL OpenID URL bývají ve tvaru ''<nowiki>http://openid.aol.com/uzivatelskejmeno</nowiki>''. Vaše uživatelské jméno by mělo mít jen malá písmena a žádné mezery.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox]: Pokud máte blog na některé z této služeb, zadejte do pole výše URL svého blogu. Například ''<nowiki>http://uzivatelskejmeno.blogspot.com/</nowiki>'', ''<nowiki>http://uzivatelskejmeno.wordpress.com/</nowiki>'', ''<nowiki>http://uzivatelskejmeno.livejournal.com/</nowiki>'' nebo ''<nowiki>http://uzivatelskejmeno.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'Nezobrazovat váš <a href="http://openid.net/">OpenID</a> na vaší uživatelské stránce pokud se přihlašujete pomocí OpenID.',
+Existuje množství [//openid.net/get/ poskytovatelů OpenID], možná už také máte účet s podporou OpenID v rámci jiné služby.',
+	'openidupdateuserinfo' => 'Aktualizovat moje osobní informace:',
+	'openiddelete' => 'Smazat OpenID',
+	'openiddelete-text' => 'Kliknutím na tlačítko „{{int:openiddelete-button}}“ odstraníte OpenID $1 z vašeho účtu.
+Nebudete se již moci tímto OpenID přihlasít.',
+	'openiddelete-button' => 'Potvrdit',
+	'openiddeleteerrornopassword' => 'Nemůžete smazat všechna svá OpenID, protože váš účet nemá heslo.
+Bez OpenID byste se {{GENDER:|nebyl schopen|nebyla schopna|nebyli schopni}} přihlásit.',
+	'openiddeleteerroropenidonly' => 'Nemůžete smazat všechna svá OpenID, protože přihlášení je dovoleno pouze pomocí OpenID.
+Bez OpenID byste se {{GENDER:|nebyl schopen|nebyla schopna|nebyli schopni}} přihlásit.',
+	'openiddelete-sucess' => 'OpenID bylo úspěšně odstraněno z vašeho účtu.',
+	'openiddelete-error' => 'Během odstraňování OpenID z vašeho účtu se vyskytla chyba.',
+	'openid-prefstext' => 'Nastavení [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Nezobrazovat OpenID na vaší uživatelské stránce, pokud se přihlašujete pomocí OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Aktualizovat následující informace z OpenID identity vždy, když se přihlásím:',
+	'openid-urls-desc' => 'OpenID asociovaná s vaším účtem:',
+	'openid-urls-action' => 'Operace',
+	'openid-urls-delete' => 'Smazat',
+	'openid-add-url' => 'Přidat nové OpenID',
+	'openid-login-or-create-account' => 'Přihlásit se nebo vytvořit nový účet',
+	'openid-provider-label-openid' => 'Zadejte URL svého OpenID',
+	'openid-provider-label-google' => 'Přihlásit se pomocí Google účtu',
+	'openid-provider-label-yahoo' => 'Přihlásit se pomocí Yahoo účtu',
+	'openid-provider-label-aol' => 'Přihlásit se pomocí AOL účtu',
+	'openid-provider-label-other-username' => 'Zadejte svoje uživatelské jméno pro $1',
 );
 
 /** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
@@ -610,25 +1233,57 @@
 	'openidlanguage' => 'ѩꙁꙑ́къ',
 );
 
+/** Welsh (Cymraeg)
+ * @author (vinny)
+ */
+$messages['cy'] = array(
+	'openidoptional' => 'Dewisol',
+);
+
 /** Danish (Dansk)
+ * @author Froztbyte
  * @author Jon Harald Søby
  */
 $messages['da'] = array(
+	'openidserver' => 'OpenID-server',
+	'openidxrds' => 'Yadis-fil',
+	'openiderror' => 'Bekræftelsesfejl',
+	'openidcancel' => 'Bekræftelse annulleret',
+	'openidusernameprefix' => 'OpenID-bruger',
+	'openidrequired' => 'Påkrævet',
 	'openidnickname' => 'Kaldenavn',
 	'openidlanguage' => 'Sprog',
-	'openidchoosepassword' => 'adgangskode:',
+	'openidchooseinstructions' => 'Alle brugere skal have et brugernavn;
+du kan vælge et fra nedenstående muligheder.',
+	'openidchooseusername' => 'Brugernavn:',
+	'openidchoosepassword' => 'Adgangskode:',
+	'openidnousername' => 'Intet brugernavn angivet.',
+	'openidbadusername' => 'Ugyldigt brugernavn angivet.',
+	'openidloginlabel' => 'OpenID-adresse',
+	'openiddelete' => 'Slet OpenID',
+	'openiddelete-button' => 'Bekræft',
+	'openiddelete-sucess' => 'OpenID er blevet fjernet fra din konto.',
+	'openid-urls-action' => 'Handling',
+	'openid-urls-delete' => 'Slet',
+	'openid-add-url' => 'Tilføj en ny OpenID',
+	'openid-provider-label-aol' => 'Indtast dit AOL-brugernavn',
 );
 
 /** German (Deutsch)
  * @author ChrisiPK
  * @author Church of emacs
+ * @author DaSch
+ * @author Kghbln
+ * @author LWChris
  * @author Leithian
+ * @author Tbleher
+ * @author The Evil IP address
  * @author Umherirrender
+ * @author Wikinaut
  */
 $messages['de'] = array(
-	'openid-desc' => 'Anmeldung an dieses Wiki mit einer [http://openid.net/ OpenID] und anmelden an anderen Websites, die OpenID unterstützen, mit einem Wiki-Benutzerkonto.',
-	'openidlogin' => 'Anmelden mit OpenID',
-	'openidfinish' => 'OpenID-Anmeldung abschließen',
+	'openid-desc' => 'Erlaubt die Anmeldung mit einer [//openid.net/ OpenID]. Sofern es für dieses Wiki aktiviert wurde, kann man sich auch mit seinem Benutzerkonto (dieses Wikis) als OpenID bei anderen Websites per OpenID anmelden',
+	'openidlogin' => 'Anmelden / Benutzerkonto erstellen mit OpenID',
 	'openidserver' => 'OpenID-Server',
 	'openidxrds' => 'Yadis-Datei',
 	'openidconvert' => 'OpenID-Konverter',
@@ -644,63 +1299,169 @@
 	'openidfailure' => 'Überprüfungsfehler',
 	'openidfailuretext' => 'Die Überprüfung der OpenID-URL ist fehlgeschlagen. Fehlermeldung: „$1“',
 	'openidsuccess' => 'Überprüfung erfolgreich beendet',
-	'openidsuccesstext' => 'Die Überprüfung der OpenID-URL war erfolgreich.',
+	'openidsuccesstext' => "'''Die Überprüfung sowie die Anmeldung als Benutzer $1 war erfolgreich.'''
+
+Deine OpenID lautet $2.
+
+Diese und weitere OpenIDs können unter dem Reiter [[Special:Preferences#prefsection-openid|OpenID]] deiner Kontoeinstellungen verwaltet werden.<br />
+Ein fakultatives Benutzerkontopasswort kann hingegen unter dem Reiter [[Special:Preferences#prefsection-personal|Benutzerdaten]] deiner Kontoeinstellungen festgelegt werden.",
 	'openidusernameprefix' => 'OpenID-Benutzer',
-	'openidserverlogininstructions' => 'Gib dein Passwort unten ein, um dich als Benutzer $2 an $3 anzumelden (Benutzerseite $1).',
+	'openidserverlogininstructions' => '$3 erfordert die Eingabe deines Passworts für dein Benutzerkonto $2 auf der Seite $1 (OpenID-URL)',
 	'openidtrustinstructions' => 'Prüfe, ob du Daten mit $1 teilen möchtest.',
 	'openidallowtrust' => 'Erlaube $1, diesem Benutzerkonto zu vertrauen.',
 	'openidnopolicy' => 'Die Seite hat keine Datenschutzrichtlinie angegeben.',
 	'openidpolicy' => 'Prüfe die <a target="_new" href="$1">Datenschutzrichtlinie</a> für weitere Informationen.',
 	'openidoptional' => 'Optional',
-	'openidrequired' => 'Pflicht',
+	'openidrequired' => 'Erforderlich',
 	'openidnickname' => 'Benutzername',
-	'openidfullname' => 'Vollständiger Name',
-	'openidemail' => 'E-Mail-Adresse:',
+	'openidfullname' => 'Bürgerlicher Name',
+	'openidemail' => 'E-Mail-Adresse',
 	'openidlanguage' => 'Sprache',
-	'openidnotavailable' => 'Dein bevorzugter Benutzername ($1) wird bereits von einem anderen Benutzer verwendet.',
-	'openidnotprovided' => 'Dein OpenID-Server unterstützt keine Nicknamen (entweder, weil er es nicht kann, oder weil du es ihm nicht erlaubt hast).',
+	'openidtimezone' => 'Zeitzone',
+	'openidchooselegend' => 'Wahl des Benutzernamens und Benutzerkontos',
 	'openidchooseinstructions' => 'Alle Benutzer benötigen einen Benutzernamen;
 du kannst einen aus der untenstehenden Liste auswählen.',
-	'openidchoosefull' => 'Dein vollständiger Name ($1)',
+	'openidchoosenick' => 'Dein Spitzname ($1)',
+	'openidchoosefull' => 'Dein bürgerlicher Name ($1)',
 	'openidchooseurl' => 'Ein Name aus deiner OpenID ($1)',
 	'openidchooseauto' => 'Ein automatisch erzeugter Name ($1)',
 	'openidchoosemanual' => 'Ein Name deiner Wahl:',
-	'openidchooseexisting' => 'Ein existierendes Benutzerkonto in diesem Wiki:',
+	'openidchooseexisting' => 'Ein existierendes Benutzerkonto in diesem Wiki',
+	'openidchooseusername' => 'Benutzername:',
 	'openidchoosepassword' => 'Passwort:',
-	'openidconvertinstructions' => 'Mit diesem Formular kannst du dein Benutzerkonto zur Benutzung einer OpenID-URL freigeben.',
+	'openidconvertinstructions' => 'Mit diesem Formular kannst du dein Benutzerkonto zur Benutzung mit deiner OpenID-URL freigeben oder eine weitere OpenID-URL hinzufügen.',
+	'openidconvertoraddmoreids' => 'Zu OpenID konvertieren oder eine andere OpenID-URL hinzufügen',
 	'openidconvertsuccess' => 'Erfolgreich nach OpenID konvertiert',
 	'openidconvertsuccesstext' => 'Du hast die Konvertierung deiner OpenID nach $1 erfolgreich durchgeführt.',
 	'openidconvertyourstext' => 'Dies ist bereits deine OpenID.',
 	'openidconvertothertext' => 'Dies ist die OpenID von jemand anderem.',
-	'openidalreadyloggedin' => "'''Du bist bereits angemeldet, $1!'''
+	'openidalreadyloggedin' => 'Du bist bereits angemeldet.',
+	'openidalreadyloggedintext' => "'''Du bist bereits angemeldet, $1.'''
 
-Wenn du OpenID für künftige Anmeldevorgänge nutzen möchtest, kannst du [[Special:OpenIDConvert|dein Benutzerkonto nach OpenID konvertieren]].",
+Du kannst diese und weitere OpenIDs unter dem Reiter [[Special:Preferences#prefsection-openid|OpenID]] deiner Kontoeinstellungen verwalten (ansehen, löschen sowie weitere hinzufügen).",
 	'openidnousername' => 'Kein Benutzername angegeben.',
 	'openidbadusername' => 'Falscher Benutzername angegeben.',
-	'openidautosubmit' => 'Diese Seite enthält ein Formular, das automatisch übertragen wird, wenn JavaSkript aktiviert ist. Falls nicht, klicke bitte auf „Weiter“.',
-	'openidclientonlytext' => 'Du kannst keine Benutzerkonten aus diesem Wiki als OpenID für andere Seiten verwenden.',
+	'openidautosubmit' => 'Diese Seite enthält ein Formular, das automatisch übertragen wird, wenn JavaSkript aktiviert ist. Falls nicht, klicke bitte auf „Continue“ (Weiter).',
+	'openidclientonlytext' => 'Du kannst Benutzerkonten dieses Wiki nicht als OpenID für andere Seiten verwenden.',
 	'openidloginlabel' => 'OpenID-URL',
-	'openidlogininstructions' => '{{SITENAME}} unterstützt den [http://openid.net/ OpenID]-Standard für eine einheitliche Anmeldung für mehrere Websites.
-OpenID meldet dich bei vielen unterschiedlichen Webseiten an, ohne dass du für jede ein anderes Passwort verwenden musst.
-(Mehr Informationen bietet der [http://de.wikipedia.org/wiki/OpenID Wikipedia-Artikel zu OpenID].)
+	'openidlogininstructions' => '{{SITENAME}} unterstützt den [//openid.net/ OpenID-Standard] für eine einheitliche Anmeldung auf mehreren Websites.
+OpenID meldet dich bei vielen unterschiedlichen Websites an, ohne dass du für jede ein separates Passwort verwenden musst.
+(Mehr Informationen hierzu bietet der [//de.wikipedia.org/wiki/OpenID Wikipedia-Artikel zu OpenID].)
+Es gibt viele [//openid.net/get/ OpenID-Provider] und möglicherweise verfügst du bereits über ein OpenID-Benutzerkonto bei einer anderen Website.',
+	'openidlogininstructions-openidloginonly' => "Auf {{SITENAME}} kann man sich ''nur'' mit OpenID anmelden.",
+	'openidlogininstructions-passwordloginallowed' => 'Sofern du bereits über ein Benutzerkonto auf {{SITENAME}} verfügst, kannst du dich hier wie gewöhnlich mit deinem Benutzernamen und Passwort [[Special:UserLogin|anmelden]].
+Um OpenID zukünftig zu nutzen, kannst du dein Benutzerkonto für die Verwendung mit OpenID [[Special:OpenIDConvert|umwandeln]], nachdem du dich regulär angemeldet hast.',
+	'openidupdateuserinfo' => 'Persönliche Daten aktualisieren:',
+	'openiddelete' => 'OpenID löschen',
+	'openiddelete-text' => 'Wenn du auf den Button „{{int:openiddelete-button}}“ klickst, löschst du die OpenID $1 von deinem Benutzerkonto.
+Du wirst dich nicht mehr mit dieser OpenID anmelden können.',
+	'openiddelete-button' => 'Bestätigen',
+	'openiddeleteerrornopassword' => 'Du kannst nicht alle deine OpenIDs löschen, da du kein Passwort gesetzt hast.
+Ohne OpenID könntest du dich nicht mehr anmelden.',
+	'openiddeleteerroropenidonly' => 'Du kannst nicht alle deiner OpenIDs löschen, weil du dich nur mit OpenID einloggen darfst.
+Ohne OpenID könntest du dich nicht mehr anmelden.',
+	'openiddelete-sucess' => 'Die OpenID wurde erfolgreich von deinem Benutzerkonto entfernt.',
+	'openiddelete-error' => 'Beim Entfernen der OpenID von deinem Benutzerkonto ist ein Fehler aufgetreten.',
+	'openid-openids-were-not-merged' => 'Die OpenID(s) wurden während der Zusammenlegung der Benutzerkonten nicht zusammengeführt.',
+	'openid-prefstext' => 'Einstellungen zur [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Verstecke deine OpenID auf deiner Benutzerseite, wenn du dich mit OpenID anmeldest.',
+	'openid-pref-update-userinfo-on-login' => 'Nachfolgende Daten anhand des OpenID-Kontos bei jeder Anmeldung aktualisieren:',
+	'openid-urls-desc' => 'Mit deinem Benutzerkonto verbundene OpenIDs:',
+	'openid-urls-action' => 'Aktion',
+	'openid-urls-registration' => 'Registrierungszeitpunkt',
+	'openid-urls-delete' => 'Löschen',
+	'openid-add-url' => 'Eine neue OpenID hinzufügen',
+	'openid-login-or-create-account' => 'Anmelden oder ein neues Benutzerkonto erstellen',
+	'openid-provider-label-openid' => 'Gib deine OpenID-URL an',
+	'openid-provider-label-google' => 'Mit deinem Google-Benutzerkonto anmelden',
+	'openid-provider-label-yahoo' => 'Mit deinem Yahoo-Benutzerkonto anmelden',
+	'openid-provider-label-aol' => 'Gib deinen AOL-Namen an',
+	'openid-provider-label-other-username' => 'Gib deinen „$1“-Benutzernamen an',
+	'specialpages-group-openid' => 'Websites von OpenID-Diensten und Statusinformationen',
+	'right-openid-dashboard-access' => 'Standardzugang zur OpenID-Übersichts- und Einstellungsseite',
+	'right-openid-dashboard-admin' => 'Administratorzugang zur OpenID-Übersichts- und Einstellungsseite',
+	'openid-dashboard-title' => 'OpenID - Übersicht',
+	'openid-dashboard-title-admin' => 'OpenID - Übersicht und Einstellungen',
+	'openid-dashboard-introduction' => 'Die aktuellen Einstellungen zu OpenID ([$1 Hilfe])',
+	'openid-dashboard-number-openid-users' => 'Anzahl der Benutzer mit mindestens einer OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Anzahl der OpenIDs (gesamt)',
+	'openid-dashboard-number-users-without-openid' => 'Anzahl der Benutzer ohne OpenID',
+);
 
-Falls du bereits ein Benutzerkonto bei {{SITENAME}} hast, kannst du dich ganz normal mit Benutzername und Passwort [[Special:UserLogin|anmelden]].
-Wenn du in Zukunft OpenID verwenden möchtest, kannst du [[Special:OpenIDConvert|deinen Account zu OpenID konvertieren]], nachdem du dich normal eingeloggt hast.
+/** German (formal address) (‪Deutsch (Sie-Form)‬)
+ * @author ChrisiPK
+ * @author Imre
+ * @author Kghbln
+ * @author LWChris
+ * @author The Evil IP address
+ * @author Umherirrender
+ */
+$messages['de-formal'] = array(
+	'openidconfigerrortext' => 'Die OpenID-Speicherkonfiguarion für dieses Wiki ist fehlerhaft.
+Bitte benachrichtigen Sie einen [[Special:ListUsers/sysop|Administrator]].',
+	'openidsuccesstext' => "'''Die Überprüfung sowie die Anmeldung als Benutzer $1 war erfolgreich.'''
 
-Es gibt viele [http://openid.net/get/ OpenID-Provider] und möglicherweise hast du bereits ein Benutzerkonto mit aktiviertem OpenID bei einem anderen Anbieter.',
-	'openidupdateuserinfo' => 'Persönliche Daten aktualisieren',
-	'openid-prefstext' => '[http://openid.net/ OpenID]-Einstellungen',
-	'openid-pref-hide' => 'Verstecke deine <a href="http://openid.net/">OpenID</a> auf deiner Benutzerseite, wenn du dich mit OpenID anmeldest.',
-	'openid-pref-update-userinfo-on-login' => 'Meine Daten anhand des OpenID-Kontos bei jeder Anmeldung aktualisieren',
+Ihre OpenID lautet $2.
+
+Diese und weitere OpenIDs können unter dem Reiter [[Special:Preferences#prefsection-openid|OpenID]] Ihrer Kontoeinstellungen verwaltet werden.<br />
+Ein fakultatives Benutzerkontopasswort kann hingegen unter dem Reiter [[Special:Preferences#prefsection-personal|Benutzerdaten]] Ihrer Kontoeinstellungen festgelegt werden.",
+	'openidserverlogininstructions' => '$3 erfordert die Eingabe Ihres Passworts für Ihr Benutzerkonto $2 auf der Seite $1 (OpenID-URL)',
+	'openidtrustinstructions' => 'Prüfen Sie, ob Sie Daten mit $1 teilen möchten.',
+	'openidchooseinstructions' => 'Alle Benutzer benötigen einen Benutzernamen;
+Sie können einen aus der untenstehenden Liste auswählen.',
+	'openidchoosenick' => 'Ihr Spitzname ($1)',
+	'openidchoosefull' => 'Ihr bürgerlicher Name ($1)',
+	'openidchooseurl' => 'Ein Name aus Ihrer OpenID ($1)',
+	'openidchoosemanual' => 'Ein Name Ihrer Wahl:',
+	'openidconvertinstructions' => 'Mit diesem Formular können Sie Ihr Benutzerkonto zur Benutzung mit Ihrer OpenID-URL freigeben oder eine weitere OpenID-URL hinzufügen.',
+	'openidconvertsuccesstext' => 'Sie haben die Konvertierung Ihrer OpenID nach $1 erfolgreich durchgeführt.',
+	'openidconvertyourstext' => 'Dies ist bereits Ihre OpenID.',
+	'openidalreadyloggedin' => 'Sie sind bereits angemeldet.',
+	'openidalreadyloggedintext' => "'''Sie sind bereits angemeldet, $1.'''
+
+Sie können diese und weitere OpenIDs unter dem Reiter [[Special:Preferences#prefsection-openid|OpenID]] Ihrer Kontoeinstellungen verwalten (ansehen, löschen sowie weitere hinzufügen).",
+	'openidautosubmit' => 'Diese Seite enthält ein Formular, das automatisch übertragen wird, wenn JavaSkript aktiviert ist. Falls nicht, klicken Sie bitte auf „Continue“ (Weiter).',
+	'openidclientonlytext' => 'Sie können keine Benutzerkonten aus diesem Wiki als OpenID für andere Seiten verwenden.',
+	'openidlogininstructions' => '{{SITENAME}} unterstützt den [//openid.net/ OpenID-Standard] für eine einheitliche Anmeldung auf mehreren Websites.
+OpenID meldet Sie bei vielen unterschiedlichen Websites an, ohne dass Sie für jede ein separates Passwort verwenden müssen.
+(Mehr Informationen hierzu bietet der [//de.wikipedia.org/wiki/OpenID Wikipedia-Artikel zu OpenID].)
+Es gibt viele [//openid.net/get/ OpenID-Provider] und möglicherweise verfügen Sie bereits über ein OpenID-Benutzerkonto bei einer anderen Website.',
+	'openidlogininstructions-passwordloginallowed' => 'Sofern Sie bereits über ein Benutzerkonto auf {{SITENAME}} verfügen, können Sie sich hier wie gewöhnlich mit Ihrem Benutzernamen und Passwort [[Special:UserLogin|anmelden]].
+Um OpenID auf diesem Wiki zukünftig zu nutzen, können Sie Ihr Benutzerkonto für die Verwendung mit OpenID [[Special:OpenIDConvert|umwandeln]], nachdem Sie sich regulär angemeldet haben.',
+	'openiddelete-text' => 'Wenn Sie auf den Button „{{int:openiddelete-button}}“ klicken, löschen Sie die OpenID $1 von Ihrem Benutzerkonto.
+Sie werden sich nicht mehr mit dieser OpenID anmelden können.',
+	'openiddeleteerrornopassword' => 'Sie können nicht alle Ihre OpenIDs löschen, da Sie kein Passwort gesetzt haben.
+Ohne OpenID könnten Sie sich nicht mehr anmelden.',
+	'openiddeleteerroropenidonly' => 'Sie können nicht alle Ihre OpenIDs löschen, weil Sie sich nur mit OpenID einloggen dürfen.
+Ohne OpenID könnten Sie sich nicht mehr anmelden.',
+	'openiddelete-sucess' => 'Die OpenID wurde erfolgreich von Ihrem Benutzerkonto entfernt.',
+	'openiddelete-error' => 'Beim Entfernen der OpenID von Ihrem Benutzerkonto ist ein Fehler aufgetreten.',
+	'openid-pref-hide' => 'Verstecken Sie Ihre OpenID auf Ihrer Benutzerseite, wenn Sie sich mit OpenID anmelden.',
+	'openid-urls-desc' => 'Mit Ihrem Benutzerkonto verbundene OpenIDs:',
+	'openid-provider-label-openid' => 'Geben Sie Ihre OpenID-URL an',
+	'openid-provider-label-google' => 'Mit Ihrem Google-Benutzerkonto anmelden',
+	'openid-provider-label-yahoo' => 'Mit Ihrem Yahoo-Benutzerkonto anmelden',
+	'openid-provider-label-aol' => 'Geben Sie Ihren AOL-Namen an',
+	'openid-provider-label-other-username' => 'Geben Sie Ihren „$1“-Benutzernamen an',
 );
 
+/** Zazaki (Zazaki)
+ * @author Mirzali
+ */
+$messages['diq'] = array(
+	'openidlanguage' => 'Zıwan',
+	'openidtimezone' => 'Warey saete',
+	'openidchoosepassword' => 'Parola:',
+	'openiddelete-button' => 'Tesdiq',
+	'openid-urls-delete' => 'Bıestere',
+);
+
 /** Lower Sorbian (Dolnoserbski)
  * @author Michawiki
  */
 $messages['dsb'] = array(
-	'openid-desc' => 'Pśizjawjenje pla wikija z [http://openid.net/ OpenID] a pśizjawjenje pla drugich websedłow, kótarež pódpěraju OpenID z wikijowym wužywarskim kontom',
-	'openidlogin' => 'Pśizjawjenje z OpenID',
-	'openidfinish' => 'Pśizjawjenje OpenID dokóńcyś',
+	'openid-desc' => 'Pśizjawjenje pla wikija z [//openid.net/ OpenID] a pśizjawjenje pla drugich websedłow, kótarež pódpěraju OpenID z wikijowym wužywarskim kontom',
+	'openidlogin' => 'Z OpenID pśizjawiś / konto załožyś',
 	'openidserver' => 'Serwer OpenID',
 	'openidxrds' => 'Yadis-dataja',
 	'openidconvert' => 'Konwerter OpenID',
@@ -716,9 +1477,14 @@
 	'openidfailure' => 'Pséglědanje jo se njeraźiło',
 	'openidfailuretext' => 'Pśeglědanje URL OpenID je so njeraźiło. Zmólkowa powěźeńka: "$1"',
 	'openidsuccess' => 'Pśeglědanje wuspěšne',
-	'openidsuccesstext' => 'Pśeglědanje URL OpenID jo wuspěšnje było.',
+	'openidsuccesstext' => "'''Pśeglědanje a pśizjawjenje ako wužywaŕ $1 stej byłej wuspěšnej.'''
+
+Twój OpenID jo $2.
+
+Toś ten a dalšne OpenID daju se na [[Special:Preferences#prefsection-openid|OpenID-rejtarku]] twójich nastajenjow zastojaś.<br />
+Faktulatiwne gronidło dajo se w twójom [[Special:Preferences#prefsection-personal|wužywarskem profilu]] pśidaś.",
 	'openidusernameprefix' => 'Wužywaŕ OpenID',
-	'openidserverlogininstructions' => 'Zapódaj swójo gronidło dołojce, aby se ako wužywaŕ $2 pla $3 pśizjawił (wužywarski bok $1).',
+	'openidserverlogininstructions' => '$3 se pomina, až zapódajoš swójo gronidło za swójo wužywarske konto $2 na boku $1 (to jo jo twój OpenID-URL)',
 	'openidtrustinstructions' => 'Kontrolěruj, lěc coš daty z $1 źěliś.',
 	'openidallowtrust' => '$1 dowóliś, toś tomu wužywarskemu kontoju dowěriś.',
 	'openidnopolicy' => 'Sedło njejo pódało zasady priwatnosći.',
@@ -729,59 +1495,173 @@
 	'openidfullname' => 'Dopołne mě',
 	'openidemail' => 'E-mailowa adresa:',
 	'openidlanguage' => 'Rěc',
-	'openidnotavailable' => 'Twójo preferěrowane pśimě ($1) se južo wužywa wót drugego wužywarja.',
-	'openidnotprovided' => 'Twój server OpenID njejo dodał pśimě (pak, dokulaž njamóžo, pak, dokulaž njejsy jo jomu k wěsći dał).',
+	'openidtimezone' => 'Casowa cona',
+	'openidchooselegend' => 'Wuběr wužywarskego mjenja a konta',
 	'openidchooseinstructions' => 'Wše wužywarje trjebaju pśimě;
 móžoš jadno ze slědujucych opcijow wubraś.',
+	'openidchoosenick' => 'Twójo pśimě ($1)',
 	'openidchoosefull' => 'Twójo dopołne mě ($1)',
 	'openidchooseurl' => 'Mě z twójogo OpenID ($1)',
 	'openidchooseauto' => 'Awtomatiski napórane mě ($1)',
 	'openidchoosemanual' => 'Mě twójogo wuzwólenja:',
-	'openidchooseexisting' => 'Eksistěrujuce konto w toś tom wikiju:',
-	'openidchoosepassword' => 'gronidło:',
-	'openidconvertinstructions' => 'Z toś tym formularom móžoš swójo wužywarske konto změniś, aby wužywało URL OpenID.',
+	'openidchooseexisting' => 'Eksistěrujuce konto w toś tom wikiju',
+	'openidchooseusername' => 'wužywarske mě:',
+	'openidchoosepassword' => 'Gronidło:',
+	'openidconvertinstructions' => 'Z toś tym formularom móžoš swójo wužywarske konto změniś, aby wužywało URL OpenID abo dalšnje URL OpenID pśidał.',
+	'openidconvertoraddmoreids' => 'Do OpenID konwertěrowaś abo dalšny URL OpenID pśidaś',
 	'openidconvertsuccess' => 'Wuspěšnje do OpenID konwertěrowany',
 	'openidconvertsuccesstext' => 'Sy wuspěšnje konwertěrował twój OpenID do $1.',
 	'openidconvertyourstext' => 'To jo južo twój OpenID.',
 	'openidconvertothertext' => 'Toś ten OpenID słuša někomu drugemu.',
-	'openidalreadyloggedin' => "'''Sy južo pśizjawjony, $1!'''
-
-Jolic pśichodnje coš OpenID wužywaś, aby se pśizjawił, móžoš [[Special:OpenIDConvert|swójo konto za wužiwanje OpenID konwertěrowaś]].",
-	'openidnousername' => 'Žedne wužywarske mě pódane.',
+	'openidalreadyloggedin' => 'Sy južo pśizjawjony.',
+	'openidnousername' => 'Žedno wužywarske mě pódane.',
 	'openidbadusername' => 'Wopacne wužywarske mě pódane.',
-	'openidautosubmit' => 'Toś ten bok wopśimujo formular, kótaryž se awtmatiski wótpósćeła, jolic JavaScript jo zmóžnjony. Jolic nic, klikni na tłocašk "Dalej".',
+	'openidautosubmit' => 'Toś ten bok wopśimujo formular, kótaryž se awtmatiski wótpósćeła, jolic JavaScript jo zmóžnjony. Jolic nic, klikni na tłocašk "Continue" (Dalej).',
 	'openidclientonlytext' => 'Njamóžoš konta z toś togo wikija ako OpneID na drugem sedle wužywaś.',
 	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => '{{SITENAME}} pódpěra standard [http://openid.net/ OpenID] za jadnotliwe pśizjawjenja mjazy websedłami.
+	'openidlogininstructions' => '{{SITENAME}} pódpěra standard [//openid.net/ OpenID] za jadnotliwe pśizjawjenja mjazy websedłami.
 OpenID śi zmóžnja se pla rozdźělnych websedłow pśizjawiś, bźez togo až musyš rozdźělne gronidła wužywaś.
-(Glědaj [http://en.wikipedia.org/wiki/OpenID nastawk OpenID we Wikipediji] za dalšne informacije.)
+(Glědaj [//en.wikipedia.org/wiki/OpenID nastawk OpenID we Wikipediji] za dalšne informacije.)
 
-Jolic maš južo konto na {{GRAMMAR:lokatiw|{{SITENAME}}}}, móžoš se ze swójim wužywarskim mjenim a gronidłom ako pśecej [[Special:UserLogin|pśizjawiś]].
-Aby wužywał OpenID w pśichoźe, móžoš [[Special:OpenIDConvert|swójo konto do OpenID konwertěrowaś]], za tym až sy se normalnje pśizjawił.
+Jo wjele [//openid.net/get/ póbitowarjow OpenID] a snaź maš južo konto z OpenID pla drugeje słužby.',
+	'openidupdateuserinfo' => 'Móje wósobinske informacije aktualizěrowaś:',
+	'openiddelete' => 'OpenID wulašowaś',
+	'openiddelete-text' => 'Pśez kliknjenje na tłócašk "{{int:openiddelete-button}}", wótpórajoš OpenID $1 z twójogo konta. Njamóžoš se wěcej z toś tym OpenID pśizjawiś.',
+	'openiddelete-button' => 'Wobkšuśiś',
+	'openiddeleteerrornopassword' => 'Njamóžoš wše swóje OpenID lašowaś, dokulaž twójo konto njama gronidło.
+Ty njeby mógał se bźez OpenID pśizjawiś.',
+	'openiddeleteerroropenidonly' => 'Njamóžoš wše swóje OpenID lašowaś, dokulaž njesmějoš se z OpenID pśizjawiś.
+Ty njeby se bźez OpenID pśizjawiś.',
+	'openiddelete-sucess' => 'OpenID jo se wuspěšnje z twójogo konta wótpórał.',
+	'openiddelete-error' => 'Pśi wótwónoźowanju OpenID z twójogo konta jo zmólka jo nastata.',
+	'openid-prefstext' => 'Nastajenja [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Schowaj swój OpenID na swójom wužywarskem boku, jolic se pśizjawjaś z OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Kuždy raz, gaž se pízjawjam, slědujuce informacije z identity OpenID aktualizěrowaś:',
+	'openid-urls-desc' => 'OpenID, kótarež su z twójim kontom zwězane:',
+	'openid-urls-action' => 'Akcija',
+	'openid-urls-delete' => 'Lašowaś',
+	'openid-add-url' => 'Nowy OpenID pśidaś',
+	'openid-login-or-create-account' => 'Pśizjawiś abo nowe konto załožyś',
+	'openid-provider-label-openid' => 'Zapódaj swój URL OpenID',
+	'openid-provider-label-google' => 'Z pomocu twójogo konta Google se pśizjawiś',
+	'openid-provider-label-yahoo' => 'Z pomocu twójogo konta Yahoo se pśizjawiś',
+	'openid-provider-label-aol' => 'Zapódaj swójo wužywarske mě AOL',
+	'openid-provider-label-other-username' => 'Zapódaj swójo wužywarske mě $1',
+);
 
-Jo wjele [http://openid.net/get/ póbitowarjow OpenID] a snaź maš južo konto z OpenID pla drugeje słužby.',
-	'openidupdateuserinfo' => 'Móje wósobinske informacije aktualizěrowaś',
-	'openid-prefstext' => 'Nastajenja [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Schowaj swój <a href="http://openid.net/">OpenID</a> na swójom wužywarskem boku, jolic se pśizjawjaś z OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Kuždy raz, gaž se pízjawjam, móje informacije z identity OpenID aktualizěrowaś',
+/** Ewe (Eʋegbe) */
+$messages['ee'] = array(
+	'openid-urls-delete' => 'Tutui',
 );
 
 /** Greek (Ελληνικά)
  * @author Consta
+ * @author Crazymadlover
+ * @author Kiriakos
+ * @author Omnipaedista
+ * @author ZaDiak
  */
 $messages['el'] = array(
+	'openid-desc' => 'Συνδεθείτε στο wiki με ένα [//openid.net/ OpenID], και συνδεθείτε σε άλλους ιστοτόπους που λαμβάνουν υπόψη το OpenID με ένα λογαριασμό χρήστη wiki',
+	'openidlogin' => 'Σύνδεση με OpenID',
+	'openidserver' => 'Εξυπηρετητής OpenID',
+	'openidxrds' => 'Αρχείο Yadis.',
+	'openidconvert' => 'Μετατροπέας OpenID',
+	'openiderror' => 'Σφάλμα επαλήθευσης',
+	'openiderrortext' => 'Προέκυψε ένα σφάλμα κατά τη διάρκεια της επιβεβαίωσης του OpenID URL σας.',
+	'openidconfigerror' => 'Σφάλμα διαμόρφωσης OpenID',
+	'openidconfigerrortext' => 'Η διαμόρφωση αποθήκευσης OpenID για αυτό το wiki είναι μη έγκυρη.
+Παρακαλώ συμβουλευθείτε έναν [[Special:ListUsers/sysop|διαχειριστή]].',
+	'openidpermission' => 'Σφάλμα αδειών OpenID',
+	'openidpermissiontext' => 'Το OpenID που παρείχες δεν είναι επιτρεπτό να συνδεθεί σε αυτόν τον εξυπηρετητή.',
+	'openidcancel' => 'Η επαλήθευση ακυρώθηκε',
+	'openidcanceltext' => 'Η επιβεβαίωση του OpenID URL ακυρώθηκε.',
+	'openidfailure' => 'Η επαλήθευση απέτυχε',
+	'openidfailuretext' => 'Η επιβεβαίωση του OpenID URL απέτυχε. Μήνυμα σφάλματος: "$1"',
+	'openidsuccess' => 'Η επαλήθευση ήταν επιτυχής',
+	'openidsuccesstext' => 'Η επιβεβαίωση του OpenID URL ήταν επιτυχής.',
+	'openidusernameprefix' => 'Χρήστης OpenID',
+	'openidserverlogininstructions' => 'Βάλτε τον κωδικό σας παρακάτω για να συνδεθείτε στο $3 ως χρήστης $2 (σελίδα χρήστη $1).',
+	'openidtrustinstructions' => 'Τσεκάρετε αν θέλετε να μοιραστείτε δεδομένα με το $1.',
+	'openidallowtrust' => 'Επέτρεψε στο $1 να εμπιστευτεί αυτό το λογαριασμό χρήστη.',
+	'openidnopolicy' => 'Ο ιστοτόπος δεν έχει καθορίσει μια πολιτική ιδιωτικότητας.',
+	'openidpolicy' => 'Ελέγξατε <a target="_new" href="$1">πολιτική διακριτικότητας</a> για περισσότερες πληροφορίες.',
+	'openidoptional' => 'Προαιρετικός',
+	'openidrequired' => 'Απαιτημένος',
+	'openidnickname' => 'Παρωνύμιο',
+	'openidfullname' => 'ονοματεπώνυμο',
+	'openidemail' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου',
 	'openidlanguage' => 'Γλώσσα',
+	'openidtimezone' => 'Ζώνη ώρας:',
+	'openidchooselegend' => 'Επιλογή ονόματος χρήστη',
+	'openidchooseinstructions' => 'Όλοι οι χρήστες χρειάζονται ένα nickname,
+για να επιλέξετε μια από τις παρακάτω επιλογές.',
+	'openidchoosenick' => 'Το ψευδώνυμό σας ($1)',
+	'openidchoosefull' => 'Το πλήρες όνομά σας ($1)',
+	'openidchooseurl' => 'Ένα όνομα διαλεγμένο από το OpenID σας ($1)',
+	'openidchooseauto' => 'Ένα αυτο-δημιουργημένο όνομα ($1)',
 	'openidchoosemanual' => 'Ένα όνομα της επιλογής σας:',
-	'openidchoosepassword' => 'κωδικός:',
+	'openidchooseexisting' => 'Ένας υπάρχων λογαριασμός σε αυτό το βίκι',
+	'openidchooseusername' => 'Όνομα χρήστη:',
+	'openidchoosepassword' => 'Κωδικός:',
+	'openidconvertinstructions' => 'Αυτή η φόρμα σας επιτρέπει να αλλάξετε το λογαριασμό χρήστη σας για να χρησιμοποιήσετε ένα ή περισσόττερα URL OpenID',
+	'openidconvertoraddmoreids' => 'Μετατρέψτε το OpenID ή προσθέστε κι άλλο URL OpenID',
+	'openidconvertsuccess' => 'Μετατράπηκε επιτυχώς σε OpenID',
+	'openidconvertsuccesstext' => 'Έχετε επιτυχώς μετατρέψει το OpenID σας σε $1.',
+	'openidconvertyourstext' => 'Αυτό είναι ήδη το OpenID σας.',
+	'openidconvertothertext' => 'Αυτό είναι το OpenID κάποιου άλλου.',
+	'openidalreadyloggedin' => "'''Έχεις ήδη συνδεθεί, $1!'''
+
+Αν θέλεις να χρησιμοποιήσεις το OpenID για να συνδεθείς στο μέλλον, μπορείς να [[Special:OpenIDConvert|μετατρέψεις το λογαριασμό σου για να χρησιμοποιήσεις το OpenID]].",
+	'openidnousername' => 'Δεν καθορίστηκε κανένα όνομα χρήστη.',
+	'openidbadusername' => 'Καθορίστηκε κακό όνομα χρήστη.',
+	'openidautosubmit' => 'Αυτή η σελίδα περιλαμβάνει μια φόρμα που θα πρέπει να καταχωρηθεί αυτόματα αν έχετε ενεργοποιήσει το JavaScript.
+Αν όχι, πατήστε το κουμπί "Συνέχεια".',
+	'openidclientonlytext' => 'Δεν μπορείτε να χρησιμοποιείτε λογαριασμούς από το βίκι σαν OpenID σε άλλη ιστοσελίδα.',
+	'openidloginlabel' => 'OpenID URL',
+	'openidlogininstructions' => 'Ο ιστότοπος {{SITENAME}} υποστηρίζει το πρότυπο [//openid.net/ OpenID] για μοναδικό υπογραφή μεταξύ ιστοτόπων.
+Το OpenID σου επιτρέπει να συνδεθείς σε πολλούς διαφορετικούς ιστοτόπους χωρίς τη χρήση διαφορετικού κωδικού για τον καθένα.
+(Δες το [//en.wikipedia.org/wiki/OpenID άρθρο της Wikipedia για το OpenID] για περισσότερες πληροφορίες.)
+
+Αν έχεις ήδη έναν λογαριασμό στο {{SITENAME}}, μπορείς να [[Special:UserLogin|συνδεθείς]] με το όνομα χρήστη σου και τον κωδικό σου ως συνήθως.
+Για να χρησιμοποιήσεις το OpenID στο μέλλον, μπορείς να [[Special:OpenIDConvert|μετατρέψεις το λογαριασμό σου σε OpenID]] αφού έχεις συνδεθεί κανονικά.
+
+Υπάρχουν υπερβολικά πολλοί [//openid.net/get/ παροχείς OpenID], και μπορεί να έχεις έναν ήδη ενεργοποιημένο με OpenID λογαριασμό σε άλλη υπηρεσία.',
+	'openidupdateuserinfo' => 'Ενημέρωση των προσωπικών πληροφοριών μου:',
+	'openiddelete' => 'Διαγραφή OpenID',
+	'openiddelete-text' => 'Κάνωντας κλικ στο κουμπί "{{int:openiddelete-button}}", θα αφαιρέσετε το OpenID $1 από το λογαριασμό σας.
+Δεν θα είστε πλέον σε θέση να συνδεθείτε με αυτό το OpenID.',
+	'openiddelete-button' => 'Επιβεβαίωση',
+	'openiddeleteerrornopassword' => 'Δεν μπορείτε να διαγράψετε όλα τα OpenIDs σας, διότι ο λογαριασμός σας δεν έχει κωδικό πρόσβασης. 
+ Δεν θα μπορέσετε να συνδεθείτε  χωρίς ένα OpenID.',
+	'openiddeleteerroropenidonly' => 'Δεν μπορείτε να διαγράψετε όλα τα OpenIDs σας, διότι σας επιτρέπεται  να συνδεθείτε μόνο με OpenID. 
+ Δεν θα μπορέσετε να συνδεθείτε χωρίς ένα OpenID.',
+	'openiddelete-sucess' => 'Το OpenID αφαιρέθηκε επιτυχώς από τον λογαριασμό σας.',
+	'openiddelete-error' => 'Ένα σφάλμα προέκυψε κατά την αφαίρεση του OpenID από το λογαριασμό σας.',
+	'openid-prefstext' => 'Προτιμήσεις [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Απόκρυψη του OpenID URL στη σελίδα χρήστη σας, αν συνδεθείτε με το OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Ενημέρωση των ακόλουθων πληροφοριών από το OpenID persona κάθε φορά που συνδέομαι:',
+	'openid-urls-desc' => 'OpenID συνδεδεμένα με τον λογαριασμό σας:',
+	'openid-urls-action' => 'Ενέργεια',
+	'openid-urls-delete' => 'Διαγραφή',
+	'openid-add-url' => 'Προσθέστε ένα νέο OpenID',
+	'openid-login-or-create-account' => 'Σύνδεση ή Δημιουργία Νέου Λογαριασμού',
+	'openid-provider-label-openid' => 'Εισαγωγή URL του OpenID σας',
+	'openid-provider-label-google' => 'Σύνδεση χρησιμοποιώντας τον Google λογαριασμό σας',
+	'openid-provider-label-yahoo' => 'Σύνδεση χρησιμοποιώντας τον Yahoo λογαριασμό σας',
+	'openid-provider-label-aol' => 'Εισάγετε το AOL όνομα οθόνης σας',
+	'openid-provider-label-other-username' => 'Εισαγωγή του δικού σας $1 ονόματος χρήστη',
 );
 
 /** Esperanto (Esperanto)
+ * @author ArnoLagrange
+ * @author Lucas
+ * @author Michawiki
  * @author Yekrats
  */
 $messages['eo'] = array(
-	'openid-desc' => 'Ensaluti la vikion kun [http://openid.net/ identigo OpenID], kaj ensaluti aliajn retejon uzantajn OpenID kun vikia uzula konto',
+	'openid-desc' => 'Ensaluti la vikion kun [//openid.net/ identigo OpenID], kaj ensaluti aliajn retejon uzantajn OpenID kun vikia uzula konto',
 	'openidlogin' => 'Ensaluti kun OpenID',
-	'openidfinish' => 'Elsaluti kun OpenID',
 	'openidserver' => 'Servilo OpenID',
 	'openidxrds' => 'dosiero Yadis',
 	'openidconvert' => 'OpenID konvertilo',
@@ -802,7 +1682,7 @@
 	'openidserverlogininstructions' => 'Enigu vian pasvorton suben por ensaluti al $3 kiel uzanto $2 (uzulpaĝo $1).',
 	'openidtrustinstructions' => 'Kontroli se vi volas kunpermesigi datenojn kun $1.',
 	'openidallowtrust' => 'Rajtigi $1 fidi ĉi tiun uzulan konton.',
-	'openidnopolicy' => 'Retejo ne specifigis regularon pri privateco.',
+	'openidnopolicy' => 'Retejo ne specifis regularon pri privateco.',
 	'openidpolicy' => 'Kontroli la <a target="_new" href="$1">regularon pri privateco</a> pri plua informo.',
 	'openidoptional' => 'Nedeviga',
 	'openidrequired' => 'Deviga',
@@ -810,17 +1690,20 @@
 	'openidfullname' => 'Plena nomo',
 	'openidemail' => 'Retadreso',
 	'openidlanguage' => 'Lingvo',
-	'openidnotavailable' => 'Via preferata kromnomo ($1) jam estas uzata de alia uzanto.',
-	'openidnotprovided' => 'Via OpenID-a servilo ne provizis kromnomo (ĉar aŭ ĝi ne eblis, aŭ tial vi malpermesigis ĝin).',
+	'openidtimezone' => 'Horzono',
+	'openidchooselegend' => 'Elekto de salutnomo',
 	'openidchooseinstructions' => 'Ĉiuj uzantoj bezonas kromnomo;
 vi povas selekti el unu la jenaj opcioj.',
+	'openidchoosenick' => 'Via kromnomo ($1)',
 	'openidchoosefull' => 'Via plena nomo ($1)',
 	'openidchooseurl' => 'Nomo eltenita de via OpenID ($1)',
 	'openidchooseauto' => 'Automate generita nomo ($1)',
 	'openidchoosemanual' => 'Nomo de via elekto:',
-	'openidchooseexisting' => 'Ekzistanta konto en ĉi tiu vikio:',
-	'openidchoosepassword' => 'pasvorto:',
-	'openidconvertinstructions' => 'Ĉi tiu paĝo permesas al vi ŝanĝi vian uzulan konton por uzi URL-on OpenID.',
+	'openidchooseexisting' => 'Ekzistanta konto en ĉi tiu vikio',
+	'openidchooseusername' => 'Salutnomo:',
+	'openidchoosepassword' => 'Pasvorto:',
+	'openidconvertinstructions' => 'Ĉi tiu paĝo permesas al vi ŝanĝi vian uzulan konton por uzi URL-on OpenID aŭ aldoni pliajn OpenID-URL-ojn.',
+	'openidconvertoraddmoreids' => 'Konverti al OpenID aŭ aldoni alian OpenID-URL-on',
 	'openidconvertsuccess' => 'Sukcese konvertis al OpenID',
 	'openidconvertsuccesstext' => 'Vi sukcese konvertis vian identigon OpenID al $1.',
 	'openidconvertyourstext' => 'Tio jam estas via OpenID.',
@@ -831,89 +1714,149 @@
 	'openidnousername' => 'Neniu salutnomo estis donita.',
 	'openidbadusername' => 'Fuŝa salutnomo donita.',
 	'openidautosubmit' => 'Ĉi tiu paĝo inkluzivas kamparo kiu estos aŭtomate enigita se vi havas JavaScript-on ŝaltan.
-Se ne, klaku la butonon \\"Daŭri\\".',
+Se ne, klaku la butonon "Continue" (Daŭri).',
 	'openidclientonlytext' => 'Vi ne povas uzi kontojn de ĉi tiu vikio kiel OpenID-ojn en alia retejo.',
 	'openidloginlabel' => 'URL-o OpenID',
-	'openid-pref-hide' => 'Kaŝi viajn identigon <a href="http://openid.net/">OpenID</a> en via uzula paĝo, se vi ensalutas kun OpenID.',
+	'openidupdateuserinfo' => 'Ĝisdatigi mian personan informon:',
+	'openiddelete' => 'Forigi OpenID',
+	'openiddelete-button' => 'Konfirmi',
+	'openiddelete-sucess' => 'La OpenID estis sukcese forigita de via konto.',
+	'openiddelete-error' => 'Eraro okazis dum forigado de la OpenID de via konto.',
+	'openid-prefstext' => '[//openid.net/ OpenID]-agordoj',
+	'openid-pref-hide' => 'Kaŝi viajn identigon OpenID en via uzantopaĝo, se vi ensalutas kun OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Ĝisdatigi mian informon de OpenID-konto ĉiam, kiam mi ensalutos:',
+	'openid-urls-desc' => 'Indentigoj OpenID asociigita kun via konto:',
+	'openid-urls-action' => 'Ago',
+	'openid-urls-delete' => 'Forigi',
+	'openid-add-url' => 'Aldoni novan OpenID',
+	'openid-login-or-create-account' => 'Ensaluti aŭ Krei Novan Konton',
+	'openid-provider-label-openid' => 'Enigi vian OpenID-URL-on',
+	'openid-provider-label-google' => 'Ensaluti per via Google-konto',
+	'openid-provider-label-yahoo' => 'Ensaluti per via Yahoo-konto',
+	'openid-provider-label-aol' => 'Enigi vian AOL-salutnomon',
+	'openid-provider-label-other-username' => 'Enigi vian salutnomon de $1',
 );
 
 /** Spanish (Español)
+ * @author Ascánder
  * @author Crazymadlover
  * @author Drini
+ * @author Fitoschido
  * @author Imre
+ * @author McDutchie
  * @author Sanbec
+ * @author Translationista
+ * @author XalD
  */
 $messages['es'] = array(
-	'openid-desc' => 'Ingresa a la wiki con un [http://openid.net OpenID] e ingresa a los otros sitios que aceptan OpenID con una cuenta de usuario wiki.',
-	'openidlogin' => 'Conectarse con OpenID',
-	'openidfinish' => 'Termina el ingreso OpenID',
-	'openidserver' => 'servidor OpenID',
-	'openidxrds' => 'Archivo Yadis',
-	'openidconvert' => 'Convertidor OpenID',
+	'openid-desc' => 'Permite a los usuarios iniciar sesión en el wiki con un [//openid.net/ OpenID]. Si esto está activado en el wiki, también pueden utilizar su URL de cuenta de usuario de este wiki como OpenID para iniciar sesión en otros sitios web que utilicen OpenID',
+	'openidlogin' => 'Iniciar sesión / crear cuenta con OpenID',
+	'openidserver' => 'Servidor de OpenID',
+	'openidxrds' => 'Archivo de Yadis',
+	'openidconvert' => 'Convertidor de OpenID',
 	'openiderror' => 'Error de verificación',
-	'openiderrortext' => 'Un error ocurrió durante la verificación del URL OpenID.',
-	'openidconfigerror' => 'Error de configuración OpenID',
-	'openidconfigerrortext' => 'La configuración de almacenamiento OpenID de esta wiki es inválido.
-Por favor consulte a un [[Special:ListUsers/sysop|administrador]].',
-	'openidpermission' => 'Error de permiso OpenID',
+	'openiderrortext' => 'Un error ocurrió durante la verificación del URL de OpenID.',
+	'openidconfigerror' => 'Error de configuración de OpenID',
+	'openidconfigerrortext' => 'La configuración de almacenamiento OpenID de este wiki es inválido.
+Consulta a un [[Special:ListUsers/sysop|administrador]].',
+	'openidpermission' => 'Error de permisos de OpenID',
 	'openidpermissiontext' => 'El OpenID que indicaste no tiene permiso de ingresar a este servidor.',
 	'openidcancel' => 'Verificación cancelada',
 	'openidcanceltext' => 'Verificación del URL OpenID fue cancelada.',
 	'openidfailure' => 'Verificación fracasada',
-	'openidfailuretext' => 'Verificación del OpenID fracasó. Mensaje de error: "$1".',
-	'openidsuccess' => 'Verificación fue un éxito',
-	'openidsuccesstext' => 'Verificación del URL OpenID fue un éxito.',
+	'openidfailuretext' => 'La verificación del OpenID falló. Mensaje de error: «$1».',
+	'openidsuccess' => 'Verificación exitosa',
+	'openidsuccesstext' => "'''Verificación e inicio de sesión exitosos como usuario $1'''.
+
+Tu OpenID es $2 .
+
+Ésta y otras OpenID, y una contraseña de cuenta opcional, pueden administrarse en tus [[Special:Preferences|preferencias]].",
 	'openidusernameprefix' => 'OpenIDUser',
-	'openidserverlogininstructions' => 'Ingresa tu password debajo para ingresar a $3 como el usuario $2 (página de usuario $1)',
-	'openidtrustinstructions' => 'Verifique si usted desea compartir información con $1.',
+	'openidserverlogininstructions' => '$3 solicita que introduzcas tu contraseña para tu página de usuario $2 $1 (ésta es tu URL de OpenID)',
+	'openidtrustinstructions' => 'Comprueba si quieres compartir datos con $1.',
 	'openidallowtrust' => 'Permitir a $1 confiar en esta cuenta de usuario.',
 	'openidnopolicy' => 'El sitio no ha especificado una política de privacidad.',
-	'openidpolicy' => 'Verifique la <a target="_new" href="$1">política de privacidad</a> para mayor información.',
+	'openidpolicy' => 'Comprueba la <a target="_new" href="$1">política de privacidad</a> para mayor información.',
 	'openidoptional' => 'Opcional',
-	'openidrequired' => 'Necesario',
-	'openidnickname' => 'Sobrenombre',
+	'openidrequired' => 'Obligatorio',
+	'openidnickname' => 'Apodo',
 	'openidfullname' => 'Nombre completo',
 	'openidemail' => 'Dirección de correo electrónico',
 	'openidlanguage' => 'Idioma',
-	'openidnotavailable' => 'Tu sobrenombre preferido ($1) se encuentra ocupado por otro usuario.',
-	'openidnotprovided' => 'Tu servidor de OpenID no proporcionó un sobrenombre (porque no puede o porque indicaste que no lo hiciera).',
+	'openidtimezone' => 'Huso horario',
+	'openidchooselegend' => 'Elección del nombre de usuario y cuenta',
 	'openidchooseinstructions' => 'Todos los usuarios necesitan un sobrenombre;
 puedes escoger uno de las opciones debajo.',
+	'openidchoosenick' => 'Tu apodo ($1)',
 	'openidchoosefull' => 'Su nombre completo ($1)',
 	'openidchooseurl' => 'Un nombre escogido a partir de tu OpenID ($1)',
 	'openidchooseauto' => 'Un nombre autogenerado ($1)',
 	'openidchoosemanual' => 'Un nombre de su preferencia:',
-	'openidchooseexisting' => 'Una cuenta existente en este wiki:',
-	'openidchoosepassword' => 'contraseña:',
-	'openidconvertinstructions' => 'Este formulario permite cambiar tu cuenta de usuario para que use una URL de OpenID.',
+	'openidchooseexisting' => 'Una cuenta existente en este wiki',
+	'openidchooseusername' => 'nombre de usuario:',
+	'openidchoosepassword' => 'Contraseña:',
+	'openidconvertinstructions' => 'Este formulario te permite cambiar tu cuenta de usuario para usar una URL de OpenID o agregar más URLs de OpenID.',
+	'openidconvertoraddmoreids' => 'Convertir a OpenID o añadir otra URL OpenID',
 	'openidconvertsuccess' => 'Convertido exitosamente a OpenID',
-	'openidconvertsuccesstext' => 'Usted ha convertido exitosamente su OpenID a $1.',
-	'openidconvertyourstext' => 'Esto ya es su OpenID.',
+	'openidconvertsuccesstext' => 'Has convertido correctamente tu OpenID a $1.',
+	'openidconvertyourstext' => 'Ya es tu OpenID.',
 	'openidconvertothertext' => 'Esto es el OpenID de alguien más.',
-	'openidalreadyloggedin' => "'''¡Ya has ingresado al sistema, $1!'''
+	'openidalreadyloggedin' => 'Ya has iniciado sesión.',
+	'openidalreadyloggedintext' => "'''¡Ya has iniciado sesión, $1!'''
 
-Si quieres usar OpenID para ingresar en el futuro, puedes [[Special:OpenIDConvert|convertir tu cuenta a OpenID]].",
-	'openidnousername' => 'Ningún nombre de usuario especificado.',
+Puedes gestionar (ver, eliminar, añadir) OpenID en la pestaña OpenID de tus [[Special:Preferences|preferencias]].",
+	'openidnousername' => 'No se especificó ningún nombre de usuario.',
 	'openidbadusername' => 'Nombre de usuario mal especificado.',
-	'openidautosubmit' => 'Esta página incluye un formulario que será automáticamnte enviado si dispones de JavaScript.
-De lo contrario, usa el botón \\"Continuar\\".',
-	'openidclientonlytext' => 'No puede usar cuentas de este wiki como OpenID en otro sitio.',
-	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => '{{SITENAME}} acepta el estándar [http://openid.net/ OpenID] para ingreso único entre múltiples sitios web.
-OpenID te permite ingresar en varios sitios web sin necesidad de usar un password diferente para cada uno.
-(Ver [http://es.wikipedia.org/wiki/OpenID el artículo en Wikipedia] para más información)
-
-Si ya dispones de una cuenta en {{SITENAME}} puedes [[Special:UserLogin|ingresar]] con tu usuario y password usuales. Para usar OpenID en el futuro, puedes [[Special:OpenIDConvert|convertir tu cuenta a OpenID]] después de haber ingresado.
-
-Hay muchos [[http://openid.net/get proveedores de OpenID]] y quizás ya dispongas de una cuenta OpenID en otro servicio.',
-	'openidupdateuserinfo' => 'Actualizar mi información personal',
-	'openid-prefstext' => 'Preferencias de [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Ocultar su <a href="http://openid.net/">OpenID</a> en su página de usuario, si usted ingresa con OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Actualizar mi información desde mi perfil OpenID cada vez que ingreso.',
+	'openidautosubmit' => 'Esta página incluye un formulario que será enviado automáticamnte si dispones de JavaScript.
+De lo contrario, usa el botón «Continue» (Continuar).',
+	'openidclientonlytext' => 'No puedes usar cuentas de este wiki como OpenID en otro sitio.',
+	'openidloginlabel' => 'URL de OpenID',
+	'openidlogininstructions' => '{{SITENAME}} usa el estándar [//openid.net/ OpenID] para iniciar una sola sesión entre varios sitios web.
+OpenID te permite iniciar sesión en muchos sitios web diferentes evitando usar una contraseña diferente en cada uno.
+(Véase [//es.wikipedia.org/wiki/OpenID el artículo de Wikipedia correspondiente] para más información.)
+Existen muchos [//openid.net/get/ proveedores de OpenID], y quizás tú ya poseas alguna cuenta con OpenID en otro servicio.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''solo'' permite iniciar sesión con OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Si ya tienes una cuenta en {{SITENAME}}, puedes [[Special:UserLogin|iniciar sesión]] con tu nombre de usuario y contraseña como siempre.
+Para usar OpenID en el futuro, puedes [[Special:OpenIDConvert|convertir tu cuenta a OpenID]] después de haber iniciado sesión normalmente.',
+	'openidupdateuserinfo' => 'Actualizar mi información personal:',
+	'openiddelete' => 'Eliminar OpenID',
+	'openiddelete-text' => 'Al hacer clic en el botón «{{int:openiddelete-button}}», eliminarás el OpenID $1 de tu cuenta.
+Ya no podrás iniciar sesión con este OpenID.',
+	'openiddelete-button' => 'Confirmar',
+	'openiddeleteerrornopassword' => 'No puedes eliminar todos tus OpenID porque tu cuenta no tiene contraseña.
+No podrás iniciar sesión sin un OpenID.',
+	'openiddeleteerroropenidonly' => 'No puedes eliminar todos tus OpenID porque solo se puede iniciar sesión con OpenID.
+No podrás iniciar sesión sin un OpenID.',
+	'openiddelete-sucess' => 'El OpenID fue eliminado exitosamente de tu cuenta.',
+	'openiddelete-error' => 'Ocurrió un error al eliminar el OpenID de tu cuenta.',
+	'openid-openids-were-not-merged' => 'El(los) OpenID(s) no se fusionaron cuando se fusionaban las cuentas de usuario.',
+	'openid-prefstext' => 'Preferencias de [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Ocultar tu OpenID en tu página de usuario, si inicias sesión con OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Actualizar la siguiente información desde mi perfil OpenID cada vez que inicie sesión:',
+	'openid-urls-desc' => 'Los OpenID asociados a tu cuenta:',
+	'openid-urls-action' => 'Acción',
+	'openid-urls-delete' => 'Eliminar',
+	'openid-add-url' => 'Añadir un OpenID nuevo',
+	'openid-login-or-create-account' => 'Iniciar sesión o crear una cuenta nueva',
+	'openid-provider-label-openid' => 'Introduce la URL de OpenID',
+	'openid-provider-label-google' => 'Iniciar sesión usando tu cuenta de Google',
+	'openid-provider-label-yahoo' => 'Iniciar sesión usando tu cuenta de Yahoo',
+	'openid-provider-label-aol' => 'Introduce tu nombre de usuario de AOL',
+	'openid-provider-label-other-username' => 'Introduce tu nombre de usuario de $1',
+	'specialpages-group-openid' => 'Páginas de servicio de OpenID e información de estado',
+	'right-openid-dashboard-access' => 'Acceso estándar al tablero de OpenID',
+	'right-openid-dashboard-admin' => 'Acceso de administrador al tablero de OpenID',
+	'openid-dashboard-title' => 'Tablero de OpenID',
+	'openid-dashboard-title-admin' => 'Tablero de OpenID (administrador)',
+	'openid-dashboard-introduction' => 'La configuración actual de la extensión de OpenID ([$1 ayuda])',
+	'openid-dashboard-number-openid-users' => 'Número de usuarios con OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Número de OpenID (total)',
+	'openid-dashboard-number-users-without-openid' => 'Número de usuarios sin OpenID',
 );
 
 /** Estonian (Eesti)
  * @author Avjoska
+ * @author Pikne
  */
 $messages['et'] = array(
 	'openidoptional' => 'Valikuline',
@@ -922,43 +1865,55 @@
 	'openidfullname' => 'Täisnimi',
 	'openidemail' => 'E-posti aadress',
 	'openidlanguage' => 'Keel',
-	'openidnotavailable' => 'Sinu eelistatud hüüdnimi ($1) on juba kasutuses.',
+	'openidtimezone' => 'Ajavöönd',
 	'openidchoosefull' => 'Sinu täisnimi ($1)',
 	'openidchoosemanual' => 'Sinu valitud nimi:',
-	'openidchooseexisting' => 'Olemasolev konto siin vikis:',
-	'openidchoosepassword' => 'parool:',
+	'openidchooseexisting' => 'Olemasolev konto selles vikis',
+	'openidchoosepassword' => 'Parool:',
 	'openidconvertyourstext' => 'See on juba Sinu avatud ID.',
 	'openidconvertothertext' => 'See on kellegi teise avatud ID.',
 	'openidalreadyloggedin' => "'''Sa oled juba sisse logitud, $1!'''
 
 Kui soovid kasutada avatud ID-d tulevikus sisselogimiseks, võid [[Special:OpenIDConvert|konvertida oma konto, kasutamaks avatud ID-d]].",
+	'openidnousername' => 'Kasutajanimi määratlemata.',
+	'openidbadusername' => 'Märgitud kasutajanimi on vigane.',
+	'openiddelete-button' => 'Kinnita',
+	'openid-urls-delete' => 'Kustuta',
+	'openid-provider-label-google' => "Logi sisse oma Google'i konto kaudu",
+	'openid-provider-label-yahoo' => 'Logi sisse oma Yahoo konto kaudu',
 );
 
 /** Basque (Euskara)
+ * @author Kobazulo
  * @author Theklan
  */
 $messages['eu'] = array(
+	'openidserver' => 'OpenID zerbitzaria',
 	'openidoptional' => 'Aukerazkoa',
 	'openidrequired' => 'Nahitaezkoa',
 	'openidnickname' => 'Ezizena',
 	'openidfullname' => 'Izen osoa',
 	'openidemail' => 'E-posta helbidea',
 	'openidlanguage' => 'Hizkuntza',
-	'openidnotavailable' => 'Nahi duzun ezizena ($1) beste lankide batek erabiltzen du jada.',
+	'openidchoosepassword' => 'Pasahitza:',
 );
 
 /** Finnish (Suomi)
+ * @author Centerlink
+ * @author Cimon Avaro
  * @author Crt
  * @author Mobe
  * @author Nike
+ * @author Olli
  * @author Silvonen
  * @author Str4nd
+ * @author Varusmies
  * @author Vililikku
+ * @author ZeiP
  */
 $messages['fi'] = array(
-	'openid-desc' => 'Kirjaudu wikiin [http://openid.net/ OpenID:llä] ja muille OpenID-tuetuille sivustoille wiki-käyttäjätilillä',
-	'openidlogin' => 'Kirjaudu OpenID:llä',
-	'openidfinish' => 'Lopeta OpenID-kirjautuminen',
+	'openid-desc' => 'Kirjaudu wikiin [//openid.net/ OpenID:llä] ja muille OpenID-tuetuille sivustoille wiki-käyttäjätilillä.',
+	'openidlogin' => 'Kirjaudu sisään tai luo tunnus OpenID:llä',
 	'openidserver' => 'OpenID-palvelin',
 	'openidxrds' => 'Yadis-tiedosto',
 	'openidconvert' => 'OpenID-muunnin',
@@ -978,6 +1933,7 @@
 	'openidusernameprefix' => 'OpenID-käyttäjä',
 	'openidserverlogininstructions' => 'Kirjaudu sisään sivustolle $3 käyttäjänä $2 (käyttäjäsivu $1) syöttämällä salasana alle.',
 	'openidtrustinstructions' => 'Tarkista, haluatko jakaa tietoja kohteen $1 kanssa.',
+	'openidallowtrust' => 'Salli sivuston $1 luottaa tähän käyttäjätiliin.',
 	'openidnopolicy' => 'Sivusto ei ole määritellyt yksityisyyskäytäntöä.',
 	'openidpolicy' => 'Lisää tietoa on <a target="_new" href="$1">yksityisyyskäytännöissä</a>.',
 	'openidoptional' => 'Valinnainen',
@@ -986,48 +1942,80 @@
 	'openidfullname' => 'Koko nimi',
 	'openidemail' => 'Sähköpostiosoite',
 	'openidlanguage' => 'Kieli',
-	'openidnotavailable' => 'Toinen käyttäjä käyttää jo haluamaasi nimimerkkiä ($1).',
-	'openidnotprovided' => 'OpenID-palvelimesi ei tarjoa nimimerkkiä (joko se ei osaa, tai olet kieltänyt sen).',
+	'openidtimezone' => 'Aikavyöhyke',
+	'openidchooselegend' => 'Käyttäjätunnuksen valinta',
 	'openidchooseinstructions' => 'Kaikki käyttäjät tarvitsevat nimimerkin.
 Voit valita omasi alla olevista vaihtoehdoista.',
+	'openidchoosenick' => 'Nimimerkkisi ($1)',
 	'openidchoosefull' => 'Koko nimesi ($1)',
 	'openidchooseurl' => 'OpenID:stäsi poimittu nimi ($1)',
 	'openidchooseauto' => 'Automaattisesti luotu nimi ($1)',
 	'openidchoosemanual' => 'Omavalintainen nimi',
 	'openidchooseexisting' => 'Olemassa oleva tunnus tässä wikissä',
-	'openidchoosepassword' => 'salasana:',
-	'openidconvertinstructions' => 'Tällä lomakkeella voit muuttaa käyttäjätilisi käyttämään OpenID-osoitetta.',
+	'openidchooseusername' => 'Käyttäjätunnus:',
+	'openidchoosepassword' => 'Salasana',
+	'openidconvertinstructions' => 'Tällä lomakkeella voit muuttaa käyttäjätilisi käyttämään OpenID-osoitetta tai lisätä OpenID-osoitteita.',
+	'openidconvertoraddmoreids' => 'Siirry OpenID:hen tai lisää uusi OpenID-osoite.',
 	'openidconvertsuccess' => 'Muutettiin onnistuneesti OpenID:hen.',
+	'openidconvertsuccesstext' => 'OpenID:si on muunnettu muotoon $1.',
 	'openidconvertyourstext' => 'Tämä on jo OpenID:si.',
 	'openidconvertothertext' => 'Tämä on jonkun muun OpenID.',
-	'openidalreadyloggedin' => "'''Olet jo kirjautuneena sisään, $1!'''
-
-Jos haluat käyttää OpenID:tä kirjautumiseen jatkossa, voit [[Special:OpenIDConvert|muuntaa tunnuksesi käyttämään OpenID:tä]].",
+	'openidalreadyloggedin' => 'Olet jo kirjautuneena sisään.',
 	'openidnousername' => 'Käyttäjätunnus puuttuu.',
 	'openidbadusername' => 'Käyttäjätunnus on virheellinen.',
 	'openidautosubmit' => 'Tämä sivu sisältää lomakkeen, joka lähettää itse itsensä, jos JavaScript käytössä.
-Muussa tapauksessa valitse <code>Jatka</code>.',
+Muussa tapauksessa valitse <code>Continue</code> (Jatka).',
 	'openidclientonlytext' => 'Et voi käyttää tämän wikin käyttäjätunnuksia OpenID-tunnuksina muilla sivustoilla.',
 	'openidloginlabel' => 'OpenID-URL',
-	'openid-pref-hide' => 'Piilota <a href="http://openid.net/">OpenID:si</a> käyttäjäsivultani, jos kirjaudun sisään OpenID-tunnuksilla.',
+	'openidlogininstructions' => '{{SITENAME}} tukee [//openid.net/ OpenID]-standardia yhden tunnuksen käyttämiseksi eri sivustoilla.
+OpenID mahdollistaa kirjautumisen useille eri sivustoille tarvitsematta eri salasanaa jokaiseen.
+(Katso [//en.wikipedia.org/wiki/OpenID Wikipedian OpenID-artikkeli] saadaksesi lisätietoja.)
+Tarjolla on monia eri [//openid.net/get/ OpenID-tarjoajia], ja sinulla saattaa jo olla OpenID:tä tarjoava tunnus toisessa palvelussa.',
+	'openidupdateuserinfo' => 'Päivitä henkilökohtaiset tietoni:',
+	'openiddelete' => 'Poista OpenID',
+	'openiddelete-text' => 'Napsauttamalla {{int:openiddelete-button}}-paniketta, voit poistaa OpenID:n $1 tunnuksestasi.
+Et voi enää kirjautua sisään tällä OpenID:llä.',
+	'openiddelete-button' => 'Vahvista',
+	'openiddeleteerrornopassword' => 'Et voi poistaa kaikkia OpenID-tunnuksiasi, koska tililläsi ei ole salasanaa.
+Et kykenisi kirjautumaan sisään ilman OpenID-tunnusta.',
+	'openiddeleteerroropenidonly' => 'Et voi poistaa kaikkia OpenID-tunnuksiasi, koska sinun sallitaan kirjautua sisään vain OpenID-tunnuksella.
+Et kykenisi kirjautumaan ilman OpenID-tunnusta.',
+	'openiddelete-sucess' => 'OpenID on onnistuneesti poistettu tilistäsi.',
+	'openiddelete-error' => 'Virhe poistettaessa OpenID:tä tilistäsi.',
+	'openid-prefstext' => '[//openid.net/ OpenID]-asetukset',
+	'openid-pref-hide' => 'Piilota OpenID:si käyttäjäsivultani, jos kirjaudun sisään OpenID-tunnuksilla.',
+	'openid-pref-update-userinfo-on-login' => 'Päivitä seuraavat tiedot OpenID-tiedoista jokaisella kirjautumisella:',
+	'openid-urls-desc' => 'Tiliisi liitetyt OpenID:eet:',
+	'openid-urls-action' => 'Toiminto',
+	'openid-urls-delete' => 'Poista',
+	'openid-add-url' => 'Lisää uusi OpenID',
+	'openid-login-or-create-account' => 'Kirjaudu sisään tai luo tunnus',
+	'openid-provider-label-openid' => 'Anna sinun OpenID URL-osoitteesi',
+	'openid-provider-label-google' => 'Kirjaudu sisään käyttämällä Google-tunnuksiasi',
+	'openid-provider-label-yahoo' => 'Kirjaudu sisään käyttämällä Yahoo-tunnuksiasi',
+	'openid-provider-label-aol' => 'Anna AOL-käyttäjänimesi',
+	'openid-provider-label-other-username' => 'Anna $1-käyttäjätunnuksesi',
 );
 
 /** French (Français)
  * @author Crochet.david
+ * @author Gomoko
  * @author Grondin
  * @author IAlex
  * @author McDutchie
+ * @author Od1n
+ * @author Peter17
+ * @author Sherbrooke
  * @author Zetud
  */
 $messages['fr'] = array(
-	'openid-desc' => "Se connecter au wiki avec [http://openid.net/ OpenID] et se connecter à d'autres sites internet OpenID avec un compte utilisateur du wiki.",
-	'openidlogin' => 'Se connecter avec OpenID',
-	'openidfinish' => 'Finir la connection OpenID',
+	'openid-desc' => 'Se connecter au wiki avec [//openid.net/ OpenID] et se connecter à d’autres sites internet OpenID avec un compte utilisateur du wiki.',
+	'openidlogin' => 'Se connecter ou créer un compte avec OpenID',
 	'openidserver' => 'Serveur OpenID',
 	'openidxrds' => 'Fichier Yadis',
 	'openidconvert' => 'Convertisseur OpenID',
 	'openiderror' => 'Erreur de vérification',
-	'openiderrortext' => "Une erreur est intervenue pendant la vérification de l'adresse OpenID.",
+	'openiderrortext' => 'Une erreur est intervenue pendant la vérification de l’adresse OpenID.',
 	'openidconfigerror' => 'Erreur de configuration de OpenID',
 	'openidconfigerrortext' => 'Le stockage de la configuration OpenID pour ce wiki est incorrecte.
 Veuillez vous mettre en rapport avec un [[Special:ListUsers/sysop|administrateur]] de ce site.',
@@ -1038,9 +2026,14 @@
 	'openidfailure' => 'Échec de la vérification',
 	'openidfailuretext' => 'La vérification de l’adresse OpenID a échouée. Message d’erreur : « $1 »',
 	'openidsuccess' => 'Vérification réussie',
-	'openidsuccesstext' => 'Vérification de l’adresse OpenID réussie.',
+	'openidsuccesstext' => "'''La vérification de l’adresse OpenID est réussie et vous êtes identifié en tant qu'utilisateur $1.'''
+
+Votre OpenID est $2.
+
+Cet OpenID et d'autres optionnels peuvent être gérés dans l'[[Special:Preferences#prefsection-openid|onglet OpenID]] de vos préférences.<br />
+Un mot de passe facultatif de compte peut être ajouté dans votre [[Special:Preferences#prefsection-personal|profil utilisateur]].",
 	'openidusernameprefix' => 'Utilisateur OpenID',
-	'openidserverlogininstructions' => "Entrez votre mot de passe ci-dessous pour vous connecter sur $3 comme utilisateur '''$2''' (page utilisateur $1).",
+	'openidserverlogininstructions' => '$3 demande que vous entriez votre mot de passe pour votre page $1 utilisateur $2 (URL OpenID)',
 	'openidtrustinstructions' => 'Cochez si vous désirez partager les données avec $1.',
 	'openidallowtrust' => 'Autorise $1 à faire confiance à ce compte utilisateur.',
 	'openidnopolicy' => 'Le site n’a pas indiqué une politique des données personnelles.',
@@ -1048,43 +2041,130 @@
 	'openidoptional' => 'Facultatif',
 	'openidrequired' => 'Exigé',
 	'openidnickname' => 'Surnom',
-	'openidfullname' => 'Nom en entier',
-	'openidemail' => 'Adresse courriel',
+	'openidfullname' => 'Nom complet',
+	'openidemail' => 'Adresse électronique',
 	'openidlanguage' => 'Langue',
-	'openidnotavailable' => 'Votre surnom préféré ($1) est déjà utilisé par un autre utilisateur.',
-	'openidnotprovided' => "Votre serveur OpenID n'a pas pu fournir un surnom (soit il ne le peut pas, soit vous lui avez demandé de ne pas le faire).",
-	'openidchooseinstructions' => "Tous les utilisateurs ont besoin d'un surnom ; vous pouvez en choisir un à partir du choix ci-dessous.",
+	'openidtimezone' => 'Zone horaire',
+	'openidchooselegend' => "Choix du nom d'utilisateur et du compte",
+	'openidchooseinstructions' => 'Tous les utilisateurs ont besoin d’un surnom ; vous pouvez en choisir un à partir des choix ci-dessous.',
+	'openidchoosenick' => 'Votre surnom ($1)',
 	'openidchoosefull' => 'Votre nom entier ($1)',
-	'openidchooseurl' => 'Un nom a été choisi depuis votre OpenID ($1)',
+	'openidchooseurl' => 'Un nom choisi depuis votre OpenID ($1)',
 	'openidchooseauto' => 'Un nom créé automatiquement ($1)',
 	'openidchoosemanual' => 'Un nom de votre choix :',
-	'openidchooseexisting' => 'Un compte existant sur ce wiki :',
+	'openidchooseexisting' => 'Un compte existant sur ce wiki',
+	'openidchooseusername' => 'Nom d’utilisateur :',
 	'openidchoosepassword' => 'Mot de passe :',
-	'openidconvertinstructions' => 'Ce formulaire vous laisse changer votre compte utilisateur pour utiliser une adresse OpenID.',
+	'openidconvertinstructions' => 'Ce formulaire vous permet de changer votre compte utilisateur pour utiliser une adresse OpenID ou ajouter des adresses OpenID supplémentaires.',
+	'openidconvertoraddmoreids' => 'Convertir vers OpenID ou ajouter une autre adresse OpenID',
 	'openidconvertsuccess' => 'Converti avec succès vers OpenID',
 	'openidconvertsuccesstext' => 'Vous avez converti avec succès votre OpenID vers $1.',
 	'openidconvertyourstext' => 'C’est déjà votre OpenID.',
-	'openidconvertothertext' => "Ceci est l'OpenID de quelqu'un d'autre.",
-	'openidalreadyloggedin' => "'''Vous êtes déjà connecté{{GENDER:||e|(e)}}, $1 !'''
+	'openidconvertothertext' => 'Ceci est l’OpenID de quelqu’un d’autre.',
+	'openidalreadyloggedin' => 'Vous êtes déjà connecté.',
+	'openidalreadyloggedintext' => "'''Vous êtes déjà connecté, $1 !'''
 
-Vous vous désirez utiliser votre OpenID pour vous connecter ultérieurement, vous pouvez [[Special:OpenIDConvert|convertir votre compte pour utiliser OpenID]].",
+Vous pouvez gérer (voir, supprimer et en ajouter d'autres) OpenID dans l'onglet [[Special:Preferences#prefsection-openid|OpenID]] de vos préférences.",
 	'openidnousername' => 'Aucun nom d’utilisateur n’a été indiqué.',
 	'openidbadusername' => 'Un mauvais nom d’utilisatteur a été indiqué.',
 	'openidautosubmit' => 'Cette page comprend un formulaire qui pourrait être envoyé automatiquement si vous avez activé JavaScript.
-Si tel n’était pas le cas, essayez le bouton « Continuer ».',
+Si tel n’était pas le cas, essayez le bouton « Continue » (continuer).',
 	'openidclientonlytext' => 'Vous ne pouvez utiliser des comptes depuis ce wiki en tant qu’OpenID sur d’autres sites.',
 	'openidloginlabel' => 'Adresse OpenID',
-	'openidlogininstructions' => "{{SITENAME}} supporte le standard [http://openid.net/ OpenID] pour une seule signature entre des sites Internet.
+	'openidlogininstructions' => '{{SITENAME}} prend en charge la norme [//openid.net/ OpenID] pour l’authentification unique entre les sites.
 OpenID vous permet de vous connecter sur plusieurs sites différents sans à avoir à utiliser un mot de passe différent pour chacun d’entre eux.
-(Voyez [http://fr.wikipedia.org/wiki/OpenID l'article de Wikipédia] pour plus d'informations.)
+(Voyez [//fr.wikipedia.org/wiki/OpenID l’article de Wikipédia] pour plus d’informations.)
 
-Si vous avez déjà un compte sur {{SITENAME}}, vous pouvez vous [[Special:UserLogin|connecter]] avec votre nom d'utilisateur et son mot de pas comme d’habitude. Pour utiliser OpenID, à l’avenir, vous pouvez [[Special:OpenIDConvert|convertir votre compte en OpenID]] après que vous vous soyez connecté normallement.
+Il y a de nombreux [//openid.net/get/ fournisseurs OpenID], et vous avez peut-être déjà un compte OpenID activé sur un autre service.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ne vous permet de vous connecter ''uniquement'' avec OpenID.",
+	'openidlogininstructions-passwordloginallowed' => "Si vous avez déjà un compte sur {{SITENAME}}, vous pouvez [[Special:UserLogin|connecter]] avec votre nom d'utilisateur et votre mot de passe comme d'habitude.
+Pour utiliser OpenID dans le futur vous pourrez [[Special:OpenIDConvert|convertir votre compte vers OpenID]] après vous être connecté normalement.",
+	'openidupdateuserinfo' => 'Mettre à jour mes données personnelles :',
+	'openiddelete' => "Supprimer l'OpenID",
+	'openiddelete-text' => "En cliquant sur le bouton « {{int:openiddelete-button}} », vous supprimez l'OpenID $1 de votre compte.
+Vous ne pourrez plus vous connecter avec cet OpenID.",
+	'openiddelete-button' => 'Confirmer',
+	'openiddeleteerrornopassword' => "Vous ne pouvez pas supprimer tous vos OpenID parce que votre compte n'a pas de mot de passe.
+Vous ne pourriez pas vous connecter sans un OpenID.",
+	'openiddeleteerroropenidonly' => "Vous ne pouvez pas supprimer tous vos OpenID parce que vous ne pouvez vous connecter qu'avec OpenID.
+Vous ne pourriez pas vous connecter sans un OpenID.",
+	'openiddelete-sucess' => "L'OpenID a été supprimé avec succès de votre compte.",
+	'openiddelete-error' => "Une erreur est survenue pendant la suppression de l'OpenID de votre compte.",
+	'openid-openids-were-not-merged' => "Les OpenID n'ont pas été fusionnés lors de la fusion des comptes d'utilisateurs.",
+	'openid-prefstext' => 'Préférences de [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Cacher votre OpenID sur votre page utilisateur, si vous vous connectez avec OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Mettre à jour les données suivantes depuis OpenID à chaque fois que je me connecte :',
+	'openid-urls-desc' => 'OpenID associées avec votre compte :',
+	'openid-urls-action' => 'Action',
+	'openid-urls-registration' => "Date d'enregistrement",
+	'openid-urls-delete' => 'Supprimer',
+	'openid-add-url' => 'Ajouter un nouvel OpenID',
+	'openid-login-or-create-account' => 'Se connecter ou créer un nouveau compte',
+	'openid-provider-label-openid' => 'Entrez votre URL OpenID',
+	'openid-provider-label-google' => 'Vous connecter en utilisant votre compte Google',
+	'openid-provider-label-yahoo' => 'Vous connecter en utilisant votre compte Yahoo',
+	'openid-provider-label-aol' => 'Entrez votre nom AOL',
+	'openid-provider-label-other-username' => 'Entrez votre nom d’utilisateur $1',
+	'specialpages-group-openid' => "Pages de service OpenID et d'information sur le statut",
+	'right-openid-dashboard-access' => 'Accès standard au tableau de bord OpenID',
+	'right-openid-dashboard-admin' => 'Accès administrateur au tableau de bord OpenID',
+	'openid-dashboard-title' => 'Tableau de bord OpenID',
+	'openid-dashboard-title-admin' => 'Tableau de bord OpenID (administrateur)',
+	'openid-dashboard-introduction' => "Les paramètres actuels de l'extension OpenID ([$1 aide])",
+	'openid-dashboard-number-openid-users' => "Nombre d'utilisateurs avec OpenID",
+	'openid-dashboard-number-openids-in-database' => 'Nombre de OpenID (total)',
+	'openid-dashboard-number-users-without-openid' => "Nombre d'utilisateurs sans OpenID",
+);
 
-Il existe plusieurs [http://openid.net/get/ fournisseur d'OpenID], et vous pouvez déjà obtenir un compte OpenID activé sur un autre service.",
-	'openidupdateuserinfo' => 'Mettre à jour mes données personnelles',
-	'openid-prefstext' => 'Préférences de [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Cache votre <a href="http://openid.net/">OpenID</a> sur votre page utilisateur, si vous vous connectez avec OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Mettre à jour mes données personnelles depuis OpenID à chaque fois que je me connecte',
+/** Franco-Provençal (Arpetan)
+ * @author Cedric31
+ * @author ChrisPtDe
+ */
+$messages['frp'] = array(
+	'openidlogin' => 'Sè branchiér ou ben fâre un compto avouéc OpenID',
+	'openidserver' => 'Sèrvor OpenID',
+	'openidxrds' => 'Fichiér Yadis',
+	'openidconvert' => 'Convèrtissor OpenID',
+	'openiderror' => 'Èrror de contrôlo',
+	'openidconfigerror' => 'Èrror de configuracion de OpenID',
+	'openidpermission' => 'Èrror de pèrmission OpenID',
+	'openidcancel' => 'Contrôlo anulâ',
+	'openidfailure' => 'Falyita du contrôlo',
+	'openidsuccess' => 'Contrôlo reussi',
+	'openidusernameprefix' => 'Usanciér OpenID',
+	'openidpolicy' => 'Controlar la <a target="_new" href="$1">politica de confidencialitât</a> por més d’enformacions.',
+	'openidoptional' => 'U chouèx',
+	'openidrequired' => 'Oblegatouèro',
+	'openidnickname' => 'Surnom',
+	'openidfullname' => 'Nom complèt',
+	'openidemail' => 'Adrèce èlèctronica',
+	'openidlanguage' => 'Lengoua',
+	'openidtimezone' => 'Zona horèra',
+	'openidchooselegend' => 'Chouèx du nom d’utilisator et du compto',
+	'openidchoosenick' => 'Voutron surnom ($1)',
+	'openidchoosefull' => 'Voutron nom complèt ($1)',
+	'openidchooseurl' => 'Un nom chouèsi dês voutron OpenID ($1)',
+	'openidchooseauto' => 'Un nom fêt ôtomaticament ($1)',
+	'openidchoosemanual' => 'Un nom de voutron chouèx :',
+	'openidchooseexisting' => 'Un compto ègzistent sur ceti vouiqui',
+	'openidchooseusername' => 'Nom d’usanciér :',
+	'openidchoosepassword' => 'Contresegno :',
+	'openidnousername' => 'Nion nom d’utilisator at étâ spècefiâ.',
+	'openidbadusername' => 'Un crouyo nom d’utilisator at étâ spècefiâ.',
+	'openidloginlabel' => 'Adrèce OpenID',
+	'openidupdateuserinfo' => 'Betar a jorn mes balyês a mè :',
+	'openiddelete' => 'Suprimar l’OpenID',
+	'openiddelete-button' => 'Confirmar',
+	'openid-urls-action' => 'Accion',
+	'openid-urls-registration' => 'Dâta d’encartâjo',
+	'openid-urls-delete' => 'Suprimar',
+	'openid-add-url' => 'Apondre un OpenID novél',
+	'openid-login-or-create-account' => 'Sè branchiér ou ben fâre un compto novél',
+	'openid-provider-label-openid' => 'Buchiéd voutra adrèce OpenID',
+	'openid-provider-label-aol' => 'Buchiéd voutron nom AOL',
+	'openid-provider-label-other-username' => 'Buchiéd voutron nom d’utilisator $1',
+	'openid-dashboard-title' => 'Tablô de bôrd OpenID',
+	'openid-dashboard-title-admin' => 'Tablô de bôrd OpenID (administrator)',
 );
 
 /** Irish (Gaeilge)
@@ -1098,9 +2178,8 @@
  * @author Toliño
  */
 $messages['gl'] = array(
-	'openid-desc' => 'Acceder ao sistema do wiki cun [http://openid.net/ OpenID] e acceder a outras páxinas web OpenID cunha conta de usuario dun wiki',
-	'openidlogin' => 'Acceder ao sistema co OpenID',
-	'openidfinish' => 'Saír do sistema OpenID',
+	'openid-desc' => 'Acceder ao sistema do wiki cun [//openid.net/ OpenID] e acceder a outras páxinas web OpenID cunha conta de usuario dun wiki',
+	'openidlogin' => 'Acceder ao sistema ou crear unha conta co OpenID',
 	'openidserver' => 'Servidor do OpenID',
 	'openidxrds' => 'Ficheiro Yadis',
 	'openidconvert' => 'Transformador OpenID',
@@ -1116,54 +2195,93 @@
 	'openidfailure' => 'Fallou a verificación',
 	'openidfailuretext' => 'Fallou a verificación da dirección URL do OpenID. Mensaxe de erro: "$1"',
 	'openidsuccess' => 'A verificación foi un éxito',
-	'openidsuccesstext' => 'A verificación da dirección URL do OpenID foi un éxito.',
+	'openidsuccesstext' => "'''A verificación e o rexistro como usuario $1 foron correctos.'''
+
+O seu OpenID é $2.
+
+Pode xestionar este e outros OpenID e contrasinais opcionais na [[Special:Preferences#prefsection-openid|lapela OpenID]] das súas preferencias.<br />
+Pode engadir un contrasinal opcional no seu [[Special:Preferences#prefsection-personal|perfil de usuario]].",
 	'openidusernameprefix' => 'Usuario do OpenID',
-	'openidserverlogininstructions' => 'Insira o seu contrasinal embaixo para acceder a $3 como o usuario $2 (páxina de usuario $1).',
+	'openidserverlogininstructions' => '$3 solicita que insira o seu contrasinal para o seu usuario $2 páxina $1 (este é o enderezo URL do seu OpenID)',
 	'openidtrustinstructions' => 'Comprobe se quere compartir datos con $1.',
 	'openidallowtrust' => 'Permitir que $1 revise esta conta de usuario.',
 	'openidnopolicy' => 'O sitio non especificou unha política de privacidade.',
 	'openidpolicy' => 'Comprobe a <a target="_new" href="$1">política de privacidade</a> para máis información.',
 	'openidoptional' => 'Opcional',
-	'openidrequired' => 'Necesario',
+	'openidrequired' => 'Obrigatorio',
 	'openidnickname' => 'Alcume',
 	'openidfullname' => 'Nome completo',
 	'openidemail' => 'Enderezo de correo electrónico',
 	'openidlanguage' => 'Lingua',
-	'openidnotavailable' => 'O seu alcume preferido ($1) xa está sendo usado por outro usuario.',
-	'openidnotprovided' => 'O servidor do seu OpenID non proporcionou un alcume (porque non pode ou porque vostede lle dixo que non o fixera).',
+	'openidtimezone' => 'Zona horaria',
+	'openidchooselegend' => 'Elección do nome de usuario e da conta',
 	'openidchooseinstructions' => 'Todos os usuarios precisan un alcume; pode escoller un de entre as opcións de embaixo.',
+	'openidchoosenick' => 'O seu alcume ($1)',
 	'openidchoosefull' => 'O seu nome completo ($1)',
 	'openidchooseurl' => 'Un nome tomado do seu OpenID ($1)',
-	'openidchooseauto' => 'Un nome autoxerado ($1)',
+	'openidchooseauto' => 'Un nome xerado automaticamente ($1)',
 	'openidchoosemanual' => 'Un nome da súa escolla:',
-	'openidchooseexisting' => 'Unha conta existente neste wiki:',
-	'openidchoosepassword' => 'contrasinal:',
-	'openidconvertinstructions' => 'Este formulario permítelle cambiar a súa conta de usuario para usar un enderezo URL de OpenID.',
+	'openidchooseexisting' => 'Unha conta existente neste wiki',
+	'openidchooseusername' => 'Nome de usuario:',
+	'openidchoosepassword' => 'Contrasinal:',
+	'openidconvertinstructions' => 'Este formulario permítelle cambiar a súa conta de usuario para usar un enderezo URL de OpenID ou engadir máis enderezos URL de OpenID.',
+	'openidconvertoraddmoreids' => 'Converter a OpenID ou engadir outro enderezo URL de OpenID',
 	'openidconvertsuccess' => 'Convertiuse con éxito a OpenID',
 	'openidconvertsuccesstext' => 'Converteu con éxito o seu OpenID a $1.',
 	'openidconvertyourstext' => 'Ese xa é o seu OpenID.',
 	'openidconvertothertext' => 'Ese é o OpenID de alguén.',
-	'openidalreadyloggedin' => "'''Está dentro do sistema, $1!'''
+	'openidalreadyloggedin' => 'Xa está identificado.',
+	'openidalreadyloggedintext' => "'''Xa está identificado como $1!'''
 
-Se quere usar OpenID para acceder ao sistema no futuro, pode [[Special:OpenIDConvert|converter a súa conta para usar OpenID]].",
-	'openidnousername' => 'Non foi especificado ningún nome de usuario.',
+Pode xestionar (ollar, borrar, engadir) os OpenID na [[Special:Preferences#prefsection-openid|lapela OpenID]] das súas preferencias.",
+	'openidnousername' => 'Non especificou ningún nome de usuario.',
 	'openidbadusername' => 'O nome de usuario especificado é incorrecto.',
-	'openidautosubmit' => 'Esta páxina inclúe un formulario que debería ser enviado automaticamente se ten o JavaScript permitido.
-Se non é así, probe a premer no botón \\"Continuar\\".',
+	'openidautosubmit' => 'Esta páxina inclúe un formulario que debería ser enviado automaticamente se ten o JavaScript activado.
+Se non é así, probe a premer no botón "Continue" (Continuar).',
 	'openidclientonlytext' => 'Non pode usar contas deste wiki como OpenIDs noutro sitio.',
-	'openidloginlabel' => 'Dirección URL do OpenID',
-	'openidlogininstructions' => '{{SITENAME}} soporta o  [http://openid.net/ OpenID] estándar para unha soa sinatura entre os sitios web.
+	'openidloginlabel' => 'Enderezo URL do OpenID',
+	'openidlogininstructions' => '{{SITENAME}} soporta o [//openid.net/ OpenID] estándar para unha soa sinatura entre os sitios web.
 OpenID permítelle rexistrarse en diferentes sitios web sen usar un contrasinal diferente para cada un.
-(Consulte o [http://en.wikipedia.org/wiki/OpenID artigo sobre o OpenID na Wikipedia en inglés] para obter máis información.)
-
-Se xa ten unha conta en {{SITENAME}}, pode [[Special:UserLogin|acceder ao sistema]] co seu nome de usuario e contrasinal como o fai habitualmente.
-Para usar o OpenID no futuro, pode [[Special:OpenIDConvert|converter a súa conta en OpenID]] tras ter accedido ao sistema como fai normalmente.
-
-Hai moitos [http://openid.net/get/ proveedores públicos de OpenID] e xa pode ter unha conta co OpenID activado noutro servizo.',
-	'openidupdateuserinfo' => 'Actualizar a miña información persoal',
-	'openid-prefstext' => 'Preferencias do [http://openid.net/ OpenID]',
+(Consulte o [//en.wikipedia.org/wiki/OpenID artigo sobre o OpenID na Wikipedia en inglés] para obter máis información.)
+Hai moitos [//openid.net/get/ provedores de OpenID] e xa pode ter unha conta co OpenID activado noutro servizo.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} permite ''unicamente'' o acceso mediante OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Se xa ten unha conta en {{SITENAME}}, pode [[Special:UserLogin|acceder ao sistema]] co seu nome de usuario e contrasinal, como de costume.
+Para utilizar o OpenID no futuro, pode [[Special:OpenIDConvert|converter súa conta nun OpenID]] despois de acceder normalmente.',
+	'openidupdateuserinfo' => 'Actualizar a miña información persoal:',
+	'openiddelete' => 'Borrar o OpenID',
+	'openiddelete-text' => 'Ao premer no botón "{{int:openiddelete-button}}", borrará o OpenID $1 da súa conta.
+Non será capaz de volver acceder ao sistema con este OpenID.',
+	'openiddelete-button' => 'Confirmar',
+	'openiddeleteerrornopassword' => 'Non pode borrar todos os seus OpenID porque a súa conta non ten contrasinal.
+Non podería conectarse sen un OpenID.',
+	'openiddeleteerroropenidonly' => 'Non pode borrar todos os seus OpenID porque non se pode conectar máis que con OpenID.
+Non podería conectarse sen un OpenID.',
+	'openiddelete-sucess' => 'O OpenID foi eliminado con éxito da súa conta.',
+	'openiddelete-error' => 'Houbo un erro ao eliminar o OpenID da súa conta.',
+	'openid-openids-were-not-merged' => 'Os OpenID non se fusionaron ao mesturar as contas de usuario.',
+	'openid-prefstext' => 'Preferencias do [//openid.net/ OpenID]',
 	'openid-pref-hide' => 'Agoche o enderezo URL do seu OpenID na súa páxina de usuario, se accede ao sistema con OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Actualizar a miña información persoal do OpenID cada vez que acceda ao sistema',
+	'openid-pref-update-userinfo-on-login' => 'Actualizar a seguinte información do OpenID cada vez que acceda ao sistema:',
+	'openid-urls-desc' => 'OpenIDs asociados á súa conta:',
+	'openid-urls-action' => 'Acción',
+	'openid-urls-registration' => 'Data e hora de rexistro',
+	'openid-urls-delete' => 'Borrar',
+	'openid-add-url' => 'Engadir un novo OpenID',
+	'openid-login-or-create-account' => 'Acceder ou crear unha conta nova',
+	'openid-provider-label-openid' => 'Insira o enderezo URL do seu OpenID',
+	'openid-provider-label-google' => 'Acceder usando a súa conta do Google',
+	'openid-provider-label-yahoo' => 'Acceder usando a súa conta do Yahoo',
+	'openid-provider-label-aol' => 'Insira o seu nome AOL',
+	'openid-provider-label-other-username' => 'Insira o seu nome de usuario $1',
+	'specialpages-group-openid' => 'Páxinas de servizo e información sobre o estado do OpenID',
+	'right-openid-dashboard-access' => 'Acceso estándar ao taboleiro do OpenID',
+	'right-openid-dashboard-admin' => 'Acceso de administrador ao taboleiro do OpenID',
+	'openid-dashboard-title' => 'Taboleiro de OpenID',
+	'openid-dashboard-title-admin' => 'Taboleiro de OpenID (administrador)',
+	'openid-dashboard-introduction' => 'A configuración actual da extensión OpenID ([$1 axuda])',
+	'openid-dashboard-number-openid-users' => 'Número de usuarios con OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Número de OpenID (total)',
+	'openid-dashboard-number-users-without-openid' => 'Número de usuarios sen OpenID',
 );
 
 /** Ancient Greek (Ἀρχαία ἑλληνικὴ)
@@ -1172,19 +2290,25 @@
  */
 $messages['grc'] = array(
 	'openidoptional' => 'Προαιρετικόν',
+	'openidrequired' => 'Ἀπαιτούμενον',
 	'openidnickname' => 'Ψευδώνυμον',
+	'openidfullname' => 'Πλῆρες ὄνομα',
 	'openidemail' => 'Ἡλεκτρονικὴ διεύθυνσις',
 	'openidlanguage' => 'Γλῶττα',
-	'openidchoosepassword' => 'σύνθημα:',
+	'openidtimezone' => 'Χρονικὴ ζώνη:',
+	'openidchoosepassword' => 'Σῆμα:',
+	'openiddelete-button' => 'Κυροῦν',
+	'openid-urls-action' => 'Δρᾶσις',
+	'openid-urls-delete' => 'Σβεννύναι',
 );
 
 /** Swiss German (Alemannisch)
+ * @author Als-Chlämens
  * @author Als-Holder
  */
 $messages['gsw'] = array(
-	'openid-desc' => 'Mit eme Wiki-Benutzerkonto in däm Wiki mit ere [http://openid.net/ OpenID] aamälde un bi andere Netzsyte aamälde, wu OpenID unterstitze',
-	'openidlogin' => 'Aamälde mit OpenID',
-	'openidfinish' => 'OpenID-Aamäldig abschliesse',
+	'openid-desc' => 'Mit eme Wiki-Benutzerkonto in däm Wiki mit ere [//openid.net/ OpenID] aamälde un bi andere Netzsyte aamälde, wu OpenID unterstitze',
+	'openidlogin' => 'Aamälde/Benutzerkonto erstelle mit OpenID',
 	'openidserver' => 'OpenID-Server',
 	'openidxrds' => 'Yadis-Datei',
 	'openidconvert' => 'OpenID-Konverter',
@@ -1213,17 +2337,20 @@
 	'openidfullname' => 'Vollständiger Name',
 	'openidemail' => 'E-Mail-Adräss:',
 	'openidlanguage' => 'Sproch',
-	'openidnotavailable' => 'Dyy bevorzugte Benutzername ($1) wird scho vun eme andere Benutzer verwändet.',
-	'openidnotprovided' => 'Dyy OpenID-Server unterstitzt kei Nicknäme (wel er s nit cha oder wel Du s ihm nit erlaubt hesch).',
+	'openidtimezone' => 'Zytzone',
+	'openidchooselegend' => 'Benutzernameuuswahl',
 	'openidchooseinstructions' => 'Alli Benutzer bruuche ne Benutzername;
 Du chasch us däre Lischt ein uussueche.',
+	'openidchoosenick' => 'Dyy Spitzname ($1)',
 	'openidchoosefull' => 'Dyy vollständige Name ($1)',
 	'openidchooseurl' => 'E Name us Dyynere OpenID ($1)',
 	'openidchooseauto' => 'E automatisch aagleite Name ($1)',
 	'openidchoosemanual' => 'E vu Dir gwehlte Name:',
 	'openidchooseexisting' => 'E Benutzerkonto, wu s in däm Wiki git:',
+	'openidchooseusername' => 'Benutzername:',
 	'openidchoosepassword' => 'Passwort:',
-	'openidconvertinstructions' => 'Mit däm Formular chasch Dyy Benutzerkonto frejgee fir d Benutzig vun ere OpenID-URL.',
+	'openidconvertinstructions' => 'Mit däm Formular chasch Dyy Benutzerkonto frejgee fir d Benutzig vun ere OpenID-URL oder firzum meh OpenIds yyfiege.',
+	'openidconvertoraddmoreids' => 'Zuen ere OpenId wägsle oder e anderi OpenId zuefiege',
 	'openidconvertsuccess' => 'Erfolgryych no OpenID konvertiert',
 	'openidconvertsuccesstext' => 'Du hesch d Konvertierig vu Dyynere OpenID no $1 erfolgryych durgfiert.',
 	'openidconvertyourstext' => 'Des isch scho Dyyni OpenID.',
@@ -1233,21 +2360,39 @@
 Wänn Du OpenID fir s Aamälde in Zuechumft wit nutze, no chasch [[Special:OpenIDConvert|Dyy Benutzerkonto no OpenID konvertiere]].",
 	'openidnousername' => 'Kei Benutzername aagee.',
 	'openidbadusername' => 'Falsche Benutzername aagee.',
-	'openidautosubmit' => 'Uf däre Syte het s e Formular, wu automatisch ibertrait wird, wänn JavaSkript aktiviert isch. Wänn nit, no druck bitte uf „Wyter“.',
+	'openidautosubmit' => 'Uf däre Syte het s e Formular, wu automatisch ibertrait wird, wänn JavaSkript aktiviert isch. Wänn nit, no druck bitte uf „Continue“ (Wyter).',
 	'openidclientonlytext' => 'Du chasch kei Benutzerkonte us däm Wiki as OpenID fir anderi Syte verwände.',
 	'openidloginlabel' => 'OpenID-URL',
-	'openidlogininstructions' => '{{SITENAME}} unterstitzt dr [http://openid.net/ OpenID]-Standard zum sich fir mehreri Websites aazmälde.
+	'openidlogininstructions' => '{{SITENAME}} unterstitzt dr [//openid.net/ OpenID]-Standard zum sich fir mehreri Websites aazmälde.
 OpenID mäldet Di bi vyyle unterschidlige Netzsyte aa, ohni ass Du fir jedi e ander Passwort muesch verwände.
-(Meh Informatione bietet dr [http://de.wikipedia.org/wiki/OpenID dytsch Wikipedia-Artikel zue dr OpenID].)
+(Meh Informatione bietet dr [//de.wikipedia.org/wiki/OpenID dytsch Wikipedia-Artikel zue dr OpenID].)
 
 Wänn Du imfall scho ne Benutzerkonto bi {{SITENAME}} hesch, no chasch Di ganz normal mit em Benutzername un em Passwort [[Special:UserLogin|aamälde]].
 Wänn Du in Zuechumft OpenID mechtsch verwände, chasch [[Special:OpenIDConvert|Dyy Account zue OpenID konvertiere]], wänn Di normal aagmäldet hesch.
 
 S git vyyl [http://wiki.openid.net/Public_OpenID_providers effentligi OpenID-Provider] un villicht hesch scho ne  Benutzerkonto mit aktiviertem OpenID bin eme andere Aabieter.',
 	'openidupdateuserinfo' => 'Myni persenlige Date aktualisiere',
-	'openid-prefstext' => '[http://openid.net/ OpenID] Yystellige',
-	'openid-pref-hide' => 'Versteck Dyyni <a href="http://openid.net/">OpenID</a> uf Dyynere Benutzersyte, wänn Di mit OpenID aamäldsch.',
-	'openid-pref-update-userinfo-on-login' => 'Myyni Date mit em OpenID-Konto bi jedere Aamäldig aktualisiere',
+	'openiddelete' => 'OpenID lesche',
+	'openiddelete-text' => 'Wänn Du dr „{{int:openiddelete-button}}“-Chnopf drucksch, nimmsch d OpenID $1 us Dyym Benutzerkonto use. Du chasch Di derno nimmi mit däre OpenID aamälde.',
+	'openiddelete-button' => 'Bstätige',
+	'openiddeleteerrornopassword' => 'Du chasch nit Dyyni ganze OpenID lesche, wel Dyy Benutzerkonto kei Passwort het.
+Derno wärsch nimmi imstand, di ohni OpenID aazmälde.',
+	'openiddeleteerroropenidonly' => 'Du chasch nit Dyyni ganze OpenID lesche, wel Du di numme mit ere OpenID aamälde derfsch. Derno wärsch nimmi imstand, di ohni OpenID aazmälde.',
+	'openiddelete-sucess' => 'D OpenID isch erfolgryych us Dyym Benutzerkonto uusegnuu wore.',
+	'openiddelete-error' => 'E Fähler isch ufträtte, derwylscht d OpenID us Dyym Benutzerkonto uusegnuu woren isch.',
+	'openid-prefstext' => '[//openid.net/ OpenID] Yystellige',
+	'openid-pref-hide' => 'Versteck Dyyni OpenID uf Dyynere Benutzersyte, wänn Di mit OpenID aamäldsch.',
+	'openid-pref-update-userinfo-on-login' => 'Die Informatione mit em OpenID-Konto bi jedere Aamäldig aktualisiere',
+	'openid-urls-desc' => 'OpenIDs´, wu mit Dyym Benutzerkonto verbunde sin:',
+	'openid-urls-action' => 'Aktion',
+	'openid-urls-delete' => 'Lesche',
+	'openid-add-url' => 'E neji OpenID zuefiege',
+	'openid-login-or-create-account' => 'Aamälde oder nej Benutzerkonto aalege',
+	'openid-provider-label-openid' => 'Gib Dyy OpenID URL yy',
+	'openid-provider-label-google' => 'Mäld Di aa mit Dyynem Google-Konto',
+	'openid-provider-label-yahoo' => 'Mäld Di aa mit Dyynme Yahoo-Konto',
+	'openid-provider-label-aol' => 'Gib Dyy AOL-Benutzername yy',
+	'openid-provider-label-other-username' => 'Gib Dyy $1-Benutzername yy',
 );
 
 /** Manx (Gaelg)
@@ -1259,22 +2404,27 @@
 	'openidchoosepassword' => 'fockle yn arrey:',
 );
 
+/** Hausa (هَوُسَ) */
+$messages['ha'] = array(
+	'openid-urls-delete' => 'Soke',
+);
+
 /** Hawaiian (Hawai`i)
  * @author Kalani
  */
 $messages['haw'] = array(
 	'openidlanguage' => 'ʻŌlelo',
-	'openidchoosepassword' => 'ʻōlelo hūnā:',
+	'openidchoosepassword' => 'ʻŌlelo hūnā:',
 );
 
 /** Hebrew (עברית)
+ * @author Amire80
  * @author Rotemliss
  * @author YaronSh
  */
 $messages['he'] = array(
-	'openid-desc' => 'כניסה לחשבון בוויקי באמצעות [http://openid.net/ OpenID], והתחברות לאתרים נוספים הפועלים עם OpenID באמצעות חשבון משתמש בוויקי',
-	'openidlogin' => 'כניסה לחשבון עם OpenID',
-	'openidfinish' => 'יציאה מהחשבון עם OpenID',
+	'openid-desc' => 'כניסה לחשבון בוויקי באמצעות [//openid.net/ OpenID], והתחברות לאתרים נוספים הפועלים עם OpenID באמצעות חשבון משתמש בוויקי',
+	'openidlogin' => 'כניסה או יצירת חשבון עם OpenID',
 	'openidserver' => 'שרת OpenID',
 	'openidxrds' => 'קובץ Yadis',
 	'openidconvert' => 'ממיר OpenID',
@@ -1290,9 +2440,15 @@
 	'openidfailure' => 'האימות נכשל',
 	'openidfailuretext' => 'אימות כתובת ה־OpenID נכשל. הודעת השגיאה: "$1"',
 	'openidsuccess' => 'האימות הושלם בהצלחה',
-	'openidsuccesstext' => 'אימות כתובת ה־OpenID הושלם בהצלחה.',
+	'openidsuccesstext' => "אימות וכניסה מוצלחים בתור משתמש $1'''.
+
+ה־OpenID שלך הוא $2 .
+
+ניתן לההל את ה־OpenID הזה ואת הבאים אחריו ב[[Special:Preferences#prefsection-openid|לשונית OpenID]] בדף ההעדפות שלך.<br />
+
+ניתן להוסיף ססמה לחשבון ב[[Special:Preferences#prefsection-personal|דף המידע האישי בהעדפות]].",
 	'openidusernameprefix' => 'משתמשOpenID',
-	'openidserverlogininstructions' => 'כתבו את סיסמתכם להלן כדי להיכנס לחשבון באתר $3 בתור המשתמש $2 (דף המשתמש: $1).',
+	'openidserverlogininstructions' => 'אתר $3 דורש שתכתבו את סיסמתכם לדף המשתמש $2 בכתובת $1 (זוהי כתובת ה־OpenID שלכם)',
 	'openidtrustinstructions' => 'סמנו אם ברצונכם לשתף מידע עם $1.',
 	'openidallowtrust' => 'מתן האפשרות ל־$1 לבטוח בחשבון משתמש זה.',
 	'openidnopolicy' => 'האתר לא ציין מדיניות פרטיות.',
@@ -1303,52 +2459,86 @@
 	'openidfullname' => 'שם מלא',
 	'openidemail' => 'כתובת דוא"ל',
 	'openidlanguage' => 'שפה',
-	'openidnotavailable' => 'הכינוי המועדף עליכם ($1) כבר נמצא בשימוש של משתמש אחר.',
-	'openidnotprovided' => 'שרת ה־OpenID לא סיפק כינוי (או בגלל שאינו יכול, או בגלל שכך הוריתם לו).',
+	'openidtimezone' => 'אזור זמן',
+	'openidchooselegend' => 'בחירה של שם המשתמש וחשבון',
 	'openidchooseinstructions' => 'כל המשתמשים זקוקים לכינוי;
 תוכלו לבחור אחת מהאפשרויות שלהלן.',
+	'openidchoosenick' => 'הכינוי שלך ($1)',
 	'openidchoosefull' => 'שמכם המלא ($1)',
 	'openidchooseurl' => 'שם שנבחר מה־OpenID שלכם ($1)',
 	'openidchooseauto' => 'שם שנוצר אוטומטית ($1)',
 	'openidchoosemanual' => 'השם הנבחר:',
 	'openidchooseexisting' => 'חשבון קיים בוויקי זה:',
+	'openidchooseusername' => 'שם משתמש:',
 	'openidchoosepassword' => 'סיסמה:',
-	'openidconvertinstructions' => 'טופס זה מאפשר לכם לשנות את חשבון המשתמשים שלכם לשימוש בכתובת OpenID.',
+	'openidconvertinstructions' => 'טופס זה מאפשר לכם לשנות את חשבון המשתמש שלכם לשימוש בכתובת OpenID או להוסיף כתובות OpenID נוספות',
+	'openidconvertoraddmoreids' => 'המרה ל־OpenID או הוספת כתובת OpenID נוספת',
 	'openidconvertsuccess' => 'הומר בהצלחה ל־OpenID',
 	'openidconvertsuccesstext' => 'המרתם בהצלחה את ה־OpenID שלכם ל־$1.',
 	'openidconvertyourstext' => 'זהו כבר ה־OpenID שלכם.',
 	'openidconvertothertext' => 'זהו ה־OpenID של מישהו אחר.',
-	'openidalreadyloggedin' => "'''הינכם כבר מחוברים לחשבון, $1!'''
+	'openidalreadyloggedin' => 'אתם כבר מחוברים לחשבון.',
+	'openidalreadyloggedintext' => "'''$1, {{GENDER:$1|אתה כבר מחובר|את כבר מחוברת}} לחשבון!'''
 
-אם ברצונכם להשתמש ב־OpenID כדי להתחבר בעתיד, תוכלו [[Special:OpenIDConvert|להמיר את חשבונכם לשימוש ב־OpenID]].",
+אפשר לנהל (להציג, למחוק ולהוסיף) מזהי OpenID ב[[Special:Preferences#prefsection-openid|לשונית OpenID]] בדף ההעדפות שלך.",
 	'openidnousername' => 'לא צוין שם משתמש.',
 	'openidbadusername' => 'שם המשתמש שצוין אינו תקין.',
 	'openidautosubmit' => 'דף זה מכיל טופס שאמור להשלח אוטומטית אם יש לכם JavaScript פעיל.
-אם זה לא פועל, נסו את הכפתור \\"המשך\\".',
+אם זה לא פועל, נסו את הכפתור "Continue" (המשך).',
 	'openidclientonlytext' => 'אינכם יכולים להשתמש בחשבונות משתמש מוויקי זה כזהויות OpenID באתר אחר.',
 	'openidloginlabel' => 'כתובת OpenID',
-	'openidlogininstructions' => 'ב{{grammar:תחילית|{{SITENAME}}}} מותקנת תמיכה בתקן ה־[http://openid.net/ OpenID] לחשבון משתמש מאוחד בין אתרי אינטרנט.
+	'openidlogininstructions' => '{{SITENAME}} תומך בתקן [//openid.net/ OpenID] לחשבון משתמש מאוחד בין אתרי אינטרנט.
 OpenID מאפשר לכם להיכנס לחשבון במגוון אתרים מבלי להשתמש בסיסמה שונה עבור כל אחד מהם.
-(עיינו ב[http://he.wikipedia.org/wiki/OpenID ערך על OpenID בוויקיפדיה העברית] למידע נוסף.)
-
-אם כבר יש ברשותכם חשבון במערכת {{SITENAME}}, תוכלו [[Special:UserLogin|להיכנס לחשבון]] עם שם המשתמש והסיסמה שלכם כרגיל.
-על מנת להשתמש ב־OpenID בעתיד, תוכלו [[Special:OpenIDConvert|להמיר את חשבונכם ל־OpenID]] לאחר שנכנסתם לחשבון באופן הרגיל.
-
-ישנם [http://wiki.openid.net/Public_OpenID_providers ספקי OpenID ציבוריים] רבים, ויתכן שכבר יש לכם חשבון התומך ב־OpenID בשירות אחר.',
-	'openidupdateuserinfo' => 'עדכון המידע האישי שלי',
-	'openid-prefstext' => 'העדפות [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'הסתרת ה־<a href="http://openid.net/">OpenID</a> מדף המשתמש, במקרה של כניסה לחשבון עם OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'עדכון המידע שלי מכרטיס ה־OpenID עם כל כניסה לחשבון',
+(עיינו ב[//he.wikipedia.org/wiki/OpenID ערך על OpenID בוויקיפדיה העברית] למידע נוסף.)
+ישנם [http://wiki.openid.net/Public_OpenID_providers ספקי OpenID ציבוריים] רבים, וייתכן שכבר יש לכם חשבון התומך ב־OpenID בשירות אחר.',
+	'openidlogininstructions-openidloginonly' => "אתר {{SITENAME}} מאפשר כניסה ''רק'' באמצעות OpenID",
+	'openidlogininstructions-passwordloginallowed' => 'אם כבר יש לכם חשבון באתר {{SITENAME}}, אפשר [[Special:UserLogin|להיכנס]] אליו עם שם המשתמש והססמה הרגילים.
+כדי להשתמש ב־OpenID בעתיד, אפשר [[Special:OpenIDConvert|להמיר את חשבונכם ל־OpenID]] אחרי שיצאתם באופן רגיל.',
+	'openidupdateuserinfo' => 'עדכון הפרטים האישיים שלי:',
+	'openiddelete' => 'מחיקת OpenID',
+	'openiddelete-text' => 'אם תלחצו על הכפתור "{{int:openiddelete-button}}", חשבון ה־OpenID בשם $1 יוסר מחשבונכם.
+לא תוכלו יותר להכנס עם OpenID זה.',
+	'openiddelete-button' => 'אישור',
+	'openiddeleteerrornopassword' => 'אין באפשרותך למחוק את כל מזהי ה־OpenID שלך כיוון שלחשבון המשתמש שלך אין ססמה.
+לא תהיה באפשרותך להיכנס ללא OpenID.',
+	'openiddeleteerroropenidonly' => 'אין באפשרותך למחוק את כל מזהי ה־OpenID שלך כיוון שהרשאת הגישה שלך מותנית ב־OpenID.
+לא תהיה באפשרותך להיכנס ללא OpenID.',
+	'openiddelete-sucess' => 'ה־OpenID הוסר בהצלחה מחשבונכם.',
+	'openiddelete-error' => 'ארעה שגיאה בעת הסרת ה־OpenID מחשבונכם.',
+	'openid-openids-were-not-merged' => 'חשבונות OpenID לא מוזגו כאשר מוזג החשבון.',
+	'openid-prefstext' => 'העדפות [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'הסתרת כתובת ה־OpenID בדף המשתמש, במקרה של כניסה לחשבון עם OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'עדכון המידע הבא מכרטיס ה־OpenID עם כל כניסה לחשבון:',
+	'openid-urls-desc' => 'כתובות OpenID המשויכות לחשבונכם:',
+	'openid-urls-action' => 'פעולה',
+	'openid-urls-registration' => 'זמן ההרשמה',
+	'openid-urls-delete' => 'מחיקה',
+	'openid-add-url' => 'הוספת OpenID חדש',
+	'openid-login-or-create-account' => 'כניסה או יצירת חשבון חדש',
+	'openid-provider-label-openid' => 'הזינו את כתובת ה־OpenID שלכם',
+	'openid-provider-label-google' => 'היכנסו באמצעות חשבונכם ב־Google',
+	'openid-provider-label-yahoo' => 'היכנסו באמצעות חשבונכם ב־Yahoo',
+	'openid-provider-label-aol' => 'כתבו את כינוי המסך שלכם ב־AOL',
+	'openid-provider-label-other-username' => 'כתבו את שם המשתמש שלכם ב־$1',
+	'specialpages-group-openid' => 'דפי שירות ומידע על המצב של OpenID',
+	'right-openid-dashboard-access' => 'גישה רגילה ללוח הבקרה של OpenID',
+	'right-openid-dashboard-admin' => 'גישת מפעיל ללוח הבקרה של OpenID',
+	'openid-dashboard-title' => 'לוח הבקרה של OpenID',
+	'openid-dashboard-title-admin' => 'לוח הבקרה של OpenID (מפעיל)',
+	'openid-dashboard-introduction' => 'הגדרות נוכחיות של OpenID ([$1 עזרה])',
+	'openid-dashboard-number-openid-users' => 'מספר המשתמשים שיש להם OpenID.',
+	'openid-dashboard-number-openids-in-database' => 'המספר הכולל של מזהי OpenID',
+	'openid-dashboard-number-users-without-openid' => 'מספר המשתמשים שאין להם OpenID',
 );
 
 /** Hindi (हिन्दी)
  * @author Kaustubh
+ * @author आलोक
  */
 $messages['hi'] = array(
 	'openidlogin' => 'OpenID से लॉग इन करें',
-	'openidfinish' => 'OpenID लॉग इन पूरा करें',
 	'openidserver' => 'OpenID सर्वर',
-	'openidxrds' => 'Yadis फ़ाइल',
+	'openidxrds' => 'याडिस संचिका',
 	'openidconvert' => 'OpenID कन्वर्टर',
 	'openiderror' => 'प्रमाणिकरण गलती',
 	'openiderrortext' => 'OpenID URL के प्रमाणिकरण में समस्या आई हैं।',
@@ -1386,30 +2576,117 @@
 	'openidbadusername' => 'गलत सदस्यनाम दिया हैं।',
 	'openidclientonlytext' => 'इस विकिपर खोले गये खाते आप अन्य साइटपर ओपनID के तौर पर इस्तेमाल नहीं कर सकतें हैं।',
 	'openidloginlabel' => 'ओपनID URL',
-	'openid-pref-hide' => 'अगर आपने ओपनID का इस्तेमाल करके लॉग इन किया हैं, तो आपके सदस्यपन्नेपर आपका <a href="http://openid.net/">ओपनID</a> छुपायें।',
+	'openid-pref-hide' => 'अगर आपने ओपनID का इस्तेमाल करके लॉग इन किया हैं, तो आपके सदस्यपन्नेपर आपका ओपनID छुपायें।',
 );
 
 /** Hiligaynon (Ilonggo)
  * @author Jose77
  */
 $messages['hil'] = array(
-	'openidchoosepassword' => 'kontra-senyas:',
+	'openidchoosepassword' => 'Kontra-senyas:',
 );
 
 /** Croatian (Hrvatski)
  * @author Dalibor Bosits
+ * @author Ex13
  */
 $messages['hr'] = array(
-	'openidchoosepassword' => 'lozinka:',
+	'openid-desc' => 'Prijava na wiki s [//openid.net/ OpenID] i prijava na druge stranice koje podržavaju OpenID s wiki suradničkim računom',
+	'openidlogin' => 'Prijava s OpenID',
+	'openidserver' => 'OpenID poslužitelj',
+	'openidxrds' => 'Yadis datoteka',
+	'openidconvert' => 'OpenID pretvarač',
+	'openiderror' => 'Greška pri provjeri',
+	'openiderrortext' => 'Došlo je do pogreške pri provjeri OpenID URL adrese',
+	'openidconfigerror' => 'Greška OpenID postavki',
+	'openidconfigerrortext' => 'OpenID konfiguracija spremanja za ovaj wiki nije valjana.  
+Molimo savjetujte se s [[Special:ListUsers/sysop|administratorom]].',
+	'openidpermission' => 'Greška kod OpenID prava pristupa',
+	'openidpermissiontext' => 'OpenIDu kojeg ste naveli nije dopušteno prijaviti se na ovaj poslužitelj.',
+	'openidcancel' => 'Provjera otkazana',
+	'openidcanceltext' => 'Provjera OpenID URL-a je otkazana.',
+	'openidfailure' => 'Provjera nije uspjela',
+	'openidfailuretext' => 'Provjera URL-a za OpenID nije uspjela. Greška: "$1"',
+	'openidsuccess' => 'Provjera uspješna',
+	'openidsuccesstext' => 'Provjera URL-a za OpenID je uspjela.',
+	'openidusernameprefix' => 'OpenIDSuradnik',
+	'openidserverlogininstructions' => 'Unesite ispod Vašu lozinku da biste se prijavili na $3 kao suradnik $2 (suradnička stranica $1).',
+	'openidtrustinstructions' => 'Provjerite želite li dijeliti podatke s $1.',
+	'openidallowtrust' => 'Omogući $1 da vjeruje ovom suradničkom računu.',
+	'openidnopolicy' => 'Stranica nema navedena pravila privatnosti.',
+	'openidpolicy' => 'Provjerite <a target="_new" href="$1">politiku privatnosti</a> za više informacija.',
+	'openidoptional' => 'Neobavezno',
+	'openidrequired' => 'Obavezno',
+	'openidnickname' => 'Nadimak',
+	'openidfullname' => 'Puno ime',
+	'openidemail' => 'E-pošta',
+	'openidlanguage' => 'Jezik',
+	'openidtimezone' => 'Vremenska zona',
+	'openidchooselegend' => 'Odabir suradničkog imena',
+	'openidchooseinstructions' => 'Svi suradnici trebaju imati nadimak;
+možete odabrati jedan od niže ponuđenih.',
+	'openidchoosenick' => 'Vaš nadimak ($1)',
+	'openidchoosefull' => 'Vaše puno ime ($1)',
+	'openidchooseurl' => 'Ime uzeto s Vašeg OpenID ($1)',
+	'openidchooseauto' => 'Automatski generirano ime ($1)',
+	'openidchoosemanual' => 'Ime po Vašem izboru:',
+	'openidchooseexisting' => 'Postojeći račun na ovom wiki',
+	'openidchooseusername' => 'Suradničko ime:',
+	'openidchoosepassword' => 'Lozinka:',
+	'openidconvertinstructions' => 'Ovaj obrazac Vam omogućuje da promijenite Vaš suradničkii račun za upotrebu URL OpenID ili da dodate više OpenID URLova',
+	'openidconvertoraddmoreids' => 'Pretvorite u OpenID ili dodajte drugi OpenID URL',
+	'openidconvertsuccess' => 'Uspješno pretvoreno u OpenID',
+	'openidconvertsuccesstext' => 'Uspješno ste pretvorili Vaš OpenID u $1.',
+	'openidconvertyourstext' => 'To je već Vaš OpenID.',
+	'openidconvertothertext' => 'To je OpenID koji pripada nekom drugom.',
+	'openidalreadyloggedin' => "'''Vi ste već prijavljeni, $1!'''
+
+Ako želite rabiti OpenID za buduće prijave, možete [[Special:OpenIDConvert|promijeniti Vaš račun za uporabu OpenID]].",
+	'openidnousername' => 'Nije navedeno suradničko ime.',
+	'openidbadusername' => 'Navedeno je neispravno suradničko ime.',
+	'openidautosubmit' => 'Ova stranica uključuje obrazac koji bi trebao biti automatski poslan ako je kod Vas omogućen JavaScript. Ako nije, pokušajte nastaviti dalje putem "Continue".',
+	'openidclientonlytext' => 'Ne možete rabiti račune s ove wiki kao OpenID na drugoj stranici.',
+	'openidloginlabel' => 'OpenID URL',
+	'openidlogininstructions' => '{{SITENAME}} podržava [//openid.net/ OpenID] standard za jedinstvenu prijavu između web stranica.
+OpenID omogućuje da se prijavite na mnoge različite web stranice bez uporabe različitih lozinki za svaku od njih.
+(Pogledajte [//en.wikipedia.org/wiki/OpenID članak na Wikipediji o OpenID-u] za više informacija.)
+
+Ako već imate račun na {{SITENAME}}, možete se [[Special:UserLogin|prijaviti]] s Vašim korisničkim imenom i šifrom kao i uvijek.
+Da bi koristili OpenID u buduće, možete [[Special:OpenIDConvert|pretvoriti vaš račun u OpenID]] nakon što se normalno prijavite.
+
+Postoji mnogo [http://wiki.openid.net/Public_OpenID_providers javnih pružatelja usluga za OpenID], i možda već imate neki račun na drugom servisu koji podržava OpenID.',
+	'openidupdateuserinfo' => 'Ažuriraj moje osobne informacije:',
+	'openiddelete' => 'Izbriši OpenID',
+	'openiddelete-text' => 'Klikom na "{{int:openiddelete-button}}" uklonit ćete OpenID $1 s Vašeg računa.
+Nećete više biti u mogućnosti prijaviti se s ovim OpenID.',
+	'openiddelete-button' => 'Potvrdi',
+	'openiddeleteerrornopassword' => 'Ne možete obrisati sve Vaše OpenID jer vaš račun nema lozinke.
+Nećete se moći prijaviti bez OpenID.',
+	'openiddeleteerroropenidonly' => 'Ne možete obrisati sve Vaše OpenID jer Vam je omogućeno da se prijavite samo sa OpenID.
+Bez OpenId nećete se moći prijaviti.',
+	'openiddelete-sucess' => 'OpenID je uspješno uklonjen iz vašeg računa.',
+	'openiddelete-error' => 'Došlo je do pogreška pri uklanjanju OpenID iz Vašeg računa.',
+	'openid-prefstext' => '[//openid.net/ OpenID] postavke',
+	'openid-pref-hide' => 'Sakrij Vaš OpenID na Vašoj suradničkoj stranici, ako ste prijavljeni s OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Ažuriraj sljedeće informacije iz OpenID identiteta svaki put kad se prijavim:',
+	'openid-urls-desc' => 'OpenID-ovi povezani s Vašim računom:',
+	'openid-urls-action' => 'Radnja',
+	'openid-urls-delete' => 'Izbriši',
+	'openid-add-url' => 'Dodaj novi OpenID',
+	'openid-login-or-create-account' => 'Prijavite se ili napravite novi račun',
+	'openid-provider-label-openid' => 'Unesite Vaš OpenID URL',
+	'openid-provider-label-google' => 'Prijava putem Vašeg Google računa',
+	'openid-provider-label-yahoo' => 'Prijava putem Vašeg Yahoo računa',
+	'openid-provider-label-aol' => 'Unesite Vaš AOL nadimak',
+	'openid-provider-label-other-username' => 'Unesite Vaše $1 suradničko ime',
 );
 
 /** Upper Sorbian (Hornjoserbsce)
  * @author Michawiki
  */
 $messages['hsb'] = array(
-	'openid-desc' => 'Přizjewjenje pola wikija z [http://openid.net/ OpenID], a přizjewjenje pola druhich websydłow, kotrež OpenID podpěruja, z wikijowym wužiwarskim kontom',
-	'openidlogin' => 'Přizjewjenje z OpenID',
-	'openidfinish' => 'Přizjewjenje OpenID skónčić',
+	'openid-desc' => 'Přizjewjenje pola wikija z [//openid.net/ OpenID], a přizjewjenje pola druhich websydłow, kotrež OpenID podpěruja, z wikijowym wužiwarskim kontom',
+	'openidlogin' => 'Z OpenID přizjewić/konto załožić',
 	'openidserver' => 'Serwer OpenID',
 	'openidxrds' => 'Yadis-dataja',
 	'openidconvert' => 'Konwerter OpenID',
@@ -1424,9 +2701,14 @@
 	'openidfailure' => 'Přepruwowanje njeporadźiło',
 	'openidfailuretext' => 'Přepruwowanje URL OpenID je so njeporadźiło. Zmylkowa zdźělenka: "$1"',
 	'openidsuccess' => 'Přepruwowanje poradźiło',
-	'openidsuccesstext' => 'Přepruwowanje URL OpenID je so poradźiło.',
+	'openidsuccesstext' => "'''Přepruwowanje a přizjewjenje jako wužiwar $1 běštej wuspěšnej.'''
+
+Twój OpenID je $2.
+
+Tutón a dalše OpenID hodźa so na [[Special:Preferences#prefsection-openid|OpenID-rajtarku]] twojich nastajenjow zrjadować.<br />
+Faktulatiwne hesło hodźi so w twojim [[Special:Preferences#prefsection-personal|wužiwarskim profilu]] přidać.",
 	'openidusernameprefix' => 'Wužiwar OpenID',
-	'openidserverlogininstructions' => 'Zapodaj deleka swoje hesło, zo by so pola $3 jako wužiwar $2 přizjewił (wužiwarska strona $1).',
+	'openidserverlogininstructions' => '$3 sej žada, zo zapodaš swoje hesło za swoje wužiwarske konto $2 na stronje $1 (to je twój OpenID-URL)',
 	'openidtrustinstructions' => 'Pruwuj, hač chceš z $1 daty dźělić.',
 	'openidallowtrust' => '$1 dowolić, zo by so tutomu wužiwarskemu konće dowěriło.',
 	'openidnopolicy' => 'Sydło njeje zasady za priwatnosć podało.',
@@ -1437,48 +2719,82 @@
 	'openidfullname' => 'Dospołne mjeno',
 	'openidemail' => 'E-mejlowa adresa',
 	'openidlanguage' => 'Rěč',
-	'openidnotavailable' => 'Twoje preferowane přimjeno ($1) so hižo wot druheho wužiwarja wužiwa.',
-	'openidnotprovided' => 'Twój serwer OpenID njedoda přimjeno (pak dokelž njemóže pak dokelž njejsy je jemu zdźělił).',
+	'openidtimezone' => 'Časowe pasmo',
+	'openidchooselegend' => 'Wuběranje wužiwarskeho mjena a wužiwarskeho konta',
 	'openidchooseinstructions' => 'Wšitcy wužiwarjo trjebaja přimjeno; móžěs jedne z opcijow deleka wuzwolić.',
+	'openidchoosenick' => 'Twoje přimjeno ($1)',
 	'openidchoosefull' => 'Twoje dospołne mjeno ($1)',
 	'openidchooseurl' => 'Mjeno wzate z twojeho OpenID ($1)',
 	'openidchooseauto' => 'Awtomatisce wutworjene mjeno ($1)',
 	'openidchoosemanual' => 'Mjeno twojeje wólby:',
-	'openidchooseexisting' => 'Eksistowace konto na tutym wikiju:',
-	'openidchoosepassword' => 'hesło:',
-	'openidconvertinstructions' => 'Tutón formular ći dowola swoje wužiwarske konto zmňić, zo by URL OpenID wužiwał.',
+	'openidchooseexisting' => 'Eksistowace konto na tutym wikiju',
+	'openidchooseusername' => 'wužiwarske mjeno:',
+	'openidchoosepassword' => 'Hesło:',
+	'openidconvertinstructions' => 'Tutón formular ći dowola swoje wužiwarske konto změnić, zo by URL OpenID wužiwał abo dalše URL OpenID přidał.',
+	'openidconvertoraddmoreids' => 'OpenID konwertować abo dalši URL OpenID přidać',
 	'openidconvertsuccess' => 'Wuspěšnje do OpenID konwertowany.',
 	'openidconvertsuccesstext' => 'Sy swój OpenID wuspěšnje do $1 konwertował.',
 	'openidconvertyourstext' => 'To je hižo twój OpenID.',
 	'openidconvertothertext' => 'To je OpenID někoho druheho.',
-	'openidalreadyloggedin' => "'''Sy hižo přizjewjeny, $1!'''
+	'openidalreadyloggedin' => 'Sy hižo přizjewjeny.',
+	'openidalreadyloggedintext' => "'''Sy hižo přizjewjeny, $1!'''
 
-Jeli chceš OpenID wužiwać, hdyž přichodnje přizjewiš, móžeš [[Special:OpenIDConvert|swoje konto za wužiwanje OpenID konwertować]].",
+Móžeš OpenID na [[Special:Preferences#prefsection-openid|rajtarku OpenID]] swojich nastajenjow zrjadować (sej wobhladać, zhašeć, přidać).",
 	'openidnousername' => 'Žane wužiwarske mjeno podate.',
 	'openidbadusername' => 'Wopačne wužiwarske mjeno podate.',
-	'openidautosubmit' => 'Tuta strona wobsahuje formular, kotryž měł so awtomatisce wotpósłać, jeli sy JavaScript zmóžnił. Jeli nic, spytaj tłóčatko "Dale".',
+	'openidautosubmit' => 'Tuta strona wobsahuje formular, kotryž měł so awtomatisce wotpósłać, jeli sy JavaScript zmóžnił. Jeli nic, spytaj tłóčatko "Continue" (Dale).',
 	'openidclientonlytext' => 'Njemóžeš konta z tutoho wikija jako OpenID na druhim sydle wužiwać.',
 	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => '{{SITENAME}} podpěruje standard [http://openid.net/ OpenID] za jednotliwe přizjewjenje mjez websydłami. OpenID ći zmóžnja so pola wjele rozdźělnych websydłow prizjewić, bjeztoho zo dyrbiš rozdźělne hesła wužiwać. (Hlej [http://en.wikipedia.org/wiki/OpenID nastawk OpenID wikipedije] za dalše informacije.)
-
-Jeli maš hižo konto na {{GRAMMAR:lokatiw|{{SITENAME}}}}, móžeš so ze swojim wužiwarskim mjenjom a hesłom kaž přeco [[Special:UserLogin|přizjewić]].
-Zo by OpenID w přichodźe wužiwał, móžeš [[Special:OpenIDConvert|swóje konto do OpenID konwertować]], po tym zo sy so normalnje přizjewił.
-
-Je wjele [http://openid.net/get/ poskićowarjow OpenID], snano maš hižo konto z OpenID pola druheje słužby.',
-	'openidupdateuserinfo' => 'Moje wosobinske informacije aktualizować',
-	'openid-prefstext' => 'Nastajenja [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Twój <a href="http://openid.net/">OpenID</a> na twojej wužiwarskej stronje schować, jeli so z OpenID přizjewješ.',
-	'openid-pref-update-userinfo-on-login' => 'Kóždy raz, hdyž so přizjawjam, moje informacije z identity OpenID aktualizować',
+	'openidlogininstructions' => '{{SITENAME}} podpěruje standard [//openid.net/ OpenID] za jednotliwe přizjewjenje mjez websydłami. OpenID ći zmóžnja so pola wjele rozdźělnych websydłow prizjewić, bjeztoho zo dyrbiš rozdźělne hesła wužiwać. (Hlej [//en.wikipedia.org/wiki/OpenID nastawk OpenID wikipedije] za dalše informacije.)
+Je wjele [//openid.net/get/ poskićowarjow OpenID], snano maš hižo konto z OpenID pola druheje słužby.',
+	'openidlogininstructions-openidloginonly' => "Móžeš so na {{GRAMMAR:lokatiw|{{SITENAME}}}} ''jenož'' z OpenID přizjewić.",
+	'openidlogininstructions-passwordloginallowed' => 'Jeli maš hižo konto na {{GRAMMAR:lokatiw|{{SITENAME}}}}, móžeš so ze swojim wužiwarskim mjenom a hesłom kaž přeco [[Special:UserLogin|přizjewić]].
+Zo by OpenID w přichodźe wužiwał, móžeš [[Special:OpenIDConvert|swoje konto do OpenID konwertować]], po tym zo sy so normalnje přizjewił.',
+	'openidupdateuserinfo' => 'Moje wosobinske informacije aktualizować:',
+	'openiddelete' => 'OpenID wušmórnyć',
+	'openiddelete-text' => 'Přez kliknjenje tłóčatka "{{int:openiddelete-button}}", wotstroniš OpenID $1 ze swojeho konta. Njemóžeš potom hižo so z tutym OpenID přizjewić.',
+	'openiddelete-button' => 'Wobkrućić',
+	'openiddeleteerrornopassword' => 'Njemóžeš wšě swoje OpenID zničić, dokelž twoje konto hesło nima.
+Ty njemóhł so bjez OpenID přizjewić.',
+	'openiddeleteerroropenidonly' => 'Njemóžeš wšě swoje OpenID zničić, dokelž njesměš so z OpenID přizjewić.
+Ty njemóhł so bjez OpenID přizjewić.',
+	'openiddelete-sucess' => 'OpenID je so wuspěšnje z twojeho konta wotstronił.',
+	'openiddelete-error' => 'Při wotstronjenju OpenID z twojeho konto je zmylk wustupił.',
+	'openid-openids-were-not-merged' => 'Při zjednoćenju wužiwarskich kontow OpenID njejsu so zjednoćili.',
+	'openid-prefstext' => 'Nastajenja [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Twój OpenID na twojej wužiwarskej stronje schować, jeli so z OpenID přizjewješ.',
+	'openid-pref-update-userinfo-on-login' => 'Kóždy raz, hdyž so přizjawjam, slědowace informacije z identity OpenID aktualizować:',
+	'openid-urls-desc' => 'OpenID, kotrež su z twojim kontom zwjazane:',
+	'openid-urls-action' => 'Akcija',
+	'openid-urls-registration' => 'Registrowanski čas',
+	'openid-urls-delete' => 'Wušmórnyć',
+	'openid-add-url' => 'Nowy OpenID přidać',
+	'openid-login-or-create-account' => 'Přizjewić abo nowe konto załožić',
+	'openid-provider-label-openid' => 'Zapodaj swój URL OpenID',
+	'openid-provider-label-google' => 'Z pomocu twojeho konta Google so přizjewić',
+	'openid-provider-label-yahoo' => 'Z pomocu twojeho konta Yahoo so přizjewić',
+	'openid-provider-label-aol' => 'Zapodaj swoje wužiwarske mjeno AOL',
+	'openid-provider-label-other-username' => 'Zapodaj swoje wužiwarske mjeno $1',
+	'specialpages-group-openid' => 'Strony OpenID-słužbow a statusowych informacijow',
+	'right-openid-dashboard-access' => 'Standardny přistup na OpenID-přehlad',
+	'right-openid-dashboard-admin' => 'Administratorowy přistup na OpenID-přehlad',
+	'openid-dashboard-title' => 'OpenID-přehlad',
+	'openid-dashboard-title-admin' => 'OpenID-přehlad (administrator)',
+	'openid-dashboard-introduction' => 'Aktualne nastajenja rozšěrjenja OpenID ([$1 pomoc])',
+	'openid-dashboard-number-openid-users' => 'Ličba wužiwarjow z OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Ličba wšěch OpenID (dohromady)',
+	'openid-dashboard-number-users-without-openid' => 'Ličba wužiwarjow bjez OpenID',
 );
 
 /** Hungarian (Magyar)
  * @author Dani
+ * @author Dj
+ * @author Glanthor Reviol
  * @author Tgr
  */
 $messages['hu'] = array(
-	'openid-desc' => 'Bejelentkezés [http://openid.net/ OpenID] azonosítóval, és más OpenID-kompatibilis weboldalak használata a wikis azonosítóval',
-	'openidlogin' => 'Bejelentkezés OpenID-vel',
-	'openidfinish' => 'OpenID bejelentkezés befejezése',
+	'openid-desc' => 'Bejelentkezés [//openid.net/ OpenID] azonosítóval, és más OpenID-kompatibilis weboldalak használata a wikis azonosítóval',
+	'openidlogin' => 'Bejelentkezés / fiók létrehozása OpenID-vel',
 	'openidserver' => 'OpenID szerver',
 	'openidxrds' => 'Yadis fájl',
 	'openidconvert' => 'OpenID konverter',
@@ -1501,22 +2817,25 @@
 	'openidallowtrust' => '$1 megbízhat ebben a felhasználóban.',
 	'openidnopolicy' => 'Az oldalnak nincsen adatvédelmi szabályzata.',
 	'openidpolicy' => 'További információkért lásd az <a target="_new" href="$1">adatvédelmi szabályzatot</a>.',
-	'openidoptional' => 'Opcionális',
+	'openidoptional' => 'Nem kötelező',
 	'openidrequired' => 'Kötelező',
 	'openidnickname' => 'Felhasználónév',
 	'openidfullname' => 'Teljes név',
-	'openidemail' => 'Email-cím',
+	'openidemail' => 'E-mail cím:',
 	'openidlanguage' => 'Nyelv',
-	'openidnotavailable' => 'Az alapértelmezett felhasználónevedet ($1) már használja valaki.',
-	'openidnotprovided' => 'Az OpenID szervered nem adta meg a felhasználónevedet (vagy azért, mert nem tudja, vagy mert nem engedted neki).',
+	'openidtimezone' => 'Időzóna',
+	'openidchooselegend' => 'Felhasználónév és fiók választás',
 	'openidchooseinstructions' => 'Mindenkinek választania kell egy felhasználónevet; választhatsz egyet az alábbi opciókból.',
+	'openidchoosenick' => 'A nickneved ($1)',
 	'openidchoosefull' => 'A teljes neved ($1)',
 	'openidchooseurl' => 'Az OpenID-dből vett név ($1)',
 	'openidchooseauto' => 'Egy automatikusan generált név ($1)',
 	'openidchoosemanual' => 'Egy általad megadott név:',
-	'openidchooseexisting' => 'Egy létező felhasználónév erről a wikiről:',
-	'openidchoosepassword' => 'jelszó:',
-	'openidconvertinstructions' => 'Ezzel az űrlappal átállíthatod a felhasználói fiókodat, hogy egy OpenId URL-t használjon.',
+	'openidchooseexisting' => 'Egy létező felhasználónév ezen a wikin',
+	'openidchooseusername' => 'Felhasználónév:',
+	'openidchoosepassword' => 'Jelszó:',
+	'openidconvertinstructions' => 'Ezzel az űrlappal átállíthatod a felhasználói fiókodat, hogy egy OpenId URL-t használjon, vagy hozzáadhatsz több OpenID URL-t',
+	'openidconvertoraddmoreids' => 'Átalakítás OpenID-ra, vagy másik OpenID URL hozzáadása',
 	'openidconvertsuccess' => 'Sikeres átállás OpenID-re',
 	'openidconvertsuccesstext' => 'Sikeresen átállítottad az OpenID-det erre: $1.',
 	'openidconvertyourstext' => 'Ez az OpenID már a tiéd.',
@@ -1526,21 +2845,43 @@
 Ha ezentúl az OpenID-del akarsz bejelentkezni, [[Special:OpenIDConvert|konvertálhatod a felhasználói fiókodat OpenID-re]].",
 	'openidnousername' => 'Nem adtál meg felhasználónevet.',
 	'openidbadusername' => 'Rossz felhasználónevet adtál meg.',
-	'openidautosubmit' => 'Az ezen az oldalon lévő űrlap automatikusan elküldi az adatokat, ha a JavaScript engedélyezve van. Ha nem, használd a \\"Tovább\\" gombot.',
+	'openidautosubmit' => 'Az ezen az oldalon lévő űrlap automatikusan elküldi az adatokat, ha a JavaScript engedélyezve van. Ha nem, használd a "Continue" (Tovább) gombot.',
 	'openidclientonlytext' => 'Az itteni felhasználónevedet nem használhatod OpenID-ként más weboldalon.',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => "A(z) {{SITENAME}} támogatja az [http://openid.net/ OpenID]-alapú bejelentkezést.
-A OpenID lehetővé teszi, hogy számos különböző weboldalra jelentkezz be úgy, hogy csak egyszer kell megadnod a jelszavadat. (Lásd [http://hu.wikipedia.org/wiki/OpenID a Wikipédia OpenID cikkét] további információkért.)
+	'openidlogininstructions' => 'A(z) {{SITENAME}} támogatja az [//openid.net/ OpenID] szabványt a weboldalak közötti egységes bejelentkezéshez.
+A OpenID lehetővé teszi, hogy számos különböző weboldalra jelentkezz be úgy, hogy csak egyszer kell megadnod a jelszavadat. (Lásd [//hu.wikipedia.org/wiki/OpenID a Wikipédia OpenID cikkét] további információkért.)
 
-Ha már regisztráltál korábban, [[Special:UserLogin|bejelentkezhetsz]] a felhasználóneveddel és a jelszavaddal, ahogy eddig is. Ha a továbbiakban OpenID-t akarsz használni, [[Special:OpenIDConvert|állítsd át a felhasználói fiókodat OpenID-re]], miután bejelentkeztél.
+Ha már regisztráltál korábban, [[Special:UserLogin|bejelentkezhetsz]] a felhasználóneveddel és a jelszavaddal, ahogy eddig is. Ha a továbbiakban OpenID-t szeretnél használni, [[Special:OpenIDConvert|állítsd át a felhasználói fiókodat OpenID-re]] miután bejelentkeztél.
 
-Számos [http://wiki.openid.net/Public_OpenID_providers nyilvános OpenID szolgáltató] van, lehetséges, hogy van már OpenID-fiókod egy másik weboldalon.
-
-; Más wikik: ha regisztráltál egy OpenID-kompatibilis wikin, mint a [http://wikitravel.org/ Wikitravel], a [http://www.wikihow.com/ wikiHow], a [http://vinismo.com/ Vinismo], az [http://aboutus.org/ AboutUs] vagy a [http://kei.ki/ Keiki], bejelentkezhetsz ide az ottani felhasználói lapod '''teljes címének''' megadásával. (Például ''<nowiki>http://kei.ki/en/User:Evan</nowiki>''.)
-; [http://openid.yahoo.com/ Yahoo!] :  ha van Yahoo! azonosítód, bejelentkezhetsz a Yahoo! OpenID-d megadásával. A Yahoo! OpenID-k ''<nowiki>https://me.yahoo.com/felhasználónév</nowiki>'' alakúak.
-; [http://dev.aol.com/aol-and-63-million-openids AOL] : Ha van valamilyen [http://www.aol.com/ AOL] azonosítód, például egy [http://www.aim.com/ AIM] felhasználónév, bejelentkezhetsz az AOL OpenID-del. Az AOL OpenID-k ''<nowiki>http://openid.aol.com/felhasználónév</nowiki>'' alakúak (a felhasználónév csupa kisbetűvel, szóköz nélkül).
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox] : ezek a blogszolgáltatók mind biztosítanak OpenID-t, a következő formákban: ''<nowiki>http://felhasználónév.blogspot.com/</nowiki>'', ''<nowiki>http://felhasználónév.wordpress.com/</nowiki>'', ''<nowiki>http://felhasználónév.livejournal.com/</nowiki>'', or ''<nowiki>http://felhasználónév.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'Az <a href="http://openid.net/">OpenID</a>-d elrejtése a felhasználói lapodon, amikor OpenID-vel jelentkezel be.',
+Számos [//openid.net/get/ OpenID szolgáltató] van, lehetséges, hogy van már OpenID-fiókod egy másik weboldalon.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''csak'' OpenID-s bejelentkezést engedélyez.",
+	'openidupdateuserinfo' => 'Személyes információk frissítése:',
+	'openiddelete' => 'OpenID törlése',
+	'openiddelete-text' => 'A {{int:openiddelete-button}} gomb megnyomásakor eltávolítod a következő OpenID-t a felhasználói fiókodból: $1.
+Ezután többé nem fogsz tudni bejelentkezni ezzel az OpenID-vel.',
+	'openiddelete-button' => 'Megerősítés',
+	'openiddeleteerrornopassword' => 'Nem törölheted az összes OpenID-d, mert a felhasználói fiókodnak nincs jelszava.
+Nem tudnál bejelentkezni OpenID nélkül.',
+	'openiddeleteerroropenidonly' => 'Nem törölheted az összes OpenID-d, mert csak azzal jelentkezhetsz be.
+Nem tudnál bejelentkezni OpenID nélkül.',
+	'openiddelete-sucess' => 'Az OpenID sikeresen eltávolítva a felhasználói fiókodból.',
+	'openiddelete-error' => 'Hiba történt az OpenID felhasználói fiókodból való eltávolításakor.',
+	'openid-prefstext' => '[//openid.net/ OpenID] beállítások',
+	'openid-pref-hide' => 'Az OpenID-d elrejtése a felhasználói lapodon, amikor OpenID-vel jelentkezel be.',
+	'openid-pref-update-userinfo-on-login' => 'A következő információ frissítése az OpenID fiókom alapján minden bejelentkezéskor:',
+	'openid-urls-desc' => 'A felhasználói fiókodhoz kapcsolt OpenID-k:',
+	'openid-urls-action' => 'Művelet',
+	'openid-urls-registration' => 'Regisztráció ideje',
+	'openid-urls-delete' => 'Törlés',
+	'openid-add-url' => 'Új OpenID hozzáadása',
+	'openid-login-or-create-account' => 'Bejelentkezés vagy új felhasználói fiók létrehozása',
+	'openid-provider-label-openid' => 'OpenID URL megadása',
+	'openid-provider-label-google' => 'Bejelentkezés a Google felhasználói fiókoddal',
+	'openid-provider-label-yahoo' => 'Bejelentkezés a Yahoo felhasználói fiókoddal',
+	'openid-provider-label-aol' => 'Add meg az AOL felhasználóneved',
+	'openid-provider-label-other-username' => 'Add meg a(z) $1 felhasználóneved',
+	'openid-dashboard-number-openids-in-database' => 'OpenID-k száma (összes)',
+	'openid-dashboard-number-users-without-openid' => 'OpenID nélküli felhasználók száma',
 );
 
 /** Interlingua (Interlingua)
@@ -1548,9 +2889,8 @@
  * @author McDutchie
  */
 $messages['ia'] = array(
-	'openid-desc' => 'Aperir un session in le wiki con [http://openid.net/ OpenID], e aperir un session in altere sitos web usante OpenID con un conto de usator del wiki',
-	'openidlogin' => 'Aperir un session con OpenID',
-	'openidfinish' => 'Completar le session OpenID',
+	'openid-desc' => 'Aperir un session in le wiki con [//openid.net/ OpenID], e aperir un session in altere sitos web usante OpenID con un conto de usator del wiki',
+	'openidlogin' => 'Aperir session / crear conto con OpenID',
 	'openidserver' => 'Servitor OpenID',
 	'openidxrds' => 'File Yadis',
 	'openidconvert' => 'Convertitor de OpenID',
@@ -1566,9 +2906,14 @@
 	'openidfailure' => 'Verification fallite',
 	'openidfailuretext' => 'Le verification del adresse URL de OpenID ha fallite. Message de error: "$1"',
 	'openidsuccess' => 'Verification succedite',
-	'openidsuccesstext' => 'Le verification del adresse URL de OpenID ha succedite.',
+	'openidsuccesstext' => "'''Verification e apertura de session succedite pro le usator $1'''.
+
+Tu OpenID es $2 .
+
+Iste OpenID e alteres (si presente) pote esser gerite in le [[Special:Preferences#prefsection-openid|scheda OpenID]] de tu preferentias.<br />
+Es possibile specificar un contrasigno pro le conto in tu [[Special:Preferences#prefsection-personal|profilo de usator]].",
 	'openidusernameprefix' => 'Usator OpenID',
-	'openidserverlogininstructions' => 'Entra tu contrasigno in basso pro aperir un session in $3 como le usator $2 (pagina de usator: $1).',
+	'openidserverlogininstructions' => 'Le sito $3 requesta que tu entra le contrasigno de tu conto "$2", pagina $1 (isto es tu URL de OpenID).',
 	'openidtrustinstructions' => 'Controla si tu vole repartir datos con $1.',
 	'openidallowtrust' => 'Permitte que $1 se fide a iste conto de usator.',
 	'openidnopolicy' => 'Le sito non ha specificate un politica de confidentialitate.',
@@ -1576,54 +2921,92 @@
 	'openidoptional' => 'Optional',
 	'openidrequired' => 'Requirite',
 	'openidnickname' => 'Pseudonymo',
-	'openidfullname' => 'Nomine integre',
+	'openidfullname' => 'Nomine complete',
 	'openidemail' => 'Adresse de e-mail',
 	'openidlanguage' => 'Lingua',
-	'openidnotavailable' => 'Tu pseudonymo preferite ($1) ja es in uso per un altere usator.',
-	'openidnotprovided' => 'Tu servitor OpenID non forniva un pseudonymo (o proque illo non lo pote, o proque tu lo diceva de non facer lo).',
+	'openidtimezone' => 'Fuso horari',
+	'openidchooselegend' => 'Selection del nomine de usator e del conto',
 	'openidchooseinstructions' => 'Tote le usatores require un pseudonymo;
 tu pote seliger un del optiones in basso.',
-	'openidchoosefull' => 'Tu nomine integre ($1)',
+	'openidchoosenick' => 'Tu pseudonymo ($1)',
+	'openidchoosefull' => 'Tu nomine complete ($1)',
 	'openidchooseurl' => 'Un nomine seligite de tu OpenID ($1)',
 	'openidchooseauto' => 'Un nomine automaticamente generate ($1)',
 	'openidchoosemanual' => 'Un nomine de tu preferentia:',
-	'openidchooseexisting' => 'Un conto existente in iste wiki:',
-	'openidchoosepassword' => 'contrasigno:',
-	'openidconvertinstructions' => 'Iste formulario te permitte cambiar tu conto de usator pro usar un adresse URL de OpenID.',
+	'openidchooseexisting' => 'Un conto existente in iste wiki',
+	'openidchooseusername' => 'Nomine de usator:',
+	'openidchoosepassword' => 'Contrasigno:',
+	'openidconvertinstructions' => 'Iste formulario te permitte cambiar tu conto de usator pro usar un URL de OpenID o adder altere URL de OpenID.',
+	'openidconvertoraddmoreids' => 'Converter in OpenID o adder un altere URL de OpenID',
 	'openidconvertsuccess' => 'Conversion a OpenID succedite',
 	'openidconvertsuccesstext' => 'Tu ha convertite con successo tu OpenID a $1.',
 	'openidconvertyourstext' => 'Isto es ja tu OpenID.',
 	'openidconvertothertext' => 'Isto es le OpenID de alcuno altere.',
-	'openidalreadyloggedin' => "'''Tu es ja identificate, $1!'''
+	'openidalreadyloggedin' => 'Tu es jam authenticate.',
+	'openidalreadyloggedintext' => "'''Tu es jam authenticate, \$1!'''
 
-Si tu vole usar OpenID pro aperir un session in le futuro, tu pote [[Special:OpenIDConvert|converter tu conto pro usar OpenID]].",
+Tu pote gerer (vider, deler, adder altere) OpenIDs in le [[Special:Preferences#prefsection-openid|scheda \"OpenID\"]] de tu preferentias.",
 	'openidnousername' => 'Nulle nomine de usator specificate.',
 	'openidbadusername' => 'Mal nomine de usator specificate.',
 	'openidautosubmit' => 'Iste pagina include un formulario que debe esser submittite automaticamente si tu ha JavaScript activate.
-Si non, prova le button \\"Continuar\\".',
+Si non, prova le button "Continue" (Continuar).',
 	'openidclientonlytext' => 'Tu non pote usar contos ab iste wiki como contos OpenID in un altere sito.',
 	'openidloginlabel' => 'Adresse URL de OpenID',
-	'openidlogininstructions' => '{{SITENAME}} supporta le standard [http://openid.net/ OpenID] pro contos unificate inter sitos web.
-OpenID te permitte aperir un session in multe diverse sitos web sin usar un differente contrasigno pro cata un.
-(Vide [http://ia.wikipedia.org/wiki/OpenID le articulo super OpenID in Wikipedia] pro plus informationes.)
-
-Si tu possede ja un conto in {{SITENAME}}, tu pote [[Special:UserLogin|aperir un session]] con tu nomine de usator e contrasigno como normal.
-Pro usar OpenID in le futuro, tu pote [[Special:OpenIDConvert|converter tu conto a OpenID]] post que tu ha aperite un session normal.
-
-Il ha multe [http://openid.net/get/ providitores de OpenID], e tu pote ja disponer de un conto con capacitate OpenID in un altere servicio.',
-	'openidupdateuserinfo' => 'Actualisar mi informationes personal',
-	'openid-prefstext' => 'Prreferentias de [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Celar tu <a href="http://openid.net/">OpenID</a> in tu pagina de usator, si tu aperi un session con OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Actualisar mi informationes ab mi personage OpenID cata vice que io aperi un session',
+	'openidlogininstructions' => '{{SITENAME}} supporta le standard [//openid.net/ OpenID] pro contos unificate inter sitos web.
+OpenID permitte aperir session in multe diverse sitos web sin usar un contrasigno differente pro cata un.
+(Vide [//ia.wikipedia.org/wiki/OpenID le articulo super OpenID in Wikipedia] pro plus informationes.)
+Il ha multe [//openid.net/get/ fornitores de OpenID], e tu pote jam disponer de un conto con capacitate OpenID in un altere servicio.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''solmente'' permitte aperir session con OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Si tu ha jam un conto in {{SITENAME}}, tu pote [[Special:UserLogin|aperir session]] con tu nomine de usator e contrasigno como de costume.
+Pro usar OpenID in le futuro, tu pote [[Special:OpenIDConvert|converter tu conto a OpenID]] post haber aperite session del modo normal.',
+	'openidupdateuserinfo' => 'Actualisar mi informationes personal:',
+	'openiddelete' => 'Deler OpenID',
+	'openiddelete-text' => 'Per cliccar le button "{{int:openiddelete-button}}", tu removera le OpenID $1 de tu conto.
+Tu non potera plus aperir un session con iste OpenID.',
+	'openiddelete-button' => 'Confirmar',
+	'openiddeleteerrornopassword' => 'Tu non pote deler tote tu OpenIDs proque tu conto non ha un contrasigno.
+Il esserea impossibile aperir un session sin OpenID.',
+	'openiddeleteerroropenidonly' => 'Tu non pote deler tote tu OpenIDs proque tu ha le permission de authenticar te solmente con OpenID.
+Il esserea impossibile aperir un session sin OpenID.',
+	'openiddelete-sucess' => 'Le OpenID ha essite removite de tu conto con successo.',
+	'openiddelete-error' => 'Un error occurreva durante le remotion del OpenID de tu conto.',
+	'openid-openids-were-not-merged' => 'Solmente le contos de usator, non le OpenID(s), ha essite fusionate.',
+	'openid-prefstext' => 'Prreferentias de [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Celar tu OpenID in tu pagina de usator, si tu aperi un session con OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Actualisar le sequente informationes ab mi personage OpenID cata vice que io aperi un session:',
+	'openid-urls-desc' => 'OpenIDs associate con tu conto:',
+	'openid-urls-action' => 'Action',
+	'openid-urls-registration' => 'Hora de registration',
+	'openid-urls-delete' => 'Deler',
+	'openid-add-url' => 'Adder un nove OpenID',
+	'openid-login-or-create-account' => 'Aperir session o crear nove conto',
+	'openid-provider-label-openid' => 'Entra le URL de tu OpenID',
+	'openid-provider-label-google' => 'Aperir session con tu conto de Google',
+	'openid-provider-label-yahoo' => 'Aperir session con tu conto de Yahoo',
+	'openid-provider-label-aol' => 'Entra tu pseudonymo de AOL',
+	'openid-provider-label-other-username' => 'Entra tu nomine de usator de $1',
+	'specialpages-group-openid' => 'Paginas de servicio OpenID e informationes de stato',
+	'right-openid-dashboard-access' => 'Accesso standard al pannello de instrumentos OpenID',
+	'right-openid-dashboard-admin' => 'Accesso administrator al pannello de instrumentos OpenID',
+	'openid-dashboard-title' => 'Pannello de instrumentos OpenID',
+	'openid-dashboard-title-admin' => 'Pannello de instrumentos OpenID (administrator)',
+	'openid-dashboard-introduction' => 'Le configuration actual del extension OpenID ([$1 adjuta])',
+	'openid-dashboard-number-openid-users' => 'Numero de usatores con OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Numero de OpenIDs (total)',
+	'openid-dashboard-number-users-without-openid' => 'Numero de usatores sin OpenID',
 );
 
 /** Indonesian (Bahasa Indonesia)
+ * @author -iNu-
+ * @author Bennylin
+ * @author Irwangatot
+ * @author IvanLanin
+ * @author Kenrick95
  * @author Rex
  */
 $messages['id'] = array(
-	'openid-desc' => 'Masuk log ke wiki dengan sebuah [http://openid.net/ OpenID], dan masuk log ke situs web lain yang berbasis OpenID dengan sebuah akun pengguna wiki',
-	'openidlogin' => 'Masuk log dengan OpenID',
-	'openidfinish' => 'Selesai masuk log dengan OpenID',
+	'openid-desc' => 'Masuk log ke wiki dengan sebuah [//openid.net/ OpenID], dan masuk log ke situs web lain yang berbasis OpenID dengan sebuah akun pengguna wiki',
+	'openidlogin' => 'Masuk log/ buat akun dengan OpenID',
 	'openidserver' => 'Server OpenID',
 	'openidxrds' => 'berkas Yadis',
 	'openidconvert' => 'Konverter OpenID',
@@ -1640,9 +3023,13 @@
 	'openidfailuretext' => 'Verifikasi dari URL OpenID tersebut gagal.
 Pesan kesalahan: "$1"',
 	'openidsuccess' => 'Verifikasi berhasil',
-	'openidsuccesstext' => 'Verifikasi dari URL OpenID tersebut berhasil.',
+	'openidsuccesstext' => "''Verifikasi berhasil dan masuk log sebagai pengguna $1'''.
+
+OpenID Anda adalah $2.
+
+Ini dan OpenID selanjutnya, dan sebuah kata sandi akun opsional, dapat dikelola di [[Special:Preferences|preferensi]] Anda.",
 	'openidusernameprefix' => 'PenggunaOpenID',
-	'openidserverlogininstructions' => 'Masukkan kata sandi Anda di bawah ini untuk masuk log ke $3 sebagai pengguna $2 (halaman pengguna $1).',
+	'openidserverlogininstructions' => '$3 meminta Anda memasukkan sandi untuk halaman pengguna $2 Anda di $1 (ini adalah URL OpenID Anda)',
 	'openidtrustinstructions' => 'Berikan tanda cek jika Anda ingin berbagi data dengan $1.',
 	'openidallowtrust' => 'Izinkan $1 untuk mempercayai akun pengguna ini.',
 	'openidnopolicy' => 'Situs ini tidak memiliki kebijakan privasi.',
@@ -1651,19 +3038,22 @@
 	'openidrequired' => 'Diperlukan',
 	'openidnickname' => 'Nama panggilan',
 	'openidfullname' => 'Nama lengkap',
-	'openidemail' => 'Alamat surat-e',
+	'openidemail' => 'Alamat surel',
 	'openidlanguage' => 'Bahasa',
-	'openidnotavailable' => 'Nama panggilan yang Anda masukkan ($1) sudah digunakan oleh pengguna lain.',
-	'openidnotprovided' => 'Server OpenID Anda tidak menyediakan nama panggilan (entah karena server tersebut tidak bisa, atau Anda telah menspesifikasikan untuk tidak menyediakannya).',
+	'openidtimezone' => 'Zona waktu',
+	'openidchooselegend' => 'Pilihan nama pengguna dan akun',
 	'openidchooseinstructions' => 'Semua pengguna memerlukan sebuah nama panggilan;
 Anda dapat memilih dari salah satu opsi berikut.',
+	'openidchoosenick' => 'Nama panggilan anda ($1)',
 	'openidchoosefull' => 'Nama lengkap Anda ($1)',
 	'openidchooseurl' => 'Sebuah nama diambil dari OpenID Anda ($1)',
 	'openidchooseauto' => 'Nama yang dibuat secara otomatis ($1)',
 	'openidchoosemanual' => 'Nama pilihan Anda:',
-	'openidchooseexisting' => 'Akun telah ada di wiki ini:',
-	'openidchoosepassword' => 'kata sandi:',
-	'openidconvertinstructions' => 'Form ini mengizinkan Anda untuk mengubah akun pengguna Anda menjadi menggunakan sebuah URL OpenID.',
+	'openidchooseexisting' => 'Akun yang telah ada di wiki ini',
+	'openidchooseusername' => 'Nama pengguna:',
+	'openidchoosepassword' => 'Kata sandi:',
+	'openidconvertinstructions' => 'Formulir ini mengijinkan Anda untuk mengganti akun pengguna Anda menjadi OpenID atau menambahkan pranala OpenID',
+	'openidconvertoraddmoreids' => 'Konversi ke OpenID atau tambahkan URL OpenID yang lain',
 	'openidconvertsuccess' => 'Berhasil dikonversi menjadi OpenID',
 	'openidconvertsuccesstext' => 'Anda telah berhasil mengkonversi OpenID Anda menjadi $1.',
 	'openidconvertyourstext' => 'Sudah merupakan OpenID Anda.',
@@ -1674,43 +3064,71 @@
 	'openidnousername' => 'Tidak ada nama pengguna diberikan.',
 	'openidbadusername' => 'Nama pengguna salah.',
 	'openidautosubmit' => 'Dalam halaman ini terdapat formulir yang akan dikirimkan secara otomatis jika Anda mengaktifkan JavaScript.
-Jika tidak, coba tombol \\"Lanjutkan\\".',
+Jika tidak, coba tombol "Continue" (Lanjutkan).',
 	'openidclientonlytext' => 'Anda tidak dapat menggunakan akun dari wiki ini sebagai OpenID di situs lain.',
 	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => "{{SITENAME}} ini mendukung standar [http://openid.net/ OpenID] untuk masuk log lintas situs web.
-OpenID mengizinkan Anda untuk masuk log di lintas situs web dengan menggunakan kata sandi yang sama.
-(Lihat [http://id.wikipedia.org/wiki/OpenID artikel Wikipedia mengenai OpenID] untuk informasi lebih lanjut.)
+	'openidlogininstructions' => '{{SITENAME}} mendukung standar [//openid.net/ OpenID] untuk info masuk tunggal lintas situs web.
+OpenID mengizinkan Anda untuk masuk log di berbagai situs web tanpa harus memasukkan kata sandi yang berbeda.
+(Lihat [//id.wikipedia.org/wiki/OpenID artikel Wikipedia mengenai OpenID] untuk informasi lebih lanjut.)
+Ada banyak [//openid.net/get penyedia OpenID] dan Anda mungkin telah memiliki akun OpenID di salah satu layanan situs lain.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''hanya'' mengizinkan untuk masuk log dengan OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Jika Anda sudah memiliki akun di {{SITENAME}}, Anda dapat [[Special:UserLogin|masuk]] dengan nama pengguna dan sandi Anda seperti biasa.
+Untuk menggunakan OpenID selanjutnya, Anda dapat [[Special:OpenIDConvert|mengubah akun menjadi OpenID]] setelah Anda masuk seperti biasa.',
+	'openidupdateuserinfo' => 'Mutakhirkan informasi pribadi saya:',
+	'openiddelete' => 'Hapus OpenID',
+	'openiddelete-text' => 'Dengan menekan tombol "{{int:openiddelete-button}}", Anda akan menghapuskan OpenID $1 dari akun Anda.
+Anda tidak akan dapat masuk log lagi dengan OpenID ini.',
+	'openiddelete-button' => 'Konfirmasi',
+	'openiddeleteerrornopassword' => 'Anda tidak dapat menghapus semua OpenID Anda karena akun Anda tidak diberi kata sandi.
+Anda tidak akan dapat masuk log tanpa OpenID.',
+	'openiddeleteerroropenidonly' => 'Anda tidak dapat menghapus semua OpenIDs Anda karena Anda hanya diijinkan masuk log dengan OpenID. 
+Anda tidak akan dapat masuk log tanpa OpenID.',
+	'openiddelete-sucess' => 'OpenID telah dihapus dari akun Anda.',
+	'openiddelete-error' => 'Terjadi kesalahan saat berusaha menghapus OpenID dari akun Anda.',
+	'openid-prefstext' => 'Preferensi [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Sembunyikan URL OpenID Anda di halaman pengguna Anda, jika Anda masuk log dengan OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Mutakhirkan informasi dari persona OpenID berikut setiap kali saya masuk log:',
+	'openid-urls-desc' => 'OpenID yang dihubungkan dengan akun Anda:',
+	'openid-urls-action' => 'Tindakan',
+	'openid-urls-delete' => 'Hapus',
+	'openid-add-url' => 'Tambahkan OpenID baru',
+	'openid-login-or-create-account' => 'Log Masuk atau Daftarkan Akun Baru',
+	'openid-provider-label-openid' => 'Masukkan URL OpenID Anda',
+	'openid-provider-label-google' => 'Log masuk mengunakan akun Google Anda',
+	'openid-provider-label-yahoo' => 'Log masuk mengunakan akun Yahoo Anda',
+	'openid-provider-label-aol' => 'Masukkan nama pengguna AOL Anda',
+	'openid-provider-label-other-username' => 'Masukkan nama pengguna $1 Anda',
+);
 
-Jika Anda telah memiliki akun di {{SITENAME}}, Anda dapat [[Special:UserLogin|masuk log]] dengan nama pengguna dan kata sandi Anda seperti biasa.
-Untuk menggunakan OpenID di masa yang akan datang, Anda dapat [[Special:OpenIDConvert|mengkonversi akun Anda menjadi OpenID]] setelah Anda masuk log seperti biasa.
-
-Ada banyak [http://wiki.openid.net/Public_OpenID_providers penyedia OpenID Publik], dan Anda mungkin telah memiliki akun OpenID di salah satu layanan situs lain.
-
-; Wiki lain : Jika Anda memiliki akun di wiki lain dengan OpenID, seperti [http://wikitravel.org/ Wikitravel], [http://www.wikihow.com/ wikiHow], [http://vinismo.com/ Vinismo], [http://aboutus.org/ AboutUs], atau [http://kei.ki/ Keiki], Anda dapat masuk log ke {{SITENAME}} menggunakan '''URL lengkap''' dari halaman pengguna Anda di wiki lain tersebut di kotak di atas. Sebagai contoh, ''<nowiki>http://kei.ki/en/User:Evan</nowiki>''.
-; [http://openid.yahoo.com/ Yahoo!] : Jika Anda memiliki akun di Yahoo!, Anda dapat masuk log di situs ini dengan menggunakan OpenID Yahoo! Anda di kotak di atas. URL OpenID Yahoo! memiliki format ''<nowiki>https://me.yahoo.com/yourusername</nowiki>''.
-; [http://dev.aol.com/aol-and-63-million-openids AOL] : Jika Anda memiliki akun di [http://www.aol.com/ AOL], seperti akun [http://www.aim.com/ AIM], Anda dapat masuk log di {{SITENAME}} dengan menggunakan OpenID AOL Anda di kotak di atas. URL OpenID AOL memiliki format ''<nowiki>http://openid.aol.com/yourusername</nowiki>''. Nama pengguna Anda haruslah dalam huruf kecil semua dan tanpa spasi.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox] : Jika Anda memiliki blog di situs-situs layanan ini, masukkan URL blog Anda di kotak di atas. Sebagai contoh, ''<nowiki>http://yourusername.blogspot.com/</nowiki>'', ''<nowiki>http://yourusername.wordpress.com/</nowiki>'', ''<nowiki>http://yourusername.livejournal.com/</nowiki>'', atau ''<nowiki>http://yourusername.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'Sembunyikan <a href="http://openid.net/">OpenID</a> Anda di halaman pengguna Anda, jika Anda masuk log dengan OpenID.',
+/** Igbo (Igbo)
+ * @author Ukabia
+ */
+$messages['ig'] = array(
+	'openidoptional' => 'I cho, ka I chogị',
+	'openidchoosepassword' => 'Okwúngáfè:',
+	'openid-urls-delete' => 'Kàcha',
 );
 
 /** Icelandic (Íslenska)
  * @author S.Örvarr.S
  */
 $messages['is'] = array(
-	'openidchoosepassword' => 'lykilorð:',
+	'openidchoosepassword' => 'Lykilorð:',
 );
 
 /** Italian (Italiano)
+ * @author Beta16
  * @author BrokenArrow
+ * @author Civvì
  * @author Darth Kule
  * @author McDutchie
  * @author Nemo bis
  * @author Pietrodn
+ * @author Stefano-c
  */
 $messages['it'] = array(
-	'openid-desc' => 'Effettua il login alla wiki con [http://openid.net/ OpenID] e agli altri siti web che utilizzano OpenID con un account wiki',
-	'openidlogin' => 'Login con OpenID',
-	'openidfinish' => 'Completa il login OpenID',
+	'openid-desc' => 'Effettua il login alla wiki con [//openid.net/ OpenID] e agli altri siti web che utilizzano OpenID con un account wiki',
+	'openidlogin' => 'Entra / crea account con OpenID',
 	'openidserver' => 'server OpenID',
 	'openidxrds' => 'file Yadis',
 	'openidconvert' => 'convertitore OpenID',
@@ -1739,51 +3157,76 @@
 	'openidfullname' => 'Nome completo',
 	'openidemail' => 'Indirizzo e-mail',
 	'openidlanguage' => 'Lingua',
-	'openidnotavailable' => 'Il tuo nickname preferito ($1) è già utilizzato da un altro utente.',
-	'openidnotprovided' => 'Il tuo server OpenID non ha fornito un nickname (o perché non ha potuto o perché hai detto di non farlo).',
+	'openidtimezone' => 'Fuso orario',
+	'openidchooselegend' => "Scelta del nome utente e dell'account",
 	'openidchooseinstructions' => 'Tutti gli utenti hanno bisogno di un nickname;
 puoi sceglierne uno dalle opzioni seguenti.',
+	'openidchoosenick' => 'Il tuo nickname ($1)',
 	'openidchoosefull' => 'Il tuo nome completo ($1)',
 	'openidchooseurl' => 'Un nome scelto dal tuo OpenID ($1)',
 	'openidchooseauto' => 'Un nome auto-generato ($1)',
 	'openidchoosemanual' => 'Un nome di tua scelta:',
-	'openidchooseexisting' => 'Un account esistente su questa wiki:',
-	'openidchoosepassword' => 'password:',
-	'openidconvertinstructions' => 'Questo modulo ti permette di cambiare il tuo account per usare un URL OpenID.',
+	'openidchooseexisting' => 'Un account esistente su questa wiki',
+	'openidchooseusername' => 'Nome utente:',
+	'openidchoosepassword' => 'Password:',
+	'openidconvertinstructions' => 'Questo modulo permette di cambiare il proprio account per usare un URL OpenID o aggiungere altri URL OpenID.',
+	'openidconvertoraddmoreids' => 'Converti in OpenID o aggiungi un altro URL OpenID',
 	'openidconvertsuccess' => 'Convertito con successo a OpenID',
 	'openidconvertsuccesstext' => 'Il tuo OpenID è stato convertito con successo a $1.',
 	'openidconvertyourstext' => 'Questo è già il tuo OpenID.',
 	'openidconvertothertext' => "Questo è l'OpenID di qualcun altro.",
-	'openidalreadyloggedin' => "'''Hai già effettuato il login, $1!'''
-
-Se desideri usare OpenID per effettuare il login in futuro, puoi [[Special:OpenIDConvert|convertire il tuo account per utilizzare OpenID]].",
+	'openidalreadyloggedin' => "Hai già effettuato l'accesso.",
 	'openidnousername' => 'Nessun nome utente specificato.',
 	'openidbadusername' => 'Nome utente specificato errato.',
-	'openidautosubmit' => 'Questa pagina include un modulo che dovrebbe essere inviato automaticamente se hai JavaScript attivato. Se non lo è, prova a premere il pulsante \\"Continue\\".',
+	'openidautosubmit' => 'Questa pagina include un modulo che dovrebbe essere inviato automaticamente se hai JavaScript attivato. Se non lo è, prova a premere il pulsante "Continue".',
 	'openidclientonlytext' => 'Non puoi usare gli account di questa wiki come OpenID su un altro sito.',
 	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => '{{SITENAME}} supporta lo standard [http://openid.net/ OpenID] per il login unico sui siti web.
+	'openidlogininstructions' => '{{SITENAME}} supporta lo standard [//openid.net/ OpenID] per il login unico sui siti web.
 OpenID consente di effettuare la registrazione su molti siti web senza dover utilizzare una password diversa per ciascuno.
-(Leggi la [http://it.wikipedia.org/wiki/OpenID voce di Wikipedia su OpenID] per maggiori informazioni.)
+(Leggi la [//it.wikipedia.org/wiki/OpenID voce di Wikipedia su OpenID] per maggiori informazioni.)
 
 Chi possiede già un account su {{SITENAME}} può effettuare il [[Special:UserLogin|login]] con il proprio nome utente e la propria password come al solito. Per utilizzare OpenID in futuro, si può [[Special:OpenIDConvert|convertire il proprio account a OpenID]] dopo aver effettuato normalmente il login.
 
-Esistono molti [http://openid.net/get/ Provider OpenID]; è possibile che tu abbia già un account abilitato a OpenID su un altro servizio.',
-	'openidupdateuserinfo' => 'Aggiorna le mie informazioni personali',
-	'openid-prefstext' => 'Preferenze [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Nascondi il tuo <a href="http://openid.net/">OpenID</a> sulla tua pagina utente, se effettui il login con OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Aggiorna le mie informazioni dalla persona OpenID a ogni accesso',
+Esistono molti [//openid.net/get/ Provider OpenID]; è possibile che tu abbia già un account abilitato a OpenID su un altro servizio.',
+	'openidupdateuserinfo' => 'Aggiorna i miei dati personali:',
+	'openiddelete' => 'Cancella OpenID',
+	'openiddelete-text' => 'Facendo clic sul pulsante "{{int:openiddelete-button}}" verrà rimosso l\'OpenID $1 dal proprio account.
+Non si potrà più effettuare il login con questo OpenID.',
+	'openiddelete-button' => 'Conferma',
+	'openiddeleteerrornopassword' => 'Non è possibile eliminare tutti i tuoi OpenID perché il tuo account non ha password. 
+Non saresti in grado di accedere senza un OpenID.',
+	'openiddeleteerroropenidonly' => 'Non puoi eliminare tutti i tuoi OpenID perché è permesso collegarsi sono tramite OpenID. 
+Non saresti in grado di accedere senza un OpenID.',
+	'openiddelete-sucess' => "L'OpenID è stato rimosso con successo dall'account.",
+	'openiddelete-error' => "Si è verificato un errore durante la rimozione dell'account OpenID.",
+	'openid-prefstext' => 'Preferenze [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Nascondi il tuo OpenID sulla tua pagina utente, se effettui il login con OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Aggiorna le seguenti informazioni dalla persona OpenID a ogni accesso:',
+	'openid-urls-desc' => 'OpenID associati al proprio account:',
+	'openid-urls-action' => 'Azione',
+	'openid-urls-delete' => 'Cancella',
+	'openid-add-url' => 'Aggiungi un nuovo OpenID',
+	'openid-login-or-create-account' => 'Entra o crea un nuovo account',
+	'openid-provider-label-openid' => "Inserisci l'URL del tuo OpenID",
+	'openid-provider-label-google' => 'Accedi utilizzando il tuo account Google',
+	'openid-provider-label-yahoo' => 'Accedi utilizzando il tuo account Yahoo',
+	'openid-provider-label-aol' => 'Inserisci il tuo screenname AOL',
+	'openid-provider-label-other-username' => 'Inserisci il tuo $1 nome utente',
+	'openid-dashboard-number-openid-users' => 'Numero di utenti con OpenID',
 );
 
 /** Japanese (日本語)
+ * @author Aotake
  * @author Fievarsty
  * @author Fryed-peach
  * @author Hosiryuhosi
+ * @author Schu
+ * @author Whym
+ * @author 青子守歌
  */
 $messages['ja'] = array(
-	'openid-desc' => '[http://openid.net/ OpenID]によるウィキへのログインを可能にし、ウィキユーザーアカウントを他のOpenID対応サイトにログインすることを可能にする。',
-	'openidlogin' => 'OpenIDでログイン',
-	'openidfinish' => 'OpenIDでのログインが完了しました。',
+	'openid-desc' => '[//openid.net/ OpenID]によるウィキへのログインを可能にし、ウィキユーザーアカウントを他のOpenID対応サイトにログインすることを可能にする。',
+	'openidlogin' => 'OpenIDでログイン / アカウントを作成',
 	'openidserver' => 'OpenID サーバー',
 	'openidxrds' => 'Yadis ファイル',
 	'openidconvert' => 'OpenID コンバーター',
@@ -1805,43 +3248,75 @@
 	'openidallowtrust' => '$1 がこの利用者アカウントを信用するのを許可する。',
 	'openidnopolicy' => 'サイトはプライバシーに関する方針を明記していません。',
 	'openidpolicy' => 'より詳しくは<a target="_new" href="$1">プライバシーに関する方針</a>を確認してください。',
-	'openidoptional' => '任意',
+	'openidoptional' => '省略可能',
 	'openidrequired' => '必須',
 	'openidnickname' => 'ニックネーム',
 	'openidfullname' => 'フルネーム',
 	'openidemail' => '電子メールアドレス',
 	'openidlanguage' => '言語',
-	'openidnotavailable' => 'あなたが選んだニックネーム ($1) は既に他の利用者が使っています。',
-	'openidnotprovided' => 'あなたの OpenID サーバーはニックネームを提供していません(提供できない場合と、提供しないようあなたが指示している場合とがあります)。',
+	'openidtimezone' => '時間帯',
+	'openidchooselegend' => '利用者名の選択',
 	'openidchooseinstructions' => 'すべての利用者はニックネームが必要です。以下の選択肢から1つを選ぶことができます。',
+	'openidchoosenick' => 'あなたのニックネーム($1)',
 	'openidchoosefull' => 'あなたのフルネーム ($1)',
 	'openidchooseurl' => 'あなたの OpenID から選んだ名前 ($1)',
 	'openidchooseauto' => '自動生成された名前 ($1)',
 	'openidchoosemanual' => '名前を別に設定する:',
-	'openidchooseexisting' => 'このウィキに存在するアカウント:',
+	'openidchooseexisting' => 'このウィキに存在するアカウント',
+	'openidchooseusername' => '利用者名:',
 	'openidchoosepassword' => 'パスワード:',
-	'openidconvertinstructions' => 'このフォームを使うとあなたの利用者アカウントが OpenID URLを使うように変更できます。',
+	'openidconvertinstructions' => 'このフォームを使うと、あなたの利用者アカウントで OpenID URL を使うように変更するか、OpenID URL をさらに追加できます。',
+	'openidconvertoraddmoreids' => 'OpenID か別の OpenID URL に変換する',
 	'openidconvertsuccess' => 'OpenID への変換に成功しました',
 	'openidconvertsuccesstext' => 'あなたは OpenID の $1 への変換に成功しました。',
 	'openidconvertyourstext' => 'これは既にあなたの OpenID です。',
 	'openidconvertothertext' => 'これは他の誰かの OpenID です。',
-	'openidalreadyloggedin' => "'''$1 さん、あなたは既にログインしています!'''
+	'openidalreadyloggedin' => "'''$1 さん、あなたは既にログインしています!'''
 
 将来は OpenID を使ってログインしたい場合は、[[Special:OpenIDConvert|あなたのアカウントを OpenID を使うように変換する]]ことができます。",
 	'openidnousername' => '利用者名が指定されていません。',
 	'openidbadusername' => '利用者名の指定が不正です。',
-	'openidautosubmit' => 'このページにあるフォームはあなたが JavaScript を有効にしていれば自動的に送信されるはずです。そうならない場合は、「続ける」ボタンを試してください。',
+	'openidautosubmit' => 'このページにあるフォームはあなたが JavaScript を有効にしていれば自動的に送信されるはずです。そうならない場合は、 "Continue" (続ける) ボタンを試してください。',
 	'openidclientonlytext' => 'あなたはこのウィキのアカウントを他のサイトで OpenID として使うことができません。',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => '{{SITENAME}} はウェブサイト間でのシングルサインオンのための [http://openid.net/ OpenID] 規格に対応しています。OpenID によって、個別のパスワードを使うことなく、たくさんの様々なウェブサイトにログインできるようになります(より詳しい情報は[http://ja.wikipedia.org/wiki/OpenID ウィキペディアの OpenID についての記事]を参照してください)。
+	'openidlogininstructions' => '{{SITENAME}} はウェブサイト間でのシングルサインオンのための [//openid.net/ OpenID] 規格に対応しています。OpenID によって、個別のパスワードを使うことなく、たくさんの様々なウェブサイトにログインできるようになります(より詳しい情報は[//ja.wikipedia.org/wiki/OpenID ウィキペディアの OpenID についての記事]を参照してください)。
 
 あなたが既に {{SITENAME}} でアカウントをもっている場合は、いつもどおりに利用者名とパスワードで[[Special:UserLogin|ログイン]]できます。将来、OpenID を使うためには、通常のログインをした後で[[Special:OpenIDConvert|あなたのアカウントを OpenID に変換する]]ことができます。
 
-多くの [http://openid.net/get/ OpenID プロバイダー]が存在し、あなたは既に別のサービスで OpenID が有効となったアカウントを保持しているかもしれません。',
-	'openidupdateuserinfo' => '自分の個人情報を更新',
-	'openid-prefstext' => '[http://openid.net/ OpenID] の設定',
-	'openid-pref-hide' => 'OpenID でログインしている場合に、あなたの <a href="http://openid.net/">OpenID</a> をあなたの利用者ページで表示しない。',
-	'openid-pref-update-userinfo-on-login' => 'ログインするたびに、自分の情報を OpenID のペルソナから更新する',
+多くの [//openid.net/get/ OpenID プロバイダー]が存在し、あなたは既に別のサービスで OpenID が有効となったアカウントを保持しているかもしれません。',
+	'openidupdateuserinfo' => '自分の個人情報を更新:',
+	'openiddelete' => 'OpenID を削除',
+	'openiddelete-text' => '「{{int:openiddelete-button}}」ボタンをクリックすると、あなたのアカウントから OpenID $1 を除去します。以降、あなたはこの OpenID を使ってログインすることができなくなります。',
+	'openiddelete-button' => '確定',
+	'openiddeleteerrornopassword' => 'アカウントにパスワードが設定されていないため、あなたのOpenIDを削除できません。
+あなたは、OpenIDを使用せずにログインできません。',
+	'openiddeleteerroropenidonly' => 'OpenIDを使用してのログインのみが許可されているため、あなたのOpenIDを削除できません。
+あなたは、OpenIDを使用せずにログインできません。',
+	'openiddelete-sucess' => 'この OpenID のあなたのアカウントからの除去に成功しました。',
+	'openiddelete-error' => 'あなたのアカウントからこの OpenID を除去している途中でエラーが発生しました。',
+	'openid-openids-were-not-merged' => 'ユーザーアカウントをマージする際の OpenID はマージされませんでした。',
+	'openid-prefstext' => '[//openid.net/ OpenID] の設定',
+	'openid-pref-hide' => 'OpenID でログインしている場合に、あなたの OpenID をあなたの利用者ページで表示しない。',
+	'openid-pref-update-userinfo-on-login' => 'ログインするたびに、次の情報を OpenID のペルソナから更新する:',
+	'openid-urls-desc' => 'あなたのアカウントに関連づけられた OpenID:',
+	'openid-urls-action' => '操作',
+	'openid-urls-delete' => '削除',
+	'openid-add-url' => '新しい OpenID を追加',
+	'openid-login-or-create-account' => 'サインインあるいは新規アカウントの作成',
+	'openid-provider-label-openid' => 'あなたの OpenID URL を入力します',
+	'openid-provider-label-google' => 'あなたの Google アカウントを用いてログインする',
+	'openid-provider-label-yahoo' => 'あなたの Yahoo アカウントを用いてログインする',
+	'openid-provider-label-aol' => 'あなたの AOL スクリーンネームを入力します',
+	'openid-provider-label-other-username' => 'あなたの $1 での利用者名を入力します',
+	'specialpages-group-openid' => 'OpenID のサービスページとステータス情報',
+	'right-openid-dashboard-access' => 'OpenID ダッシュボードへの標準アクセス',
+	'right-openid-dashboard-admin' => 'OpenID ダッシュボードへの管理者アクセス',
+	'openid-dashboard-title' => 'OpenID ダッシュボード',
+	'openid-dashboard-title-admin' => 'OpenID ダッシュボード (管理者)',
+	'openid-dashboard-introduction' => '現在の OpenID 拡張機能の設定 ([$1 ヘルプ])',
+	'openid-dashboard-number-openid-users' => 'OpenIDを持つ利用者の数',
+	'openid-dashboard-number-openids-in-database' => 'OpenID の数 (合計)',
+	'openid-dashboard-number-users-without-openid' => 'OpenID を持たない利用者の数',
 );
 
 /** Javanese (Basa Jawa)
@@ -1866,9 +3341,31 @@
 	'openidchoosefull' => 'Jeneng pepak panjenengan ($1)',
 	'openidchooseauto' => 'Jeneng ($1) sing digawé sacara otomatis',
 	'openidchoosemanual' => 'Jeneng miturut pilihan panjenengan:',
-	'openidchoosepassword' => 'tembung sandhi:',
+	'openidchoosepassword' => 'Tembung sandhi:',
 );
 
+/** Georgian (ქართული)
+ * @author Malafaya
+ */
+$messages['ka'] = array(
+	'openidtimezone' => 'სასაათო სარტყელი',
+);
+
+/** Kirmanjki (Kırmancki)
+ * @author Mirzali
+ */
+$messages['kiu'] = array(
+	'openidlanguage' => 'Zon',
+	'openidtimezone' => 'Warê sate',
+);
+
+/** Kalaallisut (Kalaallisut)
+ * @author Qaqqalik
+ */
+$messages['kl'] = array(
+	'openidlanguage' => 'Oqaatsit',
+);
+
 /** Khmer (ភាសាខ្មែរ)
  * @author Lovekhmer
  * @author T-Rithy
@@ -1888,47 +3385,153 @@
 	'openidfullname' => 'ឈ្មោះពេញ',
 	'openidemail' => 'អាសយដ្ឋានអ៊ីមែល',
 	'openidlanguage' => 'ភាសា',
-	'openidnotavailable' => 'ឈ្មោះហៅក្រៅ​ដែលអ្នកពេញចិត្ត ($1) ត្រូវបានប្រើដោយ​អ្នកប្រើប្រាស់​ម្នាក់​ផ្សេងទៀតហើយ។',
+	'openidtimezone' => 'ល្វែងម៉ោង',
+	'openidchooselegend' => 'ជំរើសអត្តនាម',
 	'openidchooseinstructions' => 'អ្នកប្រើប្រាស់ទាំងត្រូវការឈ្មោះហៅក្រៅ
 
 អ្នកអាចជ្រើសរើសពីក្នុងជម្រើសខាងក្រោម។',
+	'openidchoosenick' => 'ឈ្មោះហៅក្រៅរបស់អ្នក ($1)',
 	'openidchoosefull' => 'ឈ្មោះពេញ​របស់អ្នក ($1)',
-	'openidchoosemanual' => 'ឈ្មោះនៃជម្រើសរបស់អ្នក:',
-	'openidchooseexisting' => 'គណនីមាននៅក្នុងវិគីនេះ:',
+	'openidchooseurl' => 'ឈ្មោះដែលយកពី OpenID របស់អ្នក ($1)',
+	'openidchooseauto' => 'ឈ្មោះបង្កើតស្វ័យប្រវត្តិ ($1)',
+	'openidchoosemanual' => 'ឈ្មោះសំរាប់អោយអ្នកជ្រើយយក៖',
+	'openidchooseexisting' => 'គណនីដែលមានរួចហើយនៅក្នុងវិគីនេះ',
+	'openidchooseusername' => 'អត្តនាម៖',
 	'openidchoosepassword' => 'ពាក្យសំងាត់៖',
 	'openidconvertsuccess' => 'បានបម្លែងទៅ OpenID ដោយជោគជ័យ',
 	'openidconvertyourstext' => 'វាជាOpenIDរបស់អ្នករួចហើយ។',
 	'openidconvertothertext' => 'វាជាOpenIDរបស់អ្នកដទៃ។',
-	'openidalreadyloggedin' => "'''អ្នកបានឡុកអ៊ីនរួចហើយ $1!'''
-ប្រសិនបើអ្នកចង់់ប្រើ OpenID ដើម្បីឡុកអ៊ីននាពេលអនាគត អ្នកអាច[[Special:OpenIDConvert|បម្លែងគណនីរបស់អ្នកដើម្បីប្រើ OpenID]]។",
-	'openidnousername' => 'មិនមានឈ្មោះអ្នកប្រើប្រាស់បានបញ្ជាក់ទេ។',
+	'openidalreadyloggedin' => "'''អ្នកបានកត់ឈ្មោះចូលរួចហើយ $1!'''
+ប្រសិនបើអ្នកចង់់ប្រើ OpenID ដើម្បីចុះឈ្មោះចូលនាពេលអនាគត អ្នកអាច[[Special:OpenIDConvert|បម្លែងគណនីរបស់អ្នកដើម្បីប្រើ OpenID]]។",
+	'openidnousername' => 'មិនមានអត្តនាមបានបញ្ជាក់ទេ។',
 	'openidbadusername' => 'ឈ្មោះមិនត្រឹមត្រូវត្រូវបានបញ្ជាក់',
-	'openid-pref-hide' => 'លាក់<a href="http://openid.net/">OpenID</a>របស់អ្នកនៅលើទំព័រអ្នកប្រើប្រាស់របស់អ្នក ប្រសិនបើអ្នកឡុកអ៊ីនដោយប្រើOpenID។',
+	'openid-pref-hide' => 'លាក់OpenIDរបស់អ្នកនៅលើទំព័រអ្នកប្រើប្រាស់របស់អ្នក ប្រសិនបើអ្នកកត់ឈ្មោះចូលដោយប្រើOpenID។',
 );
 
+/** Kannada (ಕನ್ನಡ)
+ * @author Nayvik
+ */
+$messages['kn'] = array(
+	'openidoptional' => 'ಐಚ್ಛಿಕ',
+	'openidnickname' => 'ಉಪನಾಮ',
+	'openidlanguage' => 'ಭಾಷೆ',
+	'openidtimezone' => 'ಸಮಯ ವಲಯ',
+	'openidchoosepassword' => 'ಪ್ರವೇಶಪದ:',
+	'openid-urls-delete' => 'ಅಳಿಸು',
+);
+
 /** Korean (한국어)
+ * @author Devunt
  * @author Ficell
  * @author Kwj2772
+ * @author happyday19c
  */
 $messages['ko'] = array(
+	'openid-desc' => '[//openid.net/ OpenID]를 통한 로그인이 가능합니다. 또한 위키 사용자 계정을 통해 OpenID를 지원하는 다른 사이트에도 로그인이 가능합니다.',
 	'openidlogin' => 'OpenID로 로그인',
 	'openidserver' => 'OpenID 서버',
+	'openidxrds' => 'Yadis 파일',
 	'openidconvert' => 'OpenID 변환기',
+	'openiderror' => '인증 오류가 발생했습니다.',
+	'openiderrortext' => 'OpenID URL을 인증하는 과정에 오류가 발생하였습니다.',
 	'openidconfigerror' => 'OpenID 설정 오류',
+	'openidconfigerrortext' => 'OpenID 계정 정보 저장소에 문제가 발생하였습니다. [[Special:ListUsers/sysop|{{SITENAME}} 관리자]]에게 문의하시기 바랍니다.',
 	'openidpermission' => 'OpenID 권한 오류',
-	'openidemail' => '이메일 주소',
+	'openidpermissiontext' => '제출한 OpenID는 위키 접속을 지원하지 않습니다.',
+	'openidcancel' => '인증 취소',
+	'openidcanceltext' => 'OpenID 인증이 취소되었습니다.',
+	'openidfailure' => '인증 실패',
+	'openidfailuretext' => 'OpenID 인증이 실패하였습니다. 오류 메시지 : "$1"',
+	'openidsuccess' => '인증 성공',
+	'openidsuccesstext' => '성공적으로 OpenID URL이 인증되었습니다.',
+	'openidusernameprefix' => '오픈ID 사용자',
+	'openidserverlogininstructions' => '유저 $2로서 $3에 로그인하기 위한 암호를 입력하십시오. (사용자 페이지 $1)',
+	'openidtrustinstructions' => '$1과 데이터를 공유하려면 체크하십시오.',
+	'openidallowtrust' => '$1이 이 사용자 계정을 신뢰함.',
+	'openidnopolicy' => '사이트가 개인 정보 보호 정책을 제시하지 않았습니다.',
+	'openidpolicy' => '자세한 사항은 <a target="_new" href="$1">개인 정보 보호 정책</a>을 참고하십시오.',
+	'openidoptional' => '선택 사항',
+	'openidrequired' => '필수 사항',
+	'openidnickname' => '별명',
+	'openidfullname' => '전체이름',
+	'openidemail' => '메일 주소',
 	'openidlanguage' => '언어',
-	'openidchoosepassword' => '비밀번호:',
-	'openidloginlabel' => 'OpenID URL',
+	'openidtimezone' => '시간대',
+	'openidchooselegend' => '사용자 이름 선택',
+	'openidchooseinstructions' => '모든 사용자는 별명을 가져야 합니다.
+아래의 옵션 중 하나를 선택할 수 있습니다..',
+	'openidchoosenick' => '당신의 별명 ($1)',
+	'openidchoosefull' => '전체 이름은 ($1)',
+	'openidchooseurl' => 'OpenID로 부터 선택한 이름 ($1)',
+	'openidchooseauto' => '자동 생성된 이름 ($1)',
+	'openidchoosemanual' => '선택하신 이름:',
+	'openidchooseexisting' => '이 위키에 이미 존재하는 계정입니다',
+	'openidchooseusername' => '사용자 이름:',
+	'openidchoosepassword' => '암호:',
+	'openidconvertinstructions' => '이 양식은 OpenID URL을 통한 로그인을 설정하거나 OpenID URL을 추가하기 위한 곳입니다.',
+	'openidconvertoraddmoreids' => 'OpenID로 변환하거나 OpenID URL을 추가합니다.',
+	'openidconvertsuccess' => 'OpenID로의 변환이 완료되었습니다',
+	'openidconvertsuccesstext' => '성공적으로 제출하신 [$1 OpenID 정보]를 {{SITENAME}} 계정 정보로 변환하였습니다.',
+	'openidconvertyourstext' => '이미 사용중인 OpenID입니다.',
+	'openidconvertothertext' => '다른 사용자의 OpenID입니다.',
+	'openidalreadyloggedin' => "'''이미 $1로 로그인하셨습니다!'''
+
+추후 OpenID를 사용하고자 하신다면, 일반적인 방법으로 로그인 하신 후 [[Special:OpenIDConvert|사용자 계정을 OpenID로 변환]]할 수 있습니다.",
+	'openidnousername' => '사용자명을 지정하지 않았습니다.',
+	'openidbadusername' => '잘못된 사용자명을 지정하셨습니다.',
+	'openidautosubmit' => '자바 스크립트가 허용된 경우 자동으로 데이터가 전송됩니다..
+	만약 자동으로 로그인되지 않는다면 ""계속"" 버튼을 눌러주세요.',
+	'openidclientonlytext' => '{{SITENAME}}은 OpenID 서비스 제공자로서 동작하지 않습니다.',
+	'openidloginlabel' => 'OpenID URL 주소',
+	'openidlogininstructions' => '{{SITENAME}}에서는 다양한 웹사이트에서의 Single Sign-On을 지원하는 [//openid.net/ OpenID] 로그인 기능을 제공합니다.
+OpenID는 다른 많은 웹사이트에서 서로 다른 암호나 사용자명을 입력하는 불편없이 편리하게 로그인할 수 있도록 도와줍니다.
+(OpenID에 대한 자세한 정보는 [//ko.wikipedia.org/wiki/OpenID 위키피디아 OpenID 문서]를 참고하세요.)
+
+이미 {{SITENAME}}에 계정을 가지고 계신 경우, 일반적인 방법으로 [[Special:UserLogin|로그인]]이 가능합니다.
+추후 OpenID를 사용하고자 하신다면, 일반적인 방법으로 로그인 하신 후 [[Special:OpenIDConvert|사용자 계정을 OpenID로 변환]]할 수 있습니다.
+
+다양한 사이트에서 [//openid.net/get/ OpenID 서비스]를 제공하며, 이미 사용중인 다른 서비스가 OpenID 서비스를 제공할 수도 있습니다.',
+	'openidupdateuserinfo' => '내 개인 정보를 갱신:',
+	'openiddelete' => 'OpenID 삭제',
+	'openiddelete-text' => '"{{int:openiddelete-button}}" 버튼을 누르시면, [$1 OpenID 정보]를 당신의 사용자 계정으로부터 삭제할 것입니다.
+이후 OpenID를 통한 현재 사용자 계정으로의 로그인이 불가능하게 될 것입니다.',
+	'openiddelete-button' => '확인',
+	'openiddeleteerrornopassword' => '계정에 비밀번호를 설정 안했기 때문에 모든 OpenID 계정을 삭제 할 수 없습니다.
+OpenID 없이 로그인 할 수 없습니다.',
+	'openiddeleteerroropenidonly' => 'OpenID를 이용해서만 로그인 할 수 있기 때문에 모든 OpenID 계정을 삭제 할 수 없습니다.
+OpenID 없이 로그인 할 수 없습니다.',
+	'openiddelete-sucess' => '사용자 계정으로부터 OpenID 정보가 삭제되었습니다. [[특수기능:OpenIDConvert|OpenID 변환]] 페이지로 돌아갑니다.',
+	'openiddelete-error' => '사용자 계정으로부터 OpenID 정보를 삭제하는 과정에 오류가 발생하였습니다.',
+	'prefs-openid' => 'OpenID 설정',
+	'openid-prefstext' => '[//openid.net/ OpenID] 사용자 설정',
+	'openid-pref-hide' => 'OpenID로 로그인한 경우, 사용자 페이지에서 OpenID 정보를 보여주지 않습니다.',
+	'openid-pref-update-userinfo-on-login' => '로그인 시 업데이트 할 OpenID 정보 :',
+	'openid-urls-desc' => '현재 연결된 OpenID 계정 목록 :',
+	'openid-urls-url' => 'URL 주소',
+	'openid-urls-action' => '동작',
+	'openid-urls-delete' => '삭제',
+	'openid-add-url' => '새 OpenID 추가하기',
+	'openid-login-or-create-account' => '로그인 또는 새 계정 생성',
+	'openid-provider-label-openid' => 'OpenID URL을 입력하십시오',
+	'openid-provider-label-google' => '구글 계정을 통해 로그인하기',
+	'openid-provider-label-yahoo' => '야후 계정을 통해 로그인하기',
+	'openid-provider-label-aol' => 'AOL 사용자명을 입력하십시오',
+	'openid-provider-label-other-username' => '$1 사용자명을 입력하십시오',
 );
 
-/** Ripoarisch (Ripoarisch)
+/** Komi-Permyak (Перем Коми)
+ * @author Enye Lav
+ */
+$messages['koi'] = array(
+	'openid-urls-delete' => 'Чышкыны',
+);
+
+/** Colognian (Ripoarisch)
  * @author Purodha
  */
 $messages['ksh'] = array(
-	'openid-desc' => 'Hee em Wiki met ener [http://openid.net/ OpenID] enlogge, un angerschwoh mer OpenID kennt met enem Metmaacher-Name fum Wiki enlogge.',
+	'openid-desc' => 'Heh em Wiki met ener [//openid.net/ OpenID] enlogge, un angerschwoh, woh mer OpenID kennt, met enem Metmaacher-Name fun heh fum Wiki enlogge.',
 	'openidlogin' => 'Met OpenID enlogge',
-	'openidfinish' => 'Et Enlogge met OpenID afschleeße',
 	'openidserver' => 'OpenID Server',
 	'openidxrds' => 'Yadis-Dattei',
 	'openidconvert' => 'OpenID Ömsetzer',
@@ -1958,18 +3561,21 @@
 	'openidfullname' => 'Der janze Name',
 	'openidemail' => 'De e-mail Address',
 	'openidlanguage' => 'Sproch',
-	'openidnotavailable' => 'Dinge leevste Spetznam, „$1“, es ald beleesch,
-un enen anderen Metmaacher es dä am bruche.',
-	'openidnotprovided' => 'Dinge OpenID Server hät keine Spetzname aanjejovve. Künnt sin, hä kann dat nit, künnt sin, Do häss_et imm verbodde.',
+	'openidtimezone' => 'Zickzohn',
+	'openidchooselegend' => 'Ußwahl vum Metmaacher singem Name',
 	'openidchooseinstructions' => 'Jede Metmaacher bruch enne Spetznam,
 Do kannß Der der Dinge unge druß üßsöke.',
+	'openidchoosenick' => 'Dinge Spezname ($1)',
 	'openidchoosefull' => 'Dinge komplätte Name ($1)',
 	'openidchooseurl' => 'Enne Name uß Dinge OpenID eruß jejreffe ($1)',
 	'openidchooseauto' => 'Enne automattesch zerääsch jemaate Name ($1)',
 	'openidchoosemanual' => 'Ene Name, dä De Der sellver ußjedaach un jejovve häs:',
-	'openidchooseexisting' => 'Ene Metmaachername, dä et alld jitt op däm Wiki hee:',
+	'openidchooseexisting' => 'Ene Metmaachername, dä et alld jitt heh em Wiki',
+	'openidchooseusername' => 'Metmaachername:',
 	'openidchoosepassword' => 'Paßwoot:',
-	'openidconvertinstructions' => 'He kanns De Ding Aanmeldung als ene Metmaacher esu aanpasse, dat De en OpenID URL bruche kanns.',
+	'openidconvertinstructions' => 'He kanns De Ding Aanmeldung als ene Metmaacher esu aanpasse, dat De en <i lang="en">OpenID</i> <i lang="en">URL</i> bruche kanns.
+Do kanns och noch mieh <i lang="en">OpenID</i> <i lang="en">URLs</i> dobei donn.',
+	'openidconvertoraddmoreids' => 'Op <i lang="en">OpenID</i> ömshtelle, udder en <i lang="en">OpenID URL</i> dobei donn',
 	'openidconvertsuccess' => 'De Aanpassung aan OpenID hät jeklapp',
 	'openidconvertsuccesstext' => 'Do häß Ding OpenID jez ömjewandelt noh $1.',
 	'openidconvertyourstext' => 'Dat es ald Ding OpenID.',
@@ -1981,40 +3587,66 @@
 	'openidnousername' => 'Keine Metmaacher-Name aanjejovve.',
 	'openidbadusername' => 'Ene kapodde Metmaacher-Name aanjejovve.',
 	'openidautosubmit' => 'Di Sigg enthääld_e Fomulaa för Ennjave, wat automattesch afjeschek weed, wann de Javaskrip enjeschalldt häs.
-Wann nit, donn dä \\"Wigger\\" Knopp nemme.',
+Wann nit, donn dä "Continue" (Wigger) Knopp nemme.',
 	'openidclientonlytext' => 'Do kann de Aanmelldunge fun hee dämm Wiki nit als <span lang="en">OpenIDs</span> op annder Webßöövere nämme.',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => 'De {{SITENAME}} ongerstöz der <span lang="en">[http://openid.net/ OpenID]</span> Standat för et eijfache un eijmoolije Enlogge zwesche diverse Websigge.
+	'openidlogininstructions' => '{{ucfirst:{{GRAMMAR:Nominativ|{{SITENAME}}}}}} ongerstöz der <span lang="en">[//openid.net/ OpenID]</span> Standat för et eijfache un eijmoolije Enlogge zwesche diverse Websigge.
 <span lang="en">OpenID</span> määd_et müjjesch, dat mer op ongerscheedlijje Websigge enlogge kann, oohne dat mer övverall en annder Paßwoot bruch.
-Loor Der [http://ksh.wikipedia.org/wiki/OpenID der Wikipedia ier Atikkel övver <span lang="en">OpenID</span>] aan, do steit noch mieh dren.
+Loor Der [//ksh.wikipedia.org/wiki/OpenID der Wikipedia ier Atikkel övver <span lang="en">OpenID</span>] aan, do steit noch mieh dren.
 
-Wann de alld aanjemeldt bes op de {{SITENAME}}, dann kanns De met Dingem Metmaacher-Name un Paßwoot [[Special:UserLogin|enlogge]] wi sönß och.
+Wann de {{GRAMMAR:em|{{SITENAME}}}} alld aanjemeldt bes, dann kanns De met Dingem Metmaacher-Name un Paßwoot [[Special:UserLogin|enlogge]] wi sönß och.
 Öm spääder och <span lang="en">OpenID</span> ze bruche, kann noh_m nomaale Enlogge Ding Aanmeldungsdate [[Special:OpenIDConvert|op <span lang="en">OpenID</span> ömstelle]].
 
 Et jitt en jruuße Zahl [http://wiki.openid.net/Public_OpenID_providers <span lang="en">OpenID Provider</span> för de Öffentleschkeit], un et künnt joot sin, dat De alld ene <span lang="en">OpenID</span>-fä\'ijje Zojang häß, op däm eine udder andere Server.
 <!--
-; Annder Wikis : Wann De op enem Wiki aanjemelldt bes, wat <span lang="en">OpenID</span> ongerschtöz, zem Beispöll [http://wikitravel.org/ Wikitravel], [http://www.wikihow.com/ wikiHow], [http://vinismo.com/ Vinismo], [http://aboutus.org/ AboutUs] udder [http://kei.ki/ Keiki], kanns de hee op de {{SITENAME}} enlogge, indämm dat De de komplätte URL fun Dinge Metmaacher-Sigg op däm aandere Wiki hee bovve endrähß. Zem Beispöll esu jät wi: \'\'<nowiki>http://kei.ki/en/User:Evan</nowiki>\'\'.
-; [http://openid.yahoo.com/ Yahoo!] : Wann De bei <span lang="en">Yahoo!</span> aanjemelldt bes, kanns de hee op de {{SITENAME}} enlogge, indämm dat De de Ding <span lang="en">OpenID URL</span> bovve aanjiß, di De fun <span lang="en">Yahoo!</span> bekumme häß. Di <span lang="en">OpenID URLs</span> sinn uß wi zem Beispöll: \'\'<nowiki>https://me.yahoo.com/DingeMetmaacherName</nowiki>\'\'.
-; [http://dev.aol.com/aol-and-63-million-openids AOL] : Wann de ene zohjang op [http://www.aol.com/ AOL] häß, esu jet wie ennen Zojang zom [http://www.aim.com/ AIM], do kanns de Desch hee op de {{SITENAME}} enlogge, indämm dat De de Ding <span lang="en">OpenID</span> bovve enjiß. De <span lang="en">OpenID URLs</span> fun AOL sen opjebout wi \'\'<nowiki>http://openid.aol.com/dingemetmaachername</nowiki>\'\'. Dinge Metmaacher-Name sullt uß luuter Kleinbochstave bestonn, kein Zwescheräum.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox] : Wann de e <span lang="en">Blog</span> op einem fun dä Söövere häß, dann draach der Url fu Dingem <span lang="en">Blog</span> bovve en. Zem Beispöll: \'\'<nowiki>http://dingeblogname.blogspot.com/</nowiki>\'\', \'\'<nowiki>http://dingeblogname.wordpress.com/</nowiki>\'\', \'\'<nowiki>http://dingeblogname.livejournal.com/</nowiki>\'\', udder \'\'<nowiki>http://dingeblogname.vox.com/</nowiki>\'\'.
+; Annder Wikis : Wann De op enem Wiki aanjemelldt bes, wat <span lang="en">OpenID</span> ongerschtöz, zem Beispöll [//wikitravel.org/ Wikitravel], [//www.wikihow.com/ wikiHow], [//vinismo.com/ Vinismo], [//aboutus.org/ AboutUs] udder [//kei.ki/ Keiki], kanns de hee op de {{SITENAME}} enlogge, indämm dat De de komplätte URL fun Dinge Metmaacher-Sigg op däm aandere Wiki hee bovve endrähß. Zem Beispöll esu jät wi: \'\'<nowiki>//kei.ki/en/User:Evan</nowiki>\'\'.
+; [//openid.yahoo.com/ Yahoo!] : Wann De bei <span lang="en">Yahoo!</span> aanjemelldt bes, kanns de hee {{GRAMMAR:em|{{SITENAME}}}} enlogge, indämm dat De de Ding <span lang="en">OpenID URL</span> bovve aanjiß, di De fun <span lang="en">Yahoo!</span> bekumme häß. Di <span lang="en">OpenID URLs</span> sinn uß wi zem Beispöll: \'\'<nowiki>https://me.yahoo.com/DingeMetmaacherName</nowiki>\'\'.
+; [//dev.aol.com/aol-and-63-million-openids AOL] : Wann de ene zohjang op [//www.aol.com/ AOL] häß, esu jet wie ennen Zojang zom [//www.aim.com/ AIM], do kanns de Desch hee {{GRAMMAR:em|{{SITENAME}}}} enlogge, indämm dat De de Ding <span lang="en">OpenID</span> bovve enjiß. De <span lang="en">OpenID URLs</span> fun AOL sen opjebout wi \'\'<nowiki>//openid.aol.com/dingemetmaachername</nowiki>\'\'. Dinge Metmaacher-Name sullt uß luuter Kleinbochstave bestonn, kein Zwescheräum.
+; [//bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [//faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [//www.livejournal.com/openid/about.bml LiveJournal], [//bradfitz.vox.com/library/post/openid-for-vox.html Vox] : Wann de e <span lang="en">Blog</span> op einem fun dä Söövere häß, dann draach der Url fu Dingem <span lang="en">Blog</span> bovve en. Zem Beispöll: \'\'<nowiki>//dingeblogname.blogspot.com/</nowiki>\'\', \'\'<nowiki>//dingeblogname.wordpress.com/</nowiki>\'\', \'\'<nowiki>//dingeblogname.livejournal.com/</nowiki>\'\', udder \'\'<nowiki>//dingeblogname.vox.com/</nowiki>\'\'.
 <!-- -->',
-	'openidupdateuserinfo' => 'Donn ming päsöönlijje Enstellunge op der neuste Stand bränge',
-	'openid-prefstext' => '[http://openid.net/ OpenID] Enstellunge',
-	'openid-pref-hide' => 'Versteich Ding <a lang="en" href="http://openid.net/">OpenID</a> op Dinge Metmaacher-Sigg, wann de met <span lang="en">OpenID</span> enloggs.',
-	'openid-pref-update-userinfo-on-login' => 'Donn ming Enfomazjuhne vun OpenID jedesmol op der neuste Stand bränge, wann_esch hee enlogge donn',
+	'openidupdateuserinfo' => 'Donn ming päsöönlijje Enstellunge op der neuste Stand bränge:',
+	'openiddelete' => 'Donn de <i lang="en">OpenID</i> fott schmiiße',
+	'openiddelete-text' => 'Wann De op dä Knopp „{{int:openiddelete-button}}“ klecks, weed de <i lang="en">OpenID</i> „$1“ vun Dinge Aanmeldung heh fott jenumme.
+Dann kanns De met dä <i lang="en">OpenID</i> nit mieh heh enlogge.',
+	'openiddelete-button' => 'Lohß jonn!',
+	'openiddeleteerrornopassword' => 'Do kanns nit all Ding <i lang="en">OpenID</i>s fott schmieße, weil Dinge Zohjang kei Paßwoot hät.
+Ohne <i lang="en">OpenID</i> künnts De nit mieh enlogge.',
+	'openiddeleteerroropenidonly' => 'Do kanns nit all Ding <i lang="en">OpenID</i>s fott schmieße, weil De bloß met <i lang="en">OpenID</i>  enlogge darfß, un ohne <span i="en">OpenID</i> künnts De jaa nit mieh enlogge.',
+	'openiddelete-sucess' => 'Di <i lang="en">OpenID</i> es jäz nit mieh met Dinge Aanmeldung verbonge.',
+	'openiddelete-error' => 'Et es ene Fähler opjetrodde, wi mer di <i lang="en">OpenID</i> vun Dinge Aanmeldung fott nämme wullte.',
+	'openid-prefstext' => '[//openid.net/ OpenID] Enstellunge',
+	'openid-pref-hide' => 'Versteich Ding OpenID op Dinge Metmaacher-Sigg, wann de met <span lang="en">OpenID</span> enloggs.',
+	'openid-pref-update-userinfo-on-login' => 'Donn jedesmol wann_esch hee enloggen, di Enfomazjuhne övver mesch heh noh vun <i lang="en">OpenID</i> op der neuste Stand bränge:',
+	'openid-urls-desc' => 'De <i lang="en">OpenIDs</i>, di jez met Dinge Aanmeldung heh verbonge sin:',
+	'openid-urls-url' => 'de URL',
+	'openid-urls-action' => 'Akßuhn',
+	'openid-urls-delete' => 'Schmiiß fott',
+	'openid-add-url' => 'Donn en neu <i lang="en">OpenID</i> dobei',
+	'openid-login-or-create-account' => 'Donn enlogge udder Desh neu aanmellde',
+	'openid-provider-label-openid' => 'Donn Ding <i lang="en">OpenID</i> URL aanjevve',
+	'openid-provider-label-google' => 'Donn met Dingem <i lang="en">Google account</i> enlogge',
+	'openid-provider-label-yahoo' => 'Donn met Dinge <i lang="en">Yahoo</i> Kennung enlogge',
+	'openid-provider-label-aol' => 'Donn met Dingem <i lang="en">AOL</i>-Name enlogge',
+	'openid-provider-label-other-username' => 'Donn Dinge Metmaachername vun $1 aanjevve',
 );
 
+/** Kurdish (Latin script) (‪Kurdî (latînî)‬) */
+$messages['ku-latn'] = array(
+	'openidlanguage' => 'Ziman',
+	'openidtimezone' => 'Navçeya demê',
+);
+
 /** Luxembourgish (Lëtzebuergesch)
+ * @author Les Meloures
  * @author Robby
  */
 $messages['lb'] = array(
-	'openid-desc' => "Sech an d'Wiki matt enger [http://openid.net/ OpenID] aloggen, a sech op aneren Internetsiten, déi OpenID ënerstetzen, matt engem Wiki-Benotzerkont aloggen.",
-	'openidlogin' => 'Umellen mat OpenID',
-	'openidfinish' => "D'Aloggen mat OpenID ofschléissen",
+	'openid-desc' => "Sech an d'Wiki matt enger [//openid.net/ OpenID] aloggen, a sech op aneren Internetsiten, déi OpenID ënerstetzen, matt engem Wiki-Benotzerkont aloggen.",
+	'openidlogin' => 'Umellen /OpenID-Benotzerkont uleeën',
 	'openidserver' => 'OpenID-Server',
 	'openidxrds' => 'Yadis Fichier',
 	'openidconvert' => 'OpenID-Ëmwandler',
-	'openiderror' => 'Feeler bäi der Iwwerpréifung',
+	'openiderror' => 'Feeler bei der Iwwerpréifung',
 	'openiderrortext' => 'Beim Iwwerpréifen vun der OpenID URL ass e Feeler geschitt.',
 	'openidconfigerror' => 'OpenId-Konfiguratiounsfeeler',
 	'openidconfigerrortext' => "D'OpenID-Späicherastellung fir dës Wiki ass falsch.
@@ -2026,9 +3658,14 @@
 	'openidfailure' => 'Feeler bei der Iwwerpréifung',
 	'openidfailuretext' => 'D\'iwwerpréifung vun der OpeniD URL huet net fonctionnéiert. Feeler Message: "$1"',
 	'openidsuccess' => 'Iwwerpréifung huet geklappt',
-	'openidsuccesstext' => "D'Iwwerpréifung vun der OpenID-URL huet geklappt.",
+	'openidsuccesstext' => "'''D'Iwwerpréifung an d'Aloggen als Benotzer $1 huet geklappt'''.
+
+Är OpenID ass $2.
+
+Dës a weider OpenId'en, , kann am [[Special:Preferences#prefsection-openid|OpenID Tab]] vun Ären Astellungen geréiert ginn.<br />
+En optionaalt Passwuert fir de Benotzerkont kann an Ärem [[Special:Preferences#prefsection-personal|Benotzerprofil]] derbäigesat ginn.",
 	'openidusernameprefix' => 'OpenIDBenotzer',
-	'openidserverlogininstructions' => 'Gitt ärt Passwuert hei ënnendrënner an, fir iech als Benotzer $2 op $3 unzemellen (Benotzersäit $1).',
+	'openidserverlogininstructions' => '$3 freet datt Dir Äert Passwuert agitt fir Är $2-Benotzersäit $1 (dëst ass Är OpenID URL).',
 	'openidtrustinstructions' => 'Klickt un wann Dir Donnéeën mat $1 deele wellt.',
 	'openidallowtrust' => 'Erlaabt $1 fir dësem Benotzerkont ze vertrauen.',
 	'openidnopolicy' => 'De Site huet keng Richtlinne fir den Dateschutz uginn.',
@@ -2036,115 +3673,282 @@
 	'openidoptional' => 'Facultatif',
 	'openidrequired' => 'Obligatoresch',
 	'openidnickname' => 'Spëtznumm',
-	'openidfullname' => 'Ganze Numm',
+	'openidfullname' => 'Ganzen Numm',
 	'openidemail' => 'E-Mailadress',
 	'openidlanguage' => 'Sprooch',
-	'openidnotavailable' => 'De Spëtznumm deen Dir wollt hun ($1) gëtt scho vun engem anere Benotzer benotzt.',
-	'openidnotprovided' => 'Ären OpenID-Server huet kee Spëtznumm ginn (entweder well en dat net kann, oder well Dir him gesot huet dat ne t ze maachen).',
+	'openidtimezone' => 'Zäitzone',
+	'openidchooselegend' => 'Eraussiche vum Benotzernumm a vum Benotzerkont',
 	'openidchooseinstructions' => 'All Benotzer brauchen e Spëtznumm; Dir kënnt iech ee vun de Méiglechkeeten ënnendrënner auswielen.',
-	'openidchoosefull' => 'Äre ganze Numm ($1)',
+	'openidchoosenick' => 'Äre Spëtznumm ($1)',
+	'openidchoosefull' => 'Äre ganzen Numm ($1)',
 	'openidchooseurl' => 'En Numm gouf vun ärer OpenID ($1) geholl',
-	'openidchooseauto' => 'Een Numm deen automatesch generéiert gouf ($1)',
-	'openidchoosemanual' => 'E Numm vun ärer Wiel:',
-	'openidchooseexisting' => 'E Benotzerkont den et op dëser Wiki scho gëtt:',
+	'openidchooseauto' => 'En Numm deen automatesch generéiert gouf ($1)',
+	'openidchoosemanual' => 'En Numm vun Ärer Wiel:',
+	'openidchooseexisting' => 'E Benotzerkont deen et op dëser Wiki gëtt',
+	'openidchooseusername' => 'Benotzernumm:',
 	'openidchoosepassword' => 'Passwuert:',
-	'openidconvertinstructions' => 'Mat dësem Formaulaire kënnt dir Äre Benotzerkont ännere fir eng OpenID URL ze benotzen.',
+	'openidconvertinstructions' => "Mat dësem Formulaire kënnt dir Äre Benotzerkont ännere fir eng OpenID URL ze benotzen oder méi OpenID URL'en derbäizesetzen.",
+	'openidconvertoraddmoreids' => 'An en OpenID ëmwandelen oder eng aner OpenID URL derbäisetzen',
 	'openidconvertsuccess' => 'An en OpenID-Benotzerkont ëmgewandelt',
 	'openidconvertsuccesstext' => 'Dir hutt Är OpenID op $1 ëmgewandelt.',
 	'openidconvertyourstext' => 'Dat ass schon är OpenID.',
 	'openidconvertothertext' => 'Dëst ass engem anere seng OpenID.',
-	'openidalreadyloggedin' => "'''Dir sidd schonn ageloggt, $1!'''
-
-Wann Dir OpenID benotze wëllt fir Iech an Zukunft anzeloggen, da kënnt Dir [[Special:OpenIDConvert|Äre Benotzerkont an en OpenID-Benotzerkont ëmwandelen]].",
+	'openidalreadyloggedin' => 'Dir sidd schonn ageloggt.',
 	'openidnousername' => 'Kee Benotzernumm uginn.',
 	'openidbadusername' => 'Falsche Benotzernumm uginn.',
 	'openidautosubmit' => 'Op dëser Säit gëtt et e Formulaire deen automatesch soll verschéckt ginn wann Dir JavaScript ageschalt hutt.
-Wann net, da verich et mam Knäppche "Weider"',
+Wann net, da verich et mam Knäppche "Continue" (Weider).',
 	'openidclientonlytext' => 'Dir kënnt keng Benotzerkonten aus dëser Wiki als OpendIDen op anere Site benotzen.',
 	'openidloginlabel' => 'URL vun der OpenID',
-	'openidlogininstructions' => '{{SITENAME}} ënnerstetzt den [http://openid.net/ OpenID]-Standard fir eng eenheetlech Umeldung fir méi Websiten.
-OpenID mellt Iech bäi ville verschiddene Websäiten un, ouni datt Dir fir jidfer Siten een anert Passwuert gebrauche musst.
-(Méi Informatiounen fannt Dir am [http://de.wikipedia.org/wiki/OpenID Wikipedia-Artikel iwwer OpenID].)
+	'openidlogininstructions' => '{{SITENAME}} ënnerstëtzt den [//openid.net/ OpenID]-Standard fir eng eenheetlech Umeldung fir méi Websäiten.
+OpenID mellt Iech bäi ville verschiddene Websäiten un, ouni datt Dir fir jiddwer Säiten een anert Passwuert gebrauche musst.
+(Méi Informatiounen fannt Dir am [//de.wikipedia.org/wiki/OpenID Wikipedia-Artikel iwwer OpenID].)
 
-Wann Dir schonn e Benotzerkont op {{SITENAME}} hutt, kënnt Dir Iech ganz normal mat ärem Benotzernumm a Passwuert [[Special:UserLogin|aloggen]].
-Fir an Zukunft OpenID ze benotzen, kënnt Dir [[Special:OpenIDConvert|äre Benotzerkont op OpenID ëmwandelen]], nodeem Dir Iech normal ageloggt huet.
 
-Et gëtt vill [http://openid.net/get/ OpenID-Provider] a méiglecherweis hutt Dir schonn e Benotzerkont mat aktivéierter OpenID bäi engem aneren Ubidder.',
-	'openidupdateuserinfo' => 'Meng perséinlech Informatiounen aktualiséieren',
-	'openid-prefstext' => '[http://openid.net/ OpenID]-Astellungen',
-	'openid-pref-hide' => 'Verstoppt Är <a href="http://openid.net/">OpenID</a> op ärer Benotzersäit, wann dir Iech mat OpenID aloggt.',
-	'openid-pref-update-userinfo-on-login' => 'Meng Informatiounen vu mengem OpenID-Kont all Kéier aktualiséiere wann ech mech aloggen',
+Et gëtt vill [//openid.net/get/ OpenID-Provider] a méiglecherweis hutt Dir schonn e Benotzerkont mat aktivéierter OpenID bäi engem aneren Ubidder.',
+	'openidupdateuserinfo' => 'Meng perséinlech Informatiounen aktualiséieren:',
+	'openiddelete' => 'OpenID läschen',
+	'openiddelete-text' => 'Wann dir op de Knäppchen "{{int:openiddelete-button}}" klickt, dann huelt Dir d\'OpenID $1 vun Ärem Benotzerkont ewech.
+Da kënnt Dir Iech net méi mat dëser OpenID aloggen.',
+	'openiddelete-button' => 'Confirméieren',
+	'openiddeleteerrornopassword' => 'Dir kënnt net all Är OpenIDe läschen well Äre Benotzerkont kee Paswuert huet.
+Dir kéint Iech net ouni eng OpenID aloggen.',
+	'openiddeleteerroropenidonly' => 'Dir kënnt net all Är OpenIDe läsche well Dir Iech nëmme mat OpenID aloggen däerft.
+Dir kéint Iech ouni OpenID net aloggen.',
+	'openiddelete-sucess' => "D'OpenID gouf vun Ärem Benotzerkont ewechgeholl",
+	'openiddelete-error' => 'Beim Ewehhuele vun der OpenID vun Ärem Benotzerkont ass e Feeler geschitt.',
+	'openid-prefstext' => '[//openid.net/ OpenID]-Astellungen',
+	'openid-pref-hide' => 'Verstoppt Är OpenID op ärer Benotzersäit, wann dir Iech mat OpenID aloggt.',
+	'openid-pref-update-userinfo-on-login' => "D'Informatioune vu dësem OpenID-Kont all Kéier aktualiséiere wann ech mech aloggen",
+	'openid-urls-desc' => 'OpendIden déi mat Ärem Benotzerkont asoziéiert sinn',
+	'openid-urls-action' => 'Aktioun',
+	'openid-urls-delete' => 'Läschen',
+	'openid-add-url' => 'Eng nei OpenID derbäisetzen',
+	'openid-login-or-create-account' => 'Loggt Iech an oder maacht en neie Benotzerkont op',
+	'openid-provider-label-openid' => 'Gitt Är OpenID URL un',
+	'openid-provider-label-google' => 'Loggt Iech mat Ärem Goggle-Benotzerkont an',
+	'openid-provider-label-yahoo' => 'Loggt Iech mat Ärem Yahoo-Benotzerkont an',
+	'openid-provider-label-aol' => 'Gitt Ären AOL Numm un',
+	'openid-provider-label-other-username' => 'Gitt Äre(n) $1 Benotzernumm un',
 );
 
 /** Limburgish (Limburgs)
  * @author Ooswesthoesbes
  */
 $messages['li'] = array(
-	'openidchoosepassword' => 'wachwaord:',
+	'openidchoosepassword' => 'Wachwaord:',
 );
 
+/** Lingala (Lingála)
+ * @author Eruedin
+ */
+$messages['ln'] = array(
+	'openidemail' => 'Adɛlɛ́sɛ-ímɛ́lɛ:',
+	'openidlanguage' => 'Lokótá',
+	'openidchooseusername' => 'Nkómbó ya mosáleli:',
+	'openidchoosepassword' => 'Banda nayó:',
+	'openiddelete-button' => 'Kondima',
+	'openid-urls-delete' => 'Kolímwisa',
+);
+
 /** Lithuanian (Lietuvių)
+ * @author Garas
  * @author Hugo.arg
  */
 $messages['lt'] = array(
 	'openiderror' => 'Tikrinimo klaida',
 	'openidnickname' => 'Slapyvardis',
-	'openidfullname' => 'Pilnas vardas',
+	'openidfullname' => 'Visas vardas',
 	'openidemail' => 'El. pašto adresas',
 	'openidlanguage' => 'Kalba',
-	'openidchoosepassword' => 'slaptažodis:',
+	'openidchoosepassword' => 'Slaptažodis:',
 );
 
+/** Latvian (Latviešu)
+ * @author GreenZeb
+ */
+$messages['lv'] = array(
+	'openidchooseusername' => 'Lietotājvārds:',
+	'openidchoosepassword' => 'Parole:',
+);
+
 /** Eastern Mari (Олык Марий)
  * @author Сай
  */
 $messages['mhr'] = array(
-	'openidchoosepassword' => 'шолыпмут:',
+	'openidchoosepassword' => 'Шолыпмут:',
 );
 
+/** Macedonian (Македонски)
+ * @author Bjankuloski06
+ */
+$messages['mk'] = array(
+	'openid-desc' => 'Најавувајте се на викито со [//openid.net/ OpenID], и најавувајте се со други OpenID-поддржни страници со вики-корисничка сметка',
+	'openidlogin' => 'Најава / создај сметка со OpenID',
+	'openidserver' => 'OpenID опслужувач',
+	'openidxrds' => 'Yadis податотека',
+	'openidconvert' => 'OpenID претворач',
+	'openiderror' => 'Грешка при потврдувањето',
+	'openiderrortext' => 'Настана грешка при потврдувањето на URL адресата на OpenID.',
+	'openidconfigerror' => 'Грешка со конфигурацијата на OpenID',
+	'openidconfigerrortext' => 'Складишните посатвки на OpenID за ова вики се погрешни.
+Консултирајте [[Special:ListUsers/sysop|администратор]].',
+	'openidpermission' => 'Грешка при дозволување на OpenID',
+	'openidpermissiontext' => 'На внесениот OpenID не му е дозволено најавување на овој опслужувач.',
+	'openidcancel' => 'Потврдувањето е откажано',
+	'openidcanceltext' => 'Потврдувањето на URL адресата на OpenID беше откажана.',
+	'openidfailure' => ' Потврдувањето не успеа',
+	'openidfailuretext' => 'Потврдувањето на URL адресата на OpenID не успеа. Извештај за грешката: „$1“',
+	'openidsuccess' => 'Потврдувањето успеа',
+	'openidsuccesstext' => "'''Проверката е успешна. Најавени сте како корисник $1'''.
+
+Вашиот OpenID гласи $2 .
+
+Можете да раководите со ова и други незадолжителни OpenID-ја во [[Special:Preferences#prefsection-openid|јазичето за OpenID]] во вашите нагодувања.<br />
+По желба можете да додадете и лозинка на сметката во вашиот [[Special:Preferences#prefsection-personal|корисничкиот профил]].",
+	'openidusernameprefix' => 'OpenIDКорисник',
+	'openidserverlogininstructions' => '$3 бара да ја внесете лозинката за вашиот корисник $2 страница $1 (OpenID URL)',
+	'openidtrustinstructions' => 'Штиклирајте ако сакате да споделувате податоци со $1.',
+	'openidallowtrust' => 'Дозволи му на $1 да ѝ верува на оваа корисничка сметка.',
+	'openidnopolicy' => 'Страницата нема назначено заштита на личните податоци.',
+	'openidpolicy' => 'Погледајте го <a target="_new" href="$1">правилникот за приватност</a> за повеќе информации.',
+	'openidoptional' => 'Незадолжително',
+	'openidrequired' => 'Задолжително',
+	'openidnickname' => 'Прекар',
+	'openidfullname' => 'Полно име',
+	'openidemail' => 'Е-пошта',
+	'openidlanguage' => 'Јазик',
+	'openidtimezone' => 'Часовна зона',
+	'openidchooselegend' => 'Избор на корисничко име и сметка',
+	'openidchooseinstructions' => 'Сите корисници треба да имаат прекар;
+можете да изберете едно од долунаведените предлози:',
+	'openidchoosenick' => 'Вашиот прекар ($1)',
+	'openidchoosefull' => 'Вашето полно име ($1)',
+	'openidchooseurl' => 'Име преземено од вашиот OpenID ($1)',
+	'openidchooseauto' => 'Автоматски создадено име ($1)',
+	'openidchoosemanual' => 'Име по избор:',
+	'openidchooseexisting' => 'Постоечка сметка на ова вики',
+	'openidchooseusername' => 'корисничко име:',
+	'openidchoosepassword' => 'Лозинка:',
+	'openidconvertinstructions' => 'Овој образец ви овозможува да ја промените вашата корисничка сметка за да користи OpenID URL адреса или да додавате уште OpenID URL адреси',
+	'openidconvertoraddmoreids' => 'Претворете во OpenID или додајте друга OpenID URL адреса',
+	'openidconvertsuccess' => 'Претворањето во OpenID е успешно',
+	'openidconvertsuccesstext' => 'Успешно го претворивте вашиот OpenID во $1.',
+	'openidconvertyourstext' => 'Ова веќе е  вашиот OpenID.',
+	'openidconvertothertext' => 'Тоа е туѓ OpenID.',
+	'openidalreadyloggedin' => 'Веќе сте најавени.',
+	'openidalreadyloggedintext' => "'''Веќе сте најавени, $1!'''
+
+Можете да раководите со (погледате, избришете, додавате повеќе) OpenID-ја во [[Special:Preferences#prefsection-openid|јазичето за OpenID]] во вашите нагодувања",
+	'openidnousername' => 'Немате наведено корисничко име.',
+	'openidbadusername' => 'Беше назначено грешно име.',
+	'openidautosubmit' => 'На оваа страница стои образец кој треба да се поднесе автоматски ако имате овозможено JavaScript.
+Ако ова не се случи, притиснете на копчето "Continue" (Продолжи).',
+	'openidclientonlytext' => 'Не можете да користите сметки од ова вики како OpenID за друго мрежно место.',
+	'openidloginlabel' => 'OpenID URL адреса',
+	'openidlogininstructions' => '{{SITENAME}} го поддржува [//openid.net/ OpenID] - стандард за една сметка за најава на разни мрежни места.
+OpenID ви овозможува да се најавувате на многу различни мрежни места без да ви треба различна лозинка за секое поединечно.
+(Повеќе информации на [//mk.wikipedia.org/wiki/OpenID статијата за OpenID на Википедија].)
+Постојат многу [//openid.net/get/ услужници за OpenID]. Можеби веќе имате сметка со овозможено OpenID на друга служба.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''само'' ви овозможува да се најавувате со OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Ако веќе имате сметка на {{SITENAME}}, можете да се [[Special:UserLogin|најавите]] со корисничкото име и лозинката по редовен пат.
+За да користите OpenID во иднина, [[Special:OpenIDConvert|претворете ја вашата сметка во OpenID]] откако ќе се најавите нормално.',
+	'openidupdateuserinfo' => 'Поднови ги моите лични информации:',
+	'openiddelete' => 'Избриши го овој OpenID',
+	'openiddelete-text' => 'Со кликнување на копчето „{{int:openiddelete-button}}“ ќе го отстраните OpenID $1 од вашата сметка.
+Повеќе нема да можете да се најавувате со овој OpenID.',
+	'openiddelete-button' => 'Потврди',
+	'openiddeleteerrornopassword' => 'Не можете да ги избришете сите ваши OpenID-ја бидејќи вашата сметка нема лозинка.
+Ако немате OpenID нема да можете да се најавите.',
+	'openiddeleteerroropenidonly' => 'Не можете да ги избришете сите ваши OpenID-ја бидејќи дозволено ви е да се најавувате само со OpenID.
+Ако немате OpenID нема да можете да се најавите.',
+	'openiddelete-sucess' => 'Овој OpenID е успешно отстранет од вашата сметка.',
+	'openiddelete-error' => 'Настана грешка при отстранувањето на OpenID од вашата сметка.',
+	'openid-openids-were-not-merged' => 'OpenID-јата не се споија при спојувањето на корисничките сметки.',
+	'openid-prefstext' => '[//openid.net/ OpenID] нагодувања',
+	'openid-pref-hide' => 'Скријте ја вашата OpenID URL адреса на вашата корисничката страница, ако се најавувате со OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Ажурирајте ги следниве информации од OpenID секојпат кога ќе се најавам:',
+	'openid-urls-desc' => 'OpenID поврзани со вашата сметка:',
+	'openid-urls-url' => 'URL',
+	'openid-urls-action' => 'Дејство',
+	'openid-urls-registration' => 'Време на регистрација',
+	'openid-urls-delete' => 'Избриши',
+	'openid-add-url' => 'Додај нов OpenID',
+	'openid-login-or-create-account' => 'Најавете се или создајте нова сметка',
+	'openid-provider-label-openid' => 'Внесете ја вашата OpenID URL адреса',
+	'openid-provider-label-google' => 'Најавете се со вашата Google сметка',
+	'openid-provider-label-yahoo' => 'Најавете се со вашата Yahoo сметка',
+	'openid-provider-label-aol' => 'Внесете го вашето име на AOL',
+	'openid-provider-label-other-username' => 'Внесете го вашето $1 корисничко име',
+	'specialpages-group-openid' => 'Службени страници и статусни информации на OpenID',
+	'right-openid-dashboard-access' => 'Стандарден пристап до таблата на OpenID',
+	'right-openid-dashboard-admin' => 'Администраторски пристап до таблата на OpenID',
+	'openid-dashboard-title' => 'Табла на OpenID',
+	'openid-dashboard-title-admin' => 'Табла на OpenID (администратор)',
+	'openid-dashboard-introduction' => 'Тековни нагодувања на додатокот за OpenID ([$1 помош])',
+	'openid-dashboard-number-openid-users' => 'Број на корисници со OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Број на OpenID-ја (вкупно)',
+	'openid-dashboard-number-users-without-openid' => 'Број на корисници без OpenID',
+);
+
 /** Malayalam (മലയാളം)
+ * @author Praveenp
  * @author Shijualex
  */
 $messages['ml'] = array(
-	'openidlogin' => 'ഓപ്പണ്‍ ഐഡി ഉപയോഗിച്ച് ലോഗിന്‍ ചെയ്യുക',
-	'openidserver' => 'OpenID സെര്‍‌വര്‍',
+	'openidlogin' => 'ഓപ്പൺ ഐ.ഡി. ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുക',
+	'openidserver' => 'OpenID സെർ‌വർ',
 	'openidcancel' => 'സ്ഥിരീകരണം റദ്ദാക്കിയിരിക്കുന്നു',
 	'openidfailure' => 'സ്ഥിരീകരണം പരാജയപ്പെട്ടു',
 	'openidsuccess' => 'സ്ഥിരീകരണം വിജയിച്ചു',
-	'openidusernameprefix' => 'ഓപ്പണ്‍ ഐഡി ഉപയോക്താവ്',
-	'openidserverlogininstructions' => '$3യിലേക്ക് $2 എന്ന ഉപയോക്താവായി (ഉപയോക്തൃതാള്‍ $1) ലോഗിന്‍ ചെയ്യുവാന്‍ താങ്കളുടെ രഹസ്യവാക്ക് താഴെ രേഖപ്പെടുത്തുക.',
+	'openidusernameprefix' => 'ഓപ്പൺ ഐ.ഡി. ഉപയോക്താവ്',
+	'openidserverlogininstructions' => '$3യിലേക്ക് $2 എന്ന ഉപയോക്താവായി (ഉപയോക്തൃതാൾ $1) ലോഗിൻ ചെയ്യുവാൻ താങ്കളുടെ രഹസ്യവാക്ക് താഴെ രേഖപ്പെടുത്തുക.',
 	'openidtrustinstructions' => '$1 താങ്കളുടെ ഡാറ്റ പങ്കുവെക്കണമോ എന്ന കാര്യം പരിശോധിക്കുക.',
 	'openidnopolicy' => 'സൈറ്റ് സ്വകാര്യതാ നയം കൊടുത്തിട്ടില്ല.',
-	'openidoptional' => 'നിര്‍ബന്ധമില്ല',
+	'openidoptional' => 'നിർബന്ധമില്ല',
 	'openidrequired' => 'അത്യാവശ്യമാണ്‌',
 	'openidnickname' => 'ചെല്ലപ്പേര്',
-	'openidfullname' => 'പൂര്‍ണ്ണനാമം',
-	'openidemail' => 'ഇമെയില്‍ വിലാസം',
+	'openidfullname' => 'പൂർണ്ണനാമം',
+	'openidemail' => 'ഇമെയിൽ വിലാസം',
 	'openidlanguage' => 'ഭാഷ',
-	'openidnotavailable' => 'താങ്കള്‍ തിരഞ്ഞെടുത്ത വിളിപ്പേര്‌ ($1) മറ്റൊരാള്‍ ഉപയോഗിക്കുന്നതാണ്‌.',
-	'openidchooseinstructions' => 'എല്ലാ ഉപയോക്താക്കള്‍ക്കും ഒരു വിളിപ്പേരു ആവശ്യമാണ്‌. താഴെ കൊടുത്തിരിക്കുന്നവയില്‍ നിന്നു ഒരെണ്ണം നിങ്ങള്‍ക്ക് തിരഞ്ഞെടുക്കാവുന്നതാണ്‌.',
-	'openidchoosefull' => 'താങ്കളുടെ പൂര്‍ണ്ണനാമം ($1)',
-	'openidchooseurl' => 'താങ്കളുടെ ഓപ്പണ്‍‌ഐഡിയില്‍ നിന്നു തിരഞ്ഞെടുത്ത ഒരു പേര്‌ ($1)',
+	'openidtimezone' => 'സമയ മേഖല',
+	'openidchooselegend' => 'ഐച്ഛിക ഉപയോക്തൃനാമം',
+	'openidchooseinstructions' => 'എല്ലാ ഉപയോക്താക്കൾക്കും ഒരു വിളിപ്പേരു ആവശ്യമാണ്‌. താഴെ കൊടുത്തിരിക്കുന്നവയിൽ നിന്നു ഒരെണ്ണം താങ്കൾക്ക് തിരഞ്ഞെടുക്കാവുന്നതാണ്‌.',
+	'openidchoosenick' => 'താങ്കളുടെ വിളിപ്പേര് ($1)',
+	'openidchoosefull' => 'താങ്കളുടെ പൂർണ്ണനാമം ($1)',
+	'openidchooseurl' => 'താങ്കളുടെ ഓപ്പൺ‌ഐ.ഡി.യിൽ നിന്നു തിരഞ്ഞെടുത്ത ഒരു പേര്‌ ($1)',
 	'openidchooseauto' => 'യാന്ത്രികമായി ഉണ്ടാക്കിയ പേര്‌ ($1)',
-	'openidchoosemanual' => 'താങ്കള്‍ക്ക് ഇഷ്ടമുള്ള ഒരു പേര്‌:',
-	'openidchooseexisting' => 'ഈ വിക്കിയില്‍ നിലവിലുള്ള അക്കൗണ്ട്:',
+	'openidchoosemanual' => 'താങ്കൾക്ക് ഇഷ്ടമുള്ള ഒരു പേര്‌:',
+	'openidchooseexisting' => 'ഈ വിക്കിയിലെ നിലവിലുള്ള അംഗത്വം',
+	'openidchooseusername' => 'ഉപയോക്തൃനാമം:',
 	'openidchoosepassword' => 'രഹസ്യവാക്ക്:',
-	'openidconvertsuccess' => 'ഓപ്പണ്‍ ഐഡിയിലേക്ക് വിജയകരമായി പരിവര്‍ത്തനം ചെയ്തിരിക്കുന്നു',
-	'openidconvertsuccesstext' => 'താങ്കളുടെ ഓപ്പണ്‍‌ഐഡി $1ലേക്കു വിജയകരമായി പരിവര്‍ത്തനം ചെയ്തിരിക്കുന്നു.',
-	'openidconvertyourstext' => 'ഇതു ഇപ്പോള്‍ തന്നെ നിങ്ങളുടെ ഓപ്പണ്‍‌ഐഡിയാണ്‌.',
-	'openidconvertothertext' => 'ഇതു മറ്റാരുടേയോ ഓപ്പണ്‍‌ഐഡിയാണ്‌.',
+	'openidconvertsuccess' => 'ഓപ്പൺ ഐ.ഡി.യിലേക്ക് വിജയകരമായി പരിവർത്തനം ചെയ്തിരിക്കുന്നു',
+	'openidconvertsuccesstext' => 'താങ്കളുടെ ഓപ്പൺ‌ഐ.ഡി. $1ലേക്കു വിജയകരമായി പരിവർത്തനം ചെയ്തിരിക്കുന്നു.',
+	'openidconvertyourstext' => 'ഇതു ഇപ്പോൾ തന്നെ താങ്കളുടെ ഓപ്പൺ‌ഐ.ഡി.യാണ്‌.',
+	'openidconvertothertext' => 'ഇതു മറ്റാരുടേയോ ഓപ്പൺ‌ഐ.ഡി.യാണ്‌.',
 	'openidnousername' => 'ഉപയോക്തൃനാമം തിരഞ്ഞെടുത്തിട്ടില്ല.',
 	'openidbadusername' => 'അസാധുവായ ഉപയോക്തൃനാമമാണു തിരഞ്ഞെടുത്തിരിക്കുന്നത.',
-	'openidloginlabel' => 'ഓപ്പണ്‍‌ഐഡി വിലാസം',
+	'openidloginlabel' => 'ഓപ്പൺ‌ഐ.ഡി. വിലാസം',
+	'openid-urls-action' => 'നടപടി',
+	'openid-urls-delete' => 'മായ്ക്കുക',
 );
 
+/** Mongolian (Монгол)
+ * @author Chinneeb
+ */
+$messages['mn'] = array(
+	'openidlanguage' => 'Хэл',
+	'openidtimezone' => 'Цагийн бүс',
+	'openidchooseusername' => 'Хэрэглэгчийн нэр:',
+);
+
 /** Marathi (मराठी)
+ * @author Htt
  * @author Kaustubh
  */
 $messages['mr'] = array(
-	'openid-desc' => 'विकिवर [http://openid.net/ ओपनID] वापरून प्रवेश करा, तसेच कुठल्याही इतर ओपनID संकेतस्थळावर विकि सदस्य नाम वापरून प्रवेश करा',
+	'openid-desc' => 'विकिवर [//openid.net/ ओपनID] वापरून प्रवेश करा, तसेच कुठल्याही इतर ओपनID संकेतस्थळावर विकि सदस्य नाम वापरून प्रवेश करा',
 	'openidlogin' => 'ओपनID वापरून प्रवेश करा',
-	'openidfinish' => 'ओपनID प्रवेश प्रक्रिया पूर्ण करा',
 	'openidserver' => 'ओपनID सर्व्हर',
 	'openidxrds' => 'Yadis संचिका',
 	'openidconvert' => 'ओपनID कन्व्हर्टर',
@@ -2173,8 +3977,7 @@
 	'openidfullname' => 'पूर्णनाव',
 	'openidemail' => 'इमेल पत्ता',
 	'openidlanguage' => 'भाषा',
-	'openidnotavailable' => 'तुम्ही दिलेले टोपणनाव ($1) अगोदरच दुसर्‍या सदस्याने वापरलेले आहे.',
-	'openidnotprovided' => 'तुमच्या ओपनID सर्व्हरने टोपणनाव दिले नाही (कदाचित तो देऊ शकत नसेल किंवा तुम्ही देण्यास मनाई केली असेल).',
+	'openidtimezone' => 'वेळक्षेत्र',
 	'openidchooseinstructions' => 'सर्व सदस्यांना टोपणनाव असणे आवश्यक आहे;
 तुम्ही खाली दिलेल्या नावांमधून एक निवडू शकता.',
 	'openidchoosefull' => 'तुमचे पूर्ण नाव ($1)',
@@ -2182,6 +3985,7 @@
 	'openidchooseauto' => 'एक आपोआप तयार झालेले नाव ($1)',
 	'openidchoosemanual' => 'तुमच्या आवडीचे नाव:',
 	'openidchooseexisting' => 'या विकिवरील अस्तित्वात असलेले सदस्य खाते:',
+	'openidchooseusername' => 'सदस्यनाम:',
 	'openidchoosepassword' => 'परवलीचा शब्द:',
 	'openidconvertinstructions' => 'हा अर्ज तुम्हाला ओपनID URL वापरण्यासाठी तुमचे सदस्यनाव बदलण्याची परवानगी देतो.',
 	'openidconvertsuccess' => 'ओपनID मध्ये बदल पूर्ण झालेले आहेत',
@@ -2193,31 +3997,36 @@
 जर तुम्ही भविष्यात ओपनID वापरून प्रवेश करू इच्छित असाल, तर तुम्ही [[Special:OpenIDConvert|तुमचे खाते ओपनID साठी बदलू शकता]].",
 	'openidnousername' => 'सदस्यनाव दिले नाही.',
 	'openidbadusername' => 'चुकीचे सदस्यनाव दिले आहे.',
-	'openidautosubmit' => 'या पानावरील अर्ज जर तुम्ही जावास्क्रीप्ट वापरत असाल तर आपोआप पाठविला जाईल. जर तसे झाले नाही, तर \\"पुढे\\" कळीवर टिचकी मारा.',
+	'openidautosubmit' => 'या पानावरील अर्ज जर तुम्ही जावास्क्रीप्ट वापरत असाल तर आपोआप पाठविला जाईल. जर तसे झाले नाही, तर "Continue" (पुढे) कळीवर टिचकी मारा.',
 	'openidclientonlytext' => 'या विकिवरील खाती तुम्ही इतर संकेतस्थळांवर ओपनID म्हणून वापरू शकत नाही.',
 	'openidloginlabel' => 'ओपनID URL',
-	'openidlogininstructions' => "{{SITENAME}} [http://openid.net/ ओपनID] वापरून विविध संकेतस्थळांवर प्रवेश करण्याची अनुमती देते.
-ओपनID वापरुन तुम्ही एकाच परवलीच्या शब्दाने विविध संकेतस्थळांवर प्रवेश करू शकता.
-(अधिक माहिती साठी [http://en.wikipedia.org/wiki/OpenID विकिपीडिया वरील ओपनID लेख] पहा.)
+	'openidlogininstructions' => "{{SITENAME}} [//openid.net/ ओपनआयडी] वापरून विविध संकेतस्थळांवर प्रवेश करण्याची अनुमती देते.
+ओपनआयडी वापरुन तुम्ही एकाच परवलीच्या शब्दाने विविध संकेतस्थळांवर प्रवेश करू शकता.
+(अधिक माहिती साठी [//en.wikipedia.org/wiki/OpenID विकिपीडिया वरील ओपनआयडीवरील लेख] पहा.)
 
 जर {{SITENAME}} वर अगोदरच तुमचे खाते असेल, तुम्ही नेहमीप्रमाणे तुमचे सदस्यनाव व परवलीचा शब्द वापरून [[Special:UserLogin|प्रवेश करा]].
-भविष्यात ओपनID वापरण्यासाठी, तुम्ही प्रवेश केल्यानंतर [[Special:OpenIDConvert|तुमचे खाते ओपनID मध्ये बदला]].
+भविष्यात ओपनआयडी वापरण्यासाठी, तुम्ही प्रवेश केल्यानंतर [[Special:OpenIDConvert|तुमचे खाते ओपनआयडी मध्ये बदला]].
 
-अनेक [http://wiki.openid.net/Public_OpenID_providers Public ओपनID वितरक] आहेत, व तुम्ही अगोदरच ओपनID चे खाते उघडले असण्याची शक्यता आहे.
+अनेक [http://wiki.openid.net/Public_OpenID_providers Public ओपनआयडी वितरक] आहेत, व तुम्ही अगोदरच ओपनआयडी चे खाते उघडले असण्याची शक्यता आहे.
 
-; इतर विकि : जर तुमच्याकडे ओपनID वापरणार्‍या विकिवर खाते असेल, जसे की [http://wikitravel.org/ विकिट्रॅव्हल], [http://www.wikihow.com/ विकिहाऊ], [http://vinismo.com/ विनिस्मो], [http://aboutus.org/ अबाउट‍अस] किंवा [http://kei.ki/ कैकी], तुम्ही {{SITENAME}} वर तुमच्या त्या विकिवरील सदस्य पानाची '''पूर्ण URL''' वरील पृष्ठपेटीमध्ये देऊन प्रवेश करू शकता. उदाहरणार्थ, ''<nowiki>http://kei.ki/en/User:Evan</nowiki>''.
-; [http://openid.yahoo.com/ याहू!] : जर तुमच्याकडे याहू! चे खाते असेल, तर तुम्ही वरील पृष्ठपेटीमध्ये याहू! ने दिलेल्या ओपनID चा वापर करून प्रवेश करू शकता. याहू! ओपनID URL ची रुपरेषा ''<nowiki>https://me.yahoo.com/तुमचेसदस्यनाव</nowiki>'' अशी आहे.
-; [http://dev.aol.com/aol-and-63-million-openids एओएल] : जर तुमच्याकडे [http://www.aol.com/ एओएल]चे खाते असेल, जसे की [http://www.aim.com/ एम] खाते, तुम्ही {{SITENAME}} वर वरील पृष्ठपेटीमध्ये एओएल ने दिलेल्या ओपनID चा वापर करून प्रवेश करू शकता. एओएल ओपनID URL ची रुपरेषा ''<nowiki>http://openid.aol.com/तुमचेसदस्यनाव</nowiki>'' अशी आहे. तुमच्या सदस्यनावात अंतर (space) चालणार नाही.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html ब्लॉगर], [http://faq.wordpress.com/2007/03/06/what-is-openid/ वर्डप्रेस.कॉम], [http://www.livejournal.com/openid/about.bml लाईव्ह जर्नल], [http://bradfitz.vox.com/library/post/openid-for-vox.html वॉक्स] : जर यापैकी कुठेही तुमचा ब्लॉग असेल, तर वरील पृष्ठपेटीमध्ये तुमच्या ब्लॉगची URL भरा. उदाहरणार्थ, ''<nowiki>http://yourusername.blogspot.com/</nowiki>'', ''<nowiki>http://yourusername.wordpress.com/</nowiki>'', ''<nowiki>http://yourusername.livejournal.com/</nowiki>'', किंवा ''<nowiki>http://yourusername.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'जर तुम्ही ओपनID वापरून प्रवेश केला, तर तुमच्या सदस्यपानावरील तुमचा <a href="http://openid.net/">ओपनID</a> लपवा.',
+; इतर विकि : जर तुमच्याकडे ओपनआयडी वापरणार्‍या विकिवर खाते असेल, जसे की [//wikitravel.org/ विकिट्रॅव्हल], [//www.wikihow.com/ विकिहाऊ], [//vinismo.com/ विनिस्मो], [//aboutus.org/ अबाउट‍अस] किंवा [//kei.ki/ कैकी], तुम्ही {{SITENAME}} वर तुमच्या त्या विकिवरील सदस्य पानाची '''पूर्ण URL''' वरील पृष्ठपेटीमध्ये देऊन प्रवेश करू शकता. उदाहरणार्थ, ''<nowiki>//kei.ki/en/User:Evan</nowiki>''.
+; [//openid.yahoo.com/ याहू!] : जर तुमच्याकडे याहू! चे खाते असेल, तर तुम्ही वरील पृष्ठपेटीमध्ये याहू! ने दिलेल्या ओपनआयडीचा वापर करून प्रवेश करू शकता. याहू! ओपनआयडी URL ची रुपरेषा ''<nowiki>https://me.yahoo.com/तुमचेसदस्यनाव</nowiki>'' अशी आहे.
+; [//dev.aol.com/aol-and-63-million-openids एओएल] : जर तुमच्याकडे [//www.aol.com/ एओएल]चे खाते असेल, जसे की [//www.aim.com/ एम] खाते, तुम्ही {{SITENAME}} वर वरील पृष्ठपेटीमध्ये एओएल ने दिलेल्या ओपनआयडीचा वापर करून प्रवेश करू शकता. एओएल ओपनआयडी URL ची रुपरेषा ''<nowiki>//openid.aol.com/तुमचेसदस्यनाव</nowiki>'' अशी आहे. तुमच्या सदस्यनावात अंतर (space) चालणार नाही.
+; [//bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html ब्लॉगर], [//faq.wordpress.com/2007/03/06/what-is-openid/ वर्डप्रेस.कॉम], [//www.livejournal.com/openid/about.bml लाईव्ह जर्नल], [//bradfitz.vox.com/library/post/openid-for-vox.html वॉक्स] : जर यापैकी कुठेही तुमचा ब्लॉग असेल, तर वरील पृष्ठपेटीमध्ये तुमच्या ब्लॉगची URL भरा. उदाहरणार्थ, ''<nowiki>//yourusername.blogspot.com/</nowiki>'', ''<nowiki>//yourusername.wordpress.com/</nowiki>'', ''<nowiki>//yourusername.livejournal.com/</nowiki>'', किंवा ''<nowiki>//yourusername.vox.com/</nowiki>''.",
+	'openiddelete-button' => 'खात्री करा',
+	'openid-pref-hide' => 'जर तुम्ही ओपनID वापरून प्रवेश केला, तर तुमच्या सदस्यपानावरील तुमचा ओपनID लपवा.',
+	'openid-urls-delete' => 'वगळा',
 );
 
 /** Malay (Bahasa Melayu)
+ * @author Anakmalaysia
+ * @author Aurora
  * @author Aviator
  * @author Diagramma Della Verita
  */
 $messages['ms'] = array(
-	'openidlogin' => 'Log masuk dengan OpenID',
+	'openid-desc' => 'Membolehkan pengguna untuk log masuk ke dalam wiki dengan [//openid.net/ OpenID]. Jika dihidupkan pada wiki, pengguna juga obleh menggunakan URL akaun penggunanya di wiki ini sebagai OpenID untuk log masuk ke dalam tapak web lain yang sedia OpenID',
+	'openidlogin' => 'Log masuk / buka akaun dengan OpenID',
 	'openidserver' => 'Pelayan OpenID',
 	'openidxrds' => 'Fail Yadis',
 	'openidconvert' => 'Penukar OpenID',
@@ -2227,30 +4036,100 @@
 	'openidconfigerrortext' => 'Konfigurasi storan OpenID bagi wiki ini tidak sah.
 Sila hubungi [[Special:ListUsers/sysop|pentadbir]].',
 	'openidpermission' => 'Ralat keizinan OpenID',
+	'openidpermissiontext' => 'OpenID yang anda berikan tidak dibenarkan untuk mengakses pelayan ini.',
 	'openidcancel' => 'Pengesahan telah dibatalkan',
 	'openidcanceltext' => 'Pengesahan URL OpenID telah dibatalkan.',
+	'openidfailure' => 'Pengesahan gagal',
+	'openidfailuretext' => 'Pengesahan URL OpenID gagal. Pesanan ralat: "$1"',
+	'openidsuccess' => 'Pengesahan berjaya',
+	'openidsuccesstext' => "'''Pengesahan berjaya dan log masuk sebagai pengguna $1'''.
+
+OpenID anda ialah $2 .
+
+Ini dan OpenID pilihan yang lain boleh diuruskan dalam [[Special:Preferences#prefsection-openid|tab OpenID]] keutamaan anda.<br />
+Kata laluan akaun pilihan boleh ditambahkan ke dalam [[Special:Preferences#prefsection-personal|Profil pengguna]] anda.",
+	'openidusernameprefix' => 'PenggunaOpenID',
+	'openidserverlogininstructions' => '$3 meminta supaya anda memasukkan kata laluan anda untuk laman $2 anda, $1 (iaitu URL OpenID anda)',
+	'openidtrustinstructions' => 'Raitkan jika anda ingin berkongsi data dengan $1.',
+	'openidallowtrust' => 'Benarkan $1 untuk mempercayai akaun pengguna ini.',
+	'openidnopolicy' => 'Tapak ini belum menetapkan dasar privasi.',
+	'openidpolicy' => 'Rujuk <a target="_new" href="$1">dasar privasi</a> untuk maklumat lanjut.',
 	'openidoptional' => 'Pilihan',
 	'openidrequired' => 'Wajib',
-	'openidnickname' => 'Nama ringkas',
+	'openidnickname' => 'Nama timangan',
 	'openidfullname' => 'Nama penuh',
 	'openidemail' => 'Alamat e-mel',
 	'openidlanguage' => 'Bahasa',
+	'openidtimezone' => 'Zon waktu',
+	'openidchooselegend' => 'Pilihan nama pengguna dan akaun',
+	'openidchooseinstructions' => 'Semua pengguna memerlukan nama timangan;
+anda boleh memilih satu daripada pilihan-pilihan berikut.',
+	'openidchoosenick' => 'Nama timangan anda ($1)',
 	'openidchoosefull' => 'Nama penuh anda ($1)',
 	'openidchooseurl' => 'Nama yang dipilih daripada OpenID anda ($1)',
 	'openidchooseauto' => 'Nama janaan automatik ($1)',
 	'openidchoosemanual' => 'Nama pilihan anda:',
-	'openidchoosepassword' => 'kata laluan:',
-	'openidconvertinstructions' => 'Gunakan borang ini untuk menukar akaun anda untuk menggunakan OpenID URL.',
+	'openidchooseexisting' => 'Akaun yang sedia ada di wiki ini',
+	'openidchooseusername' => 'Nama pengguna:',
+	'openidchoosepassword' => 'Kata laluan:',
+	'openidconvertinstructions' => 'Borang membolehkan anda untuk ini untuk menukar akaun anda untuk menggunakan OpenID URL. atau menambahkan lagi URL OpenID',
+	'openidconvertoraddmoreids' => 'Tukar ke OpenID atau tambahkan satu lagi URL OpenID',
 	'openidconvertsuccess' => 'Berjaya ditukar ke OpenID',
 	'openidconvertsuccesstext' => 'Anda telah berjaya menukar OpenID ke $1.',
 	'openidconvertyourstext' => 'OpenID anda seperti yang tertera.',
 	'openidconvertothertext' => 'OpenID tersebut merupakan milik orang lain.',
-	'openidalreadyloggedin' => "'''Anda telah log masuk, $1!'''
+	'openidalreadyloggedin' => 'Anda sudah log masuk.',
+	'openidalreadyloggedintext' => "'''Anda sudah log masuk, $1!'''
 
-Sekiranya anda inign menggunakan OpenID untuk log masuk pada masa hadapan, sila [[Special:OpenIDConvert|tukar akaun anda untuk menggunakan OpenID]].",
+Anda boleh menguruskan (lihat, hapuskan, tambahkan lagi) OpenID dalam [[Special:Preferences#prefsection-openid|tab OpenID]] dalam keutamaan anda.",
 	'openidnousername' => 'Nama pengguna tidak dinyatakan.',
 	'openidbadusername' => 'Nama pengguna yang dinyatakan tidak sah.',
+	'openidautosubmit' => 'Laman ini mempunyai borang yang sepatutnya diserahkan secara automatik jika JavaScript dihidupkan.
+Jika tidak, cuba butang "Continue" (sambung).',
+	'openidclientonlytext' => 'Anda tidak boleh menggunakan akaun-akaun dari wiki ini sebagai OpenID di laman lain.',
 	'openidloginlabel' => 'URL OpenID',
+	'openidlogininstructions' => '{{SITENAME}} menyokong piawaian [//openid.net/ OpenID] untuk daftar masuk sekali sesama tapak web.
+OpenID membolehkan anda untuk log masuk ke dalam pelbagai tapak web tanpa menggunakan kata laluan yang berbeza untuk setiap satu.
+(Lihat [//ms.wikipedia.org/wiki/OpenID rencana OpenID di Wikipedia] untuk maklumat lanjut.)
+Terdapat banyak [//openid.net/get/ perkhidmatan OpenID]; anda mungkin sudah membuka akaun yang dihidupkan OpenID di sebuah perkhidmatan lain.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''hanya'' membolehkan anda untuk log masuk dengan OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Jika anda sudah memiliki akaun di {{SITENAME}}, anda boleh [[Special:UserLogin|log masuk]] dengan nama pengguna dan kata laluan anda seperti biasa.
+Untuk menggunakan OpenID pada masa akan datang, anda boleh [[Special:OpenIDConvert|mengubah akuan anda menjadi OpenID]] selepas anda log masuk seperti biasa.',
+	'openidupdateuserinfo' => 'Kemas kinikan maklumat pribadi saya:',
+	'openiddelete' => 'Hapuskan OpenID',
+	'openiddelete-text' => 'Dengan menekan butang "{{int:openiddelete-button}}", anda akan menghapuskan OpenID $1 dari akaun Anda.
+Anda tidak akan dapat log masuk dengan OpenID ini lagi.',
+	'openiddelete-button' => 'Sahkan',
+	'openiddeleteerrornopassword' => 'Anda tidak boleh menghapuskan semua OpenID Anda kerana akaun anda tidak diberi kata kata laluan.
+Anda tidak boleh log masuk tanpa OpenID.',
+	'openiddeleteerroropenidonly' => 'Anda tidak boleh menghapuskan semua OpenID Anda kerana anda hanya dibenarkan untuk log masuk dengan OpenID.
+Anda tidak boleh log masuk tanpa OpenID.',
+	'openiddelete-sucess' => 'OpenID ini berjaya dibuang dari akaun anda.',
+	'openiddelete-error' => 'Ralat berlaku ketika membuang OpenID ini dari akaun anda.',
+	'openid-openids-were-not-merged' => 'OpenID tidak digabungkan sekali ketika akaun-akaun pengguna digabungkan.',
+	'openid-prefstext' => 'Keutamaan [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Sorokkan URL OpenID anda pada laman pengguna anda, jika anda log masuk dengan OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Kemaskinikan maklumat berikut dari persona OpenID setiap kali saya log masuk:',
+	'openid-urls-desc' => 'OpenID yang dikaitkan dengan akaun anda:',
+	'openid-urls-action' => 'Tindakan',
+	'openid-urls-registration' => 'Waktu pendaftaran',
+	'openid-urls-delete' => 'Hapuskan',
+	'openid-add-url' => 'Tambahkan OpenID baru',
+	'openid-login-or-create-account' => 'Log masuk atau buka akaun baru',
+	'openid-provider-label-openid' => 'Taipkan URL OpenID anda',
+	'openid-provider-label-google' => 'Log masuk dengan menggunakan akaun Google anda',
+	'openid-provider-label-yahoo' => 'Log masuk dengan menggunakan akaun Yahoo anda',
+	'openid-provider-label-aol' => 'Taipkan nama pengguna AOL anda',
+	'openid-provider-label-other-username' => 'Taipkan nama pengguna $1 anda',
+	'specialpages-group-openid' => 'Laman-laman perkhidmatan dan maklumat status OpenID',
+	'right-openid-dashboard-access' => 'Akses piawai ke dalam papan pemuka OpenID',
+	'right-openid-dashboard-admin' => 'Akses pentadbir ke dalam papan pemuka OpenID',
+	'openid-dashboard-title' => 'Papan pemuka OpenID',
+	'openid-dashboard-title-admin' => 'Papan Pemuka OpenID (pentadbir)',
+	'openid-dashboard-introduction' => 'Tetapan sambungan OpenID semasa ([$1 bantuan])',
+	'openid-dashboard-number-openid-users' => 'Bilangan pengguna dengan OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Bilangan OpenID (jumlah)',
+	'openid-dashboard-number-users-without-openid' => 'Bilangan pengguna tanpa OpenID',
 );
 
 /** Maltese (Malti)
@@ -2260,34 +4139,166 @@
 	'openidlanguage' => 'Lingwa',
 );
 
+/** Burmese (မြန်မာဘာသာ)
+ * @author Erikoo
+ */
+$messages['my'] = array(
+	'openidoptional' => 'ရွေးပိုင်ခွင့်',
+	'openidrequired' => 'လိုအပ်သည်',
+	'openidnickname' => 'Nickname အမည်',
+	'openidfullname' => 'အမည် အပြည့်အစုံ',
+	'openidemail' => 'အီးမေး လိပ်စာ',
+	'openidlanguage' => 'ဘာသာ',
+	'openid-provider-label-google' => 'Google အကောင့် အသုံးပြု၍ Login ဝင်ရန်',
+	'openid-provider-label-yahoo' => 'Yahoo အကောင့် အသုံးပြု၍ Login ဝင်ရန်',
+	'openid-provider-label-aol' => 'AOL အကောင့် အားရိုက်ပါ',
+	'openid-provider-label-other-username' => 'သင်၏ $1 မှ အသုံးပြုသူ အမည်အား ရိုက်ပါ',
+);
+
 /** Erzya (Эрзянь)
  * @author Botuzhaleny-sodamo
  */
 $messages['myv'] = array(
+	'openidoptional' => 'Мелень коряс',
+	'openidrequired' => 'Тентеме кодаяк',
+	'openidnickname' => 'Путонь лем',
+	'openidfullname' => 'Лем педе-пес',
+	'openidemail' => 'Е-сёрма парго',
 	'openidlanguage' => 'Кель',
-	'openidchoosepassword' => 'совамо валось:',
+	'openidtimezone' => 'Шкань каркс',
+	'openidchooseusername' => 'Совицянь леметь:',
+	'openidchoosepassword' => 'Совамо валот:',
+	'openiddelete-button' => 'Кемекстамс',
 );
 
 /** Nahuatl (Nāhuatl)
  * @author Fluence
+ * @author Teòtlalili
  */
 $messages['nah'] = array(
 	'openidemail' => 'E-mailcān',
-	'openidlanguage' => 'Tlahtōlli',
-	'openidchoosepassword' => 'tlahtōlichtacāyōtl:',
+	'openidlanguage' => 'Tlâtòlli',
+	'openidchoosepassword' => 'Motlahtōlichtacāyo',
 );
 
+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+ * @author Jon Harald Søby
+ * @author Nghtwlkr
+ */
+$messages['nb'] = array(
+	'openid-desc' => 'Logg inn på wikien med en [//openid.net/ OpenID] og logg inn på andre sider som bruker OpenID med kontoen herfra',
+	'openidlogin' => 'Logg inn med OpenID',
+	'openidserver' => 'OpenID-tjener',
+	'openidxrds' => 'Yadis-fil',
+	'openidconvert' => 'OpenID-konvertering',
+	'openiderror' => 'Bekreftelsesfeil',
+	'openiderrortext' => 'En feil oppsto under bekrefting av OpenID-adressen.',
+	'openidconfigerror' => 'Oppsettsfeil med OpenID',
+	'openidconfigerrortext' => 'Lagringsoppsettet for OpenID på denne wikien er ugyldig.
+Vennligst kontakt en [[Special:ListUsers/sysop|administrator]].',
+	'openidpermission' => 'Tillatelsesfeil med OpenID',
+	'openidpermissiontext' => 'Du kan ikke logge inn på denne tjeneren med OpenID-en du oppga.',
+	'openidcancel' => 'Bekreftelse avbrutt',
+	'openidcanceltext' => 'Bekreftelsen av OpenID-adressen ble avbrutt.',
+	'openidfailure' => 'Bekreftelse mislyktes',
+	'openidfailuretext' => 'Bekreftelse av OpenID-adressen mislyktes. Feilbeskjed: «$1»',
+	'openidsuccess' => 'Bekreftelse lyktes',
+	'openidsuccesstext' => 'Bekreftelse av OpenID-adressen lyktes.',
+	'openidusernameprefix' => 'OpenID-bruker',
+	'openidserverlogininstructions' => 'Skriv inn passordet ditt nedenfor for å logge på $3 som $2 (brukerside $1).',
+	'openidtrustinstructions' => 'Sjekk om du ønsker å dele data med $1.',
+	'openidallowtrust' => 'La $1 stole på denne kontoen.',
+	'openidnopolicy' => 'Siden har ingen personvernerklæring.',
+	'openidpolicy' => 'Sjekk <a href="_new" href="$1">personvernerklæringen</a> for mer informasjon.',
+	'openidoptional' => 'Valgfri',
+	'openidrequired' => 'Påkrevd',
+	'openidnickname' => 'Kallenavn',
+	'openidfullname' => 'Fullt navn',
+	'openidemail' => 'E-postadresse',
+	'openidlanguage' => 'Språk',
+	'openidtimezone' => 'Tidssone',
+	'openidchooselegend' => 'Velg brukernavn',
+	'openidchooseinstructions' => 'Alle brukere må ha et kallenavn; du kan velge blant valgene nedenfor.',
+	'openidchoosenick' => 'Ditt kallenavn ($1)',
+	'openidchoosefull' => 'Fullt navn ($1)',
+	'openidchooseurl' => 'Et navn tatt fra din OpenID ($1)',
+	'openidchooseauto' => 'Et automatisk opprettet navn ($1)',
+	'openidchoosemanual' => 'Et valgfritt navn:',
+	'openidchooseexisting' => 'En eksisterende konto på denne wikien',
+	'openidchooseusername' => 'Brukernavn:',
+	'openidchoosepassword' => 'Passord:',
+	'openidconvertinstructions' => 'Dette skjemaet lar deg endre brukerkontoen din til å bruke en OpenID-adresse eller å legge til flere OpenID-adresser.',
+	'openidconvertoraddmoreids' => 'Konverter til OpenID eller legg til en annen OpenID-adresse',
+	'openidconvertsuccess' => 'Konverterte til OpenID',
+	'openidconvertsuccesstext' => 'Du har konvertert din OpenID til $1.',
+	'openidconvertyourstext' => 'Det er allerede din OpenID.',
+	'openidconvertothertext' => 'Den OpenID-en tilhører noen andre.',
+	'openidalreadyloggedin' => "'''$1, du er allerede logget inn.'''
+
+Om du ønsker å bruke OpenID i framtiden, kan du [[Special:OpenIDConvert|konvertere kontoen din til å bruke OpenID]].",
+	'openidnousername' => 'Intet brukernavn oppgitt.',
+	'openidbadusername' => 'Ugyldig brukernavn oppgitt.',
+	'openidautosubmit' => 'Denne siden inneholder et skjema som vil leveres automatisk om du har JavaScript slått på.
+Om ikke, trykk på «Continue» (Fortsett).',
+	'openidclientonlytext' => 'Du kan ikke bruke kontoer fra denne wikien som OpenID på en annen side.',
+	'openidloginlabel' => 'OpenID-adresse',
+	'openidlogininstructions' => '{{SITENAME}} støtter [//openid.net/ OpenID]-standarden for enhetlig innlogging på forskjellige nettsteder.
+OpenID lar deg logge inn på mange forskjellige nettsider uten at du må bruke forskjellige passord på hver.
+(Se [//nn.wikipedia.org/wiki/OpenID Wikipedia-artikkelen om OpenID] for mer informasjon.)
+
+Om du allerede har en konto på {{SITENAME}}, kan du [[Special:UserLogin|logga på]] som vanlig med brukarnavnet og passordet ditt.
+For å bruke OpenID i fremtiden, kan du [[Special:OpenIDConvert|konvertere kontoen din til OpenID]] etter at du har logget inn på vanlig måte.
+
+Det er mange [http://wiki.openid.net/Public_OpenID_providers leverandører av OpenID], og du kan allerede ha en OpenID-aktivert konto et annet sted.',
+	'openidupdateuserinfo' => 'Oppdater min personlige informasjon:',
+	'openiddelete' => 'Slett OpenID',
+	'openiddelete-text' => 'Ved å klikke på «{{int:openiddelete-button}}»-knappen vil du fjerne OpenID $1 fra din konto.
+Du vil ikke lenger ha mulighet til å logge inn med denne OpenID.',
+	'openiddelete-button' => 'Bekreft',
+	'openiddeleteerrornopassword' => 'Du kan ikke slette alle dine OpenID-er fordi kontoen din ikke har noe passord.
+Du ville ikke kunne logge inn uten en OpenID.',
+	'openiddeleteerroropenidonly' => 'Du kan ikke slette alle dine OpenID-er fordi du kun kan logge inn med en OpenID.
+Du ville ikke kunne logge inn uten en OpenID.',
+	'openiddelete-sucess' => 'OpenID-en har blitt fjernet fra din konto.',
+	'openiddelete-error' => 'En feil oppsto i prosessen med å fjerne OpenID-en fra din konto.',
+	'openid-prefstext' => '[//openid.net/ OpenID] innstillinger',
+	'openid-pref-hide' => 'Skjul OpenID på brukersiden din om du logger inn med en.',
+	'openid-pref-update-userinfo-on-login' => 'Oppdater den følgende informasjonen fra OpenID-persona hver gang jeg logger inn:',
+	'openid-urls-desc' => 'OpenID-er knyttet til din brukerkonto:',
+	'openid-urls-action' => 'Handling',
+	'openid-urls-delete' => 'Slett',
+	'openid-add-url' => 'Legg til en ny OpenID',
+	'openid-login-or-create-account' => 'Logg inn eller lag en ny konto',
+	'openid-provider-label-openid' => 'Skriv inn din OpenID-nettadresse',
+	'openid-provider-label-google' => 'Logg inn med din Google-konto',
+	'openid-provider-label-yahoo' => 'Logg inn med din Yahoo-konto',
+	'openid-provider-label-aol' => 'Skriv inn ditt AOL-skjermnavn',
+	'openid-provider-label-other-username' => 'Skriv inn ditt $1-brukernavn',
+);
+
+/** Nepali (नेपाली)
+ * @author RajeshPandey
+ */
+$messages['ne'] = array(
+	'openidemail' => 'इमेल ठेगाना',
+	'openidlanguage' => 'भाषा',
+	'openidtimezone' => 'समय क्षेत्र',
+	'openidchooseusername' => 'प्रयोगकर्ता नाम:',
+);
+
 /** Dutch (Nederlands)
+ * @author McDutchie
+ * @author SPQRobin
  * @author Siebrand
+ * @author Tjcool007
  */
 $messages['nl'] = array(
-	'openid-desc' => 'Aanmelden bij de wiki met een [http://openid.net/ OpenID] en aanmelden bij andere websites die OpenID ondersteunen met een wikigebruiker',
-	'openidlogin' => 'Aanmelden met OpenID',
-	'openidfinish' => 'Aanmelden met OpenID afronden',
+	'openid-desc' => 'Aanmelden bij de wiki met een [//openid.net/ OpenID] en aanmelden bij andere websites die OpenID ondersteunen met een wikigebruiker',
+	'openidlogin' => 'Aanmelden / registreren met OpenID',
 	'openidserver' => 'OpenID-server',
 	'openidxrds' => 'Yadis-bestand',
 	'openidconvert' => 'OpenID-convertor',
-	'openiderror' => 'Verificatiefout',
+	'openiderror' => 'Controlefout',
 	'openiderrortext' => 'Er is een fout opgetreden tijdens de verificatie van de OpenID URL.',
 	'openidconfigerror' => 'Fout in de installatie van OpenID',
 	'openidconfigerrortext' => "De instellingen van de opslag van OpenID's voor deze wiki kloppen niet.
@@ -2299,64 +4310,104 @@
 	'openidfailure' => 'Verificatie mislukt',
 	'openidfailuretext' => 'De verificatie van de OpenID URL is mislukt. Foutmelding: "$1"',
 	'openidsuccess' => 'Verificatie uitgevoerd',
-	'openidsuccesstext' => 'De OpenID-URL is geverifieerd.',
+	'openidsuccesstext' => "'''De controle is geslaagd en u bent aangemeld als gebruiker $1.'''
+
+Uw OpenID is $2 .
+
+Dit OpenID en andere toekomstige OpenID's kunt u beheren in het [[Special:Preferences#prefsection-openid|tabblad OpenID]] van uw voorkeuren.<br />
+Optioneel kunt u een wachtwoord instellen voor deze gebruiker in uw [[Special:Preferences#prefsection-personal|gebruikersprofiel]].",
 	'openidusernameprefix' => 'OpenIDGebruiker',
-	'openidserverlogininstructions' => 'Voer uw wachtwoord hieronder in om aan te melden bij $3 als gebruiker $2 (gebruikerspagina $1).',
+	'openidserverlogininstructions' => '$3 vraag om het invoeren van uw wachtwoord voor uw gebruiker $2 pagina $1 (URL voor OpenID).',
 	'openidtrustinstructions' => 'Controleer of u gegevens wilt delen met $1.',
 	'openidallowtrust' => 'Toestaan dat $1 deze gebruiker vertrouwt.',
 	'openidnopolicy' => 'De site heeft geen privacybeleid.',
 	'openidpolicy' => 'Lees het <a target="_new" href="$1">privacybeleid</a> voor meer informatie.',
 	'openidoptional' => 'Optioneel',
 	'openidrequired' => 'Verplicht',
-	'openidnickname' => 'Nickname',
+	'openidnickname' => 'Gebruikersnaam',
 	'openidfullname' => 'Volledige naam',
 	'openidemail' => 'E-mailadres',
 	'openidlanguage' => 'Taal',
-	'openidnotavailable' => 'Uw voorkeursnaam ($1) wordt al gebruikt door een andere gebruiker.',
-	'openidnotprovided' => 'Uw OpenID-server heeft geen gebruikersnaam opgegeven (omdat het niet wordt ondersteund of omdat u dit zo hebt opgegeven).',
+	'openidtimezone' => 'Tijdzone',
+	'openidchooselegend' => 'Gebruikersnaamkeuze',
 	'openidchooseinstructions' => 'Alle gebruikers moeten een gebruikersnaam kiezen. U kunt er een kiezen uit de onderstaande opties.',
+	'openidchoosenick' => 'Uw bijnaam ($1)',
 	'openidchoosefull' => 'Uw volledige naam ($1)',
 	'openidchooseurl' => 'Een naam uit uw OpenID ($1)',
 	'openidchooseauto' => 'Een automatisch samengestelde naam ($1)',
 	'openidchoosemanual' => 'Een te kiezen naam:',
-	'openidchooseexisting' => 'Een bestaande gebruiker op deze wiki:',
-	'openidchoosepassword' => 'wachtwoord:',
-	'openidconvertinstructions' => 'Met dit formulier kunt u uw gebruiker als OpenID URL gebruiken.',
+	'openidchooseexisting' => 'Een bestaande gebruiker op deze wiki',
+	'openidchooseusername' => 'Gebruikersnaam:',
+	'openidchoosepassword' => 'Wachtwoord:',
+	'openidconvertinstructions' => "Via dit formulier kunt u uw gebruiker als OpenID-URL gebruiken of meer OpenID-URL's toevoegen.",
+	'openidconvertoraddmoreids' => 'Converteren naar OpenID of een andere OpenID-URL toevoegen',
 	'openidconvertsuccess' => 'Omzetten naar OpenID is uitgevoerd',
 	'openidconvertsuccesstext' => 'Uw OpenID is omgezet naar $1.',
 	'openidconvertyourstext' => 'Dat is al uw OpenID.',
 	'openidconvertothertext' => 'Iemand anders heeft die OpenID al in gebruik.',
-	'openidalreadyloggedin' => "'''U bent al aangemeld, $1!'''
+	'openidalreadyloggedin' => 'U bent al aangemeld.',
+	'openidalreadyloggedintext' => "'''U bent al aangemeld, $1!'''
 
-Als u in de toekomst uw OpenID wilt gebruiken om aan te melden, [[Special:OpenIDConvert|zet uw gebruiker dan om naar OpenID]].",
+U kunt OpenID's beheren (bekijken, verwijderen en toevoegen) in het [[Special:Preferences#prefsection-openid|tabblad OpenID]] in uw voorkeuren.",
 	'openidnousername' => 'Er is geen gebruikersnaam opgegeven.',
 	'openidbadusername' => 'De opgegeven gebruikersnaam is niet toegestaan.',
 	'openidautosubmit' => 'Deze pagina bevat een formulier dat automatisch wordt verzonden als JavaScript is ingeschaked.
-Als dat niet werkt, klik dan op de knop "Doorgaan".',
+Als dat niet werkt, klik dan op de knop "Continue" (Doorgaan).',
 	'openidclientonlytext' => 'U kunt gebruikers van deze wiki niet als OpenID gebruiken op een andere site.',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => '{{SITENAME}} ondersteunt de standaard [http://openid.net/ OpenID] voor maar een keer hoeven aanmelden voor meerdere websites.
+	'openidlogininstructions' => '{{SITENAME}} ondersteunt de standaard [//openid.net/ OpenID] voor maar een keer hoeven aanmelden voor meerdere websites.
 Met OpenID kunt u aanmelden bij veel verschillende websites zonder voor iedere site opnieuw een wachtwoord te moeten opgeven.
-Zie het [http://nl.wikipedia.org/wiki/OpenID Wikipedia-artikel over OpenID] voor meer informatie.
-
-Als u al een gebruiker hebt op {{SITENAME}}, dan kunt u aanmelden met uw gebruikersnaam en wachtwoord zoals u normaal doet. Om in de toekomst OpenID te gebruiken, kunt u uw [[Special:OpenIDConvert|gebruiker naar OpenID omzetten]] nadat u hebt aangemeld.
-
-Er zijn veel [http://wiki.openid.net/Public_OpenID_providers publieke OpenID-providers], en wellicht hebt u al een gebruiker voor OpenID bij een andere dienst.',
-	'openidupdateuserinfo' => 'Mijn persoonlijke gegevens bijwerken',
-	'openid-prefstext' => 'Voorkeuren [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Bij aanmelden met <a href="http://openid.net/">OpenID</a>, uw OpenID op uw gebruikerspagina verbergen.',
-	'openid-pref-update-userinfo-on-login' => 'Mijn informatie van mijn OpenID-persona elke keer als ik aanmeld bijwerken',
+Zie het [//nl.wikipedia.org/wiki/OpenID Wikipedia-artikel over OpenID] voor meer informatie.
+Er zijn veel [http://wiki.openid.net/Public_OpenID_providers OpenID-providers] en wellicht hebt u al een gebruiker voor OpenID bij een andere dienst.',
+	'openidlogininstructions-openidloginonly' => "Bij {{SITENAME}} kunt u zich ''alleen'' aanmelden via OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Als u al een gebruiker hebt bij op {{SITENAME}}, kunt u [[Special:UserLogin|aanmelden]] met uw gebruikersnaam en wachtwoord zoals gewoonlijk.
+Om in de toekomst OpenID te gebruiken, kunt u uw [[Special:OpenIDConvert|gebruiker omzetten naar OpenID]] nadat u bent aangemeld.',
+	'openidupdateuserinfo' => 'Mijn persoonlijke gegevens bijwerken:',
+	'openiddelete' => 'OpenID verwijderen',
+	'openiddelete-text' => 'Door te klikken op de knop "{{int:openiddelete-button}}", verwijdert u de OpenID $1 uit uw gebruiker.
+Het is dan niet langer mogelijk aan te melden met de OpenID "$1".',
+	'openiddelete-button' => 'Bevestigen',
+	'openiddeleteerrornopassword' => "U kunt niet al uw OpenID's verwijderen omdat uw gebruiker geen wachtwoord heeft.
+Dan zou u niet langer kunnen aanmelden zonder een OpenID.",
+	'openiddeleteerroropenidonly' => "U kunt niet al uw OpenID's verwijderen omdat u alleen mag aanmelden met een OpenID.
+Dan zou u niet langer kunnen aanmelden zonder een OpenID.",
+	'openiddelete-sucess' => 'De OpenID is verwijderd uit uw gebruiker.',
+	'openiddelete-error' => 'Er is een fout opgetreden tijdens het verwijderen van de OpenID uit uw gebruiker.',
+	'openid-openids-were-not-merged' => "Bij het samenvoegen van de gebruikers zijn een of meer OpenID's niet samengevoegd.",
+	'openid-prefstext' => 'Voorkeuren [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Bij aanmelden met OpenID, uw OpenID op uw gebruikerspagina verbergen.',
+	'openid-pref-update-userinfo-on-login' => 'Iedere keer als ik aanmeld de volgende informatie vanuit de OpenID-gebruiker bijwerken:',
+	'openid-urls-desc' => "Aan uw gebruiker gekoppelde OpenID's:",
+	'openid-urls-action' => 'Handeling',
+	'openid-urls-registration' => 'Registratietijd',
+	'openid-urls-delete' => 'Verwijderen',
+	'openid-add-url' => 'Een nieuwe OpenID toevoegen',
+	'openid-login-or-create-account' => 'Aanmelden of nieuwe gebruiker aanmaken',
+	'openid-provider-label-openid' => 'Voer de URL van uw OpenID in',
+	'openid-provider-label-google' => 'Aanmelden met uw Google-gebruiker',
+	'openid-provider-label-yahoo' => 'Aanmelden met uw Yahoo-gebruiker',
+	'openid-provider-label-aol' => 'Aanmelden met uw AOL-gebruiker',
+	'openid-provider-label-other-username' => 'Geef uw gebruikersnaam bij $1 in',
+	'specialpages-group-openid' => "OpenID-servicepagina's en statusinformatie",
+	'right-openid-dashboard-access' => 'Standaard toegang tot het OpenID-dashboard',
+	'right-openid-dashboard-admin' => 'Beheerderstoegang tot het OpenID-dashboard',
+	'openid-dashboard-title' => 'OpenID-dashboard',
+	'openid-dashboard-title-admin' => 'OpenID-dashboard (beheerder)',
+	'openid-dashboard-introduction' => 'De huidige instellingen van de OpenID-uitbreiding ([$1 hulp])',
+	'openid-dashboard-number-openid-users' => 'Aantal gebruikers met OpenID',
+	'openid-dashboard-number-openids-in-database' => "Totaal aantal OpenID's",
+	'openid-dashboard-number-users-without-openid' => 'Aantal gebruikers zonder OpenID',
 );
 
 /** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
  * @author Gunnernett
  * @author Harald Khan
  * @author Jon Harald Søby
+ * @author Nghtwlkr
  */
 $messages['nn'] = array(
-	'openid-desc' => 'Logg inn på wikien med ein [http://openid.net/ OpenID] og logg inn på andre sider som bruker OpenID med kontoen herifrå',
+	'openid-desc' => 'Logg inn på wikien med ein [//openid.net/ OpenID] og logg inn på andre sider som bruker OpenID med kontoen herifrå',
 	'openidlogin' => 'Logg inn med OpenID',
-	'openidfinish' => 'Fullfør OpenID-innlogging',
 	'openidserver' => 'OpenID-tenar',
 	'openidxrds' => 'Yadis-fil',
 	'openidconvert' => 'OpenID-konvertering',
@@ -2385,116 +4436,67 @@
 	'openidfullname' => 'Fullt namn',
 	'openidemail' => 'E-postadressa',
 	'openidlanguage' => 'Språk',
-	'openidnotavailable' => 'Føretrukke kallenamn ($1) blir allereie nytta av ein annan brukar.',
-	'openidnotprovided' => 'OpenID-tenaren din oppgav ikkje eit kallenamn (anten med di han ikkje kunne det, eller med di du har sagt at han ikkje skal gjera det).',
+	'openidtimezone' => 'Tidssone',
+	'openidchooselegend' => 'Val av brukarnamn',
 	'openidchooseinstructions' => 'All brukarar må ha eit kallenamn; du kan velja mellom vala nedanfor.',
+	'openidchoosenick' => 'Kallenamnet ditt ($1)',
 	'openidchoosefull' => 'Fullt namn ($1)',
 	'openidchooseurl' => 'Eit namn teke frå OpenID-en din ($1)',
 	'openidchooseauto' => 'Eit automatisk oppretta namn ($1)',
 	'openidchoosemanual' => 'Eit valfritt namn:',
-	'openidchooseexisting' => 'Ein konto på denne wikien som finst frå før:',
-	'openidchoosepassword' => 'passord:',
-	'openidconvertinstructions' => 'Dette skjemaet lèt deg endra brukarkontoen din slik at han kan nytta ei OpenID-adressa.',
+	'openidchooseexisting' => 'Ein konto på denne wikien som finst frå før',
+	'openidchooseusername' => 'Brukarnamn:',
+	'openidchoosepassword' => 'Passord:',
+	'openidconvertinstructions' => 'Dette skjemaet lèt deg endra brukarkontoen din slik at han kan nytta ei OpenID-adresse eller leggja til fleire OpenID-adresser.',
+	'openidconvertoraddmoreids' => 'Konverter til OpenID eller legg til ei anna OpenID-adresse',
 	'openidconvertsuccess' => 'Konverterte til OpenID',
-	'openidconvertsuccesstext' => 'Du har konvertert din OpenID til $1.',
-	'openidconvertyourstext' => 'Det er allereie din OpenID.',
+	'openidconvertsuccesstext' => 'Du har konvertert OpenID-en din til $1.',
+	'openidconvertyourstext' => 'Det er allereie OpenID-en din.',
 	'openidconvertothertext' => 'Den OpenID-en tilhøyrer einkvan annan.',
-	'openidalreadyloggedin' => "'''Du er allereie innlogga, $1.'''
-
-Om du ynskjer å nytta OpenID i framtida, kan du [[Special:OpenIDConvert|konvertera kontoen din til å nytta OpenID]].",
+	'openidalreadyloggedin' => 'Du er alt innlogga.',
 	'openidnousername' => 'Du oppgav ingen brukarnamn.',
 	'openidbadusername' => 'Du oppgav eit ugyldig brukarnamn.',
-	'openidautosubmit' => 'Denne sida inneheld eit skjema som blir levert automatisk om du har JavaSvript slege på. Dersom ikkje, trykk på «Hald fram».',
+	'openidautosubmit' => 'Denne sida inneheld eit skjema som blir levert automatisk om du har JavaSvript slege på.
+Dersom ikkje, trykk på «Continue» (Hald fram).',
 	'openidclientonlytext' => 'Du kan ikkje nytta kontoar frå denne wikien som OpenID på ei onnor sida.',
 	'openidloginlabel' => 'OpenID-adressa',
-	'openidlogininstructions' => '{{SITENAME}} støttar [http://openid.net/ OpenID]-standarden for einskapleg innlogging på forskjellige nettstader. OpenID lèt deg logga inn på mange forskjellige nettsider utan at du må nytta forskjellige passord på kvar. (Sjå [http://nn.wikipedia.org/wiki/OpenID Wikipedia-artikkelen om OpenID] for meir informasjon.)
+	'openidlogininstructions' => '{{SITENAME}} støttar [//openid.net/ OpenID]-standarden for einskapleg innlogging på forskjellige nettstader. OpenID lèt deg logga inn på mange forskjellige nettsider utan at du må nytta forskjellige passord på kvar. (Sjå [//nn.wikipedia.org/wiki/OpenID Wikipedia-artikkelen om OpenID] for meir informasjon.)
 
 Om du allereie har ein konto på {{SITENAME}}, kan du [[Special:UserLogin|logga på]] som vanleg med brukarnamnet og passordet ditt. For å nytta OpenID i framtida, kan du [[Special:OpenIDConvert|konvertera kontoen din til OpenID]] etter at du har logga inn på vanleg vis.
 
 Det er mange [http://wiki.openid.net/Public_OpenID_providers leverandørar av OpenID], og du kan allereie ha ein OpenID-aktivert konto ein annan stad.',
-	'openidupdateuserinfo' => 'Oppdatér min personlege informasjon',
-	'openid-prefstext' => '[http://openid.net/ OpenID] instillingar',
-	'openid-pref-hide' => 'Gøym <a href="http://openid.net/">OpenID</a> på brukarsida di om du loggar inn med ein.',
-	'openid-pref-update-userinfo-on-login' => 'Oppdatér informasjonen min frå OpenID-persona kvar gong eg loggar inn',
+	'openidupdateuserinfo' => 'Oppdater den personlege informasjonen min:',
+	'openiddelete' => 'Slett OpenID',
+	'openiddelete-text' => 'Ved å klikka på «{{int:openiddelete-button}}»-knappen vil du fjernae OpenID $1 frå kontoen din.
+Du vil ikkje lenger ha høve til å logga inn med denne OpenIDen.',
+	'openiddelete-button' => 'Stadfest',
+	'openiddeleteerrornopassword' => 'Du kan ikkje sletta alle OpenID-ane dine av di kontoen din ikkje har eit passord.
+Du ville ikkje ha kunna logga inn utan ein OpenID.',
+	'openiddeleteerroropenidonly' => 'Du kan ikkje sletta alle OpenID-ane dine av di du berre har løyve til å logga inn med OpenID.
+Du ville ikkje ha kunna logga inn utan ein OpenID.',
+	'openiddelete-sucess' => 'OpenID har vorte fjerna frå kontoen din',
+	'openiddelete-error' => 'Ein feil oppstod i prosessen med å fjerna OpenID frå kontoen din.',
+	'openid-prefstext' => '[//openid.net/ OpenID]-innstillingar',
+	'openid-pref-hide' => 'Gøym OpenID på brukarsida di om du loggar inn med ein.',
+	'openid-pref-update-userinfo-on-login' => 'Oppdatér den fylgjande informasjonen frå OpenID-persona kvar gong eg loggar inn',
+	'openid-urls-desc' => 'OpenID-ar knytte til brukarkontoen din:',
+	'openid-urls-action' => 'Handling',
+	'openid-urls-delete' => 'Slett',
+	'openid-add-url' => 'Legg til ein ny OpenID',
+	'openid-login-or-create-account' => 'Logg inn eller lag ein ny konto',
+	'openid-provider-label-openid' => 'Skriv inn OpenID-URL-en din.',
+	'openid-provider-label-google' => 'Logg inn med Google-kontoen din',
+	'openid-provider-label-yahoo' => 'Logg inn med Yahoo-kontoen din',
+	'openid-provider-label-aol' => 'Skriv inn AOL-skjermnamnet ditt',
+	'openid-provider-label-other-username' => 'Skriv inn $1-brukarnamnet ditt',
 );
 
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
- * @author Jon Harald Søby
- */
-$messages['no'] = array(
-	'openid-desc' => 'Logg inn på wikien med en [http://openid.net/ OpenID] og logg inn på andre sider som bruker OpenID med kontoen herfra',
-	'openidlogin' => 'Logg inn med OpenID',
-	'openidfinish' => 'Fullfør OpenID-innlogging',
-	'openidserver' => 'OpenID-tjener',
-	'openidxrds' => 'Yadis-fil',
-	'openidconvert' => 'OpenID-konvertering',
-	'openiderror' => 'Bekreftelsesfeil',
-	'openiderrortext' => 'En feil oppsto under bekrefting av OpenID-adressen.',
-	'openidconfigerror' => 'Oppsettsfeil med OpenID',
-	'openidconfigerrortext' => 'Lagringsoppsettet for OpenID på denne wikien er ugyldig.
-Vennligst kontakt en [[Special:ListUsers/sysop|administrator]].',
-	'openidpermission' => 'Tillatelsesfeil med OpenID',
-	'openidpermissiontext' => 'Du kan ikke logge inn på denne tjeneren med OpenID-en du oppga.',
-	'openidcancel' => 'Bekreftelse avbrutt',
-	'openidcanceltext' => 'Bekreftelsen av OpenID-adressen ble avbrutt.',
-	'openidfailure' => 'Bekreftelse mislyktes',
-	'openidfailuretext' => 'Bekreftelse av OpenID-adressen mislyktes. Feilbeskjed: «$1»',
-	'openidsuccess' => 'Bekreftelse lyktes',
-	'openidsuccesstext' => 'Bekreftelse av OpenID-adressen lyktes.',
-	'openidusernameprefix' => 'OpenID-bruker',
-	'openidserverlogininstructions' => 'Skriv inn passordet ditt nedenfor for å logge på $3 som $2 (brukerside $1).',
-	'openidtrustinstructions' => 'Sjekk om du ønsker å dele data med $1.',
-	'openidallowtrust' => 'La $1 stole på denne kontoen.',
-	'openidnopolicy' => 'Siden har ingen personvernerklæring.',
-	'openidpolicy' => 'Sjekk <a href="_new" href="$1">personvernerklæringen</a> for mer informasjon.',
-	'openidoptional' => 'Valgfri',
-	'openidrequired' => 'Påkrevd',
-	'openidnickname' => 'Kallenavn',
-	'openidfullname' => 'Fullt navn',
-	'openidemail' => 'E-postadresse',
-	'openidlanguage' => 'Språk',
-	'openidnotavailable' => 'Foretrukket kallenavn ($1) brukes allerede av en annen bruker.',
-	'openidnotprovided' => 'OpenID-tjeneren din oppga ikke et kallenavn (enten fordi den ikke kunne det, eller fordi du har sagt at den ikke skal gjøre det).',
-	'openidchooseinstructions' => 'Alle brukere må ha et kallenavn; du kan velge blant valgene nedenfor.',
-	'openidchoosefull' => 'Fullt navn ($1)',
-	'openidchooseurl' => 'Et navn tatt fra din OpenID ($1)',
-	'openidchooseauto' => 'Et automatisk opprettet navn ($1)',
-	'openidchoosemanual' => 'Et valgfritt navn:',
-	'openidchooseexisting' => 'En eksisterende konto på denne wikien:',
-	'openidchoosepassword' => 'passord:',
-	'openidconvertinstructions' => 'Dette skjemaet lar deg endre brukerkontoen din til å bruke en OpenID-adresse.',
-	'openidconvertsuccess' => 'Konverterte til OpenID',
-	'openidconvertsuccesstext' => 'Du har konvertert din OpenID til $1.',
-	'openidconvertyourstext' => 'Det er allerede din OpenID.',
-	'openidconvertothertext' => 'Den OpenID-en tilhører noen andre.',
-	'openidalreadyloggedin' => "'''$1, du er allerede logget inn.'''
-
-Om du ønsker å bruke OpenID i framtiden, kan du [[Special:OpenIDConvert|konvertere kontoen din til å bruke OpenID]].",
-	'openidnousername' => 'Intet brukernavn oppgitt.',
-	'openidbadusername' => 'Ugyldig brukernavn oppgitt.',
-	'openidautosubmit' => 'Denne siden inneholder et skjema som vil leveres automatisk om du har JavaScript slått på. Om ikke, trykk på «Fortsett».',
-	'openidclientonlytext' => 'Du kan ikke bruke kontoer fra denne wikien som OpenID på en annen side.',
-	'openidloginlabel' => 'OpenID-adresse',
-	'openidlogininstructions' => "{{SITENAME}} støtter [http://openid.net/ OpenID]-standarden for enhetlig innlogging på forskjellige nettsteder. OpenID lar deg logge inn på mange forskjellige nettsider uten å bruke forskjellige passord overalt. (Se [http://no.wikipedia.org/wiki/OpenID Wikipedia-artikkelen om OpenID] for mer informasjon.)
-
-Om du allerede har en konto på {{SITENAME}}, kan du logge på som vanlig med ditt brukernavn og passord. For å bruke OpenID i framtiden kan du [[Special:OpenIDConvert|konvertere kontoen din til OpenID]] etter at du har logget inn på vanlig vis.
-
-Det er mange [http://wiki.openid.net/Public_OpenID_providers leverandører av OpenID], og du kan allerede ha en OpenID-aktivert konto et annet sted.
-
-;Andre wikier :Om du har en konto på en OpenID-aktivert wiki, som [http://wikitravel.org/ Wikitravel], [http://wikihow.com/ wikiHow], [http://vinismo.com/ Vinismo], [http://aboutus.org/ AboutUs] eller [http://kei.ki/ Keiki], kan du logge inn på {{SITENAME}} ved å skrive inn den '''fullstendige adressen''' til din brukerside på den wikien i boksen ovenfor. For eksempel ''<nowiki>http://kei.kei/en/User:Eksempel</nowiki>''.
-;[http://openid.yahoo.com/ Yahoo!] :Om du har en konto hos Yahoo! kan du logge inn på denne siden ved å skrive inn OpenID-en din fra Yahoo i boksen ovenfor. Yahoo!s OpenID-adresser har formen ''<nowiki>https://me.yahoo.com/dittbrukernavn</nowiki>''.
-;[http://dev.aol.com/aol-and-63-million-openids AOL] :Om du har en konto hos [http://aol.com/ AOL], for eksempel en [http://aim.com/ AIM]-konto, kan du logge inn på {{SITENAME}} ved å skrive inn OpenID-en din fra AOL i boksen ovenfor. AOLs OpenID-adresser har formen ''<nowiki>http://openid.aol.com/dittbrukernavn</nowiki>''. Brukernavnet må være i små bokstaver og uten mellomrom.
-;[http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox] :Om du har en konto på en av disse tjenestene, skriv inn adressen til bloggen din i boksen ovenfor. For eksempel ''<nowiki>http://dittbrukernavn.blogspot.com/</nowiki>'', ''<nowiki>http://dittbrukernavn.wordpress.com/</nowiki>'', ''<nowiki>http://dittbrukernavn.livejournal.com/</nowiki>'', or ''<nowiki>http://dittbrukernavn.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'Skjul <a href="http://openid.net/">OpenID</a> på brukersiden din om du logger inn med en.',
-);
-
 /** Occitan (Occitan)
  * @author Cedric31
  */
 $messages['oc'] = array(
-	'openid-desc' => "Se connecta al wiki amb [http://openid.net/ OpenID] e se connecta a d'autres sits internet OpenID amb un wiki utilizant un compte d'utilizaire.",
+	'openid-desc' => "Se connècta al wiki amb [//openid.net/ OpenID] e se connècta a d'autres sites internet OpenID amb un wiki qu'utiliza un compte d'utilizaire.",
 	'openidlogin' => 'Se connectar amb OpenID',
-	'openidfinish' => 'Acabar la conneccion OpenID',
 	'openidserver' => 'Servidor OpenID',
 	'openidxrds' => 'Fichièr Yadis',
 	'openidconvert' => 'Convertisseire OpenID',
@@ -2515,7 +4517,7 @@
 	'openidserverlogininstructions' => "Picatz vòstre senhal çaijós per vos connectar sus $3 coma utilizaire '''$2''' (pagina d'utilizaire $1).",
 	'openidtrustinstructions' => 'Marcatz se desiratz partejar las donadas amb $1.',
 	'openidallowtrust' => "Autoriza $1 a far fisança a aqueste compte d'utilizaire.",
-	'openidnopolicy' => 'Lo sit a pas indicat una politica de las donadas personnalas.',
+	'openidnopolicy' => 'Lo site a pas indicat una politica de donadas personalas.',
 	'openidpolicy' => 'Verificar la <a target="_new" href="$1">Politica de las donadas personalas</a> per mai d’entresenhas.',
 	'openidoptional' => 'Facultatiu',
 	'openidrequired' => 'Exigit',
@@ -2523,8 +4525,7 @@
 	'openidfullname' => 'Nom complet',
 	'openidemail' => 'Adreça de corrièr electronic',
 	'openidlanguage' => 'Lenga',
-	'openidnotavailable' => 'Vòstre escais preferit ($1) ja es utilizat per un autre utilizaire.',
-	'openidnotprovided' => "Vòstre servidor OpenID a pas pogut provesir un escais (siá o pòt pas, siá li avètz demandat d'o far pas mai).",
+	'openidtimezone' => 'Zòna orària',
 	'openidchooseinstructions' => "Totes los utilizaires an besonh d'un escais ; ne podètz causir un a partir de la causida çaijós.",
 	'openidchoosefull' => 'Vòstre nom complet ($1)',
 	'openidchooseurl' => 'Un nom es estat causit dempuèi vòstra OpenID ($1)',
@@ -2532,7 +4533,8 @@
 	'openidchoosemanual' => "Un nom qu'avètz causit :",
 	'openidchooseexisting' => 'Un compte existent sus aqueste wiki :',
 	'openidchoosepassword' => 'Senhal :',
-	'openidconvertinstructions' => "Aqueste formulari vos daissa cambiar vòstre compte d'utilizaire per utilizar una adreça OpenID.",
+	'openidconvertinstructions' => "Aqueste formulari vos permet de cambiar vòstre compte d'utilizaire per utilizar una adreça OpenID o apondre d'adreças OpenID suplementàrias.",
+	'openidconvertoraddmoreids' => 'Convertir cap a OpenID o apondre una autra adreça OpenID',
 	'openidconvertsuccess' => 'Convertit amb succès cap a OpenID',
 	'openidconvertsuccesstext' => 'Avètz convertit amb succès vòstra OpenID cap a $1.',
 	'openidconvertyourstext' => 'Ja es vòstra OpenID.',
@@ -2542,32 +4544,58 @@
 Se desiratz utilizar vòstra OpenID per vos connectar ulteriorament, podètz [[Special:OpenIDConvert|convertir vòstre compte per utilizar OpenID]].",
 	'openidnousername' => 'Cap de nom d’utilizaire es pas estat indicat.',
 	'openidbadusername' => 'Un nom d’utilizaire marrit es estat indicat.',
-	'openidautosubmit' => 'Aquesta pagina compren un formulari que poiriá èsser mandat automaticament se avètz activat JavaScript.
-S’èra pas lo cas, ensajatz lo boton « Contunhar ».',
-	'openidclientonlytext' => 'Podètz pas utilizar de comptes dempuèi aqueste wiki en tant qu’OpenID sus d’autres sits.',
+	'openidautosubmit' => "Aquesta pagina conten un formulari que poiriá èsser mandat automaticament s'avètz activat JavaScript.
+S’èra pas lo cas, ensajatz lo boton « Continue » (Contunhar).",
+	'openidclientonlytext' => 'Podètz pas utilizar de comptes dempuèi aqueste wiki en tant qu’OpenID sus d’autres sites.',
 	'openidloginlabel' => 'Adreça OpenID',
-	'openidlogininstructions' => "{{SITENAME}} supòrta lo format [http://openid.net/ OpenID] estandard per una sola signatura entre de sits Internet.
-OpenID vos permet de vos connectar sus maites sits diferents sens aver d'utilizar un senhal diferent per cadun d’entre eles.
-(Vejatz [http://en.wikipedia.org/wiki/OpenID Wikipedia's OpenID article] per mai d'entresenhas.)
+	'openidlogininstructions' => "{{SITENAME}} supòrta lo format [//openid.net/ OpenID] estandard per una sola signatura entre de sites Internet.
+OpenID vos permet de vos connectar sus mantun site diferent sens aver d'utilizar un senhal diferent per cadun d’entre eles.
+(Vejatz [//en.wikipedia.org/wiki/OpenID Wikipedia's OpenID article] per mai d'entresenhas.)
 
 S'avètz ja un compte sus {{SITENAME}}, vos podètz [[Special:UserLogin|connectar]] amb vòstre nom d'utilizaire e son senhal coma de costuma. Per utilizar OpenID, a l’avenidor, podètz [[Special:OpenIDConvert|convertir vòstre compte en OpenID]] aprèp vos èsser connectat normalament.
 
-Existís maites [http://wiki.openid.net/Public_OpenID_providers provesidors d'OpenID publicas], e podètz ja obténer un compte OpenID activat sus un autre servici.",
+Existís mantun [http://wiki.openid.net/Public_OpenID_providers provesidor d'OpenID publicas], e podètz ja obténer un compte OpenID activat sus un autre servici.",
 	'openidupdateuserinfo' => 'Metre a jorn mas donadas personalas',
-	'openid-prefstext' => 'Preferéncias de [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Amaga vòstra <a href="http://openid.net/">OpenID</a> sus vòstra pagina d\'utilizaire, se vos connectaz amb OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Metre a jorn mas donadas personalas dempuèi OpenID a cada còp que me connecti',
+	'openiddelete' => "Suprimir l'OpenID",
+	'openiddelete-text' => "En clicant sul boton « {{int:openiddelete-button}} », suprimtz l'OpenID $1 de vòstre compte.
+Vos poiretz pas pus connectar amb aquesta OpenID.",
+	'openiddelete-button' => 'Confirmar',
+	'openiddelete-sucess' => "L'OpenID es estada suprimida amb succès de vòstre compte.",
+	'openiddelete-error' => "Una error es arribada pendent la supression de l'OpenID de vòstre compte.",
+	'openid-prefstext' => 'Preferéncias de [//openid.net/ OpenID]',
+	'openid-pref-hide' => "Amaga vòstra OpenID sus vòstra pagina d'utilizaire, se vos connectaz amb OpenID.",
+	'openid-pref-update-userinfo-on-login' => 'Metre a jorn las donadas seguentas dempuèi OpenID a cada còp que me connecti :',
+	'openid-urls-desc' => 'OpenID associadas amb vòstre compte :',
+	'openid-urls-action' => 'Accion',
+	'openid-urls-delete' => 'Suprimir',
+	'openid-add-url' => 'Apondre un OpenID novèla',
+	'openid-login-or-create-account' => 'Se connectar o crear un compte novèl',
+	'openid-provider-label-openid' => 'Picatz vòstra URL OpenID',
+	'openid-provider-label-google' => 'Vos connectar en utilizant vòstre compte Google',
+	'openid-provider-label-yahoo' => 'Vos connectar en utilizant vòstre compte Yahoo',
+	'openid-provider-label-aol' => 'Picatz vòstre nom AOL',
+	'openid-provider-label-other-username' => "Picatz vòstre nom d'utilizaire $1",
 );
 
-/** Ossetic (Иронау)
+/** Ossetic (Ирон)
  * @author Amikeco
  */
 $messages['os'] = array(
 	'openidnickname' => 'Фæсномыг',
 	'openidlanguage' => 'Æвзаг',
-	'openidchoosepassword' => 'пароль:',
+	'openidchoosepassword' => 'Пароль:',
 );
 
+/** Deitsch (Deitsch)
+ * @author Xqt
+ */
+$messages['pdc'] = array(
+	'openidlanguage' => 'Schprooch',
+	'openidchooseusername' => 'Yuuser-Naame:',
+	'openidchoosepassword' => 'Paesswatt:',
+	'openid-urls-delete' => 'Verwische',
+);
+
 /** Plautdietsch (Plautdietsch)
  * @author Slomox
  */
@@ -2580,9 +4608,8 @@
  * @author Sp5uhe
  */
 $messages['pl'] = array(
-	'openid-desc' => 'Logowanie się do wiki z użyciem [http://openid.net/ OpenID], oraz logowanie się do innych witryn używających OpenID z użyciem konta użytkownika z wiki',
-	'openidlogin' => 'Zaloguj używając OpenID',
-	'openidfinish' => 'Zakończ zalogowanie z użyciem OpenID',
+	'openid-desc' => 'Logowanie się do wiki z użyciem [//openid.net/ OpenID], oraz logowanie się do innych witryn używających OpenID z użyciem konta użytkownika z wiki',
+	'openidlogin' => 'Zaloguj lub utwórz konto korzystając z OpenID',
 	'openidserver' => 'Serwer OpenID',
 	'openidxrds' => 'Plik Yadis',
 	'openidconvert' => 'Obsługa OpenID',
@@ -2598,9 +4625,14 @@
 	'openidfailure' => 'Weryfikacja nie powiodła się',
 	'openidfailuretext' => 'Weryfikacja adresu URL OpenID nie powiodła się. Komunikat o błędzie – „$1”',
 	'openidsuccess' => 'Weryfikacja udana',
-	'openidsuccesstext' => 'Zweryfikowano adres URL OpenID.',
+	'openidsuccesstext' => "'''Zweryfikowano i zalogowano użytkownika $1'''.
+
+Twój OpenID to $2.
+
+Tym i innymi dodatkowymi OpenID możesz zarządzać w [[Special:Preferences#prefsection-openid|zakładce OpenID]] w swoich preferencjach.<br />
+Opcjonalne hasło do konta możesz dodać w swoim [[Special:Preferences#prefsection-personal|profilu użytkownika]].",
 	'openidusernameprefix' => 'UżytkownikOpenID',
-	'openidserverlogininstructions' => 'Wpisz swoje hasło, aby zalogować się do $3 jako użytkownik $2 (strona użytkownika $1).',
+	'openidserverlogininstructions' => '$3 zażądało abyś podał hasło użytkownika $2 strona $1 (to jest Twój OpenID adres URL).',
 	'openidtrustinstructions' => 'Sprawdź, czy chcesz wymieniać informacje z $1.',
 	'openidallowtrust' => 'Zezwól $1 na użycie tego konta użytkownika.',
 	'openidnopolicy' => 'Witryna nie ma określonej polityki prywatności.',
@@ -2611,77 +4643,217 @@
 	'openidfullname' => 'Imię i nazwisko',
 	'openidemail' => 'Adres e‐mail',
 	'openidlanguage' => 'Język',
-	'openidnotavailable' => 'Wybrana nazwa użytkownika „$1” jest już zajęta.',
-	'openidnotprovided' => 'Twój serwer OpenID nie dostarczył pseudonimu (dlatego że nie mógł albo mu zabroniłeś).',
+	'openidtimezone' => 'Strefa czasowa',
+	'openidchooselegend' => 'Wybór nazwy użytkownika i konta',
 	'openidchooseinstructions' => 'Wszyscy użytkownicy muszą mieć pseudonim.
 Możesz wybrać spośród propozycji podanych poniżej.',
+	'openidchoosenick' => 'Twoja nazwa konta użytkownika ($1)',
 	'openidchoosefull' => 'Twoje imię i nazwisko ($1)',
 	'openidchooseurl' => 'Nazwa wybrana spośród OpenID ($1)',
 	'openidchooseauto' => 'Automatycznie utworzono nazwę użytkownika ($1)',
 	'openidchoosemanual' => 'Nazwa użytkownika wybrana przez Ciebie',
 	'openidchooseexisting' => 'Istniejące konto na tej wiki',
-	'openidchoosepassword' => 'hasło',
-	'openidconvertinstructions' => 'Formularz umożliwia przystosowanie konta użytkownika do korzystania z adresu URL OpenID.',
+	'openidchooseusername' => 'Nazwa użytkownika',
+	'openidchoosepassword' => 'Hasło',
+	'openidconvertinstructions' => 'Formularz umożliwia przystosowanie konta użytkownika do korzystania z adresu URL OpenID lub dodanie następnych adresów URL OpenID.',
+	'openidconvertoraddmoreids' => 'Konwertuj do OpenID lub dodaj kolejny adres URL OpenID',
 	'openidconvertsuccess' => 'Przełączone na korzystanie z OpenID',
 	'openidconvertsuccesstext' => 'Zmieniłeś swoje OpenID na $1.',
 	'openidconvertyourstext' => 'Już masz swój OpenID.',
 	'openidconvertothertext' => 'To jest OpenID należące do kogoś innego.',
-	'openidalreadyloggedin' => "'''Jesteś już zalogowany jako $1!'''
+	'openidalreadyloggedin' => 'Jesteś już zalogowany.',
+	'openidalreadyloggedintext' => "'''Już jesteś zalogowany jako $1!'''
 
-Jeśli chcesz w przyszłości używać OpenID do logowania się, możesz [[Special:OpenIDConvert|przełączyć konto na korzystanie z OpenID]].",
+Możesz zarządzać (przeglądać, usuwać, dodawać dalsze) OpenID w [[Special:Preferences#prefsection-openid|zakładce OpenID]] w swoich preferencjach.",
 	'openidnousername' => 'Nie wybrano żadnej nazwy użytkownika.',
 	'openidbadusername' => 'Wybrano nieprawidłową nazwę użytkownika.',
 	'openidautosubmit' => 'Strona zawiera formularz, który powinien zostać automatycznie przesłany jeśli masz włączoną obsługę JavaScript.
-Jeśli nie spróbuj wcisnąć klawisz „Kontynuuj”.',
+Jeśli tak się nie stało spróbuj wcisnąć klawisz „Continue” (Kontynuuj).',
 	'openidclientonlytext' => 'Nie można korzystać z kont tej wiki jako OpenID w innych witrynach.',
 	'openidloginlabel' => 'Adres URL OpenID',
-	'openidlogininstructions' => '{{SITENAME}} korzysta ze standardu [http://openid.net/ OpenID] dla zapewnienia jednolitego uwierzytelnienia pomiędzy różnymi witrynami w sieci Web.
-OpenID pozwala na zalogowanie się do wielu różnych witryn sieci Web bez użycia osobnego hasła dla każdej witryny. 
-(Zobacz [http://pl.wikipedia.org/wiki/OpenID artykuł o OpenID w Wikipedii] jeśli chcesz uzyskać więcej informacji.)
-
-Jeśli masz już konto w {{GRAMMAR:MS.lp|{{SITENAME}}}}, możesz [[Specjalna:Userlogin|zalogować się]] jak zwykle używając nazwy użytkownika i hasła. 
-Jeśli chcesz w przyszłości używać OpenID do logowania się, możesz [[Special:OpenIDConvert|przełączyć konto na korzystanie z OpenID]] po normalnym zalogowaniu się.
-
-Jest wielu [http://openid.net/get/ operatorów usługi OpenID] i możesz mieć już konto przełączone na korzystanie z OpenID innego usługodawcy.',
+	'openidlogininstructions' => '{{SITENAME}} korzysta ze standardu [//openid.net/ OpenID] umożliwiającego równoczesne zalogowanie się do wielu witryn.
+OpenID pozwala na zalogowanie się do wielu różnych witryn sieci Web, bez użycia osobnego hasła dla każdej z nich. 
+(Zobacz [//pl.wikipedia.org/wiki/OpenID artykuł o OpenID w Wikipedii] jeśli chcesz uzyskać więcej informacji.)
+Jest wielu [//openid.net/get/ operatorów usługi OpenID] – możliwe, że posiadasz już konto OpenID u innego usługodawcy.',
+	'openidlogininstructions-openidloginonly' => "Do {{GRAMMAR:D.lp|{{SITENAME}}}} możesz się zalogować ''wyłącznie'' przy pomocy OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Jeśli masz już konto w {{GRAMMAR:Ms.lp|{{SITENAME}}}} możesz [[Special:UserLogin|zalogować się]] przy pomocy swojej nazwy i hasła tak jak dotychczas.
+Jeśli chcesz korzystać w przyszłości z OpenID, możesz [[Special:OpenIDConvert|przekształcić swoje konto na  OpenID]] po tym jak się zwyczajne zalogujesz.',
 	'openidupdateuserinfo' => 'Uaktualnij moje dane',
-	'openid-prefstext' => 'Preferencje [http://openid.net/ OpenID]',
+	'openiddelete' => 'Usuń OpenID',
+	'openiddelete-text' => 'Klikając na przycisk „{{int:openiddelete-button}}” usuniesz OpenID $1 ze swojego konta.
+Nie będziesz już mógł więcej logować się korzystając z tego OpenID.',
+	'openiddelete-button' => 'Zapisz',
+	'openiddeleteerrornopassword' => 'Nie można usunąć wszystkich OpenID ponieważ konto nie ma ustalonego hasła.
+Nie będziesz mógł zalogować się bez OpenID.',
+	'openiddeleteerroropenidonly' => 'Nie możesz usunąć wszystkich OpenID, ponieważ logować się możesz jedynie korzystając z OpenID.
+Nie będziesz mógł się zalogować bez OpenID.',
+	'openiddelete-sucess' => 'OpenID został pomyślnie usunięty z Twojego konta.',
+	'openiddelete-error' => 'Wystąpił błąd podczas usuwania powiązania Twojego konta z OpenID.',
+	'openid-openids-were-not-merged' => 'OpenID nie zostały połączone w trakcie scalania kont użytkownika.',
+	'openid-prefstext' => 'Preferencje [//openid.net/ OpenID]',
 	'openid-pref-hide' => 'Ukryj mój adres URL OpenID na stronie użytkownika, jeśli zaloguję się za pomocą OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Aktualizuj informacje o mnie z OpenID za każdym razem w czasie logowania',
+	'openid-pref-update-userinfo-on-login' => 'Aktualizuj następujące informacje o mnie z OpenID przy każdym logowaniu',
+	'openid-urls-desc' => 'OpenID powiązane z Twoim kontem:',
+	'openid-urls-action' => 'Akcja',
+	'openid-urls-registration' => 'Moment rejestracji',
+	'openid-urls-delete' => 'Usuń',
+	'openid-add-url' => 'Dodaj nowe OpenID',
+	'openid-login-or-create-account' => 'Zaloguj się lub utwórz nowe konto',
+	'openid-provider-label-openid' => 'Wprowadź adres OpenID',
+	'openid-provider-label-google' => 'Zaloguj się korzystając z konta Google',
+	'openid-provider-label-yahoo' => 'Zaloguj się korzystając z konta Yahoo',
+	'openid-provider-label-aol' => 'Wprowadź nazwę wyświetlaną AOL',
+	'openid-provider-label-other-username' => 'Wprowadź swoją nazwę użytkownika $1',
+	'specialpages-group-openid' => 'OpenID – strony diagnostyczne i statusu',
+	'right-openid-dashboard-access' => 'Standardowy dostęp do zarządzania OpenID',
+	'right-openid-dashboard-admin' => 'Administracyjny dostęp do zarządzania OpenID',
+	'openid-dashboard-title' => 'Zarządzanie OpenID',
+	'openid-dashboard-title-admin' => 'Zarządzanie OpenID (administrator)',
+	'openid-dashboard-introduction' => 'Bieżące ustawienia rozszerzenia OpenID ([$1 pomoc])',
+	'openid-dashboard-number-openid-users' => 'Liczba użytkowników z OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Wszystkich OpenID',
+	'openid-dashboard-number-users-without-openid' => 'Liczba użytkowników bez OpenID',
 );
 
+/** Piedmontese (Piemontèis)
+ * @author Borichèt
+ * @author Dragonòt
+ */
+$messages['pms'] = array(
+	'openid-desc' => "Intra ant la wiki con [//openid.net/ OpenID], e intra ant j'àutri sit dl'aragnà OpenID con un cont utent wiki",
+	'openidlogin' => 'Intré ant ël sistema con OpenID',
+	'openidserver' => 'servent OpenID',
+	'openidxrds' => 'Archivi Yadis',
+	'openidconvert' => 'Convertidor OpenID',
+	'openiderror' => 'Eror ëd verìfica',
+	'openiderrortext' => "A l'é capitaje n'eror an verificand l'adrëssa OpenID.",
+	'openidconfigerror' => "Eror ëd configurassion d'OpenID",
+	'openidconfigerrortext' => "La configurassion ëd memorisassion d'OpenID për sta wiki-sì a l'é pa bon-a.
+Për piasì ch'a consulta n'[[Special:ListUsers/sysop|aministrator]].",
+	'openidpermission' => "Eror ëd përmess d'OpenID",
+	'openidpermissiontext' => "L'OpenID ch'a l'ha dàit a peul pa intré an sto servent-sì.",
+	'openidcancel' => 'Verìfica scancelà',
+	'openidcanceltext' => "La verìfica dl'adrëssa OpenID a l'é stàita scancelà.",
+	'openidfailure' => 'verìfica falìa',
+	'openidfailuretext' => 'Verìfica ëd l\'adrëssa OpenID falìa. Messagi d\'eror: "$1"',
+	'openidsuccess' => 'Verìfica andàita bin',
+	'openidsuccesstext' => "Verìfica dl'adrëssa OpenID andàita bin.",
+	'openidusernameprefix' => 'Utent OpenID',
+	'openidserverlogininstructions' => "Ch'a anserissa soa ciav sì-sota për intré an $3 com utent $2 (pàgina utent $1).",
+	'openidtrustinstructions' => "Contròla s'it veule condivide dat con $1.",
+	'openidallowtrust' => 'A përmët a $1 ëd fidesse dë sto cont utent-sì.',
+	'openidnopolicy' => "Ël sit a l'ha pa spessificà dle régole ëd riservatëssa.",
+	'openidpolicy' => 'Contròla le <a target="_new" href="$1">régole ëd riservatëssa</a> për savèjne ëd pi.',
+	'openidoptional' => 'Opsional',
+	'openidrequired' => 'Obligatòri',
+	'openidnickname' => 'Stranòm',
+	'openidfullname' => 'Nòm complet',
+	'openidemail' => 'Adrëssa ëd pòsta eletrònica',
+	'openidlanguage' => 'Lenga',
+	'openidtimezone' => 'Fus orari',
+	'openidchooselegend' => 'Sërnùa dël nòm utent',
+	'openidchooseinstructions' => "Tùit j'utent a l'han dabzògn ëd në stranòm,
+a peul sern-ne un da j'opsion sì-sota.",
+	'openidchoosenick' => 'Tò stranòm ($1)',
+	'openidchoosefull' => 'Tò nòm complet ($1)',
+	'openidchooseurl' => 'Un nòm sërnù da tò OpenID ($1)',
+	'openidchooseauto' => 'Un nòm generà da sol ($1)',
+	'openidchoosemanual' => 'Un nòm sërnù da ti:',
+	'openidchooseexisting' => 'Un cont esistent an sta wiki-sì',
+	'openidchooseusername' => 'nòm utent:',
+	'openidchoosepassword' => 'Ciav:',
+	'openidconvertinstructions' => "Sta forma-sì a-j përmët ëd cangé sò cont utent për dovré n'adrëssa OpenID o për gionté d'adrësse OpenID",
+	'openidconvertoraddmoreids' => "Convertì a OpenID o gionté n'àutra adrëssa OpenID",
+	'openidconvertsuccess' => 'Convertì da bin a OpenID',
+	'openidconvertsuccesstext' => "A l'ha convertì da bin sò OpenID a $1",
+	'openidconvertyourstext' => "Cost-sì a l'é già sò OpenID.",
+	'openidconvertothertext' => "Cost-sì a l'é l'OpenID ëd cheidun d'àutri.",
+	'openidalreadyloggedin' => "'''A l'é già intrà ant ël sistema, $1!'''
+
+S'a veul dovré OpenID për intré ant l'avnì, a peul [[Special:OpenIDConvert|convertì sò cont për dovré OpenID]].",
+	'openidnousername' => 'Gnun nòm utent spessificà.',
+	'openidbadusername' => 'Nòm utent spessificà pa bon.',
+	'openidautosubmit' => 'Sta pàgina-sì a conten un formolari che a dovrìa esse spedì automaticament se chiel a l\'ha JavaScript abilità. 
+Dësnò, ch\'a preuva ël boton "Continua".',
+	'openidclientonlytext' => "A peul pa dovré dij cont da sta wiki-sì com OpenID dzora a n'àutr sit.",
+	'openidloginlabel' => 'Adrëssa OpenID',
+	'openidlogininstructions' => "{{SITENAME}} a sosten lë stàndard [//openid.net/ OpenID] për na signadura sola antra sit ëd l'aragnà. OpenID a-j përmët ëd rintré an vàire sit diferent an sl'aragnà sensa dovré na ciav diferenta për mincadun. (Ch'a lesa [//en.wikipedia.org/wiki/OpenID Artìcol OpenID ëd Wikipedia] për savèjne ëd pi).
+A-i son già tanti [//openid.net/get/ fornitor d'OpenID], e a podrìa già avèj un cont abilità a OpenID dzora a n'àutr servissi.",
+	'openidupdateuserinfo' => 'Modìfica mie anformassion përsonaj:',
+	'openiddelete' => 'Scancela OpenID',
+	'openiddelete-text' => 'An sgnacand ël boton "{{int:openiddelete-button}}", it gavras l\'OpenID $1 da tò cont.
+It saras pa pi bon a intré con sto OpenID-sì.',
+	'openiddelete-button' => 'Conferma',
+	'openiddeleteerrornopassword' => "A peul pa scancelé tùit ij sò OpenID përchè tò sont a l'ha pa 'd ciav.
+A podrà pa intré ant ël sistema sensa n'OpenID.",
+	'openiddeleteerroropenidonly' => "A peul pa scancelé tùit ij sò OpenID përchè a peule intré intré ant ël sistema mach con OpenID.
+A podrà pa intré sensa n'OpenID.",
+	'openiddelete-sucess' => "L'OpenID a l'é stàit gavà da bin da tò cont.",
+	'openiddelete-error' => "A l'é capitaje n'eror an gavand l'OpenID da tò cont.",
+	'openid-prefstext' => 'Preferense [//openid.net/ OpenID]',
+	'openid-pref-hide' => "Stërmé soa adrëssa OpenID dzora a soa pàgina utent, s'a intra con openID.",
+	'openid-pref-update-userinfo-on-login' => "Modifiché j'anformassion përsonaj sì-sota OpenID minca vira ch'i intro:",
+	'openid-urls-desc' => 'OpenID associà con tò cont:',
+	'openid-urls-action' => 'Assion',
+	'openid-urls-delete' => 'Scancela',
+	'openid-add-url' => 'Gionta un neuv OpenID',
+	'openid-login-or-create-account' => 'Intra o Crea un Neuv Cont',
+	'openid-provider-label-openid' => "Ch'a anserissa soa adrëssa OpenID",
+	'openid-provider-label-google' => 'Intra an dovrand tò cont Google',
+	'openid-provider-label-yahoo' => 'Intra an dovrand tò cont Yahoo',
+	'openid-provider-label-aol' => "Ch'a anserissa sò nòm AOL",
+	'openid-provider-label-other-username' => "Ch'a anserissa sò nòm utent $1",
+);
+
 /** Pashto (پښتو)
  * @author Ahmed-Najib-Biabani-Ibrahimkhel
  */
 $messages['ps'] = array(
+	'openidoptional' => 'ستاسې په خوښه',
+	'openidrequired' => 'اړين مالومات',
 	'openidnickname' => 'کورنی نوم',
 	'openidfullname' => 'بشپړ نوم',
 	'openidemail' => 'برېښليک پته',
 	'openidlanguage' => 'ژبه',
-	'openidchooseinstructions' => 'ټولو کارونکيو ته د يوه کورني نوم اړتيا شته؛
-تاسو يو نوم د لاندينيو خوښو نه ځانته ټاکلی شی.',
-	'openidchoosefull' => 'ستاسو بشپړ نوم ($1)',
-	'openidchoosemanual' => 'ستاسو د خوښې يو نوم:',
+	'openidtimezone' => 'د وخت سيمه',
+	'openidchooselegend' => 'د کارن-نوم د ټاکلو خوښه',
+	'openidchooseinstructions' => 'ټولو کارنانو ته د يوه کورني نوم اړتيا شته؛
+تاسې يو نوم د لاندينيو خوښنو نه ځانته ټاکلی شی.',
+	'openidchoosenick' => 'ستاسې کورنی نوم ($1)',
+	'openidchoosefull' => 'ستاسې بشپړ نوم ($1)',
+	'openidchoosemanual' => 'ستاسې د خوښې يو نوم:',
+	'openidchooseusername' => 'کارن-نوم:',
 	'openidchoosepassword' => 'پټنوم:',
 	'openidnousername' => 'هېڅ يو کارن-نوم نه دی ځانګړی شوی.',
 	'openidbadusername' => 'يو ناسم کارن-نوم مو ځانګړی کړی.',
+	'openiddelete-button' => 'تاييد',
+	'openid-urls-action' => 'چاره',
+	'openid-urls-delete' => 'ړنګول',
+	'openid-login-or-create-account' => 'ننوتل او يا نوی ګڼون جوړول',
+	'openid-provider-label-google' => 'د ګووګل د ګڼون په مرسته ننوتل',
+	'openid-provider-label-yahoo' => 'د ياهو د ګڼون په مرسته ننوتل',
+	'openid-provider-label-other-username' => 'تاسې خپل $1 کارن-نوم وليکۍ',
 );
 
 /** Portuguese (Português)
+ * @author Giro720
+ * @author Hamilton Abreu
  * @author Lijealso
  * @author Malafaya
+ * @author SandroHc
+ * @author Waldir
  */
 $messages['pt'] = array(
-	'openid-desc' => 'Autentique-se no wiki com um [http://openid.net/ OpenID], e autentique-se noutros sítios que usem OpenID com uma conta de utilizador wiki',
-	'openidlogin' => 'Autenticação com OpenID',
-	'openidfinish' => 'Terminar autenticação OpenID',
+	'openid-desc' => 'Autentique-se na wiki com um [//openid.net/ OpenID] e autentique-se noutros sites que usem OpenID com uma conta de utilizador wiki',
+	'openidlogin' => 'Entrar ou criar conta com OpenID',
 	'openidserver' => 'Servidor OpenID',
 	'openidxrds' => 'Ficheiro Yadis',
 	'openidconvert' => 'Conversor de OpenID',
 	'openiderror' => 'Erro de verificação',
 	'openiderrortext' => 'Ocorreu um erro durante a verificação da URL OpenID.',
 	'openidconfigerror' => 'Erro de Configuração do OpenID',
-	'openidconfigerrortext' => 'A configuração de armazenamento OpenID para este wiki é inválida.
-Por favor, consulte um [[Special:ListUsers/sysop|administrator]].',
+	'openidconfigerrortext' => 'A configuração de armazenamento OpenID para esta wiki é inválida.
+Por favor, consulte um [[Special:ListUsers/sysop|administrador]].',
 	'openidpermission' => 'Erro de permissões OpenID',
 	'openidpermissiontext' => 'O OpenID fornecido não está autorizado a autenticar-se neste servidor.',
 	'openidcancel' => 'Verificação cancelada',
@@ -2689,64 +4861,102 @@
 	'openidfailure' => 'Verificação falhou',
 	'openidfailuretext' => 'A verificação da URL OpenID falhou. Mensagem de erro: "$1"',
 	'openidsuccess' => 'Verificação com sucesso',
-	'openidsuccesstext' => 'A verificação da URL OpenID foi bem sucedida.',
+	'openidsuccesstext' => "'''Verificado e autenticado como $1'''.
+
+O seu OpenID é $2.
+
+Este OpenID pode ser gerido no separador do [[Special:Preferences#prefsection-openid|OpenID]] das tuas preferências.<br />Uma senha da conta opcional pode ser adicionada no teu [[Special:Preferences#prefsection-personal|Perfil do utilizador]].",
 	'openidusernameprefix' => 'UtilizadorOpenID',
-	'openidserverlogininstructions' => 'Introduza a sua palavra-chave abaixo para se autenticar em $3 como utilizador $2 (página de utilizador $1).',
+	'openidserverlogininstructions' => '$3 pede que introduza a palavra-chave do seu utilizador $2 página $1 (a URL do seu OpenID)',
 	'openidtrustinstructions' => 'Verifique se pretender partilhar dados com $1.',
 	'openidallowtrust' => 'Permitir que $1 confie nesta conta de utilizador.',
-	'openidnopolicy' => 'O sítio não especificou uma política de privacidade.',
+	'openidnopolicy' => 'O site não especificou uma política de privacidade.',
 	'openidpolicy' => 'Consulte a <a target="_new" href="$1">política de privacidade</a> para mais informações.',
 	'openidoptional' => 'Opcional',
 	'openidrequired' => 'Requerido',
 	'openidnickname' => 'Alcunha',
 	'openidfullname' => 'Nome completo',
-	'openidemail' => 'Endereço de e-mail',
+	'openidemail' => 'Correio electrónico',
 	'openidlanguage' => 'Língua',
-	'openidnotavailable' => 'A sua alcunha preferida ($1) já está em uso por outro utilizador.',
-	'openidnotprovided' => 'O seu servidor OpenID não forneceu uma alcunha (ou porque não pôde, ou porque você lhe disse para não o fazer).',
+	'openidtimezone' => 'Fuso horário',
+	'openidchooselegend' => 'Escolha do nome de utilizador e da conta',
 	'openidchooseinstructions' => 'Todos os utilizadores precisam de uma alcunha;
 pode escolher uma das opções abaixo.',
+	'openidchoosenick' => 'A sua alcunha ($1)',
 	'openidchoosefull' => 'O seu nome completo ($1)',
 	'openidchooseurl' => 'Um nome escolhido a partir do seu OpenID ($1)',
 	'openidchooseauto' => 'Um nome gerado automaticamente ($1)',
 	'openidchoosemanual' => 'Um nome à sua escolha:',
-	'openidchooseexisting' => 'Uma conta existente neste wiki:',
-	'openidchoosepassword' => 'palavra-chave:',
-	'openidconvertinstructions' => 'Este formulário permite-lhe alterar a sua conta de utilizador para usar uma URL OpenID.',
+	'openidchooseexisting' => 'Uma conta existente nesta wiki',
+	'openidchooseusername' => 'Nome de utilizador:',
+	'openidchoosepassword' => 'Palavra-chave:',
+	'openidconvertinstructions' => 'Este formulário permite-lhe alterar a sua conta de utilizador para usar uma URL OpenID ou adicionar mais URLs OpenID.',
+	'openidconvertoraddmoreids' => 'Converter para OpenID ou adicionar outra URL OpenID',
 	'openidconvertsuccess' => 'Convertido para OpenID com sucesso',
-	'openidconvertsuccesstext' => 'Você converteu com sucesso o seu OpenID para $1.',
+	'openidconvertsuccesstext' => 'Converteu com sucesso o seu OpenID para $1.',
 	'openidconvertyourstext' => 'Esse já é o seu OpenID.',
 	'openidconvertothertext' => 'Esse é o OpenID de outra pessoa.',
-	'openidalreadyloggedin' => "'''Você já se encontra autenticado, $1!'''
+	'openidalreadyloggedin' => 'Já está autenticado.',
+	'openidalreadyloggedintext' => "'''Já está autenticado, $1!'''
 
-Se de futuro pretender usar OpenID para se autenticar, pode [[Special:OpenIDConvert|converter a sua conta para usar OpenID]].",
+Pode gerir (ver, eliminar, etc.) OpenIDs no separador [[Special:Preferences#prefsection-openid|OpenID]] das suas preferências.",
 	'openidnousername' => 'Nenhum nome de utilizador especificado.',
 	'openidbadusername' => 'Nome de utilizador especificado inválido.',
 	'openidautosubmit' => 'Esta página inclui um formulário que deverá ser automaticamente submetido se tiver JavaScript activado.
-Caso contrário, utilize o botão \\"Continuar\\".',
-	'openidclientonlytext' => 'Você pode usar contas deste wiki como OpenIDs noutro sítio.',
+Caso contrário, utilize o botão "Continue" (Continuar).',
+	'openidclientonlytext' => 'Pode usar contas desta wiki como OpenIDs noutro site.',
 	'openidloginlabel' => 'URL do OpenID',
-	'openidlogininstructions' => '{{SITENAME}} suporta o padrão [http://openid.net/ OpenID] para autenticação única entre sítios Web.
-O OpenID permite-lhe autenticar-se em diversos sítios Web sem usar uma palavra-chave diferente em cada um.
-(Veja [http://pt.wikipedia.org/wiki/OpenID o artigo OpenID na Wikipédia] para mais informação.)
-
-Se já possui uma conta em {{SITENAME}}, pode [[Special:UserLogin|autenticar-se]] com o seu nome de utilizador e palavra-chave como habitualmente.
-Para utilizar o OpenID no futuro, pode [[Special:OpenIDConvert|converter a sua conta em OpenID]] após autenticar-se normalmente.
-
-Existems vários [http://wiki.openid.net/Public_OpenID_providers fornecederes de OpenID], e você poderá já ter uma conta ativada para OpenID noutro serviço.',
-	'openidupdateuserinfo' => 'Atualizar a minha informação pessoal',
-	'openid-prefstext' => 'Preferências do [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Esconder o seu <a href="http://openid.net/">OpenID</a> na sua página de utilizador, se se autenticar com OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Atualizar a minha informação a partir da minha "persona" OpenID cada vez que me autentico',
+	'openidlogininstructions' => 'A {{SITENAME}} suporta o padrão [//openid.net/ OpenID] para autenticação unificada entre sites na internet.
+O OpenID permite-lhe autenticar-se em vários sites sem usar uma palavra-chave diferente para cada um
+(consulte o [//pt.wikipedia.org/wiki/OpenID artigo OpenID da Wikipédia] para mais informações). Existem vários [//openid.net/get fornecederes de OpenID] e você pode já ter uma conta activada para OpenID noutro serviço.',
+	'openidlogininstructions-openidloginonly' => "A {{SITENAME}} ''só'' permite que se autentique com um OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Se já tem uma conta na {{SITENAME}}, pode [[Special:UserLogin|entrar]] com o seu nome de utilizador e palavra-chave, como normalmente.
+Para usar o OpenID no futuro, pode [[Special:OpenIDConvert|converter a sua conta para OpenID]] depois de ter entrado normalmente.',
+	'openidupdateuserinfo' => 'Actualizar a minha informação pessoal:',
+	'openiddelete' => 'Eliminar OpenID',
+	'openiddelete-text' => 'Ao clicar o botão "{{int:openiddelete-button}}", irá eliminar o OpenID $1 da sua conta.
+Não poderá voltar a autenticar-se com este OpenID.',
+	'openiddelete-button' => 'Confirmar',
+	'openiddeleteerrornopassword' => 'Não pode apagar todos os seus OpenID porque a sua conta não tem palavra-chave.
+Sem um OpenID não se poderia autenticar.',
+	'openiddeleteerroropenidonly' => 'Não pode apagar todos os seus OpenID, porque só se pode autenticar usando um OpenID.
+Sem um OpenID não se poderia autenticar.',
+	'openiddelete-sucess' => 'O OpenID foi removido da sua conta com sucesso.',
+	'openiddelete-error' => 'Ocorreu um erro ao remover o OpenID da sua conta.',
+	'openid-openids-were-not-merged' => 'Os OpenIDs não foram fundidos ao fundir as contas.',
+	'openid-prefstext' => 'Preferências do [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Esconder o seu OpenID na sua página de utilizador, se se autenticar com OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Actualizar a seguinte informação a partir do meu OpenID de cada vez que me autentico:',
+	'openid-urls-desc' => 'OpenIDs associados à sua conta:',
+	'openid-urls-action' => 'Acção',
+	'openid-urls-delete' => 'Apagar',
+	'openid-add-url' => 'Adicionar novo OpenID',
+	'openid-login-or-create-account' => 'Entrar ou criar uma conta nova',
+	'openid-provider-label-openid' => 'Introduza a sua URL OpenID',
+	'openid-provider-label-google' => 'Entrar usando a sua conta do Google',
+	'openid-provider-label-yahoo' => 'Entrar usando a sua conta do Yahoo',
+	'openid-provider-label-aol' => 'Introduza o seu nome de utilizador AOL',
+	'openid-provider-label-other-username' => 'Introduza o seu nome de utilizador $1',
+	'specialpages-group-openid' => 'Páginas de serviço e informação do estado do OpenID',
+	'right-openid-dashboard-access' => 'Acesso normal ao painel do OpenID',
+	'right-openid-dashboard-admin' => 'Acesso de administrador ao painel do OpenID',
+	'openid-dashboard-title' => 'Painel do OpenID',
+	'openid-dashboard-title-admin' => 'Painel do OpenID (administrador)',
+	'openid-dashboard-introduction' => 'As configurações actuais da extensão OpenID ([$1 ajuda])',
+	'openid-dashboard-number-openid-users' => 'Número de utilizadores com OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Número de OpenIDs (total)',
+	'openid-dashboard-number-users-without-openid' => 'Número de utilizadores sem OpenID',
 );
 
 /** Brazilian Portuguese (Português do Brasil)
+ * @author Danielsouzat
  * @author Eduardo.mps
+ * @author Hamilton Abreu
+ * @author ZehRique
  */
 $messages['pt-br'] = array(
-	'openid-desc' => 'Autentique-se no wiki com um [http://openid.net/ OpenID], e autentique-se em outros sítios que usem OpenID com uma conta de utilizador wiki',
+	'openid-desc' => 'Autentique-se no wiki com um [//openid.net/ OpenID], e autentique-se em outros sítios que usem OpenID com uma conta de utilizador wiki',
 	'openidlogin' => 'Autenticação com OpenID',
-	'openidfinish' => 'Terminar autenticação OpenID',
 	'openidserver' => 'Servidor OpenID',
 	'openidxrds' => 'Arquivo Yadis',
 	'openidconvert' => 'Conversor de OpenID',
@@ -2775,17 +4985,20 @@
 	'openidfullname' => 'Nome completo',
 	'openidemail' => 'Endereço de e-mail',
 	'openidlanguage' => 'Língua',
-	'openidnotavailable' => 'O seu apelido preferido ($1) já está em uso por outro utilizador.',
-	'openidnotprovided' => 'O seu servidor OpenID não forneceu um apelido(ou porque não pôde, ou porque você lhe disse para não o fazer).',
+	'openidtimezone' => 'Fuso horário',
+	'openidchooselegend' => 'Escolha do nome de usuário',
 	'openidchooseinstructions' => 'Todos os utilizadores precisam de um apelido;
 pode escolher uma das opções abaixo.',
+	'openidchoosenick' => 'Seu apelido ($1)',
 	'openidchoosefull' => 'O seu nome completo ($1)',
 	'openidchooseurl' => 'Um nome escolhido a partir do seu OpenID ($1)',
 	'openidchooseauto' => 'Um nome gerado automaticamente ($1)',
 	'openidchoosemanual' => 'Um nome à sua escolha:',
-	'openidchooseexisting' => 'Uma conta existente neste wiki:',
-	'openidchoosepassword' => 'palavra-chave:',
-	'openidconvertinstructions' => 'Este formulário lhe permite alterar a sua conta de utilizador para usar uma URL OpenID.',
+	'openidchooseexisting' => 'Uma conta existente nesta wiki',
+	'openidchooseusername' => 'Nome de usuário:',
+	'openidchoosepassword' => 'Senha:',
+	'openidconvertinstructions' => 'Este formulário lhe permite alterar sua conta de usuário para usar uma URL OpenID ou adicionar mais URLs OpenID.',
+	'openidconvertoraddmoreids' => 'Converter para OpenID ou adicionar outra URL OpenID',
 	'openidconvertsuccess' => 'Convertido para OpenID com sucesso',
 	'openidconvertsuccesstext' => 'Você converteu com sucesso o seu OpenID para $1.',
 	'openidconvertyourstext' => 'Esse já é o seu OpenID.',
@@ -2796,36 +5009,117 @@
 	'openidnousername' => 'Nenhum nome de utilizador especificado.',
 	'openidbadusername' => 'Nome de utilizador especificado inválido.',
 	'openidautosubmit' => 'Esta página inclui um formulário que deverá ser automaticamente submetido se tiver JavaScript ativado.
-Caso contrário, utilize o botão \\"Continuar\\".',
+Caso contrário, utilize o botão "Continue" (Continuar).',
 	'openidclientonlytext' => 'Você pode usar contas deste wiki como OpenIDs em outro sítio.',
 	'openidloginlabel' => 'URL do OpenID',
-	'openidlogininstructions' => '{{SITENAME}} suporta o padrão [http://openid.net/ OpenID] para autenticação única entre sítios Web.
+	'openidlogininstructions' => '{{SITENAME}} suporta o padrão [//openid.net/ OpenID] para autenticação única entre sítios Web.
 O OpenID lhe permite autenticar-se em diversos sítios Web sem usar uma palavra-chave diferente em cada um.
-(Veja [http://pt.wikipedia.org/wiki/OpenID o artigo OpenID na Wikipédia] para mais informação.)
+(Veja [//pt.wikipedia.org/wiki/OpenID o artigo OpenID na Wikipédia] para mais informação.)
 
 Se já possui uma conta em {{SITENAME}}, pode [[Special:UserLogin|autenticar-se]] com o seu nome de utilizador e palavra-chave como habitualmente.
 Para utilizar o OpenID no futuro, pode [[Special:OpenIDConvert|converter a sua conta em OpenID]] após autenticar-se normalmente.
 
 Existem vários [http://wiki.openid.net/Public_OpenID_providers fornecederes de OpenID], e você poderá já ter uma conta ativada para OpenID em outro serviço.',
-	'openidupdateuserinfo' => 'Atualizar a minha informação pessoal',
-	'openid-prefstext' => 'Preferências do [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Esconder o seu <a href="http://openid.net/">OpenID</a> na sua página de utilizador, caso se autentique com OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Atualizar a minha informação a partir da minha "persona" OpenID cada vez que me autentico',
+	'openidupdateuserinfo' => 'Atualizar minhas informações pessoais:',
+	'openiddelete' => 'Excluir OpenID',
+	'openiddelete-text' => 'Ao clicar no botão "{{int:openiddelete-button}}", você removerá o OpenID $1 de sua conta.
+Você não poderá mais efetuar autenticação com este OpenID.',
+	'openiddelete-button' => 'Confirmar',
+	'openiddeleteerrornopassword' => 'Você não pode apagar todos os seus OpenID porque a sua conta não tem uma palavra-chave.
+Você ficaria impossibilitado de entrar na sua conta sem um OpenID.',
+	'openiddeleteerroropenidonly' => 'Você não pode apagar todos os seus OpenID porque só pode entrar com OpenID.
+Você não poderia entrar sem um OpenID.',
+	'openiddelete-sucess' => 'O OpenID foi removido de sua conta com sucesso.',
+	'openiddelete-error' => 'Ocorreu um erro enquanto removia o OpenID de sua conta.',
+	'openid-prefstext' => 'Preferências do [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Esconder o seu OpenID na sua página de utilizador, caso se autentique com OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Atualizar a seguinte informação a partir da minha "persona" OpenID cada vez que me autentico',
+	'openid-urls-desc' => 'OpenIDs associadas à sua conta:',
+	'openid-urls-action' => 'Ação',
+	'openid-urls-delete' => 'Excluir',
+	'openid-add-url' => 'Adicionar novo OpenID',
+	'openid-login-or-create-account' => 'Entrar ou Criar Nova Conta',
+	'openid-provider-label-openid' => 'Introduza a sua URL OpenID',
+	'openid-provider-label-google' => 'Entrar usando a sua conta do Google',
+	'openid-provider-label-yahoo' => 'Entrar usando a sua conta do Yahoo',
+	'openid-provider-label-aol' => 'Digite seu nome de utilizador AOL',
+	'openid-provider-label-other-username' => 'Introduza o seu nome de utilizador $1',
 );
 
 /** Romanian (Română)
+ * @author Firilacroco
  * @author KlaudiuMihaila
+ * @author Memo18
+ * @author Minisarm
+ * @author Misterr
+ * @author Stelistcristi
  */
 $messages['ro'] = array(
+	'openid-desc' => 'Autentificați-vă pe acest wiki folosind un [//openid.net/ OpenID] și conectați-vă la alte site-uri web OpenID cu un cont de utilizator wiki',
+	'openidlogin' => 'Autentificare / creare cont cu OpenID',
+	'openidserver' => 'Server OpenID',
+	'openidxrds' => 'Fișier Yadis',
+	'openidconvert' => 'Convertor OpenID',
+	'openiderror' => 'Eroare de verificare',
+	'openiderrortext' => 'A avut loc o eroare în timpul verificării URL-ului OpenID',
+	'openidconfigerror' => 'Eroare de configurare OpenID',
+	'openidconfigerrortext' => 'Configurarea stocării OpenID pentru acest wiki este invalidă.
+Vă rugăm să contactați un [[Special:ListUsers/sysop|administrator]].',
+	'openidpermission' => 'Eroare de permisiune OpenID',
+	'openidpermissiontext' => 'OpenID-ul furnizat nu poate fi folosit pe acest server pentru autentificare.',
 	'openidcancel' => 'Verificare anulată',
-	'openidfailure' => 'Verificare eşuată',
+	'openidcanceltext' => 'Verificarea URL-ului OpenID a fost anulată.',
+	'openidfailure' => 'Verificare eșuată',
+	'openidfailuretext' => 'Verificarea URL-ului OpenID a eșuat. Mesaj de eroare: "$1"',
 	'openidsuccess' => 'Verificare cu succes',
-	'openidoptional' => 'Opţional',
+	'openidsuccesstext' => "'''Verificare finalizată cu succes și autentificare ca utilizator $1'''.
+
+OpenID-ul dumneavoastră este $2 .
+
+Acesta și alte OpenID-uri opționale pot fi administrate în [[Special:Preferences#prefsection-openid|fila OpenID]] din cadrul preferințelor dumneavoastră.<br />
+O parolă opțională a contului poate fi adăugată în secțiunea [[Special:Preferences#prefsection-personal|Informații personale]].",
+	'openidusernameprefix' => 'Utilizator OpenID',
+	'openidserverlogininstructions' => '$3 vă solicită să introduceți parola pentru pagina $2 dumneavoastră de utilizator $1 (URL OpenID)',
+	'openidtrustinstructions' => 'Verificați dacă doriți să partajați datele cu $1.',
+	'openidallowtrust' => 'Permite lui $1 să aibă încredere în acest cont de utilizator.',
+	'openidnopolicy' => 'Site-ul nu a specificat politica de confidențialitate.',
+	'openidpolicy' => 'Verificați <a target="_new" href="$1">politica de confidențialitate</a> pentru mai multe informații.',
+	'openidoptional' => 'Opțional',
+	'openidrequired' => 'Necesar',
+	'openidnickname' => 'Poreclă',
+	'openidfullname' => 'Nume complet:',
 	'openidemail' => 'Adresă e-mail',
 	'openidlanguage' => 'Limbă',
+	'openidtimezone' => 'Fus orar',
+	'openidchooselegend' => 'Alegerea numelui de utilizator și a contului',
+	'openidchooseinstructions' => 'Toți utilizatorii necesită o poreclă;
+se poate alege una din opțiunile de mai jos.',
+	'openidchoosenick' => 'Porecla dvs. ($1)',
+	'openidchoosefull' => 'Numele întreg ($1)',
+	'openidchooseurl' => 'Un nume ales din OpenID-ul dvs. ($1)',
+	'openidchooseauto' => 'Un nume generat automat ($1)',
 	'openidchoosemanual' => 'Un nume la alegere:',
-	'openidchooseexisting' => 'Un cont existent pe acest wiki:',
-	'openidchoosepassword' => 'parolă:',
+	'openidchooseexisting' => 'Un cont existent pe acest wiki',
+	'openidchooseusername' => 'Nume de utilizator:',
+	'openidchoosepassword' => 'Parolă:',
+	'openidconvertsuccess' => 'Convertit cu succes la OpenID',
+	'openidconvertsuccesstext' => 'V-ați convertit cu succes contul OpenID la $1.',
+	'openidconvertyourstext' => 'Acesta este deja OpenID-ul dumneavoastră.',
+	'openidconvertothertext' => 'Acesta este OpenID-ul altcuiva.',
+	'openidalreadyloggedin' => 'Sunteți deja autentificat.',
+	'openidnousername' => 'Nici un nume de utilizator specificat.',
+	'openidbadusername' => 'Nume de utilizator specificat greșit.',
+	'openidloginlabel' => 'URL OpenID',
+	'openidupdateuserinfo' => 'Actualizează informaţiile mele personale:',
+	'openiddelete' => 'Şterge OpenID',
+	'openiddelete-button' => 'Confirmă',
+	'openid-urls-action' => 'Acțiune',
+	'openid-urls-delete' => 'Şterge',
+	'openid-add-url' => 'Adaugă un nou OpenID',
+	'openid-login-or-create-account' => 'Autentificați-vă sau creați-vă un nou cont',
+	'openid-provider-label-google' => 'Autentificare folosind contul Google',
+	'openid-provider-label-yahoo' => 'Autentificare folosind contul Yahoo',
+	'openid-provider-label-other-username' => 'Introduceți numele dumneavoastră de $1 utilizator.',
 );
 
 /** Tarandíne (Tarandíne)
@@ -2835,19 +5129,43 @@
 	'openidxrds' => 'File Yadis',
 	'openidoptional' => 'Opzionele',
 	'openidrequired' => 'Richieste',
+	'openidnickname' => 'Soprannome',
+	'openidfullname' => 'Nome comblete',
 	'openidemail' => 'Indirizze e-mail',
 	'openidlanguage' => 'Lènghe',
+	'openidtimezone' => "Orarie d'a zone",
+	'openidchoosefull' => "'U nome comblete tue ($1)",
+	'openidchoosemanual' => "Scacchie 'nu nome:",
+	'openidchoosepassword' => 'Passuord:',
+	'openidnousername' => 'Nisciune nome utende specificate.',
+	'openidbadusername' => "'U nome utende specificate non g'è valide.",
+	'openidloginlabel' => 'URL de OpenID',
+	'openiddelete-button' => 'Conferme',
+	'openid-prefstext' => 'Preferenze [//openid.net/ OpenID]',
+	'openid-urls-action' => 'Azione',
+	'openid-urls-delete' => 'Scangille',
+	'openid-login-or-create-account' => "Trase o ccreje 'nu cunde utende nuève",
+	'openid-provider-label-openid' => "Mitte l'URL toje de OpenID",
+	'openid-provider-label-google' => "Tràse ausanne 'u cunde utende de Google",
+	'openid-provider-label-yahoo' => "Tràse ausanne 'u cunde utende de Yahoo",
+	'openid-provider-label-aol' => "Mitte 'u tue nome utende AOL",
+	'openid-provider-label-other-username' => "Mitte 'u tue $1 nome utende",
+	'openid-dashboard-title' => 'Cruscotte de OpenID',
+	'openid-dashboard-title-admin' => 'Cruscotte de OpenID (amministratore)',
 );
 
 /** Russian (Русский)
+ * @author Adata80
  * @author Aleksandrit
  * @author Ferrer
+ * @author Kaganer
+ * @author Lockal
+ * @author Putnik
  * @author Александр Сигачёв
  */
 $messages['ru'] = array(
-	'openid-desc' => 'Вход в вики с помощью [http://openid.net/ OpenID], а также вход на другие сайты поддерживающие OpenID с помощью учётной записи в вики',
-	'openidlogin' => 'Вход с помощью OpenID',
-	'openidfinish' => 'Завершить вход OpenID',
+	'openid-desc' => 'Вход в вики с помощью [//openid.net/ OpenID], а также вход на другие сайты поддерживающие OpenID с помощью учётной записи в вики',
+	'openidlogin' => 'Войти / создать учетную запись с OpenID',
 	'openidserver' => 'Сервер OpenID',
 	'openidxrds' => 'Файл Yadis',
 	'openidconvert' => 'Преобразователь OpenID',
@@ -2865,7 +5183,7 @@
 	'openidsuccess' => 'Проверка прошла успешно',
 	'openidsuccesstext' => 'Проверка адреса OpenID прошла успешно.',
 	'openidusernameprefix' => 'УчастникOpenID',
-	'openidserverlogininstructions' => 'Введите ниже ваш пароль, чтобы войти на $3 как пользователь $2 (личная страница $1).',
+	'openidserverlogininstructions' => 'Введите ниже свой пароль, чтобы войти на $3 как участник $2 (личная страница $1 — это ваш OpenID URL).',
 	'openidtrustinstructions' => 'Отметьте, если вы хотите предоставить доступ к данным для $1.',
 	'openidallowtrust' => 'Разрешить $1 доверять этой учётной записи.',
 	'openidnopolicy' => 'Сайт не указал политику конфиденциальности.',
@@ -2876,51 +5194,83 @@
 	'openidfullname' => 'Полное имя',
 	'openidemail' => 'Адрес эл. почты',
 	'openidlanguage' => 'Язык',
-	'openidnotavailable' => 'Указанный вами псевдоним ($1) уже используется другим участником.',
-	'openidnotprovided' => 'Ваш сервер OpenID не предоставил псевдоним (либо потому, что он не может, либо потому, что вы указали не делать этого)',
+	'openidtimezone' => 'Часовой пояс',
+	'openidchooselegend' => 'Выбор имени пользователя',
 	'openidchooseinstructions' => 'Каждый участник должен иметь псевдоним;
 вы можете выбрать один из представленных ниже.',
+	'openidchoosenick' => 'Ваш ник ($1)',
 	'openidchoosefull' => 'Ваше полное имя ($1)',
 	'openidchooseurl' => 'Имя, полученное из вашего OpenID ($1)',
 	'openidchooseauto' => 'Автоматически созданное имя ($1)',
 	'openidchoosemanual' => 'Имя на ваш выбор:',
-	'openidchooseexisting' => 'Существующая учётная запись на этой вики:',
-	'openidchoosepassword' => 'пароль:',
-	'openidconvertinstructions' => 'Эта форма позволяет вам сменить использование учётной записи на использование адреса OpenID.',
+	'openidchooseexisting' => 'Существующая учётная запись в этой вики',
+	'openidchooseusername' => 'имя участника:',
+	'openidchoosepassword' => 'Пароль:',
+	'openidconvertinstructions' => 'Эта форма позволяет вам сменить использование вашей учётной записи на использование адреса OpenID, добавить несколько адресов OpenID.',
+	'openidconvertoraddmoreids' => 'Преобразовать в OpenID или добавить другой адрес OpenID',
 	'openidconvertsuccess' => 'Успешное преобразование в OpenID',
-	'openidconvertsuccesstext' => 'Вы успешно преобразовали ваш OpenID в $1.',
+	'openidconvertsuccesstext' => 'Вы успешно преобразовали свой OpenID в $1.',
 	'openidconvertyourstext' => 'Это уже ваш OpenID.',
 	'openidconvertothertext' => 'Это чужой OpenID.',
-	'openidalreadyloggedin' => "'''Вы уже вошли, $1!'''
-
-Если вы желаете использовать в будущем вход через OpenID, вы можете [[Special:OpenIDConvert|преобразовать вашу учётную запись для использования в OpenID]].",
+	'openidalreadyloggedin' => 'Вы уже вошли.',
 	'openidnousername' => 'Не указано имя участника.',
 	'openidbadusername' => 'Указано неверное имя участника.',
 	'openidautosubmit' => 'Эта страница содержит форму, которая должна быть автоматически отправлена, если у вас включён JavaScript.
 Если этого не произошло, попробуйте нажать на кнопку «Продолжить».',
-	'openidclientonlytext' => 'Вы не можете использовать учётные записи с этой вики, как OpenID на другом сайте.',
+	'openidclientonlytext' => 'Вы не можете использовать учётные записи из этой вики как OpenID на другом сайте.',
 	'openidloginlabel' => 'Адрес OpenID',
-	'openidlogininstructions' => '{{SITENAME}} поддерживает стандарт [http://openid.net/ OpenID], позволяющий использовать одну учётную запись для входа на различные веб-сайты.
+	'openidlogininstructions' => '{{SITENAME}} поддерживает стандарт [//openid.net/ OpenID], позволяющий использовать одну учётную запись для входа на различные веб-сайты.
 OpenID позволяет вам заходить на различные веб-сайты без указания разных паролей для них
-(подробнее см. [http://ru.wikipedia.org/wiki/OpenID статью об OpenID в Википедии]).
+(подробнее см. [//ru.wikipedia.org/wiki/OpenID статью об OpenID в Википедии]).
 
-Если вы уже имеете учётную запись на {{SITENAME}}, вы можете [[Special:UserLogin|войти]] как обычно, используя  ваши имя пользователя и пароль.
-Чтобы использовать в дальнейшем OpenID, вы можете [[Special:OpenIDConvert|преобразовать вашу учётную запись в  OpenID]], после того, как вы вошли обычным образом.
+Если вы уже имеете учётную запись на {{SITENAME}}, вы можете [[Special:UserLogin|войти]] как обычно, используя своё имя учётной записи и пароль.
+Чтобы использовать в дальнейшем OpenID, вы можете [[Special:OpenIDConvert|преобразовать вашу учётную запись в OpenID]], после того, как вы вошли обычным образом.
 
-Существует множество [http://wiki.openid.net/Public_OpenID_providers общедоступных провайдеров OpenID], возможно, вы уже имеете учётную запись OpenID на другом сайте.',
-	'openidupdateuserinfo' => 'Обновить мою личную информацию',
-	'openid-prefstext' => 'Параметры [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Скрывать ваш <a href="http://openid.net/">OpenID</a> на вашей странице участника, если вы вошли с помощью OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Обновлять информацию обо мне через OpenID каждый раз, когда я представляюсь системе',
+Существует множество [//openid.net/get/ общедоступных провайдеров OpenID], возможно, вы уже имеете учётную запись OpenID на другом сайте.',
+	'openidupdateuserinfo' => 'Обновить мою личную информацию:',
+	'openiddelete' => 'Удалить OpenID',
+	'openiddelete-text' => 'Нажав на кнопку «{{int:openiddelete-button}}», Вы удалите OpenID $1 из своей учётной записи.
+Вы больше не сможете входить с этим OpenID.',
+	'openiddelete-button' => 'Подтвердить',
+	'openiddeleteerrornopassword' => 'Вы не можете удалить все свои OpenID, так как у вашей учётной записи нет пароля.
+У вас не будет возможности войти в систему без OpenID.',
+	'openiddeleteerroropenidonly' => 'Вы не можете удалить все свои OpenID, так как вам разрешено входить в систему только с использованием OpenID.
+У вас не будет возможности войти в систему без OpenID.',
+	'openiddelete-sucess' => 'OpenID успешно удалён из Вашей учётной записи.',
+	'openiddelete-error' => 'Произошла ошибка при удалении OpenID из Вашей учётной записи.',
+	'openid-prefstext' => 'Параметры [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Скрывать ваш OpenID на вашей странице участника, если вы вошли с помощью OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Обновлять следующую информацию обо мне через OpenID каждый раз, когда я представляюсь системе:',
+	'openid-urls-desc' => 'OpenID, связанные с Вашей учётной записью:',
+	'openid-urls-action' => 'Действие',
+	'openid-urls-registration' => 'Время регистрации',
+	'openid-urls-delete' => 'Удалить',
+	'openid-add-url' => 'Добавить новый OpenID',
+	'openid-login-or-create-account' => 'Представиться системе или создать новую учётную запись',
+	'openid-provider-label-openid' => 'Введите URL вашего OpenID',
+	'openid-provider-label-google' => 'Представиться, используя учётную запись Google',
+	'openid-provider-label-yahoo' => 'Представиться, используя учётную запись Yahoo',
+	'openid-provider-label-aol' => 'Введите ваше имя в AOL',
+	'openid-provider-label-other-username' => 'Введите ваше имя участника $1',
+	'openid-dashboard-title' => 'панель OpenID',
+	'openid-dashboard-number-openid-users' => 'Чисто пользователей с OpenID',
 );
 
+/** Rusyn (Русиньскый)
+ * @author Gazeb
+ */
+$messages['rue'] = array(
+	'openidchooseusername' => 'Мено хоснователя:',
+	'openidchoosepassword' => 'Гесло:',
+);
+
 /** Sicilian (Sicilianu)
+ * @author Melos
  * @author Santu
  */
 $messages['scn'] = array(
-	'openid-desc' => "Fai lu login a la wiki cu [http://openid.net/ OpenID] r a l'àutri siti web ca non ùsanu OpenID cu n'account wiki",
+	'openid-desc' => "Fai lu login a la wiki cu [//openid.net/ OpenID] r a l'àutri siti web ca non ùsanu OpenID cu n'account wiki",
 	'openidlogin' => 'Login cu OpenID',
-	'openidfinish' => 'Cumpleta lu login OpenID',
 	'openidserver' => 'server OpenID',
 	'openidxrds' => 'file Yadis',
 	'openidconvert' => 'cunvirtituri OpenID',
@@ -2949,8 +5299,6 @@
 	'openidfullname' => 'Nomu cumpretu',
 	'openidemail' => 'Nnirizzu e-mail',
 	'openidlanguage' => 'Lingua',
-	'openidnotavailable' => "Lu tò nickname favuritu ($1) ci l'havi già n'àutru utenti.",
-	'openidnotprovided' => 'Lu tò server OpenID non desi nu nickname (o picchi non potti o picchi ci dicisti di non fàrilu).',
 	'openidchooseinstructions' => "Tutti l'utenti hannu di bisognu di nu nickname;
 ni poi pigghiari unu di chisti ccà di sècutu.",
 	'openidchoosefull' => 'Lu tò nomu cumpretu ($1)',
@@ -2958,7 +5306,7 @@
 	'openidchooseauto' => 'Nu nomu giniràtusi sulu ($1)',
 	'openidchoosemanual' => 'Nu nomu scigghiutu di tia:',
 	'openidchooseexisting' => "N'account ca ggià c'è nti sta wiki:",
-	'openidchoosepassword' => 'password:',
+	'openidchoosepassword' => 'Password:',
 	'openidconvertinstructions' => 'Stu mòdulu ti duna lu pirmessu di canciari lu tò account pi usari nu URL OpenID.',
 	'openidconvertsuccess' => 'Canciatu cu successu a OpenID',
 	'openidconvertsuccesstext' => 'Lu tò OpenID canciau cu sucessu a $1.',
@@ -2969,23 +5317,27 @@
 Si disìi usari OpenID pi fari lu login ntô futuru, poi [[Special:OpenIDConvert|canciari lu tò account pi utilizzari OpenID]].",
 	'openidnousername' => 'Nuddu nomu utenti spicificatu.',
 	'openidbadusername' => 'Nomu utenti spicificatu sbagghiatu.',
-	'openidautosubmit' => 'Sta pàggina havi nu mòdulu c\'avissi èssiri mannatu autumàticamenti si JavaScript ci l\'hai attivatu. Si, mmeci, nun è accuddì, prova a mùnciri lu buttuni \\"Continue\\".',
+	'openidautosubmit' => 'Sta pàggina havi nu mòdulu c\'avissi èssiri mannatu autumàticamenti si JavaScript ci l\'hai attivatu. Si, mmeci, nun è accuddì, prova a mùnciri lu buttuni "Continue".',
 	'openidclientonlytext' => "Non poi usari li account di sta wiki comu OpenID supra a n'àutru situ.",
 	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => "{{SITENAME}} susteni lu standard [http://openid.net/ OpenID] pô login ùnicu supr'a li siti web.
+	'openidlogininstructions' => "{{SITENAME}} susteni lu standard [//openid.net/ OpenID] pô login ùnicu supr'a li siti web.
 OpenID ti pirmetti di riggistràriti nni assai siti web senza utilizzari na password diffirenti pi ognidunu d'iddi.
-(Leggi la [http://en.wikipedia.org/wiki/OpenID vuci di Wikipedia supr'a l'OpenID] pi cchiossai nfurmazzioni.)
+(Leggi la [//en.wikipedia.org/wiki/OpenID vuci di Wikipedia supr'a l'OpenID] pi cchiossai nfurmazzioni.)
 
 Si n'account ci l'hai gìa supr'a {{SITENAME}}, poi fari lu [[Special:UserLogin|login]] cu lu tò nomu utentu e la tò password comu ô sòlitu.
 Pi utilizzari OpenID ntô futuru, poi [[Special:OpenIDConvert|canciari lu tò account a OpenID]] doppu ca hà fattu lu login comu ô sòlitu.
 
 Ci sunnu assai [http://wiki.openid.net/Public_OpenID_providers Provider OpenID pùbbrichi], e tu putissi aviri già n'account abbilitatu a l'OpenID supra a n'àutru sirvizu.
 
-; Àutri wiki : Si pussedi n'account supra a na wiki abbilitata a l'OpenID, comu [http://wikitravel.org/ Wikitravel], [http://www.wikihow.com/ wikiHow], [http://vinismo.com/ Vinismo], [http://aboutus.org/ AboutUs] o [http://kei.ki/ Keiki], poi fari lu login a {{SITENAME}} nzirennu l<nowiki>'</nowiki>'''URL cumpretu''' dâ tò pàggina utenti nti ss'àutra wiki ntô box misu susu. P'asèmpiu, ''<nowiki>http://kei.ki/en/User:Evan</nowiki>''.
-; [http://openid.yahoo.com/ Yahoo!] : Si pussedi n'account cu Yahoo!, poi fari lu login a stu situ nzirennu lu tò OpenID Yahoo! ntô box currispunnenti. Li URL OpenID Yahoo! pussèdunu la furma ''<nowiki>https://me.yahoo.com/yourusername</nowiki>''.
-; [http://dev.aol.com/aol-and-63-million-openids AOL] : Si pussedi n'account cu [http://www.aol.com/ AOL], comu a n'account [http://www.aim.com/ AIM], poi fari lu login a {{SITENAME}} nzirennu lu tò OpenID AOL ntô box curripunnenti. Li URL OpenID AOL pussèdunu la furma ''<nowiki>http://openid.aol.com/yourusername</nowiki>''. Lu tò nomu utenti avissi a èssiri tuttu paru 'n caràttiri nichi, senza spàzii.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox] : Si pussedi nu blog supr'a unu di sti siti, nzirisci l'URL dû blog ntô box currispunnenti. P'asèmpiu, ''<nowiki>http://yourusername.blogspot.com/</nowiki>'', ''<nowiki>http://yourusername.wordpress.com/</nowiki>'', ''<nowiki>http://yourusername.livejournal.com/</nowiki>'', o ''<nowiki>http://yourusername.vox.com/</nowiki>''.",
-	'openid-pref-hide' => 'Ammuccia lu tò <a href="http://openid.net/">OpenID</a> supr\'a tò pàggina utenti, si fai lu login cu OpenID.',
+; Àutri wiki : Si pussedi n'account supra a na wiki abbilitata a l'OpenID, comu [//wikitravel.org/ Wikitravel], [//www.wikihow.com/ wikiHow], [//vinismo.com/ Vinismo], [//aboutus.org/ AboutUs] o [//kei.ki/ Keiki], poi fari lu login a {{SITENAME}} nzirennu l<nowiki>'</nowiki>'''URL cumpretu''' dâ tò pàggina utenti nti ss'àutra wiki ntô box misu susu. P'asèmpiu, ''<nowiki>//kei.ki/en/User:Evan</nowiki>''.
+; [//openid.yahoo.com/ Yahoo!] : Si pussedi n'account cu Yahoo!, poi fari lu login a stu situ nzirennu lu tò OpenID Yahoo! ntô box currispunnenti. Li URL OpenID Yahoo! pussèdunu la furma ''<nowiki>https://me.yahoo.com/yourusername</nowiki>''.
+; [//dev.aol.com/aol-and-63-million-openids AOL] : Si pussedi n'account cu [//www.aol.com/ AOL], comu a n'account [//www.aim.com/ AIM], poi fari lu login a {{SITENAME}} nzirennu lu tò OpenID AOL ntô box curripunnenti. Li URL OpenID AOL pussèdunu la furma ''<nowiki>//openid.aol.com/yourusername</nowiki>''. Lu tò nomu utenti avissi a èssiri tuttu paru 'n caràttiri nichi, senza spàzii.
+; [//bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [//faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [//www.livejournal.com/openid/about.bml LiveJournal], [//bradfitz.vox.com/library/post/openid-for-vox.html Vox] : Si pussedi nu blog supr'a unu di sti siti, nzirisci l'URL dû blog ntô box currispunnenti. P'asèmpiu, ''<nowiki>//yourusername.blogspot.com/</nowiki>'', ''<nowiki>//yourusername.wordpress.com/</nowiki>'', ''<nowiki>//yourusername.livejournal.com/</nowiki>'', o ''<nowiki>//yourusername.vox.com/</nowiki>''.",
+	'openid-pref-hide' => "Ammuccia lu tò OpenID supr'a tò pàggina utenti, si fai lu login cu OpenID.",
+	'openid-urls-action' => 'Azzioni',
+	'openid-provider-label-google' => 'Accedi utilizzannu lu tò account Google',
+	'openid-provider-label-aol' => 'Nserisci lu tò screenname AOL',
+	'openid-provider-label-other-username' => 'Nserisci lu tò $1 nnomu utenti',
 );
 
 /** Sinhala (සිංහල)
@@ -2999,9 +5351,8 @@
  * @author Helix84
  */
 $messages['sk'] = array(
-	'openid-desc' => 'Prihlásenie sa na wiki pomocou [http://openid.net/ OpenID] a prihlásenie na iné stránky podporujúce OpenID pomocou používateľského účtu wiki',
+	'openid-desc' => 'Prihlásenie sa na wiki pomocou [//openid.net/ OpenID] a prihlásenie na iné stránky podporujúce OpenID pomocou používateľského účtu wiki',
 	'openidlogin' => 'Prihlásiť sa pomocou OpenID',
-	'openidfinish' => 'Dokončiť prihlásenie pomocou OpenID',
 	'openidserver' => 'OpenID server',
 	'openidxrds' => 'Súbor Yadis',
 	'openidconvert' => 'OpenID konvertor',
@@ -3030,16 +5381,19 @@
 	'openidfullname' => 'Plné meno',
 	'openidemail' => 'Emailová adresa',
 	'openidlanguage' => 'Jazyk',
-	'openidnotavailable' => 'Vašu preferovanú prezývku ($1) už používa iný používateľ.',
-	'openidnotprovided' => 'Váš OpenID server neposkytol prezývku (buď preto, že nemôže alebo preto, že ste mu povedali aby ju neposkytoval).',
+	'openidtimezone' => 'Časové pásmo',
+	'openidchooselegend' => 'Výber používateľského mena',
 	'openidchooseinstructions' => 'Každý používateľ musí mať prezývku; môžete si vybrať z dolu uvedených možností.',
+	'openidchoosenick' => 'Vaša prezývka ($1)',
 	'openidchoosefull' => 'Vaše plné meno ($1)',
 	'openidchooseurl' => 'Meno na základe vášho OpenID ($1)',
 	'openidchooseauto' => 'Automaticky vytvorené meno ($1)',
 	'openidchoosemanual' => 'Meno, ktoré si vyberiete:',
-	'openidchooseexisting' => 'Existujúci účet na tejto wiki:',
-	'openidchoosepassword' => 'heslo:',
-	'openidconvertinstructions' => 'Tento formulár vám umožňuje zmeniť váš učet, aby používal OpenID URL.',
+	'openidchooseexisting' => 'Existujúci účet na tejto wiki',
+	'openidchooseusername' => 'Používateľské meno:',
+	'openidchoosepassword' => 'Heslo:',
+	'openidconvertinstructions' => 'Tento formulár vám umožňuje zmeniť váš učet, aby používal OpenID URL alebo pridať ďalšie OpenID URL.',
+	'openidconvertoraddmoreids' => 'Previesť na OpenID alebo pridať iný OpenID URL',
 	'openidconvertsuccess' => 'Úspešne prevedené na OpenID',
 	'openidconvertsuccesstext' => 'Úspešne ste previedli váš OpenID na $1.',
 	'openidconvertyourstext' => 'To už je váš OpenID.',
@@ -3050,36 +5404,290 @@
 	'openidnousername' => 'Nebolo zadané používateľské meno.',
 	'openidbadusername' => 'Bolo zadané chybné používateľské meno.',
 	'openidautosubmit' => 'Táto stránka obsahuje formulár, ktorý by mal byť automaticky odoslaný ak máte zapnutý JavaScript.
-Ak nie, skúste tlačidlo „Pokračovať“.',
+Ak nie, skúste tlačidlo „Continue“ (Pokračovať).',
 	'openidclientonlytext' => 'Nemôžete používať účty z tejto wiki ako OpenID na iných weboch.',
 	'openidloginlabel' => 'OpenID URL',
-	'openidlogininstructions' => '{{SITENAME}} podporuje štandard [http://openid.net/ OpenID] na zjednotené prihlasovanie na webstránky.
-OpenID vám umožňuje prihlasovať sa na množstvo rozličných webstránok bez nutnosti používať pre každú odlišné heslo. (Pozri [http://sk.wikipedia.org/wiki/OpenID Článok o OpenID na Wikipédii])
+	'openidlogininstructions' => '{{SITENAME}} podporuje štandard [//openid.net/ OpenID] na zjednotené prihlasovanie na webstránky.
+OpenID vám umožňuje prihlasovať sa na množstvo rozličných webstránok bez nutnosti používať pre každú odlišné heslo. (Pozri [//sk.wikipedia.org/wiki/OpenID Článok o OpenID na Wikipédii])
 
 Ak už máte účet na {{GRAMMAR:lokál|{{SITENAME}}}}, môžete sa [[Special:UserLogin|prihlásiť]] pomocou používateľského mena a hesla ako zvyčajne. Ak chcete v budúcnosti používať OpenID, môžete po normálnom prihlásení [[Special:OpenIDConvert|previesť svoj účet na OpenID]].
 
 Existuje množstvo [http://wiki.openid.net/Public_OpenID_providers Verejných poskytovateľov OpenID] a možno už máte účet s podporou OpenID u iného poskytovateľa.',
-	'openidupdateuserinfo' => 'Aktualizovať moje používateľské informácie',
-	'openid-prefstext' => 'Nastavenia [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Nezobrazovať váš <a href="http://openid.net/">OpenID</a> na vašej používateľskej stránke ak sa prihlasujete pomocou OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Aktualizovať moje informácie z OpenID identity pri každom prihlásení',
+	'openidupdateuserinfo' => 'Aktualizovať moje používateľské informácie:',
+	'openiddelete' => 'Zmazať OpenID',
+	'openiddelete-text' => 'Klinužím na tlačidlo „{{int:openiddelete-button}}“ odstránite OpenID $1 z vášho účtu.
+Nebudete sa už pomocou tohto OpenID prihlasovať.',
+	'openiddelete-button' => 'Potvrdiť',
+	'openiddeleteerrornopassword' => 'Nemôžete zmazať všetky svoje OpenID, pretože účet nemá nastavené heslo.
+Bez OpenID by ste sa nemohli prihlásiť.',
+	'openiddeleteerroropenidonly' => 'Nemôžete zmazať všetky svoje OpenID, pretože máte oprávnenie prihlasovať sa jedine pomocou OpenID.
+Bez OpenID by ste sa nemohli prihlásiť.',
+	'openiddelete-sucess' => 'OpenID bolo úspešne odstránené z vášho účtu.',
+	'openiddelete-error' => 'Počas odstraňovania OpenIOD z vášho účtu sa vyskytla chyba.',
+	'openid-prefstext' => 'Nastavenia [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Nezobrazovať váš OpenID na vašej používateľskej stránke ak sa prihlasujete pomocou OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Aktualizovať nasledovné informácie z OpenID identity vždy, keď sa prihlásim:',
+	'openid-urls-desc' => 'OpenID asociované s vašim účtom:',
+	'openid-urls-action' => 'Operácia',
+	'openid-urls-delete' => 'Zmazať',
+	'openid-add-url' => 'Pridať nový OpenID',
+	'openid-login-or-create-account' => 'Prihlásiť sa alebo vytvoriť nový účet',
+	'openid-provider-label-openid' => 'Zadajte URL svojho OpenID',
+	'openid-provider-label-google' => 'Prihlásiť sa pomocou účtu Google',
+	'openid-provider-label-yahoo' => 'Prihlásiť sa pomocou účtu Yahoo',
+	'openid-provider-label-aol' => 'Prihlásiť sa pomocou účtu AOL',
+	'openid-provider-label-other-username' => 'Zadajte svoje prihlasovacie meno na $1',
 );
 
-/** Serbian Cyrillic ekavian (ћирилица)
+/** Slovenian (Slovenščina)
+ * @author Dbc334
+ */
+$messages['sl'] = array(
+	'openid-desc' => 'Prijavite se v wiki z [//openid.net/ OpenID] in prijavite se v druge spletne strani s podporo OpenID z uporabniškim računom wiki',
+	'openidlogin' => 'Prijavite se / ustvarite račun z OpenID',
+	'openidserver' => 'Strežnik OpenID',
+	'openidxrds' => 'Datoteka Yadis',
+	'openidconvert' => 'Pretvornik OpenID',
+	'openiderror' => 'Napaka med preverjanjem',
+	'openiderrortext' => 'Med preverjanjem URL OpenID je prišlo do napake.',
+	'openidconfigerror' => 'Napaka konfiguracije OpenID',
+	'openidconfigerrortext' => 'Konfiguracija shrambe OpenID za ta wiki je neveljavna.
+Posvetujte se z [[Special:ListUsers/sysop|administratorjem]].',
+	'openidpermission' => 'Napaka dovoljenj OpenID',
+	'openidpermissiontext' => 'Navedenemu OpenID prijava v ta strežnik ni dovoljena.',
+	'openidcancel' => 'Preverjanje je bilo preklicano',
+	'openidcanceltext' => 'Preverjanje URL OpenID je bilo preklicano.',
+	'openidfailure' => 'Preverjanje ni uspelo',
+	'openidfailuretext' => 'Preverjanje URL OpenID ni uspelo. Sporočilo o napaki: »$1«',
+	'openidsuccess' => 'Preverjanje je uspelo',
+	'openidsuccesstext' => "'''Preverjanje je bilo uspešno, prijavljeni ste kot uporabnik $1'''.
+
+Vaš OpenID je $2.
+
+Ta in izbirne nadaljne OpenID-je lahko uprabljate na [[Special:Preferences#prefsection-openid|zavihku OpenID]] v svojih nastavitvah.<br />
+Izbirno geslo računa lahko dodate v svojih [[Special:Preferences#prefsection-personal|Podatkih o uporabniku]].",
+	'openidusernameprefix' => 'UporabnikOpenID',
+	'openidserverlogininstructions' => '$3 zahteva, da vnesete svoje geslo za vašega uporabnika $2, stran $1 (URL OpenID).',
+	'openidtrustinstructions' => 'Označite, če želite deliti podatke s $1.',
+	'openidallowtrust' => 'Dovoli $1, da zaupa temu uporabniškemuu računu.',
+	'openidnopolicy' => 'Stran ni določila pravilnika o zasebnosti.',
+	'openidpolicy' => 'Preverite <a target="_new" href="$1">politiko zasebnosti</a> za več informacij.',
+	'openidoptional' => 'Izbirno',
+	'openidrequired' => 'Zahtevano',
+	'openidnickname' => 'Vzdevek',
+	'openidfullname' => 'Polno ime',
+	'openidemail' => 'E-poštni naslov',
+	'openidlanguage' => 'Jezik',
+	'openidtimezone' => 'Časovni pas',
+	'openidchooselegend' => 'Izbira uporabniškega imena in računa',
+	'openidchooseinstructions' => 'Vsi uporabniki potrebujejo vzdevek;
+svojega si lahko izberete med spodnjimi možnostmi.',
+	'openidchoosenick' => 'Vaš vzdevek ($1)',
+	'openidchoosefull' => 'Vaše polno ime ($1)',
+	'openidchooseurl' => 'Ime vzeto iz vašega OpenID ($1)',
+	'openidchooseauto' => 'Samodejno ustvarjeno ime ($1)',
+	'openidchoosemanual' => 'Ime po vaši izbiri:',
+	'openidchooseexisting' => 'Obstoječi račun na tem wikiju',
+	'openidchooseusername' => 'Uporabniško ime:',
+	'openidchoosepassword' => 'Geslo:',
+	'openidconvertinstructions' => 'Ta obrazec vam omogoča spremeniti vaš uporabniški račun za uporabo OpenID URL ali dodati več OpenID URL-jev',
+	'openidconvertoraddmoreids' => 'Pretvorite v OpenID ali dodajte še en URL OpenID',
+	'openidconvertsuccess' => 'Uspešno pretvorjeno v OpenID',
+	'openidconvertsuccesstext' => 'Uspešno ste pretvorili svoj OpenID v $1.',
+	'openidconvertyourstext' => 'To je že vaš OpenID.',
+	'openidconvertothertext' => 'To je OpenID nekoga drugega.',
+	'openidalreadyloggedin' => 'Ste že prijavljeni.',
+	'openidalreadyloggedintext' => "'''$1, ste že prijavljeni!'''
+
+OpenID-je lahko upravljate (si jih ogledate, izbrišete in drugo) na [[Special:Preferences#prefsection-openid|zavihku OpenID]] v vaših nastavitvah.",
+	'openidnousername' => 'Uporabniško ime ni določeno.',
+	'openidbadusername' => 'Določeno je neustrezno uporabniško ime.',
+	'openidautosubmit' => 'Ta stran vsebuje obrazec, ki bi se moral potrditi samodejno, če imate omogočen JavaScript.
+Če ne, poskusite klikniti na gumb »Continue« (Nadaljuj).',
+	'openidclientonlytext' => 'Ne morete uporabiti računov s tega wikija kot OpenID-je na drugi strani.',
+	'openidloginlabel' => 'URL OpenID',
+	'openidlogininstructions' => '{{SITENAME}} podpira standard [//openid.net/ OpenID] za enkratno prijavo med spletnimi stranmi.
+OpenID vam omogoča prijavo v kopico različnih spletnih strani brez uporabe različnega gesla za vsako.
+(Za več informacij si oglejte [//en.wikipedia.org/wiki/OpenID Wikipedijin članek o OpenID].)
+Obstaja veliko [//openid.net/get/ ponudnikov OpenID] in morda že imate račun z omogočenim OpenID pri drugi storitvi.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} omogoča prijavo ''samo'' z OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Če že imate račun na {{SITENAME}}, se lahko [[Special:UserLogin|prijavite]] s svojim uporabniškim imenom in geslom kot običajno.
+Če želite v prihodnje uporabljati OpenID, lahko [[Special:OpenIDConvert|pretvorite svoj račun v OpenID]] po tem, ko ste se normalno prijavili.',
+	'openidupdateuserinfo' => 'Posodobi moje osebne podatke:',
+	'openiddelete' => 'Izbriši OpenID',
+	'openiddelete-text' => 'S klikom na gumb »{{int:openiddelete-button}}« boste odstranili OpenID $1 s svojega računa.
+V prihodnje se s tem OpenID ne boste več mogli prijaviti.',
+	'openiddelete-button' => 'Potrdi',
+	'openiddeleteerrornopassword' => 'Ne morete izbrisati vseh svojih OpenID-jev, ker vaš račun nima gesla.
+Brez OpenID se ne boste mogli prijaviti.',
+	'openiddeleteerroropenidonly' => 'Ne morete izbrisati vseh svojih OpenID-jev, ker se lahko prijavite samo z OpenID.
+Brez OpenID se ne boste mogli prijaviti.',
+	'openiddelete-sucess' => 'OpenID je bil uspešno odstranjen iz vašega računa.',
+	'openiddelete-error' => 'Pri odstranjevanju OpenID iz vašega računa je prišlo do napake.',
+	'openid-openids-were-not-merged' => 'OpenID(-ji) med združevanjem uporabniških računov niso bili združeni.',
+	'openid-prefstext' => 'Nastavitve [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Skrijte svoj URL OpenID na svoji uporabniški strani, če se prijavite z OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Posodobi naslednje informacije iz osebe Open ID vsakič, ko se prijavim:',
+	'openid-urls-desc' => 'OpenID-ji, povezani z vašim računom:',
+	'openid-urls-action' => 'Dejanje',
+	'openid-urls-registration' => 'Registriran od',
+	'openid-urls-delete' => 'Izbriši',
+	'openid-add-url' => 'Dodaj nov OpenID',
+	'openid-login-or-create-account' => 'Prijavite se ali ustvarite nov račun',
+	'openid-provider-label-openid' => 'Vnesite svoj URL OpenID',
+	'openid-provider-label-google' => 'Prijavite se s svojim računom Google',
+	'openid-provider-label-yahoo' => 'Prijavite se s svojim računom Yahoo',
+	'openid-provider-label-aol' => 'Vnesite svoje prikazno ime AOL',
+	'openid-provider-label-other-username' => 'Vnesite svoje uporabniško ime $1',
+	'specialpages-group-openid' => 'Storitvene strani in informacije o stanju OpenID',
+	'right-openid-dashboard-access' => 'Običajni dostop do pregledne plošče OpenID',
+	'right-openid-dashboard-admin' => 'Administratorski dostop do pregledne plošče OpenID',
+	'openid-dashboard-title' => 'Pregledna plošča OpenID',
+	'openid-dashboard-title-admin' => 'Pregledna plošča OpenID (administrator)',
+	'openid-dashboard-introduction' => 'Trenutne nastavitve razširitve OpenID ([$1 pomoč])',
+	'openid-dashboard-number-openid-users' => 'Število uporabnikov z OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Število OpenID-jev (skupno)',
+	'openid-dashboard-number-users-without-openid' => 'Število uporabnikov brez OpenID',
+);
+
+/** Lower Silesian (Schläsch)
+ * @author Schläsinger
+ */
+$messages['sli'] = array(
+	'openidxrds' => 'Yadis-Datei',
+	'openidemail' => 'E-Mail-Atresse:',
+);
+
+/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬)
+ * @author Rancher
  * @author Sasa Stefanovic
+ * @author Михајло Анђелковић
  */
 $messages['sr-ec'] = array(
-	'openidemail' => 'Е-пошта',
+	'openidserver' => 'OpenID сервер',
+	'openidconvert' => 'OpenID претварач',
+	'openiderror' => 'Грешка при провери',
+	'openiderrortext' => 'Дошло је до грешке при проверавању адресе OpenID-ја.',
+	'openidconfigerror' => 'Грешка у поставци OpenID-ја',
+	'openidpermission' => 'Грешка око OpenID права приступа',
+	'openidpermissiontext' => 'OpenID-у кога сте навели није дозвољено да се улогује на овај сервер.',
+	'openidcancel' => 'Провера је отказана',
+	'openidcanceltext' => 'Провера адресе OpenID-ја је отказана.',
+	'openidfailure' => 'Провера није успела',
+	'openidfailuretext' => 'Не могу да проверим адресу OpenID-ја. Грешка: „$1“',
+	'openidsuccess' => 'Провера је успела',
+	'openidsuccesstext' => "'''Провера је успела. Пријављени сте као корисник $1'''.
+
+Ваш OpenID је $2 .
+
+Можете да управљате овим и другим необавезним налозима OpenID-ја у [[Special:Preferences#prefsection-openid|језичку за OpenID]] у вашим подешавањима.<br />
+Можете додати и лозинку налога у вашем [[Special:Preferences#prefsection-personal|корисничком профилу]].",
+	'openidoptional' => 'Необавезно',
+	'openidrequired' => 'Обавезно',
+	'openidnickname' => 'Надимак',
+	'openidfullname' => 'Пуно име',
+	'openidemail' => 'Е-адреса',
 	'openidlanguage' => 'Језик',
+	'openidtimezone' => 'Временска зона',
+	'openidchooselegend' => 'Одабир корисничког имена и налога',
+	'openidchooseinstructions' => 'Сваки корисник треба да има надимак.
+Можете да изаберете једну од доленаведених могућности.',
+	'openidchoosenick' => 'Ваш надимак ($1)',
+	'openidchoosefull' => 'Ваше пуно име ($1)',
+	'openidchooseurl' => 'Име преузето од вашег OpenID-ја ($1)',
+	'openidchooseauto' => 'Самостворено корисничко име ($1)',
+	'openidchoosemanual' => 'Изаберите корисничко име:',
+	'openidchooseexisting' => 'Постојећи налог на овом викију',
+	'openidchooseusername' => 'Корисничко име:',
+	'openidchoosepassword' => 'Лозинка:',
+	'openidconvertsuccess' => 'Претварање у OpenID је успело',
+	'openidconvertsuccesstext' => 'Успешно сте претворили свој OpenID у $1.',
+	'openidconvertyourstext' => 'Ово је већ ваш OpenID.',
+	'openidconvertothertext' => 'Тај OpenID припада неком другом.',
+	'openidnousername' => 'Нисте навели корисничко име.',
+	'openidbadusername' => 'Наведено је неисправно корисничко име.',
+	'openidclientonlytext' => 'Не можете користити налоге с овог викија као OpenID за други сајт.',
+	'openidloginlabel' => 'Адреса OpenID-а',
+	'openidupdateuserinfo' => 'Ажурирај моје личне податке:',
+	'openiddelete-button' => 'Потврди',
+	'prefs-openid' => 'OpenID',
+	'openid-prefstext' => '[//openid.net/ OpenID] подешавања',
+	'openid-pref-hide' => 'Сакријте своју адресу OpenID-а са корисничке странице ако се с њим пријављујете.',
+	'openid-pref-update-userinfo-on-login' => 'Ажурирај следеће податке OpenID-а сваки пут када се пријавим:',
+	'openid-urls-url' => 'Адреса',
+	'openid-urls-action' => 'Радња',
+	'openid-urls-registration-date-time' => '$1',
+	'openid-urls-delete' => 'Обриши',
 );
 
+/** Serbian (Latin script) (‪Srpski (latinica)‬)
+ * @author Ex13
+ * @author Michaello
+ * @author Rancher
+ */
+$messages['sr-el'] = array(
+	'openidserver' => 'OpenID server',
+	'openidconvert' => 'OpenID konvertor',
+	'openiderror' => 'Greška prilikom verifikacije',
+	'openiderrortext' => 'Došlo je do greške prilikom verifikacije OpenID URL-a.',
+	'openidconfigerror' => 'Greška oko konfiguracije OpenID-a',
+	'openidpermission' => 'Greška oko OpenID prava pristupa',
+	'openidpermissiontext' => 'OpenID-u koga ste naveli nije dozvoljeno da se uloguje na ovaj server.',
+	'openidcancel' => 'Verifikacija poništena',
+	'openidcanceltext' => 'Verifikacija OpenID URL-a je poništena.',
+	'openidfailure' => 'Verifikacija nije prošla',
+	'openidfailuretext' => 'Verifikacija OpenID URL-a nije prošla. Poruka greške: "$1"',
+	'openidsuccess' => 'Verifikacija uspešna',
+	'openidsuccesstext' => "'''Provera je uspela. Prijavljeni ste kao korisnik $1'''.
+
+Vaš OpenID je $2 .
+
+Možete da upravljate ovim i drugim neobaveznim nalozima OpenID-ja u [[Special:Preferences#prefsection-openid|jezičku za OpenID]] u vašim podešavanjima.<br />
+Možete dodati i lozinku naloga u vašem [[Special:Preferences#prefsection-personal|korisničkom profilu]].",
+	'openidoptional' => 'Neobavezno',
+	'openidrequired' => 'Obavezno',
+	'openidnickname' => 'Nadimak',
+	'openidfullname' => 'Puno ime',
+	'openidemail' => 'E-pošta',
+	'openidlanguage' => 'Jezik',
+	'openidtimezone' => 'Vremenska zona',
+	'openidchooselegend' => 'Odabir korisničkog imena i naloga',
+	'openidchooseinstructions' => 'Svaki korisnik treba da ima nadimak;
+Možete da izaberete jednu od opcija ispod.',
+	'openidchoosenick' => 'Vaš nadimak ($1)',
+	'openidchoosefull' => 'Vaše puno ime ($1)',
+	'openidchooseurl' => 'Ime preuzeto od vašeg OpenID ($1)',
+	'openidchooseauto' => 'Automatski generisano korisničko ime ($1)',
+	'openidchoosemanual' => 'Izaberite korisničko ime:',
+	'openidchooseexisting' => 'Postojeći nalog na ovoj Viki',
+	'openidchooseusername' => 'Korisničko ime:',
+	'openidchoosepassword' => 'Lozinka:',
+	'openidconvertsuccess' => 'Konverzija ka OpenID je uspešna',
+	'openidconvertsuccesstext' => 'Uspešno ste prmenili svoj OpenID na $1.',
+	'openidconvertyourstext' => 'Taj OpenID je već vaš.',
+	'openidconvertothertext' => 'To je tuđ OpenID.',
+	'openidnousername' => 'Nije navedeno korisničko ime.',
+	'openidbadusername' => 'Zadato neispravno korisničko ime.',
+	'openidclientonlytext' => 'Vi ne možete da koristite naloge sa ovog Vikija kao OpenID-ove na drugim sajtovima.',
+	'openidloginlabel' => 'OpenID URL',
+	'openidupdateuserinfo' => 'Aktualizuj moje lične podatke:',
+	'openiddelete-button' => 'Potvrdi',
+	'prefs-openid' => 'OpenID',
+	'openid-prefstext' => '[<a href="//openid.net/">//openid.net/</a> OpenID] podešavanja',
+	'openid-pref-hide' => 'Sakrijte svoj OpenID URL sa korisničke strane, ako se sa njim logujete.',
+	'openid-pref-update-userinfo-on-login' => 'Aktualizuj sledeće informacije OpenID identiteta svaki put kad se ulogujem:',
+	'openid-urls-url' => 'Adresa',
+	'openid-urls-action' => 'Radnja',
+	'openid-urls-registration-date-time' => '$1',
+	'openid-urls-delete' => 'Obriši',
+);
+
 /** Seeltersk (Seeltersk)
  * @author Pyt
  */
 $messages['stq'] = array(
-	'openid-desc' => 'Anmeldenge an dit Wiki mäd ne [http://openid.net/ OpenID] un anmäldje an uur Websites, do der OpenID unnerstutsje, mäd een Wiki-Benutserkonto.',
+	'openid-desc' => 'Anmeldenge an dit Wiki mäd ne [//openid.net/ OpenID] un anmäldje an uur Websites, do der OpenID unnerstutsje, mäd een Wiki-Benutserkonto.',
 	'openidlogin' => 'Anmäldje mäd OpenID',
-	'openidfinish' => 'OpenID-Anmäldenge ousluute',
 	'openidserver' => 'OpenID-Server',
 	'openidxrds' => 'Yadis-Doatäi',
 	'openidconvert' => 'OpenID-Konverter',
@@ -3087,7 +5695,7 @@
 	'openiderrortext' => 'Aan Failer is unner ju Wröige fon ju OpenID-URL aptreeden.',
 	'openidconfigerror' => 'OpenID-Konfigurationsfailer',
 	'openidconfigerrortext' => 'Ju OpenID-Spiekerkonfiguration foar dit Wiki ist failerhaft.
-Täl n [[Special:ListUsers/sysop|Administrator]] Bescheed.',
+Täl n [[Special:ListUsers/sysop|Administrator]] Beskeed.',
 	'openidpermission' => 'OpenID-Begjuchtigengsfailer',
 	'openidpermissiontext' => 'Ju anroate OpenID begjuchtiget nit tou Anmäldenge an dissen Server.',
 	'openidcancel' => 'Wröige oubreeken',
@@ -3100,7 +5708,7 @@
 	'openidserverlogininstructions' => 'Reek dien Paaswoud unner ien, uum die as Benutser $2 an $3 antoumäldjen (Benutsersiede $1).',
 	'openidtrustinstructions' => 'Wröich, of du Doaten mäd $1 deele moatest.',
 	'openidallowtrust' => 'Ferlööwje $1, dissen Benutserkonto tou tjouen.',
-	'openidnopolicy' => 'Ju Siede häd neen Doatenschuts-Gjuchtlienje anroat.',
+	'openidnopolicy' => 'Ju Siede häd neen Doatenskuts-Gjuchtlienje anroat.',
 	'openidpolicy' => 'Wröich ju <a target="_new" href="$1">Doatenschuts-Gjuchtlienje</a> foar moor Informatione.',
 	'openidoptional' => 'Optionoal',
 	'openidrequired' => 'Plicht',
@@ -3108,8 +5716,7 @@
 	'openidfullname' => 'Fulboodigen Noome',
 	'openidemail' => 'E-Mail-Adresse:',
 	'openidlanguage' => 'Sproake',
-	'openidnotavailable' => 'Die Noome ($1), dän du dät ljooste hääst, wäd al fon n uur Benutser ferwoand.',
-	'openidnotprovided' => 'Dien OpenID-Server unnerstutset neen Spitsnoomen (äntweeder, wil hie et nit kon, of deeruum dät du et him nit ferlööwed hääst).',
+	'openidtimezone' => 'Tiedzone',
 	'openidchooseinstructions' => 'Aal Benutsere benöödigje n Benutsernoome;
 du koast aan uut ju unnerstoundene Lieste uutwääle.',
 	'openidchoosefull' => 'Din fulboodigen Noome ($1)',
@@ -3118,7 +5725,8 @@
 	'openidchoosemanual' => 'N Noome fon dien Woal:',
 	'openidchooseexisting' => 'N existierend Benutserkonto in dit Wiki:',
 	'openidchoosepassword' => 'Paaswoud:',
-	'openidconvertinstructions' => 'Mäd dit Formular koast du dien Benutserkonto tou Benutsenge fon n OpenID-URL fräireeke.',
+	'openidconvertinstructions' => 'Mäd dit Formular koast du dien Benutserkonto tou Benutsenge fon n OpenID-URL annerje.',
+	'openidconvertoraddmoreids' => 'Uumsätte tou OpenID of föich n uur OpenID-URL tou.',
 	'openidconvertsuccess' => 'Mäd Ärfoulch ätter OpenID konvertierd',
 	'openidconvertsuccesstext' => 'Du hääst ju Konvertierenge fon dien OpenID ätter $1 mäd Ärfoulch truchfierd.',
 	'openidconvertyourstext' => 'Dit is al dien OpenID.',
@@ -3128,26 +5736,35 @@
 Wan du OpenID foar kuumende Anmäldefoargonge nutsje moatest, koast du [[Special:OpenIDConvert|dien Benutserkonto ätter OpenID konvertierje]].",
 	'openidnousername' => 'Naan Benutsernoome anroat.',
 	'openidbadusername' => 'Falsken Benutsernoome anroat.',
-	'openidautosubmit' => 'Disse Siede änthaalt n Formular, dät automatisk uurdrain wäd, wan JavaSkript aktivierd is. Fals nit, klik ap „Fääre“.',
+	'openidautosubmit' => 'Disse Siede änthaalt n Formular, dät automatisk uurdrain wäd, wan JavaSkript aktivierd is.
+Fals nit, klik ap „Continue“ (Fääre).',
 	'openidclientonlytext' => 'Du koast neen Benutserkonten uut dissen Wiki as OpenID foar uur Sieden ferweende.',
 	'openidloginlabel' => 'OpenID-URL',
-	'openidlogininstructions' => "{{SITENAME}} unnerstutset dän [http://openid.net/ OpenID]-Standoard foar ne Anmäldenge foar moorere Websites.
-OpenID mäldet die bie fuul unnerscheedelke Websieden an, sunner dät du foar älke Siede n uur Paaswoud ferweende moast.
-(Moor Informatione bjut die [http://de.wikipedia.org/wiki/OpenID Wikipedia-Artikkel tou OpenID].)
+	'openidlogininstructions' => '{{SITENAME}} unnerstutset dän [//openid.net/ OpenID]-Standoard foar ne eenhaidelke Anmäldenge foar moorere Websites.
+OpenID mäldet die bie fuul unnerskeedelke Websieden an, sunner dät du foar älke Siede n uur Paaswoud ferweende moast.
+(Moor Informatione bjut die [//de.wikipedia.org/wiki/OpenID Wikipedia-Artikkel tou OpenID].)
 
 Fals du al n Benutserkonto bie {{SITENAME}} hääst, koast du die gans normoal mäd Benutsernoome un Paaswoud [[Special:UserLogin|anmäldje]].
 Wan du in n Toukumst OpenID ferweende moatest, koast du [[Special:OpenIDConvert|dien Account tou OpenID konvertierje]], ätter dät du die normoal ienlogged hääst.
 
-Dät rakt fuul [http://wiki.openid.net/Public_OpenID_providers eepentelke OpenID-Providere] un muugelkerwiese hääst du al n Benutserkonto mäd aktivierden OpenID bie n uur Anbjooder.
-
-; Uur Sites: Wan du al n Benutserkonto ap n Wiki mäd aktivierde OpenID hääst, as biespilswiese [http://wikitravel.org/ Wikitravel], [http://www.wikihow.com/ wikiHow], [http://vinismo.com/ Vinismo], [http://aboutus.org/ AboutUs] of [http://kei.ki/ Keiki], koast du die bie {{SITENAME}} anmäldje, wan du ju '''komplette URL''' fon dien Benutsersiede ap dän uur Wiki in dät Textfäild hierbuppe ienrakst. Biespilswiese ''<nowiki>http://kei.ki/en/User:Evan</nowiki>''.
-; [http://openid.yahoo.com/ Yahoo!]: Wan du n Yahoo!-Konto hääst, koast du die mäd ju fon Yahoo! anroate OpenID in dät Textfäild hierbuppe anmäldje. Yahoo!-OpenIDs hääbe ju Foarm ''<nowiki>https://me.yahoo.com/dienbenutsernoome</nowiki>''.
-; [http://dev.aol.com/aol-and-63-million-openids AOL]: Wan du n [http://www.aol.com/ AOL]-Konto hääst, biespilswiese n [http://www.aim.com/ AIM]-Benutserkonto, koast du die bie {{SITENAME}} anmäldje, wan du ju fon AOL anroate OpenID in dät Textfäild hierbuppe ienrakst. AOL-OpenIDs hääbe ju Foarm ''<nowiki>http://openid.aol.com/dienbenutsernoome</nowiki>''. Dien Benutsernoome schuul bloot uut litje Bouksteeuwen bestounde un neen Loosteekene änthoolde.
-; [http://bloggerindraft.blogspot.com/2008/01/new-feature-blogger-as-openid-provider.html Blogger], [http://faq.wordpress.com/2007/03/06/what-is-openid/ Wordpress.com], [http://www.livejournal.com/openid/about.bml LiveJournal], [http://bradfitz.vox.com/library/post/openid-for-vox.html Vox]: Wan du ap disse Sieden n Blog hääst, reek ju URL fon dien Blog in dät Textfäild hierbuppe ien. Biespilswiese ''<nowiki>http://deinbenutzername.blogspot.com/</nowiki>'', ''<nowiki>http://deinbenutzername.wordpress.com/</nowiki>'', ''<nowiki>http://deinbenutzername.livejournal.com/</nowiki>'', of ''<nowiki>http://deinbenutzername.vox.com/</nowiki>''.",
+Dät rakt fuul [http://wiki.openid.net/Public_OpenID_providers eepentelke OpenID-Providere] un muugelkerwiese hääst du al n Benutserkonto mäd aktivierden OpenID bie n uur Anbjooder.',
 	'openidupdateuserinfo' => 'Persöönelke Doaten aktualisierje',
-	'openid-prefstext' => '[http://openid.net/ OpenID] Ienstaalengen',
-	'openid-pref-hide' => 'Fersteet dien <a href="http://openid.net/">OpenID</a> ap dien Benutsersiede, wan du die mäd OpenID anmäldest.',
-	'openid-pref-update-userinfo-on-login' => 'Mien Doaten anhound fon dät OpenID-Konto bie älke Login aktualisierje',
+	'openiddelete' => 'OpenID läskje',
+	'openiddelete-button' => 'Bestäätigje',
+	'openiddelete-sucess' => 'Ju OpenID wuud mäd Ärfoulch fon din Benutserkonto wächhoald.',
+	'openiddelete-error' => 'Bie dät Wächhoaljen fon ju OpenID fon din Benutserkonto is n Failer aptreeden.',
+	'openid-prefstext' => '[//openid.net/ OpenID] Ienstaalengen',
+	'openid-pref-hide' => 'Fersteet dien OpenID ap dien Benutsersiede, wan du die mäd OpenID anmäldest.',
+	'openid-pref-update-userinfo-on-login' => 'Ju foulgjende Information fon dät OpenID-Konto bie älke Login aktualisierje',
+	'openid-urls-action' => 'Aktion',
+	'openid-urls-delete' => 'Läskje',
+	'openid-add-url' => 'Näien OpenID bietouföigje',
+	'openid-login-or-create-account' => 'Anmäldje of n näi Benutserkonto moakje',
+	'openid-provider-label-openid' => 'Reek dien OpenID-URL an',
+	'openid-provider-label-google' => 'Mäd dien Google-Benutserkonto anmäldje',
+	'openid-provider-label-yahoo' => 'Mäd dien Yahoo-Benutserkonto anmäldje',
+	'openid-provider-label-aol' => 'Reek dien AOL-Noome an',
+	'openid-provider-label-other-username' => 'Reek dien „$1“-Benutsernoome an',
 );
 
 /** Sundanese (Basa Sunda)
@@ -3156,19 +5773,23 @@
 $messages['su'] = array(
 	'openidnickname' => 'Landihan',
 	'openidlanguage' => 'Basa',
-	'openidchoosepassword' => 'sandi:',
+	'openidchoosepassword' => 'Sandi:',
 );
 
 /** Swedish (Svenska)
  * @author Boivie
+ * @author Fluff
  * @author Jon Harald Søby
  * @author Lokal Profil
  * @author M.M.S.
+ * @author Najami
+ * @author Nghtwlkr
+ * @author Per
+ * @author WikiPhoenix
  */
 $messages['sv'] = array(
-	'openid-desc' => 'Logga in på wikin med en [http://openid.net/ OpenID] och logga in på andra sidor som använder OpenID med konton härifrån',
-	'openidlogin' => 'Logga in med OpenID',
-	'openidfinish' => 'Fullfölj OpenID-inloggning',
+	'openid-desc' => 'Logga in på wikin med en [//openid.net/ OpenID] och logga in på andra sidor som använder OpenID med konton härifrån',
+	'openidlogin' => 'Logga in / skapa konto med OpenID',
 	'openidserver' => 'OpenID-server',
 	'openidxrds' => 'Yadis-fil',
 	'openidconvert' => 'OpenID-konvertering',
@@ -3186,7 +5807,7 @@
 	'openidsuccess' => 'Bekräftning lyckades',
 	'openidsuccesstext' => 'Bekräftning av OpenID-adressen lyckades.',
 	'openidusernameprefix' => 'OpenID-användare',
-	'openidserverlogininstructions' => 'Skriv in ditt lösenord nedan för att logga in på $3 som $2 (användarsida $1).',
+	'openidserverlogininstructions' => '$3 begär att du anger ditt lösenord för ditt användare $2s sida $1 (detta är din OpenID-URL)',
 	'openidtrustinstructions' => 'Kolla om du vill dela data med $1.',
 	'openidallowtrust' => 'Tillåter $1 att förlita sig på detta användarkonto.',
 	'openidnopolicy' => 'Sajten har inga riktlinjer för personlig integritet.',
@@ -3197,63 +5818,137 @@
 	'openidfullname' => 'Fullt namn',
 	'openidemail' => 'E-postadress',
 	'openidlanguage' => 'Språk',
-	'openidnotavailable' => 'Ditt framförda användarnamn ($1) används redan av en annan användare.',
-	'openidnotprovided' => 'Din OpenID-server uppgav inte ett användarnamn (antingen för att den inte kan, eller för att du har sagt till den att den inte ska göra det).',
+	'openidtimezone' => 'Tidszon',
+	'openidchooselegend' => 'Val av användarnamn och konto',
 	'openidchooseinstructions' => 'Alla användare måste ha ett användarnamn;
 du kan välja ett från alternativen nedan.',
+	'openidchoosenick' => 'Ditt smeknamn ($1)',
 	'openidchoosefull' => 'Fullt namn ($1)',
 	'openidchooseurl' => 'Ett namn taget från din OpenID ($1)',
 	'openidchooseauto' => 'Ett automatiskt genererat namn ($1)',
 	'openidchoosemanual' => 'Ett valfritt namn:',
-	'openidchooseexisting' => 'Ett existerande konto på denna wiki:',
-	'openidchoosepassword' => 'lösenord:',
-	'openidconvertinstructions' => 'Detta formulär låter dig ändra dina användarkonton till att använda en OpenID-adress.',
+	'openidchooseexisting' => 'Ett existerande konto på denna wiki',
+	'openidchooseusername' => 'Användarnamn:',
+	'openidchoosepassword' => 'Lösenord:',
+	'openidconvertinstructions' => 'Detta formulär låter dig ändra dina användarkonton till att använda eller lägga till en eller flera OpenID-adresser',
+	'openidconvertoraddmoreids' => 'Konvertera till OpenID eller lägg till en ny OpenID-adress',
 	'openidconvertsuccess' => 'Konverterade till OpenID',
 	'openidconvertsuccesstext' => 'Du har konverterat din OpenID till $1.',
 	'openidconvertyourstext' => 'Det är redan din OpenID.',
 	'openidconvertothertext' => 'Den OpenID tillhör någon annan.',
-	'openidalreadyloggedin' => "'''Du är redan inloggad, $1!'''
+	'openidalreadyloggedin' => 'Du är redan inloggad.',
+	'openidalreadyloggedintext' => "'''Du är redan inloggad, $1!'''
 
-Om du vill använda OpenID att logga in i framtiden, kan du [[Special:OpenIDConvert|konvertera dina konton till att använda OpenID]].",
+Du kan hantera (visa, radera, m.m) OpenID:s i [[Special:Preferences#prefsection-openid|OpenID-fliken]] på dina inställningar.",
 	'openidnousername' => 'Inget användarnamn angivet.',
 	'openidbadusername' => 'Ogiltigt användarnamn angivet.',
-	'openidautosubmit' => 'Denna sida innehåller ett formulär som kommer levereras automatiskt om du har slagit på JavaScript. Om inte, tryck på "Fortsätt".',
+	'openidautosubmit' => 'Denna sida innehåller ett formulär som kommer levereras automatiskt om du har slagit på JavaScript.
+Om inte, tryck på "Continue" (Fortsätt).',
 	'openidclientonlytext' => 'Du kan inte använda konton från denna wikin som OpenID på en annan sida.',
 	'openidloginlabel' => 'OpenID-adress',
-	'openidlogininstructions' => '{{SITENAME}} stödjer [http://openid.net/ OpenID]-standarden för enhetlig inlogging på många webbsidor.
+	'openidlogininstructions' => '{{SITENAME}} stödjer [//openid.net/ OpenID]-standarden för enhetlig inloggning på många webbsidor.
 OpenID låter dig logga in på många webbsidor utan att använda olika lösenord för varje. 
-(Se [http://en.wikipedia.org/wiki/OpenID Wikipedia-artikeln om OpenID] för mer information.)
+(Se [//en.wikipedia.org/wiki/OpenID Wikipedia-artikeln om OpenID] för mer information.)
+Det finns många [//openid.net/get/ leverantörer av OpenID], och du kan redan ha ett OpenID-aktiverat konto på en annan plats.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} låter dig ''endast'' logga in med OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Om du redan har ett konto på {{SITENAME}} kan du [[Special:UserLogin|logga in]] med ditt användarnamn och lösenord som vanligt.
+För att använda OpenID i framtiden, kan du [[Special:OpenIDConvert|konvertera ditt konto till OpenID]] efter du har loggat in normalt.',
+	'openidupdateuserinfo' => 'Uppdatera min personliga information:',
+	'openiddelete' => 'Ta bort OpenID',
+	'openiddelete-text' => 'Genom att klicka på knappen "{{int:openiddelete-button}}" kommer du att ta bort OpenID $1 från ditt konto. Du kommer inte att kunna använda detta OpenID för att logga in.',
+	'openiddelete-button' => 'Bekräfta',
+	'openiddeleteerrornopassword' => 'Du kan inte radera alla dina OpenId eftersom ditt konto saknar lösenord.
+Du skulle inte kunna logga in utan ett OpenID.',
+	'openiddeleteerroropenidonly' => 'Du kan inte radera alla dina OpenID eftersom du endast får logga in med OpenID.
+Du skulle inte kunna logga in utan ett OpenID.',
+	'openiddelete-sucess' => 'OpenID-kopplingen har tagits bort från ditt konto.',
+	'openiddelete-error' => 'Ett fel uppstod när OpenID-kopplingen skulle tas bort från ditt konto.',
+	'openid-prefstext' => '[//openid.net/ OpenID]-inställningar',
+	'openid-pref-hide' => 'Dölj OpenID på din användarsida, om du loggar in med OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Uppdatera följande information från min OpenID-profil varje gång jag loggar in',
+	'openid-urls-desc' => 'OpenID som är kopplade till ditt konto:',
+	'openid-urls-action' => 'Åtgärd',
+	'openid-urls-delete' => 'Ta bort',
+	'openid-add-url' => 'Lägg till ett nytt OpenID',
+	'openid-login-or-create-account' => 'Logga in eller skapa ett nytt konto',
+	'openid-provider-label-openid' => 'Skriv in din OpenID-URL',
+	'openid-provider-label-google' => 'Logga in genom att använda ditt Google-konto',
+	'openid-provider-label-yahoo' => 'Logga in genom att använda ditt Yahoo-konto',
+	'openid-provider-label-aol' => 'Skriv in ditt AOL-skärmnamn',
+	'openid-provider-label-other-username' => 'Skriv in ditt $1-användarnamn',
+	'openid-dashboard-number-openid-users' => 'Antal användare med OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Antal OpenID:s (totalt)',
+	'openid-dashboard-number-users-without-openid' => 'Antal användare utan OpenID',
+);
 
-Om du redan har ett konto på {{SITENAME}}, kan du [[Special:UserLogin|logga in]] som vanligt med ditt användarnamn och lösenord.
-För att använda OpenID i framtiden kan du [[Special:OpenIDConvert|konvertera ditt konton till OpenID]] efter att du har loggat in på normalt sätt.
-
-Det finns många [http://openid.net/get/ leverantörer av OpenID], och du kan redan ha ett OpenID-aktiverat konto på en annan plats.',
-	'openidupdateuserinfo' => 'Uppdatera min personliga information',
-	'openid-prefstext' => '[http://openid.net/ OpenID] inställningar',
-	'openid-pref-hide' => 'Dölj <a href="http://openid.net/">OpenID</a> på din användarsida, om du loggar in med OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Uppdatera min informationen från OpenID-persona varje gång jag loggar in',
+/** Tamil (தமிழ்) */
+$messages['ta'] = array(
+	'openidrequired' => 'தேவைபடுகிறது',
 );
 
 /** Telugu (తెలుగు)
+ * @author Kiranmayee
+ * @author Ravichandra
  * @author Veeven
  */
 $messages['te'] = array(
+	'openid-desc' => '[//openid.net/ ఓపెన్ఐడీ]తో వికీ లోనికి ప్రవేశించండి, మరియు వికీ వాడుకరి ఖాతాతో ఓపెన్ఐడీని అంగీకరించే ఇతర వెబ్ సైట్లలోనికి ప్రవేశించండి',
+	'openidlogin' => 'ఓపెన్ఐడీతో ప్రవేశించండి',
+	'openidserver' => 'ఓపెన్ఐడీ సేవకి',
+	'openiderror' => 'తనిఖీ పొరపాటు',
+	'openiderrortext' => 'ఓపెన్ఐడీ చిరునామాని తనిఖీ చేయడంలో పొరపాటు జరిగింది.',
 	'openidpermission' => 'ఓపెన్ఐడీ అనుమతుల పొరపాటు',
+	'openidpermissiontext' => 'మీరు ఇచ్చిన ఓపెన్ఐడీకి ఈ సేవకి లోనికి ప్రవేశించే అనుమతి లేదు.',
 	'openidcancel' => 'తనిఖీ రద్దయింది',
+	'openidcanceltext' => 'ఓపెన్ఐడీ చిరునామా యొక్క తనిఖీని రద్దుచేసారు.',
 	'openidfailure' => 'తనిఖీ విఫలమైంది',
+	'openidfailuretext' => 'ఓపెన్ఐడీ చిరునామా యొక్క తనిఖీ విఫలమైంది. పొరపాటు సందేశం: "$1"',
 	'openidsuccess' => 'తనిఖీ విజయవంతమైంది',
+	'openidserverlogininstructions' => '$3 లోనికి $2 (వాడుకరి పేజీ $1) అనే వాడుకరిగా ప్రవేశించడానికి మీ సంకేతపదం ఇవ్వండి.',
+	'openidallowtrust' => 'ఈ వాడుకరి ఖాతాని విశ్వసించడానికి $1ని అనుమతించు.',
+	'openidnopolicy' => 'సైటు అంతరంగికత విధానాన్ని పేర్కొనలేదు.',
+	'openidpolicy' => 'మరింత సమాచారం కొరకు <a target="_new" href="$1">అంతరంగికత విధానా</a>న్ని చూడండి.',
 	'openidoptional' => 'ఐచ్చికం',
 	'openidrequired' => 'తప్పనిసరి',
 	'openidnickname' => 'ముద్దుపేరు',
 	'openidfullname' => 'పూర్తిపేరు',
 	'openidemail' => 'ఈ-మెయిల్ చిరునామా',
 	'openidlanguage' => 'భాష',
+	'openidtimezone' => 'కాలమానం',
+	'openidchooseinstructions' => 'సభ్యులందరికీ ముద్దు పేరు ఉండవలెను. 
+క్రింద పేర్కొన్న వాటిలో ఒకటి ఎంచుకోండి',
 	'openidchoosefull' => 'మీ పూర్తి పేరు ($1)',
+	'openidchooseurl' => 'మీ ఓపెన్ఐడీ నుండి తీసుకున్న పేరు ($1)',
 	'openidchoosemanual' => 'మీరు ఎన్నుకున్న పేరు:',
-	'openidchooseexisting' => 'ఈ వికీలో ఇప్పటికే ఉన్న ఖాతా:',
+	'openidchooseexisting' => 'ఈ వికీలో ఇప్పటికే ఉన్న ఖాతా',
+	'openidchooseusername' => 'వాడుకరిపేరు:',
 	'openidchoosepassword' => 'సంకేతపదం:',
+	'openidconvertinstructions' => 'మీ ఖాతాని ఓపెన్ఐడీ చిరునామా ఉపయోగించేలా మార్చడానికి లేదా మరిన్ని ఓపెన్ఐడీ చిరునామాలు చేర్చుకోడానికి ఈ ఫారం వీలుకల్పిస్తుంది',
+	'openidconvertsuccess' => 'విజయవంతంగా ఓపెనిఐడీకి మారారు',
+	'openidconvertsuccesstext' => 'మీ ఓపెన్ఐడీని $1కి విజయవంతంగా మార్చుకున్నారు.',
 	'openidconvertyourstext' => 'అది ఇప్పటికే మీ ఓపెన్ఐడీ.',
+	'openidconvertothertext' => 'ఇది వేరొకరి ఓపెన్ ఐడి',
 	'openidnousername' => 'వాడుకరిపేరు ఇవ్వలేదు.',
+	'openidbadusername' => 'తప్పుడు వాడుకరిపేరుని ఇచ్చారు.',
+	'openidclientonlytext' => 'ఈ వికీ లోని ఖాతాలను మీరు వేరే సైట్లలో ఓపెన్ఐడీలుగా ఉపయోగించలేరు.',
+	'openidloginlabel' => 'ఓపెన్ఐడీ చిరునామా',
+	'openidupdateuserinfo' => 'నా వ్యక్తిగత సమాచారాన్ని తాజాకరించు:',
+	'openiddelete' => 'ఓపెన్ ఐడి తొలగించు',
+	'openiddelete-button' => 'నిర్ధారించు',
+	'openiddelete-sucess' => 'మీ ఖాతా నుండి ఆ ఓపెన్ఐడీని విజయవంతంగా తొలగించాం.',
+	'openiddelete-error' => 'మీ ఖాతా నుండి ఓపెన్ఐడీని తొలగించడంలో పొరపాటు జరిగింది.',
+	'openid-prefstext' => '[//openid.net/ ఓపెన్ఐడీ] అభిరుచులు',
+	'openid-pref-hide' => 'నేను ఓపెన్ఐడీతో ప్రవేశిస్తే, నా ఓపెన్ఐడీ చిరునామాని నా వాడుకరి పేజీలో కనబడకుండా దాచు.',
+	'openid-urls-desc' => 'మీ ఖాతాతో సంధానమై ఉన్న ఓపెన్ఐడీలు:',
+	'openid-urls-action' => 'చర్య',
+	'openid-urls-delete' => 'తొలగించు',
+	'openid-add-url' => 'కొత్త ఓపెన్ఐడీని చేర్చు',
+	'openid-login-or-create-account' => 'ప్రవేశించండి లేదా కొత్త ఖాతాని సృష్టించుకోండి',
+	'openid-provider-label-openid' => 'మీ ఓపెన్ఐడీ చిరునామాని ఇవ్వండి',
+	'openid-provider-label-google' => 'మీ గూగుల్ ఖాతాని ఉపయోగించి ప్రవేశించండి',
+	'openid-provider-label-yahoo' => 'మీ యాహూ ఖాతాని ఉపయోగించి ప్రవేశించండి',
+	'openid-provider-label-aol' => 'మీ ఎఓఎల్ స్క్రీన్ నామము ఇవ్వండి',
+	'openid-provider-label-other-username' => 'మీ $1 వాడుకరిపేరుని ఇవ్వండి',
 );
 
 /** Tetum (Tetun)
@@ -3264,15 +5959,15 @@
 	'openidfullname' => 'Naran kompletu',
 	'openidemail' => 'Diresaun korreiu eletróniku',
 	'openidlanguage' => 'Lian',
+	'openidchooseusername' => "Naran uza-na'in:",
 );
 
-/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
+/** Tajik (Cyrillic script) (Тоҷикӣ)
  * @author Ibrahim
  */
 $messages['tg-cyrl'] = array(
-	'openid-desc' => 'Ба вики бо [http://openid.net/ OpenID] вуруд кунед, ва ба дигар сомонаҳои OpenID бо ҳисоби корбарии вики вуруд кунед',
+	'openid-desc' => 'Ба вики бо [//openid.net/ OpenID] вуруд кунед, ва ба дигар сомонаҳои OpenID бо ҳисоби корбарии вики вуруд кунед',
 	'openidlogin' => 'Бо OpenID вуруд кунед',
-	'openidfinish' => 'Хотима додан вурудшавии OpenID',
 	'openidserver' => 'Хидматгузори OpenID',
 	'openidxrds' => 'Парвандаи Yadis',
 	'openidconvert' => 'Табдилкунандаи OpenID',
@@ -3284,16 +5979,48 @@
 	'openidoptional' => 'Ихтиёрӣ',
 	'openidemail' => 'Нишонаи почтаи электронӣ',
 	'openidlanguage' => 'Забон',
-	'openidchoosepassword' => 'гузарвожа:',
+	'openidchoosepassword' => 'Калимаи убур:',
 );
 
+/** Tajik (Latin script) (tojikī)
+ * @author Liangent
+ */
+$messages['tg-latn'] = array(
+	'openid-desc' => 'Ba viki bo [//openid.net/ OpenID] vurud kuned, va ba digar somonahoi OpenID bo hisobi korbariji viki vurud kuned',
+	'openidlogin' => 'Bo OpenID vurud kuned',
+	'openidserver' => 'Xidmatguzori OpenID',
+	'openidxrds' => 'Parvandai Yadis',
+	'openidconvert' => 'Tabdilkunandai OpenID',
+	'openiderror' => 'Xatoi tasdiq',
+	'openiderrortext' => 'Dar holati tasdiqi nişonai OpenID xatoe rux dod.',
+	'openidconfigerror' => 'Xatoi Tanzimoti OpenID',
+	'openidoptional' => 'Ixtijorī',
+	'openidemail' => 'Nişonai poctai elektronī',
+	'openidlanguage' => 'Zabon',
+	'openidchoosepassword' => 'Kalimai ubur:',
+);
+
+/** Thai (ไทย)
+ * @author Passawuth
+ */
+$messages['th'] = array(
+	'openidemail' => 'อีเมล',
+);
+
+/** Turkmen (Türkmençe)
+ * @author Hanberke
+ */
+$messages['tk'] = array(
+	'openidlanguage' => 'Dil',
+	'openid-urls-delete' => 'Öçür',
+);
+
 /** Tagalog (Tagalog)
  * @author AnakngAraw
  */
 $messages['tl'] = array(
-	'openid-desc' => 'Lumagda sa wiki na may [http://openid.net/ OpenID], at lumagda sa iba pang mga websayt na nakakaalam sa/nakababatid ng OpenID na may kuwenta/akawnt na pang-wiki',
+	'openid-desc' => 'Lumagda sa wiki na may [//openid.net/ OpenID], at lumagda sa iba pang mga websayt na nakakaalam sa/nakababatid ng OpenID na may kuwenta/akawnt na pang-wiki',
 	'openidlogin' => 'Lumagda na may OpenID',
-	'openidfinish' => 'Tapusin na ang paglagdang pang-OpenID',
 	'openidserver' => 'Serbidor ng OpenID',
 	'openidxrds' => 'Talaksang Yadis',
 	'openidconvert' => 'Tagapagpalit ng OpenID',
@@ -3322,17 +6049,20 @@
 	'openidfullname' => 'Buong pangalan',
 	'openidemail' => 'Adres ng e-liham',
 	'openidlanguage' => 'Wika',
-	'openidnotavailable' => 'Ang ninanais mong bansag na ($1) ay ginagamit na ng ibang tagagamit.',
-	'openidnotprovided' => 'Hindi nagbigay ng isang bansag ang iyong serbidor ng OpenID (maaaring hindi niya ito maibigay, o dahil sinabi mo sa kaniyang huwag gawin ito).',
+	'openidtimezone' => 'Sona ng oras',
+	'openidchooselegend' => 'Mapagpipiliang pangalan ng tagagamit',
 	'openidchooseinstructions' => 'Lahat ng mga tagagamit ay kinakailangang may bansag;
 makakapili ka mula sa mga pagpipiliang nasa ibaba.',
+	'openidchoosenick' => 'Ang palayaw mo ($1)',
 	'openidchoosefull' => 'Ang buong pangalan mo ($1)',
 	'openidchooseurl' => 'Isang pangalang napulot (napili/nakuha) mula sa iyong OpenID ($1)',
 	'openidchooseauto' => 'Isang pangalang kusang nalikha ($1)',
 	'openidchoosemanual' => 'Isang pangalang ikaw ang pumili:',
-	'openidchooseexisting' => 'Isang umiiral na kuwenta sa wiking ito:',
-	'openidchoosepassword' => 'hudyat:',
-	'openidconvertinstructions' => 'Nagpapahintulot ang pormularyong ito upang mabago mo ang iyong kuwenta ng tagagamit para magamit ang isang URL ng OpenID.',
+	'openidchooseexisting' => 'Isang umiiral na akawnt sa wiking ito:',
+	'openidchooseusername' => 'Pangalan ng tagagamit:',
+	'openidchoosepassword' => 'Hudyat:',
+	'openidconvertinstructions' => 'Nagpapahintulot ang pormularyong ito upang mabago mo ang iyong akawnt na pangtagagamit upang magamit ang isang URL ng OpenID o makapagdagdag ng maraming pang mga URL na pang-OpenID.',
+	'openidconvertoraddmoreids' => 'Gawing OpenID o magdagdag ng iba pang URL na pang-OpenID',
 	'openidconvertsuccess' => 'Matagumpay na napalitan (nabago) upang maging OpenID',
 	'openidconvertsuccesstext' => 'Matagumpay mong napalitan/nabago ang iyong OpenID para maging $1.',
 	'openidconvertyourstext' => 'Iyan na mismo ang iyong OpenID.',
@@ -3343,30 +6073,48 @@
 	'openidnousername' => 'Walang tinukoy na pangalan ng tagagamit.',
 	'openidbadusername' => 'Masama ang tinukoy na pangalan ng tagagamit.',
 	'openidautosubmit' => 'Kabilang/kasama sa pahinang ito ang isang pormularyo na dapat na kusang maipasa/maipadala kapag hindi pinaandar (pinagana) ang JavaScript.
-Kung hindi, subukin ang pindutang \\"Magpatuloy\\".',
+Kung hindi, subukin ang pindutang "Continue" (Magpatuloy).',
 	'openidclientonlytext' => 'Hindi mo magagamit ang mga kuwenta mula sa wiking ito bilang mga OpenID sa iba pang sityo/sayt.',
 	'openidloginlabel' => 'URL ng OpenID',
-	'openidlogininstructions' => "Tinatangkilik ng {{SITENAME}} ang pamantayang [http://openid.net/ OpenID] para sa mga isahang paglagda sa pagitan ng mga sayt ng Web.
+	'openidlogininstructions' => "Tinatangkilik ng {{SITENAME}} ang pamantayang [//openid.net/ OpenID] para sa mga isahang paglagda sa pagitan ng mga sayt ng Web.
 Hinahayaan ka ng OpenID na makalagda sa maraming iba't ibang mga sityo ng Web na hindi gumagamit ng isang iba pang hudyat para sa bawat isa.
-(Tingnan ang [http://en.wikipedia.org/wiki/OpenID lathalaing OpenID ng Wikipedia] para sa mas marami pang kabatiran.)
+(Tingnan ang [//en.wikipedia.org/wiki/OpenID lathalaing OpenID ng Wikipedia] para sa mas marami pang kabatiran.)
 
 Kung mayroon ka nang kuwenta sa {{SITENAME}}, maaari kang [[Special:UserLogin|lumagdang papasok]] sa pamamagitan ng iyong pangalan ng tagagamit at hudyat sa karaniwang paraan.
 Upang makagamit ng OpenID sa hinaharap, maaari mong [[Special:OpenIDConvert|palitan ang iyong akawnt upang maging OpenID]] pagkatapos mong lumagda sa karaniwang paraan.
 
 Maraming mga [http://wiki.openid.net/Public_OpenID_providers tagapagbigay ng OpenID], at maaaring mayroon ka nang isang kuwentang pinagana ng OpenID na nasa iba pang palingkuran.",
-	'openidupdateuserinfo' => 'Isapanahon ang aking pansariling kabatiran',
-	'openid-prefstext' => 'Mga kagustuhang pang-[http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Itago ang <a href="http://openid.net/">OpenID</a> mo sa ibabaw ng iyong pahina ng tagagamit, kapag lumagda ka sa pamamagitan ng OpenID.',
-	'openid-pref-update-userinfo-on-login' => 'Isapahaon ang aking kabatiran mula sa katauhang pang-OpenID sa bawat pagkakataong lalagda akong papasok',
+	'openidupdateuserinfo' => 'Isapanahon ang aking pansariling kabatiran:',
+	'openiddelete' => 'Burahin ang OpenID',
+	'openiddelete-text' => 'Sa pagpaindot ng pindutang "{{int:openiddelete-button}}", aalisin mo ang OpenID na $1 mula sa iyong akawnt.  Hindi ka na makalalagdang papasok sa pamamagitan ng ganitong OpenID.',
+	'openiddelete-button' => 'Tiyakin',
+	'openiddeleteerrornopassword' => 'Hindi mo mabubura ang lahat ng mga OpenID mo dahil walang hudyat ang akawnt mo.
+Hindi ka makalalagda na walang OpenID.',
+	'openiddeleteerroropenidonly' => 'Hindi mo mabubura ang lahat ng mga OpenID mo dahil hindi pinapayagan kang lumagda sa pamamagitan lang ng OpenID.
+Hindi ka maaaring makalagda na walang OpenID.',
+	'openiddelete-sucess' => 'Matagumpay na natanggal ang OpenID mula sa iyong akawnt.',
+	'openiddelete-error' => 'Naganap ang isang kamalian habang tinatanggal ang OpenID mula sa iyong akawnt.',
+	'openid-prefstext' => 'Mga kagustuhang pang-[//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Itago ang OpenID mo sa ibabaw ng iyong pahina ng tagagamit, kapag lumagda ka sa pamamagitan ng OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Isapanahon ang sumusunod na kabatiran mula sa katauhang pang-OpenID sa bawat pagkakataong lalagda akong papasok:',
+	'openid-urls-desc' => 'Mga openID na may kaugnayan sa akawnt mo:',
+	'openid-urls-action' => 'Galaw',
+	'openid-urls-delete' => 'Burahin',
+	'openid-add-url' => 'Magdagdag ng isang bagong OpenID',
+	'openid-login-or-create-account' => 'Lumagda o lumikha ng bagong akawnt',
+	'openid-provider-label-openid' => 'Ipasok ang iyong URL na pang-OpenID',
+	'openid-provider-label-google' => 'Lumagdang ginagamit ang iyong akawnt na pang-Google',
+	'openid-provider-label-yahoo' => 'Lumagdang ginagamit ang akawnt mong pang-Yahoo',
+	'openid-provider-label-aol' => 'Ipasok ang iyong katawagang pang-AOL',
+	'openid-provider-label-other-username' => 'Ipasok ang iyong pangalang pangtagagamit na pang-$1',
 );
 
 /** Turkish (Türkçe)
  * @author Joseph
  */
 $messages['tr'] = array(
-	'openid-desc' => 'Vikiye bir [http://openid.net/ OpenID] ile giriş yapın, ve diğer OpenID kullanan web sitelerine bir viki kullanıcı hesabıyla giriş yapın.',
+	'openid-desc' => 'Vikiye bir [//openid.net/ OpenID] ile giriş yapın, ve diğer OpenID kullanan web sitelerine bir viki kullanıcı hesabıyla giriş yapın.',
 	'openidlogin' => 'OpenID ile giriş yapın',
-	'openidfinish' => 'OpenID girişini tamamlayın',
 	'openidserver' => 'OpenID sunucusu',
 	'openidxrds' => 'Yadis dosyası',
 	'openidconvert' => 'OpenID çeviricisi',
@@ -3395,17 +6143,20 @@
 	'openidfullname' => 'Tam ad',
 	'openidemail' => 'E-posta adresi',
 	'openidlanguage' => 'Dil',
-	'openidnotavailable' => 'Tercih ettiğiniz kullanıcı adı ($1) zaten başka bir kullanıcı tarafından kullanımda.',
-	'openidnotprovided' => 'OpenID sunucunuz bir kullanıcı adı sağlamadı (ya bunu yapamadığı için, ya da yapmamasını söylediğiniz için).',
+	'openidtimezone' => 'Saat dilimi',
+	'openidchooselegend' => 'Kullanıcı adı tercihi',
 	'openidchooseinstructions' => 'Tüm kullanıcılar için bir kullanıcı adı gereklidir;
 aşağıdaki seçeneklerden birini seçebilirsiniz.',
+	'openidchoosenick' => 'Rumuzunuz ($1)',
 	'openidchoosefull' => 'Tam adınız ($1)',
 	'openidchooseurl' => "OpenID'nizden bir isim alındı ($1)",
 	'openidchooseauto' => 'Otomatik oluşturulan bir isim ($1)',
 	'openidchoosemanual' => 'Tercihinizden bir isim:',
-	'openidchooseexisting' => 'Bu vikide mevcut bir hesap:',
-	'openidchoosepassword' => 'parola:',
-	'openidconvertinstructions' => 'Bu form bir OpenID URLsi kullanmak için kullanıcı hesabınızı değiştirmenizi sağlar.',
+	'openidchooseexisting' => 'Bu vikide mevcut bir hesap',
+	'openidchooseusername' => 'Kullanıcı adı:',
+	'openidchoosepassword' => 'Parola:',
+	'openidconvertinstructions' => 'Bu form bir OpenID URLsi kullanmak ya da daha fazla OpenID URLsi eklemek için kullanıcı hesabınızı değiştirmenizi sağlar.',
+	'openidconvertoraddmoreids' => "OpenID'ye dönüştürün ya da başka bir OpenID URLsi ekleyin",
 	'openidconvertsuccess' => 'OpenIDye başarıyla dönüştürüldü',
 	'openidconvertsuccesstext' => "OpenIDnizi başarıyla $1'e dönüştürdünüz.",
 	'openidconvertyourstext' => 'Bu zaten sizin OpenIDniz.',
@@ -3416,30 +6167,69 @@
 	'openidnousername' => 'Herhangi bir kullanıcı adı belirtilmedi.',
 	'openidbadusername' => 'Kötü bir kullanıcı adı belirtildi.',
 	'openidautosubmit' => 'Bu sayfa, JavaScript etkin ise otomatik olarak gönderilmesi gereken bir form içeriyor.
-Eğer değilse, \\"Devam\\" düğmesini deneyin.',
+Eğer değilse, "Continue" (Devam) düğmesini deneyin.',
 	'openidclientonlytext' => 'Bu vikideki hesapları başka sitelerde OpenID olarak kullanamazsınız.',
 	'openidloginlabel' => 'OpenID URLsi',
-	'openidlogininstructions' => "{{SITENAME}}, web sitelerinde tekli giriş için [http://openid.net/ OpenID] standartını desteklemektedir.
+	'openidlogininstructions' => "{{SITENAME}}, web sitelerinde tekli giriş için [//openid.net/ OpenID] standartını desteklemektedir.
 OpenID, herbirine farklı şifre kullanmadan birçok web sitesine giriş yapmanıza izin verir.
-(Daha fazla bilgi için [http://en.wikipedia.org/wiki/OpenID Vikipedideki OpenID maddesine bakın].)
+(Daha fazla bilgi için [//en.wikipedia.org/wiki/OpenID Vikipedideki OpenID maddesine bakın].)
 
 Eğer {{SITENAME}} sitesinde mevcut bir hesabınız varsa, her zamanki gibi kullanıcı adınız ve şifrenizle [[Special:UserLogin|giriş yapabilirsiniz]].
 İleride OpenID kullanmak için, normal giriş yaptıktan sonra [[Special:OpenIDConvert|hesabınızı OpenID'ye çevirebilirsiniz]].
 
-Birçok [http://openid.net/get/ OpenID sağlayıcısı] vardır, ve bir başka serviste halihazırda bir OpenID-etkin hesabınız olabilir.",
-	'openidupdateuserinfo' => 'Kişisel bilgimi güncelle',
-	'openid-prefstext' => '[http://openid.net/ OpenID] tercihleri',
+Birçok [//openid.net/get/ OpenID sağlayıcısı] vardır, ve bir başka serviste halihazırda bir OpenID-etkin hesabınız olabilir.",
+	'openidupdateuserinfo' => 'Kişisel bilgimlerimi güncelle:',
+	'openiddelete' => "OpenID'yi sil",
+	'openiddelete-text' => '"{{int:openiddelete-button}}" düğmesine tıklayarak, $1 OpenID\'sini hesabınızdan çıkaracaksınız.
+Bu OpenID ile artık giriş yapamayacaksınız.',
+	'openiddelete-button' => 'Onayla',
+	'openiddeleteerrornopassword' => "Tüm OpenID'lerinizi silemezsiniz çünkü hesabınızın şifresi yok.
+OpenID olmadan giriş yapamazsınız.",
+	'openiddeleteerroropenidonly' => "Tüm OpenID'lerinizi silemezsiniz çünkü sadece OpenID ile giriş yapmaya izniniz var.
+OpenID olmadan giriş yapamazsınız.",
+	'openiddelete-sucess' => 'OpenID hesabınızdan başarıyla kaldırıldı.',
+	'openiddelete-error' => 'OpenID hesabınızdan çıkarılırken bir hata oluştu.',
+	'openid-prefstext' => '[//openid.net/ OpenID] tercihleri',
 	'openid-pref-hide' => 'Eğer OpenID ile giriş yaparsanız, kullanıcı sayfanızda OpenID URLnizi gizle.',
-	'openid-pref-update-userinfo-on-login' => 'Her oturum açışımda OpenID karakterinden bilgilerimi güncelle',
+	'openid-pref-update-userinfo-on-login' => 'Her oturum açışımda OpenID karakterinden aşağıdaki bilgileri güncelle:',
+	'openid-urls-desc' => "Hesabınızla ilişkili OpenID'ler:",
+	'openid-urls-action' => 'Eylem',
+	'openid-urls-delete' => 'Sil',
+	'openid-add-url' => 'Yeni bir OpenID ekle',
+	'openid-login-or-create-account' => 'Oturum açın ya da Yeni Hesap Oluşturun',
+	'openid-provider-label-openid' => 'OpenID URLnizi girin',
+	'openid-provider-label-google' => 'Google hesabınızı kullanarak giriş yapın',
+	'openid-provider-label-yahoo' => 'Yahoo hesabınızı kullanarak giriş yapın',
+	'openid-provider-label-aol' => 'AOL ekran-adınızı girin',
+	'openid-provider-label-other-username' => '$1 kullanıcı adınızı girin',
 );
 
+/** Uyghur (Arabic script) (ئۇيغۇرچە)
+ * @author Alfredie
+ */
+$messages['ug-arab'] = array(
+	'openidlanguage' => 'تىل',
+);
+
+/** Uyghur (Latin script) (Uyghurche‎)
+ * @author Jose77
+ */
+$messages['ug-latn'] = array(
+	'openidlanguage' => 'Til',
+);
+
 /** Ukrainian (Українська)
+ * @author A1
  * @author AS
  * @author Aleksandrit
+ * @author Alex Khimich
+ * @author NickK
+ * @author Prima klasy4na
+ * @author Тест
  */
 $messages['uk'] = array(
-	'openid-desc' => 'Вхід у вікі за допомогою [http://openid.net/ OpenID], а також вхід на інші сайти, що підтримують OpenID за допомогою акаунта в вікі',
-	'openidlogin' => 'Вхід з допомогою OpenID',
+	'openid-desc' => 'Вхід у вікі за допомогою [//openid.net/ OpenID], а також вхід на інші сайти, що підтримують OpenID за допомогою акаунта в вікі',
+	'openidlogin' => 'Вхід / створення аккаунту за допомогою OpenID',
 	'openidserver' => 'Сервер OpenID',
 	'openidxrds' => 'Файл Yadis',
 	'openidconvert' => 'Перетворювач OpenID',
@@ -3468,17 +6258,20 @@
 	'openidfullname' => "Повне ім'я",
 	'openidemail' => 'Адреса ел. пошти',
 	'openidlanguage' => 'Мова',
-	'openidnotavailable' => 'Зазначений вами псевдонім ($1) вже використовується іншим учасником.',
-	'openidnotprovided' => 'Ваш сервер OpenID не надав псевдонім (чи тому, що він не може, чи тому, що ви вказали не робити цього).',
+	'openidtimezone' => 'Часовий пояс',
+	'openidchooselegend' => 'Вибір імені користувача та облікового запису',
 	'openidchooseinstructions' => 'Кожен користувач повинен мати псевдонім;
 ви можете вибрати один з представлених нижче.',
+	'openidchoosenick' => 'Ваш нік ($1)',
 	'openidchoosefull' => "Ваше повне ім'я ($1)",
 	'openidchooseurl' => 'Ім`я, отримане з вашого OpenID ($1)',
 	'openidchooseauto' => "Автоматично створене ім'я ($1)",
 	'openidchoosemanual' => "Ім'я на ваш вибір:",
-	'openidchooseexisting' => 'Існуючий акаунт на цій вікі:',
-	'openidchoosepassword' => 'пароль:',
-	'openidconvertinstructions' => 'Ця форма дозволяє вам змінити використання акаунту на використання адреси OpenID.',
+	'openidchooseexisting' => 'Існуючий обліковий запис на цій вікі',
+	'openidchooseusername' => "Ім'я користувача:",
+	'openidchoosepassword' => 'Пароль:',
+	'openidconvertinstructions' => 'Ця форма дозволяє вам змінити використання Вашого облікового запису на використання адреси OpenID або додати кілька адрес OpenID.',
+	'openidconvertoraddmoreids' => 'Перетворити на OpenID або додати іншу адресу OpenID',
 	'openidconvertsuccess' => 'Успішне перетворення в OpenID',
 	'openidconvertsuccesstext' => 'Ви успішно перетворили ваш OpenID в $1.',
 	'openidconvertyourstext' => 'Це вже ваш OpenID.',
@@ -3489,19 +6282,48 @@
 	'openidnousername' => "Не вказано ім'я користувача.",
 	'openidbadusername' => "Зазначено невірне ім'я користувача.",
 	'openidautosubmit' => 'Ця сторінка містить форму, яка повинна бути автоматично відправлена, якщо у вас включений JavaScript.
-Якщо цього не сталося, спробуйте натиснути на кнопку «Продовжити».',
+Якщо цього не сталося, спробуйте натиснути на кнопку «Continue» (Продовжити).',
 	'openidclientonlytext' => 'Ви не можете використовувати акаунти з цієї вікі, як OpenID на іншому сайті.',
 	'openidloginlabel' => 'Адреса OpenID',
-	'openid-pref-hide' => 'Приховувати ваш <a href="http://openid.net/">OpenID</a> на вашій сторінці користувача, якщо ви ввійшли з допомогою OpenID.',
+	'openidlogininstructions' => "{{SITENAME}} підтримує стандарт [//openid.net/ OpenID], що дозволяє використовувати один обліковий запис для входу на різні веб-сайти.
+OpenID дозволяє вам заходити на різні веб-сайти без указання різних паролів для них
+(детальніше див. [//uk.wikipedia.org/wiki/OpenID статтю про OpenID в Вікіпедії]).
+
+Якщо ви вже маєте обліковий запис на {{SITENAME}}, Ви можете [[Special:UserLogin|війти]] як звичайно, використовуючи Ваші ім'я користувача і пароль.
+Щоб використовувати надалі OpenID, Ви можете [[Special:OpenIDConvert|перетворити Ваш обліковий запис на OpenID]], після того, як ви ввійшли звичайним образом.
+
+Існує безліч [http://wiki.openid.net/Public_OpenID_providers загальнодоступних провайдерів OpenID], можливо, Ви вже маєте обліковий запис OpenID на іншому сайті.",
+	'openidupdateuserinfo' => 'Оновити мою особисту інформацію:',
+	'openiddelete' => 'Видалити OpenID',
+	'openiddelete-text' => 'Натиснувши на кнопку «{{int:openiddelete-button}}», Ви видалите OpenID $1 зі свого облікового запису. Ви більше не зможете входити із цим OpenID.',
+	'openiddelete-button' => 'Підтвердити',
+	'openiddeleteerrornopassword' => 'Ви не можете вилучити всі свої OpenID, бо ваш обліковий запис не має пароля.
+У вас не буде можливості увійти в ситему без OpenID.',
+	'openiddeleteerroropenidonly' => 'Ви не можете вилучити всі свої OpenID, бо вам дозволено входити в систему тільки через OpenID.
+У вас не буде можливості увійти в ситему без OpenID.',
+	'openiddelete-sucess' => 'OpenID успішно вилучений з Вашого облікового запису.',
+	'openiddelete-error' => 'Відбулася помилка при видаленні OpenID з Вашого облікового запису.',
+	'openid-prefstext' => 'Параметри [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Приховувати ваш OpenID на вашій сторінці користувача, якщо ви ввійшли з допомогою OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Оновлювати наступну інформацію про мене через OpenID щораз, коли я представляюся системі:',
+	'openid-urls-desc' => "OpenID, пов'язані з Вашим обліковим записом:",
+	'openid-urls-action' => 'Дія',
+	'openid-urls-delete' => 'Видалити',
+	'openid-add-url' => 'Додати новий OpenID',
+	'openid-login-or-create-account' => 'Представитися системі або створити новий обліковий запис',
+	'openid-provider-label-openid' => 'Введіть URL Вашого OpenID',
+	'openid-provider-label-google' => 'Представитися, використовуючи обліковий запис Google',
+	'openid-provider-label-yahoo' => 'Представитися, використовуючи обліковий запис Yahoo',
+	'openid-provider-label-aol' => "Введіть ваше ім'я в AOL",
+	'openid-provider-label-other-username' => "Введіть Ваше ім'я користувача $1",
 );
 
 /** Vèneto (Vèneto)
  * @author Candalua
  */
 $messages['vec'] = array(
-	'openid-desc' => "Entra con [http://openid.net/ OpenID] in te la wiki, e entra in tei altri siti web che dòpara OpenID co' na utensa wiki",
+	'openid-desc' => "Entra con [//openid.net/ OpenID] in te la wiki, e entra in tei altri siti web che dòpara OpenID co' na utensa wiki",
 	'openidlogin' => 'Acesso con OpenID',
-	'openidfinish' => "Conpleta l'acesso OpenID",
 	'openidserver' => 'server OpenID',
 	'openidxrds' => 'file Yadis',
 	'openidconvert' => 'convertidor OpenID',
@@ -3530,8 +6352,7 @@
 	'openidfullname' => 'Nome par intiero',
 	'openidemail' => 'Indirisso de posta eletronica',
 	'openidlanguage' => 'Lengoa',
-	'openidnotavailable' => "El to soranòme preferìo ($1) el xe xà doparà da n'antro utente.",
-	'openidnotprovided' => "El to server OpenID no'l gà fornìo un soranòme (o parché no'l gà podesto, o parché ti ti gà dito de no farlo).",
+	'openidtimezone' => 'Fuso orario',
 	'openidchooseinstructions' => 'Tuti i utenti i gà da verghe un soranòme;
 te pol tórghene uno da le opzioni seguenti.',
 	'openidchoosefull' => 'El to nome par intiero ($1)',
@@ -3539,8 +6360,8 @@
 	'openidchooseauto' => 'Un nome generà automaticamente ($1)',
 	'openidchoosemanual' => 'Un nome a sielta tua:',
 	'openidchooseexisting' => 'Na utensa esistente su sta wiki:',
-	'openidchoosepassword' => 'password:',
-	'openidconvertinstructions' => 'Sto modulo el te parmete de canbiar la to utensa par doparar un URL OpenID.',
+	'openidchoosepassword' => 'Password:',
+	'openidconvertinstructions' => 'Sto modulo el te parmete de canbiar la to utensa par doparar un URL OpenID o zontar altri URL OpenID.',
 	'openidconvertsuccess' => 'Convertìo con successo a OpenID',
 	'openidconvertsuccesstext' => 'El to OpenID el xe stà convertìo a $1.',
 	'openidconvertyourstext' => 'Sto chì el xe xà el to OpenID.',
@@ -3550,39 +6371,69 @@
 Se ti vol doparar OpenID par entrar in futuro, te pol [[Special:OpenIDConvert|convertir la to utensa par doparar OpenID]].",
 	'openidnousername' => 'Nissun nome utente indicà.',
 	'openidbadusername' => "El nome utente indicà no'l xe mia valido.",
-	'openidautosubmit' => 'Sta pàxena la include un modulo che\'l dovarìa èssar invià automaticamente se ti gà JavaScript ativà. Se no, próa a strucar el boton \\"Continua\\".',
+	'openidautosubmit' => 'Sta pàxena la include un modulo che\'l dovarìa èssar invià automaticamente se ti gà JavaScript ativà.
+Se no, próa a strucar el boton "Continue" (Continua).',
 	'openidclientonlytext' => 'No te podi doparar le utense de sta wiki come OpenID su de un altro sito.',
 	'openidloginlabel' => 'URL OpenID',
-	'openidlogininstructions' => "{{SITENAME}} el suporta el standard [http://openid.net/ OpenID] par el login unico sui siti web.
+	'openidlogininstructions' => "{{SITENAME}} el suporta el standard [//openid.net/ OpenID] par el login unico sui siti web.
 OpenID el te permete de registrarte in molti siti web sensa doparar na password difarente par ognuno.
-(Lèzi la [http://en.wikipedia.org/wiki/OpenID voce de Wikipedia su l'OpenID] par savérghene piassè.)
+(Lèzi la [//en.wikipedia.org/wiki/OpenID voce de Wikipedia su l'OpenID] par savérghene piassè.)
 
 Se te ghè zà un account su {{SITENAME}}, te podi far el [[Special:UserLogin|login]] col to nome utente e la to password come al solito.
 Par doparar OpenID in futuro, te podi [[Special:OpenIDConvert|convertir el to account a OpenID]] dopo che te ghè fato normalmente el login.
 
-Ghe xe molti [http://openid.net/get/ Provider OpenID], e te podaressi verghe zà un account abilità a l'OpenID su un altro servissio.",
+Ghe xe molti [//openid.net/get/ Provider OpenID], e te podaressi verghe zà un account abilità a l'OpenID su un altro servissio.",
 	'openidupdateuserinfo' => 'Ajorna le me informassion personài',
-	'openid-prefstext' => '[http://openid.net/ OpenID] preferense',
-	'openid-pref-hide' => 'Scondi el to <a href="http://openid.net/">OpenID</a> su la to pàxena utente, se te fè el login con OpenID.',
-	'openid-pref-update-userinfo-on-login' => "Ajorna le me informassion da l'utensa de OpenID ogni olta che me conéto",
+	'openiddelete' => 'Scancela OpenID',
+	'openiddelete-button' => 'Va ben',
+	'openid-prefstext' => '[//openid.net/ OpenID] preferense',
+	'openid-pref-hide' => 'Scondi el to OpenID su la to pàxena utente, se te fè el login con OpenID.',
+	'openid-pref-update-userinfo-on-login' => "Ajorna le seguenti informassion da l'utensa de OpenID ogni olta che me conéto:",
+	'openid-urls-action' => 'Azion',
+	'openid-urls-delete' => 'Scancela',
+	'openid-add-url' => 'Zonta un OpenID novo',
+	'openid-login-or-create-account' => 'Entra o crèa na utensa nova',
+	'openid-provider-label-openid' => "Inserissi l'URL del to OpenID",
+	'openid-provider-label-google' => 'Entra doparando la to utensa Google',
+	'openid-provider-label-yahoo' => 'Entra doparando la to utensa Yahoo',
+	'openid-provider-label-aol' => 'Inserissi el to screenname AOL',
+	'openid-provider-label-other-username' => 'Inserissi el to nome utente $1',
 );
 
+/** Veps (Vepsan kel')
+ * @author Игорь Бродский
+ */
+$messages['vep'] = array(
+	'openidxrds' => 'Yadis-fail',
+	'openiderror' => 'Verifikacijan petuz',
+	'openidoptional' => 'Opcionaline',
+	'openidrequired' => 'Pidab',
+	'openidnickname' => 'Nikneim',
+	'openidemail' => 'E-počtan adres',
+	'openidlanguage' => "Kel'",
+	'openidtimezone' => 'Aigzon',
+	'openidchoosepassword' => 'Peitsana:',
+	'openidupdateuserinfo' => 'Udištada minun personaline informacii',
+	'openiddelete-button' => 'Vahvištoitta',
+	'openid-urls-action' => 'Tegend',
+	'openid-urls-delete' => 'Heitta poiš',
+);
+
 /** Vietnamese (Tiếng Việt)
  * @author Minh Nguyen
  * @author Vinhtantran
  */
 $messages['vi'] = array(
-	'openid-desc' => 'Đăng nhập vào wiki dùng [http://openid.net/ OpenID] và đăng nhập vào các website nhận OpenID dùng tài khoản wiki',
-	'openidlogin' => 'Đăng nhập dùng OpenID',
-	'openidfinish' => 'Đăng nhập dùng OpenID xong',
+	'openid-desc' => 'Đăng nhập vào wiki dùng [//openid.net/ OpenID] và đăng nhập vào các website nhận OpenID dùng tài khoản wiki',
+	'openidlogin' => 'Đăng nhập / mở tài khoản dùng OpenID',
 	'openidserver' => 'Dịch vụ OpenID',
 	'openidxrds' => 'Tập tin Yadis',
-	'openidconvert' => 'Chuyển đổi ID Mở',
+	'openidconvert' => 'Chuyển đổi OpenID',
 	'openiderror' => 'Lỗi thẩm tra',
 	'openiderrortext' => 'Có lỗi khi thẩm tra địa chỉ OpenID.',
 	'openidconfigerror' => 'Lỗi thiết lập OpenID',
 	'openidconfigerrortext' => 'Cấu hình nơi lưu trữ OpenID cho wiki này không hợp lệ.
-Xin hãy liên lạc với [[Special:ListUsers/sysop|quản lý viên]].',
+Xin hãy liên lạc với [[Special:ListUsers/sysop|bảo quản viên]].',
 	'openidpermission' => 'Lỗi quyền OpenID',
 	'openidpermissiontext' => 'Địa chỉ OpenID của bạn không được phép đăng nhập vào dịch vụ này.',
 	'openidcancel' => 'Đã hủy bỏ thẩm tra',
@@ -3590,9 +6441,14 @@
 	'openidfailure' => 'Không thẩm tra được',
 	'openidfailuretext' => 'Không thể thẩm tra địa chỉ OpenID. Lỗi: “$1”',
 	'openidsuccess' => 'Đã thẩm tra thành công',
-	'openidsuccesstext' => 'Đã thẩm tra địa chỉ OpenID thành công.',
-	'openidusernameprefix' => 'Thành viên ID Mở',
-	'openidserverlogininstructions' => 'Hãy cho vào mật khẩu ở dưới để đăng nhập vào $3 dùng tài khoản $2 (trang thảo luận $1).',
+	'openidsuccesstext' => "'''Đã xác minh và đăng nhập như $1'''.
+
+Địa chỉ OpenID của bạn là <code><$2></code>.
+
+Quản lý OpenID này và các OpenID sau trong [[Special:Preferences#prefsection-openid|thẻ OpenID]] của trang tùy chọn.<br />
+Có thể đặt một mật khẩu tùy chọn cho tài khoản trong [[Special:Preferences#prefsection-personal|thẻ Thông tin cá nhân]].",
+	'openidusernameprefix' => 'Thành viên OpenID',
+	'openidserverlogininstructions' => '$2, $3 yêu cầu bạn nhập mật khẩu cho trang cá nhân của bạn, $1, tức là địa chỉ OpenID của bạn.',
 	'openidtrustinstructions' => 'Hãy kiểm tra hộp này nếu bạn muốn cho $1 biết thông tin cá nhân của bạn.',
 	'openidallowtrust' => 'Để $1 tin cậy vào tài khoản này.',
 	'openidnopolicy' => 'Website chưa xuất bản chính sách về sự riêng tư.',
@@ -3603,41 +6459,73 @@
 	'openidfullname' => 'Tên đầy đủ',
 	'openidemail' => 'Địa chỉ thư điện tử',
 	'openidlanguage' => 'Ngôn ngữ',
-	'openidnotavailable' => 'Tên hiệu mà bạn muốn sử dụng, “$1”, đã được sử dụng bởi người khác.',
-	'openidnotprovided' => 'Dịch vụ OpenID của bạn chưa cung cấp tên hiệu, hoặc vì nó không có khả năng này, hoặc bạn đã tắt tính năng tên hiệu.',
+	'openidtimezone' => 'Múi giờ',
+	'openidchooselegend' => 'Lựa chọn tên người dùng và tài khoản',
 	'openidchooseinstructions' => 'Mọi người dùng cần có tên hiệu; bạn có thể chọn tên hiệu ở dưới.',
+	'openidchoosenick' => 'Tên hiệu của bạn ($1)',
 	'openidchoosefull' => 'Tên đầy đủ của bạn ($1)',
 	'openidchooseurl' => 'Tên bắt nguồn từ OpenID của bạn ($1)',
 	'openidchooseauto' => 'Tên tự động ($1)',
 	'openidchoosemanual' => 'Tên khác:',
-	'openidchooseexisting' => 'Một tài khoản hiện có trên wiki này:',
-	'openidchoosepassword' => 'mật khẩu:',
-	'openidconvertinstructions' => 'Mẫu này cho phép bạn thay đổi tài khoản người dùng của bạn để sử dụng một địa chỉ URL ID Mở.',
-	'openidconvertsuccess' => 'Đã chuyển đổi sang ID Mở thành công',
-	'openidconvertsuccesstext' => 'Bạn đã chuyển đổi ID Mở của bạn sang $1 thành công.',
-	'openidconvertyourstext' => 'Đó đã là ID Mở của bạn.',
-	'openidconvertothertext' => 'Đó là ID Mở của một người nào khác.',
-	'openidalreadyloggedin' => "'''Bạn đã đăng nhập rồi, $1!'''
+	'openidchooseexisting' => 'Một tài khoản hiện có trên wiki này',
+	'openidchooseusername' => 'tên người dùng:',
+	'openidchoosepassword' => 'Mật khẩu:',
+	'openidconvertinstructions' => 'Mẫu này cho phép bạn thay đổi tài khoản người dùng của bạn để sử dụng một địa chỉ URL OpenID hay thêm địa chỉ OpenID.',
+	'openidconvertoraddmoreids' => 'Chuyển đổi OpenID hay thêm địa chỉ OpenID',
+	'openidconvertsuccess' => 'Đã chuyển đổi sang OpenID thành công',
+	'openidconvertsuccesstext' => 'Bạn đã chuyển đổi OpenID của bạn sang $1 thành công.',
+	'openidconvertyourstext' => 'Đó đã là OpenID của bạn.',
+	'openidconvertothertext' => 'Đó là OpenID của một người nào khác.',
+	'openidalreadyloggedin' => 'Bạn đã đăng nhập rồi.',
+	'openidalreadyloggedintext' => "'''Bạn đã đăng nhập rồi, $1!'''
 
-Nếu bạn muốn sử dụng ID Mở để đăng nhập vào lần sau, bạn có thể [[Special:OpenIDConvert|chuyển đổi tài khoản của bạn để dùng ID Mở]].",
+Quản lý (xem, xóa, và thêm) các OpenID trong [[Special:Preferences#prefsection-openid|thẻ OpenID]] tại trang tùy chọn.",
 	'openidnousername' => 'Chưa chỉ định tên người dùng.',
 	'openidbadusername' => 'Tên người dùng không hợp lệ.',
 	'openidautosubmit' => 'Trang này có một mẫu sẽ tự động đăng lên nếu bạn kích hoạt JavaScript.
-Nếu không, hãy thử nút \\"Tiếp tục\\".',
-	'openidclientonlytext' => 'Bạn không thể sử dụng tài khoản tại wiki này như ID Mở tại trang khác.',
+Nếu không, hãy thử nút "Continue" (Tiếp tục).',
+	'openidclientonlytext' => 'Bạn không thể sử dụng tài khoản tại wiki này như OpenID tại trang khác.',
 	'openidloginlabel' => 'Địa chỉ OpenID',
-	'openidlogininstructions' => '{{SITENAME}} hỗ trợ chuẩn [http://openid.net/ OpenID] để đăng nhập một lần giữa các trang web.
-OpenID cho phép bạn đăng nhập vào nhiều trang web khác nhau mà không phải sử dụng mật khẩu khác nhau tại mỗi trang.
-(Xem [http://en.wikipedia.org/wiki/OpenID bài viết về OpenID của Wikipedia] để biết thêm chi tiết.)
-
-Nếu bạn đã có một tài khoản tại {{SITENAME}}, bạn có thể [[Special:UserLogin|đăng nhập]] bằng tên người dùng và mật khẩu của bạn như thông thường.
-Để dùng OpenID vào lần sau, bạn có thể [[Special:OpenIDConvert|chuyển đổi tài khoản của bạn sang ID Mở]] sau khi đã đăng nhập bình thường.
-
-Có nhiều [http://wiki.openid.net/Public_OpenID_providers nhà cung cấp OpenID Công cộng], và có thể bạn đã có một tài khoản kích hoạt OpenID tại dịch vụ khác.',
-	'openidupdateuserinfo' => 'Cập nhật thông tin cá nhân của tôi',
-	'openid-prefstext' => 'Tùy chỉnh [http://openid.net/ OpenID]',
-	'openid-pref-hide' => 'Ẩn <a href="http://openid.net/">ID Mở</a> của bạn khỏi trang thành viên, nếu bạn đăng nhập bằng ID Mở.',
-	'openid-pref-update-userinfo-on-login' => 'Cập nhật thông tin của tôi từ OpenID persona mỗi khi tôi đăng nhập',
+	'openidlogininstructions' => '{{SITENAME}} hỗ trợ tiêu chuẩn [//openid.net/ OpenID] để đăng nhập một lần giữa các trang Web.
+OpenID cho phép bạn đăng nhập vào nhiều trang Web khác nhau mà không phải sử dụng mật khẩu khác nhau tại mỗi trang.
+(Xem thêm chi tiết tại [//vi.wikipedia.org/wiki/OpenID bài viết về OpenID của Wikipedia].)
+Nhiều [//openid.net/get/ dịch vụ cung cấp OpenID], và có thể bạn đã có tài khoản tại một dịch vụ kích hoạt OpenID.',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''chỉ'' cho phép đăng nhập dùng OpenID.",
+	'openidlogininstructions-passwordloginallowed' => 'Nếu bạn đã có một tài khoản tại {{SITENAME}}, bạn có thể [[Special:UserLogin|đăng nhập]] bằng tên người dùng và mật khẩu của bạn như thông thường.
+Để dùng OpenID vào lần sau, bạn có thể [[Special:OpenIDConvert|chuyển đổi tài khoản của bạn sang OpenID]] sau khi đã đăng nhập bình thường.',
+	'openidupdateuserinfo' => 'Cập nhật thông tin cá nhân của tôi:',
+	'openiddelete' => 'Xóa OpenID',
+	'openiddelete-text' => 'Khi bấm nút “{{int:openiddelete-button}}”, bạn sẽ dời OpenID $1 khỏi tài khoản của bạn.
+Bạn sẽ không đăng nhập được dùng OpenID này.',
+	'openiddelete-button' => 'Xác nhận',
+	'openiddeleteerrornopassword' => 'Bạn không có thể xóa tất cả các OpenID của bạn vì tài khoản thiếu mật khẩu. Nếu không có OpenID thì bạn không thể đăng nhập được.',
+	'openiddeleteerroropenidonly' => 'Bạn không có thể xóa tất cả các OpenID của bạn vì bạn chỉ được phép đăng nhập dùng OpenID. Nếu không có OpenID thì bạn không thể đăng nhập được.',
+	'openiddelete-sucess' => 'Đã dời OpenID thành công khỏi tài khoản của bạn.',
+	'openiddelete-error' => 'Đã gặp lỗi khi dời OpenID khỏi tài khoản của bạn.',
+	'openid-openids-were-not-merged' => 'Các OpenID không được hợp nhất lúc khi hợp nhất các tài khoản người dùng.',
+	'openid-prefstext' => 'Tùy chỉnh [//openid.net/ OpenID]',
+	'openid-pref-hide' => 'Ẩn địa chỉ OpenID của bạn khỏi trang cá nhân, nếu bạn đăng nhập bằng OpenID.',
+	'openid-pref-update-userinfo-on-login' => 'Cập nhật thông tin sau từ persona OpenID mỗi khi tôi đăng nhập:',
+	'openid-urls-desc' => 'Các OpenID được gắn vào tài khoản của bạn:',
+	'openid-urls-action' => 'Tác vụ',
+	'openid-urls-registration' => 'Thời điểm đăng ký',
+	'openid-urls-delete' => 'Xóa',
+	'openid-add-url' => 'Thêm OpenID mới',
+	'openid-login-or-create-account' => 'Đăng nhập hay mở tài khoản mới',
+	'openid-provider-label-openid' => 'Ghi vào URL OpenID của bạn',
+	'openid-provider-label-google' => 'Đăng nhập dùng tài khoản Google',
+	'openid-provider-label-yahoo' => 'Đăng nhập dùng tài khoản Yahoo!',
+	'openid-provider-label-aol' => 'Ghi vào tên màn hình AOL',
+	'openid-provider-label-other-username' => 'Ghi vào tên người dùng $1',
+	'specialpages-group-openid' => 'Các trang quản lý và trạng thái OpenID',
+	'right-openid-dashboard-access' => 'Truy cập chuẩn vào bảng điều khiển OpenID',
+	'right-openid-dashboard-admin' => 'Truy cập như bảo quản viên vào bảng điều khiển OpenID',
+	'openid-dashboard-title' => 'Bảng điều khiển OpenID',
+	'openid-dashboard-title-admin' => 'Bảng điều khiển OpenID (bảo quản viên)',
+	'openid-dashboard-introduction' => 'Cấu hình hiện hành của phần mở rộng OpenID ([$1 trợ giúp])',
+	'openid-dashboard-number-openid-users' => 'Số người dùng qua OpenID',
+	'openid-dashboard-number-openids-in-database' => 'Tổng số OpenID',
+	'openid-dashboard-number-users-without-openid' => 'Số người dùng không phải qua OpenID',
 );
 
 /** Volapük (Volapük)
@@ -3645,6 +6533,7 @@
  * @author Smeira
  */
 $messages['vo'] = array(
+	'openidxrds' => 'Ragiv: Yadis',
 	'openiderror' => 'Kontrolamapöl',
 	'openidoptional' => 'No peflagon',
 	'openidrequired' => 'Peflagon',
@@ -3652,29 +6541,46 @@
 	'openidfullname' => 'Nem lölik',
 	'openidemail' => 'Ladet leäktronik',
 	'openidlanguage' => 'Pük',
+	'openidtimezone' => 'Düpakoun',
 	'openidchooseinstructions' => 'Gebans valik neodons näinemi;
 kanol välön bali sökölas.',
 	'openidchoosefull' => 'Nem lölik ola ($1)',
 	'openidchooseauto' => 'Nem itjäfidiko pejaföl ($1)',
 	'openidchoosemanual' => 'Nem fa ol pevälöl:',
-	'openidchooseexisting' => 'Kal in vük at dabinöl:',
-	'openidchoosepassword' => 'letavöd:',
+	'openidchooseexisting' => 'Kal in vük at dabinöl',
+	'openidchooseusername' => 'Gebananem:',
+	'openidchoosepassword' => 'Letavöd:',
 	'openidnousername' => 'Gebananem nonik pegivon.',
 	'openidbadusername' => 'Gebananem no lonöföl pegivon.',
+	'openid-urls-delete' => 'Moükön',
 );
 
+/** Yiddish (ייִדיש)
+ * @author פוילישער
+ */
+$messages['yi'] = array(
+	'openidchoosepassword' => 'פאַסווארט:',
+	'openid-urls-delete' => 'אויסמעקן',
+);
+
 /** Simplified Chinese (‪中文(简体)‬)
+ * @author Anakmalaysia
  * @author Gaoxuewei
+ * @author Liangent
+ * @author Onecountry
+ * @author Wrightbus
+ * @author Xiaomingyan
+ * @author Yanmiao liu
  */
 $messages['zh-hans'] = array(
-	'openidlogin' => '使用OpenID登陆',
-	'openidfinish' => '结束OpenID登陆',
+	'openid-desc' => '使用一个[//openid.net/ OpenID]来登录到这个wiki,或使用wiki用户帐号登录到其他接受OpenID的网站',
+	'openidlogin' => '使用OpenID登录或创建账号',
 	'openidserver' => 'OpenID服务器',
 	'openidxrds' => 'Yadis文件',
 	'openidconvert' => 'OpenID转换',
 	'openiderror' => '验证错误',
 	'openiderrortext' => '在验证OpenID地址时出现了一个错误。',
-	'openidconfigerror' => 'OpenID配制出错',
+	'openidconfigerror' => 'OpenID配置出错',
 	'openidconfigerrortext' => '这个维基的OpenID存储设置无法使用。
 请通知[[Special:ListUsers/sysop|管理员]]。',
 	'openidpermission' => 'OpenID许可错误',
@@ -3684,9 +6590,14 @@
 	'openidfailure' => '验证失败',
 	'openidfailuretext' => 'OpenID地址验证失败。错误信息:"$1"',
 	'openidsuccess' => '验证成功',
-	'openidsuccesstext' => 'OpenID地址验证成功。',
+	'openidsuccesstext' => "'''成功验证并且登录为用户 $1'''。
+
+您的OpenID是 $2 。
+
+这个和可能将来的OpenID可以在您的设置里的[[Special:Preferences#prefsection-openid|OpenID选项卡]]中管理。<br />
+可选的账户密码可以在您的[[Special:Preferences#prefsection-personal|用户设置]]里添加。",
 	'openidusernameprefix' => 'OpenID用户',
-	'openidserverlogininstructions' => '请在下面输入您的密码以便以用户$2登陆$3 (用户页面$1)。',
+	'openidserverlogininstructions' => '$3请求您为用户$2的用户页面$1输入密码(这是您的OpenID URL)',
 	'openidtrustinstructions' => '请确认您是否愿与$1分享数据。',
 	'openidallowtrust' => '允许$1信任这个用户的账户。',
 	'openidnopolicy' => '站点没有提供隐私政策。',
@@ -3695,47 +6606,176 @@
 	'openidrequired' => '必选',
 	'openidnickname' => '昵称',
 	'openidfullname' => '全称',
-	'openidemail' => '电子邮件地址',
+	'openidemail' => '电邮地址',
 	'openidlanguage' => '语言',
-	'openidnotavailable' => '您选择的昵称($1)已经被其他用户使用。',
-	'openidnotprovided' => '您的OpenID服务器没有提供昵称(可能无法提供,或者您选择不提供)。',
+	'openidtimezone' => '时区',
+	'openidchooselegend' => '用户名和账户选择',
 	'openidchooseinstructions' => '所有的用户都需要提供昵称;
 您可以从下面任选一个。',
-	'openidchoosefull' => '您的全名($1)',
-	'openidchooseurl' => '从您的OpenID获取的名称($1)',
+	'openidchoosenick' => '你的昵称 ($1)',
+	'openidchoosefull' => '你的全名($1)',
+	'openidchooseurl' => '从你的OpenID获取的名称($1)',
 	'openidchooseauto' => '自动生成的名称($1)',
 	'openidchoosemanual' => '您选择的名称:',
 	'openidchooseexisting' => '本维基已经存在的帐户:',
+	'openidchooseusername' => '用户名:',
 	'openidchoosepassword' => '密码:',
-	'openidconvertinstructions' => '本表单可以将您的用户账号修改为OpenID地址。',
+	'openidconvertinstructions' => '本表单可以修改您的用户账号,让该账户得以使用OpenID地址或者添加更多OpenID地址。',
+	'openidconvertoraddmoreids' => '转换到OpenID或添加另一个OpenID地址',
 	'openidconvertsuccess' => '成功转换为OpenID',
 	'openidconvertsuccesstext' => '您已经成功的将您的OpenID转化为$1。',
 	'openidconvertyourstext' => '这已经是您的OpenID。',
 	'openidconvertothertext' => '这是别人的OpenID。',
-	'openidalreadyloggedin' => "'''您已经成功登陆了,$1!'''
+	'openidalreadyloggedin' => '您已经登录了。',
+	'openidalreadyloggedintext' => "'''您已经登录,$1!'''
 
-如果您想以后使用OpenID登陆,您可以[[Special:OpenIDConvert|转换您的帐户使用OpenID]]。",
+您可以在您的设置的[[Special:Preferences#prefsection-openid|OpenID 选项卡]]中管理(查看、删除和进一步添加)OpenID。",
 	'openidnousername' => '没有指定用户名。',
 	'openidbadusername' => '指定的用户名是错误的。',
 	'openidautosubmit' => '本页包含的表单在启用JavaScript的情况下可以自动提交。
-如果没有自动提交,请按 \\"继续\\" 按钮。',
+如果没有自动提交,请按 "Continue" (继续)按钮。',
+	'openidclientonlytext' => '你不能在其他站点上使用这个wiki的帐号作为OpenID。',
 	'openidloginlabel' => 'OpenID地址',
-	'openid-pref-hide' => '如果使用OpenID登陆,您可以在您的用户页隐藏您的<a href="http://openid.net/">OpenID</a>。',
+	'openidlogininstructions' => '{{SITENAME}} 支持用于网站间单点登录的 [//openid.net/ OpenID] 标准。
+OpenID 可以让您不必使用不同的密码登录不同的站点。
+(详情请参见 [//en.wikipedia.org/wiki/OpenID 维基百科关于 OpenID 的条目]。)
+[//openid.net/get/ OpenID 的提供者]有很多,您可能在使用其他服务时已经建立了一个可以使用 OpenID 的账户了。',
+	'openidlogininstructions-openidloginonly' => "{{SITENAME}} ''仅''允许用 OpenID 登录。",
+	'openidlogininstructions-passwordloginallowed' => '如果您在 {{SITENAME}} 上已经拥有了账号,可以以通常的方式用用户名和密码[[Special:UserLogin|登录]]。
+将来使用 OpenID,您可以在正常登录后[[Special:OpenIDConvert|转换账号为 OpenID]]。',
+	'openidupdateuserinfo' => '更新我的个人信息',
+	'openiddelete' => '删除OpenID',
+	'openiddelete-text' => '按下"{{int:openiddelete-button}}"按钮后,OpenID $1将从你的账户中删除。你以后将无法再使用这个OpenID登录。',
+	'openiddelete-button' => '确认',
+	'openiddeleteerrornopassword' => '不得删除全部OpenID,否则您的账户将无密码保护。
+没有OpenID您将无法登录。',
+	'openiddeleteerroropenidonly' => '不得删除全部OpenID,因为这是你目前登录站点的唯一方法。
+没有OpenID您将无法登录。',
+	'openiddelete-sucess' => 'OpenID已被成功删除。',
+	'openiddelete-error' => '在移除你的OpenID的时候出现了一个错误。',
+	'openid-openids-were-not-merged' => '合并用户帐号时,OpenID 没有被合并。',
+	'openid-prefstext' => '[//openid.net/ OpenID]设置',
+	'openid-pref-hide' => 'OpenID登录时,在用户页隐藏OpenID。',
+	'openid-pref-update-userinfo-on-login' => '每次登录时,都从OpenID的用户信息中更新以下信息。',
+	'openid-urls-desc' => '和你的账号关联的OpenID:',
+	'openid-urls-action' => '动作',
+	'openid-urls-registration' => '注册时间',
+	'openid-urls-delete' => '删除',
+	'openid-add-url' => '添加一个新的OpenID',
+	'openid-login-or-create-account' => '登录或创建新账号',
+	'openid-provider-label-openid' => '输入你的OpenID URL',
+	'openid-provider-label-google' => '使用你的Google账号登录',
+	'openid-provider-label-yahoo' => '使用你的Yahoo账号登录',
+	'openid-provider-label-aol' => '输入你的AOL屏幕名称',
+	'openid-provider-label-other-username' => '输入你的$1用户名',
+	'specialpages-group-openid' => 'OpenID 服务页和状态信息',
+	'right-openid-dashboard-access' => '对 OpenID 仪表板的标准访问',
+	'right-openid-dashboard-admin' => '对 OpenID 仪表板的管理员访问',
+	'openid-dashboard-title' => 'OpenID 仪表板',
+	'openid-dashboard-title-admin' => 'OpenID 仪表板(管理员)',
+	'openid-dashboard-introduction' => '当前 OpenID 的扩展设置([$1 help|$1 帮助])',
+	'openid-dashboard-number-openid-users' => '拥有 OpenID 的用户数',
+	'openid-dashboard-number-openids-in-database' => 'OpenID 的数量(总数)',
+	'openid-dashboard-number-users-without-openid' => '没有 OpenID 的用户数',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
+ * @author Anakmalaysia
+ * @author Frankou
  * @author Gzdavidwong
+ * @author Horacewai2
+ * @author Liangent
+ * @author Mark85296341
+ * @author Waihorace
  * @author Wrightbus
  */
 $messages['zh-hant'] = array(
-	'openidserver' => 'OpenID伺服器',
-	'openidconvert' => 'OpenID轉換器',
+	'openid-desc' => '使用一個 [//openid.net/ OpenID] 來登入到這個 wiki,以及使用 wiki 用戶帳號登入到其他接受 OpenID 的網站',
+	'openidlogin' => '使用 OpenID 登入',
+	'openidserver' => 'OpenID 伺服器',
+	'openidxrds' => 'Yadis 檔案',
+	'openidconvert' => 'OpenID 轉換器',
 	'openiderror' => '驗證錯誤',
+	'openiderrortext' => '在驗證 OpenID 地址時出現了一個錯誤。',
+	'openidconfigerror' => 'OpenID 配置出錯',
+	'openidconfigerrortext' => '這個 wiki 的 OpenID 儲存設定是無效的。
+請通知[[Special:ListUsers/sysop|管理員]]。',
+	'openidpermission' => 'OpenID 的權限錯誤',
+	'openidpermissiontext' => '您提供的 OpenID 不允許在本服務器上登入。',
+	'openidcancel' => '驗證已取消',
+	'openidcanceltext' => 'OpenID 地址驗證被取消。',
+	'openidfailure' => '驗證失敗',
+	'openidfailuretext' => 'OpenID 地址驗證失敗。錯誤資訊:「$1」',
+	'openidsuccess' => '驗證成功',
+	'openidsuccesstext' => 'OpenID 地址驗證成功。',
+	'openidusernameprefix' => 'OpenID 使用者',
+	'openidserverlogininstructions' => '請在下面輸入您的密碼以便以使用者 $2 登入 $3 (使用者頁面 $1)。',
+	'openidtrustinstructions' => '請確認您是否願與 $1 共用資料。',
+	'openidallowtrust' => '允許 $1 信任這個用使用者的帳號。',
+	'openidnopolicy' => '站點沒有提供隱私權政策。',
+	'openidpolicy' => '如要取得更多資訊,請參見<a target="_new" href="$1">隱私權政策</a>。',
+	'openidoptional' => '可選',
+	'openidrequired' => '必選',
 	'openidnickname' => '暱稱',
 	'openidfullname' => '全名',
-	'openidchoosefull' => '您的全名 ($1)',
+	'openidemail' => '電郵地址',
+	'openidlanguage' => '語言',
+	'openidtimezone' => '時區',
+	'openidchooselegend' => '用戶名的選擇',
+	'openidchooseinstructions' => '所有的用戶都需要提供暱稱;
+您可以從下面任選一個。',
+	'openidchoosenick' => '你的暱稱($1)',
+	'openidchoosefull' => '您的全名($1)',
+	'openidchooseurl' => '從您的 OpenID 得到的名稱($1)',
+	'openidchooseauto' => '自動生成的名稱($1)',
+	'openidchoosemanual' => '您選擇的名稱:',
+	'openidchooseexisting' => '本維基已經存在的帳號:',
+	'openidchooseusername' => '用戶名:',
 	'openidchoosepassword' => '密碼:',
-	'openidconvertyourstext' => '這已是您的OpenID了。',
-	'openidloginlabel' => 'OpenID網址',
+	'openidconvertinstructions' => '本表單可以將您的用戶帳號修改為 OpenID 地址。',
+	'openidconvertoraddmoreids' => '轉換到 OpenID 或加入另一個 OpenID URL',
+	'openidconvertsuccess' => '成功轉換為 OpenID',
+	'openidconvertsuccesstext' => '您已經成功的將您的 OpenID 轉化為 $1。',
+	'openidconvertyourstext' => '這已是您的 OpenID 了。',
+	'openidconvertothertext' => '這是別人的 OpenID。',
+	'openidalreadyloggedin' => '您已經登入。',
+	'openidnousername' => '沒有指定用戶名。',
+	'openidbadusername' => '指定的用戶名是錯誤的。',
+	'openidautosubmit' => '本頁包含的表單在啟用 JavaScript 的情況下可以自動提交。
+如果沒有自動提交,請按「Continue」(繼續)按鈕。',
+	'openidclientonlytext' => '你不能在其他站點上使用這個 wiki 的帳號作為 OpenID。',
+	'openidloginlabel' => 'OpenID 網址',
+	'openidlogininstructions' => '{{SITENAME}} 支援用於網站間單點登入的 [//openid.net/ OpenID] 標準。
+OpenID 可以讓你不必使用不同的密碼登入不同站點。
+(詳情請參見[//zh.wikipedia.org/wiki/OpenID 維基百科關於 OpenID 的條目]。)
+
+如果你已經在 {{SITENAME}} 有一個帳戶,你可以用你的帳號及密碼[[Special:UserLogin|登入]]。
+
+要在未來使用 OpenID,你可以在登入後[[Special:OpenIDConvert|轉換你的帳號]]成為 OpenID
+
+這裡有許多 [//openid.net/get/ OpenID 提供者],你可能已經有一個 OpenID 了。',
+	'openidupdateuserinfo' => '更新我的個人資料',
+	'openiddelete' => '刪除 OpenID',
+	'openiddelete-text' => '當你按下「{{int:openiddelete-button}}」按鈕,你會將 OpenID $1 從你的帳戶中移除。你以後都不可以再使用這個 OpenID 登入。',
+	'openiddelete-button' => '確認',
+	'openiddeleteerrornopassword' => '不得刪除全部 OpenID,否則您的帳戶將無密碼保護。
+沒有 OpenID 您將無法登入。',
+	'openiddeleteerroropenidonly' => '不得刪除全部 OpenID,因為這是你目前登入站點的唯一方法。
+沒有 OpenID 您將無法登入。',
+	'openiddelete-sucess' => 'OpenID 已被成功刪除。',
+	'openiddelete-error' => '在移除你的 OpenID 的時候出現了一個錯誤。',
+	'openid-prefstext' => '[//openid.net/ OpenID] 偏好設定',
+	'openid-pref-hide' => '如果使用 OpenID 登入,您可以在您的用戶頁隱藏您的 OpenID。',
+	'openid-pref-update-userinfo-on-login' => '每次登入時,都從 OpenID 的使用者資料中更新以下資料。',
+	'openid-urls-desc' => '和你的帳號關聯的 OpenID:',
+	'openid-urls-action' => '動作',
+	'openid-urls-delete' => '刪除',
+	'openid-add-url' => '加入一個新的 OpenID',
+	'openid-login-or-create-account' => '登入或建立新帳號',
+	'openid-provider-label-openid' => '輸入你的 OpenID URL',
+	'openid-provider-label-google' => '以您的 Google 帳戶登入',
+	'openid-provider-label-yahoo' => '以您的 Yahoo 帳戶登入',
+	'openid-provider-label-aol' => '輸入你的 AOL 螢幕名稱',
+	'openid-provider-label-other-username' => '輸入你的 $1 用戶名',
 );
 

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,3 +1,331 @@
 <?php
-# backwards compatibility; new sites should require OpenID.setup.php
-require_once(dirname(__FILE__) . '/OpenID.setup.php');
+/**
+ * OpenID.php -- Make MediaWiki an OpenID consumer and server
+ * Copyright 2006,2007 Internet Brands (http://www.internetbrands.com/)
+ * Copyright 2007,2008 Evan Prodromou <evan at prodromou.name>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @file
+ * @author Evan Prodromou <evan at prodromou.name>
+ * @ingroup Extensions
+ */
+
+if ( !defined( 'MEDIAWIKI' ) ) {
+	exit( 1 );
+}
+
+define( 'MEDIAWIKI_OPENID_VERSION', '0.947-beta 20120205' );
+
+$path = dirname( __FILE__ );
+set_include_path( implode( PATH_SEPARATOR, array( $path ) ) . PATH_SEPARATOR . get_include_path() );
+
+# CONFIGURATION VARIABLES
+
+/**
+ * Whether to hide the "Login with OpenID link" link; set to true if you already
+ * have this link in your skin.
+ */
+$wgHideOpenIDLoginLink = false;
+
+/**
+ * Location of the OpenID login logo. You can copy this to your server if you
+ * want.
+ */
+$wgOpenIDLoginLogoUrl = $wgScriptPath . '/extensions/OpenID/skin/icons/openid-inputicon.png';
+
+/**
+ * Whether to show the OpenID identity URL on a user's home page. Possible
+ * values are 'always', 'never' (default), or 'user'.
+ * 'user' lets the user decide in their preferences.
+ */
+$wgOpenIDShowUrlOnUserPage = 'never';
+
+/**
+ * These are trust roots that we don't bother asking users whether the trust
+ * root is allowed to trust; typically for closely-linked partner sites.
+ */
+$wgOpenIDServerForceAllowTrust = array();
+
+/**
+ * Implicitly trust the e-mail address sent from the OpenID server, and don't
+ * ask the user to verify it.  This can lead to people with a nasty OpenID
+ * provider setting up accounts and spamming
+ */
+$wgOpenIDTrustEmailAddress = false;
+
+/**
+ * Where to store transitory data.
+ * Supported types are 'file', 'memcached', 'db'.
+ */
+$wgOpenIDServerStoreType = 'file';
+
+/**
+ * If the store type is set to 'file', this is is the name of a directory to
+ * store the data in.
+ */
+$wgOpenIDServerStorePath = "/tmp/$wgDBname/openidserver/";
+
+/**
+ * Defines the trust root for this server
+ * If null, we make a guess
+ */
+$wgTrustRoot = null;
+
+/**
+ * When using deny and allow arrays, defines how the security works.
+ * If true, works like "Order Allow,Deny" in Apache; deny by default,
+ * allow items that match allow that don't match deny to pass.
+ * If false, works like "Order Deny,Allow" in Apache; allow by default,
+ * deny items in deny that aren't in allow.
+ */
+$wgOpenIDConsumerDenyByDefault = false;
+
+/**
+ * Which partners to allow; regexps here. See above.
+ */
+$wgOpenIDConsumerAllow = array();
+
+/**
+ * Which partners to deny; regexps here. See above.
+ */
+$wgOpenIDConsumerDeny = array();
+
+/**
+ * Force this server to only allow authentication against one server;
+ * hides the selection form entirely.
+ */
+$wgOpenIDConsumerForce = null;
+
+/**
+ * when creating a new account or associating an existing account with OpenID:
+ *
+ * the following settings allow the Wiki sysop a fine-grained tuning of
+ * how new wiki user account names are derived from data associated with or
+ * otherwise available from the validated OpenID identity, and/or whether or not
+ * the free choice of the corresponding wiki user account name is allowed.
+ */
+
+/**
+ * whether associating an existing account with OpenID is allowed:
+ * show a wiki account username text input and password field
+ */
+$wgOpenIDAllowExistingAccountSelection = true;
+
+/**
+ * when creating a new account with OpenID:
+ * show users a text input field to enter an arbitrary username
+ */
+$wgOpenIDAllowNewAccountname = true;
+
+/**
+ * when creating a new account or associating an existing account with OpenID:
+ * Use the username part left of "@" in an OpenID e-mail address as username
+ * for account creation, or log in - if no nickname is supplied in the OpenID
+ * SREG data set. In other words: if available, nickname takes precedence
+ * over username from e-mail.
+ *
+ * Example:
+ *
+ * When your OpenID is http://me.yahoo.com/my.name and your e-mail address is
+ * my.name at yahoo.com, then "my.name" will be used for account creation.
+ *
+ * This works well with $wgOpenIDConsumerForce where all users have a unique
+ * e-mail address at the same domain.
+ *
+ * The e-mail address associated with the OpenID identity becomes
+ * the (unconfirmed) users' wiki account e-mail address.
+ */
+$wgOpenIDUseEmailAsNickname = false;
+
+/**
+ * when creating a new account or associating an existing account with OpenID:
+ * propose and allow new account names from OpenID SREG data such as
+ * fullname or nickname (if such data is available)
+ */
+$wgOpenIDProposeUsernameFromSREG = true;
+
+/**
+ * when creating a new account or associating an existing account with OpenID:
+ * propose an auto-generated fixed unique username "OpenIDUser#" (#=1, 2, ..)
+ */
+$wgOpenIDAllowAutomaticUsername = true;
+
+/**
+ * Where to store transitory data.
+ * Supported types are 'file', 'memcached', 'db'.
+ */
+$wgOpenIDConsumerStoreType = 'file';
+
+/**
+ * If the store type is set to 'file', this is is the name of a
+ * directory to store the data in.
+ */
+$wgOpenIDConsumerStorePath = "/tmp/$wgDBname/openidconsumer/";
+
+/**
+ * Expiration time for the OpenID cookie. Lets the user re-authenticate
+ * automatically if their session is expired. Only really useful if
+ * it's much greater than $wgCookieExpiration. Default: about one year.
+ */
+$wgOpenIDCookieExpiration = 365 * 24 * 60 * 60;
+
+/**
+ * Only allow login with OpenID. Careful -- this means everybody!
+ */
+$wgOpenIDOnly = false;
+
+/**
+ * If true, user accounts on this wiki *cannot* be used as OpenIDs on other
+ * sites.
+ */
+$wgOpenIDClientOnly = false;
+
+/**
+ * Allow to use User pages as OpenIDs even if user is using OpenID already
+ *
+ * If true, users can use their user page URLs of this site A as OpenID
+ * on another site B even if user is using OpenID on A already.
+ *
+ * Some users might want to do that for vanity purposes or whatever.
+ *
+ * https://bugzilla.wikimedia.org/show_bug.cgi?id=18635
+ * If false, prevent serving OpenID accounts (TODO list item; done)
+ *
+ */
+$wgOpenIDAllowServingOpenIDUserAccounts = true;
+
+/**
+ * When merging accounts with the UserMerge and Delete extension,
+ * should OpenIDs associated to the "from" account automatically be associated
+ * to the "to" account ?
+ */
+$wgOpenIDMergeOnAccountMerge = false;
+
+/**
+ * If true, will show provider icons instead of the text.
+ */
+$wgOpenIDShowProviderIcons = false;
+
+# New options
+$wgDefaultUserOptions['openid-hide'] = 0;
+$wgDefaultUserOptions['openid-update-on-login-nickname'] = false;
+$wgDefaultUserOptions['openid-update-on-login-email'] = false;
+$wgDefaultUserOptions['openid-update-on-login-fullname'] = false;
+$wgDefaultUserOptions['openid-update-on-login-language'] = false;
+$wgDefaultUserOptions['openid-update-on-login-timezone'] = false;
+
+# END CONFIGURATION VARIABLES
+
+$wgExtensionCredits['other'][] = array(
+	'name' => 'OpenID',
+	'version' => MEDIAWIKI_OPENID_VERSION,
+	'path' => __FILE__,
+	'author' => array( 'Evan Prodromou', 'Sergey Chernyshev', 'Alexandre Emsenhuber', 'Thomas Gries' ),
+	'url' => 'https://www.mediawiki.org/wiki/Extension:OpenID',
+	'descriptionmsg' => 'openid-desc',
+);
+
+function OpenIDGetServerPath() {
+	$rel = 'Auth/OpenID/Server.php';
+
+	foreach ( explode( PATH_SEPARATOR, get_include_path() ) as $pe ) {
+		$full = $pe . DIRECTORY_SEPARATOR . $rel;
+		if ( file_exists( $full ) ) {
+			return $full;
+		}
+	}
+	return $rel;
+}
+
+$dir = $path . '/';
+
+$wgExtensionMessagesFiles['OpenID'] = $dir . 'OpenID.i18n.php';
+$wgExtensionMessagesFiles['OpenIDAlias'] = $dir . 'OpenID.alias.php';
+
+$wgAutoloadClasses['OpenIDHooks'] = $dir . 'OpenID.hooks.php';
+
+# Autoload common parent with utility methods
+$wgAutoloadClasses['SpecialOpenID'] = $dir . 'SpecialOpenID.body.php';
+
+$wgAutoloadClasses['SpecialOpenIDLogin'] = $dir . 'SpecialOpenIDLogin.body.php';
+$wgAutoloadClasses['SpecialOpenIDConvert'] = $dir . 'SpecialOpenIDConvert.body.php';
+$wgAutoloadClasses['SpecialOpenIDServer'] = $dir . 'SpecialOpenIDServer.body.php';
+$wgAutoloadClasses['SpecialOpenIDXRDS'] = $dir . 'SpecialOpenIDXRDS.body.php';
+$wgAutoloadClasses['SpecialOpenIDDashboard'] = $dir . 'SpecialOpenIDDashboard.body.php';
+
+# UI class
+$wgAutoloadClasses['OpenIDProvider'] = $dir . 'OpenIDProvider.body.php';
+
+# Gets stored in the session, needs to be reified before our setup
+$wgAutoloadClasses['Auth_OpenID_CheckIDRequest'] = OpenIDGetServerPath();
+
+$wgAutoloadClasses['MediaWikiOpenIDDatabaseConnection'] = $dir . 'DatabaseConnection.php';
+$wgAutoloadClasses['MediaWikiOpenIDMemcachedStore'] = $dir . 'MemcachedStore.php';
+
+$wgHooks['PersonalUrls'][] = 'OpenIDHooks::onPersonalUrls';
+$wgHooks['BeforePageDisplay'][] = 'OpenIDHooks::onBeforePageDisplay';
+$wgHooks['ArticleViewHeader'][] = 'OpenIDHooks::onArticleViewHeader';
+$wgHooks['SpecialPage_initList'][] = 'OpenIDHooks::onSpecialPage_initList';
+$wgHooks['LoadExtensionSchemaUpdates'][] = 'OpenIDHooks::onLoadExtensionSchemaUpdates';
+
+$wgHooks['DeleteAccount'][] = 'OpenIDHooks::onDeleteAccount';
+$wgHooks['MergeAccountFromTo'][] = 'OpenIDHooks::onMergeAccountFromTo';
+
+# 1.16+
+$wgHooks['GetPreferences'][] = 'OpenIDHooks::onGetPreferences';
+
+# FIXME, function does not exist
+# $wgHooks['UserLoginForm'][] = 'OpenIDHooks::onUserLoginForm';
+
+# new user rights
+$wgAvailableRights[] = 'openid-dashboard-access';
+$wgAvailableRights[] = 'openid-dashboard-admin';
+
+# uncomment to allow users to read access the dashboard
+# $wgGroupPermissions['user']['openid-dashboard-access'] = true;
+
+# allow users to add or convert OpenIDs to their accounts
+$wgGroupPermissions['user']['openid-converter-access'] = true;
+
+# allow sysops to read access the dashboard and
+# allow sysops to adminstrate the OpenID settings (feature under construction)
+$wgGroupPermissions['sysop']['openid-dashboard-access'] = true;
+$wgGroupPermissions['sysop']['openid-dashboard-admin'] = true;
+
+$myResourceTemplate = array(
+	'localBasePath' => $path . '/skin',
+	'remoteExtPath' => 'OpenID/skin',
+	'group' => 'ext.openid',
+);
+
+$wgResourceModules['ext.openid'] = $myResourceTemplate + array(
+	'scripts' => 'openid.js',
+	'dependencies' => array(
+		'jquery.cookie'
+	)
+);
+$wgResourceModules['ext.openid.plain'] = $myResourceTemplate + array(
+	'styles' => 'openid-plain.css',
+	'dependencies' => array(
+		'ext.openid'
+	)
+);
+$wgResourceModules['ext.openid.icons'] = $myResourceTemplate + array(
+	'styles' => 'openid.css',
+	'dependencies' => array(
+		'ext.openid'
+	)
+);

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.setup.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.setup.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenID.setup.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,154 +1,3 @@
 <?php
-/**
- * OpenID.setup.php -- Make MediaWiki an OpenID consumer and server
- * Copyright 2006,2007 Internet Brands (http://www.internetbrands.com/)
- * Copyright 2007,2008 Evan Prodromou <evan at prodromou.name>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
- */
-
-if (!defined('MEDIAWIKI')) {
-	exit( 1 );
-}
-
-define('MEDIAWIKI_OPENID_VERSION', '0.8.4dev');
-
-# CONFIGURATION VARIABLES
-
-# Whether to hide the "Login with OpenID link" link; set to true if you already have this link in your skin.
-
-$wgHideOpenIDLoginLink = false;
-
-# Location of the OpenID login logo. You can copy this to your server if you want.
-
-$wgOpenIDLoginLogoUrl = 'http://www.openid.net/login-bg.gif';
-
-# Whether to show the OpenID identity URL on a user's home page. Possible values are 'always', 'never', or 'user'
-# 'user' lets the user decide.
-
-$wgOpenIDShowUrlOnUserPage = 'user';
-
-# These are trust roots that we don't bother asking users
-# whether the trust root is allowed to trust; typically
-# for closely-linked partner sites.
-
-$wgOpenIDServerForceAllowTrust = array();
-
-# Where to store transitory data. Only supported type is 'file'.
-
-$wgOpenIDServerStoreType = 'file';
-
-# If the store type is set to 'file', this is is the name of a
-# directory to store the data in.
-
-$wgOpenIDServerStorePath = "/tmp/$wgDBname/openidserver/";
-
-# Defines the trust root for this server
-# If null, we make a guess
-
-$wgTrustRoot = null;
-
-# When using deny and allow arrays, defines how the security works.
-# If true, works like "Order Allow,Deny" in Apache; deny by default,
-# allow items that match allow that don't match deny to pass.
-# If false, works like "Order Deny,Allow" in Apache; allow by default,
-# deny items in deny that aren't in allow.
-
-$wgOpenIDConsumerDenyByDefault = false;
-
-# Which partners to allow; regexps here. See above.
-
-$wgOpenIDConsumerAllow = array();
-
-# Which partners to deny; regexps here. See above.
-
-$wgOpenIDConsumerDeny = array();
-
-# Where to store transitory data. Only supported type is 'file'.
-
-$wgOpenIDConsumerStoreType = 'file';
-
-# If the store type is set to 'file', this is is the name of a
-# directory to store the data in.
-
-$wgOpenIDConsumerStorePath = "/tmp/$wgDBname/openidconsumer/";
-
-# Expiration time for the OpenID cookie. Lets the user re-authenticate
-# automatically if their session is expired. Only really useful if
-# it's much greater than $wgCookieExpiration. Default: about one year.
-
-$wgOpenIDCookieExpiration = 365 * 24 * 60 * 60;
-
-# Only allow login with OpenID. Careful -- this means everybody!
-
-$wgOpenIDOnly = false;
-
-# If true, user accounts on this wiki *cannot* be used as
-# OpenIDs on other sites.
-
-$wgOpenIDClientOnly = false;
-
-# END CONFIGURATION VARIABLES
-
-$wgExtensionCredits['other'][] = array(
-	'name' => 'OpenID',
-	'version' => MEDIAWIKI_OPENID_VERSION,
-	'author' => 'Evan Prodromou',
-	'url' => 'http://www.mediawiki.org/wiki/Extension:OpenID',
-	'description' => 'Lets users login to the wiki with an [http://openid.net/ OpenID] and login to other OpenID-aware Web sites with their wiki user account',
-	'descriptiomsg' => 'openid-desc',
-);
-
-function OpenIDGetServerPath() {
-	$rel = 'Auth/OpenID/Server.php';
-
-	foreach ( explode( PATH_SEPARATOR, get_include_path() ) as $pe ) {
-		$full = $pe . DIRECTORY_SEPARATOR . $rel;
-		if ( file_exists( $full ) ) {
-			return $full;
-		}
-	}
-	return $rel;
-}
-
-$dir = dirname( __FILE__ ) . '/';
-$wgExtensionMessagesFiles['OpenID'] = $dir . 'OpenID.i18n.php';
-$wgExtensionAliasesFiles['OpenID'] = $dir . 'OpenID.alias.php';
-
-$wgAutoloadClasses['OpenIDHooks'] = $dir . 'OpenID.hooks.php';
-
-# Autoload common parent with utility methods
-$wgAutoloadClasses['SpecialOpenID'] = $dir . 'SpecialOpenID.body.php';
-
-$wgAutoloadClasses['SpecialOpenIDLogin'] = $dir . 'SpecialOpenIDLogin.body.php';
-$wgAutoloadClasses['SpecialOpenIDFinish'] = $dir . 'SpecialOpenIDFinish.body.php';
-$wgAutoloadClasses['SpecialOpenIDConvert'] = $dir . 'SpecialOpenIDConvert.body.php';
-$wgAutoloadClasses['SpecialOpenIDServer'] = $dir . 'SpecialOpenIDServer.body.php';
-$wgAutoloadClasses['SpecialOpenIDXRDS'] = $dir . 'SpecialOpenIDXRDS.body.php';
-
-# Gets stored in the session, needs to be reified before our setup
-$wgAutoloadClasses['Auth_OpenID_CheckIDRequest'] = OpenIDGetServerPath();
-
-$wgHooks['PersonalUrls'][] = 'OpenIDHooks::onPersonalUrls';
-$wgHooks['ArticleViewHeader'][] = 'OpenIDHooks::onArticleViewHeader';
-$wgHooks['SpecialPage_initList'][] = 'OpenIDHooks::onSpecialPage_initList';
-$wgHooks['LoadExtensionSchemaUpdates'][] = 'OpenIDHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['RenderPreferencesForm'][] = 'OpenIDHooks::onRenderPreferencesForm';
-$wgHooks['InitPreferencesForm'][] = 'OpenIDHooks::onInitPreferencesForm';
-$wgHooks['ResetPreferences'][] = 'OpenIDHooks::onResetPreferences';
-$wgHooks['SavePreferences'][] = 'OpenIDHooks::onSavePreferences';
+# backwards compatibility; new sites should require OpenID.php
+require_once( dirname( __FILE__ ) . '/OpenID.php' );

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenIDProvider.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenIDProvider.body.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/OpenIDProvider.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,124 @@
+<?php
+/**
+ * OpenIDProvider.php -- Class referring to an individual OpenID provider
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * @file
+ * @ingroup Extensions
+ */
+class OpenIDProvider {
+	/**
+	 * Properties about this provider
+	 * @var string
+	 */
+	protected $id, $name, $label, $url;
+
+	public function __construct( $id, $name, $label, $url ) {
+		$this->id = $id;
+		$this->name = $name;
+		$this->label = $label;
+		$this->url = $url;
+	}
+
+	/**
+	 * Get the HTML for the OpenID provider buttons
+	 * @param $classSize String Size for the openid_ class, either large or small
+	 * @return string
+	 */
+	private function getButtonHTML( $classSize ) {
+		global $wgOpenIDShowProviderIcons, $wgOpenIDIconPath;
+
+		if ( $wgOpenIDShowProviderIcons )
+		{
+			return '<a id="openid_provider_' . $this->id . '_icon" title="' . $this->name . '"' .
+			' href="javascript: openid.show(\'' . $this->id . '\');"' .
+			' class="openid_' . $classSize . '_btn' .
+			( $this->id == 'openid' ? ' openid_selected' : '' ) . '"></a>';
+		}
+		else
+		{
+			return '<a id="openid_provider_' . $this->id . '_link" title="' . $this->name . '"' .
+			' href="javascript: openid.show(\'' . $this->id . '\');"' .
+			' class="openid_' . $classSize . '_link' .
+			( $this->id == 'openid' ? ' openid_selected' : '' ) . '">' . $this->name . '</a>';
+		}
+	}
+
+	public function getLargeButtonHTML() { return $this->getButtonHTML( 'large' ); }
+	public function getSmallButtonHTML() { return $this->getButtonHTML( 'small' ); }
+
+	public function getLoginFormHTML() {
+		$html = '<div id="provider_form_' . $this->id . '"' .
+			( $this->id == 'openid' ? '' : ' style="display:none"' ) . '>' .
+			'<div><label for="openid_url">' . $this->label . '</label></div>';
+
+		if ( $this->id == 'openid' ) {
+			global $wgRequest;
+			$url = htmlspecialchars( $wgRequest->getCookie( 'OpenID', null, '' ) );
+			$html .= '<input type="text" name="openid_url" id="openid_url" size="45" value="' . $url . '" />';
+			$html .= Xml::submitButton( wfMsg( 'userlogin' ) );
+		} else {
+			$html .= '<input type="hidden" id="openid_provider_url_' . $this->id . '" value="' . $this->url . '" />';
+			if ( strpos( $this->url, '{' ) === false ) {
+				$html .= '<input type="hidden" id="openid_provider_param_' . $this->id . '" size="25" value="" />';
+			} else {
+				$html .= '<input type="text" id="openid_provider_param_' . $this->id . '" size="25" value="" />';
+			}
+			$html .= Xml::submitButton( wfMsg( 'userlogin' ) );
+		}
+		$html .= '</div>';
+
+		return $html;
+	}
+
+	/**
+	 * Get the list of major OpenID providers
+	 * @return array of OpenIDProvider
+	 */
+	public static function getLargeProviders() {
+		return  array(
+			new self( 'openid', 'OpenID', wfMsg( 'openid-provider-label-openid' ), '{URL}' ),
+			new self( 'google', 'Google', wfMsg( 'openid-provider-label-google' ), 'https://www.google.com/accounts/o8/id' ),
+			new self( 'yahoo', 'Yahoo', wfMsg( 'openid-provider-label-yahoo' ), 'http://yahoo.com/' ),
+			new self( 'aol', 'AOL', wfMsg( 'openid-provider-label-aol' ), 'http://openid.aol.com/{username}' )
+		);
+	}
+
+	/**
+	 * Get a list of lesser-known OpenID providers
+	 * @return array of OpenIDProvider
+	 */
+	public static function getSmallProviders() {
+		return array(
+			new self( 'myopenid', 'MyOpenID', wfMsg( 'openid-provider-label-other-username', 'MyOpenID' ),
+						'http://{username}.myopenid.com/' ),
+			new self( 'livejournal', 'LiveJournal', wfMsg( 'openid-provider-label-other-username', 'LiveJournal' ),
+						'http://{username}.livejournal.com/' ),
+			new self( 'vox', 'VOX', wfMsg( 'openid-provider-label-other-username', 'VOX' ),
+						'http://{username}.vox.com/' ),
+			new self( 'blogger', 'Blogger', wfMsg( 'openid-provider-label-other-username', 'Blogger' ),
+						'http://{username}.blogspot.com/' ),
+			new self( 'flickr', 'Flickr', wfMsg( 'openid-provider-label-other-username', 'Flickr' ),
+						'http://flickr.com/photos/{username}/' ),
+			new self( 'verisign', 'Verisign', wfMsg( 'openid-provider-label-other-username', 'Verisign' ),
+						'http://{username}.pip.verisignlabs.com/' ),
+			new self( 'vidoop', 'Vidoop', wfMsg( 'openid-provider-label-other-username', 'Vidoop' ),
+						'http://{username}.myvidoop.com/' ),
+			new self( 'claimid', 'ClaimID', wfMsg( 'openid-provider-label-other-username', 'ClaimID' ),
+						'http://claimid.com/{username}' )
+		);
+	}
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenID.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenID.body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenID.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,154 +18,128 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
 # FIXME: for login(); figure out better way to share this code
 # between Login and Convert
 
-require_once("Auth/OpenID/Consumer.php");
-require_once("Auth/OpenID/SReg.php");
-require_once("Auth/OpenID/FileStore.php");
+require_once( "Auth/OpenID/Consumer.php" );
+require_once( "Auth/OpenID/SReg.php" );
+require_once( "Auth/OpenID/AX.php" );
+require_once( "Auth/OpenID/FileStore.php" );
 
 class SpecialOpenID extends SpecialPage {
 
-	function getOpenIDStore($storeType, $prefix, $options) {
-	    global $wgOut;
+	function getOpenIDStore( $storeType, $prefix, $options ) {
+		global $wgOut, $wgMemc, $wgDBtype;
 
-		# FIXME: support other kinds of store
-		# XXX: used to support memc, now use memcached from php-openid
+		switch ( $storeType ) {
 
-	    switch ($storeType) {
-
-		 case 'file':
+		case 'file':
 			# Auto-create path if it doesn't exist
-			if (!is_dir($options['path'])) {
-				if (!mkdir($options['path'], 0770, true)) {
-					$wgOut->showErrorPage('openidconfigerror', 'openidconfigerrortext');
-					return NULL;
+			if ( !is_dir( $options['path'] ) ) {
+				if ( !mkdir( $options['path'], 0770, true ) ) {
+					$wgOut->showErrorPage( 'openidconfigerror', 'openidconfigerrortext' );
+					return null;
 				}
 			}
-			return new Auth_OpenID_FileStore($options['path']);
+			return new Auth_OpenID_FileStore( $options['path'] );
 
+		case 'db':
+			if ( $wgDBtype == 'sqlite' ) {
+				$db = new MediaWikiOpenIDDatabaseConnection( wfGetDB( DB_MASTER ) );
+				require_once( 'Auth/OpenID/SQLiteStore.php' );
+				return new Auth_OpenID_SQLiteStore( $db );
+			} else {
+				$lb = wfGetLBFactory()->newMainLB();
+				$db = new MediaWikiOpenIDDatabaseConnection( $lb->getConnection( DB_MASTER ) );
+				switch( $wgDBtype ) {
+				case 'mysql':
+					require_once( 'Auth/OpenID/MySQLStore.php' );
+					return new Auth_OpenID_MySQLStore( $db );
+				case 'postgres':
+					require_once( 'Auth/OpenID/PostgreSQLStore.php' );
+					return new Auth_OpenID_PostgreSQLStore( $db );
+				default:
+					$wgOut->showErrorPage( 'openidconfigerror', 'openidconfigerrortext' );
+					return null;
+				}
+			}
+
+		case 'memcached':
+			return new MediaWikiOpenIDMemcachedStore( $wgMemc );
+
 		 default:
-			$wgOut->showErrorPage('openidconfigerror', 'openidconfigerrortext');
-	    }
+			$wgOut->showErrorPage( 'openidconfigerror', 'openidconfigerrortext' );
+		}
 	}
 
-	function xriBase($xri) {
-		if (substr($xri, 0, 6) == 'xri://') {
-			return substr($xri, 6);
+	function xriBase( $xri ) {
+		if ( substr( $xri, 0, 6 ) == 'xri://' ) {
+			return substr( $xri, 6 );
 		} else {
 			return $xri;
 		}
 	}
 
-	function xriToUrl($xri) {
-		return 'http://xri.net/' . OpenIDXriBase($xri);
+	function xriToUrl( $xri ) {
+		return 'http://xri.net/' . SpecialOpenID::xriBase( $xri );
 	}
 
-	static function OpenIDToUrl($openid) {
+	static function OpenIDToUrl( $openid ) {
 		/* ID is either an URL already or an i-name */
-        if (Auth_Yadis_identifierScheme($openid) == 'XRI') {
-			return OpenIDXriToUrl($openid);
+		if ( Auth_Yadis_identifierScheme( $openid ) == 'XRI' ) {
+			return SpecialOpenID::xriToUrl( $openid );
 		} else {
 			return $openid;
 		}
 	}
 
-	function interwikiExpand($openid_url) {
+	function interwikiExpand( $openid_url ) {
 		# try to make it into a title object
-		$nt = Title::newFromText($openid_url);
+		$nt = Title::newFromText( $openid_url );
 		# If it's got an iw, return that
-		if (!is_null($nt) && !is_null($nt->getInterwiki())
-			&& strlen($nt->getInterwiki()) > 0) {
+		if ( !is_null( $nt ) && !is_null( $nt->getInterwiki() )
+			&& strlen( $nt->getInterwiki() ) > 0 ) {
 			return $nt->getFullUrl();
 		} else {
 			return $openid_url;
 		}
 	}
 
-	static function getUserUrl($user) {
-		$openid_url = null;
-
-		if ( isset( $user ) && $user->getId() != 0 ) {
-			global $wgSharedDB, $wgDBprefix;
-			if ( isset( $wgSharedDB ) ) {
-				$tableName = "`${wgSharedDB}`.${wgDBprefix}user_openid";
-			} else {
-				$tableName = 'user_openid';
-			}
-
-			$dbr = wfGetDB( DB_SLAVE );
-			$res = $dbr->select(
-				array( $tableName ),
-				array( 'uoi_openid' ),
-				array( 'uoi_user' => $user->getId() ),
-				__METHOD__
-			);
-
-			# This should return 0 or 1 result, since user is unique
-			# in the table.
-
-			while ( $row = $res->fetchObject() ) {
-				$openid_url = $row->uoi_openid;
-			}
-			$res->free();
-		}
-		return $openid_url;
-	}
-
 	# Login, Finish
 
 	function getConsumer() {
 		global $wgOpenIDConsumerStoreType, $wgOpenIDConsumerStorePath;
 
-		$store = $this->getOpenIDStore($wgOpenIDConsumerStoreType,
-									   'consumer',
-									   array('path' => $wgOpenIDConsumerStorePath));
+		$store = $this->getOpenIDStore(
+			$wgOpenIDConsumerStoreType,
+			'consumer',
+			array( 'path' => $wgOpenIDConsumerStorePath )
+		);
 
-		return new Auth_OpenID_Consumer($store);
+		return new Auth_OpenID_Consumer( $store );
 	}
 
-	function fullUrl($title) {
-		$nt = Title::makeTitleSafe(NS_SPECIAL, $title);
-		if (isset($nt)) {
-			return $nt->getFullURL();
-		} else {
-			return NULL;
-		}
-	}
-
-	function scriptUrl($title) {
-		global $wgServer, $wgScript;
-		$nt = Title::makeTitleSafe(NS_SPECIAL, $title);
-		if (isset($nt)) {
-			$dbkey = wfUrlencode( $nt->getPrefixedDBkey() );
-			return "{$wgServer}{$wgScript}?title={$dbkey}";
-		} else {
-			return $url;
-		}
-	}
-
-	function canLogin($openid_url) {
-
+	function canLogin( $openid_url ) {
 		global $wgOpenIDConsumerDenyByDefault, $wgOpenIDConsumerAllow, $wgOpenIDConsumerDeny;
 
-		if ($this->isLocalUrl($openid_url)) {
+		if ( $this->isLocalUrl( $openid_url ) ) {
 			return false;
 		}
 
-		if ($wgOpenIDConsumerDenyByDefault) {
+		if ( $wgOpenIDConsumerDenyByDefault ) {
 			$canLogin = false;
-			foreach ($wgOpenIDConsumerAllow as $allow) {
-				if (preg_match($allow, $openid_url)) {
-					wfDebug("OpenID: $openid_url matched allow pattern $allow.\n");
+			foreach ( $wgOpenIDConsumerAllow as $allow ) {
+				if ( preg_match( $allow, $openid_url ) ) {
+					wfDebug( "OpenID: $openid_url matched allow pattern $allow.\n" );
 					$canLogin = true;
-					foreach ($wgOpenIDConsumerDeny as $deny) {
-						if (preg_match($deny, $openid_url)) {
-							wfDebug("OpenID: $openid_url matched deny pattern $deny.\n");
+					foreach ( $wgOpenIDConsumerDeny as $deny ) {
+						if ( preg_match( $deny, $openid_url ) ) {
+							wfDebug( "OpenID: $openid_url matched deny pattern $deny.\n" );
 							$canLogin = false;
 							break;
 						}
@@ -175,13 +149,13 @@
 			}
 		} else {
 			$canLogin = true;
-			foreach ($wgOpenIDConsumerDeny as $deny) {
-				if (preg_match($deny, $openid_url)) {
-					wfDebug("OpenID: $openid_url matched deny pattern $deny.\n");
+			foreach ( $wgOpenIDConsumerDeny as $deny ) {
+				if ( preg_match( $deny, $openid_url ) ) {
+					wfDebug( "OpenID: $openid_url matched deny pattern $deny.\n" );
 					$canLogin = false;
-					foreach ($wgOpenIDConsumerAllow as $allow) {
-						if (preg_match($allow, $openid_url)) {
-							wfDebug("OpenID: $openid_url matched allow pattern $allow.\n");
+					foreach ( $wgOpenIDConsumerAllow as $allow ) {
+						if ( preg_match( $allow, $openid_url ) ) {
+							wfDebug( "OpenID: $openid_url matched allow pattern $allow.\n" );
 							$canLogin = true;
 							break;
 						}
@@ -193,83 +167,56 @@
 		return $canLogin;
 	}
 
-	function isLocalUrl($url) {
-
+	function isLocalUrl( $url ) {
 		global $wgServer, $wgArticlePath;
 
 		$pattern = $wgServer . $wgArticlePath;
-		$pattern = str_replace('$1', '(.*)', $pattern);
-		$pattern = str_replace('?', '\?', $pattern);
+		$pattern = str_replace( '$1', '(.*)', $pattern );
+		$pattern = str_replace( '?', '\?', $pattern );
 
-		return preg_match('|^' . $pattern . '$|', $url);
+		return preg_match( '|^' . $pattern . '$|', $url );
 	}
 
-	# Find the user with the given openid, if any
+	function login( $openid_url, $finish_page ) {
+		global $wgTrustRoot, $wgOut;
 
-	function getUser($openid) {
-		global $wgSharedDB, $wgDBprefix;
-
-		if (isset($wgSharedDB)) {
-			$tableName = "`$wgSharedDB`.${wgDBprefix}user_openid";
-		} else {
-			$tableName = 'user_openid';
-		}
-
-		$dbr =& wfGetDB( DB_SLAVE );
-		$id = $dbr->selectField($tableName, 'uoi_user',
-								array('uoi_openid' => $openid));
-		if ($id) {
-			$name = User::whoIs($id);
-			return User::newFromName($name);
-		} else {
-			return NULL;
-		}
-	}
-	function login($openid_url, $finish_page = 'OpenIDFinish') {
-
-		global $wgUser, $wgTrustRoot, $wgOut;
-
 		# If it's an interwiki link, expand it
 
-		$openid_url = $this->interwikiExpand($openid_url);
+		$openid_url = $this->interwikiExpand( $openid_url );
 
 		# Check if the URL is allowed
 
-		if (!$this->canLogin($openid_url)) {
-			$wgOut->showErrorPage('openidpermission', 'openidpermissiontext');
+		if ( !$this->canLogin( $openid_url ) ) {
+			$wgOut->showErrorPage( 'openidpermission', 'openidpermissiontext' );
 			return;
 		}
 
-		$sk = $wgUser->getSkin();
-
-		if (isset($wgTrustRoot)) {
+		if ( !is_null( $wgTrustRoot ) ) {
 			$trust_root = $wgTrustRoot;
 		} else {
-			global $wgArticlePath, $wgServer;
-			$root_article = str_replace('$1', '', $wgArticlePath);
-			$trust_root = $wgServer . $root_article;
+			global $wgScriptPath, $wgServer;
+			$trust_root = $wgServer . $wgScriptPath;
 		}
 
+		wfSuppressWarnings();
+
 		$consumer = $this->getConsumer();
 
-		if (!$consumer) {
-			$wgOut->showErrorPage('openiderror', 'openiderrortext');
+		if ( !$consumer ) {
+			wfDebug( "OpenID: no consumer\n" );
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
 			return;
 		}
 
 		# Make sure the user has a session!
+		$this->setupSession();
 
-		global $wgSessionStarted;
+		$auth_request = $consumer->begin( $openid_url );
 
-		if (!$wgSessionStarted) {
-			$wgUser->SetupSession();
-		}
-
-		$auth_request = $consumer->begin($openid_url);
-
 		// Handle failure status return values.
-		if (!$auth_request) {
-			$wgOut->showErrorPage('openiderror', 'openiderrortext');
+		if ( !$auth_request ) {
+			wfDebug( "OpenID: no auth_request\n" );
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
 			return;
 		}
 
@@ -277,102 +224,176 @@
 
 		$endpoint = $auth_request->endpoint;
 
-		if (isset($endpoint)) {
+		if ( !is_null( $endpoint ) ) {
 			# Check if the URL is allowed
 
-			if (isset($endpoint->identity_url) && !$this->canLogin($endpoint->identity_url)) {
-				$wgOut->showErrorPage('openidpermission', 'openidpermissiontext');
+			if ( isset( $endpoint->identity_url ) && !$this->canLogin( $endpoint->identity_url ) ) {
+				$wgOut->showErrorPage( 'openidpermission', 'openidpermissiontext' );
 				return;
 			}
 
-			if (isset($endpoint->delegate) && !$this->canLogin($endpoint->delegate)) {
-				$wgOut->showErrorPage('openidpermission', 'openidpermissiontext');
+			if ( isset( $endpoint->delegate ) && !$this->canLogin( $endpoint->delegate ) ) {
+				$wgOut->showErrorPage( 'openidpermission', 'openidpermissiontext' );
 				return;
 			}
 		}
 
 		$sreg_request = Auth_OpenID_SRegRequest::build(
-													   // Required
-													   array(),
-													   // Optional
-													   array('nickname','email',
-															 'fullname','language','timezone'));
+			// Required
+			array(),
+			// Optional
+			array( 'nickname', 'email', 'fullname', 'language', 'timezone' )
+		);
 
-		if ($sreg_request) {
-			$auth_request->addExtension($sreg_request);
+		if ( $sreg_request ) {
+			$auth_request->addExtension( $sreg_request );
 		}
 
-		$process_url = $this->scriptUrl($finish_page);
+		// Create attribute request object. Depending on your endpoint, you can request many things:
+		// see http://code.google.com/apis/accounts/docs/OpenID.html#Parameters for parameters.
+		// Usage: make($type_uri, $count=1, $required=false, $alias=null)
+		$attribute[] = Auth_OpenID_AX_AttrInfo::make( 'http://axschema.org/contact/email', 1, 1, 'email' );
+		$attribute[] = Auth_OpenID_AX_AttrInfo::make( 'http://axschema.org/namePerson/first', 1, 1, 'firstname' );
+		$attribute[] = Auth_OpenID_AX_AttrInfo::make( 'http://axschema.org/namePerson/last', 1, 1, 'lastname' );
 
-		if ($auth_request->shouldSendRedirect()) {
-			$redirect_url = $auth_request->redirectURL($trust_root,
-													   $process_url);
-			if (Auth_OpenID::isFailure($redirect_url)) {
-				displayError("Could not redirect to server: " . $redirect_url->message);
+		// Create AX fetch request and add attributes
+		$ax_request = new Auth_OpenID_AX_FetchRequest;
+
+		foreach ( $attribute as $attr ) {
+			$ax_request->add( $attr );
+		}
+
+		if ( $ax_request ) {
+			$auth_request->addExtension( $ax_request );
+		}
+
+		$process_url = $this->scriptUrl( $finish_page );
+
+		if ( $auth_request->shouldSendRedirect() ) {
+			$redirect_url = $auth_request->redirectURL( $trust_root,
+													   $process_url );
+			if ( Auth_OpenID::isFailure( $redirect_url ) ) {
+				displayError( "Could not redirect to server: " . $redirect_url->message );
 			} else {
 				# OK, now go
-				$wgOut->redirect($redirect_url);
+				$wgOut->redirect( $redirect_url );
 			}
 		} else {
 			// Generate form markup and render it.
 			$form_id = 'openid_message';
-			$form_html = $auth_request->formMarkup($trust_root, $process_url,
-												   false, array('id' => $form_id));
+			$form_html = $auth_request->formMarkup( $trust_root, $process_url,
+												   false, array( 'id' => $form_id ) );
 
 			// Display an error if the form markup couldn't be generated;
 			// otherwise, render the HTML.
-			if (Auth_OpenID::isFailure($form_html)) {
-				displayError("Could not redirect to server: " . $form_html->message);
+			if ( Auth_OpenID::isFailure( $form_html ) ) {
+				displayError( 'Could not redirect to server: ' . $form_html->message );
 			} else {
-				$wgOut->addHTML("<p>" . wfMsg("openidautosubmit") . "</p>");
-				$wgOut->addHTML($form_html);
-				$wgOut->addInlineScript("function submitOpenIDForm() {\n document.getElementById(\"".$form_id."\").submit()\n }\nhookEvent(\"load\", submitOpenIDForm);\n");
+				$wgOut->addWikiMsg( 'openidautosubmit' );
+				$wgOut->addHTML( $form_html );
+				$wgOut->addInlineScript(
+					"jQuery( document ).ready( function(){ jQuery( \"#" . $form_id . "\" ).submit() } );" 
+				);
 			}
 		}
+
+		wfRestoreWarnings();
 	}
-	
-	function setUserUrl($user, $url) {
-		$other = $this->getUserUrl($user);
-		if (isset($other)) {
-			$this->updateUserUrl($user, $url);
+
+	function scriptUrl( $par = false ) {
+		global $wgServer, $wgScript;
+
+		if ( !is_object( $par ) ) {
+			$nt = $this->getTitle( $par );
 		} else {
-			$this->insertUserUrl($user, $url);
+			$nt = $par;
 		}
+
+		if ( !is_null( $nt ) ) {
+			$dbkey = wfUrlencode( $nt->getPrefixedDBkey() );
+			return "{$wgServer}{$wgScript}?title={$dbkey}";
+		} else {
+			return '';
+		}
 	}
 
-	function insertUserUrl($user, $url) {
-		global $wgSharedDB, $wgDBname;
-		$dbw =& wfGetDB( DB_MASTER );
-
-		if (isset($wgSharedDB)) {
-			# It would be nicer to get the existing dbname
-			# and save it, but it's not possible
-			$dbw->selectDB($wgSharedDB);
+	protected function setupSession() {
+		if ( session_id() == '' ) {
+			wfSetupSession();
 		}
+	}
 
-		$dbw->insert('user_openid', array('uoi_user' => $user->getId(),
-										  'uoi_openid' => $url));
+	function loginSetCookie( $openid ) {
+		global $wgRequest, $wgOpenIDCookieExpiration;
+		$wgRequest->response()->setcookie( 'OpenID', $openid, time() +  $wgOpenIDCookieExpiration );
+	}
 
-		if (isset($wgSharedDB)) {
-			$dbw->selectDB($wgDBname);
+	# Find the user with the given openid
+	# return the registered OpenID urls and registration timestamps (if available)
+	public static function getUserOpenIDInformation( $user ) {
+		$openid_urls_registration = array();
+
+		if ( $user instanceof User && $user->getId() != 0 ) {
+			$dbr = wfGetDB( DB_SLAVE );
+			$res = $dbr->select(
+				array( 'user_openid' ),
+				array( 'uoi_openid', 'uoi_user_registration' ),
+				array( 'uoi_user' => $user->getId() ),
+				__METHOD__
+			);
+
+			foreach ( $res as $row ) {
+				$openid_urls_registration[] = $row;
+			}
+			$res->free();
 		}
+		return $openid_urls_registration;
 	}
 
-	function updateUserUrl($user, $url) {
-		global $wgSharedDB, $wgDBname;
-		$dbw =& wfGetDB( DB_MASTER );
+	public static function getUserFromUrl( $openid ) {
+		$dbr = wfGetDB( DB_SLAVE );
 
-		if (isset($wgSharedDB)) {
-			# It would be nicer to get the existing dbname
-			# and save it, but it's not possible
-			$dbw->selectDB($wgSharedDB);
+		$id = $dbr->selectField(
+			'user_openid',
+			'uoi_user',
+			array( 'uoi_openid' => $openid ),
+			__METHOD__
+		);
+
+		if ( $id ) {
+			return User::newFromId( $id );
+		} else {
+			return null;
 		}
+	}
 
-		$dbw->set('user_openid', 'uoi_openid', $url,
-				  'uoi_user = ' . $user->getID());
+	public static function addUserUrl( $user, $url ) {
+		$dbw = wfGetDB( DB_MASTER );
 
-		if (isset($wgSharedDB)) {
-			$dbw->selectDB($wgDBname);
-		}
+		$dbw->insert(
+			'user_openid',
+			array(
+				'uoi_user' => $user->getId(),
+				'uoi_openid' => $url,
+				'uoi_user_registration' => wfTimestamp( TS_MW )
+			),
+			__METHOD__
+		);
+
 	}
+
+	public static function removeUserUrl( $user, $url ) {
+		$dbw = wfGetDB( DB_MASTER );
+
+		$dbw->delete(
+			'user_openid',
+			array(
+				'uoi_user' => $user->getId(),
+				'uoi_openid' => $url
+			),
+			__METHOD__
+		);
+
+		return (bool)$dbw->affectedRows();
+	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDConvert.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDConvert.body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDConvert.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,154 +18,238 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
-if (!defined('MEDIAWIKI')) {
+if ( !defined( 'MEDIAWIKI' ) ) {
 	exit( 1 );
 }
 
 class SpecialOpenIDConvert extends SpecialOpenID {
 
-	function SpecialOpenIDConvert() {
-		SpecialPage::SpecialPage("OpenIDConvert");
+	function __construct() {
+		parent::__construct( 'OpenIDConvert', 'openid-converter-access' );
 	}
 
-	function execute($par) {
-
+	function execute( $par ) {
 		global $wgRequest, $wgUser, $wgOut;
 
-		wfLoadExtensionMessages( 'OpenID' );
+		if ( !$this->userCanExecute( $wgUser ) ) {
+                	$this->displayRestrictionError();
+        	        return;
+	        }
 
 		$this->setHeaders();
 
-		if ($wgUser->getID() == 0) {
-			$wgOut->showErrorPage('openiderror', 'notloggedin');
-			return;
-		}
+		$this->outputHeader();
 
-		switch ($par) {
-		 case 'Finish':
+		switch ( $par ) {
+		case 'Finish':
 			$this->finish();
 			break;
-		 default:
-			$openid_url = $wgRequest->getText('openid_url');
-			if (isset($openid_url) && strlen($openid_url) > 0) {
-				$this->convert($openid_url);
+		case 'Delete':
+			$this->delete();
+			break;
+		default:
+			$openid_url = $wgRequest->getText( 'openid_url' );
+			if ( isset( $openid_url ) && strlen( $openid_url ) > 0 ) {
+				$this->convert( $openid_url );
 			} else {
-				$this->Form();
+				$this->form();
 			}
 		}
 	}
 
-	function convert($openid_url) {
-
+	function convert( $openid_url ) {
 		global $wgUser, $wgOut;
 
 		# Expand Interwiki
+		$openid_url = $this->interwikiExpand( $openid_url );
 
-		$openid_url = $this->interwikiExpand($openid_url);
-
 		# Is this ID allowed to log in?
-
-		if (!$this->CanLogin($openid_url)) {
-			$wgOut->showErrorPage('openidpermission', 'openidpermissiontext');
+		if ( !$this->canLogin( $openid_url ) ) {
+			$wgOut->showErrorPage( 'openidpermission', 'openidpermissiontext' );
 			return;
 		}
 
 		# Is this ID already taken?
+		$other = self::getUserFromUrl( $openid_url );
 
-		$other = $this->getUser($openid_url);
-
-		if (isset($other)) {
-			if ($other->getId() == $wgUser->getID()) {
-				$wgOut->showErrorPage('openiderror', 'openidconvertyourstext');
+		if ( isset( $other ) ) {
+			if ( $other->getId() == $wgUser->getID() ) {
+				$wgOut->showErrorPage( 'openiderror', 'openidconvertyourstext' );
 			} else {
-				$wgOut->showErrorPage('openiderror', 'openidconvertothertext');
+				$wgOut->showErrorPage( 'openiderror', 'openidconvertothertext' );
 			}
 			return;
 		}
 
 		# If we're OK to here, let the user go log in
-
-		$this->Login($openid_url, 'OpenIDConvert/Finish');
+		$this->login( $openid_url, SpecialPage::getTitleFor( 'OpenIDConvert', 'Finish' ) );
 	}
 
 	function form() {
-		global $wgOut, $wgUser;
-		$sk = $wgUser->getSkin();
-		$url = $this->GetUserUrl($wgUser);
-		if (is_null($url)) {
-			$url = '';
+		global $wgOut, $wgUser, $wgOpenIDShowProviderIcons;
+
+		$wgOut->addModules( $wgOpenIDShowProviderIcons ? 'ext.openid.icons' : 'ext.openid.plain' );
+
+		$formsHTML = '';
+
+		$largeButtonsHTML = '<div id="openid_large_providers">';
+		foreach ( OpenIDProvider::getLargeProviders() as $provider ) {
+			$largeButtonsHTML .= $provider->getLargeButtonHTML();
+			$formsHTML .= $provider->getLoginFormHTML();
 		}
+		$largeButtonsHTML .= '</div>';
 
-		$ok = wfMsg('ok');
-		$instructions = wfMsg('openidconvertinstructions');
-		$wgOut->addHTML("<p>{$instructions}</p>" .
-						'<form action="' . $sk->makeSpecialUrl('OpenIDConvert') . '" method="POST">' .
-						'<input type="text" name="openid_url" size="30" ' .
-						' style="background: url(http://www.openid.net/login-bg.gif) ' .
-						'        no-repeat; background-color: #fff; background-position: 0 50%; ' .
-						'        color: #000; padding-left: 18px;" value="' . $url . '" />' .
-						'<input type="submit" value="' . $ok . '" />' .
-						'</form>');
+		$smallButtonsHTML = '';
+		if ( $wgOpenIDShowProviderIcons ) {
+			$smallButtonsHTML .= '<div id="openid_small_providers_icons">';
+			foreach ( OpenIDProvider::getSmallProviders() as $provider ) {
+				$smallButtonsHTML .= $provider->getSmallButtonHTML();
+				$formsHTML .= $provider->getLoginFormHTML();
+			}
+			$smallButtonsHTML .= '</div>';
+		} else {
+			$smallButtonsHTML .= '<div id="openid_small_providers_links">';
+			$smallButtonsHTML .= '<ul class="openid_small_providers_block">';
+			$small = OpenIDProvider::getSmallProviders();
+
+			$i = 0;
+			$break = true;
+			foreach ( $small as $provider ) {
+				if ( $break && $i > count( $small ) / 2 ) {
+					$smallButtonsHTML .= '</ul><ul class="openid_small_providers_block">';
+					$break = false;
+				}
+
+				$smallButtonsHTML .= '<li>' . $provider->getSmallButtonHTML() . '</li>';
+
+				$formsHTML .= $provider->getLoginFormHTML();
+				$i++;
+			}
+			$smallButtonsHTML .= '</ul>';
+			$smallButtonsHTML .= '</div>';
+		}
+
+		$wgOut->addHTML(
+			Xml::openElement( 'form', array( 'id' => 'openid_form', 'action' => $this->getTitle()->getLocalUrl(), 'method' => 'post', 'onsubmit' => 'openid.update()' ) ) .
+			Xml::fieldset( wfMsg( 'openidconvertoraddmoreids' ) ) .
+			Xml::openElement( 'p' ) . wfMsg( 'openidconvertinstructions' ) . Xml::closeElement( 'p' ) .
+			$largeButtonsHTML .
+			'<div id="openid_input_area">' .
+			$formsHTML .
+			'</div>' .
+			$smallButtonsHTML .
+			Xml::closeElement( 'fieldset' ) . Xml::closeElement( 'form' )
+		);
 	}
 
+	function delete() {
+		global $wgUser, $wgOut, $wgRequest, $wgOpenIDOnly;
+
+		$openid = $wgRequest->getVal( 'url' );
+		$user = self::getUserFromUrl( $openid );
+
+		if ( $user->getId() == 0 || $user->getId() != $wgUser->getId() ) {
+			$wgOut->showErrorPage( 'openiderror', 'openidconvertothertext' );
+			return;
+		}
+
+		$wgOut->setPageTitle( wfMsg( 'openiddelete' ) );
+
+		# Check if the user is removing it's last OpenID url
+		$urls = self::getUserOpenIDInformation( $wgUser );
+		if ( count( $urls ) == 1 ) {
+			if ( $wgUser->mPassword == '' ) {
+				$wgOut->showErrorPage( 'openiderror', 'openiddeleteerrornopassword' );
+				return;
+			} elseif ( $wgOpenIDOnly ) {
+				$wgOut->showErrorPage( 'openiderror', 'openiddeleteerroropenidonly' );
+				return;
+			}
+		}
+
+		if ( $wgRequest->wasPosted() && $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ), $openid ) ) {
+			$ret = self::removeUserUrl( $wgUser, $openid );
+			$wgOut->addWikiMsg( $ret ? 'openiddelete-sucess' : 'openiddelete-error' );
+			return;
+		}
+
+		$wgOut->addWikiMsg( 'openiddelete-text', $openid );
+
+		$wgOut->addHtml(
+			Xml::openElement( 'form', array( 'action' => $this->getTitle( 'Delete' )->getLocalUrl(), 'method' => 'post' ) ) .
+			Xml::submitButton( wfMsg( 'openiddelete-button' ) ) . "\n" .
+			Html::Hidden( 'url', $openid ) . "\n" .
+			Html::Hidden( 'wpEditToken', $wgUser->editToken( $openid ) ) . "\n" .
+			Xml::closeElement( 'form' )
+		);
+	}
+
 	function finish() {
-
 		global $wgUser, $wgOut;
 
+		wfSuppressWarnings();
 		$consumer = $this->getConsumer();
+		$response = $consumer->complete( $this->scriptUrl( 'Finish' ) );
+		wfRestoreWarnings();
 
-		$response = $consumer->complete($this->scriptUrl('OpenIDConvert/Finish'));
-
-		if (!isset($response)) {
-			wfDebug("OpenID: aborting in openid converter because the response was missing\n");
-			$wgOut->showErrorPage('openiderror', 'openiderrortext');
+		if ( is_null( $response ) ) {
+			wfDebug( "OpenID: aborting in openid converter because the response was missing\n" );
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
 			return;
 		}
 
-		switch ($response->status) {
-		 case Auth_OpenID_CANCEL:
+		switch ( $response->status ) {
+		case Auth_OpenID_CANCEL:
 			// This means the authentication was cancelled.
-			$wgOut->showErrorPage('openidcancel', 'openidcanceltext');
+			$wgOut->showErrorPage( 'openidcancel', 'openidcanceltext' );
 			break;
-		 case Auth_OpenID_FAILURE:
-			wfDebug("OpenID: error in convert: '" . $response->message . "'\n");
-			$wgOut->showErrorPage('openidfailure', 'openidfailuretext', array($response->message));
+		case Auth_OpenID_FAILURE:
+			wfDebug( "OpenID: error in convert: '" . $response->message . "'\n" );
+			$wgOut->showErrorPage( 'openidfailure', 'openidfailuretext', array( $response->message ) );
 			break;
-		 case Auth_OpenID_SUCCESS:
+		case Auth_OpenID_SUCCESS:
 			// This means the authentication succeeded.
 			$openid_url = $response->identity_url;
 
-			if (!isset($openid_url)) {
-				wfDebug("OpenID: aborting in openid converter because the openid_url was missing\n");
-				$wgOut->showErrorPage('openiderror', 'openiderrortext');
+			if ( !$this->canLogin( $openid_url ) ) {
+				$wgOut->showErrorPage( 'openidpermission', 'openidpermissiontext' );
 				return;
 			}
 
+			if ( !isset( $openid_url ) ) {
+				wfDebug( "OpenID: aborting in openid converter because the openid_url was missing\n" );
+				$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
+				return;
+			}
+
 			# We check again for dupes; this may be normalized or
 			# reformatted by the server.
 
-			$other = $this->getUser($openid_url);
+			$other = self::getUserFromUrl( $openid_url );
 
-			if (isset($other)) {
-				if ($other->getId() == $wgUser->getID()) {
-					$wgOut->showErrorPage('openiderror', 'openidconvertyourstext');
+			if ( isset( $other ) ) {
+				if ( $other->getId() == $wgUser->getID() ) {
+					$wgOut->showErrorPage( 'openiderror', 'openidconvertyourstext' );
 				} else {
-					$wgOut->showErrorPage('openiderror', 'openidconvertothertext');
+					$wgOut->showErrorPage( 'openiderror', 'openidconvertothertext' );
 				}
 				return;
 			}
 
-			$this->setUserUrl($wgUser, $openid_url);
+			self::addUserUrl( $wgUser, $openid_url );
 
+			$this->loginSetCookie( $openid_url );
+
 			$wgOut->setPageTitle( wfMsg( 'openidconvertsuccess' ) );
 			$wgOut->setRobotPolicy( 'noindex,nofollow' );
 			$wgOut->setArticleRelated( false );
-			$wgOut->addWikiText( wfMsg( 'openidconvertsuccesstext', $openid_url ) );
-			$wgOut->returnToMain( );
+			$wgOut->addWikiMsg( 'openidconvertsuccesstext', $openid_url );
+			$wgOut->returnToMain();
 		}
 	}
 }

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDDashboard.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDDashboard.body.php	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDDashboard.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Implements Special:OpenIDDashboard parameter settings and status information
+ *
+ * @ingroup SpecialPage
+ * @ingroup Extensions
+ * @author Thomas Gries
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ * @link http://www.mediawiki.org/wiki/Extension:OpenID Documentation
+ *
+ */
+class SpecialOpenIDDashboard extends SpecialPage {
+
+	/**
+	 * Constructor - sets up the new special page
+	 * required right: openid-dashboard-access
+	 */
+	public function __construct() {
+		parent::__construct( 'OpenIDDashboard', 'openid-dashboard-access' );
+	}
+
+	/**
+	 * Different description will be shown on Special:SpecialPage depending on
+	 * whether the user has the 'openiddashboard' right or not.
+	 */
+	function getDescription() {
+		global $wgUser;
+
+		return wfMsg( $wgUser->isAllowed( 'openid-dashboard-admin' ) ?
+        		'openid-dashboard-title-admin' : 'openid-dashboard-title' ) ;
+	}
+
+	function show( $string, $value ) {
+		if  ( $value === null ) {
+			$value = 'null';
+		} elseif ( is_bool( $value ) ) {
+			$value = wfBoolToStr( $value );
+		} else {
+			$value = htmlspecialchars( $value );
+		}
+		return Html::openElement( 'tr' ) .
+			Html::openElement( 'td' ) . $string . Html::closeElement( 'td' ) .
+			Html::openElement( 'td' ) . $value . Html::closeElement( 'td' ) .
+			Html::closeElement( 'tr' ) . "\n";
+	}
+
+	/**
+	 * Show the special page
+	 *
+	 * @param $par Mixed: parameter passed to the page or null
+	 */
+	function execute( $par ) {
+
+		global $wgOut, $wgUser;
+		global $wgOpenIDShowUrlOnUserPage;
+		global $wgOpenIDTrustEmailAddress;
+		global $wgOpenIDAllowExistingAccountSelection;
+		global $wgOpenIDAllowNewAccountname;
+		global $wgOpenIDUseEmailAsNickname;
+		global $wgOpenIDProposeUsernameFromSREG;
+		global $wgOpenIDAllowAutomaticUsername;
+		global $wgOpenIDOnly;
+		global $wgOpenIDClientOnly;
+		global $wgOpenIDAllowServingOpenIDUserAccounts;
+		global $wgOpenIDShowProviderIcons;
+
+		if ( !$this->userCanExecute( $wgUser ) ) {
+			$this->displayRestrictionError();
+			return;
+		}
+
+		$totalUsers = SiteStats::users();
+		$OpenIDdistinctUsers = $this->getOpenIDUsers( 'distinctusers' );
+		$OpenIDUsers = $this->getOpenIDUsers();
+
+		$this->setHeaders();
+		$this->outputHeader();
+
+		$wgOut->addWikiMsg( 'openid-dashboard-introduction', 'http://www.mediawiki.org/wiki/Extension:OpenID' );
+
+		$wgOut->addHTML(
+			Html::openElement( 'table', array( 'style' => 'width:50%;', 'class' => 'mw-openiddashboard-table wikitable' ) )
+		);
+
+		# Here we show some basic version infos. Retrieval of SVN revision number of OpenID appears to be too difficult
+		$out  = $this->show( 'OpenID ' . wfMsg( 'version-software-version' ), MEDIAWIKI_OPENID_VERSION );
+		$out .= $this->show( 'MediaWiki ' . wfMsg( 'version-software-version' ), SpecialVersion::getVersion() );
+		$out .= $this->show( '$wgOpenIDOnly', $wgOpenIDOnly );
+		$out .= $this->show( '$wgOpenIDClientOnly', $wgOpenIDClientOnly );
+		$out .= $this->show( '$wgOpenIDAllowServingOpenIDUserAccounts', $wgOpenIDAllowServingOpenIDUserAccounts );
+		$out .= $this->show( '$wgOpenIDTrustEmailAddress', $wgOpenIDTrustEmailAddress );
+		$out .= $this->show( '$wgOpenIDAllowExistingAccountSelection', $wgOpenIDAllowExistingAccountSelection );
+		$out .= $this->show( '$wgOpenIDAllowAutomaticUsername', $wgOpenIDAllowAutomaticUsername );
+		$out .= $this->show( '$wgOpenIDAllowNewAccountname', $wgOpenIDAllowNewAccountname );
+		$out .= $this->show( '$wgOpenIDUseEmailAsNickname', $wgOpenIDUseEmailAsNickname );
+		$out .= $this->show( '$wgOpenIDProposeUsernameFromSREG', $wgOpenIDProposeUsernameFromSREG );
+		$out .= $this->show( '$wgOpenIDShowUrlOnUserPage', $wgOpenIDShowUrlOnUserPage );
+		$out .= $this->show( '$wgOpenIDShowProviderIcons', $wgOpenIDShowProviderIcons );
+		$out .= $this->show( wfMsgExt( 'statistics-users', array( 'parseinline' ) ), $totalUsers );
+		$out .= $this->show( wfMsg( 'openid-dashboard-number-openid-users' ), $OpenIDdistinctUsers  );
+		$out .= $this->show( wfMsg( 'openid-dashboard-number-openids-in-database' ), $OpenIDUsers );
+		$out .= $this->show( wfMsg( 'openid-dashboard-number-users-without-openid' ), $totalUsers - $OpenIDdistinctUsers );
+
+		$wgOut->addHTML( $out . Html::closeElement( 'table' ) . "\n" );
+
+	}
+
+	function error() {
+		global $wgOut;
+		$args = func_get_args();
+		$wgOut->wrapWikiMsg( "<p class='error'>$1</p>", $args );
+	}
+
+
+	function getOpenIDUsers ( $distinctusers = '' ) {
+		wfProfileIn( __METHOD__ );
+		$distinct = ( $distinctusers == 'distinctusers' ) ? 'COUNT(DISTINCT uoi_user)' : 'COUNT(*)' ;
+
+		$dbr = wfGetDB( DB_SLAVE );
+		$OpenIDUserCount = (int)$dbr->selectField(
+			'user_openid',
+			$distinct,
+			null,
+			__METHOD__,
+			null
+		);
+		wfProfileOut( __METHOD__ );
+		return $OpenIDUserCount;
+	}
+
+}

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDLogin.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDLogin.body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDLogin.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,158 +18,843 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
-if (!defined('MEDIAWIKI'))
-  exit(1);
+if ( !defined( 'MEDIAWIKI' ) )
+  exit( 1 );
 
-require_once("Auth/OpenID/Consumer.php");
+require_once( "Auth/Yadis/XRI.php" );
 
 class SpecialOpenIDLogin extends SpecialOpenID {
 
-	function SpecialOpenIDLogin() {
-		SpecialPage::SpecialPage("OpenIDLogin");
+	function __construct() {
+		parent::__construct( 'OpenIDLogin' );
 	}
 
-	function execute($par) {
-		global $wgRequest, $wgUser, $wgOut;
+	/**
+	 * Entry point
+	 *
+	 * @param $par String or null
+	 */
+	function execute( $par ) {
+		global $wgRequest, $wgUser, $wgOut, $wgOpenIDConsumerForce;
 
-		wfLoadExtensionMessages( 'OpenID' );
-
 		$this->setHeaders();
 
-		if ($wgUser->getID() != 0) {
+		if ( $wgUser->getID() != 0 ) {
 			$this->alreadyLoggedIn();
 			return;
 		}
 
-		if ($wgRequest->getText('returnto')) {
-			$this->setReturnTo($wgRequest->getText('returnto'));
+		$this->outputHeader();
+
+		switch ( $par ) {
+		case 'ChooseName':
+			$this->chooseName();
+			break;
+
+		case 'Finish': # Returning from a server
+			$this->finish();
+			break;
+
+		default: # Main entry point
+			if ( $wgRequest->getText( 'returnto' ) ) {
+				$this->setReturnTo( $wgRequest->getText( 'returnto' ), $wgRequest->getVal( 'returntoquery' ) );
+			}
+
+			$openid_url = $wgRequest->getText( 'openid_url' );
+
+			if ( !is_null( $openid_url ) && strlen( $openid_url ) > 0 ) {
+				$this->login( $openid_url, $this->getTitle( 'Finish' ) );
+		 	} elseif ( !is_null ( $wgOpenIDConsumerForce ) ) {
+		 		// if a forced OpenID provider specified, bypass the form
+		 		$this->login( $wgOpenIDConsumerForce, $this->getTitle( 'Finish' ) );
+			} else {
+				$this->loginForm();
+			}
 		}
+	}
 
-		$openid_url = $wgRequest->getText('openid_url');
+	/**
+	 * Displays an info message saying that the user is already logged-in
+	 */
+	function alreadyLoggedIn() {
+		global $wgUser, $wgOut;
 
-		if (isset($openid_url) && strlen($openid_url) > 0) {
-			$this->login($openid_url);
+		$wgOut->setPageTitle( wfMsg( 'openidalreadyloggedin' ) );
+		$wgOut->setRobotPolicy( 'noindex,nofollow' );
+		$wgOut->setArticleRelated( false );
+		$wgOut->addWikiMsg( 'openidalreadyloggedintext', $wgUser->getName() );
+		list( $returnto, $returntoquery ) = $this->returnTo();
+		$wgOut->returnToMain( null, $returnto, $returntoquery );
+	}
+
+	/**
+	 * Displays the main login form
+	 */
+	function loginForm() {
+		global $wgOut, $wgOpenIDShowProviderIcons, $wgOpenIDOnly;
+
+		$wgOut->addModules( $wgOpenIDShowProviderIcons ? 'ext.openid.icons' : 'ext.openid.plain' );
+
+		$formsHTML = '';
+
+		$largeButtonsHTML = '<div id="openid_large_providers">';
+		foreach ( OpenIDProvider::getLargeProviders() as $provider ) {
+			$largeButtonsHTML .= $provider->getLargeButtonHTML();
+			$formsHTML .= $provider->getLoginFormHTML();
+		}
+		$largeButtonsHTML .= '</div>';
+
+		$smallButtonsHTML = '';
+		if ( $wgOpenIDShowProviderIcons ) {
+			$smallButtonsHTML .= '<div id="openid_small_providers_icons">';
+			foreach ( OpenIDProvider::getSmallProviders() as $provider ) {
+				$smallButtonsHTML .= $provider->getSmallButtonHTML();
+				$formsHTML .= $provider->getLoginFormHTML();
+			}
+			$smallButtonsHTML .= '</div>';
 		} else {
-			$this->loginForm();
+			$smallButtonsHTML .= '<div id="openid_small_providers_links">';
+			$smallButtonsHTML .= '<ul class="openid_small_providers_block">';
+			$small = OpenIDProvider::getSmallProviders();
+
+			$i = 0;
+			$break = true;
+			foreach ( $small as $provider ) {
+				if ( $break && $i > count( $small ) / 2 ) {
+					$smallButtonsHTML .= '</ul><ul class="openid_small_providers_block">';
+					$break = false;
+				}
+
+				$smallButtonsHTML .= '<li>' . $provider->getSmallButtonHTML() . '</li>';
+
+				$formsHTML .= $provider->getLoginFormHTML();
+				$i++;
+			}
+			$smallButtonsHTML .= '</ul>';
+			$smallButtonsHTML .= '</div>';
 		}
+
+		$wgOut->addHTML(
+			Xml::openElement( 'form', array( 'id' => 'openid_form', 'action' => $this->getTitle()->getLocalUrl(), 'method' => 'post', 'onsubmit' => 'openid.update()' ) ) .
+			Xml::fieldset( wfMsg( 'openid-login-or-create-account' ) ) .
+			$largeButtonsHTML .
+			'<div id="openid_input_area">' .
+			$formsHTML .
+			'</div>' .
+			$smallButtonsHTML .
+			Xml::closeElement( 'fieldset' ) . Xml::closeElement( 'form' )
+		);
+		$wgOut->addWikiMsg( 'openidlogininstructions' );
+		if ( $wgOpenIDOnly ) {
+			$wgOut->addWikiMsg( 'openidlogininstructions-openidloginonly' );
+		} else {
+			$wgOut->addWikiMsg( 'openidlogininstructions-passwordloginallowed' );
+		}
 	}
 
-	function loginForm() {
-		global $wgOut, $wgUser, $wgOpenIDLoginLogoUrl;
-		$sk = $wgUser->getSkin();
-		$instructions = wfMsgExt('openidlogininstructions', array('parse'));
-		$label = wfMsg('openidloginlabel');
-		$ok = wfMsg('login');
-		$wgOut->addHTML('<form action="' . $sk->makeSpecialUrl('OpenIDLogin') . '" method="POST">' .
-						'<label for="openid_url">' . $label . '</label> ' .
-						'<input type="text" name="openid_url" id="openid_url" size="30" ' .
-						' style="background: url(' . $wgOpenIDLoginLogoUrl . ') ' .
-						'        no-repeat; background-color: #fff; background-position: 0 50%; ' .
-						'        color: #000; padding-left: 18px;" value="" />' .
-						'<input type="submit" value="' . $ok . '" />' .
-						'</form>' .
-						$instructions
-						);
+	/**
+	 * Displays a form to let the user choose an account to attach with the
+	 * given OpenID
+	 *
+	 * @param $openid String: OpenID url
+	 * @param $sreg Array: options get from OpenID
+	 * @param $messagekey String or null: message name to display at the top
+	 */
+	function chooseNameForm( $openid, $sreg, $ax, $messagekey = null ) {
+		global $wgOut, $wgOpenIDAllowExistingAccountSelection, $wgAllowRealName, $wgUser;
+		global $wgOpenIDProposeUsernameFromSREG, $wgOpenIDAllowAutomaticUsername, $wgOpenIDAllowNewAccountname;
+
+		if ( $messagekey ) {
+			$wgOut->addWikiMsg( $messagekey );
+		}
+		$wgOut->addWikiMsg( 'openidchooseinstructions' );
+
+		$wgOut->addHTML(
+			Xml::openElement( 'form',
+				array( 'action' => $this->getTitle( 'ChooseName' )->getLocalUrl(), 'method' => 'POST' ) ) . "\n" .
+			Xml::fieldset( wfMsg( 'openidchooselegend' ), false, array( 'id' => 'mw-openid-choosename' ) ) . "\n" .
+			Xml::openElement( 'table' )
+		);
+		$def = false;
+
+		if ( $wgOpenIDAllowExistingAccountSelection ) {
+			# Let them attach it to an existing user
+
+			# Grab the UserName in the cookie if it exists
+
+			global $wgCookiePrefix;
+			$name = '';
+			if ( isset( $_COOKIE["{$wgCookiePrefix}UserName"] ) ) {
+				$name = trim( $_COOKIE["{$wgCookiePrefix}UserName"] );
+			}
+
+			# show OpenID Attributes
+			$oidAttributesToAccept = array( 'fullname', 'nickname', 'email', 'language' );
+			$oidAttributes = array();
+
+			foreach ( $oidAttributesToAccept as $oidAttr ) {
+				if ( $oidAttr == 'fullname' && !$wgAllowRealName ) {
+					continue;
+				}
+
+				if ( array_key_exists( $oidAttr, $sreg ) ) {
+					$checkName = 'wpUpdateUserInfo' . $oidAttr;
+					$oidAttributes[] = Xml::tags( 'li', array(),
+						Xml::check( $checkName, false, array( 'id' => $checkName ) ) .
+						Xml::tags( 'label', array( 'for' => $checkName ),
+							wfMsgHtml( "openid$oidAttr" ) . wfMsgExt( 'colon-separator', array( 'escapenoentities' ) ) .
+								Xml::tags( 'i', array(), $sreg[$oidAttr] )
+						)
+					);
+				}
+			}
+
+			$oidAttributesUpdate = '';
+			if ( count( $oidAttributes ) > 0 ) {
+				$oidAttributesUpdate = "<br />\n" .
+					wfMsgHtml( 'openidupdateuserinfo' ) . "\n" .
+					Xml::tags( 'ul', array(), implode( "\n", $oidAttributes ) );
+			}
+
+			$wgOut->addHTML(
+				Xml::openElement( 'tr' ) .
+				Xml::tags( 'td', array( 'class' => 'mw-label' ),
+					Xml::radio( 'wpNameChoice', 'existing', !$def, array( 'id' => 'wpNameChoiceExisting' ) )
+				) . "\n" .
+				Xml::tags( 'td', array( 'class' => 'mw-input' ),
+					Xml::label( wfMsg( 'openidchooseexisting' ), 'wpNameChoiceExisting' ) . "<br />\n" .
+					wfMsgHtml( 'openidchooseusername' ) . "\n" .
+					Xml::input( 'wpExistingName', 16, $name, array( 'id' => 'wpExistingName' ) ) . "\n" .
+					wfMsgHtml( 'openidchoosepassword' ) . "\n" .
+					Xml::password( 'wpExistingPassword' ) . "\n" .
+					$oidAttributesUpdate . "\n"
+				) . "\n" .
+				Xml::closeElement( 'tr' ) . "\n"
+			);
+			$def = true;
+		} // $wgOpenIDAllowExistingAccountSelection
+
+		# These are only available if all visitors are allowed to create accounts
+		if ( $wgUser->isAllowed( 'createaccount' ) && !$wgUser->isBlockedFromCreateAccount() ) {
+
+		if ( $wgOpenIDProposeUsernameFromSREG ) {
+
+			# These options won't exist if we can't get them.
+			if ( array_key_exists( 'nickname', $sreg ) && $this->userNameOK( $sreg['nickname'] ) ) {
+				$wgOut->addHTML(
+					Xml::openElement( 'tr' ) .
+					Xml::tags( 'td', array( 'class' => 'mw-label' ),
+						Xml::radio( 'wpNameChoice', 'nick', !$def, array( 'id' => 'wpNameChoiceNick' ) )
+					) .
+					Xml::tags( 'td', array( 'class' => 'mw-input' ),
+						Xml::label( wfMsg( 'openidchoosenick', $sreg['nickname'] ), 'wpNameChoiceNick' )
+					) .
+					Xml::closeElement( 'tr' ) . "\n"
+				);
+			}
+
+			# These options won't exist if we can't get them.
+			$fullname = null;
+			if ( array_key_exists( 'fullname', $sreg ) ) {
+				$fullname = $sreg['fullname'];
+			}
+
+			if ( array_key_exists( 'http://axschema.org/namePerson/first', $ax ) || array_key_exists( 'http://axschema.org/namePerson/last', $ax ) ) {
+				$fullname = $ax['http://axschema.org/namePerson/first'][0] . " " . $ax['http://axschema.org/namePerson/last'][0];
+			}
+
+			if ( $fullname && $this->userNameOK( $fullname ) ) {
+				$wgOut->addHTML(
+					Xml::openElement( 'tr' ) .
+					Xml::tags( 'td', array( 'class' => 'mw-label' ),
+						Xml::radio( 'wpNameChoice', 'full', !$def, array( 'id' => 'wpNameChoiceFull' ) )
+					) .
+					Xml::tags( 'td', array( 'class' => 'mw-input' ),
+						Xml::label( wfMsg( 'openidchoosefull', $fullname ), 'wpNameChoiceFull' )
+					) .
+					Xml::closeElement( 'tr' ) . "\n"
+				);
+				$def = true;
+			}
+
+			$idname = $this->toUserName( $openid );
+			if ( $idname && $this->userNameOK( $idname ) ) {
+				$wgOut->addHTML(
+					Xml::openElement( 'tr' ) .
+					Xml::tags( 'td', array( 'class' => 'mw-label' ),
+						Xml::radio( 'wpNameChoice', 'url', !$def, array( 'id' => 'wpNameChoiceUrl' ) )
+					) .
+					Xml::tags( 'td', array( 'class' => 'mw-input' ),
+						Xml::label( wfMsg( 'openidchooseurl', $idname ), 'wpNameChoiceUrl' )
+					) .
+					Xml::closeElement( 'tr' ) . "\n"
+				);
+				$def = true;
+			}
+		} // if $wgOpenIDProposeUsernameFromSREG
+
+		if ( $wgOpenIDAllowAutomaticUsername ) {
+			$wgOut->addHTML(
+				Xml::openElement( 'tr' ) .
+				Xml::tags( 'td', array( 'class' => 'mw-label' ),
+					Xml::radio( 'wpNameChoice', 'auto', !$def, array( 'id' => 'wpNameChoiceAuto' ) )
+				) .
+				Xml::tags( 'td', array( 'class' => 'mw-input' ),
+					Xml::label( wfMsg( 'openidchooseauto', $this->automaticName( $sreg ) ), 'wpNameChoiceAuto' )
+				) .
+					Xml::closeElement( 'tr' ) . "\n"
+				);
+		}
+
+		if ( $wgOpenIDAllowNewAccountname ) {
+			$wgOut->addHTML(
+
+			Xml::openElement( 'tr' ) .
+			Xml::tags( 'td', array( 'class' => 'mw-label' ),
+				Xml::radio( 'wpNameChoice', 'manual', !$def, array( 'id' => 'wpNameChoiceManual' ) )
+			) .
+			Xml::tags( 'td', array( 'class' => 'mw-input' ),
+				Xml::label( wfMsg( 'openidchoosemanual' ), 'wpNameChoiceManual' ) . ' ' .
+				Xml::input( 'wpNameValue', 16, false, array( 'id' => 'wpNameValue' ) )
+			) .
+			Xml::closeElement( 'tr' ) . "\n"
+			);
+		}
+
+		} // These are only available if all visitors are allowed to create accounts
+
+		# These are always available
+                $wgOut->addHTML(
+
+			Xml::openElement( 'tr' ) . "\n" .
+			Xml::element( 'td', array(), '' ) . "\n" .
+			Xml::tags( 'td', array( 'class' => 'mw-submit' ),
+				Xml::submitButton( wfMsg( 'userlogin' ), array( 'name' => 'wpOK' ) ) .
+				Xml::submitButton( wfMsg( 'cancel' ), array( 'name' => 'wpCancel' ) )
+			) . "\n" .
+			Xml::closeElement( 'tr' ) . "\n" .
+
+			Xml::closeElement( 'table' ) .
+			Xml::closeElement( 'fieldset' ) .
+			Xml::closeElement( 'form' )
+		);
 	}
 
-	function toUserName($openid) {
-        if (Services_Yadis_identifierScheme($openid) == 'XRI') {
-			wfDebug("OpenID: Handling an XRI: $openid\n");
-			return $this->toUserNameXri($openid);
+	/**
+	 * Handle "Choose name" form submission
+	 */
+	function chooseName() {
+		global $wgRequest, $wgUser, $wgOut;
+
+		list( $openid, $sreg, $ax ) = $this->fetchValues();
+		if ( is_null( $openid ) ) {
+			wfDebug( "OpenID: aborting in ChooseName because identity_url is missing\n" );
+			$this->clearValues();
+			# No messing around, here
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
+			return;
+		}
+
+		if ( $wgRequest->getCheck( 'wpCancel' ) ) {
+			$this->clearValues();
+			$wgOut->showErrorPage( 'openidcancel', 'openidcanceltext' );
+			return;
+		}
+
+		$choice = $wgRequest->getText( 'wpNameChoice' );
+		$nameValue = $wgRequest->getText( 'wpNameValue' );
+
+		if ( $choice == 'existing' ) {
+			$user = $this->attachUser( $openid, $sreg,
+				$wgRequest->getText( 'wpExistingName' ),
+				$wgRequest->getText( 'wpExistingPassword' )
+			);
+
+			if ( !$user ) {
+				$this->chooseNameForm( $openid, $sreg, $ax, 'wrongpassword' );
+				return;
+			}
+
+			$force = array();
+			foreach ( array( 'fullname', 'nickname', 'email', 'language' ) as $option ) {
+				if ( $wgRequest->getCheck( 'wpUpdateUserInfo' . $option ) ) {
+					$force[] = $option;
+				}
+			}
+
+			$this->updateUser( $user, $sreg, $ax );
+
 		} else {
-			wfDebug("OpenID: Handling an URL: $openid\n");
-			return $this->toUserNameUrl($openid);
+			$name = $this->getUserName( $openid, $sreg, $ax, $choice, $nameValue );
+
+			if ( !$name || !$this->userNameOK( $name ) ) {
+				wfDebug( "OpenID: Name not OK: '$name'\n" );
+				$this->chooseNameForm( $openid, $sreg, $ax );
+				return;
+			}
+
+			$user = $this->createUser( $openid, $sreg, $ax, $name );
 		}
+
+		if ( is_null( $user ) ) {
+			wfDebug( "OpenID: aborting in ChooseName because we could not create user object\n" );
+			$this->clearValues();
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
+			return;
+		}
+
+		$wgUser = $user;
+		$this->clearValues();
+		$this->displaySuccessLogin( $openid );
 	}
 
-	function alreadyLoggedIn() {
+	/**
+	 * Called when returning from the authentication server
+	 * Find the user with the given openid, if any or displays the "Choose name"
+	 * form
+	 */
+	function finish() {
+		global $wgOut, $wgUser, $wgOpenIDUseEmailAsNickname;
 
+		wfSuppressWarnings();
+		$consumer = $this->getConsumer();
+		$response = $consumer->complete( $this->scriptUrl( 'Finish' ) );
+		wfRestoreWarnings();
+
+		if ( is_null( $response ) ) {
+			wfDebug( "OpenID: aborting in auth because no response was recieved\n" );
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
+			return;
+		}
+
+		switch ( $response->status ) {
+		case Auth_OpenID_CANCEL:
+			// This means the authentication was cancelled.
+			$wgOut->showErrorPage( 'openidcancel', 'openidcanceltext' );
+			break;
+		case Auth_OpenID_FAILURE:
+			wfDebug( "OpenID: error message '" . $response->message . "'\n" );
+			$wgOut->showErrorPage( 'openidfailure', 'openidfailuretext',
+				array( ( $response->message ) ? $response->message : '' ) );
+			break;
+		case Auth_OpenID_SUCCESS:
+			// This means the authentication succeeded.
+			wfSuppressWarnings();
+			$openid = $response->identity_url;
+
+			if ( !$this->canLogin( $openid ) ) {
+				$wgOut->showErrorPage( 'openidpermission', 'openidpermissiontext' );
+				return;
+			}
+
+			$sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse( $response );
+			$sreg = $sreg_resp->contents();
+			$ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse( $response );
+			$ax = $ax_resp->data;
+			wfRestoreWarnings();
+
+			if ( is_null( $openid ) ) {
+				wfDebug( "OpenID: aborting in auth success because identity URL is missing\n" );
+				$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
+				return;
+			}
+
+			$user = self::getUserFromUrl( $openid );
+
+			if ( $user instanceof User ) {
+				$this->updateUser( $user, $sreg, $ax ); # update from server
+				$wgUser = $user;
+				$this->displaySuccessLogin( $openid );
+			} else {
+				// if we are hardcoding nickname, and a valid e-mail address was returned, create a user with this name
+				if ( $wgOpenIDUseEmailAsNickname ) {
+					$name = $this->getNameFromEmail( $openid, $sreg, $ax );
+					if ( !empty( $name ) && $this->userNameOk( $name ) ) {
+						$wgUser = $this->createUser( $openid, $sreg, $ax, $name );
+						$this->displaySuccessLogin( $openid );
+						return;
+					}
+				}
+
+				$this->saveValues( $openid, $sreg, $ax );
+				$this->chooseNameForm( $openid, $sreg, $ax );
+				return;
+			}
+		}
+	}
+
+	/**
+	 * Update some user's settings with value get from OpenID
+	 *
+	 * @param $user User object
+	 * @param $sreg Array of options get from OpenID
+	 * @param $force forces update regardless of user preferences
+	 */
+	function updateUser( $user, $sreg, $ax, $force = false ) {
+		global $wgAllowRealName, $wgEmailAuthentication, $wgOpenIDTrustEmailAddress;
+
+		// Nick name
+		if ( $this->updateOption( 'nickname', $user, $force ) ) {
+			if ( array_key_exists( 'nickname', $sreg ) && $sreg['nickname'] != $user->getOption( 'nickname' ) ) {
+				$user->setOption( 'nickname', $sreg['nickname'] );
+			}
+		}
+
+		// E-mail
+		if ( $this->updateOption( 'email', $user, $force ) ) {
+			// first check SREG, then AX; if both, AX takes higher priority
+			if ( array_key_exists( 'email', $sreg ) ) {
+				$email = $sreg['email'];
+			}
+			if ( array_key_exists ( 'http://axschema.org/contact/email', $ax ) ) {
+				$email = $ax['http://axschema.org/contact/email'][0];
+			}
+			if ( $email ) {
+				// If email changed, then email a confirmation mail
+				if ( $email != $user->getEmail() ) {
+					$user->setEmail( $email );
+					if ( $wgOpenIDTrustEmailAddress ) {
+						$user->confirmEmail();
+					} else {
+						$user->invalidateEmail();
+						if ( $wgEmailAuthentication && $email != '' ) {
+							$result = $user->sendConfirmationMail();
+							if ( WikiError::isError( $result ) ) {
+								$wgOut->addWikiMsg( 'mailerror', $result->getMessage() );
+							}
+						}
+					}
+				}
+			}
+		}
+
+		// Full name
+		if ( $wgAllowRealName && ( $this->updateOption( 'fullname', $user, $force ) ) ) {
+			if ( array_key_exists( 'fullname', $sreg ) ) {
+				$user->setRealName( $sreg['fullname'] );
+			}
+
+			if ( array_key_exists( 'http://axschema.org/namePerson/first', $ax ) || array_key_exists( 'http://axschema.org/namePerson/last', $ax ) ) {
+				$user->setRealName( $ax['http://axschema.org/namePerson/first'][0] . " " . $ax['http://axschema.org/namePerson/last'][0] );
+			}
+		}
+
+		// Language
+		if ( $this->updateOption( 'language', $user, $force ) ) {
+			if ( array_key_exists( 'language', $sreg ) ) {
+				# FIXME: check and make sure the language exists
+				$user->setOption( 'language', $sreg['language'] );
+			}
+		}
+
+		if ( $this->updateOption( 'timezone', $user, $force ) ) {
+			if ( array_key_exists( 'timezone', $sreg ) ) {
+				# FIXME: do something with it.
+				# $offset = OpenIDTimezoneToTzoffset($sreg['timezone']);
+				# $user->setOption('timecorrection', $offset);
+			}
+		}
+
+		$user->saveSettings();
+	}
+
+	/**
+	 * Helper function for updateUser()
+	 */
+	private function updateOption( $option, User $user, $force ) {
+		return $force === true || ( is_array( $force ) && in_array( $option, $force ) ) ||
+			$user->getOption( 'openid-update-on-login-' . $option ) ||
+			$user->getOption( 'openid-update-on-login' ); // Back compat with old option
+	}
+
+	/**
+	 * Display the final "Successful login"
+	 *
+	 * @param $openid String: OpenID url
+	 */
+	function displaySuccessLogin( $openid ) {
 		global $wgUser, $wgOut;
 
-		$wgOut->setPageTitle( wfMsg( 'openiderror' ) );
+		$this->setupSession();
+		RequestContext::getMain()->setUser( $wgUser );
+		$wgUser->SetCookies();
+
+		# Run any hooks; ignore results
+		$inject_html = '';
+		wfRunHooks( 'UserLoginComplete', array( &$wgUser, &$inject_html ) );
+
+		# Set a cookie for later check-immediate use
+
+		$this->loginSetCookie( $openid );
+
+		$wgOut->setPageTitle( wfMsg( 'openidsuccess' ) );
 		$wgOut->setRobotPolicy( 'noindex,nofollow' );
 		$wgOut->setArticleRelated( false );
-		$wgOut->addWikiText( wfMsg( 'openidalreadyloggedin', $wgUser->getName() ) );
-		$wgOut->returnToMain(false, $this->returnTo() );
+		$wgOut->addWikiMsg( 'openidsuccesstext', $wgUser->getName(), $openid );
+		$wgOut->addHtml( $inject_html );
+		list( $returnto, $returntoquery ) = $this->returnTo();
+		$wgOut->returnToMain( null, $returnto, $returntoquery );
 	}
 
-	function setUserUrl($user, $url) {
-		$other = $this->getUserUrl($user);
-		if (isset($other)) {
-			$this->updateUserUrl($user, $url);
+	function createUser( $openid, $sreg, $ax, $name ) {
+		global $wgUser, $wgAuth;
+
+		$user = User::newFromName( $name );
+
+          	# Check permissions
+		if ( !$user->isAllowed( 'createaccount' ) ) {
+			wfDebug( "OpenID: User is not allowed to create an account.\n" );
+			return null;
+		} elseif ( $user->isBlockedFromCreateAccount() ) {
+			wfDebug( "OpenID: User is blocked.\n" );
+			return null;
+		}
+
+		if ( !$user ) {
+			wfDebug( "OpenID: Error adding new user.\n" );
+			return null;
+		}
+
+		$user->addToDatabase();
+
+		if ( !$user->getId() ) {
+			wfDebug( "OpenID: Error adding new user.\n" );
 		} else {
-			$this->insertUserUrl($user, $url);
+			$wgAuth->initUser( $user );
+			$wgAuth->updateUser( $user );
+
+			$wgUser = $user;
+
+			# new user account: not opened by mail
+   			wfRunHooks( 'AddNewAccount', array( $user, false ) );
+			$user->addNewUserLogEntry();
+
+			# Update site stats
+			$ssUpdate = new SiteStatsUpdate( 0, 0, 0, 0, 1 );
+			$ssUpdate->doUpdate();
+
+			self::addUserUrl( $user, $openid );
+			$this->updateUser( $user, $sreg, $ax, true );
+			$user->saveSettings();
+			return $user;
 		}
 	}
 
-	function insertUserUrl($user, $url) {
-		global $wgSharedDB, $wgDBname;
-		$dbw =& wfGetDB( DB_MASTER );
+	function attachUser( $openid, $sreg, $name, $password ) {
+		$user = User::newFromName( $name );
 
-		if (isset($wgSharedDB)) {
-			# It would be nicer to get the existing dbname
-			# and save it, but it's not possible
-			$dbw->selectDB($wgSharedDB);
+		if ( !$user ) {
+			return null;
 		}
 
-		$dbw->insert('user_openid', array('uoi_user' => $user->getId(),
-										  'uoi_openid' => $url));
+		if ( !$user->checkPassword( $password ) ) {
+			return null;
+		}
 
-		if (isset($wgSharedDB)) {
-			$dbw->selectDB($wgDBname);
+		self::addUserUrl( $user, $openid );
+
+		return $user;
+	}
+
+	# Methods to get the user name
+	# ----------------------------
+
+	function getUserName( $openid, $sreg, $ax, $choice, $nameValue ) {
+	global $wgOpenIDAllowAutomaticUsername, $wgOpenIDAllowNewAccountname, $wgOpenIDProposeUsernameFromSREG;
+
+		switch ( $choice ) {
+		 case 'nick':
+		 	if ( $wgOpenIDProposeUsernameFromSREG ) return ( ( array_key_exists( 'nickname', $sreg ) ) ? $sreg['nickname'] : null );
+		 	break;
+		 case 'full':
+		        if ( !$wgOpenIDProposeUsernameFromSREG ) return;
+		 	# check the SREG first; only return a value if non-null
+		 	$fullname = ( ( array_key_exists( 'fullname', $sreg ) ) ? $sreg['fullname'] : null );
+		 	if ( !is_null( $fullname ) ) {
+			 	return $fullname;
+			}
+
+		 	# try AX
+		 	$fullname = ( ( array_key_exists( 'http://axschema.org/namePerson/first', $ax ) || array_key_exists( 'http://axschema.org/namePerson/last', $ax ) ) ? $ax['http://axschema.org/namePerson/first'][0] . " " . $ax['http://axschema.org/namePerson/last'][0] : null );
+
+		 	return $fullname;
+			break;
+		 case 'url':
+			if ( $wgOpenIDProposeUsernameFromSREG ) return $this->toUserName( $openid );
+			break;
+		 case 'auto':
+		        if ( $wgOpenIDAllowAutomaticUsername ) return $this->automaticName( $sreg );
+			break;
+		 case 'manual':
+		        if ( $wgOpenIDAllowNewAccountname ) return $nameValue;
+		 default:
+			return null;
 		}
 	}
 
-	function updateUserUrl($user, $url) {
-		global $wgSharedDB, $wgDBname;
-		$dbw =& wfGetDB( DB_MASTER );
+	function toUserName( $openid ) {
+        if ( Auth_Yadis_identifierScheme( $openid ) == 'XRI' ) {
+			return $this->toUserNameXri( $openid );
+		} else {
+			return $this->toUserNameUrl( $openid );
+		}
+	}
 
-		if (isset($wgSharedDB)) {
-			# It would be nicer to get the existing dbname
-			# and save it, but it's not possible
-			$dbw->selectDB($wgSharedDB);
+	function getNameFromEmail( $openid, $sreg, $ax ) {
+
+		# return the part before the @ in the e-mail address;
+		# look at AX, then SREG.
+		if ( array_key_exists ( 'http://axschema.org/contact/email', $ax ) ) {
+			$addr = explode( "@", $ax['http://axschema.org/contact/email'][0] );
+			if ( $addr ) {
+				return $addr[0];
+			}
 		}
 
-		$dbw->set('user_openid', 'uoi_openid', $url,
-				  'uoi_user = ' . $user->getID());
+		if ( array_key_exists( 'email', $sreg ) ) {
+			$addr = explode( "@", $sreg['email'] );
+			if ( $addr ) {
+				return $addr[0];
+			}
+		}
+	}
 
-		if (isset($wgSharedDB)) {
-			$dbw->selectDB($wgDBname);
+	/**
+	 * We try to use an OpenID URL as a legal MediaWiki user name in this order
+	 * 1. Plain hostname, like http://evanp.myopenid.com/
+	 * 2. One element in path, like http://profile.typekey.com/EvanProdromou/
+	 *   or http://getopenid.com/evanprodromou
+	 */
+    function toUserNameUrl( $openid ) {
+		static $bad = array( 'query', 'user', 'password', 'port', 'fragment' );
+
+	    $parts = parse_url( $openid );
+
+		# If any of these parts exist, this won't work
+
+		foreach ( $bad as $badpart ) {
+			if ( array_key_exists( $badpart, $parts ) ) {
+				return null;
+			}
 		}
+
+		# We just have host and/or path
+
+		# If it's just a host...
+		if ( array_key_exists( 'host', $parts ) &&
+			( !array_key_exists( 'path', $parts ) || strcmp( $parts['path'], '/' ) == 0 ) )
+		{
+			$hostparts = explode( '.', $parts['host'] );
+
+			# Try to catch common idiom of nickname.service.tld
+
+			if ( ( count( $hostparts ) > 2 ) &&
+				( strlen( $hostparts[count( $hostparts ) - 2] ) > 3 ) && # try to skip .co.uk, .com.au
+				( strcmp( $hostparts[0], 'www' ) != 0 ) )
+			{
+				return $hostparts[0];
+			} else {
+				# Do the whole hostname
+				return $parts['host'];
+			}
+		} else {
+			if ( array_key_exists( 'path', $parts ) ) {
+				# Strip starting, ending slashes
+				$path = preg_replace( '@/$@', '', $parts['path'] );
+				$path = preg_replace( '@^/@', '', $path );
+				if ( strpos( $path, '/' ) === false ) {
+					return $path;
+				}
+			}
+		}
+
+		return null;
 	}
 
-	function saveValues($response, $sreg) {
-		global $wgSessionStarted, $wgUser;
+	function toUserNameXri( $xri ) {
+		$base = $this->xriBase( $xri );
 
-		if (!$wgSessionStarted) {
-			$wgUser->SetupSession();
+		if ( !$base ) {
+			return null;
+		} else {
+			# =evan.prodromou
+			# or @gratis*evan.prodromou
+			$parts = explode( '*', substr( $base, 1 ) );
+			return array_pop( $parts );
 		}
+	}
 
+	function automaticName( $sreg ) {
+		if ( array_key_exists( 'nickname', $sreg ) && # try auto-generated from nickname
+			strlen( $sreg['nickname'] ) > 0 ) {
+			return $this->firstAvailable( $sreg['nickname'] );
+		} else { # try auto-generated
+			return $this->firstAvailable( wfMsg( 'openidusernameprefix' ) );
+		}
+	}
+
+	/**
+	 * Get an auto-incremented name
+	 */
+	function firstAvailable( $prefix ) {
+		for ( $i = 2; ; $i++ ) { # FIXME: this is the DUMB WAY to do this
+			$name = "$prefix$i";
+			if ( $this->userNameOK( $name ) ) {
+				return $name;
+			}
+		}
+	}
+
+	/**
+	 * Is this name OK to use as a user name?
+	 */
+	function userNameOK( $name ) {
+		global $wgReservedUsernames;
+		return ( 0 == User::idFromName( $name ) &&
+				!in_array( $name, $wgReservedUsernames ) );
+	}
+
+	# Session stuff
+	# -------------
+
+	function saveValues( $response, $sreg, $ax ) {
+		$this->setupSession();
+
 		$_SESSION['openid_consumer_response'] = $response;
 		$_SESSION['openid_consumer_sreg'] = $sreg;
+		$_SESSION['openid_consumer_ax'] = $ax;
 
 		return true;
 	}
 
 	function clearValues() {
-		unset($_SESSION['openid_consumer_response']);
-		unset($_SESSION['openid_consumer_sreg']);
+		unset( $_SESSION['openid_consumer_response'] );
+		unset( $_SESSION['openid_consumer_sreg'] );
+		unset( $_SESSION['openid_consumer_ax'] );
 		return true;
 	}
 
 	function fetchValues() {
-		return array($_SESSION['openid_consumer_response'], $_SESSION['openid_consumer_sreg']);
+		$response = isset( $_SESSION['openid_consumer_response'] ) ? $_SESSION['openid_consumer_response'] : null;
+		$sreg = isset( $_SESSION['openid_consumer_sreg'] ) ? $_SESSION['openid_consumer_sreg'] : null;
+		$ax = isset( $_SESSION['openid_consumer_ax'] ) ? $_SESSION['openid_consumer_ax'] : null;
+		return array( $response, $sreg, $ax );
 	}
 
 	function returnTo() {
-		return $_SESSION['openid_consumer_returnto'];
+		$returnto = isset( $_SESSION['openid_consumer_returnto'] ) ? $_SESSION['openid_consumer_returnto'] : '';
+		$returntoquery = isset( $_SESSION['openid_consumer_returntoquery'] ) ? $_SESSION['openid_consumer_returntoquery'] : '';
+		return array( $returnto, $returntoquery );
 	}
 
-	function setReturnTo($returnto) {
+	function setReturnTo( $returnto, $returntoquery ) {
+		$this->setupSession();
 		$_SESSION['openid_consumer_returnto'] = $returnto;
+		$_SESSION['openid_consumer_returntoquery'] = $returntoquery;
 	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDServer.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDServer.body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDServer.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Server.php -- Server side of OpenID site
+ * SpecialOpenIDServer.body.php -- Server side of OpenID site
  * Copyright 2006,2007 Internet Brands (http://www.internetbrands.com/)
  * Copyright 2007,2008 Evan Prodromou <evan at prodromou.name>
  *
@@ -18,15 +18,16 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
-if (!defined('MEDIAWIKI'))
-  exit(1);
+if ( !defined( 'MEDIAWIKI' ) )
+  exit( 1 );
 
-require_once("Auth/OpenID/Server.php");
-require_once("Auth/OpenID/Consumer.php");
+require_once( "Auth/OpenID/Server.php" );
+require_once( "Auth/OpenID/Consumer.php" );
 
 # Special page for the server side of OpenID
 # It has three major flavors:
@@ -46,104 +47,108 @@
 
 class SpecialOpenIDServer extends SpecialOpenID {
 
-	function SpecialOpenIDServer() {
-		SpecialPage::SpecialPage("OpenIDServer", '', false);
+	function __construct() {
+		parent::__construct( "OpenIDServer", '', false );
 	}
 
-	function execute($par) {
-
+	function execute( $par ) {
 		global $wgOut, $wgOpenIDClientOnly;
 
-		wfLoadExtensionMessages( 'OpenID' );
-
 		$this->setHeaders();
 
 		# No server functionality if this site is only a client
 		# Note: special page is un-registered if this flag is set,
 		# so it'd be unusual to get here.
-		
-		if ($wgOpenIDClientOnly) {
-			$wgOut->showErrorPage('openiderror', 'openidclientonlytext');
+
+		if ( $wgOpenIDClientOnly ) {
+			$wgOut->showErrorPage( 'openiderror', 'openidclientonlytext' );
 			return;
 		}
-		
-		$server =& $this->getServer();
 
-		switch ($par) {
+		wfSuppressWarnings();
+		$server = $this->getServer();
+		wfRestoreWarnings();
+
+		switch ( $par ) {
 		 case 'Login':
-			list($request, $sreg) = $this->FetchValues();
-			$result = $this->serverLogin($request);
-			if ($result) {
-				if (is_string($result)) {
-					$this->LoginForm($request, $result);
+			list( $request, $sreg ) = $this->FetchValues();
+			$result = $this->serverLogin( $request );
+			if ( $result ) {
+				if ( is_string( $result ) ) {
+					$this->LoginForm( $request, $result );
 					return;
 				} else {
-					$this->Response($server, $result);
+					$this->Response( $server, $result );
 					return;
 				}
 			}
 			break;
-		 case 'Trust':
-			list($request, $sreg) = $this->FetchValues();
-			$result = $this->Trust($request, $sreg);
-			if ($result) {
-				if (is_string($result)) {
-					$this->TrustForm($request, $sreg, $result);
+		case 'Trust':
+			list( $request, $sreg ) = $this->FetchValues();
+			$result = $this->Trust( $request, $sreg );
+			if ( $result ) {
+				if ( is_string( $result ) ) {
+					$this->TrustForm( $request, $sreg, $result );
 					return;
 				} else {
-					$this->Response($server, $result);
+					$this->Response( $server, $result );
 					return;
 				}
 			}
 			break;
-		 default:
-			if (strlen($par)) {
-				wfDebug("OpenID: aborting in user validation because the parameter was empty\n");
-				$wgOut->showErrorPage('openiderror', 'openiderrortext');
+		default:
+			if ( strlen( $par ) ) {
+				wfDebug( "OpenID: aborting in user validation because the parameter was empty\n" );
+				$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
 				return;
 			} else {
 				$method = $_SERVER['REQUEST_METHOD'];
 				$query = null;
-				if ($method == 'GET') {
+				if ( $method == 'GET' ) {
 					$query = $_GET;
 				} else {
 					$query = $_POST;
 				}
 
+				wfSuppressWarnings();
 				$request = $server->decodeRequest();
-				$sreg = $this->SregFromQuery($query);
-				$response = NULL;
+				wfRestoreWarnings();
+
+				$sreg = $this->SregFromQuery( $query );
+				$response = null;
 				break;
 			}
 		}
 
-		if (!isset($request)) {
-			wfDebug("OpenID: aborting in user validation because the request was missing\n");
-			$wgOut->showErrorPage('openiderror', 'openiderrortext');
+		if ( !isset( $request ) ) {
+			wfDebug( "OpenID: aborting in user validation because the request was missing\n" );
+			$wgOut->showErrorPage( 'openiderror', 'openiderrortext' );
 			return;
 		}
 
 		global $wgUser;
 
-		switch ($request->mode) {
+		switch ( $request->mode ) {
 		 case "checkid_setup":
-			$response = $this->Check($server, $request, $sreg, false);
+			$response = $this->Check( $server, $request, $sreg, false );
 			break;
 		 case "checkid_immediate":
-			$response = $this->Check($server, $request, $sreg, true);
+			$response = $this->Check( $server, $request, $sreg, true );
 			break;
 		 default:
 			# For all the other parts, just let the libs do it
-			$response =& $server->handleRequest($request);
+			wfSuppressWarnings();
+			$response =& $server->handleRequest( $request );
+			wfRestoreWarnings();
 		}
 
 		# OpenIDServerCheck returns NULL if some output (like a form)
 		# has been done
 
-		if (isset($response)) {
+		if ( isset( $response ) ) {
 			# We're done; clear values
 			$this->ClearValues();
-			$this->Response($server, $response);
+			$this->Response( $server, $response );
 		}
 	}
 
@@ -151,111 +156,116 @@
 	# for some requests
 
 	function Url() {
-		$nt = Title::makeTitleSafe(NS_SPECIAL, 'OpenIDServer');
-		if (isset($nt)) {
+		$nt = SpecialPage::getTitleFor( 'OpenIDServer' );
+		if ( isset( $nt ) ) {
 			return $nt->getFullURL();
 		} else {
-			return NULL;
+			return null;
 		}
 	}
 
 	# Returns an Auth_OpenID_Server from the libraries. Utility.
 
+	/**
+	 * @return Auth_OpenID_Server
+	 */
 	function getServer() {
 		global $wgOpenIDServerStorePath,
 		  $wgOpenIDServerStoreType;
 
-		$store = $this->getOpenIDStore($wgOpenIDServerStoreType,
-									   'server',
-									   array('path' => $wgOpenIDServerStorePath));
+		$store = $this->getOpenIDStore(
+			$wgOpenIDServerStoreType,
+			'server',
+			array( 'path' => $wgOpenIDServerStorePath )
+		);
 
-		return new Auth_OpenID_Server($store, $this->serverUrl());
+		return new Auth_OpenID_Server( $store, $this->serverUrl() );
 	}
 
 	# Checks a validation request. $imm means don't run any UI.
 	# Fairly meticulous and step-by step, and uses assertions
 	# to point out assumptions at each step.
 	#
-	# XXX: this should probably be broken up into multiple functions for
+	# FIXME: this should probably be broken up into multiple functions for
 	# clarity.
 
-	function Check($server, $request, $sreg, $imm = true) {
+	function Check( $server, $request, $sreg, $imm = true ) {
 
-		global $wgUser, $wgOut;
+		global $wgUser, $wgOut, $wgOpenIDAllowServingOpenIDUserAccounts;
 
-		assert(isset($wgUser) && isset($wgOut));
-		assert(isset($server));
-		assert(isset($request));
-		assert(isset($sreg));
-		assert(isset($imm) && is_bool($imm));
+		assert( isset( $wgUser ) && isset( $wgOut ) );
+		assert( isset( $server ) );
+		assert( isset( $request ) );
+		assert( isset( $sreg ) );
+		assert( isset( $imm ) && is_bool( $imm ) );
 
 		# Is the passed identity URL a user page?
 
 		$url = $request->identity;
 
-		assert(isset($url) && strlen($url) > 0);
+		assert( isset( $url ) && strlen( $url ) > 0 );
 
-		$name = $this->UrlToUserName($url);
+		wfDebug( "OpenID: OpenIDServer received: '$url'.\n" );
 
-		if (!isset($name) || strlen($name) == 0) {
-			wfDebug("OpenID: '$url' not a user page.\n");
-			return $request->answer(false, $this->serverUrl());
+		$name = $this->UrlToUserName( $url );
+
+		if ( !isset( $name ) || strlen( $name ) == 0 ) {
+			wfDebug( "OpenID: '$url' not a user page.\n" );
+			return $request->answer( false, $this->serverUrl() );
 		}
 
-		assert(isset($name) && strlen($name) > 0);
+		assert( isset( $name ) && strlen( $name ) > 0 );
 
 		# Is there a logged in user?
 
-		if ($wgUser->getId() == 0) {
-			wfDebug("OpenID: User not logged in.\n");
-			if ($imm) {
-				return $request->answer(false, $this->serverUrl());
+		if ( $wgUser->getId() == 0 ) {
+			wfDebug( "OpenID: User not logged in.\n" );
+			if ( $imm ) {
+				return $request->answer( false, $this->serverUrl() );
 			} else {
 				# Bank these for later
-				$this->SaveValues($request, $sreg);
-				$this->LoginForm($request);
-				return NULL;
+				$this->SaveValues( $request, $sreg );
+				$this->LoginForm( $request );
+				return null;
 			}
 		}
 
-		assert($wgUser->getId() != 0);
+		assert( $wgUser->getId() != 0 );
 
 		# Is the user page for the logged-in user?
 
-		$user = User::newFromName($name);
+		$user = User::newFromName( $name );
 
-		if (!isset($user) ||
-			$user->getId() != $wgUser->getId()) {
-			wfDebug("OpenID: User from url not logged in user.\n");
-			return $request->answer(false, $this->serverUrl());
+		if ( !isset( $user ) ||
+			$user->getId() != $wgUser->getId() ) {
+			wfDebug( "OpenID: User from url not logged in user.\n" );
+			return $request->answer( false, $this->serverUrl() );
 		}
 
-		assert(isset($user) && $user->getId() == $wgUser->getId() && $user->getId() != 0);
+		assert( isset( $user ) && $user->getId() == $wgUser->getId() && $user->getId() != 0 );
 
 		# Is the user an OpenID user?
 
-		$openid = $this->getUserUrl($user);
-
-		if (isset($openid) && strlen($openid) > 0) {
-			wfDebug("OpenID: Not one of our users; logs in with OpenID.\n");
-			return $request->answer(false, $this->serverUrl());
+		if ( !$wgOpenIDAllowServingOpenIDUserAccounts && $this->getUserOpenIDInformation( $user ) ) {
+			wfDebug( "OpenID: Not one of our users; logs in with OpenID.\n" );
+			return $request->answer( false, $this->serverUrl() );
 		}
 
-	    assert(is_array($sreg));
+		assert( is_array( $sreg ) );
 
 		# Does the request require sreg fields that the user has not specified?
 
-		if (array_key_exists('required', $sreg)) {
+		if ( array_key_exists( 'required', $sreg ) ) {
 			$notFound = false;
-			foreach ($sreg['required'] as $reqfield) {
-				if (is_null($this->GetUserField($user, $reqfield))) {
+			foreach ( $sreg['required'] as $reqfield ) {
+				if ( is_null( $this->GetUserField( $user, $reqfield ) ) ) {
 					$notFound = true;
 					break;
 				}
 			}
-			if ($notFound) {
-				wfDebug("OpenID: Consumer demands info we don't have.\n");
-				return $request->answer(false, $this->serverUrl());
+			if ( $notFound ) {
+				wfDebug( "OpenID: Consumer demands info we don't have.\n" );
+				return $request->answer( false, $this->serverUrl() );
 			}
 		}
 
@@ -263,71 +273,73 @@
 
 		$trust_root = $request->trust_root;
 
-		assert(isset($trust_root) && is_string($trust_root) && strlen($trust_root) > 0);
+		assert( isset( $trust_root ) && is_string( $trust_root ) && strlen( $trust_root ) > 0 );
 
-		$trust = $this->GetUserTrust($user, $trust_root);
+		$trust = $this->GetUserTrust( $user, $trust_root );
 
 		# Is there a trust record?
 
-		if (is_null($trust)) {
-			wfDebug("OpenID: No trust record.\n");
-			if ($imm) {
-				return $request->answer(false, $this->serverUrl());
+		if ( is_null( $trust ) ) {
+			wfDebug( "OpenID: No trust record.\n" );
+			if ( $imm ) {
+				return $request->answer( false, $this->serverUrl() );
 			} else {
 				# Bank these for later
-				$this->SaveValues($request, $sreg);
-				$this->TrustForm($request, $sreg);
-				return NULL;
+				$this->SaveValues( $request, $sreg );
+				$this->TrustForm( $request, $sreg );
+				return null;
 			}
 		}
 
-	    assert(!is_null($trust));
+		assert( !is_null( $trust ) );
 
 		# Is the trust record _not_ to allow trust?
 		# NB: exactly equal
 
-		if ($trust === false) {
-			wfDebug("OpenID: User specified not to allow trust.\n");
-			return $request->answer(false, $this->serverUrl());
+		if ( $trust === false ) {
+			wfDebug( "OpenID: User specified not to allow trust.\n" );
+			return $request->answer( false, $this->serverUrl() );
 		}
 
-        assert(isset($trust) && is_array($trust));
+		assert( isset( $trust ) && is_array( $trust ) );
 
 		# Does the request require sreg fields that the user has
 		# not allowed us to pass, or has not specified?
 
-		if (array_key_exists('required', $sreg)) {
+		if ( array_key_exists( 'required', $sreg ) ) {
 			$notFound = false;
-			foreach ($sreg['required'] as $reqfield) {
-				if (!in_array($reqfield, $trust) ||
-					is_null($this->GetUserField($user, $reqfield))) {
+			foreach ( $sreg['required'] as $reqfield ) {
+				if ( !in_array( $reqfield, $trust ) ||
+					is_null( $this->GetUserField( $user, $reqfield ) ) ) {
 					$notFound = true;
 					break;
 				}
 			}
-			if ($notFound) {
-				wfDebug("OpenID: Consumer demands info user doesn't want shared.\n");
-				return $request->answer(false, $this->serverUrl());
+			if ( $notFound ) {
+				wfDebug( "OpenID: Consumer demands info user doesn't want shared.\n" );
+				return $request->answer( false, $this->serverUrl() );
 			}
 		}
 
-	    # assert(all required sreg fields are in $trust)
+		# assert(all required sreg fields are in $trust)
 
-		# XXX: run a hook here to check
+		# FIXME: run a hook here to check
 
 		# SUCCESS
 
-		$response_fields = array_intersect(array_unique(array_merge($sreg['required'], $sreg['optional'])),
-										   $trust);
+		$response_fields = array_intersect( array_unique( array_merge( $sreg['required'], $sreg['optional'] ) ),
+										   $trust );
 
-		$response = $request->answer(true);
+		wfSuppressWarnings();
+		$response = $request->answer( true );
+		wfRestoreWarnings();
 
-	    assert(isset($response));
+		assert( isset( $response ) );
 
-		foreach ($response_fields as $field) {
-			$value = $this->GetUserField($user, $field);
-			if (!is_null($value)) {
-				$response->addField('sreg', $field, $value);
+		foreach ( $response_fields as $field ) {
+			$value = $this->GetUserField( $user, $field );
+			if ( !is_null( $value ) ) {
+				$response->addField( 'sreg', $field, $value );
 			}
 		}
 
@@ -340,53 +352,53 @@
 	# * false -> stored trust preference is not to trust
 	# * array -> possibly empty array of allowed profile fields; trust is OK
 
-	function GetUserTrust($user, $trust_root) {
-		static $allFields = array('nickname', 'fullname', 'email', 'language');
+	function GetUserTrust( $user, $trust_root ) {
+		static $allFields = array( 'nickname', 'fullname', 'email', 'language' );
 		global $wgOpenIDServerForceAllowTrust;
 
-		foreach ($wgOpenIDServerForceAllowTrust as $force) {
-			if (preg_match($force, $trust_root)) {
+		foreach ( $wgOpenIDServerForceAllowTrust as $force ) {
+			if ( preg_match( $force, $trust_root ) ) {
 				return $allFields;
 			}
 		}
 
-		$trust_array = $this->GetUserTrustArray($user);
+		$trust_array = $this->GetUserTrustArray( $user );
 
-		if (array_key_exists($trust_root, $trust_array)) {
+		if ( array_key_exists( $trust_root, $trust_array ) ) {
 			return $trust_array[$trust_root];
 		} else {
 			return null; # Unspecified trust
 		}
 	}
 
-	function SetUserTrust(&$user, $trust_root, $value) {
+	function SetUserTrust( &$user, $trust_root, $value ) {
 
-		$trust_array = $this->GetUserTrustArray($user);
+		$trust_array = $this->GetUserTrustArray( $user );
 
-		if (is_null($value)) {
-			if (array_key_exists($trust_root, $trust_array)) {
-				unset($trust_array[$trust_root]);
+		if ( is_null( $value ) ) {
+			if ( array_key_exists( $trust_root, $trust_array ) ) {
+				unset( $trust_array[$trust_root] );
 			}
 		} else {
 			$trust_array[$trust_root] = $value;
 		}
 
-		$this->SetUserTrustArray($user, $trust_array);
+		$this->SetUserTrustArray( $user, $trust_array );
 	}
 
-	function GetUserTrustArray($user) {
+	function GetUserTrustArray( $user ) {
 		$trust_array = array();
-		$trust_str = $user->getOption('openid_trust');
-		if (strlen($trust_str) > 0) {
-			$trust_records = explode("\x1E", $trust_str);
-			foreach ($trust_records as $record) {
-				$fields = explode("\x1F", $record);
-				$trust_root = array_shift($fields);
-				if (count($fields) == 1 && strcmp($fields[0], 'no') == 0) {
+		$trust_str = $user->getOption( 'openid_trust' );
+		if ( strlen( $trust_str ) > 0 ) {
+			$trust_records = explode( "\x1E", $trust_str );
+			foreach ( $trust_records as $record ) {
+				$fields = explode( "\x1F", $record );
+				$trust_root = array_shift( $fields );
+				if ( count( $fields ) == 1 && strcmp( $fields[0], 'no' ) == 0 ) {
 					$trust_array[$trust_root] = false;
 				} else {
-					$fields = array_map('trim', $fields);
-					$fields = array_filter($fields, array($this, 'ValidField'));
+					$fields = array_map( 'trim', $fields );
+					$fields = array_filter( $fields, array( $this, 'ValidField' ) );
 					$trust_array[$trust_root] = $fields;
 				}
 			}
@@ -394,62 +406,62 @@
 		return $trust_array;
 	}
 
-	function SetUserTrustArray(&$user, $arr) {
+	function SetUserTrustArray( &$user, $arr ) {
 		$trust_records = array();
-		foreach ($arr as $root => $value) {
-			if ($value === false) {
-				$record = implode("\x1F", array($root, 'no'));
-			} else if (is_array($value)) {
-				if (count($value) == 0) {
+		foreach ( $arr as $root => $value ) {
+			if ( $value === false ) {
+				$record = implode( "\x1F", array( $root, 'no' ) );
+			} elseif ( is_array( $value ) ) {
+				if ( count( $value ) == 0 ) {
 					$record = $root;
 				} else {
-					$value = array_map('trim', $value);
-					$value = array_filter($value, array($this, 'ValidField'));
-					$record = implode("\x1F", array_merge(array($root), $value));
+					$value = array_map( 'trim', $value );
+					$value = array_filter( $value, array( $this, 'ValidField' ) );
+					$record = implode( "\x1F", array_merge( array( $root ), $value ) );
 				}
 			} else {
 				continue;
 			}
 			$trust_records[] = $record;
 		}
-		$trust_str = implode("\x1E", $trust_records);
-		$user->setOption('openid_trust', $trust_str);
+		$trust_str = implode( "\x1E", $trust_records );
+		$user->setOption( 'openid_trust', $trust_str );
 	}
 
-	function ValidField($name) {
-		# XXX: eventually add timezone
-		static $fields = array('nickname', 'email', 'fullname', 'language');
-		return in_array($name, $fields);
+	function ValidField( $name ) {
+		# FIXME: eventually add timezone
+		static $fields = array( 'nickname', 'email', 'fullname', 'language' );
+		return in_array( $name, $fields );
 	}
 
-	function SregFromQuery($query) {
-		$sreg = array('required' => array(), 'optional' => array(),
-					  'policy_url' => NULL);
-		if (array_key_exists('openid.sreg.required', $query)) {
-			$sreg['required'] = explode(',', $query['openid.sreg.required']);
+	function SregFromQuery( $query ) {
+		$sreg = array( 'required' => array(), 'optional' => array(),
+					  'policy_url' => null );
+		if ( array_key_exists( 'openid.sreg.required', $query ) ) {
+			$sreg['required'] = explode( ',', $query['openid.sreg.required'] );
 		}
-		if (array_key_exists('openid.sreg.optional', $query)) {
-			$sreg['optional'] = explode(',', $query['openid.sreg.optional']);
+		if ( array_key_exists( 'openid.sreg.optional', $query ) ) {
+			$sreg['optional'] = explode( ',', $query['openid.sreg.optional'] );
 		}
-		if (array_key_exists('openid.sreg.policy_url', $query)) {
+		if ( array_key_exists( 'openid.sreg.policy_url', $query ) ) {
 			$sreg['policy_url'] = $query['openid.sreg.policy_url'];
 		}
 		return $sreg;
 	}
 
-	function SetUserField(&$user, $field, $value) {
-		switch ($field) {
+	function SetUserField( &$user, $field, $value ) {
+		switch ( $field ) {
 		 case 'fullname':
-			$user->setRealName($value);
+			$user->setRealName( $value );
 			return true;
 			break;
 		 case 'email':
 			# FIXME: deal with validation
-			$user->setEmail($value);
+			$user->setEmail( $value );
 			return true;
 			break;
 		 case 'language':
-			$user->setOption('language', $value);
+			$user->setOption( 'language', $value );
 			return true;
 			break;
 		 default:
@@ -457,8 +469,8 @@
 		}
 	}
 
-	function GetUserField($user, $field) {
-		switch ($field) {
+	function GetUserField( $user, $field ) {
+		switch ( $field ) {
 		 case 'nickname':
 			return $user->getName();
 			break;
@@ -469,29 +481,31 @@
 			return $user->getEmail();
 			break;
 		 case 'language':
-			return $user->getOption('language');
+			return $user->getOption( 'language' );
 			break;
 		 default:
-			return NULL;
+			return null;
 		}
 	}
 
-	function Response(&$server, &$response) {
+	function Response( &$server, &$response ) {
 		global $wgOut;
 
-		assert(!is_null($server));
-		assert(!is_null($response));
+		assert( !is_null( $server ) );
+		assert( !is_null( $response ) );
 
 		$wgOut->disable();
 
-		$wr =& $server->encodeResponse($response);
+		wfSuppressWarnings();
+		$wr =& $server->encodeResponse( $response );
+		wfRestoreWarnings();
 
-		assert(!is_null($wr));
+		assert( !is_null( $wr ) );
 
-		header("Status: " . $wr->code);
+		header( "Status: " . $wr->code );
 
-		foreach ($wr->headers as $k => $v) {
-			header("$k: $v");
+		foreach ( $wr->headers as $k => $v ) {
+			header( "$k: $v" );
 		}
 
 		print $wr->body;
@@ -499,44 +513,41 @@
 		return;
 	}
 
-	function LoginForm($request, $msg = null) {
-
+	function LoginForm( $request, $msg = null ) {
 		global $wgOut, $wgUser;
 
 		$url = $request->identity;
-		$name = $this->UrlToUserName($url);
+		$name = $this->UrlToUserName( $url );
 		$trust_root = $request->trust_root;
 
-		$instructions = wfMsg('openidserverlogininstructions', $url, $name, $trust_root);
+		$instructions = wfMsg( 'openidserverlogininstructions', $url, $name, $trust_root );
 
-		$username = wfMsg('yourname');
-		$password = wfMsg('yourpassword');
-		$ok = wfMsg('ok');
-		$cancel = wfMsg('cancel');
+		$username = wfMsg( 'yourname' );
+		$password = wfMsg( 'yourpassword' );
+		$ok = wfMsg( 'ok' );
+		$cancel = wfMsg( 'cancel' );
 
-		if (isset($msg)) {
-			$wgOut->addHTML("<p class='error'>{$msg}</p>");
+		if ( !is_null( $msg ) ) {
+			$wgOut->addHTML( "<p class='error'>{$msg}</p>" );
 		}
 
 		$sk = $wgUser->getSkin();
 
-		$wgOut->addHTML("<p>{$instructions}</p>" .
-						'<form action="' . $sk->makeSpecialUrl('OpenIDServer/Login') . '" method="POST">' .
+		$wgOut->addHTML( "<p>{$instructions}</p>" .
+						'<form action="' . $sk->makeSpecialUrl( 'OpenIDServer/Login' ) . '" method="POST">' .
 						'<table>' .
 						"<tr><td><label for='username'>{$username}</label></td>" .
-						'    <td><span id="username">' . htmlspecialchars($name) . '</span></td></tr>' .
+						'    <td><span id="username">' . htmlspecialchars( $name ) . '</span></td></tr>' .
 						"<tr><td><label for='password'>{$password}</label></td>" .
 						'    <td><input type="password" name="wpPassword" size="32" value="" /></td></tr>' .
 						"<tr><td colspan='2'><input type='submit' name='wpOK' value='{$ok}' /> <input type='submit' name='wpCancel' value='{$cancel}' /></td></tr>" .
 						'</table>' .
-						'</form>');
+						'</form>' );
 	}
 
-	function SaveValues($request, $sreg) {
-		global $wgSessionStarted, $wgUser;
-
-		if (!$wgSessionStarted) {
-			$wgUser->SetupSession();
+	function SaveValues( $request, $sreg ) {
+		if ( session_id() == '' ) {
+			wfSetupSession();
 		}
 
 		$_SESSION['openid_server_request'] = $request;
@@ -546,154 +557,153 @@
 	}
 
 	function FetchValues() {
-		return array($_SESSION['openid_server_request'], $_SESSION['openid_server_sreg']);
+		return array( $_SESSION['openid_server_request'], $_SESSION['openid_server_sreg'] );
 	}
 
 	function ClearValues() {
-		unset($_SESSION['openid_server_request']);
-		unset($_SESSION['openid_server_sreg']);
+		unset( $_SESSION['openid_server_request'] );
+		unset( $_SESSION['openid_server_sreg'] );
 		return true;
 	}
 
-	function serverLogin($request) {
-
+	function serverLogin( $request ) {
 		global $wgRequest, $wgUser;
 
-		assert(isset($request));
+		assert( isset( $request ) );
 
-		assert(isset($wgRequest));
+		assert( isset( $wgRequest ) );
 
-		if ($wgRequest->getCheck('wpCancel')) {
-			return $request->answer(false);
+		if ( $wgRequest->getCheck( 'wpCancel' ) ) {
+			return $request->answer( false );
 		}
 
-		$password = $wgRequest->getText('wpPassword');
+		$password = $wgRequest->getText( 'wpPassword' );
 
-		if (!isset($password) || strlen($password) == 0) {
-			return wfMsg('wrongpasswordempty');
+		if ( !isset( $password ) || strlen( $password ) == 0 ) {
+			return wfMsg( 'wrongpasswordempty' );
 		}
 
-		assert (isset($password) && strlen($password) > 0);
+		assert ( isset( $password ) && strlen( $password ) > 0 );
 
 		$url = $request->identity;
 
-		assert(isset($url) && is_string($url) && strlen($url) > 0);
+		assert( isset( $url ) && is_string( $url ) && strlen( $url ) > 0 );
 
-		$name = $this->UrlToUserName($url);
+		$name = $this->UrlToUserName( $url );
 
-		assert(isset($name) && is_string($name) && strlen($name) > 0);
+		assert( isset( $name ) && is_string( $name ) && strlen( $name ) > 0 );
 
-		$user = User::newFromName($name);
+		$user = User::newFromName( $name );
 
-		assert(isset($user));
+		assert( isset( $user ) );
 
-		if (!$user->checkPassword($password)) {
-			return wfMsg('wrongpassword');
+		if ( !$user->checkPassword( $password ) ) {
+			return wfMsg( 'wrongpassword' );
 		} else {
 			$id = $user->getId();
 			$wgUser = $user;
-			$wgUser->SetupSession();
+			wfSetupSession();
 			$wgUser->SetCookies();
-			wfRunHooks('UserLoginComplete', array(&$wgUser));
+			wfRunHooks( 'UserLoginComplete', array( &$wgUser ) );
 			return false;
 		}
 	}
 
-	function TrustForm($request, $sreg, $msg = NULL) {
+	function TrustForm( $request, $sreg, $msg = null ) {
 
 		global $wgOut, $wgUser;
 
 		$url = $request->identity;
-		$name = $this->UrlToUserName($url);
+		$name = $this->UrlToUserName( $url );
 		$trust_root = $request->trust_root;
 
-		$instructions = wfMsg('openidtrustinstructions', $trust_root);
-		$allow = wfMsg('openidallowtrust', $trust_root);
+		$instructions = wfMsg( 'openidtrustinstructions', $trust_root );
+		$allow = wfMsg( 'openidallowtrust', $trust_root );
 
-		if (is_null($sreg['policy_url'])) {
-			$policy = wfMsg('openidnopolicy');
+		if ( is_null( $sreg['policy_url'] ) ) {
+			$policy = wfMsg( 'openidnopolicy' );
 		} else {
-			$policy = wfMsg('openidpolicy', $sreg['policy_url']);
+			$policy = wfMsg( 'openidpolicy', $sreg['policy_url'] );
 		}
 
-		if (isset($msg)) {
-			$wgOut->addHTML("<p class='error'>{$msg}</p>");
+		if ( isset( $msg ) ) {
+			$wgOut->addHTML( "<p class='error'>{$msg}</p>" );
 		}
 
-		$ok = wfMsg('ok');
-		$cancel = wfMsg('cancel');
+		$ok = wfMsg( 'ok' );
+		$cancel = wfMsg( 'cancel' );
 
 		$sk = $wgUser->getSkin();
 
-		$wgOut->addHTML("<p>{$instructions}</p>" .
-						'<form action="' . $sk->makeSpecialUrl('OpenIDServer/Trust') . '" method="POST">' .
+		$wgOut->addHTML( "<p>{$instructions}</p>" .
+						'<form action="' . $sk->makeSpecialUrl( 'OpenIDServer/Trust' ) . '" method="POST">' .
 						'<input name="wpAllowTrust" type="checkbox" value="on" checked="checked" id="wpAllowTrust">' .
-						'<label for="wpAllowTrust">' . $allow . '</label><br />');
+						'<label for="wpAllowTrust">' . $allow . '</label><br />' );
 
-		$fields = array_filter(array_unique(array_merge($sreg['optional'], $sreg['required'])),
-							   array($this, 'ValidField'));
+		$fields = array_filter( array_unique( array_merge( $sreg['optional'], $sreg['required'] ) ),
+							   array( $this, 'ValidField' ) );
 
-		if (count($fields) > 0) {
-			$wgOut->addHTML('<table>');
-			foreach ($fields as $field) {
-				$wgOut->addHTML("<tr>");
-				$wgOut->addHTML("<th><label for='wpAllow{$field}'>");
-				$wgOut->addHTML(wfMsg("openid$field"));
-				$wgOut->addHTML("</label></th>");
-				$value = $this->GetUserField($wgUser, $field);
-				$wgOut->addHTML("</td>");
-				$wgOut->addHTML("<td> " . ((is_null($value)) ? '' : $value) . "</td>");
-				$wgOut->addHTML("<td>" . ((in_array($field, $sreg['required'])) ? wfMsg('openidrequired') : wfMsg('openidoptional')) . "</td>");
-				$wgOut->addHTML("<td><input name='wpAllow{$field}' id='wpAllow{$field}' type='checkbox'");
-				if (!is_null($value)) {
-					$wgOut->addHTML(" value='on' checked='checked' />");
+		if ( count( $fields ) > 0 ) {
+			$wgOut->addHTML( '<table>' );
+			foreach ( $fields as $field ) {
+				$wgOut->addHTML( "<tr>" );
+				$wgOut->addHTML( "<th><label for='wpAllow{$field}'>" );
+				$wgOut->addHTML( wfMsg( "openid$field" ) );
+				$wgOut->addHTML( "</label></th>" );
+				$value = $this->GetUserField( $wgUser, $field );
+				$wgOut->addHTML( "</td>" );
+				$wgOut->addHTML( "<td> " . ( ( is_null( $value ) ) ? '' : $value ) . "</td>" );
+				$wgOut->addHTML( "<td>" . ( ( in_array( $field, $sreg['required'] ) ) ? wfMsg( 'openidrequired' ) : wfMsg( 'openidoptional' ) ) . "</td>" );
+				$wgOut->addHTML( "<td><input name='wpAllow{$field}' id='wpAllow{$field}' type='checkbox'" );
+				if ( !is_null( $value ) ) {
+					$wgOut->addHTML( " value='on' checked='checked' />" );
 				} else {
-					$wgOut->addHTML(" disabled='disabled' />");
+					$wgOut->addHTML( " disabled='disabled' />" );
 				}
-				$wgOut->addHTML("</tr>");
+				$wgOut->addHTML( "</tr>" );
 			}
-			$wgOut->addHTML('</table>');
+			$wgOut->addHTML( '</table>' );
 		}
-		$wgOut->addHTML("<input type='submit' name='wpOK' value='{$ok}' /> <input type='submit' name='wpCancel' value='{$cancel}' /></form>");
-		return NULL;
+		$wgOut->addHTML( "<input type='submit' name='wpOK' value='{$ok}' /> <input type='submit' name='wpCancel' value='{$cancel}' /></form>" );
+		return null;
 	}
 
-	function Trust($request, $sreg) {
+	function Trust( $request, $sreg ) {
 		global $wgRequest, $wgUser;
 
-		assert(isset($request));
-		assert(isset($sreg));
-		assert(isset($wgRequest));
+		assert( isset( $request ) );
+		assert( isset( $sreg ) );
+		assert( isset( $wgRequest ) );
 
-		if ($wgRequest->getCheck('wpCancel')) {
-			return $request->answer(false);
+		if ( $wgRequest->getCheck( 'wpCancel' ) ) {
+			return $request->answer( false );
 		}
 
 		$trust_root = $request->trust_root;
 
-		assert(isset($trust_root) && strlen($trust_root) > 0);
+		assert( isset( $trust_root ) && strlen( $trust_root ) > 0 );
 
 		# If they don't want us to allow trust, save that.
 
-		if (!$wgRequest->getCheck('wpAllowTrust')) {
+		if ( !$wgRequest->getCheck( 'wpAllowTrust' ) ) {
 
-			$this->SetUserTrust($wgUser, $trust_root, false);
+			$this->SetUserTrust( $wgUser, $trust_root, false );
 			# Set'em and sav'em
 			$wgUser->saveSettings();
 		} else {
 
-			$fields = array_filter(array_unique(array_merge($sreg['optional'], $sreg['required'])),
-								   array($this, 'ValidField'));
+			$fields = array_filter( array_unique( array_merge( $sreg['optional'], $sreg['required'] ) ),
+								   array( $this, 'ValidField' ) );
 
 			$allow = array();
 
-			foreach ($fields as $field) {
-				if ($wgRequest->getCheck('wpAllow' . $field)) {
+			foreach ( $fields as $field ) {
+				if ( $wgRequest->getCheck( 'wpAllow' . $field ) ) {
 					$allow[] = $field;
 				}
 			}
 
-			$this->SetUserTrust($wgUser, $trust_root, $allow);
+			$this->SetUserTrust( $wgUser, $trust_root, $allow );
 			# Set'em and sav'em
 			$wgUser->saveSettings();
 		}
@@ -702,40 +712,49 @@
 
 	# Converts an URL to a user name, if possible
 
-	function UrlToUserName($url) {
+	function UrlToUserName( $url ) {
 
 		global $wgArticlePath, $wgServer;
 
 		# URL must be a string
 
-		if (!isset($url) || !is_string($url) || strlen($url) == 0) {
+		if ( !isset( $url ) || !is_string( $url ) || strlen( $url ) == 0 ) {
 			return null;
 		}
 
 		# it must start with our server, case doesn't matter
 
-		if (strpos(strtolower($url), strtolower($wgServer)) !== 0) {
+		if ( strpos( strtolower( $url ), strtolower( $wgServer ) ) !== 0 ) {
 			return null;
 		}
 
-		$parts = parse_url($url);
+		$parts = parse_url( $url );
 
 		$relative = $parts['path'];
-		if (!is_null($parts['query']) && strlen($parts['query']) > 0) {
+		if ( !is_null( $parts['query'] ) && strlen( $parts['query'] ) > 0 ) {
 			$relative .= '?' . $parts['query'];
 		}
 
 		# Use regexps to extract user name
+		$pattern = str_replace( '$1', '(.*)', $wgArticlePath );
+		$pattern = str_replace( '?', '\?', $pattern );
 
-		$pattern = str_replace('$1', '(.*)', $wgArticlePath);
-		$pattern = str_replace('?', '\?', $pattern);
+		/* remove "Special:OpenIDXRDS/" to allow construction of a valid user page name */
+		$specialPagePrefix = SpecialPage::getTitleFor( 'OpenIDXRDS' );
+
+		if ( $specialPagePrefix != "Special:OpenIDXRDS" ) {
+			$specialPagePrefix = "( {$specialPagePrefix} | Special:OpenIDXRDS )";
+		}
+
+		$relative = preg_replace( "!" . preg_quote( $specialPagePrefix, "!" ) . "/!", "", $relative );
+
 		# Can't have a pound-sign in the relative, since that's for fragments
-		if (!preg_match("#$pattern#", $relative, $matches)) {
+		if ( !preg_match( "#$pattern#", $relative, $matches ) ) {
 			return null;
 		} else {
-			$titletext = urldecode($matches[1]);
-			$nt = Title::newFromText($titletext);
-			if (is_null($nt) || $nt->getNamespace() != NS_USER) {
+			$titletext = urldecode( $matches[1] );
+			$nt = Title::newFromText( $titletext );
+			if ( is_null( $nt ) || $nt->getNamespace() != NS_USER ) {
 				return null;
 			} else {
 				return $nt->getText();
@@ -744,6 +763,6 @@
 	}
 
 	function serverUrl() {
-		return $this->fullURL('OpenIDServer');
+		return $this->getTitle()->getFullUrl();
 	}
 }

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDXRDS.body.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDXRDS.body.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/SpecialOpenIDXRDS.body.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,98 +18,100 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at prodromou.name>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
-if (!defined('MEDIAWIKI'))
-	exit(1);
+if ( !defined( 'MEDIAWIKI' ) )
+	exit( 1 );
 
 # Outputs a Yadis (http://yadis.org/) XRDS file, saying that this server
 # supports OpenID and lots of other jazz.
 
 class SpecialOpenIDXRDS extends SpecialOpenID {
 
-	function SpecialOpenIDXRDS() {
-		SpecialPage::SpecialPage("OpenIDXRDS", '', false);
+	function __construct() {
+		parent::__construct( 'OpenIDXRDS', '', false );
 	}
 
 	# $par is a user name
 
-	function execute($par) {
+	function execute( $par ) {
 		global $wgOut, $wgOpenIDClientOnly;
 
-		wfLoadExtensionMessages( 'OpenID' );
-		
 		# No server functionality if this site is only a client
 		# Note: special page is un-registered if this flag is set,
 		# so it'd be unusual to get here.
-		
-		if ($wgOpenIDClientOnly) {
-			wfHttpError(404, "Not Found", wfMsg('openidclientonlytext'));
+
+		if ( $wgOpenIDClientOnly ) {
+			wfHttpError( 404, "Not Found", wfMsg( 'openidclientonlytext' ) );
 			return;
 		}
 
 		// XRDS preamble XML.
-		$xml_template = array('<?xml version="1.0" encoding="UTF-8"?>',
-							  '<xrds:XRDS',
-							  '  xmlns:xrds="xri://\$xrds"',
-							  '  xmlns:openid="http://openid.net/xmlns/1.0"',
-							  '  xmlns="xri://$xrd*($v*2.0)">',
-							  '<XRD>');
+		$xml_template = array( '<?xml version="1.0" encoding="UTF-8"?' . '>',
+			'<xrds:XRDS',
+			'  xmlns:xrds="xri://\$xrds"',
+			'  xmlns:openid="http://openid.net/xmlns/1.0"',
+			'  xmlns="xri://$xrd*($v*2.0)">',
+			'<XRD>' );
 
 		# Check to see if the parameter is really a user name
 
-		if (!$par) {
-			wfHttpError(404, "Not Found", wfMsg('openidnousername'));
+		if ( !$par ) {
+			wfHttpError( 404, "Not Found", wfMsg( 'openidnousername' ) );
+			return;
 		}
 
-		$user = User::newFromName($par);
+		$user = User::newFromName( $par );
 
-		if (!$user || $user->getID() == 0) {
-			wfHttpError(404, "Not Found", wfMsg('openidbadusername'));
+		if ( !$user || $user->getID() == 0 ) {
+			wfHttpError( 404, "Not Found", wfMsg( 'openidbadusername' ) );
+			return;
 		}
 
 		// Generate the user page URL.
 
-		$user_title = Title::makeTitle(NS_USER, $user->getName());
+		$user_title = $user->getUserPage();
 		$user_url = $user_title->getFullURL();
 
 		// Generate the OpenID server endpoint URL.
-		$server_title = Title::makeTitle(NS_SPECIAL, 'OpenIDServer');
+		$server_title = SpecialPage::getTitleFor( 'OpenIDServer' );
 		$server_url = $server_title->getFullURL();
 
 		// Define array of Yadis services to be included in
 		// the XRDS output.
 		$services = array(
-						  array('uri' => $server_url,
+						  array( 'uri' => $server_url,
 								'priority' => '0',
-								'types' => array('http://openid.net/signon/1.0',
+								'types' => array( 'http://openid.net/signon/1.0',
 												 'http://openid.net/sreg/1.0',
-												 'http://specs.openid.net/auth/2.0/signon'),
-								'delegate' => $user_url),
+												 'http://specs.openid.net/auth/2.0/signon' ),
+								'delegate' => $user_url ),
 						  );
 
 		// Generate <Service> elements into $service_text.
 		$service_text = "\n";
-		foreach ($services as $service) {
-		    $types = array();
-		    foreach ($service['types'] as $type_uri) {
-		        $types[] = '    <Type>'.$type_uri.'</Type>';
-		    }
-		    $service_text .= implode("\n",
-									 array('  <Service priority="'.$service['priority'].'">',
-										   '    <URI>'.$server_url.'</URI>',
-										   implode("\n", $types),
-										   '  </Service>'));
+		foreach ( $services as $service ) {
+			$types = array();
+			foreach ( $service['types'] as $type_uri ) {
+				$types[] = '    <Type>' . $type_uri . '</Type>';
+			}
+			$service_text .= implode( "\n",
+				 array( '  <Service priority="' . $service['priority'] . '">',
+				'    <URI>' . $server_url . '</URI>',
+				implode( "\n", $types ),
+				'  </Service>' ) );
 		}
 
 		$wgOut->disable();
 
 		// Print content-type and XRDS XML.
-		header("Content-Type", "application/xrds+xml");
-		print implode("\n", $xml_template);
+		header( "Content-Type: application/xrds+xml" );
+
+		print implode( "\n", $xml_template );
 		print $service_text;
-		print implode("\n", array("</XRD>", "</xrds:XRDS>"));
+		print implode( "\n", array( "</XRD>", "</xrds:XRDS>" ) );
 	}
 }
\ No newline at end of file

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.pg.sql
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.pg.sql	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.pg.sql	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,9 @@
+
+-- Schema for the OpenID extension (Postgres version)
+
+CREATE TABLE /*_*/user_openid (
+  uoi_openid VARCHAR(255) NOT NULL PRIMARY KEY,
+  uoi_user   INTEGER NOT NULL REFERENCES mwuser(user_id)
+);
+
+CREATE INDEX /*i*/user_openid_user ON /*_*/user_openid(uoi_user);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.sql
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.sql	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/openid_table.sql	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,11 @@
+--
+-- SQL schema for OpenID extension
+--
+
+CREATE TABLE /*_*/user_openid (
+  uoi_openid varchar(255) NOT NULL PRIMARY KEY,
+  uoi_user int(5) unsigned NOT NULL,
+  uoi_user_registration binary(14)
+) /*$wgDBTableOptions*/;
+
+CREATE INDEX /*i*/user_openid_user ON /*_*/user_openid(uoi_user);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_multiple_key_index_user_openid_user.sql
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_multiple_key_index_user_openid_user.sql	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_multiple_key_index_user_openid_user.sql	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,5 @@
+--
+-- SQL schema update for OpenID extension to add a non unique uoi_user index
+--
+
+CREATE INDEX /*i*/user_openid_user ON /*_*/user_openid(uoi_user);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_uoi_user_registration.sql
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_uoi_user_registration.sql	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-add_uoi_user_registration.sql	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,4 @@
+--
+-- SQL schema update for OpenID extension to add the uoi_user_registration field
+--
+ALTER TABLE /*_*/user_openid ADD uoi_user_registration BINARY(14);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-drop_non_multiple_key_index_uoi_user.sql
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-drop_non_multiple_key_index_uoi_user.sql	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-drop_non_multiple_key_index_uoi_user.sql	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,5 @@
+--
+-- SQL schema update for OpenID extension to drop uoi_user field because it is unique
+--
+
+ALTER TABLE /*_*/user_openid DROP INDEX uoi_user;

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-uoi_user-not-unique.sql
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-uoi_user-not-unique.sql	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/patches/patch-uoi_user-not-unique.sql	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,6 @@
+--
+-- SQL schema update for OpenID extension to make the uoi_user field not unique
+--
+
+ALTER TABLE /*_*/user_openid DROP INDEX uoi_user;
+CREATE INDEX /*i*/user_openid_user ON /*_*/user_openid(uoi_user);

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/aol_large.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/aol_large.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/blogger_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/blogger_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/claimid_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/claimid_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/flickr_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/flickr_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/google_large.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/google_large.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/livejournal_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/livejournal_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/myopenid_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/myopenid_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/openid-inputicon.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/openid-inputicon.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/openid_large.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/openid_large.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/verisign_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/verisign_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/vidoop_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/vidoop_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/vox_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/vox_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/wordpress_small.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/wordpress_small.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/yahoo_large.png
===================================================================
(Binary files differ)


Property changes on: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/icons/yahoo_large.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid-plain.css
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid-plain.css	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid-plain.css	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,55 @@
+#openid_form {
+	width: 470px;	
+}
+
+#openid_form legend {
+	font-weight: bold;
+}
+
+#openid_input_area {
+	clear: both;
+	padding: 20px;
+	margin: 5px;
+}
+
+#openid_btns {
+}
+
+#openid_highlight {
+	padding: 3px;
+	background-color: #FFFCC9;
+	float: left;
+}
+
+.openid_large_link {
+	font-size: larger;
+	border: 1px solid #DDD;
+	padding: 15px;
+	margin: 7px;
+}
+.openid_small_link {
+}	
+
+.openid_selected {
+	color: orange;
+}
+
+#openid_large_providers {
+	margin: 22px;
+}
+
+#openid_small_providers_links {
+	margin: 0 0 0 30px;
+}
+.openid_small_providers_block {
+	float: left;
+	margin: 0 0 0 30px;
+}
+
+#openid_url {
+	background: url(icons/openid-inputicon.png) no-repeat;
+	background-position: 0 50%;
+	background-color: #fff;
+	color: #000;
+	padding-left: 18px;
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.css
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.css	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.css	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,74 @@
+#openid_form {
+	width: 470px;	
+}
+
+#openid_form legend {
+	font-weight: bold;
+}
+
+#openid_input_area {
+	clear: both;
+	padding: 20px;
+	margin: 5px;
+}
+#openid_btns {
+}
+#openid_highlight {
+	padding: 3px;
+	background-color: #FFFCC9;
+	float: left;
+}
+.openid_large_btn {
+	width: 100px;
+	height: 60px;
+	border: 2px solid #DDD;
+	margin: 3px;
+	float: left;
+	background: #fff no-repeat top left;
+}
+.openid_small_btn {
+	width: 24px;
+	height: 24px;
+	border: 1px solid #DDD;
+	margin: 3px;
+	float: left;
+	background: #fff no-repeat top left;
+}	
+
+.openid_selected {
+	border: 2px solid orange;
+}
+
+a.openid_large_btn:focus {
+	outline: none;
+}
+a.openid_large_btn:focus {
+	-moz-outline-style: none;
+}
+
+#openid_large_providers {
+}
+#openid_small_providers_icons {
+}
+
+#openid_provider_openid_icon { /*@embed*/background-image: url(icons/openid_large.png); }
+#openid_provider_google_icon { background-image: url(icons/google_large.png); }
+#openid_provider_yahoo_icon { background-image: url(icons/yahoo_large.png); }
+#openid_provider_aol_icon { background-image: url(icons/aol_large.png); }
+
+#openid_provider_myopenid_icon { background-image: url(icons/myopenid_small.png); }
+#openid_provider_livejournal_icon { background-image: url(icons/livejournal_small.png); }
+#openid_provider_vox_icon { background-image: url(icons/vox_small.png); }
+#openid_provider_wordpress_icon { background-image: url(icons/wordpress_small.png); }
+#openid_provider_blogger_icon { background-image: url(icons/blogger_small.png); }
+#openid_provider_flickr_icon { background-image: url(icons/flickr_small.png); }
+#openid_provider_verisign_icon { background-image: url(icons/verisign_small.png); }
+#openid_provider_vidoop_icon { background-image: url(icons/vidoop_small.png); }
+#openid_provider_claimid_icon { background-image: url(icons/claimid_small.png); }
+
+#openid_url {
+	background: url(icons/openid-inputicon.png) no-repeat;
+	background-color: #fff;
+	color: #000;
+	padding-left: 18px;
+}

Added: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.js
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.js	                        (rev 0)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/usr/share/mediawiki-extensions/openid/skin/openid.js	2012-06-29 14:46:19 UTC (rev 343)
@@ -0,0 +1,36 @@
+var openid = window.openid = {
+	current: 'openid',
+
+	show: function(provider) {
+		$('#provider_form_' + openid.current).attr('style', 'display:none');
+		$('#provider_form_' + provider).attr('style', 'block');
+
+		$('#openid_provider_' + openid.current +'_icon, #openid_provider_' + openid.current + '_link').removeClass('openid_selected');
+		$('#openid_provider_' + provider +'_icon, #openid_provider_' + provider + '_link').addClass('openid_selected');
+
+		openid.current = provider;
+	},
+	update: function() {
+		// root is root of all articles (e.g. empty article name)
+		var root = wgArticlePath;
+		root = root.replace('$1', '');
+
+		$.cookie('openid.provider', openid.current, { path: root, expires: 365 });
+
+		if (openid.current !== 'openid') {
+			var param = $('#openid_provider_param_' + openid.current).val();
+			$.cookie('openid.param', param, { path: root, expires: 365 });
+
+			$('#openid_url').val($('#openid_provider_url_' + openid.current).val().replace(/{.*}/, param));
+		}
+	},
+	init: function() {
+		var provider = $.cookie('openid.provider');
+		if (provider !== null) {
+			openid.show(provider);
+			$('#openid_provider_param_' + openid.current).val($.cookie('openid.param'));
+		}
+	}
+};
+
+$(document).ready(openid.init);

Modified: mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/var/lib/mediawiki/maintenance/mediawiki-extensions/openid/optionToTable.php
===================================================================
--- mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/var/lib/mediawiki/maintenance/mediawiki-extensions/openid/optionToTable.php	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/dist/mediawiki-extensions-openid/var/lib/mediawiki/maintenance/mediawiki-extensions/openid/optionToTable.php	2012-06-29 14:46:19 UTC (rev 343)
@@ -18,32 +18,45 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
+ * @file
  * @author Evan Prodromou <evan at wikitravel.org>
- * @addtogroup Extensions
+ * @ingroup Extensions
  */
 
-require_once('commandLine.inc');
-ini_set( "include_path", "/usr/share/php:" . ini_get("include_path"));
-
-require_once("$IP/extensions/OpenID/Consumer.php");
-
-global $wgSharedDB, $wgDBprefix;
-$tableName = "${wgDBprefix}user_openid";
-if (isset($wgSharedDB)) {
-	$tableName = "`$wgSharedDB`.$tableName";
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+	$IP = dirname( __FILE__ ) . '/../..';
 }
+require_once( "$IP/maintenance/Maintenance.php" );
 
-$dbr =& wfGetDB( DB_SLAVE );
+class OpenIDOptionToTable extends Maintenance {
+	public function __construct() {
+		parent::__construct();
+		$this->mDescription = 'Convert user_option-stored urls to the new openID table';
+	}
 
-$res = $dbr->select(array('user'),
-					array('user_name'),
-					array('user_options LIKE "%openid_url%"'),
-					'optionToTable',
-					array('ORDER BY' => 'user_name'));
+	public function execute() {
+		$dbr = wfGetDB( DB_SLAVE );
+		if ( !$dbr->tableExists( 'user_properties' ) ) {
+			$this->error( "The OpenID extension requires at least MediaWiki 1.16.", true );
+		}
 
-while ($res && $row = $dbr->fetchObject($res)) {
-	$user = User::newFromName($row->user_name);
-	print( $user->getName() . ": " . $user->getOption('openid_url') . "\n");
-	OpenIDSetUserUrl($user, $user->getOption('openid_url'));
+		$this->output( "Checking for legacy user_property rows..." );
+		$dbr = wfGetDB( DB_SLAVE );
+		$res = $dbr->select( array( 'user_properties' ), array( 'up_user' ),
+			array( 'up_property' => 'openid_url' ), __METHOD__ );
+		if ( $dbr->numRows( $res ) ) {
+			foreach ( $res as $row ) {
+				$user = User::newFromId( $row->up_user );
+				$this->output( "\n\tFixing {$user->getName()}" );
+				SpecialOpenID::addUserUrl( $user, $user->getOption( 'openid_url' ) );
+			}
+			$this->output( "done\n" );
+		} else {
+			$this->output( "none found\n" );
+		}
+	}
 }
-$dbr->freeResult($res);
+
+$maintClass = 'OpenIDOptionToTable';
+require_once( RUN_MAINTENANCE_IF_MAIN );

Modified: mediawiki-extensions/branches/experimental/svn-revisions
===================================================================
--- mediawiki-extensions/branches/experimental/svn-revisions	2012-06-29 14:16:17 UTC (rev 342)
+++ mediawiki-extensions/branches/experimental/svn-revisions	2012-06-29 14:46:19 UTC (rev 343)
@@ -1,245 +1,245 @@
 # svn-revisions, generated by check_version.pl
 # Format is: URL - name - package - basedir - link - revision
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.body.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.ar.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.de.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.en.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.es.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.fa.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.fr.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.gl.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.he.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.hsb.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.ko.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.nl.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.no.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.oc.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.pl.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.pms.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.pt.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.sk.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.sv.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.zh-tw.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.php - FCKeditor - fckeditor - usr/share - yes - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.popup.html - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorEditPage.body.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorParser.body.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorParserOptions.body.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorSajax.body.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorSkin.body.php - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/css/ - FCKeditor - fckeditor - usr/share - no - 0
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.body.php - FCKeditor - fckeditor - usr/share - no - 3279
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.ar.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.de.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.en.php - FCKeditor - fckeditor - usr/share - no - 2388
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.es.php - FCKeditor - fckeditor - usr/share - no - 3235
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.fa.php - FCKeditor - fckeditor - usr/share - no - 2409
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.fr.php - FCKeditor - fckeditor - usr/share - no - 3237
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.gl.php - FCKeditor - fckeditor - usr/share - no - 3236
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.he.php - FCKeditor - fckeditor - usr/share - no - 3363
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.hsb.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.ko.php - FCKeditor - fckeditor - usr/share - no - 3366
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.nl.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.no.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.oc.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.pl.php - FCKeditor - fckeditor - usr/share - no - 2388
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.pms.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.pt.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.sk.php - FCKeditor - fckeditor - usr/share - no - 1833
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.sv.php - FCKeditor - fckeditor - usr/share - no - 3365
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.i18n.zh-tw.php - FCKeditor - fckeditor - usr/share - no - 3248
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.php - FCKeditor - fckeditor - usr/share - yes - 3217
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditor.popup.html - FCKeditor - fckeditor - usr/share - no - 2388
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorEditPage.body.php - FCKeditor - fckeditor - usr/share - no - 5577
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorParser.body.php - FCKeditor - fckeditor - usr/share - no - 3280
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorParserOptions.body.php - FCKeditor - fckeditor - usr/share - no - 2077
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorSajax.body.php - FCKeditor - fckeditor - usr/share - no - 3361
+http://svn.fckeditor.net/MediaWiki/trunk/FCKeditorSkin.body.php - FCKeditor - fckeditor - usr/share - no - 3224
+http://svn.fckeditor.net/MediaWiki/trunk/css/ - FCKeditor - fckeditor - usr/share - no - 3279
 http://svn.fckeditor.net/MediaWiki/trunk/fckeditor/ - none - none - none - no - -1
-http://svn.fckeditor.net/MediaWiki/trunk/fckeditor_config.js - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/mw11/ - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/mw12/ - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/mw14/ - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.fckeditor.net/MediaWiki/trunk/plugins/ - FCKeditor - fckeditor - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_16/extensions/ExtensionFunctions.php - extensions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryPageSubclass.php - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.alias.php - CategoryTree - base - usr/share - no - 0
+http://svn.fckeditor.net/MediaWiki/trunk/fckeditor_config.js - FCKeditor - fckeditor - usr/share - no - 3277
+http://svn.fckeditor.net/MediaWiki/trunk/mw11/ - FCKeditor - fckeditor - usr/share - no - 3217
+http://svn.fckeditor.net/MediaWiki/trunk/mw12/ - FCKeditor - fckeditor - usr/share - no - 3241
+http://svn.fckeditor.net/MediaWiki/trunk/mw14/ - FCKeditor - fckeditor - usr/share - no - 3177
+http://svn.fckeditor.net/MediaWiki/trunk/plugins/ - FCKeditor - fckeditor - usr/share - no - 3366
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_16/extensions/ExtensionFunctions.php - extensions - base - usr/share - no - 41796
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryPageSubclass.php - CategoryTree - base - usr/share - no - 113037
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.alias.php - CategoryTree - base - usr/share - no - 107294
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.css - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.i18n.magic.php - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.i18n.php - CategoryTree - base - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.i18n.magic.php - CategoryTree - base - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.i18n.php - CategoryTree - base - usr/share - no - 110867
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.js - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.php - CategoryTree - base - usr/share - yes - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.php - CategoryTree - base - usr/share - yes - 113037
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTree.rtl.css - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTreeFunctions.php - CategoryTree - base - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTreeFunctions.php - CategoryTree - base - usr/share - no - 113037
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTreeIE.css - CategoryTree - base - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTreePage.i18n.alias.php - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTreePage.php - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/README - CategoryTree - base - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/CategoryTreePage.php - CategoryTree - base - usr/share - no - 113037
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/README - CategoryTree - base - usr/share/doc - no - 65346
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/install.settings - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/modules/ - CategoryTree - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/Cite.i18n.php - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/Cite.php - Cite - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/Cite_body.php - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.alias.php - Cite - base - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CategoryTree/modules/ - CategoryTree - base - usr/share - no - 113037
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/Cite.i18n.php - Cite - base - usr/share - no - 110961
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/Cite.php - Cite - base - usr/share - yes - 110823
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/Cite_body.php - Cite - base - usr/share - no - 108031
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.alias.php - Cite - base - usr/share - no - 107294
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.i18n.alias.php - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.i18n.php - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.php - Cite - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite_body.php - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/citeCatTreeParserTests.txt - Cite - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/citeParserTests.txt - Cite - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-ar - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-arz - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-de - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-fi - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-fr - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-he - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-hu - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-id - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-ja - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-arab - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-cn - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-cyrl - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-kz - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-latn - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-tr - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-lt - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-nl - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-oc - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-ru - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-sq - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-zh-hans - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-zh-hant - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/modules/ - Cite - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.alias.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.body.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.hooks.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.i18n.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.php - Collection - collection - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.session.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.suggest.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.templates.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/CollectionCore.i18n.php - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/README.txt - Collection - collection - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.i18n.php - Cite - base - usr/share - no - 110791
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite.php - Cite - base - usr/share - yes - 106556
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/SpecialCite_body.php - Cite - base - usr/share - no - 102897
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/citeCatTreeParserTests.txt - Cite - base - usr/share/doc - no - 108031
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/citeParserTests.txt - Cite - base - usr/share/doc - no - 108031
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text - Cite - base - usr/share - no - 100958
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-ar - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-arz - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-de - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-fi - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-fr - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-he - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-hu - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-id - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-ja - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-arab - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-cn - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-cyrl - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-kz - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-latn - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-kk-tr - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-lt - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-nl - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-oc - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-ru - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-sq - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-zh-hans - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/cite_text-zh-hant - Cite - base - usr/share - no - 99905
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Cite/modules/ - Cite - base - usr/share - no - 108031
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.alias.php - Collection - collection - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.body.php - Collection - collection - usr/share - no - 113989
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.hooks.php - Collection - collection - usr/share - no - 101609
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.i18n.php - Collection - collection - usr/share - no - 110726
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.php - Collection - collection - usr/share - yes - 107299
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.session.php - Collection - collection - usr/share - no - 99814
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.suggest.php - Collection - collection - usr/share - no - 100780
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Collection.templates.php - Collection - collection - usr/share - no - 99814
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/CollectionCore.i18n.php - Collection - collection - usr/share - no - 110614
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/README.txt - Collection - collection - usr/share/doc - no - 84441
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/Version.php - Collection - collection - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/collection/ - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/images/ - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/js/ - Collection - collection - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Asirra.class.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Asirra.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Asirra.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Captcha.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/CaptchaStore.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit.alias.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit.php - ConfirmEdit - confirmedit - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEditHooks.php - ConfirmEdit - confirmedit - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/images/ - Collection - collection - usr/share - no - 56179
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Collection/js/ - Collection - collection - usr/share - no - 107951
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Asirra.class.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Asirra.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 109231
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Asirra.php - ConfirmEdit - confirmedit - usr/share - no - 105675
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/Captcha.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/CaptchaStore.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit.alias.php - ConfirmEdit - confirmedit - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 110791
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit.php - ConfirmEdit - confirmedit - usr/share - yes - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEditHooks.php - ConfirmEdit - confirmedit - usr/share - no - 108711
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ConfirmEdit_body.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/FancyCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/FancyCaptcha.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/FancyCaptcha.php - ConfirmEdit - confirmedit - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/HTMLCaptchaField.php - ConfirmEdit - confirmedit - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/FancyCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 107337
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/FancyCaptcha.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 108669
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/FancyCaptcha.php - ConfirmEdit - confirmedit - usr/share - yes - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/HTMLCaptchaField.php - ConfirmEdit - confirmedit - usr/share - no - 108711
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/MathCaptcha - ConfirmEdit - confirmedit - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/MathCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/MathCaptcha.php - ConfirmEdit - confirmedit - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/QuestyCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/QuestyCaptcha.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/QuestyCaptcha.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/README - ConfirmEdit - confirmedit - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ReCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ReCaptcha.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ReCaptcha.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/captcha.py - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ext.confirmedit.asirra.js - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/recaptchalib.php - ConfirmEdit - confirmedit - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CreateBox/CreateBox.i18n.php - CreateBox - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CreateBox/CreateBox.php - CreateBox - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/FootNote/Footnote.php - FootNote - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/FootNote/README - FootNote - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/GraphViz/GraphViz.i18n.php - GraphViz - graphviz - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/GraphViz/GraphViz.php - GraphViz - graphviz - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/ImageMap.i18n.php - ImageMap - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/ImageMap.php - ImageMap - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/ImageMap_body.php - ImageMap - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/desc-20.png - ImageMap - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/desc.svg - ImageMap - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.classes.php - InputBox - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.hooks.php - InputBox - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.i18n.php - InputBox - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.php - InputBox - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.alias.php - Interwiki - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.css - Interwiki - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.i18n.php - Interwiki - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.php - Interwiki - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki_body.php - Interwiki - base - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/MathCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/MathCaptcha.php - ConfirmEdit - confirmedit - usr/share - yes - 99827
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/QuestyCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 104867
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/QuestyCaptcha.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 110077
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/QuestyCaptcha.php - ConfirmEdit - confirmedit - usr/share - no - 99827
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/README - ConfirmEdit - confirmedit - usr/share/doc - no - 91977
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ReCaptcha.class.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ReCaptcha.i18n.php - ConfirmEdit - confirmedit - usr/share - no - 108328
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ReCaptcha.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/captcha.py - ConfirmEdit - confirmedit - usr/share - no - 68355
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/ext.confirmedit.asirra.js - ConfirmEdit - confirmedit - usr/share - no - 105675
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ConfirmEdit/recaptchalib.php - ConfirmEdit - confirmedit - usr/share - no - 108711
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CreateBox/CreateBox.i18n.php - CreateBox - base - usr/share - no - 107536
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/CreateBox/CreateBox.php - CreateBox - base - usr/share - yes - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/FootNote/Footnote.php - FootNote - base - usr/share - yes - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/FootNote/README - FootNote - base - usr/share/doc - no - 10812
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/GraphViz/GraphViz.i18n.php - GraphViz - graphviz - usr/share - no - 110255
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/GraphViz/GraphViz.php - GraphViz - graphviz - usr/share - no - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/ImageMap.i18n.php - ImageMap - base - usr/share - no - 110961
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/ImageMap.php - ImageMap - base - usr/share - yes - 110218
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/ImageMap_body.php - ImageMap - base - usr/share - no - 110218
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/desc-20.png - ImageMap - base - usr/share - no - 77542
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ImageMap/desc.svg - ImageMap - base - usr/share - no - 77542
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.classes.php - InputBox - base - usr/share - no - 108731
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.hooks.php - InputBox - base - usr/share - no - 78512
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.i18n.php - InputBox - base - usr/share - no - 110961
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/InputBox/InputBox.php - InputBox - base - usr/share - yes - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.alias.php - Interwiki - base - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.css - Interwiki - base - usr/share - no - 92529
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.i18n.php - Interwiki - base - usr/share - no - 110424
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki.php - Interwiki - base - usr/share - no - 108803
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/Interwiki_body.php - Interwiki - base - usr/share - no - 105761
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/SpecialInterwiki.alias.php - Interwiki - base - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/SpecialInterwiki.css - Interwiki - base - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/SpecialInterwiki.i18n.php - Interwiki - base - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/SpecialInterwiki.php - Interwiki - base - usr/share - yes - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Interwiki/SpecialInterwiki_body.php - Interwiki - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/LanguageSelector.i18n.php - LanguageSelector - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/LanguageSelector.js - LanguageSelector - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/LanguageSelector.php - LanguageSelector - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/README - LanguageSelector - base - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/LanguageSelector.i18n.php - LanguageSelector - base - usr/share - no - 107342
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/LanguageSelector.js - LanguageSelector - base - usr/share - no - 83540
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/LanguageSelector.php - LanguageSelector - base - usr/share - yes - 107380
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/README - LanguageSelector - base - usr/share/doc - no - 84117
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LanguageSelector/install.settings - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/LdapAuthentication.i18n.php - LdapAuthentication - ldapauth - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/LdapAuthentication.php - LdapAuthentication - ldapauth - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/LdapAutoAuthentication.php - LdapAuthentication - ldapauth - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/README - LdapAuthentication - ldapauth - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/ExtendedParamsExample.php - NewUserNotif - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/NewUserNotif.class.php - NewUserNotif - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/NewUserNotif.i18n.php - NewUserNotif - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/NewUserNotif.php - NewUserNotif - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/README - NewUserNotif - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/RELEASE-NOTES - NewUserNotif - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/CHANGELOG - NewestPages - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.alias.php - NewestPages - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.i18n.php - NewestPages - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.page.php - NewestPages - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.php - NewestPages - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/README - NewestPages - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/News.i18n.php - News - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/News.php - News - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/NewsRenderer.php - News - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/README - News - base - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/LdapAuthentication.i18n.php - LdapAuthentication - ldapauth - usr/share - no - 107942
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/LdapAuthentication.php - LdapAuthentication - ldapauth - usr/share - yes - 108775
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/LdapAutoAuthentication.php - LdapAuthentication - ldapauth - usr/share - no - 108101
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/LdapAuthentication/README - LdapAuthentication - ldapauth - usr/share/doc - no - 24891
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/ExtendedParamsExample.php - NewUserNotif - base - usr/share/doc - no - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/NewUserNotif.class.php - NewUserNotif - base - usr/share - no - 84686
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/NewUserNotif.i18n.php - NewUserNotif - base - usr/share - no - 107261
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/NewUserNotif.php - NewUserNotif - base - usr/share - yes - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/README - NewUserNotif - base - usr/share/doc - no - 83151
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewUserNotif/RELEASE-NOTES - NewUserNotif - base - usr/share/doc - no - 83166
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/CHANGELOG - NewestPages - base - usr/share/doc - no - 51301
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.alias.php - NewestPages - base - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.i18n.php - NewestPages - base - usr/share - no - 110424
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.page.php - NewestPages - base - usr/share - no - 110083
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/NewestPages.php - NewestPages - base - usr/share - yes - 107299
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/NewestPages/README - NewestPages - base - usr/share/doc - no - 51301
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/News.i18n.php - News - base - usr/share - no - 110424
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/News.php - News - base - usr/share - yes - 85450
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/NewsRenderer.php - News - base - usr/share - no - 90287
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/README - News - base - usr/share/doc - no - 84117
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/News/install.settings - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/DatabaseConnection.php - OpenID - openid - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/DatabaseConnection.php - OpenID - openid - usr/share - no - 89386
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/Makefile - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/MemcachedStore.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.alias.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.hooks.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.i18n.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.php - OpenID - openid - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.setup.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenIDProvider.body.php - OpenID - openid - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/MemcachedStore.php - OpenID - openid - usr/share - no - 60602
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.alias.php - OpenID - openid - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.hooks.php - OpenID - openid - usr/share - no - 99665
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.i18n.php - OpenID - openid - usr/share - no - 110726
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.php - OpenID - openid - usr/share - yes - 110729
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenID.setup.php - OpenID - openid - usr/share - no - 89384
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/OpenIDProvider.body.php - OpenID - openid - usr/share - no - 89382
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/README - OpenID - openid - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/README.OpenID-mediawiki-extension - OpenID - openid - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenID.body.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDConvert.body.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDDashboard.body.php - OpenID - openid - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/README.OpenID-mediawiki-extension - OpenID - openid - usr/share/doc - no - 110729
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenID.body.php - OpenID - openid - usr/share - no - 110729
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDConvert.body.php - OpenID - openid - usr/share - no - 97770
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDDashboard.body.php - OpenID - openid - usr/share - no - 89607
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDFinish.body.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDLogin.body.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDServer.body.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDXRDS.body.php - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/TODO - OpenID - openid - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDLogin.body.php - OpenID - openid - usr/share - no - 95804
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDServer.body.php - OpenID - openid - usr/share - no - 97770
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/SpecialOpenIDXRDS.body.php - OpenID - openid - usr/share - no - 84686
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/TODO - OpenID - openid - usr/share/doc - no - 89014
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/openid_table.pg.sql - OpenID - openid - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/openid_table.sql - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/optionToTable.php - OpenID - openid - var/lib/mediawiki/maintenance - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/patches/ - OpenID - openid - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/optionToTable.php - OpenID - openid - var/lib/mediawiki/maintenance - no - 106861
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/patches/ - OpenID - openid - usr/share - no - 99511
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/php-openid-2.2.2.tar.gz.sha1 - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/skin/ - OpenID - openid - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/PageCSS/PageCSS.php - PageCSS - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/Convert.php - ParserFunctions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/Expr.php - ParserFunctions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions.i18n.magic.php - ParserFunctions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions.i18n.php - ParserFunctions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions.php - ParserFunctions - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions_body.php - ParserFunctions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/README - ParserFunctions - base - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/OpenID/skin/ - OpenID - openid - usr/share - no - 87850
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/PageCSS/PageCSS.php - PageCSS - base - usr/share - yes - 106136
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/Convert.php - ParserFunctions - base - usr/share - no - 106726
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/Expr.php - ParserFunctions - base - usr/share - no - 106726
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions.i18n.magic.php - ParserFunctions - base - usr/share - no - 107600
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions.i18n.php - ParserFunctions - base - usr/share - no - 107261
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions.php - ParserFunctions - base - usr/share - yes - 106616
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/ParserFunctions_body.php - ParserFunctions - base - usr/share - no - 110730
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/README - ParserFunctions - base - usr/share/doc - no - 79928
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/SprintfDateCompat.php - ParserFunctions - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/convertTests.txt - ParserFunctions - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/exprTests.txt - ParserFunctions - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/funcsParserTests.txt - ParserFunctions - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/stringFunctionTests.txt - ParserFunctions - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/testExpr.php - ParserFunctions - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/Poem.i18n.php - Poem - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/Poem.php - Poem - base - usr/share - yes - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/convertTests.txt - ParserFunctions - base - usr/share/doc - no - 96505
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/exprTests.txt - ParserFunctions - base - usr/share/doc - no - 47264
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/funcsParserTests.txt - ParserFunctions - base - usr/share/doc - no - 106987
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/stringFunctionTests.txt - ParserFunctions - base - usr/share/doc - no - 69220
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/ParserFunctions/testExpr.php - ParserFunctions - base - usr/share/doc - no - 108618
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/Poem.i18n.php - Poem - base - usr/share - no - 109064
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/Poem.php - Poem - base - usr/share - yes - 106136
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/install.settings - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/poemParserTests.txt - Poem - base - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Polyglot/Polyglot.php - Polyglot - base - usr/share - yes - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Polyglot/README - Polyglot - base - usr/share/doc - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Poem/poemParserTests.txt - Poem - base - usr/share/doc - no - 67102
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Polyglot/Polyglot.php - Polyglot - base - usr/share - yes - 107894
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Polyglot/README - Polyglot - base - usr/share/doc - no - 84117
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Polyglot/install.settings - none - none - none - no - -1
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/RenameUserJob.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser.alias.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser.i18n.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser_body.php - Renameuser - base - usr/share - no - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/RenameUserJob.php - Renameuser - base - usr/share - no - 90288
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser.alias.php - Renameuser - base - usr/share - no - 107294
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser.i18n.php - Renameuser - base - usr/share - no - 110961
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser.php - Renameuser - base - usr/share - no - 108097
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/Renameuser_body.php - Renameuser - base - usr/share - no - 108097
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/SpecialRenameuser.alias.php - Renameuser - base - usr/share - no - 0
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/SpecialRenameuser.i18n.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/SpecialRenameuser.php - Renameuser - base - usr/share - yes - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/SpecialRenameuser.php - Renameuser - base - usr/share - yes - 66278
 http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/SpecialRenameuser_body.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/renameUserCleanup.php - Renameuser - base - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/README - SyntaxHighlight_GeSHi - geshi - usr/share/doc - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php - SyntaxHighlight_GeSHi - geshi - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php - SyntaxHighlight_GeSHi - geshi - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.local.php - SyntaxHighlight_GeSHi - geshi - usr/share - no - 0
-http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php - SyntaxHighlight_GeSHi - geshi - usr/share - yes - 0
-svn://svn.debian.org/svn/pkg-mediawiki/unversioned/GraphViz/Graphviz.php - GraphViz - graphviz - usr/share - yes - 0
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/Renameuser/renameUserCleanup.php - Renameuser - base - usr/share - no - 107779
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/README - SyntaxHighlight_GeSHi - geshi - usr/share/doc - no - 82481
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php - SyntaxHighlight_GeSHi - geshi - usr/share - no - 108171
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php - SyntaxHighlight_GeSHi - geshi - usr/share - no - 108083
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.local.php - SyntaxHighlight_GeSHi - geshi - usr/share - no - 103769
+http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php - SyntaxHighlight_GeSHi - geshi - usr/share - yes - 106136
+svn://svn.debian.org/svn/pkg-mediawiki/unversioned/GraphViz/Graphviz.php - GraphViz - graphviz - usr/share - yes - 250
 svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/INFO - none - none - none - no - -1
-svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/RSSReader.css - RSS_Reader - base - usr/share - no - 0
-svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/RSSReader.php - RSS_Reader - base - usr/share - yes - 0
-svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/lastRSS.php - RSS_Reader - base - usr/share - no - 0
+svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/RSSReader.css - RSS_Reader - base - usr/share - no - 157
+svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/RSSReader.php - RSS_Reader - base - usr/share - yes - 248
+svn://svn.debian.org/svn/pkg-mediawiki/unversioned/RSS_Reader/lastRSS.php - RSS_Reader - base - usr/share - no - 156




More information about the Pkg-mediawiki-commits mailing list