summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Renameuser
diff options
context:
space:
mode:
authorYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
committerYaco <franco@reevo.org>2020-06-04 11:01:00 -0300
commitfc7369835258467bf97eb64f184b93691f9a9fd5 (patch)
treedaabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/extensions/Renameuser
first commit
Diffstat (limited to 'www/wiki/extensions/Renameuser')
-rw-r--r--www/wiki/extensions/Renameuser/CODE_OF_CONDUCT.md1
-rw-r--r--www/wiki/extensions/Renameuser/COPYING339
-rw-r--r--www/wiki/extensions/Renameuser/Gruntfile.js26
-rw-r--r--www/wiki/extensions/Renameuser/README13
-rw-r--r--www/wiki/extensions/Renameuser/RenameUserJob.php188
-rw-r--r--www/wiki/extensions/Renameuser/Renameuser.alias.php389
-rw-r--r--www/wiki/extensions/Renameuser/Renameuser.hooks.php71
-rw-r--r--www/wiki/extensions/Renameuser/Renameuser.php17
-rw-r--r--www/wiki/extensions/Renameuser/RenameuserLogFormatter.php96
-rw-r--r--www/wiki/extensions/Renameuser/RenameuserSQL.php378
-rw-r--r--www/wiki/extensions/Renameuser/cleanupArchiveUserText.php60
-rw-r--r--www/wiki/extensions/Renameuser/composer.json23
-rw-r--r--www/wiki/extensions/Renameuser/extension.json61
-rw-r--r--www/wiki/extensions/Renameuser/hooks.txt34
-rw-r--r--www/wiki/extensions/Renameuser/i18n/af.json36
-rw-r--r--www/wiki/extensions/Renameuser/i18n/an.json34
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ang.json10
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ar.json44
-rw-r--r--www/wiki/extensions/Renameuser/i18n/arc.json23
-rw-r--r--www/wiki/extensions/Renameuser/i18n/arz.json31
-rw-r--r--www/wiki/extensions/Renameuser/i18n/as.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ast.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/av.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/az.json27
-rw-r--r--www/wiki/extensions/Renameuser/i18n/azb.json27
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ba.json36
-rw-r--r--www/wiki/extensions/Renameuser/i18n/bcc.json28
-rw-r--r--www/wiki/extensions/Renameuser/i18n/bcl.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/be-tarask.json41
-rw-r--r--www/wiki/extensions/Renameuser/i18n/bg.json45
-rw-r--r--www/wiki/extensions/Renameuser/i18n/bn.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/br.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/bs.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ca.json47
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ce.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ckb.json14
-rw-r--r--www/wiki/extensions/Renameuser/i18n/crh-cyrl.json10
-rw-r--r--www/wiki/extensions/Renameuser/i18n/crh-latn.json10
-rw-r--r--www/wiki/extensions/Renameuser/i18n/cs.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/csb.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/cu.json20
-rw-r--r--www/wiki/extensions/Renameuser/i18n/cv.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/cy.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/da.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/de.json45
-rw-r--r--www/wiki/extensions/Renameuser/i18n/diq.json45
-rw-r--r--www/wiki/extensions/Renameuser/i18n/dsb.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/el.json48
-rw-r--r--www/wiki/extensions/Renameuser/i18n/en.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/eo.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/es.json55
-rw-r--r--www/wiki/extensions/Renameuser/i18n/et.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/eu.json24
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ext.json9
-rw-r--r--www/wiki/extensions/Renameuser/i18n/fa.json43
-rw-r--r--www/wiki/extensions/Renameuser/i18n/fi.json46
-rw-r--r--www/wiki/extensions/Renameuser/i18n/fo.json25
-rw-r--r--www/wiki/extensions/Renameuser/i18n/fr.json50
-rw-r--r--www/wiki/extensions/Renameuser/i18n/frp.json34
-rw-r--r--www/wiki/extensions/Renameuser/i18n/frr.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/fur.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/fy.json32
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ga.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/gl.json41
-rw-r--r--www/wiki/extensions/Renameuser/i18n/grc.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/gsw.json37
-rw-r--r--www/wiki/extensions/Renameuser/i18n/gu.json37
-rw-r--r--www/wiki/extensions/Renameuser/i18n/he.json44
-rw-r--r--www/wiki/extensions/Renameuser/i18n/hi.json41
-rw-r--r--www/wiki/extensions/Renameuser/i18n/hif-latn.json29
-rw-r--r--www/wiki/extensions/Renameuser/i18n/hr.json44
-rw-r--r--www/wiki/extensions/Renameuser/i18n/hsb.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/hu.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ia.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/id.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ig.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ilo.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/io.json26
-rw-r--r--www/wiki/extensions/Renameuser/i18n/is.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/it.json45
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ja.json48
-rw-r--r--www/wiki/extensions/Renameuser/i18n/jut.json27
-rw-r--r--www/wiki/extensions/Renameuser/i18n/jv.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ka.json43
-rw-r--r--www/wiki/extensions/Renameuser/i18n/kk-arab.json18
-rw-r--r--www/wiki/extensions/Renameuser/i18n/kk-cyrl.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/kk-latn.json18
-rw-r--r--www/wiki/extensions/Renameuser/i18n/km.json36
-rw-r--r--www/wiki/extensions/Renameuser/i18n/kn.json17
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ko.json44
-rw-r--r--www/wiki/extensions/Renameuser/i18n/krc.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ksh.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ku-latn.json30
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ky.json20
-rw-r--r--www/wiki/extensions/Renameuser/i18n/la.json26
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lad.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lb.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/li.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lij.json10
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lki.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lrc.json33
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lt.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/lv.json25
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mai.json21
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mg.json19
-rw-r--r--www/wiki/extensions/Renameuser/i18n/min.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mk.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ml.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mn.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mr.json36
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ms.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mt.json36
-rw-r--r--www/wiki/extensions/Renameuser/i18n/mwl.json9
-rw-r--r--www/wiki/extensions/Renameuser/i18n/my.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/myv.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nah.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nan.json5
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nb.json41
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nds-nl.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nds.json29
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ne.json20
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nl-informal.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nl.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nn.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/nso.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/oc.json35
-rw-r--r--www/wiki/extensions/Renameuser/i18n/or.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/os.json13
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pcd.json18
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pdc.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pfl.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pl.json50
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pms.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pnb.json33
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ps.json28
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pt-br.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/pt.json45
-rw-r--r--www/wiki/extensions/Renameuser/i18n/qqq.json52
-rw-r--r--www/wiki/extensions/Renameuser/i18n/qu.json35
-rw-r--r--www/wiki/extensions/Renameuser/i18n/rm.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/rmy.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ro.json44
-rw-r--r--www/wiki/extensions/Renameuser/i18n/roa-tara.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ru.json48
-rw-r--r--www/wiki/extensions/Renameuser/i18n/rue.json35
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sa.json37
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sah.json33
-rw-r--r--www/wiki/extensions/Renameuser/i18n/saz.json9
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sc.json10
-rw-r--r--www/wiki/extensions/Renameuser/i18n/scn.json32
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sgs.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sh.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/si.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sk.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/skr-arab.json8
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sl.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sli.json10
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sq.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sr-ec.json45
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sr-el.json42
-rw-r--r--www/wiki/extensions/Renameuser/i18n/stq.json30
-rw-r--r--www/wiki/extensions/Renameuser/i18n/su.json28
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sv.json51
-rw-r--r--www/wiki/extensions/Renameuser/i18n/sw.json21
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ta.json37
-rw-r--r--www/wiki/extensions/Renameuser/i18n/te.json35
-rw-r--r--www/wiki/extensions/Renameuser/i18n/tet.json20
-rw-r--r--www/wiki/extensions/Renameuser/i18n/tg-cyrl.json29
-rw-r--r--www/wiki/extensions/Renameuser/i18n/tg-latn.json29
-rw-r--r--www/wiki/extensions/Renameuser/i18n/th.json33
-rw-r--r--www/wiki/extensions/Renameuser/i18n/tk.json33
-rw-r--r--www/wiki/extensions/Renameuser/i18n/tl.json35
-rw-r--r--www/wiki/extensions/Renameuser/i18n/to.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/tr.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ug-arab.json14
-rw-r--r--www/wiki/extensions/Renameuser/i18n/uk.json46
-rw-r--r--www/wiki/extensions/Renameuser/i18n/ur.json12
-rw-r--r--www/wiki/extensions/Renameuser/i18n/uz.json11
-rw-r--r--www/wiki/extensions/Renameuser/i18n/vec.json39
-rw-r--r--www/wiki/extensions/Renameuser/i18n/vep.json13
-rw-r--r--www/wiki/extensions/Renameuser/i18n/vi.json40
-rw-r--r--www/wiki/extensions/Renameuser/i18n/vo.json32
-rw-r--r--www/wiki/extensions/Renameuser/i18n/wa.json23
-rw-r--r--www/wiki/extensions/Renameuser/i18n/yi.json38
-rw-r--r--www/wiki/extensions/Renameuser/i18n/yo.json13
-rw-r--r--www/wiki/extensions/Renameuser/i18n/yue.json31
-rw-r--r--www/wiki/extensions/Renameuser/i18n/zh-hans.json49
-rw-r--r--www/wiki/extensions/Renameuser/i18n/zh-hant.json51
-rw-r--r--www/wiki/extensions/Renameuser/i18n/zu.json4
-rw-r--r--www/wiki/extensions/Renameuser/includes/RenameUserJob.php229
-rw-r--r--www/wiki/extensions/Renameuser/includes/RenameuserHooks.php66
-rw-r--r--www/wiki/extensions/Renameuser/includes/RenameuserLogFormatter.php99
-rw-r--r--www/wiki/extensions/Renameuser/includes/RenameuserSQL.php411
-rw-r--r--www/wiki/extensions/Renameuser/includes/SpecialRenameuser.php432
-rw-r--r--www/wiki/extensions/Renameuser/maintenance/cleanupArchiveUserText.php67
-rw-r--r--www/wiki/extensions/Renameuser/maintenance/renameUserCleanup.php350
-rw-r--r--www/wiki/extensions/Renameuser/phpcs.xml21
-rw-r--r--www/wiki/extensions/Renameuser/renameUserCleanup.php256
-rw-r--r--www/wiki/extensions/Renameuser/specials/SpecialRenameuser.php428
-rw-r--r--www/wiki/extensions/Renameuser/tests/phan/config.php3
200 files changed, 9400 insertions, 0 deletions
diff --git a/www/wiki/extensions/Renameuser/CODE_OF_CONDUCT.md b/www/wiki/extensions/Renameuser/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..d8e5d087
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Code_of_Conduct).
diff --git a/www/wiki/extensions/Renameuser/COPYING b/www/wiki/extensions/Renameuser/COPYING
new file mode 100644
index 00000000..d159169d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/www/wiki/extensions/Renameuser/Gruntfile.js b/www/wiki/extensions/Renameuser/Gruntfile.js
new file mode 100644
index 00000000..13202269
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/Gruntfile.js
@@ -0,0 +1,26 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+ grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+ grunt.loadNpmTasks( 'grunt-banana-checker' );
+ grunt.loadNpmTasks( 'grunt-jsonlint' );
+
+ var conf = grunt.file.readJSON( 'extension.json' );
+ grunt.initConfig( {
+ jshint: {
+ all: [
+ '*.js'
+ ]
+ },
+ banana: conf.MessagesDirs,
+ jsonlint: {
+ all: [
+ '**/*.json',
+ '!node_modules/**',
+ '!vendor/**'
+ ]
+ }
+ } );
+
+ grunt.registerTask( 'test', [ 'jshint', 'jsonlint', 'banana' ] );
+ grunt.registerTask( 'default', 'test' );
+};
diff --git a/www/wiki/extensions/Renameuser/README b/www/wiki/extensions/Renameuser/README
new file mode 100644
index 00000000..a344ebf6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/README
@@ -0,0 +1,13 @@
+This is the readme file for the MediaWiki Renameuser extension.
+
+Extension page on mediawiki.org: https://www.mediawiki.org/wiki/Extension:Renameuser
+Latest version of the readme file: https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/Renameuser.git;a=blob;f=README
+
+== About ==
+
+Renameuser provides a special page which allows authorized users to rename user accounts.
+This will cause page histories, etc. to be updated.
+
+== Hooks ==
+
+For details on available hooks see hooks.txt
diff --git a/www/wiki/extensions/Renameuser/RenameUserJob.php b/www/wiki/extensions/Renameuser/RenameUserJob.php
new file mode 100644
index 00000000..38c8bd4b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/RenameUserJob.php
@@ -0,0 +1,188 @@
+<?php
+
+/**
+ * Custom job to perform updates on tables in busier environments
+ *
+ * Job parameters include:
+ * - table : DB table to update
+ * - column : The *_user_text column to update
+ * - oldname : The old user name
+ * - newname : The new user name
+ * - count : The expected number of rows to update in this batch
+ * - logId : The ID of the logging table row expected to exist if the rename was committed
+ *
+ * Additionally, one of the following groups of parameters must be set:
+ * a) The timestamp based rename paramaters:
+ * - timestampColumn : The *_timestamp column
+ * - minTimestamp : The minimum bound of the timestamp column range for this batch
+ * - maxTimestamp : The maximum bound of the timestamp column range for this batch
+ * - uniqueKey : A column that is unique (preferrably the PRIMARY KEY) [optional]
+ * b) The unique key based rename paramaters:
+ * - uniqueKey : A column that is unique (preferrably the PRIMARY KEY)
+ * - keyId : A list of values for this column to determine rows to update for this batch
+ *
+ * To avoid some race conditions, the following parameters should be set:
+ * - userID : The ID of the user to update
+ * - uidColumn : The *_user_id column
+ */
+class RenameUserJob extends Job {
+ public function __construct( Title $title, $params = [], $id = 0 ) {
+ parent::__construct( 'renameUser', $title, $params, $id );
+ }
+
+ public function run() {
+ global $wgUpdateRowsPerQuery;
+
+ $table = $this->params['table'];
+ $column = $this->params['column'];
+ $oldname = $this->params['oldname'];
+ $newname = $this->params['newname'];
+ $count = $this->params['count'];
+ if ( isset( $this->params['userID'] ) ) {
+ $userID = $this->params['userID'];
+ $uidColumn = $this->params['uidColumn'];
+ } else {
+ $userID = null;
+ $uidColumn = null;
+ }
+ if ( isset( $this->params['timestampColumn'] ) ) {
+ $timestampColumn = $this->params['timestampColumn'];
+ $minTimestamp = $this->params['minTimestamp'];
+ $maxTimestamp = $this->params['maxTimestamp'];
+ } else {
+ $timestampColumn = null;
+ $minTimestamp = null;
+ $maxTimestamp = null;
+ }
+ $uniqueKey = isset( $this->params['uniqueKey'] ) ? $this->params['uniqueKey'] : null;
+ $keyId = isset( $this->params['keyId'] ) ? $this->params['keyId'] : null;
+ $logId = isset( $this->params['logId'] ) ? $this->params['logId'] : null;
+
+ $dbw = wfGetDB( DB_MASTER );
+ if ( $logId ) {
+ # Block until the transaction that inserted this job commits.
+ # The atomic section is for sanity as FOR UPDATE does not lock in auto-commit mode
+ # per http://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html.
+ $dbw->startAtomic( __METHOD__ );
+ $committed = $dbw->selectField( 'logging',
+ '1',
+ [ 'log_id' => $logId ],
+ __METHOD__,
+ [ 'FOR UPDATE' ]
+ );
+ $dbw->endAtomic( __METHOD__ );
+ # If the transaction inserting this job was rolled back, detect that
+ if ( $committed === false ) { // rollback happened?
+ throw new LogicException( 'Cannot run job if the account rename failed.' );
+ }
+ }
+
+ # Flush any state snapshot data (and release the lock above)
+ $dbw->commit( __METHOD__, 'flush' );
+
+ # Conditions like "*_user_text = 'x'
+ $conds = [ $column => $oldname ];
+ # If user ID given, add that to condition to avoid rename collisions
+ if ( $userID !== null ) {
+ $conds[$uidColumn] = $userID;
+ }
+ # Bound by timestamp if given
+ if ( $timestampColumn !== null ) {
+ $conds[] = "$timestampColumn >= " . $dbw->addQuotes( $minTimestamp );
+ $conds[] = "$timestampColumn <= " . $dbw->addQuotes( $maxTimestamp );
+ # Bound by unique key if given (B/C)
+ } elseif ( $uniqueKey !== null && $keyId !== null ) {
+ $conds[$uniqueKey] = $keyId;
+ } else {
+ throw new InvalidArgumentException( 'Expected ID batch or time range' );
+ }
+
+ $affectedCount = 0;
+ # Actually update the rows for this job...
+ if ( $uniqueKey !== null ) {
+ # Select the rows to update by PRIMARY KEY
+ $ids = $dbw->selectFieldValues( $table, $uniqueKey, $conds, __METHOD__ );
+ # Update these rows by PRIMARY KEY to avoid slave lag
+ foreach ( array_chunk( $ids, $wgUpdateRowsPerQuery ) as $batch ) {
+ $dbw->commit( __METHOD__, 'flush' );
+ wfWaitForSlaves();
+
+ $dbw->update( $table,
+ [ $column => $newname ],
+ [ $column => $oldname, $uniqueKey => $batch ],
+ __METHOD__
+ );
+ $affectedCount += $dbw->affectedRows();
+ }
+ } else {
+ # Update the chunk of rows directly
+ $dbw->update( $table,
+ [ $column => $newname ],
+ $conds,
+ __METHOD__
+ );
+ $affectedCount += $dbw->affectedRows();
+ }
+
+ # Special case: revisions may be deleted while renaming...
+ if ( $affectedCount < $count && $table === 'revision' && $timestampColumn !== null ) {
+ # If some revisions were not renamed, they may have been deleted.
+ # Do a pass on the archive table to get these straglers...
+ $ids = $dbw->selectFieldValues(
+ 'archive',
+ 'ar_id',
+ [
+ 'ar_user_text' => $oldname,
+ 'ar_user' => $userID,
+ // 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'"
+ ],
+ __METHOD__
+ );
+ foreach ( array_chunk( $ids, $wgUpdateRowsPerQuery ) as $batch ) {
+ $dbw->commit( __METHOD__, 'flush' );
+ wfWaitForSlaves();
+
+ $dbw->update(
+ 'archive',
+ [ 'ar_user_text' => $newname ],
+ [ 'ar_user_text' => $oldname, 'ar_id' => $batch ],
+ __METHOD__
+ );
+ }
+ }
+ # Special case: revisions may be restored while renaming...
+ if ( $affectedCount < $count && $table === 'archive' && $timestampColumn !== null ) {
+ # If some revisions were not renamed, they may have been restored.
+ # Do a pass on the revision table to get these straglers...
+ $ids = $dbw->selectFieldValues(
+ 'revision',
+ 'rev_id',
+ [
+ 'rev_user_text' => $oldname,
+ 'rev_user' => $userID,
+ // 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'"
+ ],
+ __METHOD__
+ );
+ foreach ( array_chunk( $ids, $wgUpdateRowsPerQuery ) as $batch ) {
+ $dbw->commit( __METHOD__, 'flush' );
+ wfWaitForSlaves();
+
+ $dbw->update(
+ 'revision',
+ [ 'rev_user_text' => $newname ],
+ [ 'rev_user_text' => $oldname, 'rev_id' => $batch ],
+ __METHOD__
+ );
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/Renameuser.alias.php b/www/wiki/extensions/Renameuser/Renameuser.alias.php
new file mode 100644
index 00000000..eb1755e2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/Renameuser.alias.php
@@ -0,0 +1,389 @@
+<?php
+/**
+ * Aliases for Special:Renameuser
+ *
+ * @file
+ * @ingroup Extensions
+ */
+
+$specialPageAliases = [];
+
+/** English (English) */
+$specialPageAliases['en'] = [
+ 'Renameuser' => [ 'RenameUser' ],
+];
+
+/** Arabic (العربية) */
+$specialPageAliases['ar'] = [
+ 'Renameuser' => [ 'إعادة_تسمية_مستخدم' ],
+];
+
+/** Egyptian Arabic (مصرى) */
+$specialPageAliases['arz'] = [
+ 'Renameuser' => [ 'سمّى_تانى_يوزر' ],
+];
+
+/** Assamese (অসমীয়া) */
+$specialPageAliases['as'] = [
+ 'Renameuser' => [ 'সদস্য_পুনৰ্নামকৰণ' ],
+];
+
+/** Avaric (авар) */
+$specialPageAliases['av'] = [
+ 'Renameuser' => [ 'Переименовать_участника' ],
+];
+
+/** Bashkir (башҡортса) */
+$specialPageAliases['ba'] = [
+ 'Renameuser' => [ 'RenameUser' ],
+];
+
+/** Bulgarian (български) */
+$specialPageAliases['bg'] = [
+ 'Renameuser' => [ 'Преименуване' ],
+];
+
+/** Western Balochi (بلوچی رخشانی) */
+$specialPageAliases['bgn'] = [
+ 'Renameuser' => [ 'کارمرزوکی_نامی_ٹگلینتین' ],
+];
+
+/** Banjar (Bahasa Banjar) */
+$specialPageAliases['bjn'] = [
+ 'Renameuser' => [ 'Ganti_ngaran_pamakai' ],
+];
+
+/** Bengali (বাংলা) */
+$specialPageAliases['bn'] = [
+ 'Renameuser' => [ 'ব্যবহারকারী_নামান্তর', 'ব্যবহারকারী_পুনঃনামকরণ' ],
+];
+
+/** Breton (brezhoneg) */
+$specialPageAliases['br'] = [
+ 'Renameuser' => [ 'AdenevelImplijer' ],
+];
+
+/** Bosnian (bosanski) */
+$specialPageAliases['bs'] = [
+ 'Renameuser' => [ 'PreimenovanjeKorisnika' ],
+];
+
+/** Catalan (català) */
+$specialPageAliases['ca'] = [
+ 'Renameuser' => [ 'Reanomena_usuari' ],
+];
+
+/** Chechen (нохчийн) */
+$specialPageAliases['ce'] = [
+ 'Renameuser' => [ 'Декъашхочун_цӀе_хийца' ],
+];
+
+/** Czech (čeština) */
+$specialPageAliases['cs'] = [
+ 'Renameuser' => [ 'Přejmenovat_uživatele' ],
+];
+
+/** German (Deutsch) */
+$specialPageAliases['de'] = [
+ 'Renameuser' => [ 'Benutzer_umbenennen' ],
+];
+
+/** Zazaki (Zazaki) */
+$specialPageAliases['diq'] = [
+ 'Renameuser' => [ 'NamedayışéKarberi' ],
+];
+
+/** Lower Sorbian (dolnoserbski) */
+$specialPageAliases['dsb'] = [
+ 'Renameuser' => [ 'Wužywarja pśemjeniś' ],
+];
+
+/** Divehi (ދިވެހިބަސް) */
+$specialPageAliases['dv'] = [
+ 'Renameuser' => [ 'މެމްބަރުގެ_ނަން_ބަދަލު_ކުރައްވާ' ],
+];
+
+/** Greek (Ελληνικά) */
+$specialPageAliases['el'] = [
+ 'Renameuser' => [ 'ΜετονομασίαΧρήστη' ],
+];
+
+/** Esperanto (Esperanto) */
+$specialPageAliases['eo'] = [
+ 'Renameuser' => [ 'Alinomigi_uzanton' ],
+];
+
+/** Spanish (español) */
+$specialPageAliases['es'] = [
+ 'Renameuser' => [ 'RenombrarUsuario', 'Renombrar_usuario', 'Cambiar_el_nombre_de_usuario' ],
+];
+
+/** Estonian (eesti) */
+$specialPageAliases['et'] = [
+ 'Renameuser' => [ 'Kasutaja_ümbernimetamine' ],
+];
+
+/** Persian (فارسی) */
+$specialPageAliases['fa'] = [
+ 'Renameuser' => [ 'تغییر_نام_کاربر' ],
+];
+
+/** Finnish (suomi) */
+$specialPageAliases['fi'] = [
+ 'Renameuser' => [ 'Käyttäjätunnusten_nimeäminen' ],
+];
+
+/** French (français) */
+$specialPageAliases['fr'] = [
+ 'Renameuser' => [ 'Renommer_utilisateur', 'RenommerUtilisateur' ],
+];
+
+/** Arpitan (arpetan) */
+$specialPageAliases['frp'] = [
+ 'Renameuser' => [ 'Renomar_l\'usanciér', 'RenomarLUsanciér' ],
+];
+
+/** Galician (galego) */
+$specialPageAliases['gl'] = [
+ 'Renameuser' => [ 'Renomear_o_usuario', 'Renomear_usuario', 'Renomear_a_usuaria', 'Renomear_usuaria' ],
+];
+
+/** Swiss German (Alemannisch) */
+$specialPageAliases['gsw'] = [
+ 'Renameuser' => [ 'Benutzer_e_andre_Name_gee' ],
+];
+
+/** Hebrew (עברית) */
+$specialPageAliases['he'] = [
+ 'Renameuser' => [ 'שינוי_שם_משתמש' ],
+];
+
+/** Hindi (हिन्दी) */
+$specialPageAliases['hi'] = [
+ 'Renameuser' => [ 'सदस्यनाम_बदलें', 'सदस्य_नाम_बदलें' ],
+];
+
+/** Croatian (hrvatski) */
+$specialPageAliases['hr'] = [
+ 'Renameuser' => [ 'Preimenuj_suradnika' ],
+];
+
+/** Upper Sorbian (hornjoserbsce) */
+$specialPageAliases['hsb'] = [
+ 'Renameuser' => [ 'Wužiwarja_přemjenować' ],
+];
+
+/** Haitian (Kreyòl ayisyen) */
+$specialPageAliases['ht'] = [
+ 'Renameuser' => [ 'RenonmenItilizatè' ],
+];
+
+/** Hungarian (magyar) */
+$specialPageAliases['hu'] = [
+ 'Renameuser' => [ 'Szerkesztő_átnevezése' ],
+];
+
+/** Interlingua (interlingua) */
+$specialPageAliases['ia'] = [
+ 'Renameuser' => [ 'Renominar_usator' ],
+];
+
+/** Indonesian (Bahasa Indonesia) */
+$specialPageAliases['id'] = [
+ 'Renameuser' => [ 'Ganti_nama_pengguna', 'GantiNamaPengguna' ],
+];
+
+/** Italian (italiano) */
+$specialPageAliases['it'] = [
+ 'Renameuser' => [ 'RinominaUtente' ],
+];
+
+/** Japanese (日本語) */
+$specialPageAliases['ja'] = [
+ 'Renameuser' => [ '利用者名変更', '利用者名の変更' ],
+];
+
+/** Khmer (ភាសាខ្មែរ) */
+$specialPageAliases['km'] = [
+ 'Renameuser' => [ 'ប្ដូរឈ្មោះអ្នកប្រើប្រាស់' ],
+];
+
+/** Korean (한국어) */
+$specialPageAliases['ko'] = [
+ 'Renameuser' => [ '이름바꾸기', '사용자이름바꾸기', '계정이름바꾸기' ],
+];
+
+/** Colognian (Ripoarisch) */
+$specialPageAliases['ksh'] = [
+ 'Renameuser' => [ 'Metmaacher ömnänne', 'Medmaacher ömnänne', 'Metmaacher ömnenne', 'Medmaacher ömnenne', 'Metmaacher ömdäufe', 'Medmaacher ömdäufe' ],
+];
+
+/** Cornish (kernowek) */
+$specialPageAliases['kw'] = [
+ 'Renameuser' => [ 'DashenwelDevnydhyer' ],
+];
+
+/** Latin (Latina) */
+$specialPageAliases['la'] = [
+ 'Renameuser' => [ 'Usorem_renominare' ],
+];
+
+/** Luxembourgish (Lëtzebuergesch) */
+$specialPageAliases['lb'] = [
+ 'Renameuser' => [ 'Benotzer_ëmbenennen' ],
+];
+
+/** Macedonian (македонски) */
+$specialPageAliases['mk'] = [
+ 'Renameuser' => [ 'ПреименувајКорисник' ],
+];
+
+/** Malayalam (മലയാളം) */
+$specialPageAliases['ml'] = [
+ 'Renameuser' => [ 'ഉപയോക്തൃപുനർനാമകരണം' ],
+];
+
+/** Marathi (मराठी) */
+$specialPageAliases['mr'] = [
+ 'Renameuser' => [ 'सदस्यपुर्नामितकरा' ],
+];
+
+/** Malay (Bahasa Melayu) */
+$specialPageAliases['ms'] = [
+ 'Renameuser' => [ 'Tukar_nama_pengguna' ],
+];
+
+/** Maltese (Malti) */
+$specialPageAliases['mt'] = [
+ 'Renameuser' => [ 'BiddelIsemUtent' ],
+];
+
+/** Norwegian Bokmål (norsk bokmål) */
+$specialPageAliases['nb'] = [
+ 'Renameuser' => [ 'Gi_en_bruker_nytt_navn' ],
+];
+
+/** Low Saxon (Netherlands) (Nedersaksies) */
+$specialPageAliases['nds-nl'] = [
+ 'Renameuser' => [ 'Gebruker_herneumen' ],
+];
+
+/** Dutch (Nederlands) */
+$specialPageAliases['nl'] = [
+ 'Renameuser' => [ 'GebruikerHernoemen' ],
+];
+
+/** Norwegian Nynorsk (norsk nynorsk) */
+$specialPageAliases['nn'] = [
+ 'Renameuser' => [ 'Døyp_om_brukar' ],
+];
+
+/** Occitan (occitan) */
+$specialPageAliases['oc'] = [
+ 'Renameuser' => [ 'TornarNomenarUtilizaire', 'Tornar nomenar Utilizaire' ],
+];
+
+/** Polish (polski) */
+$specialPageAliases['pl'] = [
+ 'Renameuser' => [ 'Zmiana_nazwy_użytkownika' ],
+];
+
+/** Pashto (پښتو) */
+$specialPageAliases['ps'] = [
+ 'Renameuser' => [ 'دکارونکي نوم بدلون' ],
+];
+
+/** Portuguese (português) */
+$specialPageAliases['pt'] = [
+ 'Renameuser' => [ 'Alterar_nome_de_utilizador' ],
+];
+
+/** Brazilian Portuguese (português do Brasil) */
+$specialPageAliases['pt-br'] = [
+ 'Renameuser' => [ 'Renomear_utilizador', 'Renomear_usuário' ],
+];
+
+/** Romanian (română) */
+$specialPageAliases['ro'] = [
+ 'Renameuser' => [ 'Redenumire_utilizator' ],
+];
+
+/** Russian (русский) */
+$specialPageAliases['ru'] = [
+ 'Renameuser' => [ 'Переименовать_участника' ],
+];
+
+/** Sicilian (sicilianu) */
+$specialPageAliases['scn'] = [
+ 'Renameuser' => [ 'RinominaUtente' ],
+];
+
+/** Slovak (slovenčina) */
+$specialPageAliases['sk'] = [
+ 'Renameuser' => [ 'PremenovaťPoužívateľa' ],
+];
+
+/** Albanian (shqip) */
+$specialPageAliases['sq'] = [
+ 'Renameuser' => [ 'RiemërtoPërdorues' ],
+];
+
+/** Serbian (Cyrillic script) (српски (ћирилица)‎) */
+$specialPageAliases['sr-ec'] = [
+ 'Renameuser' => [ 'ПреименујКорисника', 'Преименуј_корисника' ],
+];
+
+/** Swedish (svenska) */
+$specialPageAliases['sv'] = [
+ 'Renameuser' => [ 'Användarnamnbyte' ],
+];
+
+/** Swahili (Kiswahili) */
+$specialPageAliases['sw'] = [
+ 'Renameuser' => [ 'BadilishajinalaMtumiaji' ],
+];
+
+/** Thai (ไทย) */
+$specialPageAliases['th'] = [
+ 'Renameuser' => [ 'เปลี่ยนชื่อผู้ใช้' ],
+];
+
+/** Tagalog (Tagalog) */
+$specialPageAliases['tl'] = [
+ 'Renameuser' => [ 'Muling_pangalan_ang_tagagamit' ],
+];
+
+/** Turkish (Türkçe) */
+$specialPageAliases['tr'] = [
+ 'Renameuser' => [ 'KullanıcıAdınıDeğiştir', 'KullanıcıİsminiDeğiştir' ],
+];
+
+/** Ukrainian (українська) */
+$specialPageAliases['uk'] = [
+ 'Renameuser' => [ 'Перейменувати_користувача', 'Переименовать_участника' ],
+];
+
+/** Urdu (اردو) */
+$specialPageAliases['ur'] = [
+ 'Renameuser' => [ 'تبدیلی_نام' ],
+];
+
+/** Vietnamese (Tiếng Việt) */
+$specialPageAliases['vi'] = [
+ 'Renameuser' => [ 'Đổi_tên_thành_viên', 'Đổi_tên_người_dùng' ],
+];
+
+/** Chinese (中文) */
+$specialPageAliases['zh'] = [
+ 'Renameuser' => [ '重命名用户', '重新命名用户', '重新命名用戶', '重新命名使用者' ],
+];
+
+/** Simplified Chinese (中文(简体)‎) */
+$specialPageAliases['zh-hans'] = [
+ 'Renameuser' => [ '重命名用户' ],
+];
+
+/** Traditional Chinese (中文(繁體)‎) */
+$specialPageAliases['zh-hant'] = [
+ 'Renameuser' => [ '重新命名使用者' ],
+];
diff --git a/www/wiki/extensions/Renameuser/Renameuser.hooks.php b/www/wiki/extensions/Renameuser/Renameuser.hooks.php
new file mode 100644
index 00000000..225eba77
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/Renameuser.hooks.php
@@ -0,0 +1,71 @@
+<?php
+
+class RenameuserHooks {
+ /**
+ * 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
+ * @return bool
+ */
+ public static function onShowMissingArticle( $article ) {
+ $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();
+ $out = $article->getContext()->getOutput();
+ LogEventsList::showLogExtract(
+ $out,
+ 'renameuser',
+ $page,
+ '',
+ [
+ 'lim' => 10,
+ 'showIfEmpty' => false,
+ 'msgKey' => [ 'renameuser-renamed-notice', $title->getBaseText() ]
+ ]
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Shows link to Special:Renameuser on Special:Contributions/foo
+ *
+ * @param $id
+ * @param $nt Title
+ * @param $tools
+ *
+ * @return bool
+ */
+ public static function onContributionsToolLinks( $id, $nt, &$tools ) {
+ global $wgUser;
+
+ if ( $id && $wgUser->isAllowed( 'renameuser' ) ) {
+ $tools[] = Linker::link(
+ SpecialPage::getTitleFor( 'Renameuser' ),
+ wfMessage( 'renameuser-linkoncontribs' )->escaped(),
+ [ 'title' => wfMessage( 'renameuser-linkoncontribs-text' )->parse() ],
+ [ 'oldusername' => $nt->getText() ]
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * So users can just type in a username for target and it'll work
+ * @param array &$types
+ * @return bool
+ */
+ public static function onGetLogTypesOnUser( array &$types ) {
+ $types[] = 'renameuser';
+
+ return true;
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/Renameuser.php b/www/wiki/extensions/Renameuser/Renameuser.php
new file mode 100644
index 00000000..64a7e034
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/Renameuser.php
@@ -0,0 +1,17 @@
+<?php
+
+if ( function_exists( 'wfLoadExtension' ) ) {
+ wfLoadExtension( 'Renameuser' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['Renameuser'] = __DIR__ . '/i18n';
+ $wgExtensionMessagesFiles['RenameuserAliases'] = __DIR__ . '/Renameuser.alias.php';
+
+ /* wfWarn(
+ 'Deprecated PHP entry point used for Renameuser extension. Please use wfLoadExtension instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+ ); */
+
+ return true;
+} else {
+ die( 'This version of the Renameuser extension requires MediaWiki 1.30+' );
+}
diff --git a/www/wiki/extensions/Renameuser/RenameuserLogFormatter.php b/www/wiki/extensions/Renameuser/RenameuserLogFormatter.php
new file mode 100644
index 00000000..4bc7bf81
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/RenameuserLogFormatter.php
@@ -0,0 +1,96 @@
+<?php
+
+/**
+ * LogFormatter for renameuser/renameuser logs
+ */
+class RenameuserLogFormatter extends LogFormatter {
+
+ protected function getMessageParameters() {
+ $params = parent::getMessageParameters();
+ /* Current format:
+ * 1,2,3: normal logformatter params
+ * 4: old username (linked)
+ * (legaciest doesn't have this at all, all in comment)
+ * (legacier uses this as new name and stores old name in target)
+ * 5: new username (linked)
+ * 6: number of edits the user had at the time
+ * (not available except in newest log entries)
+ * 7: new username (raw format for GENDER)
+ * Note that the arrays are zero-indexed, while message parameters
+ * start from 1, so substract one to get array entries below.
+ */
+
+ if ( !isset( $params[3] ) ) {
+ // The oldest format
+ return $params;
+ } elseif ( !isset( $params[4] ) ) {
+ // See comments above
+ $params[4] = $params[3];
+ $params[3] = $this->entry->getTarget()->getText();
+ }
+
+ // Nice link to old user page
+ $title = Title::makeTitleSafe( NS_USER, $params[3] );
+ $link = $this->myPageLink( $title, $params[3] );
+ $params[3] = Message::rawParam( $link );
+
+ // Nice link to new user page
+ $title = Title::makeTitleSafe( NS_USER, $params[4] );
+ $link = $this->myPageLink( $title, $params[4] );
+ $params[4] = Message::rawParam( $link );
+ // GENDER support (using new user page)
+ $params[6] = $title->getText();
+
+ return $params;
+ }
+
+ protected function myPageLink( Title $title = null, $text ) {
+ if ( !$this->plaintext ) {
+ $text = htmlspecialchars( $text );
+ $link = Linker::link( $title, $text );
+ } else {
+ if ( !$title instanceof Title ) {
+ $link = "[[User:$text]]";
+ } else {
+ $link = '[[' . $title->getPrefixedText() . ']]';
+ }
+ }
+
+ return $link;
+ }
+
+ public function getMessageKey() {
+ $key = parent::getMessageKey();
+ $params = $this->extractParameters();
+
+ // Very old log format, everything in comment
+ if ( !isset( $params[3] ) ) {
+ return "$key-legaciest";
+ } elseif ( !isset( $params[5] ) ) {
+ return "$key-legacier";
+ }
+
+ return $key;
+ }
+
+ public function getPreloadTitles() {
+ $params = $this->extractParameters();
+ if ( !isset( $params[3] ) ) {
+ // Very old log format, everything in comment - legaciest
+ return [];
+ }
+ if ( !isset( $params[4] ) ) {
+ // Old log format - legacier
+ $newUserName = $params[3];
+ } else {
+ $newUserName = $params[4];
+ }
+
+ $title = Title::makeTitleSafe( NS_USER, $newUserName );
+ if ( $title ) {
+ return [ $title ];
+ }
+
+ return [];
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/RenameuserSQL.php b/www/wiki/extensions/Renameuser/RenameuserSQL.php
new file mode 100644
index 00000000..0d8ddcb8
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/RenameuserSQL.php
@@ -0,0 +1,378 @@
+<?php
+
+use MediaWiki\Auth\AuthManager;
+use MediaWiki\Session\SessionManager;
+
+/**
+ * Class which performs the actual renaming of users
+ */
+class RenameuserSQL {
+ /**
+ * The old username
+ *
+ * @var string
+ * @access private
+ */
+ public $old;
+
+ /**
+ * The new username
+ *
+ * @var string
+ * @access private
+ */
+ public $new;
+
+ /**
+ * The user ID
+ *
+ * @var integer
+ * @access private
+ */
+ public $uid;
+
+ /**
+ * The the tables => fields to be updated
+ *
+ * @var array
+ * @access private
+ */
+ public $tables;
+
+ /**
+ * Flag that can be set to false, in case another process has already started
+ * the updates and the old username may have already been renamed in the user table.
+ *
+ * @var bool
+ * @access private
+ */
+ public $checkIfUserExists;
+
+ /**
+ * User object of the user performing the rename, for logging purposes
+ *
+ * @var User
+ */
+ private $renamer;
+
+ /**
+ * Reason to be used in the log entry
+ *
+ * @var string
+ */
+ private $reason = '';
+
+ /**
+ * A prefix to use in all debug log messages
+ *
+ * @var string
+ */
+ private $debugPrefix = '';
+
+ /**
+ * Users with more than this number of edits will have their rename operation
+ * deferred via the job queue.
+ */
+ const CONTRIB_JOB = 500;
+
+ // B/C constants for tablesJob field
+ const NAME_COL = 0;
+ const UID_COL = 1;
+ const TIME_COL = 2;
+
+ /**
+ * Constructor
+ *
+ * @param $old string The old username
+ * @param $new string The new username
+ * @param $uid
+ * @param User $renamer
+ * @param $options array Optional extra options.
+ * 'reason' - string, reason for the rename
+ * 'debugPrefix' - string, prefixed to debug messages
+ * 'checkIfUserExists' - bool, whether to update the user table
+ */
+ public function __construct( $old, $new, $uid, User $renamer, $options = [] ) {
+ $this->old = $old;
+ $this->new = $new;
+ $this->uid = $uid;
+ $this->renamer = $renamer;
+ $this->checkIfUserExists = true;
+
+ if ( isset( $options['checkIfUserExists'] ) ) {
+ $this->checkIfUserExists = $options['checkIfUserExists'];
+ }
+
+ if ( isset( $options['debugPrefix'] ) ) {
+ $this->debugPrefix = $options['debugPrefix'];
+ }
+
+ if ( isset( $options['reason'] ) ) {
+ $this->reason = $options['reason'];
+ }
+
+ $this->tables = []; // Immediate updates
+ $this->tables['image'] = [ 'img_user_text', 'img_user' ];
+ $this->tables['oldimage'] = [ 'oi_user_text', 'oi_user' ];
+ $this->tables['filearchive'] = [ 'fa_user_text', 'fa_user' ];
+ $this->tablesJob = []; // Slow updates
+ // If this user has a large number of edits, use the jobqueue
+ // T134136: if this is for user_id=0, then use the queue as the edit count is unknown.
+ if ( !$uid || User::newFromId( $uid )->getEditCount() > self::CONTRIB_JOB ) {
+ $this->tablesJob['revision'] = [
+ self::NAME_COL => 'rev_user_text',
+ self::UID_COL => 'rev_user',
+ self::TIME_COL => 'rev_timestamp',
+ 'uniqueKey' => 'rev_id'
+ ];
+ $this->tablesJob['archive'] = [
+ self::NAME_COL => 'ar_user_text',
+ self::UID_COL => 'ar_user',
+ self::TIME_COL => 'ar_timestamp',
+ 'uniqueKey' => 'ar_id'
+ ];
+ $this->tablesJob['logging'] = [
+ self::NAME_COL => 'log_user_text',
+ self::UID_COL => 'log_user',
+ self::TIME_COL => 'log_timestamp',
+ 'uniqueKey' => 'log_id'
+ ];
+ } else {
+ $this->tables['revision'] = [ 'rev_user_text', 'rev_user' ];
+ $this->tables['archive'] = [ 'ar_user_text', 'ar_user' ];
+ $this->tables['logging'] = [ 'log_user_text', 'log_user' ];
+ }
+ // Recent changes is pretty hot, deadlocks occur if done all at once
+ if ( wfQueriesMustScale() ) {
+ $this->tablesJob['recentchanges'] = [ 'rc_user_text', 'rc_user', 'rc_timestamp' ];
+ } else {
+ $this->tables['recentchanges'] = [ 'rc_user_text', 'rc_user' ];
+ }
+
+ Hooks::run( 'RenameUserSQL', [ $this ] );
+ }
+
+ protected function debug( $msg ) {
+ if ( $this->debugPrefix ) {
+ $msg = "{$this->debugPrefix}: $msg";
+ }
+ wfDebugLog( 'Renameuser', $msg );
+ }
+
+ /**
+ * Do the rename operation
+ */
+ public function rename() {
+ global $wgAuth, $wgUpdateRowsPerJob;
+
+ // Grab the user's edit count first, used in log entry
+ $contribs = User::newFromId( $this->uid )->getEditCount();
+
+ $dbw = wfGetDB( DB_MASTER );
+ $dbw->startAtomic( __METHOD__ );
+
+ Hooks::run( 'RenameUserPreRename', [ $this->uid, $this->old, $this->new ] );
+
+ // Make sure the user exists if needed
+ if ( $this->checkIfUserExists && !self::lockUserAndGetId( $this->old ) ) {
+ $this->debug( "User {$this->old} does not exist, bailing out" );
+
+ return false;
+ }
+
+ // Rename and touch the user before re-attributing edits to avoid users still being
+ // logged in and making new edits (under the old name) while being renamed.
+ $this->debug( "Starting rename of {$this->old} to {$this->new}" );
+ $dbw->update( 'user',
+ [ 'user_name' => $this->new, 'user_touched' => $dbw->timestamp() ],
+ [ 'user_name' => $this->old, 'user_id' => $this->uid ],
+ __METHOD__
+ );
+
+ // Reset token to break login with central auth systems.
+ // Again, avoids user being logged in with old name.
+ $user = User::newFromId( $this->uid );
+
+ if ( class_exists( SessionManager::class ) &&
+ is_callable( [ SessionManager::singleton(), 'invalidateSessionsForUser' ] )
+ ) {
+ $user->load( User::READ_LATEST );
+ SessionManager::singleton()->invalidateSessionsForUser( $user );
+ } else {
+ $authUser = $wgAuth->getUserInstance( $user );
+ $authUser->resetAuthToken();
+ }
+
+ // Purge user cache
+ $user->invalidateCache();
+
+ // Update ipblock list if this user has a block in there.
+ $dbw->update( 'ipblocks',
+ [ 'ipb_address' => $this->new ],
+ [ '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 );
+ $this->debug( "Updating logging table for {$this->old} to {$this->new}" );
+
+ $logTypesOnUser = SpecialLog::getLogTypesOnUser();
+
+ $dbw->update( 'logging',
+ [ 'log_title' => $newTitle->getDBkey() ],
+ [ 'log_type' => $logTypesOnUser,
+ 'log_namespace' => NS_USER,
+ 'log_title' => $oldTitle->getDBkey() ],
+ __METHOD__
+ );
+
+ // Do immediate re-attribution table updates...
+ foreach ( $this->tables as $table => $fieldSet ) {
+ list( $nameCol, $userCol ) = $fieldSet;
+ $dbw->update( $table,
+ [ $nameCol => $this->new ],
+ [ $nameCol => $this->old, $userCol => $this->uid ],
+ __METHOD__
+ );
+ }
+
+ /** @var RenameUserJob[] $jobs */
+ $jobs = []; // 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[self::NAME_COL]; // some *_user_text column
+ $userIDC = $params[self::UID_COL]; // some *_user column
+ $timestampC = $params[self::TIME_COL]; // some *_timestamp column
+
+ $res = $dbw->select( $table,
+ [ $timestampC ],
+ [ $userTextC => $this->old, $userIDC => $this->uid ],
+ __METHOD__,
+ [ 'ORDER BY' => "$timestampC ASC" ]
+ );
+
+ $jobParams = [];
+ $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;
+ // Unique column for slave lag avoidance
+ if ( isset( $params['uniqueKey'] ) ) {
+ $jobParams['uniqueKey'] = $params['uniqueKey'];
+ }
+
+ // 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 );
+ }
+
+ // Log it!
+ $logEntry = new ManualLogEntry( 'renameuser', 'renameuser' );
+ $logEntry->setPerformer( $this->renamer );
+ $logEntry->setTarget( $oldTitle );
+ $logEntry->setComment( $this->reason );
+ $logEntry->setParameters( [
+ '4::olduser' => $this->old,
+ '5::newuser' => $this->new,
+ '6::edits' => $contribs
+ ] );
+ $logid = $logEntry->insert();
+ // Include the log_id in the jobs as a DB commit marker
+ foreach ( $jobs as $job ) {
+ $job->params['logId'] = $logid;
+ }
+
+ // Insert any jobs as needed. If this fails, then an exception will be thrown and the
+ // DB transaction will be rolled back. If it succeeds but the DB commit fails, then the
+ // jobs will see that the transaction was not committed and will cancel themselves.
+ $count = count( $jobs );
+ if ( $count > 0 ) {
+ JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
+ $this->debug( "Queued $count jobs for {$this->old} to {$this->new}" );
+ }
+
+ // Commit the transaction
+ $dbw->endAtomic( __METHOD__ );
+
+ $that = $this;
+ $dbw->onTransactionIdle( function () use ( $that, $dbw, $logEntry, $logid ) {
+ // Keep any updates here in a transaction
+ $dbw->setFlag( DBO_TRX );
+ // Clear caches and inform authentication plugins
+ $user = User::newFromId( $that->uid );
+ $user->load( User::READ_LATEST );
+ // Call $wgAuth for backwards compatibility
+ if ( class_exists( AuthManager::class ) ) {
+ AuthManager::callLegacyAuthPlugin( 'updateExternalDB', [ $user ] );
+ } else {
+ global $wgAuth;
+ $wgAuth->updateExternalDB( $user );
+ }
+ // Trigger the UserSaveSettings hook, which is the replacement for
+ // $wgAuth->updateExternalDB()
+ $user->saveSettings();
+ Hooks::run( 'RenameUserComplete', [ $that->uid, $that->old, $that->new ] );
+ // Publish to RC
+ $logEntry->publish( $logid );
+ } );
+
+ $this->debug( "Finished rename for {$this->old} to {$this->new}" );
+
+ return true;
+ }
+
+ /**
+ * @param string $name Current wiki local user name
+ * @return integer Returns 0 if no row was found
+ */
+ private static function lockUserAndGetId( $name ) {
+ return (int)wfGetDB( DB_MASTER )->selectField(
+ 'user',
+ 'user_id',
+ [ 'user_name' => $name ],
+ __METHOD__,
+ [ 'FOR UPDATE' ]
+ );
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/cleanupArchiveUserText.php b/www/wiki/extensions/Renameuser/cleanupArchiveUserText.php
new file mode 100644
index 00000000..96157945
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/cleanupArchiveUserText.php
@@ -0,0 +1,60 @@
+<?php
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ $IP = __DIR__ . '/../..';
+}
+
+require_once "$IP/maintenance/Maintenance.php";
+
+/**
+ * @ingroup Maintenance
+ */
+class CleanupArchiveUserText extends Maintenance {
+ public function __construct() {
+ parent::__construct();
+ $this->mDescription = 'Update the archive table where users were ' .
+ 'previously renamed, but their archive contributions were not';
+ }
+
+ public function execute() {
+ $dbw = wfGetDB( DB_MASTER );
+ do {
+ $res = $dbw->select(
+ [ 'archive', 'user' ],
+ [ 'DISTINCT ar_user_text', 'user_name', 'ar_user' ],
+ [
+ 'ar_user_text <> user_name',
+ 'ar_user = user_id',
+ ],
+ __METHOD__,
+ [ 'LIMIT' => 50 ]
+ );
+ $results = 0;
+ foreach ( $res as $row ) {
+ $results++;
+ $this->output( "User:{$row->ar_user_text} => User:{$row->user_name} " );
+ $dbw->update(
+ 'archive',
+ [ 'ar_user_text' => $row->user_name ],
+ [
+ 'ar_user_text' => $row->ar_user_text,
+ 'ar_user' => $row->ar_user,
+ ],
+ __METHOD__,
+ [ 'LIMIT' => 50 ]
+ );
+ $affected = $dbw->affectedRows();
+ $this->output( "$affected rows\n" );
+ wfWaitForSlaves();
+ }
+ } while ( $results === 50 );
+ }
+
+ public function getDbType() {
+ return Maintenance::DB_ADMIN;
+ }
+}
+
+$maintClass = 'CleanupArchiveUserText';
+require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/www/wiki/extensions/Renameuser/composer.json b/www/wiki/extensions/Renameuser/composer.json
new file mode 100644
index 00000000..afa0dc78
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/composer.json
@@ -0,0 +1,23 @@
+{
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "1.0.0",
+ "mediawiki/mediawiki-codesniffer": "18.0.0",
+ "jakub-onderka/php-console-highlighter": "0.3.2",
+ "mediawiki/minus-x": "0.3.1",
+ "mediawiki/mediawiki-phan-config": "0.2.0"
+ },
+ "scripts": {
+ "fix": [
+ "phpcbf",
+ "minus-x fix ."
+ ],
+ "test": [
+ "parallel-lint . --exclude vendor --exclude node_modules",
+ "phpcs -p -s",
+ "minus-x check ."
+ ]
+ },
+ "extra": {
+ "phan-taint-check-plugin": "1.2.0"
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/extension.json b/www/wiki/extensions/Renameuser/extension.json
new file mode 100644
index 00000000..99dfe6f4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/extension.json
@@ -0,0 +1,61 @@
+{
+ "name": "Renameuser",
+ "author": [
+ "Ævar Arnfjörð Bjarmason",
+ "Aaron Schulz"
+ ],
+ "url": "https://www.mediawiki.org/wiki/Extension:Renameuser",
+ "descriptionmsg": "renameuser-desc",
+ "license-name": "GPL-2.0-or-later",
+ "type": "specialpage",
+ "requires": {
+ "MediaWiki": ">= 1.30.0"
+ },
+ "ExtensionMessagesFiles": {
+ "RenameuserAliases": "Renameuser.alias.php"
+ },
+ "LogTypes": [
+ "renameuser"
+ ],
+ "MessagesDirs": {
+ "Renameuser": [
+ "i18n"
+ ]
+ },
+ "Hooks": {
+ "ShowMissingArticle": [
+ "RenameuserHooks::onShowMissingArticle"
+ ],
+ "ContributionsToolLinks": [
+ "RenameuserHooks::onContributionsToolLinks"
+ ],
+ "GetLogTypesOnUser": [
+ "RenameuserHooks::onGetLogTypesOnUser"
+ ]
+ },
+ "JobClasses": {
+ "renameUser": "RenameUserJob"
+ },
+ "GroupPermissions": {
+ "bureaucrat": {
+ "renameuser": true
+ }
+ },
+ "LogActionsHandlers": {
+ "renameuser/renameuser": "RenameuserLogFormatter"
+ },
+ "AvailableRights": [
+ "renameuser"
+ ],
+ "SpecialPages": {
+ "Renameuser": "SpecialRenameuser"
+ },
+ "AutoloadClasses": {
+ "RenameuserHooks": "includes/RenameuserHooks.php",
+ "RenameUserJob": "includes/RenameUserJob.php",
+ "RenameuserLogFormatter": "includes/RenameuserLogFormatter.php",
+ "RenameuserSQL": "includes/RenameuserSQL.php",
+ "SpecialRenameuser": "includes/SpecialRenameuser.php"
+ },
+ "manifest_version": 1
+}
diff --git a/www/wiki/extensions/Renameuser/hooks.txt b/www/wiki/extensions/Renameuser/hooks.txt
new file mode 100644
index 00000000..8889b9f8
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/hooks.txt
@@ -0,0 +1,34 @@
+This document describes how event hooks work in the Renameuser extension.
+
+For a more comprehensive guide to hooks, navigate to your root MediaWiki
+directory and read docs/hooks.txt.
+
+== Events and parameters ==
+This is a list of known events and parameters; please add to it if you're going
+to add events to the Renameuser extension.
+
+'RenameUserAbort': Allows the renaming to be aborted
+$uid: The user ID
+$oldusername: The old username
+$newusername: The new username
+
+'RenameUserComplete': Called after a user was renamed
+$uid: The user ID
+$old: The new username
+$new: The old username
+
+'RenameUserPreRename': Called before a user is renamed
+$uid: The user ID
+$old: The new username
+$new: The old username
+
+'RenameUserSQL': Called in the constructer of RenameuserSQL (which performs
+ the actual renaming of users)
+&$this: RenameuserSQL
+
+'RenameUserWarning': Called on Special:Renameuser before a user is renamed.
+ Will show the given warnings to the user and ask for a confirmation.
+$oun: The old username
+$nun: The new username
+&$warnings: Array with message key(s) or message key(s) and parameter(s) for
+ the warnings to be shown
diff --git a/www/wiki/extensions/Renameuser/i18n/af.json b/www/wiki/extensions/Renameuser/i18n/af.json
new file mode 100644
index 00000000..df1618f2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/af.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Naudefj",
+ "SPQRobin",
+ "පසිඳු කාවින්ද"
+ ]
+ },
+ "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.",
+ "log-name-renameuser": "Logboek van gebruikershernoemings",
+ "log-description-renameuser": "Hieronder is gebruikersname wat gewysig is.",
+ "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.\nRelevante inligting uit die logboek van gebruikersnaamwysigings word hier onder ter verwysing weergegee."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/an.json b/www/wiki/extensions/Renameuser/i18n/an.json
new file mode 100644
index 00000000..58606b6d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/an.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "Juanpabl",
+ "SMP"
+ ]
+ },
+ "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.",
+ "log-name-renameuser": "Rechistro de cambios de nombre d'usuarios",
+ "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.\nO rechistro de cambeos de nombre d'usuario se proveye debaixo ta mas referencia."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ang.json b/www/wiki/extensions/Renameuser/i18n/ang.json
new file mode 100644
index 00000000..7fbe88bd
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ang.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Spacebirdy"
+ ]
+ },
+ "renameuser": "Ednemnan brūcend",
+ "renameuser-linkoncontribs": "ednemnan brūcend",
+ "renameusersubmit": "Forþsendan"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ar.json b/www/wiki/extensions/Renameuser/i18n/ar.json
new file mode 100644
index 00000000..d0413fb0
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ar.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aiman titi",
+ "DRIHEM",
+ "Meno25",
+ "Mido",
+ "OsamaK",
+ "Abanima",
+ "ديفيد"
+ ]
+ },
+ "renameuser": "إعادة تسمية مستخدم",
+ "renameuser-linkoncontribs": "أعد تسمية المستخدم",
+ "renameuser-linkoncontribs-text": "أعد تسمية هذا المستخدم",
+ "renameuser-desc": "يضيف [[Special:RenameUser|صفحة خاصة]] لإعادة تسمية مستخدم (يحتاج إلى صلاحية ''renameuser'')",
+ "renameuserold": "اسم المستخدم الحالي:",
+ "renameusernew": "الاسم الجديد:",
+ "renameuserreason": "السبب:",
+ "renameusermove": "انقل صفحات المستخدم ونقاشه (بالصفحات الفرعية) إلى الاسم الجديد",
+ "renameusersuppress": "لا تقم بإنشاء تحويلات إلى الاسم الجديد",
+ "renameuserreserve": "احفظ اسم المستخدم القديم ضد الاستخدام",
+ "renameuserwarnings": "التحذيرات:",
+ "renameuserconfirm": "نعم، أعد تسمية المستخدم",
+ "renameusersubmit": "إرسال",
+ "renameuser-submit-blocklog": "أظهر سجل المنع الخاص بالمستخدم",
+ "renameusererrordoesnotexist": "لا يوجد مستخدم بالاسم \"<nowiki>$1</nowiki>\"",
+ "renameusererrorexists": "{{GENDER:$1|المستخدم}} \"<nowiki>$1</nowiki>\" موجود بالفعل",
+ "renameusererrorinvalid": "اسم المستخدم \"<nowiki>$1</nowiki>\" غير صحيح",
+ "renameuser-error-request": "حدثت مشكلة أثناء استقبال الطلب.\nمن فضلك عد وحاول مرة ثانية.",
+ "renameuser-error-same-user": "لا يمكنك إعادة تسمية مستخدم بنفس الاسم كما كان من قبل.",
+ "renameusersuccess": "تمت إعادة تسمية {{GENDER:$1|المستخدم}} \"<nowiki>$1</nowiki>\" إلى \"<nowiki>$2</nowiki>\"",
+ "renameuser-page-exists": "الصفحة $1 موجودة بالفعل ولا يمكن إنشاء أخرى مكانها أوتوماتيكيا.",
+ "renameuser-page-moved": "تم نقل الصفحة $1 إلى $2.",
+ "renameuser-page-unmoved": "لم يتمكن من نقل الصفحة $1 إلى $2.",
+ "log-name-renameuser": "سجل إعادة تسمية المستخدمين",
+ "log-description-renameuser": "هذا سجل بالتغييرات في أسماء المستخدمين.",
+ "logentry-renameuser-renameuser": "{{GENDER:$2|غيّر|غيّرت}} $1 اسم $4 ({{PLURAL:$6|تعديل واحد|تعديلان|$6 تعديلات|$6 تعديلاً|$6 تعديل}}) إلى {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 أعاد تسمية $4 إلى {{GENDER:$7|$5}}",
+ "renameuser-move-log": "نقل الصفحة تلقائيا خلال إعادة تسمية {{GENDER:$1|المستخدم}} من \"[[User:$1|$1]]\" إلى \"[[User:$2|$2]]\"",
+ "action-renameuser": "إعادة تسمية المستخدمين",
+ "right-renameuser": "إعادة تسمية المستخدمين",
+ "renameuser-renamed-notice": "لقد تمت إعادة تسمية {{GENDER:$1|هذا المستخدم|هذه المستخدمة}}.\nسجل إعادة التسمية معروض بالأسفل كمرجع:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/arc.json b/www/wiki/extensions/Renameuser/i18n/arc.json
new file mode 100644
index 00000000..a9174154
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/arc.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Basharh",
+ "Michaelovic"
+ ]
+ },
+ "renameuser": "ܬܢܝ ܫܘܡܗܐ ܕܡܦܠܚܢܐ",
+ "renameuser-linkoncontribs": "ܬܢܝ ܫܘܡܗܐ ܕܡܦܠܚܢܐ",
+ "renameuser-linkoncontribs-text": "ܬܢܝ ܫܘܡܗܐ ܕܗܢܐ ܡܦܠܚܢܐ",
+ "renameuserold": "ܫܡܐ ܕܡܦܠܚܢܐ ܥܬܝܩܐ:",
+ "renameusernew": "ܫܡܐ ܕܡܦܠܚܢܐ ܚܕܬܐ:",
+ "renameuserreason": "ܥܠܬܐ:",
+ "renameuserwarnings": "ܙܘܗܪ̈ܐ:",
+ "renameuserconfirm": "ܐܝܢ، ܫܚܠܦ ܫܡܐ ܕܡܦܠܚܢܐ",
+ "renameusersubmit": "ܫܕܪ",
+ "log-name-renameuser": "ܣܓܠܐ ܕܬܘܢܝ ܫܘܡܗܐ ܕܡܦܠܚܢ̈ܐ",
+ "logentry-renameuser-renameuser": "$1 ܬܢܝ ܫܘܡܗܐ ܕ{{GENDER:$2|ܡܦܠܚܢܐ|ܡܦܠܚܢܬܐ}} $4 ({{PLURAL:$6|$6 ܫܘܚܠܦܐ|$6 ܫܘܚܠܦ̈ܐ}}) ܠ $5",
+ "logentry-renameuser-renameuser-legacier": "$1 ܬܢܝ ܫܘܡܗܐ ܕ $4 ܠ $5",
+ "renameuser-move-log": "ܝܬܐܝܬ ܫܢܐ ܦܐܬܐ ܟܕ ܬܢܝ ܫܘܡܗܐ ܕܡܦܠܚܢܐ \"[[User:$1|$1]]\" ܠ \"[[User:$2|$2]]\"",
+ "action-renameuser": "ܬܢܝ ܫܘܡܗܐ ܕܡܦܠܚܢܐ",
+ "right-renameuser": "ܬܢܝ ܫܘܡܗܐ ܕܡܦܠܚܢܐ"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/arz.json b/www/wiki/extensions/Renameuser/i18n/arz.json
new file mode 100644
index 00000000..07fc1a9c
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/arz.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ghaly",
+ "Meno25",
+ "Ramsis II"
+ ]
+ },
+ "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": "حصلت مشكلة فى استلام الطلب.\nلو سمحت ارجع لورا و حاول تانى.",
+ "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.",
+ "log-name-renameuser": "سجل تغيير تسمية اليوزرز",
+ "renameuser-move-log": "الصفحة اتنقلت اوتوماتيكى لما اليوزر \"[[User:$1|$1]]\" اتغير اسمه لـ \"[[User:$2|$2]]\"",
+ "right-renameuser": "غير اسم اليوزرز"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/as.json b/www/wiki/extensions/Renameuser/i18n/as.json
new file mode 100644
index 00000000..9251dc0e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/as.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bishnu Saikia",
+ "Gitartha.bordoloi"
+ ]
+ },
+ "renameuser": "ব্যৱহাৰকাৰীৰ নাম সলাওক",
+ "renameuser-linkoncontribs": "ব্যৱহাৰীৰ নাম সলাওক",
+ "renameuser-linkoncontribs-text": "এই ব্যৱহাৰকাৰীৰ পুনৰ্নামাকৰণ কৰক",
+ "renameuser-desc": "এজন ব্যৱহাৰকাৰীৰ পুনৰ্নামাকৰণ কৰিবলৈ এটা [[Special:RenameUser|বিশেষ পৃষ্ঠা]] যোগ দিয়ে (''renameuser'' অধিকাৰৰ প্ৰয়োজন)",
+ "renameuserold": "বৰ্তমানৰ সদস্যনাম:",
+ "renameusernew": "নতুন সদস্যনাম:",
+ "renameuserreason": "কাৰণ:",
+ "renameusermove": "সদস্যপৃষ্ঠা আৰু আলোচনা পৃষ্ঠা (আৰু সেইবোৰৰ উপপৃষ্ঠা) নতুন নামলৈ স্থানান্তৰ কৰক",
+ "renameusersuppress": "নতুন নামলৈ পুনৰ্নিৰ্দেশ সৃষ্টি কৰিব নালাগে",
+ "renameuserreserve": "ভৱিষ্যত ব্যৱহাৰৰ বাবে পুৰণা সদস্যনামটো বাৰণ কৰক",
+ "renameuserwarnings": "সাৱধানবাণী:",
+ "renameuserconfirm": "হয়, সদস্যজনৰ পুনৰ্নামাকৰণ কৰক",
+ "renameusersubmit": "দাখিল কৰক",
+ "renameuser-submit-blocklog": "ব্যৱহাৰকাৰীৰ প্ৰতিবন্ধক অভিলেখ দেখুৱাওক",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" নামৰ কোনো সদস্য নাই।",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" নামৰ সদস্য ইতিমধ্যে আছেই।",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" সদস্যনামটো অবৈধ।",
+ "renameuser-error-request": "অনুৰোধ গ্ৰহণ কৰাত কিছু সমস্যা হৈছে।\nঅনুগ্ৰহ কৰি ঘূৰি গৈ পুনৰ চেষ্টা কৰক।",
+ "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-লৈ স্থানান্তৰ কৰা সম্ভৱ নহয়।",
+ "log-name-renameuser": "সদস্যৰ পুনৰ্নামাকৰণ অভিলেখ",
+ "log-description-renameuser": "সদস্যনাম পৰিৱৰ্তনৰ অভিলেখ",
+ "logentry-renameuser-renameuser-legacier": "সদস্য $4ৰ পৰা $5লৈ, $1’য়ে পুনৰ নামাকৰণ কৰিলে",
+ "renameuser-move-log": "সদস্য \"[[User:$1|$1]]\"ক \"[[User:$2|$2]]\"লৈ পুনৰ্নামাকৰণ কৰোঁতে স্বয়ংক্ৰিয়ভাৱে পৃষ্ঠা স্থানান্তৰ হ'ল।",
+ "action-renameuser": "সদস্যৰ পুনৰ্নামাকৰণ কৰক",
+ "right-renameuser": "সদস্যৰ পুনৰ্নামাকৰণ কৰক",
+ "renameuser-renamed-notice": "এই সদস্যজনৰ পুনৰ্নামাকৰণ কৰা হৈছে।\nতথ্যসূত্ৰ হিচাপে পুনৰ্নামাকৰণ ল'গ তলত দিয়া হ'ল।"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ast.json b/www/wiki/extensions/Renameuser/i18n/ast.json
new file mode 100644
index 00000000..926cb904
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ast.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Esbardu",
+ "Xuacu"
+ ]
+ },
+ "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:",
+ "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": "Unviar",
+ "renameuser-submit-blocklog": "Amosar el rexistru de bloqueos del usuariu",
+ "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.",
+ "log-name-renameuser": "Rexistru de cambios de nome d'usuariu",
+ "log-description-renameuser": "Esti ye un rexistru de los cambios de nomes d'usuariu.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|camudó de nome}} {{GENDER:$4|al usuariu|a la usuaria}} $4 ({{PLURAL:$6|$6 edición|$6 ediciones}}) a $5",
+ "logentry-renameuser-renameuser-legacier": "$1 camudó el nome {{GENDER:$4|del usuariu|de la usuaria}} $4 a $5",
+ "renameuser-move-log": "Treslladóse la páxina automáticamente al renomar al usuariu \"[[User:$1|$1]]\" como \"[[User:$2|$2]]\"",
+ "action-renameuser": "renomar usuarios",
+ "right-renameuser": "Renomar usuarios",
+ "renameuser-renamed-notice": "Se renomó esti usuariu.\nEl rexistru de renomaos s'ufre darréu pa referencia."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/av.json b/www/wiki/extensions/Renameuser/i18n/av.json
new file mode 100644
index 00000000..f32b8874
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/av.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Аль-Гимравий"
+ ]
+ },
+ "renameusersubmit": "ТІубазабизе"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/az.json b/www/wiki/extensions/Renameuser/i18n/az.json
new file mode 100644
index 00000000..b18eafd1
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/az.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cekli829",
+ "Vago",
+ "Vugar 1981",
+ "Wertuose",
+ "AZISS"
+ ]
+ },
+ "renameuser": "İstifadəçi adını dəyişdir",
+ "renameuser-linkoncontribs": "istifadəçi adını dəyiş",
+ "renameuser-linkoncontribs-text": "Bu istifadəçinin adını dəyiş",
+ "renameuserold": "Hal-hazırki istifadəçi adı:",
+ "renameusernew": "Yeni istifadəçi adı:",
+ "renameuserwarnings": "Xəbərdarlıqlar:",
+ "renameuserconfirm": "Bəli, istifadəçinin adını dəyiş",
+ "renameusersubmit": "Təsdiqlə",
+ "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.",
+ "renameusersuccess": "\"<nowiki>$1</nowiki>\" adlı istifadəçinin adı \"<nowiki>$2</nowiki>\" olaraq dəyişdirildi.",
+ "renameuser-page-moved": "$1 $2 səhifəsinə köçürülüb.",
+ "renameuser-page-unmoved": "$1 $2 səhifəsinə köçürülə bilinmir.",
+ "log-name-renameuser": "İstifadəçi adı dəyişiklikləri jurnalı",
+ "right-renameuser": "istifadəçilərin adını dəyiş"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/azb.json b/www/wiki/extensions/Renameuser/i18n/azb.json
new file mode 100644
index 00000000..ad152d72
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/azb.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amir a57",
+ "Koroğlu",
+ "Alp Er Tunqa"
+ ]
+ },
+ "renameuser": "ایشلدن آدینی دییش",
+ "renameuser-linkoncontribs": "ایستیفاده‌چی آدینی دییش",
+ "renameuser-linkoncontribs-text": "بو ایستیفاده‌چی‌نین آدینی دییش",
+ "renameusernew": "یئنی ایشلدن آدی:",
+ "renameuserreason": "ندن:",
+ "renameuserwarnings": "خبردارلیق‌لار:",
+ "renameuserconfirm": "بلی، ایستیفاده‌چی‌نین آدینی دییش",
+ "renameusersubmit": "گؤندر",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" ایستیفاده‌چی آدی مؤوجود دئییل.",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" ایستیفاده‌چی آدی آرتیق مؤوجوددور.",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" ایستیفاده‌چی آدی یولوئریلمزدیر.",
+ "renameuser-page-exists": "$1 مادده‌سی اونسوز دا وار اولماقدا‌دیر، و آوتوماتیک اولا‌راق یئنی‌دن یازیلا بیلمز.",
+ "renameuser-page-moved": "$1 صحیفه‌سی $2 صحیفه‌سینه کؤچورولوب.",
+ "renameuser-page-unmoved": "$1 صحیفه‌سی $2 صحیفه‌سینه کؤچوروله بیلینمیر.",
+ "log-name-renameuser": "ایشلدن آد دَییشدیرمه ژورنالی",
+ "log-description-renameuser": "بۇ ایشلدن‌لر آد دَییشدیرمه لیستی‌دیر.",
+ "action-renameuser": "ایستیفاده‌چی‌لرین آدینی دییش",
+ "right-renameuser": "ایستیفاده‌چی‌لرین آدینی دییش"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ba.json b/www/wiki/extensions/Renameuser/i18n/ba.json
new file mode 100644
index 00000000..e42914de
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ba.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Assele",
+ "ҒатаУлла"
+ ]
+ },
+ "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": "Һорауҙы алыу менән ҡыйынлыҡтар тыуҙы.\nЗинһар, кире ҡайтығыҙ һәм яңынан ҡабатлап ҡарағыҙ.",
+ "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 тип үҙгәртелә алмай.",
+ "log-name-renameuser": "Ҡатнашыусы исемдәрен үҙгәртеү яҙмалары журналы",
+ "log-description-renameuser": "Был — ҡатнашыусы исемдәрен үҙгәртеү яҙмалары журналы.",
+ "renameuser-move-log": "Биттең исеме \"[[User:$1|$1]]\" ҡатнашыусыһының исемен \"[[User:$2|$2]]\" тип үҙгәртеү сәбәпле үҙенән-үҙе үҙгәргән",
+ "action-renameuser": "Ҡатнашыусыларҙың исемен үҙгәртеү",
+ "right-renameuser": "Ҡатнашыусыларҙың исемен үҙгәртеү",
+ "renameuser-renamed-notice": "Был ҡатнашыусының исеме үҙгәртелгән.\nТүбәндә белешмә өсөн исем үҙгәртеү яҙмалары журналы килтерелгән."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/bcc.json b/www/wiki/extensions/Renameuser/i18n/bcc.json
new file mode 100644
index 00000000..4cf4df6e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/bcc.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mostafadaneshvar"
+ ]
+ },
+ "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": "مشکلی گون دریافت درخواست هستت.\nلطفا برگردیت و دگه تلاش کنیت.",
+ "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 جاه په جاه بیت.",
+ "log-name-renameuser": "آمار نام بدل کتن کاربر",
+ "renameuser-move-log": "اتوماتیکی صفحه جاه په جاه بیت وهدی که کاربر نام بدل بی \"[[User:$1|$1]]\" به \"[[User:$2|$2]]\"",
+ "right-renameuser": "عوض کتن نام کابران"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/bcl.json b/www/wiki/extensions/Renameuser/i18n/bcl.json
new file mode 100644
index 00000000..bcdc26d1
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/bcl.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Filipinayzd",
+ "Geopoet"
+ ]
+ },
+ "renameuser": "Pangarani otro an paragamit",
+ "renameuser-linkoncontribs": "pangarani otro an paragamit",
+ "renameuser-linkoncontribs-text": "Pangarani otro ining paragamit",
+ "renameuser-desc": "Minadugang nin sarong [[Special:RenameUser|espesyal na pahina]] tanganing pangaranan otro an sarong paragamit (kaipuhan an ''renameuser'' na katanosan)",
+ "renameuserold": "Sa ngunyan na ngaran-paragamit:",
+ "renameusernew": "Baguhong ngaran-paragamit:",
+ "renameuserreason": "Rason:",
+ "renameusermove": "Ibalyo an paragamit asin mga pahina nin orolayan (asin an saindang mga sub-pahina) pasiring sa baguhong pangaran",
+ "renameusersuppress": "Dae magmukna nin mga panlikwat pasiring sa baguhong pangaran",
+ "renameuserreserve": "Kubkubon an lumaong ngaran-paragamit na magagamit sa paabuton",
+ "renameuserwarnings": "Mga Patanid:",
+ "renameuserconfirm": "Iyo, pangarani otro an paragamit",
+ "renameusersubmit": "Isumitir",
+ "renameuser-submit-blocklog": "Ipahiling an talaan kan kinubkob para sa paragamit",
+ "renameusererrordoesnotexist": "An parágamit \"<nowiki>$1</nowiki>\" mayò man",
+ "renameusererrorexists": "An parágamit \"<nowiki>$1</nowiki>\" yaon na",
+ "renameusererrorinvalid": "An ngaran-paragamit \"<nowiki>$1</nowiki>\" sarong imbalido.",
+ "renameuser-error-request": "Nagkaigwa nin sarong problema sa pagreresibe kan hinahagad.\nPakibalik tabi asin otroha giraray.",
+ "renameuser-error-same-user": "Ika dae makakapangaran otro nin sarong paragamit na kaparehong bagay na siring sa dati.",
+ "renameusersuccess": "An paragamit \"<nowiki>$1</nowiki>\" pinagngaranan otro na magin \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "An pahina na $1 eksistido na asin dae tabi awtomatikong masasalambawan.",
+ "renameuser-page-moved": "An páhinang $1 pinagbalyo na sa $2.",
+ "renameuser-page-unmoved": "An páhinang $1 dai maipagbabalyo pasiring sa $2.",
+ "log-name-renameuser": "Talaan nin paragamit na pinagngaranan otro",
+ "log-description-renameuser": "Iyo ini an sarong talaan kan mga kaliwatan sa mga pangaran nin paragamit.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|pinagngaranan otro}} paragamit $4 ({{PLURAL:$6|$6 pagliwat|$6 mga pagliwat}}) na magin $5",
+ "logentry-renameuser-renameuser-legacier": "$1 pinagngaranan otro an paragamit na si $4 na magin $5",
+ "renameuser-move-log": "Awtomatikong pinagbalyo an pahina mantang pinapangaranan otro an paragamit \"[[User:$1|$1]]\" na magin \"[[User:$2|$2]]\"",
+ "action-renameuser": "pangaranan otro an mga paragamit",
+ "right-renameuser": "Pangarani otro an mga paragamit",
+ "renameuser-renamed-notice": "Ining paragamit pinagngaranan otro.\nAn talaan kan pagpangaran otrol pinagtao sa ibaba para sa reperensiya."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/be-tarask.json b/www/wiki/extensions/Renameuser/i18n/be-tarask.json
new file mode 100644
index 00000000..ea61f3aa
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/be-tarask.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "EugeneZelenko",
+ "Jim-by",
+ "Red Winged Duck",
+ "Wizardist"
+ ]
+ },
+ "renameuser": "Перайменаваць рахунак удзельніка",
+ "renameuser-linkoncontribs": "перайменаваць удзельніка",
+ "renameuser-linkoncontribs-text": "Перайменаваць рахунак гэтага ўдзельніка",
+ "renameuser-desc": "Дадае [[Special:RenameUser|спэцыяльную старонку]] для перайменаваньня рахунку ўдзельніка (неабходныя правы на ''перайменаваньне ўдзельніка'')",
+ "renameuserold": "Цяперашняе імя ўдзельніка:",
+ "renameusernew": "Новае імя:",
+ "renameuserreason": "Прычына:",
+ "renameusermove": "Перайменаваць старонкі ўдзельніка і гутарак (і іх падстаронкі)",
+ "renameusersuppress": "Не ствараць перанакіраваньні на новую назву рахунку",
+ "renameuserreserve": "Заблякаваць старое імя ўдзельніка для выкарыстаньня ў будучыні",
+ "renameuserwarnings": "Папярэджаньні:",
+ "renameuserconfirm": "Так, перайменаваць удзельніка",
+ "renameusersubmit": "Перайменаваць",
+ "renameuser-submit-blocklog": "Паказаць журнал блякаваньняў удзельніка",
+ "renameusererrordoesnotexist": "Рахунак «<nowiki>$1</nowiki>» не існуе.",
+ "renameusererrorexists": "Рахунак {{GENDER:$1|удзельніка|удзельніцы}} «<nowiki>$1</nowiki>» ужо існуе.",
+ "renameusererrorinvalid": "Няслушнае імя ўдзельніка «<nowiki>$1</nowiki>».",
+ "renameuser-error-request": "Узьніклі праблемы з атрыманьнем запыту.\nКалі ласка, вярніцеся назад і паспрабуйце ізноў.",
+ "renameuser-error-same-user": "Немагчыма перайменаваць рахунак удзельніка ў тое ж самае імя.",
+ "renameusersuccess": "Рахунак {{GENDER:$2|удзельніка|удзельніцы}} «<nowiki>$1</nowiki>» быў перайменаваны ў «<nowiki>$2</nowiki>».",
+ "renameuser-page-exists": "Старонка $1 ужо існуе і ня можа быць аўтаматычна перазапісаная.",
+ "renameuser-page-moved": "Старонка $1 была перайменаваная ў $2.",
+ "renameuser-page-unmoved": "Старонка $1 ня можа быць перайменаваная ў $2.",
+ "log-name-renameuser": "Журнал перайменаваньняў удзельнікаў",
+ "log-description-renameuser": "Гэта журнал перайменаваньняў рахункаў удзельнікаў.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|перайменаваў|перайменавала}} $4 ($6 {{PLURAL:$6|праўка|праўкі|правак}}) у {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 {{GENDER:$2|перайменаваў у|перайменавала ў}}{{GENDER:$7|дзельніка|дзельніцу}} $4 у $5",
+ "renameuser-move-log": "Аўтаматычнае перайменаваньне старонкі пры перайменаваньні рахунку {{GENDER:$2|ўдзельніка|ўдзельніцы}} з «[[User:$1|$1]]» у «[[User:$2|$2]]»",
+ "action-renameuser": "пераймяноўваць удзельнікаў",
+ "right-renameuser": "перайменаваньне ўдзельнікаў",
+ "renameuser-renamed-notice": "{{GENDER:$1|Гэты удзельнік быў перайменаваны|Гэтая удзельніца была перайменаваная}}.\nЖурнал перайменаваньняў удзельнікаў пададзены ніжэй для даведкі."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/bg.json b/www/wiki/extensions/Renameuser/i18n/bg.json
new file mode 100644
index 00000000..b45eab0f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/bg.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borislav",
+ "DCLXVI",
+ "Spiritia",
+ "Stanqo",
+ "Turin",
+ "Vodnokon4e",
+ "Termininja",
+ "ShockD"
+ ]
+ },
+ "renameuser": "Преименуване на потребител",
+ "renameuser-linkoncontribs": "преименуване на потребител",
+ "renameuser-linkoncontribs-text": "Преименуване на този потребител",
+ "renameuser-desc": "Добавя възможност за преименуване на потребители",
+ "renameuserold": "Текущо потребителско име:",
+ "renameusernew": "Ново потребителско име:",
+ "renameuserreason": "Причина:",
+ "renameusermove": "Преместване под новото име на потребителската лична страница и беседа (както и техните подстраници)",
+ "renameusersuppress": "Без създаване на пренасочване към новото име",
+ "renameuserreserve": "Блокиране на старото потребителско име срещу узурпация в бъдеще",
+ "renameuserwarnings": "Предупреждения:",
+ "renameuserconfirm": "Да, преименуване на потребителя",
+ "renameusersubmit": "Изпълнение",
+ "renameuser-submit-blocklog": "Показване дневника на блокиранията за потребителя",
+ "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.",
+ "log-name-renameuser": "Дневник на преименуванията",
+ "log-description-renameuser": "Това е дневник на промените в потребителските имена.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|преименува}} потребител $4 ({{PLURAL:$6|$6 редакция|$6 редакции}}) на {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 преименува потребител $4 на {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Автоматично преместена страница при преименуването на потребител \"[[User:$1|$1]]\" като \"[[User:$2|$2]]\"",
+ "action-renameuser": "преименуване на потребител",
+ "right-renameuser": "преименуване на потребители",
+ "renameuser-renamed-notice": "Потребителят беше преименуван.\nЗа справка по-долу е показан Дневникът на преименуванията."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/bn.json b/www/wiki/extensions/Renameuser/i18n/bn.json
new file mode 100644
index 00000000..e73c92a8
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/bn.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bellayet",
+ "Nasir8891",
+ "Aftabuzzaman"
+ ]
+ },
+ "renameuser": "ব্যবহারকারী নামান্তর করো",
+ "renameuser-linkoncontribs": "ব্যবহারকারী নামান্তর",
+ "renameuser-linkoncontribs-text": "এই ব্যবহারকারী নামান্তর করো",
+ "renameuser-desc": "একজন ব্যবহারকারীকে নামান্তর করতে [[Special:RenameUser|বিশেষ পাতা]] যুক্ত করে (''ব্যবহারকারী নামান্তর'' অধিকার প্রয়োজন)",
+ "renameuserold": "বর্তমান ব্যবহারকারী নাম:",
+ "renameusernew": "নতুন ব্যবহারকারী নাম:",
+ "renameuserreason": "কারণ:",
+ "renameusermove": "ব্যবহারকারী এবং আলাপের পাতা (এবং তার উপপাতাসমূহ) নতুন নামে সরিয়ে নাও",
+ "renameusersuppress": "নতুন নামে পুনর্নির্দেশ তৈরি করবেন না",
+ "renameuserreserve": "ভবিষ্যতে উদ্দেশ্যে পুরাতন ব্যবহারকারী নাম ব্লক করা হল",
+ "renameuserwarnings": "সতর্কীকরণ:",
+ "renameuserconfirm": "হ্যাঁ, ব্যবহারকারীর নাম পরিবর্তন করো",
+ "renameusersubmit": "জমা দিন",
+ "renameuser-submit-blocklog": "ব্যবহারকারীর বাধা লগ দেখুন",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" নামের কোন ব্যবহারকারী নাই।",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" {{GENDER:$1|ব্যবহারকারী}} ইতিমধ্যে বিদ্যমান আছে।",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" ব্যবহারকারী নামটি ঠিক নয়।",
+ "renameuser-error-request": "এই অনুরোধ গ্রহণে সমস্যা ছিল। দয়াকরে পেছনে যান এবং আবার চেষ্টা করুন।",
+ "renameuser-error-same-user": "আপনি পূর্বের নামে নামান্তর করতে পারবেন না।",
+ "renameusersuccess": "{{GENDER:$2|ব্যবহারকারী}} \"<nowiki>$1</nowiki>\" থেকে \"<nowiki>$2</nowiki>\"-এ নামান্তরিত হয়েছেন।",
+ "renameuser-page-exists": "পাতা $1 বিদ্যমান এবং সয়ঙ্ক্রিয়ভাবে এটির উপর লেখা যাবে না",
+ "renameuser-page-moved": "পাতাটি $1 থেকে $2 তে সরিয়ে নেওয়া হয়েছে।",
+ "renameuser-page-unmoved": "পাতাটি $1 থেকে $2 তে সরিয়ে নেওয়া যাবে না।",
+ "log-name-renameuser": "ব্যবহারকারী নামান্তরের লগ",
+ "log-description-renameuser": "এটি ব্যাবহারকারী নামের পরিবর্তনের লগ",
+ "logentry-renameuser-renameuser": "$1 ব্যবহারকারী $4 কে ({{PLURAL:$6|$6টি সম্পাদনা}}) {{GENDER:$7|$5}}-এ {{GENDER:$2|নামান্তরিত করেছেন}}",
+ "logentry-renameuser-renameuser-legacier": "$1 ব্যবহারকারী $4 কে {{GENDER:$7|$5}}-এ নামান্তরিত করেছেন",
+ "renameuser-move-log": "যখন {{GENDER:$2|ব্যবহারকারী}} \"[[User:$1|$1]]\" থেকে \"[[User:$2|$2]]\" তে নামান্তরিত হয় তখন স্বয়ংক্রিয়ভাবে পাতা সরিয়ে নেওয়া হয়েছে",
+ "action-renameuser": "ব্যবহারকারী নাম পরিবর্তন",
+ "right-renameuser": "ব্যবহারকারীদের পুনরায় নাম দাও",
+ "renameuser-renamed-notice": "এই ব্যবহারকারীর নাম পরিবর্তন করা হয়েছে।\nসূত্র হিসাবে নিচে নাম পরিবর্তন লগ দেওয়া হল।"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/br.json b/www/wiki/extensions/Renameuser/i18n/br.json
new file mode 100644
index 00000000..1a19787f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/br.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fohanno",
+ "Fulup",
+ "Gwendal",
+ "Y-M D"
+ ]
+ },
+ "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 :",
+ "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": "Kas",
+ "renameuser-submit-blocklog": "Diskwel marilh stankañ an implijer",
+ "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.",
+ "log-name-renameuser": "Roll an implijerien bet adanvet",
+ "renameuser-move-log": "Pajenn dilec'hiet ent emgefreek e-ser adenvel an implijer \"[[User:$1|$1]]\" e \"[[User:$2|$2]]\"",
+ "action-renameuser": "Adenvel implijerien",
+ "right-renameuser": "Adenvel implijerien",
+ "renameuser-renamed-notice": "Adanvet eo bet an implijer-mañ.\nA-is emañ marilh an adanvadurioù, ma'z oc'h dedennet."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/bs.json b/www/wiki/extensions/Renameuser/i18n/bs.json
new file mode 100644
index 00000000..d8d8ee50
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/bs.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "CERminator",
+ "Srdjan m",
+ "Semso98"
+ ]
+ },
+ "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 korisničko ime:",
+ "renameusernew": "Novo korisničko ime:",
+ "renameuserreason": "Razlog:",
+ "renameusermove": "Premjesti 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": "{{GENDER:$1|Korisnik|Korisnica}} \"<nowiki>$1</nowiki>\" već postoji.",
+ "renameusererrorinvalid": "Korisničko ime \"<nowiki>$1</nowiki>\" nije ispravno.",
+ "renameuser-error-request": "Nastao je problem pri prijemu zahtjeva.\nMolimo 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": "{{GENDER:$2|Korisnik|Korisnica}} \"<nowiki>$1</nowiki>\" {{GENDER:$2|preimenovan|preimenovana}} je na \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "Stranica $1 već postoji i ne može se automatski presnimiti.",
+ "renameuser-page-moved": "Stranica $1 je premještena na $2.",
+ "renameuser-page-unmoved": "Stranica $1 nije mogla biti premještena na $2.",
+ "log-name-renameuser": "Zapisnik preimenovanja korisnika",
+ "log-description-renameuser": "Ovo je zapisnik preimenovanja korisničkih računa.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|preimenovao|preimenovala}} je {{GENDER:$7|korisnika|korisnicu}} $4 (sa {{PLURAL:$6|$6 izmjenom|$6 izmjene|$6 izmjena}}) u $5",
+ "logentry-renameuser-renameuser-legacier": "$1 {{GENDER:$2|preimenovao|preimenovala}} je {{GENDER:$7|korisnika|korisnicu}} $4 u $5",
+ "renameuser-move-log": "Automatski premještena stranica zbog preimenovanja korisnika \"[[User:$1|$1]]\" u \"[[User:$2|$2]]\"",
+ "right-renameuser": "Preimenovanje korisnika",
+ "renameuser-renamed-notice": "Ovaj korisnik je promijenio ime.\nZapisnik preimenovanje je prikazan ispod kao referenca."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ca.json b/www/wiki/extensions/Renameuser/i18n/ca.json
new file mode 100644
index 00000000..5951e7fd
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ca.json
@@ -0,0 +1,47 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aleator",
+ "Arnaugir",
+ "El libre",
+ "Juanpabl",
+ "Paucabot",
+ "Qllach",
+ "SMP",
+ "Toniher",
+ "Vriullop",
+ "Ssola"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Mostra el registre de blocatges per l'usuari",
+ "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.\nTorneu 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».",
+ "log-name-renameuser": "Registre de canvis de nom d'usuari",
+ "log-description-renameuser": "Aquest és un registre dels canvis de nom d'usuari.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|ha reanomenat}} l'usuari $4 ({{PLURAL:$6|$6 edició|$6 edicions}}) a $5",
+ "logentry-renameuser-renameuser-legacier": "$1 ha canviat el nom d'usuari $4 a $5",
+ "renameuser-move-log": "S'ha reanomenat automàticament la pàgina mentre es reanomenava l'usuari «[[User:$1|$1]]» com «[[User:$2|$2]]»",
+ "action-renameuser": "reanomena usuaris",
+ "right-renameuser": "Reanomenar usuaris",
+ "renameuser-renamed-notice": "S'ha canviat el nom d'aquest usuari.\nA continuació es proporciona el registre de reanomenaments per a més informació."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ce.json b/www/wiki/extensions/Renameuser/i18n/ce.json
new file mode 100644
index 00000000..03a76253
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ce.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sasan700",
+ "Умар"
+ ]
+ },
+ "renameuser": "Декъашхочун цӀе хийца",
+ "renameuser-linkoncontribs": "декъашхочун цӀе хийца",
+ "renameuser-linkoncontribs-text": "ЦӀе хийца хӀокху декъашхочун",
+ "renameuser-desc": "ТӀетуху декъашхойн цӀерш хийца [[Special:RenameUser|аьтту]] (оьшу бакъо <code>renameuser</code>)",
+ "renameuserold": "Карара цӀе:",
+ "renameusernew": "Керла декъашхочун цӀе",
+ "renameuserreason": "Бахьана:",
+ "renameusermove": "Иштта хийца декъашхочун агӀона а, долара дийцаре а цера бухара агӀонийн а цӀерш",
+ "renameusersuppress": "Керла цӀеран тӀе дӀасахьажорг ма кхолла",
+ "renameuserreserve": "ТӀейогӀу хана лелаян кеч йе шира цӀе",
+ "renameuserwarnings": "ДӀахьедар:",
+ "renameuserconfirm": "ХӀаъ, хийца декъашхочун цӀе",
+ "renameusersubmit": "Кхочушдé",
+ "renameuser-submit-blocklog": "Гайта декъашхочун блоктохаран тептар",
+ "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 хуьйцийла яц.",
+ "log-name-renameuser": "Декъашхойн цӀерш хийцар долу тептар",
+ "log-description-renameuser": "ХӀокху тептар чохь гойту дӀабазбелла декъашхойн цӀерш хийцар.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|цӀе хийцина}} декъашхочун $4 ({{PLURAL:$6|$6 нисдар}}) → $5",
+ "logentry-renameuser-renameuser-legacier": "$1 $4 декъашхочун цӀе хийцина → $5",
+ "renameuser-move-log": "Автоматически декъашхочун цӀе хийцина дела «[[User:$1|$1]]» → «[[User:$2|$2]]»",
+ "action-renameuser": "декъашхойн цӀерш хийцар",
+ "right-renameuser": "декъашхойн цӀерш хийцар",
+ "renameuser-renamed-notice": "ХӀокху декъашхочун цӀе хийцина хилла.\nЛахахьа гӀоьналлин гойтуш ду цӀерш хийцаран тептар."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ckb.json b/www/wiki/extensions/Renameuser/i18n/ckb.json
new file mode 100644
index 00000000..6609dc2f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ckb.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Calak",
+ "Lost Whispers",
+ "Épine"
+ ]
+ },
+ "renameuserold": "ناوی بەکارھێنەری ئێستا:",
+ "renameusersubmit": "ناردن",
+ "log-name-renameuser": "لۆگی گۆڕینی ناوی بەکارھێنەر",
+ "logentry-renameuser-renameuser": "$1 ناوی بەکارھێنەر $4ی ({{PLURAL:$6|$6 دەستکاری}}) {{GENDER:$2|گۆڕی}} بۆ $5",
+ "right-renameuser": "گۆڕینی ناوی بەکارھێنەران"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/crh-cyrl.json b/www/wiki/extensions/Renameuser/i18n/crh-cyrl.json
new file mode 100644
index 00000000..cfda26c5
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/crh-cyrl.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "renameuser-page-moved": "$1 саифесининъ ады $2 деп денъиштирильди.",
+ "renameuser-page-unmoved": "$1 саифесининъ ады $2 оларакъ денъиштирилип оламай.",
+ "log-name-renameuser": "Къулланыджы ады денъишиклиги журналы"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/crh-latn.json b/www/wiki/extensions/Renameuser/i18n/crh-latn.json
new file mode 100644
index 00000000..4971c51d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/crh-latn.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "renameuser-page-moved": "$1 saifesiniñ adı $2 dep deñiştirildi.",
+ "renameuser-page-unmoved": "$1 saifesiniñ adı $2 olaraq deñiştirilip olamay.",
+ "log-name-renameuser": "Qullanıcı adı deñişikligi jurnalı"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/cs.json b/www/wiki/extensions/Renameuser/i18n/cs.json
new file mode 100644
index 00000000..c4f38520
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/cs.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danny B.",
+ "Li-sung",
+ "Martin Kozák",
+ "Matěj Grabovský",
+ "Mormegil"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Zobrazit knihu zablokování tohoto uživatele",
+ "renameusererrordoesnotexist": "Uživatel se jménem „<nowiki>$1</nowiki>“ neexistuje",
+ "renameusererrorexists": "{{GENDER:$1|Uživatel|Uživatelka}} 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": "{{GENDER:$2|Uživatel|Uživatelka}} „<nowiki>$1</nowiki>“ {{GENDER:$2|byl úspěšně přejmenován|byla úspěšně přejmenována}} 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.",
+ "log-name-renameuser": "Kniha přejmenování uživatelů",
+ "log-description-renameuser": "Toto je záznam změn uživatelských jmen.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|přejmenoval|přejmenovala}} {{GENDER:$7|uživatele|uživatelku}} $4 ({{PLURAL:$6|$6 editace|$6 editace|$6 editací}}) na $5",
+ "logentry-renameuser-renameuser-legacier": "$1 přejmenoval {{GENDER:$7|uživatele|uživatelku}} $4 na $5",
+ "renameuser-move-log": "Automatický přesun při přejmenování {{GENDER:$2|uživatele|uživatelky}} „[[User:$1|$1]]“ na „[[User:$2|$2]]“",
+ "action-renameuser": "přejmenovávat uživatele",
+ "right-renameuser": "Přejmenovávání uživatelů",
+ "renameuser-renamed-notice": "Tento uživatel byl přejmenován.\nPro přehled je níže zobrazen výpis z knihy přejmenování uživatelů."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/csb.json b/www/wiki/extensions/Renameuser/i18n/csb.json
new file mode 100644
index 00000000..c0286b20
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/csb.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kirsan",
+ "Kaszeba"
+ ]
+ },
+ "log-name-renameuser": "Zmianë pòzwów brëkòwnika",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|zmienił|zmienia}} miono brëkòwnika $4 ({{PLURAL:$6|$6 edicëjô|$6 edicëje|$6 edicëjów}}) na {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 zmienił(a) pòzwã brëkòwnika $4 na $5"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/cu.json b/www/wiki/extensions/Renameuser/i18n/cu.json
new file mode 100644
index 00000000..2233c64e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/cu.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Svetko",
+ "ОйЛ"
+ ]
+ },
+ "renameuser": "прѣимєноуи польꙃєватєл҄ь",
+ "renameuserold": "нꙑнѣщьнѥѥ имѧ :",
+ "renameusernew": "ново имѧ :",
+ "renameuserreason": "какъ съмꙑслъ :",
+ "renameusermove": "нарьци тако польꙃєватєлꙗ страницѫ · бєсѣдѫ и ихъ подъстраницѧ",
+ "renameusersubmit": "єи",
+ "renameusererrordoesnotexist": "польꙃєватєлꙗ ⁖ <nowiki>$1</nowiki> ⁖ нѣстъ",
+ "renameusererrorexists": "польꙃєватєл҄ь ⁖ <nowiki>$1</nowiki> ⁖ ѥстъ ю",
+ "renameusererrorinvalid": "имѧ ⁖ <nowiki>$1</nowiki> ⁖ нѣстъ годѣ",
+ "log-name-renameuser": "польꙃєватєлъ прѣимєнованиꙗ їсторїꙗ",
+ "log-description-renameuser": "сѥ ѥстъ їсторїꙗ польꙃєватєльскъ имєнъ иꙁмѣнѥниꙗ",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|нарєчє}} польꙃєватєл҄ь ⁖ $4 ⁖ ({{PLURAL:$6|$6 мѣна|$6 мѣноу|$6 мѣнъ}}) имєньмь ⁖ {{GENDER:$7|$5}} ⁖"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/cv.json b/www/wiki/extensions/Renameuser/i18n/cv.json
new file mode 100644
index 00000000..4bbd63d4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/cv.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "FLAGELLVM DEI",
+ "Chuvash2014"
+ ]
+ },
+ "renameuserconfirm": "Çапла, хутшăнакан ятне улăштармалла",
+ "renameuser-page-moved": "$1 страницăн ятне $2 çине улăштарнă.",
+ "log-name-renameuser": "Хутшăнакансен ятне улăштарнин логĕ"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/cy.json b/www/wiki/extensions/Renameuser/i18n/cy.json
new file mode 100644
index 00000000..9fbfafcb
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/cy.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lloffiwr"
+ ]
+ },
+ "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": "Rheswm:",
+ "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",
+ "renameuser-submit-blocklog": "Dangoser lòg rhwystro'r defnyddiwr",
+ "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.\nEwch 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.",
+ "log-name-renameuser": "Lòg ail-enwi defnyddwyr",
+ "log-description-renameuser": "Dyma lòg o'r holl newidiadau i enwau defnyddwyr.",
+ "logentry-renameuser-renameuser": "{{GENDER:$2|Ailenwodd}} $1 y defnyddiwr $4 ($6 {{PLURAL:$6|golygiad|golygiad|olygiad|golygiad}}) yn $5",
+ "logentry-renameuser-renameuser-legacier": "Ailenwodd $1 y defnyddiwr $4 yn $5",
+ "renameuser-move-log": "Wedi symud y dudalen yn awtomatig wrth ail-enwi'r defnyddiwr \"[[User:$1|$1]]\" i \"[[User:$2|$2]]\"",
+ "action-renameuser": "ail-enwi defnyddwyr",
+ "right-renameuser": "Ail-enwi defnyddwyr",
+ "renameuser-renamed-notice": "Mae'r defnyddiwr hwn wedi ei ail-enwi.\nMae'r lòg ail-enwi defnyddwyr i'w weld isod."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/da.json b/www/wiki/extensions/Renameuser/i18n/da.json
new file mode 100644
index 00000000..2e91a9f4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/da.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Byrial",
+ "Christian List",
+ "Froztbyte",
+ "Hylle",
+ "Peter Alberti"
+ ]
+ },
+ "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": "Begrundelse:",
+ "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",
+ "renameuser-submit-blocklog": "Vis blokeringslog for bruger",
+ "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.\nGå 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.",
+ "log-name-renameuser": "Brugeromdøbningslog",
+ "log-description-renameuser": "Dette er en log over omdøbninger af brugernavne.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|omdøbte}} bruger $4 ({{PLURAL:$6|$6 redigering|$6 redigeringer}}) til $5",
+ "logentry-renameuser-renameuser-legacier": "$1 omdøbte bruger $4 til $5",
+ "renameuser-move-log": "Side automatisk flyttet ved omdøbning af bruger \"[[User:$1|$1]]\" til \"[[User:$2|$2]]\"",
+ "action-renameuser": "omdøb brugere",
+ "right-renameuser": "Omdøbe brugere",
+ "renameuser-renamed-notice": "Denne bruger er blevet omdøbt.\nTil information er omdøbningsloggen vist nedenfor."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/de.json b/www/wiki/extensions/Renameuser/i18n/de.json
new file mode 100644
index 00000000..d40e28d7
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/de.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kghbln",
+ "Metalhead64",
+ "Purodha",
+ "Raimond Spekking",
+ "Spacebirdy",
+ "The Evil IP address",
+ "Umherirrender",
+ "J. 'mach' wust"
+ ]
+ },
+ "renameuser": "Benutzer umbenennen",
+ "renameuser-linkoncontribs": "Benutzer umbenennen",
+ "renameuser-linkoncontribs-text": "Diesen Benutzer umbenennen",
+ "renameuser-desc": "Eine [[Special:RenameUser|Spezialseite]] zum Ändern eines Benutzernamens",
+ "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",
+ "renameuser-submit-blocklog": "Benutzersperr-Logbuch zum Benutzer anzeigen",
+ "renameusererrordoesnotexist": "Der Benutzername „<nowiki>$1</nowiki>“ ist nicht vorhanden.",
+ "renameusererrorexists": "Der {{GENDER:$1|Benutzername}} „<nowiki>$1</nowiki>“ ist bereits vorhanden.",
+ "renameusererrorinvalid": "Der Benutzername „<nowiki>$1</nowiki>“ ist ungültig.",
+ "renameuser-error-request": "Es gab ein Problem beim Empfang der Anfrage.\nBitte nochmal versuchen.",
+ "renameuser-error-same-user": "Alter und neuer Benutzername sind identisch.",
+ "renameusersuccess": "{{GENDER:$2|Der Benutzer|Die Benutzerin}} „<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.",
+ "log-name-renameuser": "Benutzernamenänderungs-Logbuch",
+ "log-description-renameuser": "In diesem Logbuch werden die Änderungen von Benutzernamen protokolliert.",
+ "logentry-renameuser-renameuser": "$1 hat {{GENDER:$2|den Benutzer|die Benutzerin}} „$4“ (mit {{PLURAL:$6|einer Bearbeitung|$6 Bearbeitungen}}) in „{{GENDER:$7|$5}}“ umbenannt",
+ "logentry-renameuser-renameuser-legacier": "$1 hat Benutzer „$4“ in „{{GENDER:$7|$5}}“ umbenannt",
+ "renameuser-move-log": "Seite während der {{GENDER:$2|Benutzerkontoumbenennung}} von „[[User:$1|$1]]“ in „[[User:$2|$2]]“ automatisch verschoben",
+ "action-renameuser": "Benutzer umzubenennen",
+ "right-renameuser": "Benutzer umbenennen",
+ "renameuser-renamed-notice": "{{GENDER:$1|Dieser Benutzer|Diese Benutzerin}} wurde umbenannt.\nZur Information folgt das Benutzernamenänderungs-Logbuch."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/diq.json b/www/wiki/extensions/Renameuser/i18n/diq.json
new file mode 100644
index 00000000..7a8daec2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/diq.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aspar",
+ "Erdemaslancan",
+ "Gorizon",
+ "Mirzali",
+ "Xoser",
+ "Marmase",
+ "Kumkumuk",
+ "Gırd"
+ ]
+ },
+ "renameuser": "Karberi newe ra name ke",
+ "renameuser-linkoncontribs": "karberi newe ra name ke",
+ "renameuser-linkoncontribs-text": "Nê karberi newe ra name ke",
+ "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ê karberio nıkayên:",
+ "renameusernew": "Nameyê karberio newe:",
+ "renameuserreason": "Sebeb:",
+ "renameusermove": "nameyê karberan u pelê werêaameyişan bıkırışi nameyo newe",
+ "renameusersuppress": "Name de newi re hetenayışo newe vıraştış",
+ "renameuserreserve": "nameyê karberi yo verini bloke bıker.",
+ "renameuserwarnings": "Tembey:",
+ "renameuserconfirm": "bele karberi newe ra name bıker",
+ "renameusersubmit": "Bırışe",
+ "renameuser-submit-blocklog": "Rocekanê bloqandê karbari bıvin",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" no name de yew karber çino.",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" {{GENDER:$1|karber}} ca ra esto",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" nameyê karberi nemeqbulo",
+ "renameuser-error-request": "ca ardışê waştışê şıma de yew problem veciya.\nkerem 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 {{GENDER:$2|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.",
+ "log-name-renameuser": "Qeydê reyna namekerdışê namey karberi",
+ "log-description-renameuser": "Eno yew qeydê vurnayışê nameyanê karberiyo.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|namey}} karberi $4 ({{PLURAL:$6|$6 vurnayış|$6 vurnayışi}}) ra kırışt {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1i nameyê karberi $4 vurna era {{GENDER:$7|$5}}",
+ "renameuser-move-log": "wexta ke {{GENDER:$2|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",
+ "action-renameuser": "karberan newe ra name ke",
+ "right-renameuser": "Karberan newe ra name ke",
+ "renameuser-renamed-notice": "No karber namey xo vırno, reyna name gırewto.\nQeydê reyna namekerdışi cêr dı referans dı esto."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/dsb.json b/www/wiki/extensions/Renameuser/i18n/dsb.json
new file mode 100644
index 00000000..c789937a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/dsb.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Michawiki"
+ ]
+ },
+ "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:",
+ "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ś",
+ "renameuser-submit-blocklog": "Blokěrowański protokol za wužywarja pokazaś",
+ "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ł.\nŹ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ł.",
+ "log-name-renameuser": "Protokol wužywarskich pśemjenjenjow",
+ "log-description-renameuser": "Toś to jo protokol změnow na wužywarskich mjenjach.",
+ "logentry-renameuser-renameuser": "$1 jo wužywarja $4 ({{PLURAL:$6|$6 změna|$6 změnje|$6 změny|$6 změnow}}) do $5 {{GENDER:$2|pśemjenił|pśemjenił}}",
+ "logentry-renameuser-renameuser-legacier": "$1 jo wužywarja $4 do $5 pśemjenił",
+ "renameuser-move-log": "Pśi pśemjenjowanju wužywarja \"[[User:$1|$1]]\" do \"[[User:$2|$2]]\" awtomatiski pśesunjony bok",
+ "action-renameuser": "wužywarjow pśemjeniś",
+ "right-renameuser": "Wužywarjow pśemjeniś",
+ "renameuser-renamed-notice": "Toś ten wužywaŕ jo se pśemjenił.\nProtokol pśemjenjowanjow jo dołojce ako referenca pódany."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/el.json b/www/wiki/extensions/Renameuser/i18n/el.json
new file mode 100644
index 00000000..83c07e22
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/el.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aitolos",
+ "Badseed",
+ "Consta",
+ "Dead3y3",
+ "Geraki",
+ "Glavkos",
+ "Kiriakos",
+ "MF-Warburg",
+ "Omnipaedista",
+ "ZaDiak",
+ "Nikosgranturismogt"
+ ]
+ },
+ "renameuser": "Μετονομασία χρήστη",
+ "renameuser-linkoncontribs": "Μετονομασία χρήστη",
+ "renameuser-linkoncontribs-text": "Μετονομασία αυτού του χρήστη",
+ "renameuser-desc": "Προσθέτει μια [[Special:RenameUser|ειδική σελίδα]] για την μετονομασία ενός χρήστη (είναι απαραίτητο το δικαίωμα ''renameuser'')",
+ "renameuserold": "Τρέχον όνομα χρήστη:",
+ "renameusernew": "Νέο όνομα χρήστη:",
+ "renameuserreason": "Αιτία:",
+ "renameusermove": "Μετακίνηση της σελίδας χρήστη και της σελίδας συζήτησης χρήστη (και των υποσελίδων τους) στο καινούργιο όνομα",
+ "renameusersuppress": "Μην δημιουργείτε ανακατευθύνσεις στο νέο όνομα",
+ "renameuserreserve": "Φραγή του παλιού ονόματος χρήστη/χρήστριας από μελλοντική χρήση",
+ "renameuserwarnings": "Προειδοποιήσεις:",
+ "renameuserconfirm": "Ναι, μετονομάστε τον χρήστη",
+ "renameusersubmit": "Καταχώριση",
+ "renameuser-submit-blocklog": "Εμφάνιση μητρώου φραγών του χρήστη",
+ "renameusererrordoesnotexist": "Ο χρήστης \"<nowiki>$1</nowiki>\" δεν υπάρχει",
+ "renameusererrorexists": "Ο {{GENDER:$1|χρήστης}} \"<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.",
+ "log-name-renameuser": "Αρχείο μετονομασίας χρηστών",
+ "log-description-renameuser": "Αυτό είναι ένα αρχείο καταγραφής αλλαγών σε ονόματα χρηστών",
+ "logentry-renameuser-renameuser": "{{GENDER:$2|Ο|Η}} $1 μετονόμασε {{GENDER:$4|το χρήστη|τη χρήστρια}} $4 ({{PLURAL:$6|$6 επεξεργασία|$6 επεξεργασίες}}) σε $5",
+ "logentry-renameuser-renameuser-legacier": "Ο $1 μετονόμασε τον χρήστη $4 σε {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Η σελίδα μετακινήθηκε αυτόματα κατά τη μετονομασία του χρήστη \"[[User:$1|$1]]\" σε \"[[User:$2|$2]]\"",
+ "action-renameuser": "μετονομασία χρηστών",
+ "right-renameuser": "Μετονομασία χρηστών",
+ "renameuser-renamed-notice": "Αυτός ο χρήστης άλλαξε όνομα\nTο ημερολόγιο επανονομασιών δίνεται παρακάτω για αναφορά."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/en.json b/www/wiki/extensions/Renameuser/i18n/en.json
new file mode 100644
index 00000000..65cc5842
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/en.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": []
+ },
+ "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": "",
+ "renameuserold": "Current username:",
+ "renameusernew": "New username:",
+ "renameuserreason": "Reason:",
+ "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",
+ "renameuser-submit-blocklog": "Show block log for user",
+ "renameusererrordoesnotexist": "The user \"<nowiki>$1</nowiki>\" does not exist.",
+ "renameusererrorexists": "The {{GENDER:$1|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.\nPlease go back and try again.",
+ "renameuser-error-same-user": "You cannot rename a user to the same thing as before.",
+ "renameusersuccess": "The {{GENDER:$2|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.",
+ "log-name-renameuser": "User rename log",
+ "log-description-renameuser": "This is a log of changes to user names.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|renamed}} user $4 ({{PLURAL:$6|$6 edit|$6 edits}}) to {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 renamed user $4 to {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legaciest": "$1",
+ "renameuser-move-log": "Automatically moved page while renaming the {{GENDER:$2|user}} \"[[User:$1|$1]]\" to \"[[User:$2|$2]]\"",
+ "action-renameuser": "rename users",
+ "right-renameuser": "Rename users",
+ "renameuser-renamed-notice": "This user has been renamed.\nThe rename log is provided below for reference."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/eo.json b/www/wiki/extensions/Renameuser/i18n/eo.json
new file mode 100644
index 00000000..6804b5a4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/eo.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "ArnoLagrange",
+ "Tlustulimu",
+ "Yekrats",
+ "KuboF",
+ "Robin van der Vliet"
+ ]
+ },
+ "renameuser": "Alinomi uzanton",
+ "renameuser-linkoncontribs": "alinomi uzanton",
+ "renameuser-linkoncontribs-text": "Alinomi ĉ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:",
+ "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, alinomu la uzanton",
+ "renameusersubmit": "Ek",
+ "renameuser-submit-blocklog": "Montri forbarprotokolon de la uzanto",
+ "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.\nBonvolu retroigi kaj reprovi.",
+ "renameuser-error-same-user": "Vi ne povas alinomi 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.",
+ "log-name-renameuser": "Protokolo pri alinomigoj de uzantoj",
+ "log-description-renameuser": "Jen protokolo pri ŝanĝoj de salutnomoj.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|alinomis}} uzanton $4 ({{PLURAL:$6|$6 redakto|$6 redaktoj}}) al $5",
+ "logentry-renameuser-renameuser-legacier": "$1 alinomis uzanton $4 al $5",
+ "renameuser-move-log": "Aŭtomate movis paĝon dum alinomigo de la uzanto \"[[User:$1|$1]]\" al \"[[User:$2|$2]]\"",
+ "action-renameuser": "Alinomigi uzantojn",
+ "right-renameuser": "Alinomigi uzantojn",
+ "renameuser-renamed-notice": "Ĉi tiu uzanto estis renomigita.\nJen la protokolo pri renomigado por via referenco."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/es.json b/www/wiki/extensions/Renameuser/i18n/es.json
new file mode 100644
index 00000000..b50dad1d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/es.json
@@ -0,0 +1,55 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alhen",
+ "Armando-Martin",
+ "Dferg",
+ "Diego Grez",
+ "Icvav",
+ "Jatrobat",
+ "Lin linao",
+ "Locos epraix",
+ "MarcoAurelio",
+ "Ralgis",
+ "Remember the dot",
+ "Sanbec",
+ "Spacebirdy",
+ "Translationista",
+ "Vivaelcelta",
+ "Macofe",
+ "AlvaroMolina",
+ "Fitoschido"
+ ]
+ },
+ "renameuser": "Cambiar nombre de usuario",
+ "renameuser-linkoncontribs": "cambiar nombre de usuario",
+ "renameuser-linkoncontribs-text": "Cambiar nombre de este usuario",
+ "renameuser-desc": "Añade una [[Special:RenameUser|página especial]] para cambiar el nombre de un usuario (necesita el permiso ''renameuser'')",
+ "renameuserold": "Nombre de usuario actual:",
+ "renameusernew": "Nombre de usuario nuevo:",
+ "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 nombre nuevo",
+ "renameuserreserve": "Bloquear el antiguo nombre de usuario para evitar que sea usado en el futuro",
+ "renameuserwarnings": "Alertas:",
+ "renameuserconfirm": "Sí, cambiar nombre de usuario",
+ "renameusersubmit": "Enviar",
+ "renameuser-submit-blocklog": "Mostrar el registro de bloqueo para el usuario",
+ "renameusererrordoesnotexist": "El usuario «<nowiki>$1</nowiki>» no existe.",
+ "renameusererrorexists": "{{GENDER:$1|El usuario|La usuaria}} «<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.\nRegresa e inténtalo de nuevo.",
+ "renameuser-error-same-user": "No puedes otorgar a un usuario un nombre que ya tenía.",
+ "renameusersuccess": "{{GENDER:$2|El usuario|La usuaria}} «<nowiki>$1</nowiki>» se renombró 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.",
+ "log-name-renameuser": "Registro de cambios de nombre de usuario",
+ "log-description-renameuser": "Este es un registro de cambios en los nombres de usuario.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|renombró}} {{GENDER:$7|al usuario|a la usuaria}} $4 ({{PLURAL:$6|$6 edición|$6 ediciones}}) como $5",
+ "logentry-renameuser-renameuser-legacier": "$1 renombró {{GENDER:$7|al usuario|a la usuaria}} $4 como $5",
+ "renameuser-move-log": "Página trasladada automáticamente al cambiar el nombre {{GENDER:$2|del usuario|de la usuaria}} de «[[User:$1|$1]]» a «[[User:$2|$2]]»",
+ "action-renameuser": "cambiar nombres de usuarios",
+ "right-renameuser": "Cambiar nombres de usuarios",
+ "renameuser-renamed-notice": "Se cambió el nombre de {{GENDER:$1|este usuario|esta usuaria}}.\nEl registro de cambios de nombre de usuario se provee debajo para mayor referencia."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/et.json b/www/wiki/extensions/Renameuser/i18n/et.json
new file mode 100644
index 00000000..d60c5b3d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/et.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Avjoska",
+ "Jaan513",
+ "Pikne",
+ "Silvar",
+ "WikedKentaur"
+ ]
+ },
+ "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": "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",
+ "renameuser-submit-blocklog": "Näita blokeerimislogi sissekandeid",
+ "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.\nPalun ü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.",
+ "log-name-renameuser": "Kasutajanime muutmise logi",
+ "log-description-renameuser": "See on kasutajanimede muutmise logi.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|nimetas}} kasutaja ({{PLURAL:$6|üks redigeerimine|$6 redigeerimist}}) $4 ümber kasutajaks {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 nimetas kasutaja $4 ümber kasutajaks $5",
+ "renameuser-move-log": "Teisaldatud automaatselt, kui kasutaja \"[[User:$1|$1]]\" nimetati ümber kasutajaks \"[[User:$2|$2]]\"",
+ "action-renameuser": "kasutajaid ümber nimetadata",
+ "right-renameuser": "Muuta kasutajanimesid",
+ "renameuser-renamed-notice": "Kasutaja on ümbernimetatud.\nAllpool on toodud ümbernimetamislogi."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/eu.json b/www/wiki/extensions/Renameuser/i18n/eu.json
new file mode 100644
index 00000000..7db9601b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/eu.json
@@ -0,0 +1,24 @@
+{
+ "@metadata": {
+ "authors": [
+ "An13sa",
+ "Theklan",
+ "Xabier Armendaritz"
+ ]
+ },
+ "renameuser": "Erabiltzaile bati izena aldatu",
+ "renameuserold": "Oraingo erabiltzaile izena:",
+ "renameusernew": "Erabiltzaile izen berria:",
+ "renameuserreason": "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» orria «$2» izenera aldatu da.",
+ "renameuser-page-unmoved": "Ezin izan da $1 orrialdea $2(e)ra mugitu.",
+ "log-name-renameuser": "Erabiltzaileen izen aldaketa erregistroa",
+ "right-renameuser": "Lankideak berrizendatu"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ext.json b/www/wiki/extensions/Renameuser/i18n/ext.json
new file mode 100644
index 00000000..01a06961
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ext.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Better",
+ "Fitoschido"
+ ]
+ },
+ "renameuser-page-moved": "S’á moviu la páhina $1 a $2."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/fa.json b/www/wiki/extensions/Renameuser/i18n/fa.json
new file mode 100644
index 00000000..b758c80f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/fa.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ebraminio",
+ "Huji",
+ "Reza1615",
+ "Wayiran",
+ "Alirezaaa",
+ "Calak"
+ ]
+ },
+ "renameuser": "تغییر نام کاربر",
+ "renameuser-linkoncontribs": "تغییر نام کاربر",
+ "renameuser-linkoncontribs-text": "تغییر نام کاربر",
+ "renameuser-desc": "نام یک کاربر را تغییر می‌دهد (نیازمند برخورداری از اختیارات ''تغییرنام'' است)",
+ "renameuserold": "نام کاربری کنونی:",
+ "renameusernew": "نام کاربری تازه:",
+ "renameuserreason": "دلیل:",
+ "renameusermove": "صفحه‌های کاربری و بحث را (به همراه زیر صفحه‌هایشان) به نام تازه منتقل کن",
+ "renameusersuppress": "تغییرمسیر به نام جدید ایجاد نکن",
+ "renameuserreserve": "نام کاربری قبلی را در مقابل استفادهٔ مجدد حفظ کن",
+ "renameuserwarnings": "هشدار:",
+ "renameuserconfirm": "بله، نام کاربر را تغییر بده",
+ "renameusersubmit": "ارسال",
+ "renameuser-submit-blocklog": "نمایش سیاههٔ بستن کاربر",
+ "renameusererrordoesnotexist": "نام کاربری «<nowiki>$1</nowiki>» وجود ندارد",
+ "renameusererrorexists": "{{GENDER:$1|نام کاربری}} «<nowiki>$1</nowiki>» استفاده شده‌است.",
+ "renameusererrorinvalid": "نام کاربری «<nowiki>$1</nowiki>» نامجاز است.",
+ "renameuser-error-request": "در دریافت درخواست مشکلی پیش آمد.\nلطفاً به صفحهٔ قبل بازگردید و دوباره تلاش کنید.",
+ "renameuser-error-same-user": "شما نمی‌توانید نام یک کاربر را به همان نام قبلی‌اش تغییر دهید.",
+ "renameusersuccess": "نام {{GENDER:$2|کاربر}} «<nowiki>$1</nowiki>» به «<nowiki>$2</nowiki>» تغییر یافت.",
+ "renameuser-page-exists": "صفحهٔ $1 از قبل وجود داشته و به طور خودکار قابل بازنویسی نیست.",
+ "renameuser-page-moved": "صفحهٔ $1 به $2 انتقال داده شد.",
+ "renameuser-page-unmoved": "امکان انتقال صفحهٔ $1 به $2 وجود ندارد.",
+ "log-name-renameuser": "سیاهه تغییر نام کاربر",
+ "log-description-renameuser": "این سیاههٔ تغییر نام کاربران است.",
+ "logentry-renameuser-renameuser": "$1 نام $4 ({{PLURAL:$6|$6 ویرایش}}) را به {{GENDER:$7|$5}} {{GENDER:$2|تغییر داد}}",
+ "logentry-renameuser-renameuser-legacier": "$1 نام کاربری $4 را به {{GENDER:$7|$5}} تغییر داد",
+ "renameuser-move-log": "صفحه را در ضمن تغییر نام {{GENDER:$2|کاربر}} از «[[User:$1|$1]]» به «[[User:$2|$2]]» به طور خودکار منتقل کرد",
+ "action-renameuser": "تغییر نام کاربران",
+ "right-renameuser": "تغییر نام کاربران",
+ "renameuser-renamed-notice": "این کاربر تغییر نام داده‌است.\nسیاههٔ تغییر نام در ادامه آمده‌است."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/fi.json b/www/wiki/extensions/Renameuser/i18n/fi.json
new file mode 100644
index 00000000..03f91cd6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/fi.json
@@ -0,0 +1,46 @@
+{
+ "@metadata": {
+ "authors": [
+ "Agony",
+ "Centerlink",
+ "Crt",
+ "Linnea",
+ "Nike",
+ "Pxos",
+ "Str4nd",
+ "Pyscowicz",
+ "Lliehu"
+ ]
+ },
+ "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": "Syy:",
+ "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ä",
+ "renameuser-submit-blocklog": "Näytä käyttäjän estoloki",
+ "renameusererrordoesnotexist": "Tunnusta ”<nowiki>$1</nowiki>” ei ole",
+ "renameusererrorexists": "{{GENDER:$1|käyttäjä}} \"<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": "{{GENDER:$2|käyttäjä}} \"<nowiki>$1</nowiki>\" on nimetty uudelleen nimelle \"<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.",
+ "log-name-renameuser": "Käyttäjänimien vaihtojen loki",
+ "log-description-renameuser": "Tämä on loki käyttäjätunnuksien vaihdoista.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|uudelleennimesi}} käyttäjän $4 ({{PLURAL:$6|$6 muokkaus|$6 muokkausta}}) nimelle {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 vaihtoi käyttäjän $4 nimeksi {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Sivu siirretty automaattisesti kun uudelleennimettiin {{GENDER:$2|käyttäjä}} \"[[User:$1|$1]]\" nimelle \"[[User:$2|$2]]\"",
+ "action-renameuser": "nimetä käyttäjätunnuksia uudelleen",
+ "right-renameuser": "Nimetä käyttäjätunnuksia uudelleen",
+ "renameuser-renamed-notice": "Tämä käyttäjä on nimetty uudelleen.\nAlla on ote tunnusten vaihtolokista."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/fo.json b/www/wiki/extensions/Renameuser/i18n/fo.json
new file mode 100644
index 00000000..c7f5f3ca
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/fo.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "EileenSanda",
+ "Spacebirdy"
+ ]
+ },
+ "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:",
+ "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.\nVinarliga 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.",
+ "right-renameuser": "Umdoyp brúkarar",
+ "renameuser-renamed-notice": "Hesin brúkari hevur fingið nýtt navn.\nLoggurin fyri navnabroytingina er givin niðanfyri fyri keldu ávísing."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/fr.json b/www/wiki/extensions/Renameuser/i18n/fr.json
new file mode 100644
index 00000000..1e7fd036
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/fr.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cedric31",
+ "Crochet.david",
+ "DavidL",
+ "Gomoko",
+ "Grondin",
+ "Hégésippe Cormier",
+ "IAlex",
+ "Nicolas NALLET",
+ "Peter17",
+ "PieRRoMaN",
+ "Urhixidur",
+ "Verdy p",
+ "Wladek92"
+ ]
+ },
+ "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": "Raison(s) 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",
+ "renameuser-submit-blocklog": "Afficher le journal de blocage de l'utilisateur",
+ "renameusererrordoesnotexist": "L’utilisateur « <nowiki>$1</nowiki> » n’existe pas",
+ "renameusererrorexists": "L’{{GENDER:$1|utilisateur|utilisatrice}} « <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’{{GENDER:$1|utilisateur|utilisatrice}} « <nowiki>$1</nowiki> » a été {{GENDER:$1|renommé|renommée}} en « <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.",
+ "log-name-renameuser": "Journal des changements de noms d’utilisateurs",
+ "log-description-renameuser": "Ceci est l’historique des modifications des noms d’utilisateur.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|a renommé}} l’{{GENDER:$7|utilisateur|utilisatrice}} $4 ({{PLURAL:$6|$6 modification|$6 modifications}}) en $5",
+ "logentry-renameuser-renameuser-legacier": "$1 a renommé l’{{GENDER:$7|utilisateur|utilisatrice}} $4 en $5",
+ "renameuser-move-log": "Page déplacée automatiquement lorsque l’utilisat{{GENDER:$2|eur|rice}} « [[User:$1|$1]] » est devenu{{GENDER:$2||e}} « [[User:$2|$2]] »",
+ "action-renameuser": "renommer les utilisateurs",
+ "right-renameuser": "Renommer les utilisateurs",
+ "renameuser-renamed-notice": "Cet utilisateur a été renommé.\nLe journal des renommages est disponible ci-dessous pour information."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/frp.json b/www/wiki/extensions/Renameuser/i18n/frp.json
new file mode 100644
index 00000000..02867839
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/frp.json
@@ -0,0 +1,34 @@
+{
+ "@metadata": {
+ "authors": [
+ "ChrisPtDe"
+ ]
+ },
+ "renameuser": "Renomar l’usanciér",
+ "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’usanciér « <nowiki>$1</nowiki> » est envalido.",
+ "renameuser-error-request": "Un problèmo ègziste avouéc la reçua de la requéta.\nVolyé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.",
+ "log-name-renameuser": "Jornal des changements de nom d’usanciér",
+ "renameuser-move-log": "Pâge dèplaciê ôtomaticament quand l’usanciér « [[User:$1|$1]] » est vegnu « [[User:$2|$2]] »",
+ "action-renameuser": "renomar los utilisators",
+ "right-renameuser": "Renomar des usanciérs",
+ "renameuser-renamed-notice": "Ceti usanciér at étâ renomâ.\nLo jornal des changements de nom est disponiblo ce-desot por enformacion."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/frr.json b/www/wiki/extensions/Renameuser/i18n/frr.json
new file mode 100644
index 00000000..68d4d02a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/frr.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Murma174"
+ ]
+ },
+ "renameuser": "Brüker amnääm",
+ "renameuser-linkoncontribs": "Brüker amnääm",
+ "renameuser-linkoncontribs-text": "Didiar brüker amnääm",
+ "renameuser-desc": "Diar komt en [[Special:RenameUser|spezial-sidj]] tu, am en brükernööm tu feranrin",
+ "renameuserold": "Uugenblakelk brükernööm:",
+ "renameusernew": "Nei brükernööm:",
+ "renameuserreason": "Grünj:",
+ "renameusermove": "Fersküüw brükersidj an diskuschuunssidj (mä onersidjen) tu di nei brükernööm",
+ "renameusersuppress": "Nian widjerfeerangen üüb di nei brükernööm iinracht",
+ "renameuserreserve": "Di ual brükernööm spere",
+ "renameuserwarnings": "Wäärnangen:",
+ "renameuserconfirm": "Ja, di brüker amnääm",
+ "renameusersubmit": "Auerdreeg",
+ "renameuser-submit-blocklog": "Sper-logbuk för didiar brüker uunwise",
+ "renameusererrordoesnotexist": "Son brüker \"<nowiki>$1</nowiki>\" jaft at ei.",
+ "renameusererrorexists": "Son brüker \"<nowiki>$1</nowiki>\" jaft at al.",
+ "renameusererrorinvalid": "Di brükernööm \"<nowiki>$1</nowiki>\" as ferkiard.",
+ "renameuser-error-request": "Diar as wat skiaf gingen bi't aurdreegen. Ferschük det man noch ans.",
+ "renameuser-error-same-user": "Di nei an di ual brükernööm san likedenang.",
+ "renameusersuccess": "Di brüker \"<nowiki>$1</nowiki>\" as tu \"<nowiki>$2</nowiki>\" amnäämd wurden.",
+ "renameuser-page-exists": "Det sidj „$1“ as al diar an koon ei automaatisk auerskrewen wurd.",
+ "renameuser-page-moved": "Det sidj $1 as efter $2 fersköwen wurden.",
+ "renameuser-page-unmoved": "Det sidj $1 küd ei efter $2 fersköwen wurd.",
+ "log-name-renameuser": "Amnääm-logbuk",
+ "log-description-renameuser": "Det as det logbuk auer feranrangen faan brükernöömer.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|hää}} brüker „$4“ (mä {{PLURAL:$6|ian feranrang|$6 feranrangen}}) tu „$5“ amnäämd.",
+ "logentry-renameuser-renameuser-legacier": "$1 hää brüker $4 amnäämd tu $5",
+ "renameuser-move-log": "Det sidj as bi't amnäämen faan „[[User:$1|$1]]“ tu „[[User:$2|$2]]“ automaatisk fersköwen wurden",
+ "action-renameuser": "brükern amnääm",
+ "right-renameuser": "Brükern amnääm",
+ "renameuser-renamed-notice": "Didiar brüker as amnäämd wurden. Uun't amnääm-logbuk oner stäänt muar diartu."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/fur.json b/www/wiki/extensions/Renameuser/i18n/fur.json
new file mode 100644
index 00000000..6a8b62a6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/fur.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Klenje"
+ ]
+ },
+ "renameuser": "Cambie non par un utent",
+ "renameuserold": "Non utent atuâl:",
+ "renameusernew": "Gnûf non utent:",
+ "renameuserwarnings": "Avîs:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/fy.json b/www/wiki/extensions/Renameuser/i18n/fy.json
new file mode 100644
index 00000000..f1ebec61
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/fy.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "SK-luuut",
+ "Snakesteuben",
+ "Robin0van0der0vliet",
+ "Robin van der Vliet"
+ ]
+ },
+ "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:",
+ "renameusermove": "Meidoggersside en oerlissiden omneame (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": "Ferstjoere",
+ "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.\nGean 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.",
+ "log-name-renameuser": "Nammeferoar-loch",
+ "renameuser-move-log": "Sidenamme automatysk feroare by it feroarjen fan de meidoggersnamme fan \"[[User:$1|$1]]\" yn \"[[User:$2|$2]]\"",
+ "right-renameuser": "Feroarje meidoggersnammen"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ga.json b/www/wiki/extensions/Renameuser/i18n/ga.json
new file mode 100644
index 00000000..fb715dff
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ga.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alison"
+ ]
+ },
+ "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."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/gl.json b/www/wiki/extensions/Renameuser/i18n/gl.json
new file mode 100644
index 00000000..934fcf49
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/gl.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Alma",
+ "Prevert",
+ "Toliño",
+ "Elisardojm"
+ ]
+ },
+ "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": "Motivo:",
+ "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",
+ "renameuser-submit-blocklog": "Mostrar o rexistro de bloqueos do usuario",
+ "renameusererrordoesnotexist": "O usuario \"<nowiki>$1</nowiki>\" non existe.",
+ "renameusererrorexists": "{{GENDER:$1|O usuario|A usuaria}} \"<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.\nVolva 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 {{GENDER:$1|usuario|usuaria}} \"<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\".",
+ "log-name-renameuser": "Rexistro de cambios de nome de usuario",
+ "log-description-renameuser": "Este é un rexistro dos cambios nos nomes de usuario.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|mudou o nome}} do usuario $4 ({{PLURAL:$6|$6 edición|$6 edicións}}) a {{GENDER:$7|$5}}.",
+ "logentry-renameuser-renameuser-legacier": "$1 mudou o nome do usuario $4 a {{GENDER:$7|$5}}",
+ "renameuser-move-log": "A páxina moveuse automaticamente cando se mudou o nome {{GENDER:$2|do usuario |da usuaria}} \"[[User:$1|$1]]\" a \"[[User:$2|$2]]\"",
+ "action-renameuser": "renomear usuarios",
+ "right-renameuser": "Renomear usuarios",
+ "renameuser-renamed-notice": "Este usuario foi renomeado.\nVelaquí está o rexistro de cambios de nome de usuario por se quere consultalo."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/grc.json b/www/wiki/extensions/Renameuser/i18n/grc.json
new file mode 100644
index 00000000..fffdda70
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/grc.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Omnipaedista"
+ ]
+ },
+ "renameusersubmit": "Ὑποβάλλειν"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/gsw.json b/www/wiki/extensions/Renameuser/i18n/gsw.json
new file mode 100644
index 00000000..64f6f2a2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/gsw.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Als-Chlämens",
+ "Als-Holder"
+ ]
+ },
+ "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",
+ "renameuser-submit-blocklog": "Benutzersperrlogbuech vo däm Benutzer aazeige",
+ "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.",
+ "log-name-renameuser": "Benutzernamenänderigs-Logbuech",
+ "log-description-renameuser": "In däm Logbuech wäre d Änderige vu Benutzernäme protokolliert.",
+ "renameuser-move-log": "dur d Umnännig vu „[[User:$1|$1]]“ noch „[[User:$2|$2]]“ automatisch verschobeni Syte",
+ "action-renameuser": "Benutzer umznänne",
+ "right-renameuser": "Benutzer umnänne",
+ "renameuser-renamed-notice": "Dää Benutzer isch umgnännt wore.\nS Umnännigs-Logbuech wird do unte ufgfiert as Quälle."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/gu.json b/www/wiki/extensions/Renameuser/i18n/gu.json
new file mode 100644
index 00000000..e724e417
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/gu.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ashok modhvadia",
+ "KartikMistry",
+ "Sushant savla"
+ ]
+ },
+ "renameuser": "સભ્યનામ બદલો",
+ "renameuser-linkoncontribs": "સભ્યનામ બદલો",
+ "renameuser-linkoncontribs-text": "આ સભ્યનું નામ બદલો",
+ "renameuser-desc": "સભ્યનું નામાંતરણ કરવા માટે [[Special:RenameUser|special page]] ઉમેરે છે (''renameuser'' હક્ક જરૂરી)",
+ "renameuserold": "હાલનું સભ્યનામ:",
+ "renameusernew": "નવું સભ્યનામ:",
+ "renameuserreason": "કારણ:",
+ "renameusermove": "સભ્ય અને ગપ્પાં પાનાંઓ (અને તેમનાં ઉપપાનાંઓ) નવાં નામ પર ખસેડો",
+ "renameusersuppress": "નવા નામ પર દિશા નિર્દેશનો ન રચશો",
+ "renameuserreserve": "જૂના સભ્યનામને ભવિષ્યનો વપરાશ પ્રતિબંધીત કરો",
+ "renameuserwarnings": "ચેતવણીઓ:",
+ "renameuserconfirm": "હા, સભ્યનું નામ બદલો",
+ "renameusersubmit": "જમા કરો",
+ "renameuser-submit-blocklog": "સભ્ય માટે પ્રતિબંધ લૉગ બતાવો",
+ "renameusererrordoesnotexist": "આ સભ્ય \"<nowiki>$1</nowiki>\" મોજૂદ નથી.",
+ "renameusererrorexists": "આ સભ્ય \"<nowiki>$1</nowiki>\" પહેલેથી હાજર છે.",
+ "renameusererrorinvalid": "સભ્યનામ \"<nowiki>$1</nowiki>\" અયોગ્ય છે.",
+ "renameuser-error-request": "તમારી અરજી પ્રાપ્ત કરતાં કાંઈ ત્રુટી થઈ\nમહેરબાની કરી ફરી પ્રયત્ન કરશો",
+ "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 પર ન લઈ જઈ શકાયું",
+ "log-name-renameuser": "સભ્ય નામફેરનો લોગ",
+ "renameuser-move-log": "સભ્ય \"[[User:$1|$1]]\" થી \"[[User:$2|$2]]\" નામ બદલતી વખતે આપમેળે પાનું ખસેડ્યું",
+ "action-renameuser": "સભ્યોનાં નામ બદલો",
+ "right-renameuser": "સભ્યોના નામ બદલો",
+ "renameuser-renamed-notice": "આ સભ્યનું નામ પરિવર્તન થયું છે.\nનામ પરિવર્તન લોગ તમારા સંદર્ભ માટે અહીં આપેલ છે"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/he.json b/www/wiki/extensions/Renameuser/i18n/he.json
new file mode 100644
index 00000000..3ae76621
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/he.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amire80",
+ "Guycn2",
+ "Ofekalef",
+ "Rotem Liss",
+ "Rotemliss",
+ "YaronSh",
+ "ערן"
+ ]
+ },
+ "renameuser": "שינוי שם משתמש",
+ "renameuser-linkoncontribs": "שינוי שם משתמש",
+ "renameuser-linkoncontribs-text": "שינוי שם המשתמש הזה",
+ "renameuser-desc": "הוספת [[Special:RenameUser|דף מיוחד]] לשינוי שם משתמש (דרושה הרשאת ''renameuser'')",
+ "renameuserold": "שם משתמש נוכחי:",
+ "renameusernew": "שם משתמש חדש:",
+ "renameuserreason": "סיבה:",
+ "renameusermove": "העברת דפי המשתמש והשיחה (כולל דפי המשנה שלהם) לשם החדש",
+ "renameusersuppress": "לא ליצור הפניות לשם החדש",
+ "renameuserreserve": "חסימת שם המשתמש הישן לשימוש נוסף",
+ "renameuserwarnings": "אזהרות:",
+ "renameuserconfirm": "כן, לשנות את שם המשתמש",
+ "renameusersubmit": "שינוי שם משתמש",
+ "renameuser-submit-blocklog": "הצגת יומן החסימות של המשתמש",
+ "renameusererrordoesnotexist": "המשתמש \"<nowiki>$1</nowiki>\" אינו קיים.",
+ "renameusererrorexists": "{{GENDER:$1|המשתמש|המשתמשת}} \"<nowiki>$1</nowiki>\" כבר {{GENDER:$1|קיים|קיימת}}.",
+ "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.",
+ "log-name-renameuser": "יומן שינויי שמות משתמש",
+ "log-description-renameuser": "זהו יומן השינויים בשמות המשתמשים.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|שינה|שינתה}} את שם המשתמש $4 &rlm;({{PLURAL:$6|עריכה אחת|$6 עריכות}}) לשם {{GENDER:$7|$5}}&rlm;",
+ "logentry-renameuser-renameuser-legacier": "$1 {{GENDER:$2|שינה|שינתה}} את שם המשתמש $4 ל{{GRAMMAR:תחילית|$5}}",
+ "renameuser-move-log": "העברה אוטומטית בעקבות שינוי שם המשתמש \"[[User:$1|$1]]\" ל־\"[[User:$2|$2]]\"",
+ "action-renameuser": "לשנות שמות משתמשים",
+ "right-renameuser": "שינוי שמות משתמשים",
+ "renameuser-renamed-notice": "שם המשתמש הזה שוּנה.\nיומן שינויי שמות המשתמש מוצג להלן."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/hi.json b/www/wiki/extensions/Renameuser/i18n/hi.json
new file mode 100644
index 00000000..9b3ee62c
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/hi.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ansumang",
+ "Kaustubh",
+ "Siddhartha Ghai",
+ "Sfic"
+ ]
+ },
+ "renameuser": "सदस्यनाम बदलें",
+ "renameuser-linkoncontribs": "सदस्यनाम बदलें",
+ "renameuser-linkoncontribs-text": "इस सदस्य का नाम बदलें",
+ "renameuser-desc": "सदस्यनाम बदलने के लिए एक [[Special:RenameUser|विशेष पृष्ठ]] जोड़ता है (''renameuser'' अधिकार आवश्यक)",
+ "renameuserold": "सद्य सदस्यनाम:",
+ "renameusernew": "नया सदस्यनाम:",
+ "renameuserreason": "कारण:",
+ "renameusermove": "सदस्य पृष्ठ और वार्ता पृष्ठ (और उनके उपपृष्ठ) नये नाम पर स्थानांतरित करें",
+ "renameusersuppress": "नए नाम को अनुप्रेषित ना करें",
+ "renameuserreserve": "पुरान सदस्यनाम भविष्य में प्रयोग से अवरोधित करें",
+ "renameuserwarnings": "चेतावनी:",
+ "renameuserconfirm": "हाँ, सदस्य का नाम बदलें",
+ "renameusersubmit": "जमा करें",
+ "renameuser-submit-blocklog": "सदस्य का ब्लॉक लॉग दिखाएँ",
+ "renameusererrordoesnotexist": "सदस्य \"<nowiki>$1</nowiki>\" मौजूद नहीं है।",
+ "renameusererrorexists": "सदस्य \"<nowiki>$1</nowiki>\" पहले से मौजूद है।",
+ "renameusererrorinvalid": "सदस्यनाम \"<nowiki>$1</nowiki>\" अमान्य है।",
+ "renameuser-error-request": "अनुरोध पाने में समस्या आई है।\nकृपया वापिस जाकर पुनः यत्न करें।",
+ "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 नहीं किया जा सका।",
+ "log-name-renameuser": "सदस्यनाम बदलाव लॉग",
+ "log-description-renameuser": "यह सदस्य नाम में बदलावों का लॉग है।",
+ "logentry-renameuser-renameuser": "$1 ने सदस्य $4 ({{PLURAL:$6|$6 सम्पादन}}) का नाम {{GENDER:$2|बदल}} कर $5 कर दिया",
+ "logentry-renameuser-renameuser-legacier": "$1 ने सदस्य $4 का नाम बदल कर {{GENDER:$7|$5}} कर दिया",
+ "renameuser-move-log": "{{GENDER:$2|सदस्य}} \"[[User:$1|$1]]\" का नाम \"[[User:$2|$2]]\" करते समय पृष्ठ स्वचालित रूप से स्थानांतरित कर दिया गया",
+ "action-renameuser": "सदस्यों के नाम बदलने",
+ "right-renameuser": "सदस्यों के नाम बदलें",
+ "renameuser-renamed-notice": "इस सदस्य का नाम बदल दिया गया है।\nसंदर्भ के लिए नीचे नाम बदलने का लॉग है।"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/hif-latn.json b/www/wiki/extensions/Renameuser/i18n/hif-latn.json
new file mode 100644
index 00000000..0acdd7df
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/hif-latn.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Thakurji"
+ ]
+ },
+ "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.\nMeharbani 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.",
+ "log-name-renameuser": "Sadasya ke naam badle ke log",
+ "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"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/hr.json b/www/wiki/extensions/Renameuser/i18n/hr.json
new file mode 100644
index 00000000..039c3380
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/hr.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dalibor Bosits",
+ "Dnik",
+ "Ex13",
+ "Roberta F.",
+ "SpeedyGonsales",
+ "Tivek",
+ "MaGa",
+ "Bugoslav"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Prikaži suradnikovu ili suradničinu evidenciju blokiranja",
+ "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.",
+ "log-name-renameuser": "Evidencija preimenovanja suradnika",
+ "log-description-renameuser": "Ovo je evidencija preimenovanja suradničkih imena",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|preimenovao|preimenovala}} je {{GENDER:$7|suradnika|suradnicu}} $4 ({{PLURAL:$6|$6 uređivanje|$6 uređivanja}}) u {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 {{GENDER:$2|preimenovao|preimenovala}} je {{GENDER:$7|suradnika|suradnicu}} $4 u {{GENDER:$7|$5}}",
+ "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.\nEvidencija preimenovanja suradnika je prikazana ispod kao obavijest."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/hsb.json b/www/wiki/extensions/Renameuser/i18n/hsb.json
new file mode 100644
index 00000000..424a8916
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/hsb.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dundak",
+ "Michawiki"
+ ]
+ },
+ "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:",
+ "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ć",
+ "renameuser-submit-blocklog": "Blokowanski protokol za wužiwarja pokazać",
+ "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ć.",
+ "log-name-renameuser": "Protokol přemjenowanja wužiwarjow",
+ "log-description-renameuser": "To je protokol změnow wužiwarskich mjenow.",
+ "logentry-renameuser-renameuser": "$1 je wužiwarja $4 ({{PLURAL:$6|$6 změna|$6 změnje|$6 změny|$6 změnow}}) do $5 {{GENDER:$2|přemjenował|přemjenował}}",
+ "logentry-renameuser-renameuser-legacier": "$1 je wužiwarja $4 do $5 přemjenował",
+ "renameuser-move-log": "Přez přemjenowanje wužiwarja „[[User:$1|$1]]“ na „[[User:$2|$2]]“ awtomatisce přesunjena strona.",
+ "action-renameuser": "wužiwarjow přemjenować",
+ "right-renameuser": "Wužiwarjow přemjenować",
+ "renameuser-renamed-notice": "Tutón wužiwar je so přemjenował.\nProtokol přemjenowanjow je deleka jako referenca podaty."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/hu.json b/www/wiki/extensions/Renameuser/i18n/hu.json
new file mode 100644
index 00000000..df38ce3b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/hu.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Adam78",
+ "Dani",
+ "Dj",
+ "Hunyadym",
+ "Tgr"
+ ]
+ },
+ "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": "Ok:",
+ "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",
+ "log-name-renameuser": "Felhasználóátnevezési napló",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|átnevezte}} $4 szerkesztőt ({{PLURAL:$6|egy|$6}} szerkesztés) erre: $5",
+ "logentry-renameuser-renameuser-legacier": "$1 átnevezte $4 szerkesztőt erre: $5",
+ "renameuser-move-log": "„[[User:$1|$1]]” „[[User:$2|$2]]” névre való átnevezése közben automatikusan átnevezett oldal",
+ "action-renameuser": "felhasználó átnevezése",
+ "right-renameuser": "felhasználók átnevezése",
+ "renameuser-renamed-notice": "Ezt a szerkesztőt átnevezték.\nAlább látható a szerkesztőátnevezési napló tájékoztatásként."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ia.json b/www/wiki/extensions/Renameuser/i18n/ia.json
new file mode 100644
index 00000000..bf6907aa
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ia.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "McDutchie"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Monstrar registro de blocadas pro le usator",
+ "renameusererrordoesnotexist": "Le usator \"<nowiki>$1</nowiki>\" non existe.",
+ "renameusererrorexists": "Le {{GENDER:$1|usator}} \"\"<nowiki>$1</nowiki>\"\" jam existe.",
+ "renameusererrorinvalid": "Le nomine de usator \"<nowiki>$1</nowiki>\" es invalide.",
+ "renameuser-error-request": "Il habeva un problema con le reception del requesta.\nPer favor retorna e reproba.",
+ "renameuser-error-same-user": "Tu non pote renominar un usator al mesme nomine.",
+ "renameusersuccess": "Le {{GENDER:$2|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.",
+ "log-name-renameuser": "Registro de renominationes de usatores",
+ "log-description-renameuser": "Isto es un registro de cambiamentos de nomines de usator.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|renominava}} le usator $4 ({{PLURAL:$6|$6 modification|$6 modificationes}}) a {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 renominava le usator $4 a {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Le pagina ha essite automaticamente renominate con le renomination del {{GENDER:$2|usator}} \"[[User:$1|$1]]\" a \"[[User:$2|$2]]\"",
+ "action-renameuser": "renominar usatores",
+ "right-renameuser": "Renominar usatores",
+ "renameuser-renamed-notice": "Iste usator ha essite renominate.\nLe registro de renominationes es providite ci infra pro referentia."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/id.json b/www/wiki/extensions/Renameuser/i18n/id.json
new file mode 100644
index 00000000..0a447bb5
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/id.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bennylin",
+ "Farras",
+ "Irwangatot",
+ "IvanLanin",
+ "Rex"
+ ]
+ },
+ "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",
+ "renameuser-submit-blocklog": "Tampilkan catatan pemblokiran pengguna",
+ "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.",
+ "log-name-renameuser": "Catatan penggantian nama pengguna",
+ "log-description-renameuser": "Di bawah ini adalah log penggantian nama pengguna",
+ "renameuser-move-log": "Secara otomatis memindahkan halaman sewaktu mengganti nama pengguna \"[[User:$1|$1]]\" menjadi \"[[User:$2|$2]]\"",
+ "action-renameuser": "ganti nama pengguna",
+ "right-renameuser": "Mengganti nama pengguna",
+ "renameuser-renamed-notice": "Penguna ini telah berganti nama.\nLog pergantian nama disediakan di bawah untuk referensi."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ig.json b/www/wiki/extensions/Renameuser/i18n/ig.json
new file mode 100644
index 00000000..15826dd4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ig.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ukabia"
+ ]
+ },
+ "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."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ilo.json b/www/wiki/extensions/Renameuser/i18n/ilo.json
new file mode 100644
index 00000000..addc5717
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ilo.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Lam-ang"
+ ]
+ },
+ "renameuser": "Inaganan manen ti agar-aramat",
+ "renameuser-linkoncontribs": "inaganan manen ti agar-aramat",
+ "renameuser-linkoncontribs-text": "Inaganan manen daytoy nga agar-aramat",
+ "renameuser-desc": "Agnayon ti [[Special:RenameUser|espesial a panid]] tapno inaganan manen ti agar-aramat (masapul ti ''inaganan manen ti agar-aramat'' a karbengan)",
+ "renameuserold": "Agdama a nagan ti agar-aramat:",
+ "renameusernew": "Baro a nagan ti agar-aramat:",
+ "renameuserreason": "Rason:",
+ "renameusermove": "Iyalis ti agar-aramat ket tungtungan a pampanid (ken dagiti ap-apo a panid) iti baro a nagan",
+ "renameusersuppress": "Saan nga agpartuat kadagiti baw-ing idiay baro a nagan",
+ "renameuserreserve": "Serraan ti daan a nagan ti agar-aramat manipud iti masakbayan a panagusar.",
+ "renameuserwarnings": "Dagiti ballaag:",
+ "renameuserconfirm": "Wen, inaganan manen ti agar-aramat",
+ "renameusersubmit": "Ited",
+ "renameuser-submit-blocklog": "Ipakita ti panakaserra a listaan para iti agar-aramat",
+ "renameusererrordoesnotexist": "Ti agar-aramat \"<nowiki>$1</nowiki>\" ket awan.",
+ "renameusererrorexists": "Ti agar-aramat \"<nowiki>$1</nowiki>\" ket addan.",
+ "renameusererrorinvalid": "Ti nagan ti agar-aramat \"<nowiki>$1</nowiki>\" ket imbalido.",
+ "renameuser-error-request": "Adda pakirut ti panakaawat ti kiddaw.\nPangngaasi nga agsubli ken padasen manen.",
+ "renameuser-error-same-user": "Saanmo a mainaganan manen ti agar-aramat a kas idi.",
+ "renameusersuccess": "Ti agar-aramat \"<nowiki>$1</nowiki>\" ket nainaganan manen ti \"<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 naiyalisen idiay $2.",
+ "renameuser-page-unmoved": "Ti panid $1 ket saan a maiyalis idiay $2.",
+ "log-name-renameuser": "Listaan ti pananginagan manen ti agar-aramat",
+ "log-description-renameuser": "Daytoy ket listaan kadagiti panagbalbaliw kadagiti nagan ti agar-aramat.",
+ "logentry-renameuser-renameuser": "{{GENDER:$2|Ninaganan manen}} ni $1 ni agar-aramat $4 ({{PLURAL:$6|$6 nga inurnos|$6 nga inur-urnos}}) iti $5",
+ "logentry-renameuser-renameuser-legacier": "Ninaganan manen ni $1 ni agar-aramat $4 iti $5",
+ "renameuser-move-log": "Automatiko nga iyalis ti panid bayat a nagnaganan manen ti agar-aramat \"[[User:$1|$1]]\" iti \"[[User:$2|$2]]\"",
+ "action-renameuser": "inaganan manen dagiti agar-aramat",
+ "right-renameuser": "Inaganan manen dagiti agar-aramat",
+ "renameuser-renamed-notice": "Nanaganen manen daytoy nga agar-aramat.\nTi listaan ti panaginaganan manen ket naited dita baba para iti reperensia."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/io.json b/www/wiki/extensions/Renameuser/i18n/io.json
new file mode 100644
index 00000000..a42eccb7
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/io.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Wyvernoid",
+ "Robin van der Vliet",
+ "Lakaoso",
+ "Joao Xavier"
+ ]
+ },
+ "renameuser": "Rinomar uzero",
+ "renameuserold": "Aktuala uzantonomo:",
+ "renameusernew": "Nova uzantonomo:",
+ "renameuserwarnings": "Averti:",
+ "renameuserconfirm": "Yes, rinomez l'uzanto",
+ "renameusererrordoesnotexist": "L'uzanto \"<nowiki>$1</nowiki>\" ne existas.",
+ "renameusererrorexists": "La {{GENDER:$1|uzero}} \"<nowiki>$1</nowiki>\" ja existas.",
+ "renameusererrorinvalid": "L'uzantonomo \"<nowiki>$1</nowiki>\" esas ne-valida.",
+ "renameuser-error-same-user": "Vu ne povas renomar uzero ad la sama nomo.",
+ "renameusersuccess": "La {{GENDER:$2|uzero}} \"<nowiki>$1</nowiki>\" rinomesis kom \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-moved": "La pagino $1 movesis a $2.",
+ "renameuser-page-unmoved": "On ne povis movar la pagino $1 a $2.",
+ "log-name-renameuser": "Registro di uzero-rinomizuri",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|rinomizis}} uzero $4 ({{PLURAL:$6|$6 redakto|$6 redakti}}) kom {{GENDER:$7|$5}}",
+ "right-renameuser": "Rinomar uzanti"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/is.json b/www/wiki/extensions/Renameuser/i18n/is.json
new file mode 100644
index 00000000..3bb00bc1
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/is.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cessator",
+ "S.Örvarr.S",
+ "Snævar",
+ "Spacebirdy",
+ "Ævar Arnfjörð Bjarmason",
+ "לערי ריינהארט"
+ ]
+ },
+ "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",
+ "renameuser-submit-blocklog": "Sýna bönnunar skrá notandans",
+ "renameusererrordoesnotexist": "Notandinn „<nowiki>$1</nowiki>“ er ekki til",
+ "renameusererrorexists": "{{GENDER:$1|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.\nVinsamlegast 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 {{GENDER:$2|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.",
+ "log-name-renameuser": "Skrá yfir nafnabreytingar notenda",
+ "log-description-renameuser": "Þetta er skrá yfir breytingar á notendanöfnum.",
+ "logentry-renameuser-renameuser": "$1 breytti {{GENDER:$2|notendanafni}} $4 ({{PLURAL:$6|$6 breyting|$6 breytingar}}) í {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Færði síðuna sjálfvirkt þegar {{GENDER:$2|notendanafni}} \"[[User:$1|$1]]\" var breytt í \"[[User:$2|$2]]\"",
+ "action-renameuser": "endurnefna notendur",
+ "right-renameuser": "Breyta notandanafni notenda",
+ "renameuser-renamed-notice": "Nafni notandans hefur verið breytt. \nSíðasta færsla notandans úr skrá yfir nafnabreytingar notenda er sýnd hér fyrir neðan til skýringar:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/it.json b/www/wiki/extensions/Renameuser/i18n/it.json
new file mode 100644
index 00000000..e17000d6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/it.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ ".anaconda",
+ "Beta16",
+ "BrokenArrow",
+ "Darth Kule",
+ "Gianfranco",
+ "HalphaZ",
+ "Melos",
+ "Nemo bis"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Mostra registro dei blocchi per l'utente",
+ "renameusererrordoesnotexist": "L'utente \"<nowiki>$1</nowiki>\" non esiste.",
+ "renameusererrorexists": "{{GENDER:$1|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>\" è {{GENDER:$2|stato rinominato|stata rinominata}} 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": "La pagina $1 non può essere spostata a $2.",
+ "log-name-renameuser": "Utenti rinominati",
+ "log-description-renameuser": "Di seguito sono elencate le modifiche ai nomi utente.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|ha rinominato}} l'utente $4 (con {{PLURAL:$6|$6 contributo|$6 contributi}}) in {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 ha rinominato l'utente $4 in {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Pagina spostata automaticamente durante la rinomina {{GENDER:$2|dell'utente}} \"[[User:$1|$1]]\" a \"[[User:$2|$2]]\"",
+ "action-renameuser": "rinominare gli utenti",
+ "right-renameuser": "Rinomina gli utenti",
+ "renameuser-renamed-notice": "Questo utente è stato rinominato.\nIl registro delle rinomine è riportato di seguito per informazione."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ja.json b/www/wiki/extensions/Renameuser/i18n/ja.json
new file mode 100644
index 00000000..89b972c3
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ja.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Aotake",
+ "Broad-Sky",
+ "Fryed-peach",
+ "Hosiryuhosi",
+ "Marine-Blue",
+ "Ohgi",
+ "Penn Station",
+ "Shirayuki",
+ "Suisui",
+ "青子守歌",
+ "Otokoume"
+ ]
+ },
+ "renameuser": "利用者名の変更",
+ "renameuser-linkoncontribs": "利用者名変更",
+ "renameuser-linkoncontribs-text": "この利用者の名前を変更",
+ "renameuser-desc": "利用者名変更のための[[Special:RenameUser|特別ページ]]を追加する (「{{int:right-renameuser}}」できる権限 ''renameuser'' が必要)",
+ "renameuserold": "現在の利用者名:",
+ "renameusernew": "新しい利用者名:",
+ "renameuserreason": "理由:",
+ "renameusermove": "利用者ページと会話ページ (およびそれらの下位ページ) を新しい名前に移動",
+ "renameusersuppress": "新しい名前へのリダイレクトを作成しない",
+ "renameuserreserve": "旧利用者名の今後の使用をブロック",
+ "renameuserwarnings": "警告:",
+ "renameuserconfirm": "はい、利用者名を変更します",
+ "renameusersubmit": "変更",
+ "renameuser-submit-blocklog": "利用者のブロック記録を表示",
+ "renameusererrordoesnotexist": "利用者「<nowiki>$1</nowiki>」は存在しません。",
+ "renameusererrorexists": "{{GENDER:$1|利用者}}「<nowiki>$1</nowiki>」は既に存在しています。",
+ "renameusererrorinvalid": "利用者名「<nowiki>$1</nowiki>」は無効な値です。",
+ "renameuser-error-request": "要求を正常に受け付けることができませんでした。\n戻ってから再度試してください。",
+ "renameuser-error-same-user": "現在と同じ利用者名には変更できません。",
+ "renameusersuccess": "{{GENDER:$2|利用者}}名を「<nowiki>$1</nowiki>」から「<nowiki>$2</nowiki>」に変更しました。",
+ "renameuser-page-exists": "$1 が既に存在するため、自動での上書きはできませんでした。",
+ "renameuser-page-moved": "$1 を $2 に移動しました。",
+ "renameuser-page-unmoved": "$1 を $2 に移動できませんでした。",
+ "log-name-renameuser": "利用者名変更記録",
+ "log-description-renameuser": "これは、利用者名変更の記録です。",
+ "logentry-renameuser-renameuser": "$1 が $4 ({{PLURAL:$6|$6 編集}}) の利用者名を {{GENDER:$7|$5}} に{{GENDER:$2|変更しました}}",
+ "logentry-renameuser-renameuser-legacier": "$1 が $4 の利用者名を {{GENDER:$7|$5}} に変更しました",
+ "renameuser-move-log": "ページを自動的に移動しました ({{GENDER:$2|利用者}}名変更のため:「[[User:$1|$1]]」から「[[User:$2|$2]]」)",
+ "action-renameuser": "利用者名の変更",
+ "right-renameuser": "利用者名を変更",
+ "renameuser-renamed-notice": "この利用者は利用者名を変更しました。\n参考のため、利用者名変更記録を以下に示します。"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/jut.json b/www/wiki/extensions/Renameuser/i18n/jut.json
new file mode 100644
index 00000000..ae4945e4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/jut.json
@@ -0,0 +1,27 @@
+{
+ "@metadata": {
+ "authors": [
+ "Huslåke",
+ "Ælsån",
+ "Jyllanj"
+ ]
+ },
+ "renameuser": "Omdøb bruge",
+ "renameuser-desc": "Lawe en [[Special:RenameUser|specialsiid]] te å omdøb i bruge (kräwe rettiheden ''renameuser'')",
+ "renameuserold": "Nuwærenje brugenaun:",
+ "renameusernew": "Ny brugenaun:",
+ "renameuserreason": "Før hvat dett'er dun:",
+ "renameusermove": "Flytt bruge- å diskusjonsside (å dæes unjeside) te ny naun",
+ "renameusersubmit": "Omdøb",
+ "renameusererrordoesnotexist": "Brugari \"<nowiki>$1</nowiki>\" finjs ett.",
+ "renameusererrorexists": "Brugari \"<nowiki>$1</nowiki>\" finjs ållried.",
+ "renameusererrorinvalid": "Brugenaune \"<nowiki>$1</nowiki>\" ä udjylji.",
+ "renameuser-error-request": "Dä war e problem mä å modta forspöyrgsle.\nGo wenlist tebag å forsyeg idjen.",
+ "renameuser-error-same-user": "Du kan ett omdøb i bruge te sam naune som förr.",
+ "renameusersuccess": "Brugari \"<nowiki>$1</nowiki>\" ä bløwen omdøbtj te \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "Siden $1 eksistiire ållried å kan ett automatisk öweskriiws.",
+ "renameuser-page-moved": "Siden $1 ä flytten te $2.",
+ "renameuser-page-unmoved": "Siden $1 ku ett flytts te $2.",
+ "log-name-renameuser": "Brugeomdøbnengslogg",
+ "renameuser-move-log": "Siid automatisk flytten we omdøbneng å bruge \"[[User:$1|$1]]\" te \"[[User:$2|$2]]\""
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/jv.json b/www/wiki/extensions/Renameuser/i18n/jv.json
new file mode 100644
index 00000000..aaf2f3a2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/jv.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Meursault2004",
+ "NoiX180",
+ "Pras"
+ ]
+ },
+ "renameuser": "Ganti jeneng panganggo",
+ "renameuser-linkoncontribs": "ganti jeneng panganggo",
+ "renameuser-linkoncontribs-text": "Ganti jenengé panganggo iki",
+ "renameuser-desc": "Ngganti jeneng panganggo (perlu hak aksès ''renameuser'')",
+ "renameuserold": "Jeneng panganggo saiki:",
+ "renameusernew": "Jeneng panganggo anyar:",
+ "renameuserreason": "Alesan:",
+ "renameusermove": "Mindhah kaca panganggo lan kaca dhiskusiné (sarta subkaca-kacané) menyang jeneng anyar",
+ "renameusersuppress": "Aja gawé pangalihan kanggo jeneng anyar",
+ "renameuserreserve": "Blokir utawa cadhangaké jeneng panganggo lawas supaya ora bisa dianggo manèh",
+ "renameuserwarnings": "Pélik:",
+ "renameuserconfirm": "Ya, ganti jeneng panganggo kasebut",
+ "renameusersubmit": "Kirim",
+ "renameuser-submit-blocklog": "Tuduhaké log blokir kanggo panganggo",
+ "renameusererrordoesnotexist": "Panganggo \"<nowiki>$1</nowiki>\" ora ana.",
+ "renameusererrorexists": "{{GENDER:$1|Panganggo}} \"<nowiki>$1</nowiki>\" wis ana.",
+ "renameusererrorinvalid": "Jeneng panganggo \"<nowiki>$1</nowiki>\" ora absah",
+ "renameuser-error-request": "Ana masalah nalika nampa panyuwunan panjenengan.\nMangga balènana lan nyoba manèh.",
+ "renameuser-error-same-user": "Panjenengan ora bisa ngganti jeneng panganggo dadi kaya jeneng asalé.",
+ "renameusersuccess": "{{GENDER:$2|Panganggo}} \"<nowiki>$1</nowiki>\" wis ganti 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.",
+ "log-name-renameuser": "Log ganti jeneng panganggo",
+ "log-description-renameuser": "Iki log owah-owahan jeneng panganggo",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|ngganti jeneng}} panganggo $4 ({{PLURAL:$6|$6 besutan}}) dadi {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 ngganti jeneng panganggo $4 dadi {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Otomatis ngalih kaca nalika ngganti jeneng {{GENDER:$2|panganggo}} \"[[User:$1|$1]]\" dadi \"[[User:$2|$2]]\"",
+ "action-renameuser": "ganti jeneng panganggo",
+ "right-renameuser": "Ganti jeneng panganggo",
+ "renameuser-renamed-notice": "Panganggo iki wis diganti jenengé.\nLog ganti jeneng cumepak ing ngisor iki kanggo rujukan."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ka.json b/www/wiki/extensions/Renameuser/i18n/ka.json
new file mode 100644
index 00000000..ba8151b9
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ka.json
@@ -0,0 +1,43 @@
+{
+ "@metadata": {
+ "authors": [
+ "BRUTE",
+ "David1010",
+ "Dawid Deutschland",
+ "Malafaya",
+ "Nodar Kherkheulidze",
+ "Sopho"
+ ]
+ },
+ "renameuser": "მომხმარებლის სახელის გამოცვლა",
+ "renameuser-linkoncontribs": "მომხმარებლის სახელის გადარქმევა",
+ "renameuser-linkoncontribs-text": "ამ მომხმარებლის სახელის გადარქმევა",
+ "renameuser-desc": "ამატებს მომხმარებლების სახელის გადარქმევის [[Special:RenameUser|შესაძლებლობას]] (საჭიროა უფლება <code>renameuser</code>)",
+ "renameuserold": "ამჟამინდელი მომხმარებლის სახელი:",
+ "renameusernew": "ახალი მომხმარებლის სახელი:",
+ "renameuserreason": "მიზეზი:",
+ "renameusermove": "მომხმარებლისა და განხილვის გვერდების (და მათი დაქვემდებარებული გვერდების) გადატანა ახალ დასახელებაზე",
+ "renameusersuppress": "არ გადაამისამართოთ ახალ სახელზე",
+ "renameuserreserve": "ძველი მომხმარებლის სახელის სამომავლო გამოყენების აკრძალვა",
+ "renameuserwarnings": "გაფრთხილებები:",
+ "renameuserconfirm": "დიახ, მსურს სახელის გადარქმევა",
+ "renameusersubmit": "გაგზავნა",
+ "renameuser-submit-blocklog": "მომხმარებლის დაბლოკვის ჟურნალის ჩვენება",
+ "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-ზე.",
+ "log-name-renameuser": "მომხმარებლის სახელის გადარქმევის რეგისტრაციის ჟურნალი",
+ "log-description-renameuser": "ეს არის ჟურნალი, სადაც აღრიცხულია მომხმარებლის სახელთა ცვლილებები.",
+ "logentry-renameuser-renameuser": "მომხმარებელმა $1 {{GENDER:$2|შეუცვალა სახელი}} მომხმარებელს $4 ({{PLURAL:$6|$6 რედაქტირება|$6 რედაქტირება}}) სახელით $5",
+ "logentry-renameuser-renameuser-legacier": "მომხმარებელმა $1 შეუცვალა სახელი მომხმარებელს $4 სახელით $5",
+ "renameuser-move-log": "ავტომატურად იქნა გადატანილი გვერდი მომხმარებლის „[[User:$1|$1]]“ სახელის შეცვლისას „[[User:$2|$2]]-ით“",
+ "action-renameuser": "მომხმარებლების სახელის გადარქმევა",
+ "right-renameuser": "მომხმარებლების სახელის გადარქმევა",
+ "renameuser-renamed-notice": "ამ მომხმარებელს სახელი გადაერქვა.\nქვემოთ მოყვანილია სახელის გადარქმევის ჟურნალი."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/kk-arab.json b/www/wiki/extensions/Renameuser/i18n/kk-arab.json
new file mode 100644
index 00000000..49f5327d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/kk-arab.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": [],
+ "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 دەگەن بەتكە جىلجىتىلمادى.",
+ "log-name-renameuser": "قاتىسۋشىنى قايتا اتاۋ جۋرنالى",
+ "renameuser-move-log": "«[[User:$1|$1]]» دەگەن قاتىسۋشى اتىن «[[User:$2|$2]]» دەگەنگە اۋىسقاندا بەت وزدىك تۇردە جىلجىتىلدى"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/kk-cyrl.json b/www/wiki/extensions/Renameuser/i18n/kk-cyrl.json
new file mode 100644
index 00000000..34c2ae83
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/kk-cyrl.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Arystanbek",
+ "Нұрлан Рахымжанов"
+ ]
+ },
+ "renameuser": "Қатысушы есімін өзгерту",
+ "renameuser-linkoncontribs": "қатысушы есімін өзгерту",
+ "renameuser-linkoncontribs-text": "Бұл қатысушының есімін өзгерту",
+ "renameuser-desc": "Қатысушы есімін өзгерту [[Special:RenameUser|мүмкіндігін]] қосады (<code>renameuser</code> құқығын қажет етеді)",
+ "renameuserold": "Қазіргі қатысушы аты:",
+ "renameusernew": "Жаңа қатысушы аты:",
+ "renameuserreason": "Себебі:",
+ "renameusermove": "Қатысушының жеке және талқылау беттерін (және де олардың төменгі беттерін) жаңа атауға жылжыту",
+ "renameusersuppress": "Жаңа атауына бағыттау бетін бастамау",
+ "renameuserreserve": "Бұрынғы қатысушы есімін келешекте қолдана алмайтындай ету",
+ "renameuserwarnings": "Ескертулер:",
+ "renameuserconfirm": "Иә, қатысушы есімін өзгерт",
+ "renameusersubmit": "Жіберу",
+ "renameuser-submit-blocklog": "Қатысушының бұғатталу журналын көрсету",
+ "renameusererrordoesnotexist": "«<nowiki>$1</nowiki>» деген қатысушы жоқ",
+ "renameusererrorexists": "«<nowiki>$1</nowiki>» деген қатысушы бар түге",
+ "renameusererrorinvalid": "«<nowiki>$1</nowiki>» қатысушы аты жарамсыз",
+ "renameuser-error-request": "Сұранымды жіберуде мәселе шықты.\nАртқа қайтып қайта байқап көріңіз.",
+ "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 деген бетке жылжытылмады.",
+ "log-name-renameuser": "Қатысушыны есімін өзгеру журналы",
+ "log-description-renameuser": "Бұл қатысушы есімдерін өзгерту журналы.",
+ "logentry-renameuser-renameuser": "$1 қатысушы есімін $4 дегеннен ({{PLURAL:$6|$6 өңдеме жасаған|$6 өңдеме жасаған}}) $5 дегенге {{GENDER:$2|өзгертті}}",
+ "logentry-renameuser-renameuser-legacier": "$1 қатысушы есімін $4 дегеннен $5 дегенге өзгертті",
+ "renameuser-move-log": "«[[User:$1|$1]]» деген қатысушы атын «[[User:$2|$2]]» дегенге өзгерткенде бет өздігінен жылжытылды",
+ "action-renameuser": "қатысушылардың есімін өзгерту",
+ "right-renameuser": "Қатысушылардың есімін өзгерту",
+ "renameuser-renamed-notice": "Бұл қатысушының есімі өзгертілді.\nДерек үшін есім өзгерту журналы төменде көрсетілген."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/kk-latn.json b/www/wiki/extensions/Renameuser/i18n/kk-latn.json
new file mode 100644
index 00000000..375d9c97
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/kk-latn.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": [],
+ "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ı.",
+ "log-name-renameuser": "Qatıswşını qaýta ataw jwrnalı",
+ "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ı"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/km.json b/www/wiki/extensions/Renameuser/i18n/km.json
new file mode 100644
index 00000000..4a5ca5ff
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/km.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chhorran",
+ "Lovekhmer",
+ "Thearith",
+ "គីមស៊្រុន"
+ ]
+ },
+ "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បានទេ។",
+ "log-name-renameuser": "កំនត់ហេតុនៃការប្តូរឈ្មោះអ្នកប្រើប្រាស់",
+ "renameuser-move-log": "បានប្តូរទីតាំងទំព័រដោយស្វ័យប្រវត្តិក្នុងខណៈពេលប្តូរឈ្មោះអ្នកប្រើប្រាស់ \"[[User:$1|$1]]\" ទៅ \"[[User:$2|$2]]\"",
+ "right-renameuser": "ប្ដូរឈ្មោះអ្នកប្រើប្រាស់នានា",
+ "renameuser-renamed-notice": "ឈ្មោះរបស់អ្នកប្រើប្រាស់នេះត្រូវបានប្ដូររួចហើយ។\n\nខាងក្រោមនេះជាកំណត់ហេតុនៃការប្ដូរឈ្មោះ។"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/kn.json b/www/wiki/extensions/Renameuser/i18n/kn.json
new file mode 100644
index 00000000..b475285c
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/kn.json
@@ -0,0 +1,17 @@
+{
+ "@metadata": {
+ "authors": [
+ "Nayvik",
+ "Shushruth",
+ "VASANTH S.N."
+ ]
+ },
+ "renameuser": "ಸದಸ್ಯರನ್ನು ಮರುನಾಮಕರಣ ಮಾಡಿ",
+ "renameuser-linkoncontribs": "ಸದಸ್ಯರನ್ನು ಮರುನಾಮಕರಣ ಮಾಡಿ",
+ "renameuserold": "ಪ್ರಸ್ತುತ ಹೆಸರು:",
+ "renameuserreason": "ಕಾರಣ:",
+ "renameuserwarnings": "ಎಚ್ಚರಿಕೆಗಳು:",
+ "renameusersubmit": "ಸಲ್ಲಿಸಿ",
+ "action-renameuser": "ಸದಸ್ಯರನ್ನು ಮರುನಾಮಕರಣ ಮಾಡಿ",
+ "right-renameuser": "ಸದಸ್ಯರನ್ನು ಮರುನಾಮಕರಣ ಮಾಡಿ"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ko.json b/www/wiki/extensions/Renameuser/i18n/ko.json
new file mode 100644
index 00000000..435b463e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ko.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Albamhandae",
+ "Ficell",
+ "Klutzy",
+ "Kwj2772",
+ "ToePeu",
+ "아라",
+ "Revi"
+ ]
+ },
+ "renameuser": "사용자 이름 바꾸기",
+ "renameuser-linkoncontribs": "이름 바꾸기",
+ "renameuser-linkoncontribs-text": "이 사용자의 계정 이름을 바꿉니다",
+ "renameuser-desc": "사용자 이름을 바꾸기 위한 [[Special:RenameUser|특수 문서]]를 추가합니다 ('''renameuser''' 권한 필요)",
+ "renameuserold": "기존 사용자 이름:",
+ "renameusernew": "새 사용자 이름:",
+ "renameuserreason": "이유:",
+ "renameusermove": "사용자 문서와 토론 문서 (그리고 그 하위 문서)를 새 사용자 이름으로 이동",
+ "renameusersuppress": "새 이름으로 넘겨주기를 만들지 않기",
+ "renameuserreserve": "나중에 이전의 이름이 사용되지 않도록 차단하기",
+ "renameuserwarnings": "경고:",
+ "renameuserconfirm": "예, 이름을 바꿉니다.",
+ "renameusersubmit": "바꾸기",
+ "renameuser-submit-blocklog": "사용자 차단 기록 보이기",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" 사용자가 존재하지 않습니다.",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" {{GENDER:$1|사용자}}가 이미 존재합니다.",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" 사용자 이름이 잘못되었습니다.",
+ "renameuser-error-request": "요청을 정상적으로 전송하지 못했습니다.\n뒤로 가서 다시 시도하세요.",
+ "renameuser-error-same-user": "이전의 이름과 같은 이름으로는 바꿀 수 없습니다.",
+ "renameusersuccess": "\"<nowiki>$1</nowiki>\" {{GENDER:$2|사용자}}를 \"<nowiki>$2</nowiki>\"(으)로 이름을 바꾸었습니다.",
+ "renameuser-page-exists": "$1 문서가 이미 존재하여 자동으로 이동하지 못했습니다.",
+ "renameuser-page-moved": "$1 문서를 $2 문서로 이동했습니다.",
+ "renameuser-page-unmoved": "$1 문서를 $2 문서로 이동하지 못했습니다.",
+ "log-name-renameuser": "사용자 이름 바꾸기 기록",
+ "log-description-renameuser": "사용자 이름을 바꾼 기록입니다.",
+ "logentry-renameuser-renameuser": "$1님이 $4 ({{PLURAL:$6|편집 $6회}}) 사용자의 이름을 {{GENDER:$7|$5}}(으)로 {{GENDER:$2|바꾸었습니다}}",
+ "logentry-renameuser-renameuser-legacier": "$1님이 $4 사용자의 이름을 {{GENDER:$7|$5}}(으)로 바꾸었습니다",
+ "renameuser-move-log": "\"[[User:$1|$1]]\" {{GENDER:$2|사용자}}의 이름을 \"[[User:$2|$2]]\"(으)로 바꿀 때 문서를 자동으로 이동했습니다",
+ "action-renameuser": "사용자 이름을 바꿀",
+ "right-renameuser": "사용자 이름 바꾸기",
+ "renameuser-renamed-notice": "이 사용자의 이름을 바꾸었습니다.\n참조를 위해 아래에 이름 바꾸기 기록을 제공합니다."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/krc.json b/www/wiki/extensions/Renameuser/i18n/krc.json
new file mode 100644
index 00000000..008f0414
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/krc.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iltever",
+ "Ernác"
+ ]
+ },
+ "renameuser": "Къошулуучуну атын ауушдур",
+ "renameuser-linkoncontribs": "къошулуучуну атын ауушдур",
+ "renameuser-linkoncontribs-text": "Бу къошулуучуну атын ауушдур",
+ "renameuser-desc": "Къошулуучуну атын ауушдуруу [[Special:RenameUser|мадарны]] къошады (<code>renameuser</code> эркинлик керек боллукъду)",
+ "renameuserold": "Бусагъатдагъы къошулуучу аты:",
+ "renameusernew": "Дангы къошулуучу аты:",
+ "renameuserreason": "Чурум:",
+ "renameusermove": "Дагъыда къошулуучу бетини, энчи сюзюуюню эм аланы тюббетлерини атларын ауушдур",
+ "renameusersuppress": "Джангы атха редиректле къурама",
+ "renameuserreserve": "Эски къошулуучу атны артда да хайырландырыр ючюн резервация эт",
+ "renameuserwarnings": "Эс бёлюгюз:",
+ "renameuserconfirm": "Хо, къошулуучуну атын ауушдур",
+ "renameusersubmit": "Тындыр",
+ "renameuser-submit-blocklog": "Къошулуучуну блок этилиу журналын кёргюз",
+ "renameusererrordoesnotexist": "«<nowiki>$1</nowiki>» ат бла къошулуучу регистрация этилмегенди.",
+ "renameusererrorexists": "«<nowiki>$1</nowiki>» ат бла къошулуучу алгъадан регистрация этилиб турады.",
+ "renameusererrorinvalid": "«<nowiki>$1</nowiki>» деген ат джарамагъан атды.",
+ "renameuser-error-request": "Сапаришни алыу бла тыйгъычла чыкъдыла.\nАртха къайтыгъыз да, джангыдан кёрюгюз.",
+ "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 деб ауушдурургъа болмайды.",
+ "log-name-renameuser": "Къошулуучуланы атларын ауушдуруу журнал",
+ "log-description-renameuser": "Бу, регистрация этилген къошулуучуланы атларыны ауушдурулгъанларыны журналыды.",
+ "logentry-renameuser-renameuser": "$1, $4 ({{PLURAL:$6|$6 тюрлендириую}}) къошулуучуну атын $5 деб {{GENDER:$2|ауушдурду}}",
+ "logentry-renameuser-renameuser-legacier": "$1, $4 къошулуучуна атын $5 деб ауушдурду",
+ "renameuser-move-log": "«[[User:$1|$1]]» тергеу джазыу «[[User:$2|$2]]» деб ауушдурулгъаны себебли автомат халда",
+ "action-renameuser": "къошулуучуланы атларын ауушдуруу",
+ "right-renameuser": "Къошулуучуланы атларын ауушдуруу",
+ "renameuser-renamed-notice": "Бу къошулуучуну аты ауушдурулду.\nТюбюрекде ат ауушдуруу журнал бериледи."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ksh.json b/www/wiki/extensions/Renameuser/i18n/ksh.json
new file mode 100644
index 00000000..94b5d5c2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ksh.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Purodha"
+ ]
+ },
+ "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 doh bruch mer et Rääsch „<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„Metmaacher Ömdäufe“\">renameuser</i>“ för.",
+ "renameuserold": "Dä ahle Metmaacher_Nahme",
+ "renameusernew": "Dä neuje Metmaacher_Nahme",
+ "renameuserreason": "Dä Jrond för et Ömdäufe:",
+ "renameusermove": "De Metmaachersigg met Klaaf- un Ungersigge op dä neue Metmaacher-Name ömstelle",
+ "renameusersuppress": "Donn kein Ömleidong 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!",
+ "renameuser-submit-blocklog": "Logbooch met Spärre för dä Metmaacher",
+ "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.\nBes esu joot un versöök et noch ens.",
+ "renameuser-error-same-user": "Do Tuppes! Der ahle un der neue Nahme es dersellve. Do brängk 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.",
+ "log-name-renameuser": "Logbohch vum Metmaacher-Ömdäufe",
+ "log-description-renameuser": "Dat es et Logbohch vun de ömjedäufte Metmaachere",
+ "logentry-renameuser-renameuser": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 Hät dä Metmaacher „$4“, dä {{PLURAL:$6|ein Änderong|$6 Änderonge|kein Änderonge}} aam Wikki jemaat hät, op „$5“ ömjedäuf.",
+ "logentry-renameuser-renameuser-legacier": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 Hät dä Metmaacher „$4“ op „$5“ ömjedäuf.",
+ "renameuser-move-log": "Di Sigg weet automatesch ömjenannt weil mer \n{{GENDER:$2|dä|dat|dä Metmaacher|de|dat}} „[[User:$1|$1]]“ op „[[User:$2|$2]]“ öm aam däufe sin.",
+ "action-renameuser": "Metmaacher ömzedäufe",
+ "right-renameuser": "Metmaacher ömdäufe",
+ "renameuser-renamed-notice": "Dä Metmaacher es ömjenannt woode.\nDat kanns De unge en däm Ußzoch uss_em Logbohch vum Metmaacher_Ömnänne fenge."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ku-latn.json b/www/wiki/extensions/Renameuser/i18n/ku-latn.json
new file mode 100644
index 00000000..42d2835b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ku-latn.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "George Animal",
+ "Ghybu",
+ "Gomada",
+ "Bikarhêner"
+ ]
+ },
+ "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": "Sedem:",
+ "renameusermove": "Rûpelên bikarhêner û gotûbêjê xwe (û binrûpelên xwe) bigerîne berve navê nû",
+ "renameuserwarnings": "Hişyarî:",
+ "renameuserconfirm": "Erê, navê vî bikarhênerî biguherîne",
+ "renameusersubmit": "Nav biguherîne",
+ "renameusererrordoesnotexist": "Bikarhêner \"<nowiki>$1</nowiki>\" tune ye.",
+ "renameusererrorexists": "Bikarhêner \"<nowiki>$1</nowiki>\" berê heye.",
+ "renameusererrorinvalid": "Navê \"<nowiki>$1</nowiki>\" ji bikarhêneran re nayê qebûlkirin.",
+ "renameusersuccess": "Navê bikarhênerê \"<nowiki>$1</nowiki>\" bû \"<nowiki>$2</nowiki>\"",
+ "renameuser-page-exists": "Rûpelê $1 berê heye û nikane otomatîk were guherandin.",
+ "renameuser-page-moved": "Navê $1 weke $2 hate guhertin.",
+ "renameuser-page-unmoved": "Rûpela $1 nikanî çûba ciha $2.",
+ "log-name-renameuser": "Guhertina navê bikarhêner",
+ "renameuser-move-log": "Otomatîk hate guherandin, ji ber ku \"[[User:$1|$1]]\" navê xwe guherand û niha bû \"[[User:$2|$2]]\"",
+ "right-renameuser": "Navê bikarhêneran biguherîne:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ky.json b/www/wiki/extensions/Renameuser/i18n/ky.json
new file mode 100644
index 00000000..424bf876
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ky.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chorobek"
+ ]
+ },
+ "renameuser": "Колдонуучунун атын өзгөрт",
+ "renameuser-linkoncontribs": "колдонуучунун атын өзгөрт",
+ "renameuser-linkoncontribs-text": "Колдонуучунун атын өзгөрт",
+ "renameuser-desc": "Колдонуучуну атын өзгөртүү үчүн (''renameuser'' укугу талап кылынат) [[Special:RenameUser|special page]] кошулат",
+ "renameuserold": "Азыркы аты:",
+ "renameusernew": "Жаңы аты",
+ "renameuserreason": "Атты өзгөртүүнүн себеби:",
+ "renameusermove": "Колдонуучу жана анын талкуу баракчаларын (ички баракчалары менен чогуу) жаңы атка өткөз",
+ "renameusersuppress": "Жаңы атка багыттама койбо",
+ "renameuserreserve": "Колдонуучунун эски атын кийин колдонуу үчүн ээлеп кой",
+ "renameuserwarnings": "Эскертүүлөр:",
+ "renameuserconfirm": "Ооба, колдонуучунун атын өзгөрт",
+ "renameusersubmit": "Аткар"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/la.json b/www/wiki/extensions/Renameuser/i18n/la.json
new file mode 100644
index 00000000..e4ae4109
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/la.json
@@ -0,0 +1,26 @@
+{
+ "@metadata": {
+ "authors": [
+ "MF-Warburg",
+ "SPQRobin",
+ "UV"
+ ]
+ },
+ "renameuser": "Usorem renominare",
+ "renameuserold": "Praesente nomen usoris:",
+ "renameusernew": "Novum nomen usoris:",
+ "renameuserreason": "Causa:",
+ "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.",
+ "log-name-renameuser": "Index renominationum usorum",
+ "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.\nCommodule notatio renominationum usoris subter datur."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lad.json b/www/wiki/extensions/Renameuser/i18n/lad.json
new file mode 100644
index 00000000..e171eb7b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lad.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Menachem.Moreira",
+ "Universal Life"
+ ]
+ },
+ "renameusernew": "Nombre de kullaneador muevo:",
+ "renameuserreason": "Razon:",
+ "renameuserwarnings": "Avisos:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lb.json b/www/wiki/extensions/Renameuser/i18n/lb.json
new file mode 100644
index 00000000..5452b5b6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lb.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Les Meloures",
+ "Robby",
+ "Soued031"
+ ]
+ },
+ "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:",
+ "renameusermove": "Benotzer- an Diskussiounssäiten (an déi jeweileg Ënnersäiten) op den neie Benotzernumm réckelen",
+ "renameusersuppress": "Keng Viruleedungen op den neien Numm maachen",
+ "renameuserreserve": "Den ale Benotzernumm fir de weitere Gebrauch spären",
+ "renameuserwarnings": "Warnungen:",
+ "renameuserconfirm": "Jo, Benotzer ëmbenennen",
+ "renameusersubmit": "Ëmbenennen",
+ "renameuser-submit-blocklog": "Lëscht vun de Späre fir de Benotzer weisen",
+ "renameusererrordoesnotexist": "De Benotzer \"<nowiki>$1</nowiki>\" gëtt et net.",
+ "renameusererrorexists": "De {{GENDER:$1|Benotzernumm}} \"<nowiki>$1</nowiki>\" gëtt et schonn.",
+ "renameusererrorinvalid": "De Benotzernumm \"<nowiki>$1</nowiki>\" kann net benotzt ginn.",
+ "renameuser-error-request": "Et gouf e Problem mat ärer Ufro.\nGitt 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 {{GENDER:$2|Benotzer}} \"<nowiki>$1</nowiki>\" gouf \"<nowiki>$2</nowiki>\" ëmbenannt.",
+ "renameuser-page-exists": "D'Säit $1 gëtt et schonn 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.",
+ "log-name-renameuser": "Logbuch vun den Ännerunge vum Benotzernumm",
+ "log-description-renameuser": "Dëst ass d'Logbuch vun den Ännerunge vun de Benotzernimm.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|huet}} de Benotzer $4 ({{PLURAL:$6|$6 Ännerung|$6 Ännerungen}}) op {{GENDER:$7|$5}} ëmbenannt",
+ "logentry-renameuser-renameuser-legacier": "£1 huet de Benotzer $4 op {{GENDER:$7|$5}} ëmbenannt",
+ "renameuser-move-log": "Duerch d'Réckele vum {{GENDER:$1|Benotzer}} \"[[User:$1|$1]]\" op \"[[User:$2|$2]]\" goufen déi folgend Säiten automatesch matgeréckelt:",
+ "action-renameuser": "Benotzer ëmbenennen",
+ "right-renameuser": "Benotzer ëmbenennen",
+ "renameuser-renamed-notice": "Dëse Benotzer gouf ëmbenannt.\nD'Logbuch mat den Ëmbenunngen ass hei ënnendrënner."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/li.json b/www/wiki/extensions/Renameuser/i18n/li.json
new file mode 100644
index 00000000..78484b49
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/li.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Matthias",
+ "Ooswesthoesbes",
+ "Pahles",
+ "Tibor"
+ ]
+ },
+ "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",
+ "renameuser-submit-blocklog": "Tuin bloklogbook veure gebroeker",
+ "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.",
+ "log-name-renameuser": "Logbook gebroekersnaamwieziginge",
+ "renameuser-move-log": "Automatisch hernömp bie 't wiezige van gebroeker \"[[User:$1|$1]]\" nao \"[[User:$2|$2]]\"",
+ "action-renameuser": "gebroekers van naam te verangere",
+ "right-renameuser": "Gebroekers hernaome",
+ "renameuser-renamed-notice": "Deze gebroeker is herneump.\nRelevante regels oet 't logbook staon hieónger."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lij.json b/www/wiki/extensions/Renameuser/i18n/lij.json
new file mode 100644
index 00000000..c392eb0b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lij.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Giromin Cangiaxo"
+ ]
+ },
+ "log-name-renameuser": "Utenti rinominæ",
+ "log-description-renameuser": "Chì de sotta gh'è a lista di cangiamenti a-i nommi utente.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|o l'ha rinominou}} l'utente $4 (con {{PLURAL:$6|$6 contribuçion|$6 contribuçioin}}) in {{GENDER:$7|$5}}"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lki.json b/www/wiki/extensions/Renameuser/i18n/lki.json
new file mode 100644
index 00000000..61a9b2b0
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lki.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hosseinblue"
+ ]
+ },
+ "renameuser": "گؤەڕانن/تغییر نام کاربر",
+ "renameuser-linkoncontribs": "گؤەڕانن/تغییر نام کاربر",
+ "renameuser-linkoncontribs-text": "گؤەڕانن/تغییر نام کاربر",
+ "renameuser-desc": "نام یک کاربر را تغییر می‌دهد (نیازمند برخورداری از اختیارات ''تغییرنام''[[Special:RenameUser|وةڵگة ویژه]] است)",
+ "renameuserold": "نام کاربةری ایسة:",
+ "renameusernew": "نام کاربری تازه:",
+ "renameuserreason": ":دةلیل",
+ "renameusermove": "صفحه‌های کاربری و بحث (به همراه زیر صفحه‌هایشان) به نام تازه منتقل کن",
+ "renameusersuppress": "تغییرمسیر به نام جدید ایجاد نکن",
+ "renameuserreserve": "نام کاربری قبلی را در مقابل استفادهٔ مجدد حفظ کن",
+ "renameuserwarnings": "هشدارها:",
+ "renameuserconfirm": "بله، نام کاربر را تغییر بده",
+ "renameusersubmit": "ارسال/کِل کردن",
+ "renameuser-submit-blocklog": "نمایش سیاههٔ بستن کاربر",
+ "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 وجود ندارد.",
+ "log-name-renameuser": "سیاهه تغییر نام کاربر",
+ "log-description-renameuser": "این سیاههٔ تغییر نام کاربران است.",
+ "logentry-renameuser-renameuser": "$1 نام $4 ({{PLURAL:$6|$6 ویرایش|}}) را به $5 {{GENDER:$2|تغییر داد}}",
+ "logentry-renameuser-renameuser-legacier": "$1 نام کاربری $4 را به $5 تغییر داد",
+ "renameuser-move-log": "صفحه در ضمن تغییر نام کاربر «[[User:$1|$1]]» به «[[User:$2|$2]]» به طور خودکار منتقل شد",
+ "action-renameuser": "گؤەڕانن/تغییر نام کاربرەل",
+ "right-renameuser": "گؤەڕانن/تغییر نام کاربرەل",
+ "renameuser-renamed-notice": "این کاربر تغییر نام داده است.\nسیاهه تغییر نام در ادامه آمده است."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lrc.json b/www/wiki/extensions/Renameuser/i18n/lrc.json
new file mode 100644
index 00000000..e732d27e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lrc.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bonevarluri",
+ "Mogoeilor"
+ ]
+ },
+ "renameuser": "آلشت دئن نوم کاریار",
+ "renameuser-linkoncontribs": "آلشت دئن نوم کاریار",
+ "renameuser-linkoncontribs-text": "آلشت دئن نوم ای کاریار",
+ "renameuserold": "نوم کاریاری ایسنی:",
+ "renameusernew": "نوم کاروری تازه:",
+ "renameuserreason": "دلیل:",
+ "renameusersuppress": "سی نوم تازه واگردونی راس نکید",
+ "renameuserwarnings": "زئناریا:",
+ "renameuserconfirm": "هری، کاریار نه د نو نوم بنه",
+ "renameusersubmit": "دئن",
+ "renameuser-submit-blocklog": "قلف پهرستنومه سی کارور نشو بیه",
+ "renameusererrordoesnotexist": "کاریار \"<nowiki>$1</nowiki>\" وجود ناره.",
+ "renameusererrorexists": "کاریار \"<nowiki>$1</nowiki>\" ایسه هئیش.",
+ "renameusererrorinvalid": "کاریار\"<nowiki>$1</nowiki>\" معتور نئ.",
+ "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 جا وه جا بوئه",
+ "log-name-renameuser": "پهرستنومه دواره نوم دئن د کارور",
+ "log-description-renameuser": "یه پهرستنومه آلشت دئن نوم کاروریا هئ.",
+ "logentry-renameuser-renameuser-legacier": "کاریار $1 سی$4 تا$5 د نوم نیائه بیه",
+ "action-renameuser": "آلشت دئن نوم کاریار",
+ "right-renameuser": "آلشت دئن نوم کاریار",
+ "renameuser-renamed-notice": "ای کارور یه گل نوم هنی وش دئه بیه.\nپهرستنومه نوم هنی دئن وا سرچشمه زیر دروس بیه."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lt.json b/www/wiki/extensions/Renameuser/i18n/lt.json
new file mode 100644
index 00000000..3dab826d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lt.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Eitvys200",
+ "Homo",
+ "Hugo.arg",
+ "Matasg",
+ "Manvydasz"
+ ]
+ },
+ "renameuser": "Pervadinti naudotoją",
+ "renameuser-linkoncontribs": "pervadinti naudotoją",
+ "renameuser-linkoncontribs-text": "Pervardyti šį vartotoją",
+ "renameuser-desc": "Prideda [[Special:RenameUser|specialų puslapį]] naudotojo pervadinimui (reikia ''pervadintojo'' teisių)",
+ "renameuserold": "Esamas naudotojo vardas:",
+ "renameusernew": "Naujas naudotojo vardas:",
+ "renameuserreason": "Priežastis:",
+ "renameusermove": "Perkelti naudotojo ir aptarimo puslapius (bei jo antrinius puslapius) 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": "{{GENDER:$1|Naudotojas|Naudotoja}} \"<nowiki>$1</nowiki>\" jau egzistuoja.",
+ "renameusererrorinvalid": "Naudotojo vardas \"<nowiki>$1</nowiki>\" netinkamas.",
+ "renameuser-error-request": "Iškilo prašymo gavimo problema.\nPrašome eiti atgal ir bandyti iš naujo.",
+ "renameuser-error-same-user": "Jūs negalite pervadinti naudotojo į tokį pat vardą, kaip pirmiau.",
+ "renameusersuccess": "{{GENDER:$2|Naudotojas|Naudotoja}} \"<nowiki>$1</nowiki>\" buvo pervadintas(-a) į \"<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.",
+ "log-name-renameuser": "Naudotojų pervadinimo sąrašas",
+ "log-description-renameuser": "Šiame sąraše pateikiami naudotojų vardų pakeitimai.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|pervadino}} naudotoją $4 ({{PLURAL:$6|$6 keitimas|$6 keitimai|$6 keitimų}}) į {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Puslapis automatiškai perkeltas, kai buvo {{GENDER:$2|pervadinamas naudotojas|pervadinama naudotoja}} \"[[User:$1|$1]]\" į \"[[User:$2|$2]]\"",
+ "action-renameuser": "pervadinti naudotojus",
+ "right-renameuser": "Pervadinti naudotojus"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/lv.json b/www/wiki/extensions/Renameuser/i18n/lv.json
new file mode 100644
index 00000000..a6bf357f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/lv.json
@@ -0,0 +1,25 @@
+{
+ "@metadata": {
+ "authors": [
+ "Papuass",
+ "Xil",
+ "Silraks"
+ ]
+ },
+ "renameuser": "Pārsaukt lietotāju",
+ "renameuser-linkoncontribs": "pārsaukt lietotāju",
+ "renameuser-linkoncontribs-text": "Pārsaukt šo lietotāju",
+ "renameuserold": "Pašreizējais lietotājvārds:",
+ "renameusernew": "Jaunais lietotāja vārds:",
+ "renameuserreason": "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>\".",
+ "log-name-renameuser": "Dalībnieku pārdēvēšanas reģistrs",
+ "log-description-renameuser": "Lietotājvārdu maiņas reģistrs",
+ "action-renameuser": "pārsaukt lietotājus",
+ "right-renameuser": "Pārsaukt lietotājus"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mai.json b/www/wiki/extensions/Renameuser/i18n/mai.json
new file mode 100644
index 00000000..409afd55
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mai.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "बिप्लब आनन्द"
+ ]
+ },
+ "renameuser": "प्रयोगकर्तानाम परिवर्तन",
+ "renameuser-linkoncontribs": "प्रयोगकर्तानाम परिवर्तन",
+ "renameuser-linkoncontribs-text": "ई प्रयोगकर्ता नाम परिवर्तन करी",
+ "renameuser-desc": "प्रयोगकर्तानाम परिवर्तनक लेल एक [[Special:RenameUser|विशेष पृष्ठ]] जुडैत अछि (''renameuser'' अधिकार आवश्यक)",
+ "renameuserold": "वर्तमान प्रयोगकर्तानाम:",
+ "renameusernew": "नव प्रयोगकर्तानाम:",
+ "renameuserreason": "कारण:",
+ "renameusermove": "प्रयोगकर्ता पृष्ठ आ वार्ता पृष्ठ (आर ओकर उपपृष्ठ) नव नाम पर स्थानान्तरित करी",
+ "renameusersuppress": "नव नाम पर अनुप्रेषित नै करी",
+ "renameuserreserve": "पुरान प्रयोगकर्तानाम भविष्यमे प्रयोगसँ अवरोधित करी",
+ "renameuserwarnings": "चेतावनी:",
+ "renameuserconfirm": "हँ, प्रयोगकर्तानाम परिवर्तन करी",
+ "renameusersubmit": "सौपू",
+ "log-name-renameuser": "प्रयोगकर्तानाम परिवर्तन लौग"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mg.json b/www/wiki/extensions/Renameuser/i18n/mg.json
new file mode 100644
index 00000000..bda877a0
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mg.json
@@ -0,0 +1,19 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jagwar"
+ ]
+ },
+ "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": "Antony :",
+ "renameusermove": "Afindrany pejim-pikambana any amin'ny anarana vaovao",
+ "renameuserwarnings": "Fampitandremana :",
+ "renameuserconfirm": "Eny, soloy anarana ilay mpikambana",
+ "renameusersubmit": "Alefa",
+ "log-name-renameuser": "Laogim-panovana anaram-pikambana",
+ "right-renameuser": "Manova ny anaran'ny mpikambana"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/min.json b/www/wiki/extensions/Renameuser/i18n/min.json
new file mode 100644
index 00000000..38a18178
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/min.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Iwan Novirion"
+ ]
+ },
+ "log-name-renameuser": "Log panggantian namo pangguno",
+ "log-description-renameuser": "Di bawah ko log panggantian namo pangguno",
+ "renameuser-move-log": "Sacaro otomatih mamindahan laman wakatu mangganti namo pangguno \"[[User:$1|$1]]\" manjadi \"[[User:$2|$2]]\"",
+ "right-renameuser": "Mangganti namo pangguno"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mk.json b/www/wiki/extensions/Renameuser/i18n/mk.json
new file mode 100644
index 00000000..1c91d925
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mk.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06",
+ "Brest",
+ "Misos"
+ ]
+ },
+ "renameuser": "Преименувај корисник",
+ "renameuser-linkoncontribs": "преименувај корисник",
+ "renameuser-linkoncontribs-text": "Преименувај го корисников",
+ "renameuser-desc": "Додава [[Special:RenameUser|службена страница]] за преименување на корисник (бара право на ''renameuser'')",
+ "renameuserold": "Сегашно корисничко име:",
+ "renameusernew": "Ново корисничко име:",
+ "renameuserreason": "Причина:",
+ "renameusermove": "Премести кориснички и разговорни страници (и нивните потстраници) под новото име",
+ "renameusersuppress": "Не создавај пренасочувања кон новото име",
+ "renameuserreserve": "Блокирање на старото корисничко име, да не може да се користи во иднина",
+ "renameuserwarnings": "Предупредувања:",
+ "renameuserconfirm": "Да, преименувај го корисникот",
+ "renameusersubmit": "Внеси",
+ "renameuser-submit-blocklog": "Дневник на блокирања за корисникот",
+ "renameusererrordoesnotexist": "Корисникот „<nowiki>$1</nowiki>“ не постои",
+ "renameusererrorexists": "{{GENDER:$1|Корисникот}} „<nowiki>$1</nowiki>“ веќе постои.",
+ "renameusererrorinvalid": "Корисничкото име „<nowiki>$1</nowiki>“ не е важечко.",
+ "renameuser-error-request": "Се јави проблем при примањето на барањето.\nВратете се и обидете се повторно.",
+ "renameuser-error-same-user": "Не можете да го преименувате корисникот во име кое е исто како претходното.",
+ "renameusersuccess": "{{GENDER:$2|Корисникот}} „<nowiki>$1</nowiki>“ е преименуван во „<nowiki>$2</nowiki>“",
+ "renameuser-page-exists": "Страницата $1 веќе постои и не може автоматски да се замени со друга содржина.",
+ "renameuser-page-moved": "Страницата $1 е преместена на $2.",
+ "renameuser-page-unmoved": "Страницата $1 неможеше да се премести на $2.",
+ "log-name-renameuser": "Дневник на преименувања на корисници",
+ "log-description-renameuser": "Ово е дневник на преименувања на корисници",
+ "logentry-renameuser-renameuser": "$1 го {{GENDER:$2|преименуваше}} корисникот $4 ({{PLURAL:$6|$6 уредување|$6 уредувања}}) во {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 го преименуваше корисникот $4 во {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Автоматски преместена страница при преименување на {{GENDER:$2|корисникот}} „[[User:$1|$1]]“ во „[[User:$2|$2]]“",
+ "action-renameuser": "преименување на корисници",
+ "right-renameuser": "Преименување корисници",
+ "renameuser-renamed-notice": "Овој корисник е преименуван.\nПодолу е приложен дневникот на преименување за споредба."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ml.json b/www/wiki/extensions/Renameuser/i18n/ml.json
new file mode 100644
index 00000000..ce76c647
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ml.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Praveenp",
+ "Shijualex"
+ ]
+ },
+ "renameuser": "ഉപയോക്തൃ പുനർനാമകരണം",
+ "renameuser-linkoncontribs": "ഉപയോക്തൃ പുനർനാമകരണം",
+ "renameuser-linkoncontribs-text": "ഈ ഉപയോക്താവിന്റെ പേരു മാറ്റുക",
+ "renameuser-desc": "ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്യുവാനുള്ള (''പുനർനാമകരണ'' അവകാശം വേണം) ഒരു [[Special:RenameUser|പ്രത്യേക താൾ]] ചേർക്കുന്നു",
+ "renameuserold": "ഇപ്പോഴത്തെ ഉപയോക്തൃനാമം:",
+ "renameusernew": "പുതിയ ഉപയോക്തൃനാമം:",
+ "renameuserreason": "കാരണം:",
+ "renameusermove": "നിലവിലുള്ള ഉപയോക്തൃതാളും, ഉപയോക്താവിന്റെ സം‌വാദത്താളും (ഉപതാളുകൾ അടക്കം) പുതിയ നാമത്തിലേക്കു മാറ്റുക.",
+ "renameusersuppress": "പുതിയ നാമത്തിലേയ്ക്ക് തിരിച്ചുവിടലുകളൊന്നും സൃഷ്ടിക്കരുത്",
+ "renameuserreserve": "പഴയ ഉപയോക്തൃനാമം ഭാവിയിൽ ഉപയോഗിക്കുന്നതു തടയുക",
+ "renameuserwarnings": "മുന്നറിയിപ്പുകൾ:",
+ "renameuserconfirm": "അതെ, ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്യുക",
+ "renameusersubmit": "സമർപ്പിക്കുക",
+ "renameuser-submit-blocklog": "ഉപയോക്താവിനെക്കുറിച്ചുള്ള തടയൽ രേഖ പ്രദർശിപ്പിക്കുക",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" എന്ന ഉപയോക്താവ് നിലവിലില്ല.",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" എന്ന {{GENDER:$1|ഉപയോക്താവ്}} നിലവിലുണ്ട്.",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" എന്ന ഉപയോക്തൃനാമം അസാധുവാണ്‌.",
+ "renameuser-error-request": "അപേക്ഷ സ്വീകരിക്കുമ്പോൾ പിഴവ് സം‌ഭവിച്ചു. ദയവായി തിരിച്ചു പോയി വീണ്ടും പരിശ്രമിക്കുക.",
+ "renameuser-error-same-user": "നിലവിലുള്ള ഒരു ഉപയോക്തൃനാമത്തിലേക്കു വേറൊരു ഉപയോക്തൃനാമം പുനർനാമകരണം നടത്തുവാൻ സാധിക്കില്ല.",
+ "renameusersuccess": "\"<nowiki>$1</nowiki>\" എന്ന {{GENDER:$2|ഉപയോക്താവിനെ}} \"<nowiki>$2</nowiki>\" എന്ന നാമത്തിലേക്കു പുനർനാമകരണം ചെയ്തിരിക്കുന്നു.",
+ "renameuser-page-exists": "$1 എന്ന താൾ നിലവിലുള്ളതിനാൽ അതിനെ യാന്ത്രികമായി മാറ്റാൻ കഴിയില്ല.",
+ "renameuser-page-moved": "$1 എന്ന താൾ $2 എന്നാക്കിയിരിക്കുന്നു.",
+ "renameuser-page-unmoved": "$1 എന്ന താൾ $2 എന്നാക്കാൻ സാദ്ധ്യമല്ല.",
+ "log-name-renameuser": "ഉപയോക്തൃ പുനർനാമകരണ രേഖ",
+ "log-description-renameuser": "ഈ പ്രവർത്തനരേഖ ഉപയോക്തൃനാമം പുനർനാമകരണം നടത്തിയതിന്റേതാണ്‌.",
+ "logentry-renameuser-renameuser": "$4 ({{PLURAL:$6|$6 തിരുത്ത്|$6 തിരുത്തുകൾ}}) എന്ന ഉപയോക്താവിനെ $1, {{GENDER:$7|$5}} എന്ന് {{GENDER:$2|പുനർനാമകരണം ചെയ്തിരിക്കുന്നു}}",
+ "logentry-renameuser-renameuser-legacier": "$4 എന്ന ഉപയോക്താവിനെ {{GENDER:$7|$5}} എന്ന് $1 പുനർനാമകരണം ചെയ്തു",
+ "renameuser-move-log": "\"[[User:$1|$1]]\" എന്ന {{GENDER:$2|ഉപയോക്താവിനെ}} \"[[User:$2|$2]]\" എന്നു പുനർനാമകരണം ചെയ്തപ്പോൾ താൾ യാന്ത്രികമായി മാറ്റി.",
+ "action-renameuser": "ഉപയോക്താക്കളുടെ പുനർനാമകരണം",
+ "right-renameuser": "ഉപയോക്തൃ പുനർനാമകരണം",
+ "renameuser-renamed-notice": "ഈ ഉപയോക്താവിനെ പുനർനാമകരണം ചെയ്തിരിക്കുന്നു.\nപുനർനാമകരണ രേഖ അവലംബമായി പരിശോധിക്കാനായി താഴെ കൊടുത്തിരിക്കുന്നു."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mn.json b/www/wiki/extensions/Renameuser/i18n/mn.json
new file mode 100644
index 00000000..870e609d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chinneeb"
+ ]
+ },
+ "renameusersubmit": "Явуулах"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mr.json b/www/wiki/extensions/Renameuser/i18n/mr.json
new file mode 100644
index 00000000..c62049ff
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mr.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kaajawa",
+ "Kaustubh",
+ "Rahuldeshmukh101",
+ "V.narsikar"
+ ]
+ },
+ "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 मथळ्याखाली स्थानांतरीत करू शकत नाही.",
+ "log-name-renameuser": "सदस्यनाम बदल यादी",
+ "renameuser-move-log": "\"[[User:$1|$1]]\" ला \"[[User:$2|$2]]\" बदलताना आपोआप सदस्य पान स्थानांतरीत केलेले आहे.",
+ "right-renameuser": "सदस्यांची नावे बदला",
+ "renameuser-renamed-notice": "या सदस्यास पुनर्नामित करण्यात आले आहे.\nपुनर्नामाचा क्रमलेख संदर्भासाठी खाली दिलेला आहे."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ms.json b/www/wiki/extensions/Renameuser/i18n/ms.json
new file mode 100644
index 00000000..e62259b2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ms.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Anakmalaysia",
+ "Aurora",
+ "Aviator"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Tunjukkan log sekatan pengguna",
+ "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.\nSila 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.",
+ "log-name-renameuser": "Log penukaran nama pengguna",
+ "log-description-renameuser": "Ini ialah log penukaran nama pengguna.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|menukar nama}} pengguna $4 ($6 suntingan) kepada $5",
+ "logentry-renameuser-renameuser-legacier": "$1 menamakan pengguna $4 kepada $5",
+ "renameuser-move-log": "Memindahkan laman secara automatik ketika menukar nama \"[[User:$1|$1]]\" menjadi \"[[User:$2|$2]]\"",
+ "action-renameuser": "menukar nama pengguna",
+ "right-renameuser": "Menukar nama pengguna",
+ "renameuser-renamed-notice": "Pengguna ini telah dinamakan semula.\nLog penukaran nama ditunjukkan di bawah sebagai rujukan."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mt.json b/www/wiki/extensions/Renameuser/i18n/mt.json
new file mode 100644
index 00000000..646a2304
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mt.json
@@ -0,0 +1,36 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chrisportelli",
+ "Roderick Mallia"
+ ]
+ },
+ "renameuser": "Semmi utent mill-ġdid",
+ "renameuser-linkoncontribs": "semmi l-utent mill-ġdid",
+ "renameuser-linkoncontribs-text": "Erġa' semmi lil dan l-utent",
+ "renameuser-desc": "Iżżid [[Special:RenameUser|paġna speċjali]] sabiex issemmi utent mill-ġdid (huwa neċessarju li tħaddan id-dritt ''renameuser'')",
+ "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",
+ "renameuser-submit-blocklog": "Uri r-reġistru tal-imblukkar għall-utent",
+ "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.",
+ "renameuser-error-request": "Kien hemm problema fl-ilqugħ tar-rikjesta tiegħek. Jekk jogħġbok mur lura u erġa' pprova.",
+ "renameuser-error-same-user": "Ma tistax issemmi utent l-istess isem li kellu qabel.",
+ "renameusersuccess": "L-utent \"<nowiki>$1</nowiki>\" issemma mill-ġdid għal \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "Il-paġna $1 diġà teżisti u ma tistax tiġi miktuba fuqha awtomatikament.",
+ "renameuser-page-moved": "Il-paġna $1 tmexxiet lejn $2.",
+ "renameuser-page-unmoved": "Il-paġna $1 ma setgħetx titmexxa lejn $2.",
+ "log-name-renameuser": "Reġistru tal-utenti msemmijin mill-ġdid",
+ "renameuser-move-log": "Paġna mmexxiha matul il-bidla tal-utent \"[[User:$1|$1]]\" għal \"[[User:$2|$2]]\"",
+ "action-renameuser": "tbiddel l-ismijiet tal-utenti",
+ "right-renameuser": "Ibiddel l-isem tal-utenti",
+ "renameuser-renamed-notice": "Dan l-utent reġa' ssemma mill-ġdid. Ir-reġistru tal-ismijiet ġodda huwa mogħti bħala referenza."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/mwl.json b/www/wiki/extensions/Renameuser/i18n/mwl.json
new file mode 100644
index 00000000..6057c499
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/mwl.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "MokaAkashiyaPT",
+ "Athena in Wonderland"
+ ]
+ },
+ "renameuser-page-moved": "La páigina $1 fui arrastrada pa $2."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/my.json b/www/wiki/extensions/Renameuser/i18n/my.json
new file mode 100644
index 00000000..ac98114b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/my.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ninjastrikers"
+ ]
+ },
+ "log-name-renameuser": "အသုံးပြုသူ အမည်ပြောင်းလဲခြင်း မှတ်တမ်း",
+ "logentry-renameuser-renameuser": "အသုံးပြုသူ $4 ({{PLURAL:$6|တည်းဖြတ်မှု $6 ခု|တည်းဖြတ်မှုများ $6 ခု}}) ကို {{GENDER:$7|$5}} သို့ $1 က {{GENDER:$2|အမည်ပြောင်းလဲခဲ့သည်}}",
+ "logentry-renameuser-renameuser-legacier": "$1 က အသုံးပြုသူ $4 ကို {{GENDER:$7|$5}} သို့ အမည်ပြောင်းလဲခဲ့သည်",
+ "renameuser-move-log": "{{GENDER:$2|အသုံးပြုသူ}} \"[[User:$1|$1]]\" ကို \"[[User:$2|$2]]\" သို့ အမည်ပြောင်းလဲစဉ် စာမျက်နှာအား အလိုအလျောက် ရွှေ့ပြောင်းခြင်း"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/myv.json b/www/wiki/extensions/Renameuser/i18n/myv.json
new file mode 100644
index 00000000..9002dea4
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/myv.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Botuzhaleny-sodamo"
+ ]
+ },
+ "renameusernew": "Од лемесь:",
+ "renameuserreserve": "Озавтомс ташто совицянь лементь саймес, тевс илязо нолдаво седе тов",
+ "renameuserconfirm": "Истя, макст совицянтень од лем",
+ "renameusersubmit": "Максомс",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" совицясь арась."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nah.json b/www/wiki/extensions/Renameuser/i18n/nah.json
new file mode 100644
index 00000000..be9f7eeb
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nah.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Fluence"
+ ]
+ },
+ "renameusersubmit": "Tiquihuāz"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nan.json b/www/wiki/extensions/Renameuser/i18n/nan.json
new file mode 100644
index 00000000..fecd29d3
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nan.json
@@ -0,0 +1,5 @@
+{
+ "@metadata": [],
+ "renameuser": "Kái iōng-chiá ê miâ",
+ "renameuser-page-moved": "$1 í-keng sóa khì tī $2."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nb.json b/www/wiki/extensions/Renameuser/i18n/nb.json
new file mode 100644
index 00000000..df9e0536
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nb.json
@@ -0,0 +1,41 @@
+{
+ "@metadata": {
+ "authors": [
+ "Danmichaelo",
+ "Event",
+ "Nghtwlkr",
+ "Jon Harald Søby"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Vis blokkeringslogg for bruker",
+ "renameusererrordoesnotexist": "Brukeren «<nowiki>$1</nowiki>» finnes ikke.",
+ "renameusererrorexists": "{{GENDER:$1|Brukeren}} «<nowiki>$1</nowiki>» finnes allerede.",
+ "renameusererrorinvalid": "Brukernavnet «<nowiki>$1</nowiki>» er ugyldig.",
+ "renameuser-error-request": "Det var et problem med å motta forespørselen.\nGå tilbake og prøv igjen.",
+ "renameuser-error-same-user": "Du kan ikke gi en bruker samme navn som han/hun allerede har.",
+ "renameusersuccess": "{{GENDER:$2|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.",
+ "log-name-renameuser": "Omdøpingslogg",
+ "log-description-renameuser": "Dette er en logg over endrede brukernavn",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|omdøpte}} brukeren $4 ({{PLURAL:$6|$6 redigering|$6 redigeringer}}) til {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 omdøpte brukeren $4 til {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Flyttet side automatisk under omdøping av {{GENDER:$2|brukeren}} «[[User:$1|$1]]» til «[[User:$2|$2]]»",
+ "action-renameuser": "endre navn på brukere",
+ "right-renameuser": "Endre navn på brukere",
+ "renameuser-renamed-notice": "Denne brukeren har fått endret navn.\nTil informasjon er navnendringsloggen vist nedenfor."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nds-nl.json b/www/wiki/extensions/Renameuser/i18n/nds-nl.json
new file mode 100644
index 00000000..bad5ce06
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nds-nl.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Servien"
+ ]
+ },
+ "renameuser": "Gebruker herneumen",
+ "renameuser-linkoncontribs": "gebruker herneumen",
+ "renameuser-linkoncontribs-text": "Disse gebruker herneumen",
+ "renameuser-desc": "Der kömp n [[Special:RenameUser|spesiale zied]] bie um n gebruker te herneumen (je hebben hierveur t recht ''renameuser'' neudig)",
+ "renameuserold": "Gebrukersnaam noen",
+ "renameusernew": "Nieje gebrukersnaam:",
+ "renameuserreason": "Reden:",
+ "renameusermove": "Herneum gebruker en gebrukersziejen (en ziejen die deronder vallen) 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",
+ "renameuser-submit-blocklog": "Blokkeerlogboek veur gebruker laoten zien",
+ "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.",
+ "renameuser-error-request": "Der was n probleem bie t ontvangen van de anvraag.\nGao weerumme en probeer t nog es.",
+ "renameuser-error-same-user": "Je kunnen gien gebruker herneumen naor dezelfde naam.",
+ "renameusersuccess": "Gebruker \"<nowiki>$1</nowiki>\" is herneumd naor \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "De zied $1 besteet al en kan niet automaties overschreven wörden.",
+ "renameuser-page-moved": "De zied $1 is herneumd naor $2.",
+ "renameuser-page-unmoved": "De zied $1 kon niet herneumd wörden naor $2.",
+ "log-name-renameuser": "Logboek gebrukersnaamwiezigingen",
+ "log-description-renameuser": "Dit is n logboek mit wiezigingen van gebrukersnamen",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|hef}} gebruker $4 ($6 {{PLURAL:$6|bewarking|bewarkingen}}) herneumd naor $5",
+ "logentry-renameuser-renameuser-legacier": "$1 hef de gebruker $4 herneumd naor $5",
+ "renameuser-move-log": "Zied is automaties verplaotst bie t herneumen van de gebruker \"[[User:$1|$1]]\" naor \"[[User:$2|$2]]\"",
+ "action-renameuser": "gebrukers herneumen",
+ "right-renameuser": "Gebrukers herneumen",
+ "renameuser-renamed-notice": "Disse gebrukersnaam is herneumd.\nHieronder vie-j t herneumlogboek as referensie."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nds.json b/www/wiki/extensions/Renameuser/i18n/nds.json
new file mode 100644
index 00000000..78d5750e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nds.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Slomox"
+ ]
+ },
+ "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.",
+ "log-name-renameuser": "Ännerte-Brukernaams-Logbook",
+ "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"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ne.json b/www/wiki/extensions/Renameuser/i18n/ne.json
new file mode 100644
index 00000000..d592a154
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ne.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "NehalDaveND",
+ "बिप्लब आनन्द"
+ ]
+ },
+ "renameuser": "प्रयोगकर्ता पुनर्नामाकरण",
+ "renameuser-linkoncontribs": "प्रयोगकर्ता पुनर्नामाकरण",
+ "renameuser-linkoncontribs-text": "यो प्रयोगकर्ता पुनर्नामाकरण गर्ने",
+ "renameuser-desc": "प्रयोगकर्ता पुनर्नामाकरण गर्न एउटा [[Special:RenameUser|विशेष पृष्ठ]] जोड्ने (''पुनर्नामाकरण'' अधिकार हुनु जरुरी)",
+ "renameuserold": "अहिलेको प्रयोगकर्ता नाम:",
+ "renameusernew": "नयाँ प्रयोगकर्ता नाम:",
+ "renameuserreason": "कारण:",
+ "renameuserwarnings": "चेतावनीहरू:",
+ "renameusersubmit": "बुझाउने",
+ "renameuser-page-exists": "$1 पृष्ठ पहिले देखि नै रहेको छ र स्वत: अधिलेखन गर्न सकिएन ।",
+ "renameuser-page-moved": " $1 पृष्ठलाई $2 मा सारियो ।",
+ "renameuser-page-unmoved": "$1 पृष्ठलाई $2 मा सार्न सकिएन ।"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nl-informal.json b/www/wiki/extensions/Renameuser/i18n/nl-informal.json
new file mode 100644
index 00000000..55660822
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nl-informal.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Siebrand"
+ ]
+ },
+ "renameuser-error-same-user": "Je kunt geen gebruiker hernoemen naar dezelfde naam."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nl.json b/www/wiki/extensions/Renameuser/i18n/nl.json
new file mode 100644
index 00000000..6b09ad5d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nl.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Effeietsanders",
+ "SPQRobin",
+ "Siebrand",
+ "Sjoerddebruin",
+ "Mainframe98"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Blokkeerlogboek voor gebruiker weergeven",
+ "renameusererrordoesnotexist": "De gebruiker \"<nowiki>$1</nowiki>\" bestaat niet.",
+ "renameusererrorexists": "De {{GENDER:$1|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.\nGa terug en probeer het opnieuw.",
+ "renameuser-error-same-user": "U kunt geen gebruiker hernoemen naar dezelfde naam.",
+ "renameusersuccess": "De {{GENDER:$2|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.",
+ "log-name-renameuser": "Logboek gebruikersnaamwijzigingen",
+ "log-description-renameuser": "Hieronder staan gebruikersnamen die gewijzigd zijn.",
+ "logentry-renameuser-renameuser": "$1 heeft gebruiker $4 ($6 {{PLURAL:$6|bewerking|bewerkingen}}) {{GENDER:$2|hernoemd}} naar {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 heeft de gebruiker $4 hernoemd naar {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Automatisch hernoemd bij het hernoemen van {{GENDER:$2|gebruiker}} \"[[User:$1|$1]]\" naar \"[[User:$2|$2]]\"",
+ "action-renameuser": "gebruikers te hernoemen",
+ "right-renameuser": "Gebruikers hernoemen",
+ "renameuser-renamed-notice": "Deze gebruiker is hernoemd.\nRelevante regels uit het logboek gebruikersnaamwijzigingen worden hieronder ter referentie weergegeven."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nn.json b/www/wiki/extensions/Renameuser/i18n/nn.json
new file mode 100644
index 00000000..f08b78d6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nn.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dittaeva",
+ "Gunnernett",
+ "Harald Khan",
+ "Njardarlogar",
+ "Ranveig"
+ ]
+ },
+ "renameuser": "Døyp om brukar",
+ "renameuser-linkoncontribs": "døyp om brukar",
+ "renameuser-linkoncontribs-text": "Byt namn på brukaren",
+ "renameuser-desc": "Legg til ei [[Special:RenameUser|spesialside]] for å døypa om ein brukar (krev ''renameuser''-rettar)",
+ "renameuserold": "Brukarnamn no:",
+ "renameusernew": "Nytt brukarnamn:",
+ "renameuserreason": "Årsak:",
+ "renameusermove": "Flytt brukar- og brukardiskusjonssider (og undersidene deira) til nytt namn",
+ "renameusersuppress": "Ikkje opprett omdirigeringar til det nye namnet",
+ "renameuserreserve": "Blokker det gamle brukarnamnet for framtidig bruk",
+ "renameuserwarnings": "Åtvaringar:",
+ "renameuserconfirm": "Ja, endra namn på brukaren",
+ "renameusersubmit": "Utfør",
+ "renameuser-submit-blocklog": "Sjå blokkeringslogg for brukaren",
+ "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.\nGå 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.",
+ "log-name-renameuser": "Logg over brukarnamnendringar",
+ "log-description-renameuser": "Dette er ein logg over brukarnamnendringar.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|omnemna}} brukaren $4 ({{PLURAL:$6|éi endring|$6 endringar}}) til $5",
+ "logentry-renameuser-renameuser-legacier": "$1 omnemna brukaren $4 til $5",
+ "renameuser-move-log": "Flytta sida automatisk under omdøyping av brukaren «[[User:$1|$1]]» til «[[User:$2|$2]]»",
+ "action-renameuser": "omnemna brukarar",
+ "right-renameuser": "Døypa om brukarar",
+ "renameuser-renamed-notice": "Denne brukaren har fått nytt namn.\nTil informasjon er omdøypingsloggen synt nedanfor."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/nso.json b/www/wiki/extensions/Renameuser/i18n/nso.json
new file mode 100644
index 00000000..2f147a1e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/nso.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Mohau"
+ ]
+ },
+ "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:",
+ "renameuser-page-moved": "Letlakala $1 le hudušitšwe go $2"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/oc.json b/www/wiki/extensions/Renameuser/i18n/oc.json
new file mode 100644
index 00000000..4a897cb0
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/oc.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Boulaur",
+ "Cedric31"
+ ]
+ },
+ "renameuser": "Renomenar l'utilizaire",
+ "renameuser-linkoncontribs": "renomenar l'utilizaire",
+ "renameuser-linkoncontribs-text": "Renomenar l'utilizaire",
+ "renameuser-desc": "Renomenar una [[Special:RenameUser|pagina especiala]] per renomenar un utilizaire (necessita los dreits de ''renameuser'')",
+ "renameuserold": "Nom actual de l'utilizaire :",
+ "renameusernew": "Nom novèl de l'utilizaire :",
+ "renameuserreason": "Rason(s) 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, renomenar l’utilizaire",
+ "renameusersubmit": "Sometre",
+ "renameusererrordoesnotexist": "Lo nom d'utilizaire « <nowiki>$1</nowiki> » es pas valid",
+ "renameusererrorexists": "L’{{GENDER:$1|utilizaire|utilizaira}} « <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 renomenar un utilizaire amb lo meteis nom soma deperabans.",
+ "renameusersuccess": "L’{{GENDER:$1|utilizaire|utilizaira}} « <nowiki>$1</nowiki> » {{GENDER:$1|es estat renomenat|es estada renomenada}} 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.",
+ "log-name-renameuser": "Istoric dels cambiaments de nom d'utilizaire",
+ "log-description-renameuser": "Aquò es l'istoric dels cambiaments de nom dels utilizaires",
+ "renameuser-move-log": "Pagina desplaçada automaticament al moment del cambiament de nom de l’{{GENDER:$1|utilizaire|utilizaira}} \"[[User:$1|$1]]\" en \"[[User:$2|$2]]\"",
+ "action-renameuser": "renomenar los utilizaires",
+ "right-renameuser": "Renomenar d'utilizaires",
+ "renameuser-renamed-notice": "Aqueste utilizaire es estat renomenat.\nLo jornal dels cambiaments de noms es disponible çaijós per informacion."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/or.json b/www/wiki/extensions/Renameuser/i18n/or.json
new file mode 100644
index 00000000..d8392c58
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/or.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Jnanaranjan Sahu",
+ "Odisha1",
+ "Psubhashish"
+ ]
+ },
+ "renameuser": "ସଭ୍ୟଙ୍କ ନାମଟି ବଦଳାଇବେ",
+ "renameuser-linkoncontribs": "ସଭ୍ୟଙ୍କ ନାମଟି ବଦଳାଇବେ",
+ "renameuser-linkoncontribs-text": "ଏହି ସଭ୍ୟଙ୍କର ନାମ ବଦଳାଇବେ",
+ "renameuser-desc": "ଜଣେ ସଭ୍ୟଙ୍କର ନାମ ବଦଳାଇବା ପାଇଁ ଏକ [[Special:RenameUser|ବିଶେଷ ପୃଷ୍ଠା]] ଯୋଡ଼ିଥାଏ ।(''ନୂଆ ନାମକରଣ'' ଅଧିକାର ଲୋଡ଼ା)",
+ "renameuserold": "ଏବେକାର ଇଉଜର ନାମ:",
+ "renameusernew": "ନୂଆ ଇଉଜର ନାମ:",
+ "renameuserreason": "କାରଣ:",
+ "renameusermove": "ସଭ୍ୟ, ତାହାଙ୍କର ଆଲୋଚନା ପୃଷ୍ଠାମାନଙ୍କୁ (ତଥା ସାନପୃଷ୍ଠାମାନଙ୍କୁ)ନୂଆ ନାମକୁ ଘୁଞ୍ଚାଇବେ",
+ "renameusersuppress": "ନୂଆ ନାମକୁ ପୁନପ୍ରେରଣ କରନ୍ତୁ ନାହିଁ",
+ "renameuserreserve": "ଭବିଷ୍ୟତ ବ୍ୟବହାରରେ ପୁରୁଣା ଇଉଜର ନାମକୁ ଅଟକାଇ ଦିଅନ୍ତୁ",
+ "renameuserwarnings": "ଚେତାବନୀ:",
+ "renameuserconfirm": "ହଁ, ସଭ୍ୟଙ୍କ ନାମ ବଦଳାଇ ଦେବେ",
+ "renameusersubmit": "ଦାଖଲକରିବା",
+ "renameuser-submit-blocklog": "ବ୍ୟବହାରକାରୀଙ୍କ ପାଇଁ କିଳାଯାଇଥିବା ତାଲିକା ଦେଖିବେ",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" ନାମକ ସଭ୍ୟଜଣକ ଏଠାରେ ନାହାନ୍ତି ।",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" ନାମକ ସଭ୍ୟଜଣକ ଆଗରୁ ଅଛନ୍ତି ।",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" ଇଉଜର ନାମଟି ଅଚଳ ଅଟେ ।",
+ "renameuser-error-request": "ଅନୁରୋଧ ଗ୍ରହଣ କରିବାରେ ଏକ ଅସୁବିଧା ହେଲା ।\nଦୟାକରି ପଛକୁ ଫେରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
+ "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କୁ ଘୁଞ୍ଚାଯାଇ ପାରିବ ନାହିଁ ।",
+ "log-name-renameuser": "ସଭ୍ୟ ନାମବଦଳ ଇତିହାସ",
+ "log-description-renameuser": "ସଭ୍ୟଙ୍କ ନାମ ବଦଳର ଏହା ଏକ ଇତିହାସ ।",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|renamed}} user $4 ({{PLURAL:$6|$6 edit|$6 edits}}) to $5",
+ "logentry-renameuser-renameuser-legacier": "$1 $4ଙ୍କ ନାମ $5କୁ ବଦଳାଇଲେ",
+ "renameuser-move-log": "ସଭ୍ୟ \"[[User:$1|$1]]\"ରୁ \"[[User:$2|$2]]\"କୁ ନାମ ବଦଳ କଲାବେଳେ ବେଳେ ଛାଏଁ ଛାଏଁ ପୃଷ୍ଠାଟି ଘୁଞ୍ଚାଇ ଦିଆଗଲା",
+ "action-renameuser": "ବ୍ୟବହାରକାରୀଙ୍କ ନାମବଦଳା",
+ "right-renameuser": "ସଭ୍ୟମାନଙ୍କ ନାମଟି ବଦଳାଇବେ",
+ "renameuser-renamed-notice": "ଏହି ସଭ୍ୟଙ୍କ ନାମ ବଦଳାଯାଇଅଛି ।\nତଳେ ଅବଗତି ନିମନ୍ତେ ନାମ ବଦଳ ଇତିହାସ ଦିଆଗଲା ।"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/os.json b/www/wiki/extensions/Renameuser/i18n/os.json
new file mode 100644
index 00000000..61704658
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/os.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Amikeco"
+ ]
+ },
+ "renameuser": "Архайæджы ном баив",
+ "renameuserold": "Ныры ном:",
+ "renameusernew": "Ног ном:",
+ "renameuserreason": "Ном ивыны аххос:",
+ "renameusersubmit": "Афтæ уæд",
+ "log-name-renameuser": "Архайджыты нæмттæ ивыны лог"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pcd.json b/www/wiki/extensions/Renameuser/i18n/pcd.json
new file mode 100644
index 00000000..63568c65
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pcd.json
@@ -0,0 +1,18 @@
+{
+ "@metadata": {
+ "authors": [
+ "Geoleplubo"
+ ]
+ },
+ "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.",
+ "log-name-renameuser": "Jornal d'chés canjemints éd chés noms d'uzeus",
+ "right-renameuser": "Érlonmer chés uzeus"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pdc.json b/www/wiki/extensions/Renameuser/i18n/pdc.json
new file mode 100644
index 00000000..0464c931
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pdc.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Xqt"
+ ]
+ },
+ "renameuser": "Naame vum Yuuser ennere",
+ "renameuserold": "Current Yuusernaame:",
+ "renameusernew": "Nei Yuuser-Naame",
+ "renameuserreason": "Grund:",
+ "renameuserwarnings": "Warninge:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pfl.json b/www/wiki/extensions/Renameuser/i18n/pfl.json
new file mode 100644
index 00000000..44fb187b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pfl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "SPS"
+ ]
+ },
+ "renameusersubmit": "Benutzer umbenenne"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pl.json b/www/wiki/extensions/Renameuser/i18n/pl.json
new file mode 100644
index 00000000..7c75f7be
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pl.json
@@ -0,0 +1,50 @@
+{
+ "@metadata": {
+ "authors": [
+ "BeginaFelicysym",
+ "Derbeth",
+ "Leinad",
+ "Maikking",
+ "Matma Rex",
+ "Nux",
+ "Odie2",
+ "Remedios44",
+ "Sovq",
+ "Sp5uhe",
+ "WarX",
+ "Wpedzich",
+ "Chrumps"
+ ]
+ },
+ "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": "Powód:",
+ "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ń",
+ "renameuser-submit-blocklog": "Pokaż rejestr blokad użytkownika",
+ "renameusererrordoesnotexist": "Użytkownik „<nowiki>$1</nowiki>” nie istnieje",
+ "renameusererrorexists": "{{GENDER:$1|Użytkownik|Użytkowniczka}} „<nowiki>$1</nowiki>” już istnieje.",
+ "renameusererrorinvalid": "Niepoprawna nazwa użytkownika „<nowiki>$1</nowiki>”",
+ "renameuser-error-request": "Wystąpił problem z odbiorem żądania.\nCofnij 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 {{GENDER:$2|użytkownika|użytkowniczki}} „<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”.",
+ "log-name-renameuser": "Zmiany nazw użytkowników",
+ "log-description-renameuser": "To jest rejestr zmian nazw użytkowników",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|zmienił|zmieniła}} nazwę użytkownika $4 ({{PLURAL:$6|$6 edycja|$6 edycje|$6 edycji}}) na {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 zmienił(a) nazwę użytkownika $4 na {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Automatyczne przeniesienie strony {{GENDER:$2|użytkownika|użytkowniczki}} po zmianie nazwy konta z „[[User:$1|$1]]” na „[[User:$2|$2]]”",
+ "action-renameuser": "zmiana nazw użytkowników",
+ "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.\nRejestr zmian nazw kont użytkowników znajduje się poniżej."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pms.json b/www/wiki/extensions/Renameuser/i18n/pms.json
new file mode 100644
index 00000000..98c19e0a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pms.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Borichèt",
+ "Bèrto 'd Sèra",
+ "Dragonòt"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Smon-e ël registr dij blocage për l'utent",
+ "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.\nPë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.",
+ "log-name-renameuser": "Registr dj'arbatiagi",
+ "log-description-renameuser": "Sossì a l'é un registr dle modìfiche djë stranòm dj'utent",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|a l'ha arbatià}} l'utent $4 ({{PLURAL:$6|$6 modìfica|$6 modìfiche}}) an $5",
+ "logentry-renameuser-renameuser-legacier": "$1 a l'ha arbatià l'utent $4 an $5",
+ "renameuser-move-log": "Pàgina utent tramudà n'aotomàtich damëntrè ch'as arbatiava \"[[User:$1|$1]]\" an \"[[User:$2|$2]]\"",
+ "action-renameuser": "arbatié j'utent",
+ "right-renameuser": "Arnòmina j'utent",
+ "renameuser-renamed-notice": "St'utent-sì a l'é stàit arnominà.\nËl registr ëd l'arnòmina a l'é dàit sota për arferiment."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pnb.json b/www/wiki/extensions/Renameuser/i18n/pnb.json
new file mode 100644
index 00000000..21b79032
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pnb.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Khalid Mahmood"
+ ]
+ },
+ "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>$1</nowiki>\" رکھ دتا گیا اے۔",
+ "renameuser-page-exists": "صفہ $1 پہلے ای ہیگا اے تے ایدے تے اپنے آپ نئیں لکھیا جاسکدا۔",
+ "renameuser-page-moved": "صفہ $1 نوں $2 ول لجایا گیا اے۔",
+ "renameuser-page-unmoved": "صفہ $1 ، $2 ول نئیں لجایا جاسکدا۔",
+ "log-name-renameuser": "ورتن ہور ناں لاگ",
+ "renameuser-move-log": "اپنے آپ صفے ٹرے \"[[User:$1|$1]]\" دا ناں \"[[User:$2|$2]]\" پلٹدیاں ہویاں",
+ "right-renameuser": "ورتن والے دا ہور ناں",
+ "renameuser-renamed-notice": "ایس ورتن والے دا ناں بدلیا گیا اے۔\nناں بدلن والی لاگ اتے پتے لئی تھلے دتی گئی اے۔"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ps.json b/www/wiki/extensions/Renameuser/i18n/ps.json
new file mode 100644
index 00000000..e7fd00ce
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ps.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahmed-Najib-Biabani-Ibrahimkhel"
+ ]
+ },
+ "renameuser": "کارن-نوم بدلول",
+ "renameuser-linkoncontribs": "د کارن نوم بدلول",
+ "renameuser-linkoncontribs-text": "د دې کارن نوم بدلول",
+ "renameuserold": "اوسنی کارن-نوم:",
+ "renameusernew": "نوی کارن-نوم:",
+ "renameuserreason": "سبب:",
+ "renameusermove": "د کارن او د خبرو اترو مخونه (او د هغوی څېرمه مخونه) نوي نوم ته ورلېږدول",
+ "renameusersuppress": "نوي نوم ته مخ گرځونی مه جوړوه",
+ "renameuserwarnings": "ګواښنې:",
+ "renameuserconfirm": "هو، کارن-نوم بدلوم",
+ "renameusersubmit": "سپارل",
+ "renameuser-submit-blocklog": "د کارن بنديز يادښت ښکاره کول",
+ "renameusererrordoesnotexist": "د \"<nowiki>$1</nowiki>\" په نامه کوم کارن نه شته.",
+ "renameusererrorexists": "د \"<nowiki>$1</nowiki>\" په نامه يو کارن له پخوا نه شته.",
+ "renameusererrorinvalid": "د \"<nowiki>$1</nowiki>\" کارن نوم سم نه دی.",
+ "renameuser-error-request": "د غوښتنې په ترلاسه کولو کې يوه ستونزه راپېښه شوه.\nمهرباني وکړی بېرته پرشا ولاړ شی او يو ځل بيا پرې کوښښ وکړی.",
+ "renameuser-page-moved": "د $1 مخ $2 ته ولېږدل شو.",
+ "renameuser-page-unmoved": "د $1 مخ $2 ته و نه لېږدل شو.",
+ "log-name-renameuser": "د کارن-نوم يادښت",
+ "action-renameuser": "کارن-نومونه بدلول",
+ "right-renameuser": "کارن-نومونه بدلول"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pt-br.json b/www/wiki/extensions/Renameuser/i18n/pt-br.json
new file mode 100644
index 00000000..d781bb34
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pt-br.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cainamarques",
+ "Giro720",
+ "Opraco",
+ "555",
+ "Felipe L. Ewald"
+ ]
+ },
+ "renameuser": "Renomear usuário",
+ "renameuser-linkoncontribs": "renomear usuário",
+ "renameuser-linkoncontribs-text": "Renomear 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:",
+ "renameusermove": "Mover as páginas de usuário, páginas de discussão de usuário (e suas subpá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",
+ "renameuser-submit-blocklog": "Mostrar registro de bloqueios do usuário",
+ "renameusererrordoesnotexist": "O usuário \"<nowiki>$1</nowiki>\" não existe.",
+ "renameusererrorexists": "{{GENDER:$1|O usuário|A usuária|O(a) usuário(a)}} \"<nowiki>$1</nowiki>\" já existe.",
+ "renameusererrorinvalid": "O nome de usuário \"<nowiki>$1</nowiki>\" é inválido.",
+ "renameuser-error-request": "Houve um problema ao receber este pedido.\nPor favor, retorne e tente novamente.",
+ "renameuser-error-same-user": "Não é possível renomear um usuário para o nome anterior.",
+ "renameusersuccess": "{{GENDER:$2|O usuário|A usuária|O(a) usuário(a)}} \"<nowiki>$1</nowiki>\" foi renomeado para \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "A página $1 já existe e não pode ser substituída automaticamente.",
+ "renameuser-page-moved": "A página $1 foi movida para $2.",
+ "renameuser-page-unmoved": "A página $1 não pode ser movida para $2.",
+ "log-name-renameuser": "Registro de renomeações de usuários",
+ "log-description-renameuser": "Este é um registro de alterações de nomes de usuários.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|renomeou}} $4 (com $6 ediç{{PLURAL:$6|ão|ões}}) para {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 renomeou $4 para {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Páginas movidas automaticamente ao renomear {{GENDER:$2|o usuário|a usuária}} \"[[User:$1|$1]]\" para \"[[User:$2|$2]]\"",
+ "action-renameuser": "renomear usuários",
+ "right-renameuser": "Renomear usuários",
+ "renameuser-renamed-notice": "Este usuário foi renomeado.\nO registro de renomeação é fornecido abaixo, para referência."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/pt.json b/www/wiki/extensions/Renameuser/i18n/pt.json
new file mode 100644
index 00000000..998b2cca
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/pt.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "Giro720",
+ "Hamilton Abreu",
+ "Luckas",
+ "Malafaya",
+ "Opraco",
+ "Waldir",
+ "555",
+ "Vitorvicentevalente"
+ ]
+ },
+ "renameuser": "Alterar o nome do utilizador",
+ "renameuser-linkoncontribs": "alterar o 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 atual:",
+ "renameusernew": "Novo nome de utilizador:",
+ "renameuserreason": "Motivo:",
+ "renameusermove": "Mover as páginas e subpáginas de utilizador e as respetivas discussões para o novo nome",
+ "renameusersuppress": "Não criar redirecionamentos para o novo nome",
+ "renameuserreserve": "Impedir novos usos do antigo nome de utilizador",
+ "renameuserwarnings": "Alertas:",
+ "renameuserconfirm": "Sim, alterar o nome do utilizador",
+ "renameusersubmit": "Enviar",
+ "renameuser-submit-blocklog": "Mostrar o registo de bloqueios do utilizador",
+ "renameusererrordoesnotexist": "O utilizador \"<nowiki>$1</nowiki>\" não existe.",
+ "renameusererrorexists": "{{GENDER:$1|O utilizador|A utilizadora|O(a) utilizador(a)}} \"<nowiki>$1</nowiki>\" já existe.",
+ "renameusererrorinvalid": "O nome de utilizador \"<nowiki>$1</nowiki>\" é inválido.",
+ "renameuser-error-request": "Houve um problema ao receber este pedido.\nVolte atrás e tente de novo, por favor.",
+ "renameuser-error-same-user": "Não é possível alterar o nome de um utilizador para o nome anterior.",
+ "renameusersuccess": "O nome {{GENDER:$2|do utilizador|da utilizadora|do(a) utilizador(a)}} \"<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.",
+ "log-name-renameuser": "Registo de alteração do nome de utilizadores",
+ "log-description-renameuser": "Este é um registo de alterações efetuadas a nomes de utilizadores.",
+ "logentry-renameuser-renameuser": "$1 alterou o nome {{GENDER:$2|do utilizador|da utilizadora}} $4 (com {{PLURAL:$6|$6 edição|$6 edições}}) para {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 alterou o nome {{GENDER:$7|do utilizador|da utilizadora}} $4 para $5",
+ "renameuser-move-log": "Página movida automaticamente ao alterar o nome {{GENDER:$2|do utilizador|da utilizadora}} \"[[User:$1|$1]]\" para \"[[User:$2|$2]]\"",
+ "action-renameuser": "alterar nomes de utilizadores",
+ "right-renameuser": "Alterar nomes de utilizadores",
+ "renameuser-renamed-notice": "Este nome de utilizador foi alterado.\nÉ apresentado abaixo o registo de alteração do nome de utilizadores."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/qqq.json b/www/wiki/extensions/Renameuser/i18n/qqq.json
new file mode 100644
index 00000000..ceb62f46
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/qqq.json
@@ -0,0 +1,52 @@
+{
+ "@metadata": {
+ "authors": [
+ "EugeneZelenko",
+ "Jon Harald Søby",
+ "Meno25",
+ "Nemo bis",
+ "Nike",
+ "SPQRobin",
+ "Shirayuki",
+ "Siebrand",
+ "Tacsipacsi",
+ "The Evil IP address",
+ "Umherirrender",
+ "Freddy2001",
+ "Metalhead64"
+ ]
+ },
+ "renameuser": "{{doc-special|RenameUser}}\n{{Identical|Rename user}}",
+ "renameuser-linkoncontribs": "Link description used on [[Special:Contributions]] and [[Special:DeletedContributions]]. Only added if a user has rights to rename users.\n{{Identical|Rename user}}",
+ "renameuser-linkoncontribs-text": "Tooltip for {{msg-mw|renameuser-linkoncontribs}}.",
+ "renameuser-desc": "{{desc|name=Rename user|url=https://www.mediawiki.org/wiki/Extension:Renameuser}}",
+ "renameuser-summary": "{{notranslate}}",
+ "renameuserold": "Used as label for the \"Old username\" input box in [[Special:RenameUser]].\n\nSee also:\n* {{msg-mw|Renameusernew}}",
+ "renameusernew": "Used as label for the \"New username\" input box in [[Special:RenameUser]].\n\nSee also:\n* {{msg-mw|Renameuserold}}",
+ "renameuserreason": "Used as label for the \"Reason to rename user\" input box in [[Special:RenameUser]].\n{{Identical|Reason}}",
+ "renameusermove": "Used as label for the \"Move pages\" checkbox in the \"Rename user\" form in [[Special:RenameUser]].",
+ "renameusersuppress": "Used as label for the \"Suppress redirect\" checkbox in the \"Rename user\" form in [[Special:RenameUser]].",
+ "renameuserreserve": "Option to block the old username (after it has been renamed) from being used again.",
+ "renameuserwarnings": "Used as label in [[Special:RenameUser]].\n\nFollowed by a list of the warnings.\n{{Identical|Warning}}",
+ "renameuserconfirm": "Used as label for the \"Confirm action\" checkbox in the \"Rename user\" form in [[Special:RenameUser]].",
+ "renameusersubmit": "Used as label for the Submit button in the \"Rename user\" form in [[Special:RenameUser]].\n{{Identical|Submit}}",
+ "renameuser-submit-blocklog": "Button text. When clicked, the block log entries for a given user will be displayed.",
+ "renameusererrordoesnotexist": "Used as error message. Parameters:\n* $1 - username\nSee also:\n* {{msg-mw|Renameusererrorexists}}",
+ "renameusererrorexists": "Used as error message. Parameters:\n* $1 - username, can be used for GENDER\nSee also:\n* {{msg-mw|Renameusererrordoesnotexist}}",
+ "renameusererrorinvalid": "Used as error message when renaming user in [[Special:Renameuser]]. Parameters:\n* $1 - old username, or new username",
+ "renameuser-error-request": "Used as error message when renaming user in [[Special:Renameuser]].",
+ "renameuser-error-same-user": "Used as error message when renaming user in [[Special:Renameuser]].",
+ "renameusersuccess": "Used as success message when renaming user in [[Special:Renameuser]]. Parameters:\n* $1 - old username\n* $2 - new username, can be used for GENDER",
+ "renameuser-page-exists": "Used when renaming user in [[Special:Renameuser]]. Parameters:\n* $1 - new page title (with link)",
+ "renameuser-page-moved": "Used as success message when renaming user in [[Special:Renameuser]]. Parameters:\n* $1 - old page title (with link)\n* $2 - new page title (with link)\nSee also:\n* {{msg-mw|Renameuser-page-unmoved}}",
+ "renameuser-page-unmoved": "Used as failure message when renaming user in [[Special:Renameuser]]. Parameters:\n* $1 - old page title (with link)\n* $2 - new page title (with link)\nSee also:\n* {{msg-mw|Renameuser-page-moved}}",
+ "log-name-renameuser": "{{doc-logpage}}\n\nAs well as log page title and page header for [[Special:Log/renameuser]].",
+ "log-description-renameuser": "Log description on [[Special:Log/renameuser]].",
+ "logentry-renameuser-renameuser": "{{logentry|[[Special:Log/renameuser]]}}\nParameters:\n* $4 - the old name of the renamed user\n* $5 - the new name of the renamed user\n* $6 - number of edits made by the user\n* $7 - (Optional) new username, for GENDER support",
+ "logentry-renameuser-renameuser-legacier": "{{logentry|[[Special:Log/renameuser]]}}\nParameters:\n* $4 - the old name of the renamed user\n* $5 - the new name of the renamed user\n* $7 - (Optional) new username, for GENDER support",
+ "logentry-renameuser-renameuser-legaciest": "Used in [[Special:Log/renameuser]]. {{logentry}}\nNote that only user name is included in this legacy log entry, everything else is hardcoded into log comment.",
+ "renameuser-move-log": "Reason for a page move when a page is moved because of a user rename. Parameters:\n* $1 - the old username\n* $2 - the new username, can be used for GENDER",
+ "action-renameuser": "{{Doc-action|renameuser}}\n{{Identical|Rename user}}",
+ "right-renameuser": "{{doc-right|renameuser}}\n{{Identical|Rename user}}",
+ "renameuser-renamed-notice": "Parameters:\n* $1 - (Optional) username, for GENDER support"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/qu.json b/www/wiki/extensions/Renameuser/i18n/qu.json
new file mode 100644
index 00000000..84bb7b20
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/qu.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "AlimanRuna"
+ ]
+ },
+ "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": "Kayrayku:",
+ "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.",
+ "log-name-renameuser": "Ruraqpa sutin hukchay hallch'a",
+ "logentry-renameuser-renameuser": "$1 sutiyuqqa {{GENDER:$2|hukchan}} $4 nisqa {{GENDER:$7|ruraqpa}} sutinta ({{PLURAL:$6|$6 rurasqan|$6 rurasqankuna}}) $5 nisqa sutiman",
+ "logentry-renameuser-renameuser-legacier": "$1 sutiyuqqa hukchan $4 nisqa {{GENDER:$7|ruraqpa}} sutinta $5 nisqa sutiman",
+ "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.\nKay qatiqpiqa hukchay hallch'atam rikunki."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/rm.json b/www/wiki/extensions/Renameuser/i18n/rm.json
new file mode 100644
index 00000000..9b25fed6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/rm.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kazu89"
+ ]
+ },
+ "log-name-renameuser": "Protocol da midadas da num d'utilisader"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/rmy.json b/www/wiki/extensions/Renameuser/i18n/rmy.json
new file mode 100644
index 00000000..c9ef87d9
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/rmy.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Desiphral"
+ ]
+ },
+ "renameusersubmit": "De le jeneske aver nav"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ro.json b/www/wiki/extensions/Renameuser/i18n/ro.json
new file mode 100644
index 00000000..ff5004ce
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ro.json
@@ -0,0 +1,44 @@
+{
+ "@metadata": {
+ "authors": [
+ "Cin",
+ "Emily",
+ "Firilacroco",
+ "KlaudiuMihaila",
+ "Memo18",
+ "Minisarm",
+ "Stelistcristi"
+ ]
+ },
+ "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": "Motiv:",
+ "renameusermove": "Redenumește 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",
+ "renameuser-submit-blocklog": "Arată jurnalul blocărilor utilizatorului",
+ "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.\nVă 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.",
+ "log-name-renameuser": "Jurnal redenumiri utilizatori",
+ "log-description-renameuser": "Acesta este un jurnal al modificărilor de nume de utilizator",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|a redenumit}} utilizatorul $4 ({{PLURAL:$6|o contribuție|$6 contribuții|$6 de contribuții}}) în $5",
+ "logentry-renameuser-renameuser-legacier": "$1 a redenumit utilizatorul $4 în $5",
+ "renameuser-move-log": "Pagină mutată automat la redenumirea utilizatorului de la „[[User:$1|$1]]” la „[[User:$2|$2]]”",
+ "action-renameuser": "redenumește utilizatori",
+ "right-renameuser": "Redenumește utilizatori",
+ "renameuser-renamed-notice": "Acestui utilizator i-a fost schimbat numele.\nJurnalul redenumirilor este furnizat mai jos pentru referință."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/roa-tara.json b/www/wiki/extensions/Renameuser/i18n/roa-tara.json
new file mode 100644
index 00000000..108f5035
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/roa-tara.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joetaras"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Fà vedè l'archivije de le blocche pe l'utende",
+ "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 />\nPe 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.",
+ "log-name-renameuser": "Archivije de le renomenaminde de le utinde",
+ "log-description-renameuser": "Quiste jè l'archivije de le cangiaminde de le nome de l'utinde.",
+ "logentry-renameuser-renameuser": "$1 ave {{GENDER:$2|renomenate}} l'utende $4 ({{PLURAL:$6|$6 cangiamende|$6 cangiaminde}}) jndr'à $5",
+ "logentry-renameuser-renameuser-legacier": "$1 ave renomenate l'utende $4 jndr'à $5",
+ "renameuser-move-log": "Pàgena spustate automaticamende quanne è renomenate l'utende \"[[User:$1|$1]]\" jndr'à \"[[User:$2|$2]]\"",
+ "action-renameuser": "renomene l'utinde",
+ "right-renameuser": "Rennomene l'utinde",
+ "renameuser-renamed-notice": "Stu utende ha state renomenate.\nL'archivije de le renomenaziune 'u iacchie aqquà sotte cumme referimende."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ru.json b/www/wiki/extensions/Renameuser/i18n/ru.json
new file mode 100644
index 00000000..0e3ae0e3
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ru.json
@@ -0,0 +1,48 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ahonc",
+ "Amire80",
+ "Anonim.one",
+ "DCamer",
+ "DR",
+ "EugeneZelenko",
+ "Innv",
+ "KPu3uC B Poccuu",
+ "Kaganer",
+ "Александр Сигачёв",
+ "Okras"
+ ]
+ },
+ "renameuser": "Переименовать участника",
+ "renameuser-linkoncontribs": "переименовать участника",
+ "renameuser-linkoncontribs-text": "Переименовать этого участника",
+ "renameuser-desc": "Добавляет [[Special:RenameUser|возможность]] переименования пользователей (требуется право <code>renameuser</code>)",
+ "renameuserold": "Имя в настоящий момент:",
+ "renameusernew": "Новое имя:",
+ "renameuserreason": "Причина:",
+ "renameusermove": "Переименовать также страницу участника, личное обсуждение и их подстраницы",
+ "renameusersuppress": "Не создавать перенаправлений на новое имя",
+ "renameuserreserve": "Зарезервировать старое имя участника для использования в будущем",
+ "renameuserwarnings": "Предупреждения:",
+ "renameuserconfirm": "Да, переименовать участника",
+ "renameusersubmit": "Выполнить",
+ "renameuser-submit-blocklog": "Показать журнал блокировок участника",
+ "renameusererrordoesnotexist": "Участник с именем «<nowiki>$1</nowiki>» не зарегистрирован.",
+ "renameusererrorexists": "{{GENDER:$1|Участник|Участница}} с именем «<nowiki>$1</nowiki>» уже зарегистрирован.",
+ "renameusererrorinvalid": "Недопустимое имя участника «<nowiki>$1</nowiki>»",
+ "renameuser-error-request": "Возникли затруднения с получением запроса. Пожалуйста, вернитесь назад и повторите ещё раз.",
+ "renameuser-error-same-user": "Вы не можете переименовать участника в тоже имя, что и было раньше.",
+ "renameusersuccess": "{{GENDER:$2|Участник|Участница}} «<nowiki>$1</nowiki>» был переименован в «<nowiki>$2</nowiki>».",
+ "renameuser-page-exists": "Страница $1 уже существует и не может быть перезаписана автоматически.",
+ "renameuser-page-moved": "Страница $1 была переименована в $2.",
+ "renameuser-page-unmoved": "Страница $1 не может быть переименована в $2.",
+ "log-name-renameuser": "Журнал переименований участников",
+ "log-description-renameuser": "Это журнал произведённых переименований зарегистрированных участников.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|переименовал}} участника $4 ({{PLURAL:$6|$6 правка|$6 правки|$6 правок}}) в {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 переименовал {{GENDER:$7|участника|участницу}} $4 в $5",
+ "renameuser-move-log": "Автоматически переименованная страница в связи с переименованием учётной записи {{GENDER:$2|участника|участницы}} «[[User:$1|$1]]» в «[[User:$2|$2]]»",
+ "action-renameuser": "переименование участников",
+ "right-renameuser": "переименование участников",
+ "renameuser-renamed-notice": "Этот участник был переименован.\nНиже для справки приведён журнал переименований."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/rue.json b/www/wiki/extensions/Renameuser/i18n/rue.json
new file mode 100644
index 00000000..a484128b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/rue.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gazeb"
+ ]
+ },
+ "renameuser": "Переменоватихоснователя",
+ "renameuser-linkoncontribs": "переменовати хоснователя",
+ "renameuser-linkoncontribs-text": "Переменовати того хоснователя",
+ "renameuser-desc": "Придасть [[Special:RenameUser|шпеціалну сторінку]] про переменованя хоснователя (треба права \"renameuser\")",
+ "renameuserold": "Актуалне мено:",
+ "renameusernew": "Нове мено:",
+ "renameuserreason": "Причіна переменованя:",
+ "renameusermove": "Переменовати тыж сторінкы хоснователя, сторінкы діскузії і їх підсторінкы",
+ "renameusersuppress": "Не створюйте напрямлїня на нову назву",
+ "renameuserreserve": "Блоковати нову реґістрацію старого мена хоснователя",
+ "renameuserwarnings": "Варованя:",
+ "renameuserconfirm": "Гей, переменовати хоснователя",
+ "renameusersubmit": "Выконати",
+ "renameuser-submit-blocklog": "Вказати книгу заблокованя того хоснователя",
+ "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.",
+ "log-name-renameuser": "Лоґ переменовань хоснователїв",
+ "renameuser-move-log": "Автоматічне переменованя сторінкы почас переменованя хоснователя „[[User:$1|$1]]“ на „[[User:$2|$2]]“",
+ "action-renameuser": "переменовати хоснователїв",
+ "right-renameuser": "Переменованя хоснователїв",
+ "renameuser-renamed-notice": "Тот хоснователь быв переменованый.\nПро перегляд є ниже указаный выпис з лоґу переменовань хоснователїв."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sa.json b/www/wiki/extensions/Renameuser/i18n/sa.json
new file mode 100644
index 00000000..a5994913
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sa.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ansumang",
+ "Shubha",
+ "NehalDaveND"
+ ]
+ },
+ "renameuser": "सदस्यानां नाम परिवर्त्यताम्",
+ "renameuser-linkoncontribs": "यॊजकनाम परिवर्त्यताम्",
+ "renameuser-linkoncontribs-text": "अस्य सदस्यस्य नाम परिवर्त्यताम्",
+ "renameuser-desc": "सदस्यस्य पुनर्नामकरणं कर्तुं (''सदस्यपुनर्नाम''अधिकारः अपेक्षितः) [[Special:RenameUser|विशिष्टपृष्ठम्]] योजयति",
+ "renameuserold": "प्रस्तुतयोजकनाम :",
+ "renameusernew": "नूतनयोजकनाम :",
+ "renameuserreason": "नामपरिवर्तनस्य कारणम् :",
+ "renameusermove": "सदस्यः सम्भाषणपृष्ठं (तेषाम् उपपृष्ठानि) च नूतननाम प्रति चाल्यताम्",
+ "renameusersuppress": "नूतननाम्नः पुनर्निदेशनं न सृज्यताम्",
+ "renameuserreserve": "भविष्ये उपयोगाय पुरातनं सदस्यनाम अवरुद्ध्यताम्",
+ "renameuserwarnings": "पूर्वसूचना :",
+ "renameuserconfirm": "आम्, सदस्यस्य पुनर्नाम दीयताम्",
+ "renameusersubmit": "उपस्थाप्यताम्",
+ "renameuser-submit-blocklog": "सदस्यस्य अवरोधवृत्तं दर्श्यताम्",
+ "renameusererrordoesnotexist": "सदस्यः \"<nowiki>$1</nowiki>\" न विद्यते ।",
+ "renameusererrorexists": "सदस्यः \"<nowiki>$1</nowiki>\" पूर्वमेव विद्यते ।",
+ "renameusererrorinvalid": "सदस्यनाम \"<nowiki>$1</nowiki>\" दोषयुक्तं विद्यते ।",
+ "renameuser-error-request": "निवेदनस्य प्राप्तौ कश्चन क्लेशः आसीत् ।\nकृपया प्रतिगत्य प्रयतताम् ।",
+ "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 प्रति चालनम् अशक्यम् ।",
+ "log-name-renameuser": "परिवर्तितयोजकनाम्नां वृत्तम्",
+ "renameuser-move-log": "\"[[User:$1|$1]]\" तः \"[[User:$2|$2]]\" प्रति योजकनाम्नः परिवर्तनावसरे एव योजकपृष्ठं स्वयं चालितम् ।",
+ "action-renameuser": "सदस्यानां नाम परिवर्त्यताम्",
+ "right-renameuser": "सदस्यानां नाम परिवर्त्यताम्",
+ "renameuser-renamed-notice": "अस्य सदस्यस्य पुनर्नामकरणं कृतमस्ति ।\nपरिवर्तनवृत्तम् अधः आधाररूपेण दत्तमस्ति ।"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sah.json b/www/wiki/extensions/Renameuser/i18n/sah.json
new file mode 100644
index 00000000..b8d53248
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sah.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "HalanTul"
+ ]
+ },
+ "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 ааттанар кыаҕа суох.",
+ "log-name-renameuser": "Кыттааччылар ааттарын уларытыыларын сурунаала",
+ "renameuser-move-log": "«[[User:$1|$1]]» аата «[[User:$2|$2]]» буолбутунан аптамаатынан",
+ "right-renameuser": "Кыттааччылар ааттарын уларытыы",
+ "renameuser-renamed-notice": "Бу кыттааччы аата уларыйбыт.\nАллара аат уларыйыытын сурунаала көстөр."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/saz.json b/www/wiki/extensions/Renameuser/i18n/saz.json
new file mode 100644
index 00000000..bd722d95
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/saz.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "MooRePrabu"
+ ]
+ },
+ "renameuser": "ꢮꢮ꣄ꢬꢸꢥꢵꢬ꣄ ꢥꢵꢮ꣄ ꢪꢬ꣄ꢗꢶ",
+ "renameusernew": "ꢥꣁꢮ꣄ꢮꣁ ꢮꢮ꣄ꢬꢸꢥꢵꢬ꣄ ꢥꢵꢮ꣄"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sc.json b/www/wiki/extensions/Renameuser/i18n/sc.json
new file mode 100644
index 00000000..9d6392bd
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sc.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Andria",
+ "Marzedu",
+ "Taxandru"
+ ]
+ },
+ "renameusernew": "Nou nùmene impitadore:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/scn.json b/www/wiki/extensions/Renameuser/i18n/scn.json
new file mode 100644
index 00000000..200d63ec
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/scn.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gmelfi",
+ "Santu",
+ "Pippinu"
+ ]
+ },
+ "renameuser": "Rinòmina utenti",
+ "renameuser-linkoncontribs": "Rinòmina l'utenti",
+ "renameuser-desc": "Funzioni pi rinuminari n'utenti (addumanna li diritti di ''renameuser'')",
+ "renameuserold": "Nomu utenti dô prisenti:",
+ "renameusernew": "Novu nomu utenti:",
+ "renameuserreason": "Mutivu:",
+ "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.",
+ "log-name-renameuser": "Utenti ri-numinati",
+ "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"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sgs.json b/www/wiki/extensions/Renameuser/i18n/sgs.json
new file mode 100644
index 00000000..943bafa0
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sgs.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hugo.arg"
+ ]
+ },
+ "renameuserold": "Esams nauduotuojė vards:",
+ "renameusernew": "Naus nauduotuojė vards:",
+ "renameuserwarnings": "Pertarėmā:",
+ "renameusersuccess": "Nauduotuos \"<nowiki>$1</nowiki>\" bova parvadėnts i \"<nowiki>$2</nowiki>\".",
+ "log-name-renameuser": "Nauduotuoju pervadėnėma sārašos"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sh.json b/www/wiki/extensions/Renameuser/i18n/sh.json
new file mode 100644
index 00000000..ae1a22c7
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sh.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kolega2357",
+ "OC Ripper"
+ ]
+ },
+ "renameuser": "Promijeni ime korisnika",
+ "renameuser-linkoncontribs": "preimenuj korisnika",
+ "renameuser-linkoncontribs-text": "Preimenuj ovog korisnika",
+ "renameuser-desc": "Preimenuj korisnika",
+ "renameuserold": "Trenutno korisničko ime:",
+ "renameusernew": "Novo korisničko ime:",
+ "renameuserreason": "Razlog:",
+ "renameusermove": "Premjesti korisnikove stranice (glavnu, stranicu za razgovor i podstranice, ako postoje) na novo ime",
+ "renameusersuppress": "Ne pravi preusmerenja na novo korisničko ime",
+ "renameuserreserve": "Blokiraj staro korisničko ime za dalju upotrebu",
+ "renameuserwarnings": "Upozorenja:",
+ "renameuserconfirm": "Da, preimenuj korisnika",
+ "renameusersubmit": "Unesi",
+ "renameuser-submit-blocklog": "Evidencija blokiranja za korisnika",
+ "renameusererrordoesnotexist": "Korisničko ime \"<nowiki>$1</nowiki>\" ne postoji",
+ "renameusererrorexists": "Korisničko ime \"<nowiki>$1</nowiki>\" već postoji",
+ "renameusererrorinvalid": "Korisničko ime \"<nowiki>$1</nowiki>\" ne valja",
+ "renameuser-error-request": "Nastao je problem prilikom primanja zahteva.\nMolimo vas pokušajte ponovo.",
+ "renameuser-error-same-user": "Ne možete preimenovati korisnika u isto ime kao i pre.",
+ "renameusersuccess": "Korisnik \"<nowiki>$1</nowiki>\" je preimenovan u \"<nowiki>$2</nowiki>\"",
+ "renameuser-page-exists": "Stranica $1 već postoji i ne može se automatski presnimiti.",
+ "renameuser-page-moved": "Stranica $1 je premeštena na $2.",
+ "renameuser-page-unmoved": "Strana $1 se ne može premestiti na $2.",
+ "log-name-renameuser": "Evidencija preimenovanja",
+ "log-description-renameuser": "Ovo je evidencija izmjena preimenovanja korisnika.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|preimenovao}} korisnika $4 ({{PLURAL:$6|$6 edit|$6 edits}}) na $5",
+ "logentry-renameuser-renameuser-legacier": "$1 preimenovao korisnika $4 na $5",
+ "renameuser-move-log": "Automatski premeštena stranica dok je korisnik \"[[User:$1|$1]]\" preimenovan u \"[[User:$2|$2]]\"",
+ "action-renameuser": "preimenovanje korisnika",
+ "right-renameuser": "preimenovanje korisničkih imena",
+ "renameuser-renamed-notice": "Ovom korisniku je promenjeno ime.\nEvidencija promena imena je priložena ispod, kao informacija."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/si.json b/www/wiki/extensions/Renameuser/i18n/si.json
new file mode 100644
index 00000000..e3d4efd6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/si.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Budhajeewa",
+ "තඹරු විජේසේකර",
+ "නන්දිමිතුරු",
+ "පසිඳු කාවින්ද",
+ "ශ්වෙත"
+ ]
+ },
+ "renameuser": "පරිශීලකයා යළි-නම්කරන්න",
+ "renameuser-linkoncontribs": "පරිශීලකයා යළි-නම්කරන්න",
+ "renameuser-linkoncontribs-text": "මෙම පරිශීලකයා ප්‍රති-නම් කරන්න",
+ "renameuser-desc": "පරිශීලකයෙක් යළි-නම්කරනු වස් [[Special:RenameUser|විශේෂ පිටුවක්]] එක් කරන්න (''renameuser'' අයිතිය අවශ්‍යයි)",
+ "renameuserold": "වත්මන් පරිශීලක නාමය:",
+ "renameusernew": "නව පරිශීලක නාමය:",
+ "renameuserreason": "හේතුව:",
+ "renameusermove": "පරිශීලක හා සාකච්ඡා පිටු (හා ඒවායේ උපපිටු) නව නම වෙතට ගෙන යන්න",
+ "renameusersuppress": "යළි යොමුවන් නම නාමයේ සැකසීමෙන් වළකින්න.",
+ "renameuserreserve": "පැරණි පරිශීලක නම අනාගත භාවිතයෙන් වාරණය කරන්න",
+ "renameuserwarnings": "අවවාදයන්:",
+ "renameuserconfirm": "ඔව්, පරිශීලකයා යළි-නම්කරන්න",
+ "renameusersubmit": "යොමන්න",
+ "renameuser-submit-blocklog": "පරිශීලක සඳහා වාරණ ලඝු සටහන පෙන්වන්න",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" පරිශීලකයා නොපවතී.",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" පරිශීලකයා දැනටමත් පවතියි.",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" පරිශීලක නාමය අනීතිකයි.",
+ "renameuser-error-request": "ඉල්ලීම ලැබීමේ දෝෂයක් හට ගැනිනි.\nකරුණාකර ආපසු ගොස් නැවත උත්සාහ කරන්න.",
+ "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 වෙත ගෙනයා නොහැක.",
+ "log-name-renameuser": "පරිශීලක ප්‍රතිනම්කෙරුම් ලොගය",
+ "log-description-renameuser": "මෙය පරිශීලක නාම වෙනස්වීම් පිළිබඳ ලඝු-සටහනකි.",
+ "renameuser-move-log": "පරිශීලක \"[[User:$1|$1]]\", \"[[User:$2|$2]]\" වෙත ප්‍රතිනම්කරන අතරතුර පිටුව ස්‍වයංක්‍රීයව ගෙනයන ලදී",
+ "action-renameuser": "පරිශීලකයන් ප්‍රතිනම් කරන්න",
+ "right-renameuser": "පරිශීලකයන් ප්‍රතිනම් කරන්න",
+ "renameuser-renamed-notice": "මෙම පරිශීලකයා ප්‍රතිනම්කර ඇත.\nප්‍රතිනම්කෙරුම් ලඝු-සටහන පහත දක්වා ඇත."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sk.json b/www/wiki/extensions/Renameuser/i18n/sk.json
new file mode 100644
index 00000000..8f873cb2
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sk.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Helix84",
+ "Jkjk",
+ "KuboF"
+ ]
+ },
+ "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:",
+ "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ť",
+ "renameuser-submit-blocklog": "Zobraziť záznam blokovaní používateľa",
+ "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.",
+ "log-name-renameuser": "Záznam premenovaní používateľov",
+ "log-description-renameuser": "Toto je záznam premenovaní používateľov",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|premenoval|premenovala}} používateľa $4 ({{PLURAL:$6|$6 úprava|$6 úpravy|$6 úprav}}) na $5",
+ "logentry-renameuser-renameuser-legacier": "$1 premenoval používateľa $4 na $5",
+ "renameuser-move-log": "Automaticky presunutá stránka počas premenovania používateľa „[[User:$1|$1]]“ na „[[User:$2|$2]]“",
+ "action-renameuser": "premenovať používateľov",
+ "right-renameuser": "Premenovávať používateľov",
+ "renameuser-renamed-notice": "Tento používateľ bol premenovaný.\nDolu nájdete záznam premenovaní."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/skr-arab.json b/www/wiki/extensions/Renameuser/i18n/skr-arab.json
new file mode 100644
index 00000000..ef7f21aa
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/skr-arab.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Saraiki"
+ ]
+ },
+ "log-name-renameuser": "ورتݨ آلیاں دے ناں وٹاوݨ دا لاگ"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sl.json b/www/wiki/extensions/Renameuser/i18n/sl.json
new file mode 100644
index 00000000..5a416b11
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sl.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dbc334"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Pokaži dnevnik blokiranja uporabnika",
+ "renameusererrordoesnotexist": "Uporabnik »<nowiki>$1</nowiki>« ne obstaja.",
+ "renameusererrorexists": "{{GENDER:$1|Uporabnik|Uporabnica}} »<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.\nProsimo, pojdite nazaj in poskusite znova.",
+ "renameuser-error-same-user": "Uporabnika ne morete preimenovati v isto stvar kot prej.",
+ "renameusersuccess": "{{GENDER:$2|Uporabnika|Uporabnico}} »<nowiki>$1</nowiki>« smo preimenovali 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.",
+ "log-name-renameuser": "Dnevnik preimenovanj uporabnikov",
+ "log-description-renameuser": "Prikazan je dnevnik sprememb uporabniških imen.",
+ "logentry-renameuser-renameuser": "$1 je {{GENDER:$2|preimenoval|preimenovala|preimenoval(-a)}} {{GENDER:$7|uporabnika|uporabnico}} $4 ({{PLURAL:$6|$6 urejanje|$6 urejanji|$6 urejanja|$6 urejanj}}) v $5",
+ "logentry-renameuser-renameuser-legacier": "$1 je preimenoval(-a) {{GENDER:$1|uporabnika|uporabnico}} $4 v $5",
+ "renameuser-move-log": "Samodejno prestavljanje strani pri preimenovanju {{GENDER:$1|uporabnika|uporabnice}} »[[User:$1|$1]]« v »[[User:$2|$2]]«",
+ "action-renameuser": "preimenovanje uporabnikov",
+ "right-renameuser": "Preimenovanje uporabnikov",
+ "renameuser-renamed-notice": "Ta uporabnik je bil preimenovan.\nDnevnik preimenovanja je naveden spodaj."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sli.json b/www/wiki/extensions/Renameuser/i18n/sli.json
new file mode 100644
index 00000000..c13cf91e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sli.json
@@ -0,0 +1,10 @@
+{
+ "@metadata": {
+ "authors": [
+ "Schläsinger"
+ ]
+ },
+ "renameuserold": "Bisheriger Benutzernoame:",
+ "renameusernew": "Neuer Benutzernoame:",
+ "renameuserreason": "Grund:"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sq.json b/www/wiki/extensions/Renameuser/i18n/sq.json
new file mode 100644
index 00000000..0a81a002
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sq.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Dori",
+ "FatosMorina",
+ "Mikullovci11",
+ "Olsi",
+ "Ammartivari"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Shfaq shënimet e bllokimit për përdoruesin",
+ "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.\nJu 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.",
+ "log-name-renameuser": "Regjistri i riemërtimeve",
+ "logentry-renameuser-renameuser-legacier": "$1 riemëroi përdoruesin $4 në $5",
+ "renameuser-move-log": "Lëvizi faqen automatikisht kur riemëroi përdoruesin \"[[User:$1|$1]]\" në \"[[User:$2|$2]]\"",
+ "action-renameuser": "riemëro përdoruesit",
+ "right-renameuser": "Riemëroni përdorueset",
+ "renameuser-renamed-notice": "Ky përdorues është riemëruar.\nRegjistri i riemërimit është poshtë për referencë."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sr-ec.json b/www/wiki/extensions/Renameuser/i18n/sr-ec.json
new file mode 100644
index 00000000..60767572
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sr-ec.json
@@ -0,0 +1,45 @@
+{
+ "@metadata": {
+ "authors": [
+ "FriedrickMILBarbarossa",
+ "Milicevic01",
+ "Millosh",
+ "Rancher",
+ "Sasa Stefanovic",
+ "Жељко Тодоровић",
+ "Михајло Анђелковић",
+ "Сербијана"
+ ]
+ },
+ "renameuser": "Преименуј корисника",
+ "renameuser-linkoncontribs": "преименуј корисника",
+ "renameuser-linkoncontribs-text": "Преименуј овог корисника",
+ "renameuser-desc": "Додаје [[Special:RenameUser|посебну страницу]] за преименовање корисника (потребно право ''renameuser'')",
+ "renameuserold": "Тренутно корисничко име:",
+ "renameusernew": "Ново корисничко име:",
+ "renameuserreason": "Разлог:",
+ "renameusermove": "Премести корисничку страницу и страницу за разговор (и њихове подстранице) на нови назив",
+ "renameusersuppress": "Не правите преусмерења на нови назив",
+ "renameuserreserve": "Блокирај старо корисничко име за даљу употребу",
+ "renameuserwarnings": "Упозорења:",
+ "renameuserconfirm": "Да, преименуј корисника",
+ "renameusersubmit": "Пошаљи",
+ "renameuser-submit-blocklog": "Дневник блокирања за корисника",
+ "renameusererrordoesnotexist": "Корисник „<nowiki>$1</nowiki>“ не постоји.",
+ "renameusererrorexists": "{{GENDER:$1|Корисник}} „<nowiki>$1</nowiki>“ већ постоји.",
+ "renameusererrorinvalid": "Погрешно корисничко име: „<nowiki>$1</nowiki>“",
+ "renameuser-error-request": "Дошло је до проблема при примању захтева.\nВратите се назад и покушајте поново.",
+ "renameuser-error-same-user": "Не можете преименовати корисника у исто име.",
+ "renameusersuccess": "{{GENDER:$2|Корисник|Корисница}} „<nowiki>$1</nowiki>“ је {{GENDER:$2|преименован|преименована}} на „<nowiki>$2</nowiki>“",
+ "renameuser-page-exists": "Страница $1 већ постоји и не може се заменити.",
+ "renameuser-page-moved": "Страница $1 је премештена на $2.",
+ "renameuser-page-unmoved": "Страница $1 не може да се премести на $2.",
+ "log-name-renameuser": "Дневник преименовања корисника",
+ "log-description-renameuser": "Испод је списак преименованих корисника.",
+ "logentry-renameuser-renameuser": "$1 је {{GENDER:$2|преименовао|преименовала}} {{GENDER:$7|корисника|korisnicu}} $4 ({{PLURAL:$6|$6 измена|$6 измене|$6 измена}}) у $5",
+ "logentry-renameuser-renameuser-legacier": "$1 је преименовао {{GENDER:$7|корисника|корисницу}} $4 у $5",
+ "renameuser-move-log": "Аутоматско премештање странице због преименовања {{GENDER:$2|корисника|кориснице}} „[[User:$1|$1]]“ у „[[User:$2|$2]]“",
+ "action-renameuser": "преименовање корисника",
+ "right-renameuser": "преименовање корисничких имена",
+ "renameuser-renamed-notice": "Овом кориснику је промењено име.\nИсторија промена имена је приложена испод, као информација."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sr-el.json b/www/wiki/extensions/Renameuser/i18n/sr-el.json
new file mode 100644
index 00000000..33185226
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sr-el.json
@@ -0,0 +1,42 @@
+{
+ "@metadata": {
+ "authors": [
+ "FriedrickMILBarbarossa",
+ "Liangent",
+ "Michaello",
+ "Milicevic01",
+ "Жељко Тодоровић"
+ ]
+ },
+ "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:",
+ "renameusermove": "Premesti korisničku stranicu i stranicu za razgovor (i njihove podstranice) na novi naziv",
+ "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": "Pošalji",
+ "renameuser-submit-blocklog": "Dnevnik blokiranja za korisnika",
+ "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": "{{GENDER:$2|Korisnik|Korisnica}} „<nowiki>$1</nowiki>“ je {{GENDER:$2|preimenovan|preimenovana}} 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.",
+ "log-name-renameuser": "Dnevnik preimenovanja korisnika",
+ "log-description-renameuser": "Ispod je spisak preimenovanih korisnika.",
+ "logentry-renameuser-renameuser": "$1 je {{GENDER:$2|preimenovao|preimenovala}} {{GENDER:$7|korisnika|korisnicu}} $4 ({{PLURAL:$6|$6 izmena|$6 izmene|$6 izmena}}) u $5",
+ "logentry-renameuser-renameuser-legacier": "$1 je preimenovao {{GENDER:$7|korisnika|korisnicu}} $4 u $5",
+ "renameuser-move-log": "Automatsko premeštanje stranice zbog preimenovanja {{GENDER:$2|korisnika|korisnice}} „[[User:$1|$1]]“ u „[[User:$2|$2]]“",
+ "action-renameuser": "preimenovanje korisnika",
+ "right-renameuser": "preimenovanje korisničkih imena",
+ "renameuser-renamed-notice": "Ovom korisniku je promenjeno ime.\nIstorija promena imena je priložena ispod, kao informacija."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/stq.json b/www/wiki/extensions/Renameuser/i18n/stq.json
new file mode 100644
index 00000000..bb0dc76d
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/stq.json
@@ -0,0 +1,30 @@
+{
+ "@metadata": {
+ "authors": [
+ "Maartenvdbent",
+ "Pyt"
+ ]
+ },
+ "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.",
+ "log-name-renameuser": "Benutsernoomenannerengs-Logbouk",
+ "renameuser-move-log": "truch ju Uumbenaamenge fon „[[User:$1|$1]]“ ätter „[[User:$2|$2]]“ automatisk ferskäuwene Siede.",
+ "right-renameuser": "Benutser uumenaame"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/su.json b/www/wiki/extensions/Renameuser/i18n/su.json
new file mode 100644
index 00000000..88874077
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/su.json
@@ -0,0 +1,28 @@
+{
+ "@metadata": {
+ "authors": [
+ "Irwangatot",
+ "Kandar",
+ "Uchup19"
+ ]
+ },
+ "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",
+ "renameuserconfirm": "Nya, ganti ngaran éta pamaké",
+ "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.",
+ "log-name-renameuser": "Log ganti ngaran",
+ "renameuser-move-log": "Otomatis mindahkeun kaca nalika ngaganti ngaran \"[[User:$1|$1]]\" jadi \"[[User:$2|$2]]\""
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sv.json b/www/wiki/extensions/Renameuser/i18n/sv.json
new file mode 100644
index 00000000..8947c712
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sv.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ainali",
+ "Boivie",
+ "Cohan",
+ "Cybjit",
+ "Dafer45",
+ "Habj",
+ "Jopparn",
+ "Lejonel",
+ "Lokal Profil",
+ "M.M.S.",
+ "MagnusA",
+ "Najami",
+ "Per",
+ "WikiPhoenix"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Visa blockeringslogg för användare",
+ "renameusererrordoesnotexist": "Användaren \"<nowiki>$1</nowiki>\" finns inte",
+ "renameusererrorexists": "{{GENDER:$1|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": "{{GENDER:$2|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.",
+ "log-name-renameuser": "Logg över användarnamnsbyten",
+ "log-description-renameuser": "Detta är en logg över ändringar av användarnamn",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|bytte namn på}} användare $4 ({{PLURAL:$6|$6 redigering|$6 redigeringar}}) till {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 bytte namn på användare $4 till {{GENDER:$7|$5}}",
+ "renameuser-move-log": "Flyttade automatiskt sidan när namnet byttes på {{GENDER:$2|användaren}} \"[[User:$1|$1]]\" till \"[[User:$2|$2]]\"",
+ "action-renameuser": "ändra namn på användaren",
+ "right-renameuser": "Ändra användares namn",
+ "renameuser-renamed-notice": "Användaren har fått ett nytt namn.\nSom referens återfinns omdöpningsloggen nedan."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/sw.json b/www/wiki/extensions/Renameuser/i18n/sw.json
new file mode 100644
index 00000000..2fef4b9b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/sw.json
@@ -0,0 +1,21 @@
+{
+ "@metadata": {
+ "authors": [
+ "Kwisha",
+ "Stephenwanjau"
+ ]
+ },
+ "renameuser": "Badili jina la mtumiaji",
+ "renameuser-linkoncontribs": "badili jina la mtumiaji",
+ "renameuser-linkoncontribs-text": "Badili jina la mtumiaji huyu",
+ "renameuserold": "Jina la sasa la mtumiaji:",
+ "renameusernew": "Jina lipya la mtumiaji:",
+ "renameuserreason": "Sababu ya kubadili jina:",
+ "renameuserwarnings": "Ilani:",
+ "renameuserconfirm": "Ndiyo, badili jina la mtumiaji",
+ "renameusersubmit": "Wasilisha",
+ "renameuser-page-moved": "Ukurasa wa $1 umehamishwa hadi $2.",
+ "renameuser-page-unmoved": "Ukurasa $1 haungesongezwa hadi $2.",
+ "action-renameuser": "badili jina la mtumiaji",
+ "right-renameuser": "Badili jina la watumiaji"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ta.json b/www/wiki/extensions/Renameuser/i18n/ta.json
new file mode 100644
index 00000000..c1fe0bd6
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ta.json
@@ -0,0 +1,37 @@
+{
+ "@metadata": {
+ "authors": [
+ "Balajijagadesh",
+ "Karthi.dr",
+ "Shanmugamp7",
+ "TRYPPN",
+ "மதனாஹரன்"
+ ]
+ },
+ "renameuser": "பயனரை பெயர்மாற்று",
+ "renameuser-linkoncontribs": "பயனரை பெயர்மாற்று",
+ "renameuser-linkoncontribs-text": "இந்த பயனரை பெயர்மாற்று",
+ "renameuserold": "தற்போதைய பயனர் பெயர்:",
+ "renameusernew": "புதிய பயனர் பெயர்:",
+ "renameuserreason": "மறுபெயருக்கான காரணம்:",
+ "renameusermove": "பயனர் பக்கம் மற்றும் பேச்சுப் பக்கங்களை (அவற்றின் துணைப்பக்கங்களுடன்) புதிய பெயருக்கு நகர்த்து",
+ "renameusersuppress": "புதுப் பெயருக்கு வழிமாற்றுகளை உருவாக்க வேண்டாம்",
+ "renameuserreserve": "எதிர்காலப் பயன்பாட்டிலிருந்து பழைய பயனர் பெயரைத் தடை செய்யவும்",
+ "renameuserwarnings": "எச்சரிக்கை:",
+ "renameuserconfirm": "சரி, பயனருக்கு மாற்றுப்பெயர் கொடுக்கவும்",
+ "renameusersubmit": "சமர்ப்பி",
+ "renameuser-submit-blocklog": "பயனாளரின் தடை உள்ளீட்டை காட்டு",
+ "renameusererrordoesnotexist": "\"<nowiki>$1</nowiki>\" என்ற பெயரிலான பயனர் இல்லை.",
+ "renameusererrorexists": "\"<nowiki>$1</nowiki>\" என்ற பெயரில் ஏற்கனவே பயனர் ஒருவர் உள்ளார்.",
+ "renameusererrorinvalid": "\"<nowiki>$1</nowiki>\" என்ற பயனர் பெயர் செல்லாது.",
+ "renameuser-error-request": "வேண்டுகோளைப் பெறுவதில் ஒரு சிக்கல்.\nதயவு செய்து பின்சென்று மீண்டும் முயலவும்.",
+ "renameuser-error-same-user": "பயனர் பெயரை மாற்றும் போது அதே பெயரை நீங்கள் தரமுடியாது.",
+ "renameuser-page-exists": "பக்கம் $1 ஏற்கனவே உள்ளது. தானாக மேலெழுத இயலாது.",
+ "renameuser-page-moved": "பக்கம் $1 $2 எனுந்தலைப்புக்கு நகர்த்தப்பட்டுள்ளது.",
+ "renameuser-page-unmoved": "பக்கம் $1 என்பதை $2 என்பதற்கு நகர்த்த முடியவில்லை.",
+ "log-name-renameuser": "பயனரை பெயர்மாற்றுதல் குறிப்பேடு",
+ "log-description-renameuser": "இது பயனர் பெயர் மாற்றத்திற்கான குறிப்பேடு",
+ "action-renameuser": "பயனரை பெயர்மாற்று",
+ "right-renameuser": "பயனர்களை மாற்று பெயரிடு",
+ "renameuser-renamed-notice": "இந்த பயனர் பெயர் மாற்றப்பட்டது.\nமாற்றுப்பெயரிடுதல் குறிப்பேடு குறிப்புதவிக்காக கீழே வழங்கப்பட்டுள்ளது"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/te.json b/www/wiki/extensions/Renameuser/i18n/te.json
new file mode 100644
index 00000000..40682283
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/te.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "Chaduvari",
+ "Mpradeep",
+ "Veeven"
+ ]
+ },
+ "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 పేజీకి తరలించలేక పోయాం.",
+ "log-name-renameuser": "వాడుకరి పేరుమార్పుల చిట్టా",
+ "renameuser-move-log": "\"[[User:$1|$1]]\" పేరును \"[[User:$2|$2]]\"కు మార్చడంతో పేజీని ఆటోమాటిగ్గా తరలించాం",
+ "right-renameuser": "వాడుకరుల పేరు మార్చడం",
+ "renameuser-renamed-notice": "ఈ వాడుకరి పేరు మారింది.\nమీ సమాచారం కోసం పేరుమార్పుల చిట్టాని క్రింద ఇచ్చాం."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/tet.json b/www/wiki/extensions/Renameuser/i18n/tet.json
new file mode 100644
index 00000000..0dae808a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/tet.json
@@ -0,0 +1,20 @@
+{
+ "@metadata": {
+ "authors": [
+ "MF-Warburg"
+ ]
+ },
+ "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.",
+ "logentry-renameuser-renameuser-legacier": "$1 muda naran uza-na'in \"$4\" nian. Naran foun: \"$5\"",
+ "right-renameuser": "Fó naran foun ba uza-na'in sira"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/tg-cyrl.json b/www/wiki/extensions/Renameuser/i18n/tg-cyrl.json
new file mode 100644
index 00000000..7dc576a1
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/tg-cyrl.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Ibrahim"
+ ]
+ },
+ "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 вуҷуд надорад.",
+ "log-name-renameuser": "Гузориши тағйири номи корбар",
+ "renameuser-move-log": "Саҳифа дар вақти тағйири номи корбар \"[[User:$1|$1]]\" ба \"[[User:$2|$2]]\" ба таври худкор кӯчонида шуд",
+ "right-renameuser": "Тағйири номи корбарон"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/tg-latn.json b/www/wiki/extensions/Renameuser/i18n/tg-latn.json
new file mode 100644
index 00000000..e6b13c5f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/tg-latn.json
@@ -0,0 +1,29 @@
+{
+ "@metadata": {
+ "authors": [
+ "Liangent"
+ ]
+ },
+ "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.",
+ "log-name-renameuser": "Guzorişi taƣjiri nomi korbar",
+ "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"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/th.json b/www/wiki/extensions/Renameuser/i18n/th.json
new file mode 100644
index 00000000..d299b5ba
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/th.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Harley Hartwell",
+ "Mopza",
+ "Passawuth",
+ "Horus"
+ ]
+ },
+ "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 ได้",
+ "log-name-renameuser": "ปูมการเปลี่ยนชื่อผู้ใช้",
+ "renameuser-move-log": "ย้ายโดยอัตโนมัติ ขณะเปลี่ยนชื่อผู้ใช้จาก \"[[User:$1|$1]]\" เป็น \"[[User:$2|$2]]\"",
+ "right-renameuser": "เปลี่ยนชื่อผู้ใช้",
+ "renameuser-renamed-notice": "ผู้ใช้นี้ได้ถูกเปลี่ยนชื่อ บันทึกการเปลี่ยนชื่อแสดงอยู่ด้านล่างสำหรับการอ้างอิง"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/tk.json b/www/wiki/extensions/Renameuser/i18n/tk.json
new file mode 100644
index 00000000..fa03df7b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/tk.json
@@ -0,0 +1,33 @@
+{
+ "@metadata": {
+ "authors": [
+ "Hanberke"
+ ]
+ },
+ "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.\nYza 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.",
+ "log-name-renameuser": "Ulanyjy adyny üýtgetme gündeligi",
+ "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.\nAt üýtgediş gündeligi aşakda salgylanma üçin berilýär."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/tl.json b/www/wiki/extensions/Renameuser/i18n/tl.json
new file mode 100644
index 00000000..26880e82
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/tl.json
@@ -0,0 +1,35 @@
+{
+ "@metadata": {
+ "authors": [
+ "AnakngAraw"
+ ]
+ },
+ "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",
+ "renameuser-submit-blocklog": "Ipakita ang talaan ng pagharang para sa tagagamit",
+ "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.\nMagbalik 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.",
+ "log-name-renameuser": "Talaan ng muling pagpapangalan ng tagagamit",
+ "renameuser-move-log": "Kusang inilipat ang pahina habang muling pinapangalanan ang tagagamit na si \"[[User:$1|$1]]\" patungo sa \"[[User:$2|$2]]\"",
+ "action-renameuser": "muling pangalanan ang mga tagagamit",
+ "right-renameuser": "Muling pangalanan ang mga tagagamit",
+ "renameuser-renamed-notice": "Napangalanan nang muli ang tagagamit na ito.\nIbinigay sa ibaba ang talaan ng pagpapangalang muli para masangguni."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/to.json b/www/wiki/extensions/Renameuser/i18n/to.json
new file mode 100644
index 00000000..8bf6e92f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/to.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": [],
+ "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>\"",
+ "log-name-renameuser": "Tohinoa ʻo e liliu he hingoa ʻo e ʻetita"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/tr.json b/www/wiki/extensions/Renameuser/i18n/tr.json
new file mode 100644
index 00000000..935c92bb
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/tr.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Joseph",
+ "Karduelis",
+ "Marmase",
+ "Runningfridgesrule",
+ "Uğur Başak",
+ "Vito Genovese",
+ "Rapsar"
+ ]
+ },
+ "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": "Güncel 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.\nLü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.",
+ "log-name-renameuser": "Kullanıcı adı değişikliği günlüğü",
+ "logentry-renameuser-renameuser-legacier": "$1, $4 adlı kullanıcının adını {{GENDER:$7|$5}} olarak değiştirdi",
+ "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.\nReferans için ad değiştirme günlüğü aşağıda sağlanmıştır."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ug-arab.json b/www/wiki/extensions/Renameuser/i18n/ug-arab.json
new file mode 100644
index 00000000..fa13e061
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ug-arab.json
@@ -0,0 +1,14 @@
+{
+ "@metadata": {
+ "authors": [
+ "Sahran",
+ "Uzdil"
+ ]
+ },
+ "renameuserreason": "سەۋەب:",
+ "renameuserwarnings": "ئاگاھلاندۇرۇش:",
+ "renameusersubmit": "تاپشۇر",
+ "renameuser-page-exists": "$1 بەت مەۋجۇد، ئۆزلۈكىدىن قاپلىۋەتكىلى بولمايدۇ.",
+ "renameuser-page-moved": "$1 بەت $2 گە يۆتكەلدى.",
+ "renameuser-page-unmoved": "$1 بەتنى $2 گە يۆتكىيەلمىدى."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/uk.json b/www/wiki/extensions/Renameuser/i18n/uk.json
new file mode 100644
index 00000000..7a302280
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/uk.json
@@ -0,0 +1,46 @@
+{
+ "@metadata": {
+ "authors": [
+ "A1",
+ "AS",
+ "Ahonc",
+ "Base",
+ "EugeneZelenko",
+ "Microcell",
+ "Prima klasy4na",
+ "Тест",
+ "Piramidion"
+ ]
+ },
+ "renameuser": "Перейменувати користувача",
+ "renameuser-linkoncontribs": "перейменувати користувача",
+ "renameuser-linkoncontribs-text": "Перейменувати цього користувача",
+ "renameuser-desc": "Перейменування користувача (потрібні права ''renameuser'')",
+ "renameuserold": "Поточне ім'я:",
+ "renameusernew": "Нове ім'я:",
+ "renameuserreason": "Причина:",
+ "renameusermove": "Перейменувати також сторінку користувача, сторінку обговорення та їхні підсторінки",
+ "renameusersuppress": "Не створюйте перенаправлення на нову назву",
+ "renameuserreserve": "Зарезервувати старе ім'я користувача для подальшого використання",
+ "renameuserwarnings": "Попередження:",
+ "renameuserconfirm": "Так, перейменувати користувача",
+ "renameusersubmit": "Виконати",
+ "renameuser-submit-blocklog": "Показати журнал блокувань користувача",
+ "renameusererrordoesnotexist": "Користувач з іменем «<nowiki>$1</nowiki>» не зареєстрований.",
+ "renameusererrorexists": "{{GENDER:$1|Користувач|Користувачка}} з іменем «<nowiki>$1</nowiki>» вже існує.",
+ "renameusererrorinvalid": "Недопустиме ім'я користувача: <nowiki>$1</nowiki>.",
+ "renameuser-error-request": "Виникли ускладнення з отриманням запиту. Будь ласка, поверніться назад і повторіть іще раз.",
+ "renameuser-error-same-user": "Ви не можете змінити ім'я користувача на те саме, що було раніше.",
+ "renameusersuccess": "{{GENDER:$2|Користувача|Користувачку}} «<nowiki>$1</nowiki>» було перейменовано на «<nowiki>$2</nowiki>».",
+ "renameuser-page-exists": "Сторінка $1 вже існує і не може бути перезаписана автоматично.",
+ "renameuser-page-moved": "Сторінка $1 була перейменована на $2.",
+ "renameuser-page-unmoved": "Сторінка $1 не може бути перейменована на $2.",
+ "log-name-renameuser": "Журнал перейменувань користувачів",
+ "log-description-renameuser": "Це журнал перейменувань зареєстрованих користувачів.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|перейменував|перейменувала}} {{GENDER:$7|користувача|користувачку}} $4 ({{PLURAL:$6|$6 редагування|$6 редагування|$6 редагувань}}) на $5",
+ "logentry-renameuser-renameuser-legacier": "$1 {{GENDER:$2|перейменував|перейменувала}} {{GENDER:$7|користувача|користувачку}} $4 на $5",
+ "renameuser-move-log": "Автоматичне перейменування сторінки при перейменуванні {{GENDER:$2|користувача|користувачки}} «[[User:$1|$1]]» на «[[User:$2|$2]]»",
+ "action-renameuser": "перейменування користувачів",
+ "right-renameuser": "перейменування користувачів",
+ "renameuser-renamed-notice": "Цей користувач був перейменований.\nДля довідки нижче наведений журнал перейменувань."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/ur.json b/www/wiki/extensions/Renameuser/i18n/ur.json
new file mode 100644
index 00000000..c80ed464
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/ur.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "පසිඳු කාවින්ද"
+ ]
+ },
+ "renameuser": "صارف کا نام تبدیل کریں",
+ "renameuserwarnings": "انتباہ:",
+ "renameusersubmit": "جمع کرائیں",
+ "action-renameuser": "صارفین کو نیا نام دیںکے",
+ "right-renameuser": "صارفین کو نیا نام دیںکے"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/uz.json b/www/wiki/extensions/Renameuser/i18n/uz.json
new file mode 100644
index 00000000..a15bc500
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/uz.json
@@ -0,0 +1,11 @@
+{
+ "@metadata": {
+ "authors": [
+ "CoderSI",
+ "Sociologist"
+ ]
+ },
+ "log-name-renameuser": "Foydalanuvchilarni qayta nomlash qaydlari",
+ "action-renameuser": "foydalanuvchilar nomini oʻzgartirish",
+ "right-renameuser": "Foydalanuvchilar nomini oʻzgartirish"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/vec.json b/www/wiki/extensions/Renameuser/i18n/vec.json
new file mode 100644
index 00000000..dc176651
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/vec.json
@@ -0,0 +1,39 @@
+{
+ "@metadata": {
+ "authors": [
+ "Candalua",
+ "GatoSelvadego"
+ ]
+ },
+ "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:",
+ "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",
+ "renameuser-submit-blocklog": "Mostra registro de i blochi pa'l utente",
+ "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.",
+ "log-name-renameuser": "Registro dei utenti rinominà",
+ "log-description-renameuser": "Sto cuà el xe el registro de łe modifeghe a i nome utente.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|ga rinominà}} 'l utente $4 (có {{PLURAL:$6|$6 contributo|$6 contributi}}) in $5",
+ "logentry-renameuser-renameuser-legacier": "$1 ga rinominà 'l utente $4 in $5",
+ "renameuser-move-log": "Spostamento automatico de la pagina - utente rinominà da \"[[User:$1|$1]]\" a \"[[User:$2|$2]]\"",
+ "action-renameuser": "rinominar i utenti",
+ "right-renameuser": "Rinomina utenti",
+ "renameuser-renamed-notice": "Sto utente el gà canbià nome.\nQua soto ghe xe el riferimento sul registro de rinomina."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/vep.json b/www/wiki/extensions/Renameuser/i18n/vep.json
new file mode 100644
index 00000000..390d898f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/vep.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Игорь Бродский"
+ ]
+ },
+ "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"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/vi.json b/www/wiki/extensions/Renameuser/i18n/vi.json
new file mode 100644
index 00000000..c9f544e9
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/vi.json
@@ -0,0 +1,40 @@
+{
+ "@metadata": {
+ "authors": [
+ "Minh Nguyen",
+ "Vinhtantran",
+ "Dinhxuanduyet"
+ ]
+ },
+ "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:",
+ "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 thành viên",
+ "renameusersubmit": "Thực hiện",
+ "renameuser-submit-blocklog": "Xem nhật trình cấm người dùng",
+ "renameusererrordoesnotexist": "Thành viên “<nowiki>$1</nowiki>” không tồn tại.",
+ "renameusererrorexists": "{{GENDER:$1|thành viên}} \"<nowiki>$1</nowiki>\" đã tồn tại.",
+ "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.",
+ "log-name-renameuser": "Nhật trình đổi tên thành viên",
+ "log-description-renameuser": "Đây là nhật trình ghi lại các thay đổi đối với tên thành viên",
+ "logentry-renameuser-renameuser": "{{GENDER:$2}}$1 đã đổi tên thành viên $4 ($6 lần sửa đổi) thành {{GENDER:$7}}$5",
+ "logentry-renameuser-renameuser-legacier": "$1 đã đổi tên thành viên $4 thành {{GENDER:$7}}$5",
+ "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]]”",
+ "action-renameuser": "đổi tên thành viên",
+ "right-renameuser": "Đổi tên thành viên",
+ "renameuser-renamed-notice": "Thành viên này đã được đổi tên.\nNhật trình đổi tên được ghi ở dưới để tiện theo dõi."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/vo.json b/www/wiki/extensions/Renameuser/i18n/vo.json
new file mode 100644
index 00000000..0798cdb1
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/vo.json
@@ -0,0 +1,32 @@
+{
+ "@metadata": {
+ "authors": [
+ "Malafaya",
+ "Smeira"
+ ]
+ },
+ "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:",
+ "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.",
+ "log-name-renameuser": "Jenotalised votanemamas",
+ "renameuser-move-log": "Pad petopätükon itjäfidiko dü votanemama gebana: \"[[User:$1|$1]]\" ad \"[[User:$2|$2]]\"",
+ "right-renameuser": "Votanemön gebanis"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/wa.json b/www/wiki/extensions/Renameuser/i18n/wa.json
new file mode 100644
index 00000000..85a2e09a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/wa.json
@@ -0,0 +1,23 @@
+{
+ "@metadata": {
+ "authors": [
+ "Srtxg"
+ ]
+ },
+ "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",
+ "renameuserwarnings": "Adviertixhmints:",
+ "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.",
+ "log-name-renameuser": "Djournå des candjmints d' no d' uzeus",
+ "renameuser-move-log": "Pådje displaeceye otomaticmint tot rlomant l' uzeu «[[User:$1|$1]]» viè «[[User:$2|$2]]»"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/yi.json b/www/wiki/extensions/Renameuser/i18n/yi.json
new file mode 100644
index 00000000..079d00c1
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/yi.json
@@ -0,0 +1,38 @@
+{
+ "@metadata": {
+ "authors": [
+ "פוילישער"
+ ]
+ },
+ "renameuser": "בײַטן באַניצער נאָמען",
+ "renameuser-linkoncontribs": "בײַטן באַניצער נאָמען",
+ "renameuser-linkoncontribs-text": "בײַטן נאָמען פֿון דעם באַניצער",
+ "renameuser-desc": "לייגט צו א [[Special:RenameUser|באַזונדערן בלאַט]] צו בײַטן א באַניצער נאָמען (פֿאדערט ''renameuser'' רעכט)",
+ "renameuserold": "לויפיגער באַניצער-נאָמען:",
+ "renameusernew": "נײַער באַניצער-נאָמען:",
+ "renameuserreason": "אורזאַך:",
+ "renameusermove": "באַוועגן באַניצער און שמועס בלעטער (מיט זייערע אונטערבלעטער) צו נײַעם נאָמען",
+ "renameusersuppress": "שאַפֿט נישט קיין ווייטערפֿירונגען צום נײַעם נאָמען",
+ "renameuserreserve": "בלאקירן דעם אַלטן באַניצער־נאָמען פֿון נוץ אין צוקונפֿט",
+ "renameuserwarnings": "ווארענונגען:",
+ "renameuserconfirm": "יאָ, ענדער דעם באַניצער־נאָמען",
+ "renameusersubmit": "אײַנגעבן",
+ "renameuser-submit-blocklog": "ווײַזן בלאקירן לאג פאר באניצער",
+ "renameusererrordoesnotexist": "דער באַניצער \"<nowiki>$1</nowiki>\" עקזיסטירט נישט.",
+ "renameusererrorexists": "דער {{GENDER:$1|באַניצער}} \"<nowiki>$1</nowiki>\" עקזיסטירט שוין.",
+ "renameusererrorinvalid": "דער באַניצער נאָמען \"<nowiki>$1</nowiki>\" איז נישט גילטיק.",
+ "renameuser-error-request": "געווען א פראבלעם מיט באַקומען די בקשה.\nביטע גייט צוריק און פרואווט ווידעראַמאָל.",
+ "renameuser-error-same-user": "מען קען נישט ענדערן א באַניצער צום זעלבן נאָמען ווי פֿריער.",
+ "renameusersuccess": "דער {{GENDER:$2|באַניצער־נאמען|באַניצערין־נאמען}} \"<nowiki>$1</nowiki>\" איז געווארן געענדערט צו \"<nowiki>$2</nowiki>\".",
+ "renameuser-page-exists": "דער בלאַט $1 עקזיסטירט שוין און מ'קען אים נישט אויטאָמאַטיש איבערשרײַבן.",
+ "renameuser-page-moved": "דער בלאַט $1 איז געווארן באַוועגט צו $2.",
+ "renameuser-page-unmoved": "מען קען נישט באַוועגן דעם בלאַט $1 צו $2.",
+ "log-name-renameuser": "באַניצער נאָמען-טויש לאָג-בוך",
+ "log-description-renameuser": "דאָס איז אַ לאג פֿון ענדערונגען צו באַניצער נעמען.",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|האט געענדערט דעם נאמען}} פון באניצער $4 ({{PLURAL:$6|$6 רעדאקטירונג|$6 רעדאקטירונגען}}) צו {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 האט געענדערט באניצער נאמען $4 צו {{GENDER:$7|$5}}",
+ "renameuser-move-log": "אויטאמאַטיש באַוועגט בלאַט דורך ענדערן {{GENDER:$2|באַניצער־נאָמען}} פֿון \"[[User:$1|$1]]\" צו \"[[User:$2|$2]]\"",
+ "action-renameuser": "בײַטן באַניצער נעמען",
+ "right-renameuser": "בײַטן באַניצער נעמען",
+ "renameuser-renamed-notice": "דער נאָמען פֿון דעם באַניצער איז געענדערט געווארן.\nדער ענדערן נעמען לאגבוך ווערט געוויזן אונטן."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/yo.json b/www/wiki/extensions/Renameuser/i18n/yo.json
new file mode 100644
index 00000000..f430586a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/yo.json
@@ -0,0 +1,13 @@
+{
+ "@metadata": {
+ "authors": [
+ "Demmy"
+ ]
+ },
+ "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ẹ̀."
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/yue.json b/www/wiki/extensions/Renameuser/i18n/yue.json
new file mode 100644
index 00000000..fbe12e34
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/yue.json
@@ -0,0 +1,31 @@
+{
+ "@metadata": {
+ "authors": [
+ "Antonytse",
+ "Liuxinyu970226",
+ "Suzukaze-c"
+ ]
+ },
+ "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": "響收到請求嗰陣出咗問題。\n請返去再試過。",
+ "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。",
+ "log-name-renameuser": "用戶改名日誌",
+ "renameuser-move-log": "當由\"[[User:$1|$1]]\"改名做\"[[User:$2|$2]]\"嗰陣已經自動搬咗用戶頁",
+ "action-renameuser": "同用戶改名",
+ "right-renameuser": "改用戶名"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/zh-hans.json b/www/wiki/extensions/Renameuser/i18n/zh-hans.json
new file mode 100644
index 00000000..4ce8ec44
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/zh-hans.json
@@ -0,0 +1,49 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bencmq",
+ "Gaoxuewei",
+ "Gzdavidwong",
+ "Hydra",
+ "Hzy980512",
+ "Liangent",
+ "PhiLiP",
+ "Shizhao",
+ "Xiaomingyan",
+ "Yfdyh000",
+ "EagerLin",
+ "Liuxinyu970226"
+ ]
+ },
+ "renameuser": "更改用户名",
+ "renameuser-linkoncontribs": "更改用户名",
+ "renameuser-linkoncontribs-text": "更改该用户名",
+ "renameuser-desc": "添加更改用户名的[[Special:RenameUser|特殊页面]](需要''renameuser''权限)",
+ "renameuserold": "当前用户名:",
+ "renameusernew": "新用户名:",
+ "renameuserreason": "原因:",
+ "renameusermove": "移动用户和讨论页面(和子页面)至新用户名",
+ "renameusersuppress": "不创建至新用户名的重定向页",
+ "renameuserreserve": "封锁旧用户名,使其不能在未来使用",
+ "renameuserwarnings": "警告:",
+ "renameuserconfirm": "是,更改用户名",
+ "renameusersubmit": "提交",
+ "renameuser-submit-blocklog": "显示用户的封禁日志",
+ "renameusererrordoesnotexist": "用户“<nowiki>$1</nowiki>”不存在。",
+ "renameusererrorexists": "{{GENDER:$1|用户}}“<nowiki>$1</nowiki>”已经存在。",
+ "renameusererrorinvalid": "用户名“<nowiki>$1</nowiki>”无效。",
+ "renameuser-error-request": "接收申请出错。请返回重试。",
+ "renameuser-error-same-user": "您不能将用户重命名至与其之前相同的用户名。",
+ "renameusersuccess": "{{GENDER:$2|用户}}“<nowiki>$1</nowiki>”已更名为“<nowiki>$2</nowiki>”。",
+ "renameuser-page-exists": "页面$1已经存在,不能被自动覆盖。",
+ "renameuser-page-moved": "页面$1已移动至$2。",
+ "renameuser-page-unmoved": "页面$1不能移动至$2。",
+ "log-name-renameuser": "用户更名日志",
+ "log-description-renameuser": "这是对用户名改动的日志。",
+ "logentry-renameuser-renameuser": "$1{{GENDER:$2|重命名}}用户$4({{PLURAL:$6|$6个编辑}})为{{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1已重命名用户$4为{{GENDER:$7|$5}}",
+ "renameuser-move-log": "当重命名{{GENDER:$2|用户}}“[[User:$1|$1]]”为“[[User:$2|$2]]”时自动移动页面",
+ "action-renameuser": "重命名用户",
+ "right-renameuser": "更改用户名",
+ "renameuser-renamed-notice": "本用户已更名。下面提供更名日志以供参考。"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/zh-hant.json b/www/wiki/extensions/Renameuser/i18n/zh-hant.json
new file mode 100644
index 00000000..5fc644c3
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/zh-hant.json
@@ -0,0 +1,51 @@
+{
+ "@metadata": {
+ "authors": [
+ "Gaoxuewei",
+ "Horacewai2",
+ "Liangent",
+ "Mark85296341",
+ "Simon Shek",
+ "Waihorace",
+ "Wrightbus",
+ "Cwlin0416",
+ "Liflon",
+ "LNDDYL",
+ "Liuxinyu970226",
+ "EagerLin",
+ "Alexsh",
+ "Hello903hello"
+ ]
+ },
+ "renameuser": "重新命名使用者",
+ "renameuser-linkoncontribs": "重新命名使用者",
+ "renameuser-linkoncontribs-text": "重新命名此使用者",
+ "renameuser-desc": "加入用來重新命名使用者的[[Special:RenameUser|特殊頁面]] (需要開啟 ''renameuser'' 權限)",
+ "renameuserold": "目前的使用者名稱:",
+ "renameusernew": "新的使用者名稱:",
+ "renameuserreason": "原因:",
+ "renameusermove": "移動使用者頁面與其對話頁面 (含子頁面) 至新的名稱",
+ "renameusersuppress": "不要為新的名稱建立重新導向頁面",
+ "renameuserreserve": "封鎖舊使用者名稱,禁止日後再使用",
+ "renameuserwarnings": "警告:",
+ "renameuserconfirm": "是的,重新命名此使用者",
+ "renameusersubmit": "送出",
+ "renameuser-submit-blocklog": "顯示使用者的封鎖日誌",
+ "renameusererrordoesnotexist": "使用者 \"<nowiki>$1</nowiki>\" 不存在。",
+ "renameusererrorexists": "{{GENDER:$1|使用者}} \"<nowiki>$1</nowiki>\" 已存在。",
+ "renameusererrorinvalid": "使用者名稱 \"<nowiki>$1</nowiki>\" 無效。",
+ "renameuser-error-request": "接收請求時發生錯誤。\n請返回頁面並再試一次。",
+ "renameuser-error-same-user": "您不可使用與先前相同名稱替使用者重新命名。",
+ "renameusersuccess": "{{GENDER:$2|使用者}} \"<nowiki>$1</nowiki>\" 已重新命名為 \"<nowiki>$2</nowiki>\"。",
+ "renameuser-page-exists": "頁面 $1 已經存在,無法自動覆寫。",
+ "renameuser-page-moved": "頁面 $1 已移動至 $2。",
+ "renameuser-page-unmoved": "頁面 $1 無法移動至 $2。",
+ "log-name-renameuser": "使用者重新命名日誌",
+ "log-description-renameuser": "此頁面為使用者名稱修改日誌。",
+ "logentry-renameuser-renameuser": "$1 {{GENDER:$2|重新命名}}使用者 $4 (已編輯 {{PLURAL:$6|$6 次}}) 為 {{GENDER:$7|$5}}",
+ "logentry-renameuser-renameuser-legacier": "$1 重新命名使用者 $4 為 {{GENDER:$7|$5}}",
+ "renameuser-move-log": "重新命名{{GENDER:$2|使用者}} \"[[User:$1|$1]]\" 為 \"[[User:$2|$2]]\" 時已自動移動使用者相關頁面",
+ "action-renameuser": "重新命名使用者",
+ "right-renameuser": "重新命名使用者",
+ "renameuser-renamed-notice": "本使用者已重新命名。\n下列為重新命名日誌以提供參考。"
+}
diff --git a/www/wiki/extensions/Renameuser/i18n/zu.json b/www/wiki/extensions/Renameuser/i18n/zu.json
new file mode 100644
index 00000000..f394e79f
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/i18n/zu.json
@@ -0,0 +1,4 @@
+{
+ "@metadata": [],
+ "renameusersubmit": "Yisa"
+}
diff --git a/www/wiki/extensions/Renameuser/includes/RenameUserJob.php b/www/wiki/extensions/Renameuser/includes/RenameUserJob.php
new file mode 100644
index 00000000..2127e26a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/includes/RenameUserJob.php
@@ -0,0 +1,229 @@
+<?php
+
+/**
+ * Custom job to perform updates on tables in busier environments
+ *
+ * Job parameters include:
+ * - table : DB table to update
+ * - column : The *_user_text column to update
+ * - oldname : The old user name
+ * - newname : The new user name
+ * - count : The expected number of rows to update in this batch
+ * - logId : The ID of the logging table row expected to exist if the rename was committed
+ *
+ * Additionally, one of the following groups of parameters must be set:
+ * a) The timestamp based rename paramaters:
+ * - timestampColumn : The *_timestamp column
+ * - minTimestamp : The minimum bound of the timestamp column range for this batch
+ * - maxTimestamp : The maximum bound of the timestamp column range for this batch
+ * - uniqueKey : A column that is unique (preferrably the PRIMARY KEY) [optional]
+ * b) The unique key based rename paramaters:
+ * - uniqueKey : A column that is unique (preferrably the PRIMARY KEY)
+ * - keyId : A list of values for this column to determine rows to update for this batch
+ *
+ * To avoid some race conditions, the following parameters should be set:
+ * - userID : The ID of the user to update
+ * - uidColumn : The *_user_id column
+ */
+class RenameUserJob extends Job {
+ /** @var array Core tables+columns that are being migrated to the `actor` table */
+ private static $actorMigratedColumns = [
+ 'revision.rev_user_text',
+ 'archive.ar_user_text',
+ 'ipblocks.ipb_by_text',
+ 'image.img_user_text',
+ 'oldimage.oi_user_text',
+ 'filearchive.fa_user_text',
+ 'recentchanges.rc_user_text',
+ 'logging.log_user_text',
+ ];
+
+ public function __construct( Title $title, $params = [] ) {
+ parent::__construct( 'renameUser', $title, $params );
+ }
+
+ public function run() {
+ global $wgUpdateRowsPerQuery;
+
+ $dbw = wfGetDB( DB_MASTER );
+ $table = $this->params['table'];
+ $column = $this->params['column'];
+
+ // Skip core tables that were migrated to the actor table, even if the
+ // field still exists in the database.
+ if ( in_array( "$table.$column", self::$actorMigratedColumns, true ) ) {
+ // We still run the job for MIGRATION_WRITE_NEW because reads might
+ // still be falling back.
+ $stage = RenameuserSQL::getActorMigrationStage();
+ if ( $stage >= MIGRATION_NEW ) {
+ wfDebugLog( 'Renameuser',
+ "Ignoring job {$this->toString()}, column $table.$column actor migration stage = $stage\n"
+ );
+ return true;
+ }
+ }
+
+ // It's not worth a hook to let extensions add themselves to that list.
+ // Just check whether the table and column still exist instead.
+ if ( !$dbw->tableExists( $table, __METHOD__ ) ) {
+ wfDebugLog( 'Renameuser',
+ "Ignoring job {$this->toString()}, table $table does not exist\n"
+ );
+ return true;
+ } elseif ( !$dbw->fieldExists( $table, $column, __METHOD__ ) ) {
+ wfDebugLog( 'Renameuser',
+ "Ignoring job {$this->toString()}, column $table.$column does not exist\n"
+ );
+ return true;
+ }
+
+ $oldname = $this->params['oldname'];
+ $newname = $this->params['newname'];
+ $count = $this->params['count'];
+ if ( isset( $this->params['userID'] ) ) {
+ $userID = $this->params['userID'];
+ $uidColumn = $this->params['uidColumn'];
+ } else {
+ $userID = null;
+ $uidColumn = null;
+ }
+ if ( isset( $this->params['timestampColumn'] ) ) {
+ $timestampColumn = $this->params['timestampColumn'];
+ $minTimestamp = $this->params['minTimestamp'];
+ $maxTimestamp = $this->params['maxTimestamp'];
+ } else {
+ $timestampColumn = null;
+ $minTimestamp = null;
+ $maxTimestamp = null;
+ }
+ $uniqueKey = isset( $this->params['uniqueKey'] ) ? $this->params['uniqueKey'] : null;
+ $keyId = isset( $this->params['keyId'] ) ? $this->params['keyId'] : null;
+ $logId = isset( $this->params['logId'] ) ? $this->params['logId'] : null;
+
+ if ( $logId ) {
+ # Block until the transaction that inserted this job commits.
+ # The atomic section is for sanity as FOR UPDATE does not lock in auto-commit mode
+ # per http://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html.
+ $dbw->startAtomic( __METHOD__ );
+ $committed = $dbw->selectField( 'logging',
+ '1',
+ [ 'log_id' => $logId ],
+ __METHOD__,
+ [ 'FOR UPDATE' ]
+ );
+ $dbw->endAtomic( __METHOD__ );
+ # If the transaction inserting this job was rolled back, detect that
+ if ( $committed === false ) { // rollback happened?
+ throw new LogicException( 'Cannot run job if the account rename failed.' );
+ }
+ }
+
+ # Flush any state snapshot data (and release the lock above)
+ $dbw->commit( __METHOD__, 'flush' );
+
+ # Conditions like "*_user_text = 'x'
+ $conds = [ $column => $oldname ];
+ # If user ID given, add that to condition to avoid rename collisions
+ if ( $userID !== null ) {
+ $conds[$uidColumn] = $userID;
+ }
+ # Bound by timestamp if given
+ if ( $timestampColumn !== null ) {
+ $conds[] = "$timestampColumn >= " . $dbw->addQuotes( $minTimestamp );
+ $conds[] = "$timestampColumn <= " . $dbw->addQuotes( $maxTimestamp );
+ # Bound by unique key if given (B/C)
+ } elseif ( $uniqueKey !== null && $keyId !== null ) {
+ $conds[$uniqueKey] = $keyId;
+ } else {
+ throw new InvalidArgumentException( 'Expected ID batch or time range' );
+ }
+
+ $affectedCount = 0;
+ # Actually update the rows for this job...
+ if ( $uniqueKey !== null ) {
+ # Select the rows to update by PRIMARY KEY
+ $ids = $dbw->selectFieldValues( $table, $uniqueKey, $conds, __METHOD__ );
+ # Update these rows by PRIMARY KEY to avoid slave lag
+ foreach ( array_chunk( $ids, $wgUpdateRowsPerQuery ) as $batch ) {
+ $dbw->commit( __METHOD__, 'flush' );
+ wfWaitForSlaves();
+
+ $dbw->update( $table,
+ [ $column => $newname ],
+ [ $column => $oldname, $uniqueKey => $batch ],
+ __METHOD__
+ );
+ $affectedCount += $dbw->affectedRows();
+ }
+ } else {
+ # Update the chunk of rows directly
+ $dbw->update( $table,
+ [ $column => $newname ],
+ $conds,
+ __METHOD__
+ );
+ $affectedCount += $dbw->affectedRows();
+ }
+
+ # Special case: revisions may be deleted while renaming...
+ if ( $affectedCount < $count && $table === 'revision' && $timestampColumn !== null ) {
+ # If some revisions were not renamed, they may have been deleted.
+ # Do a pass on the archive table to get these straglers...
+ $ids = $dbw->selectFieldValues(
+ 'archive',
+ 'ar_id',
+ [
+ 'ar_user_text' => $oldname,
+ 'ar_user' => $userID,
+ // 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'"
+ ],
+ __METHOD__
+ );
+ foreach ( array_chunk( $ids, $wgUpdateRowsPerQuery ) as $batch ) {
+ $dbw->commit( __METHOD__, 'flush' );
+ wfWaitForSlaves();
+
+ $dbw->update(
+ 'archive',
+ [ 'ar_user_text' => $newname ],
+ [ 'ar_user_text' => $oldname, 'ar_id' => $batch ],
+ __METHOD__
+ );
+ }
+ }
+ # Special case: revisions may be restored while renaming...
+ if ( $affectedCount < $count && $table === 'archive' && $timestampColumn !== null ) {
+ # If some revisions were not renamed, they may have been restored.
+ # Do a pass on the revision table to get these straglers...
+ $ids = $dbw->selectFieldValues(
+ 'revision',
+ 'rev_id',
+ [
+ 'rev_user_text' => $oldname,
+ 'rev_user' => $userID,
+ // 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'"
+ ],
+ __METHOD__
+ );
+ foreach ( array_chunk( $ids, $wgUpdateRowsPerQuery ) as $batch ) {
+ $dbw->commit( __METHOD__, 'flush' );
+ wfWaitForSlaves();
+
+ $dbw->update(
+ 'revision',
+ [ 'rev_user_text' => $newname ],
+ [ 'rev_user_text' => $oldname, 'rev_id' => $batch ],
+ __METHOD__
+ );
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/includes/RenameuserHooks.php b/www/wiki/extensions/Renameuser/includes/RenameuserHooks.php
new file mode 100644
index 00000000..9fdc29ed
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/includes/RenameuserHooks.php
@@ -0,0 +1,66 @@
+<?php
+
+class RenameuserHooks {
+ /**
+ * 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
+ * @return bool
+ */
+ public static function onShowMissingArticle( $article ) {
+ $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();
+ $out = $article->getContext()->getOutput();
+ LogEventsList::showLogExtract(
+ $out,
+ 'renameuser',
+ $page,
+ '',
+ [
+ 'lim' => 10,
+ 'showIfEmpty' => false,
+ 'msgKey' => [ 'renameuser-renamed-notice', $title->getBaseText() ]
+ ]
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Shows link to Special:Renameuser on Special:Contributions/foo
+ *
+ * @param int $id
+ * @param Title $nt
+ * @param array &$tools
+ * @param SpecialPage $sp
+ */
+ public static function onContributionsToolLinks( $id, $nt, array &$tools, SpecialPage $sp ) {
+ if ( $id && $sp->getUser()->isAllowed( 'renameuser' ) ) {
+ $tools['renameuser'] = $sp->getLinkRenderer()->makeKnownLink(
+ SpecialPage::getTitleFor( 'Renameuser' ),
+ $sp->msg( 'renameuser-linkoncontribs' )->text(),
+ [ 'title' => $sp->msg( 'renameuser-linkoncontribs-text' )->parse() ],
+ [ 'oldusername' => $nt->getText() ]
+ );
+ }
+ }
+
+ /**
+ * So users can just type in a username for target and it'll work
+ * @param array &$types
+ * @return bool
+ */
+ public static function onGetLogTypesOnUser( array &$types ) {
+ $types[] = 'renameuser';
+
+ return true;
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/includes/RenameuserLogFormatter.php b/www/wiki/extensions/Renameuser/includes/RenameuserLogFormatter.php
new file mode 100644
index 00000000..d775a8a0
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/includes/RenameuserLogFormatter.php
@@ -0,0 +1,99 @@
+<?php
+
+/**
+ * LogFormatter for renameuser/renameuser logs
+ */
+class RenameuserLogFormatter extends LogFormatter {
+
+ protected function getMessageParameters() {
+ $params = parent::getMessageParameters();
+ /* Current format:
+ * 1,2,3: normal logformatter params
+ * 4: old username (linked)
+ * (legaciest doesn't have this at all, all in comment)
+ * (legacier uses this as new name and stores old name in target)
+ * 5: new username (linked)
+ * 6: number of edits the user had at the time
+ * (not available except in newest log entries)
+ * 7: new username (raw format for GENDER)
+ * Note that the arrays are zero-indexed, while message parameters
+ * start from 1, so substract one to get array entries below.
+ */
+
+ if ( !isset( $params[3] ) ) {
+ // The oldest format
+ return $params;
+ } elseif ( !isset( $params[4] ) ) {
+ // See comments above
+ $params[4] = $params[3];
+ $params[3] = $this->entry->getTarget()->getText();
+ }
+
+ // Nice link to old user page
+ $title = Title::makeTitleSafe( NS_USER, $params[3] );
+ $link = $this->myPageLink( $title, $params[3] );
+ $params[3] = Message::rawParam( $link );
+
+ // Nice link to new user page
+ $title = Title::makeTitleSafe( NS_USER, $params[4] );
+ $link = $this->myPageLink( $title, $params[4] );
+ $params[4] = Message::rawParam( $link );
+ // GENDER support (using new user page)
+ $params[6] = $title->getText();
+
+ return $params;
+ }
+
+ protected function myPageLink( Title $title = null, $text ) {
+ if ( !$this->plaintext ) {
+ if ( !$title instanceof Title ) {
+ $link = htmlspecialchars( $text );
+ } else {
+ $link = $this->getLinkRenderer()->makeLink( $title, $text );
+ }
+ } else {
+ if ( !$title instanceof Title ) {
+ $link = "[[User:$text]]";
+ } else {
+ $link = '[[' . $title->getPrefixedText() . ']]';
+ }
+ }
+
+ return $link;
+ }
+
+ public function getMessageKey() {
+ $key = parent::getMessageKey();
+ $params = $this->extractParameters();
+
+ // Very old log format, everything in comment
+ if ( !isset( $params[3] ) ) {
+ return "$key-legaciest";
+ } elseif ( !isset( $params[5] ) ) {
+ return "$key-legacier";
+ }
+
+ return $key;
+ }
+
+ public function getPreloadTitles() {
+ $params = $this->extractParameters();
+ if ( !isset( $params[3] ) ) {
+ // Very old log format, everything in comment - legaciest
+ return [];
+ }
+ if ( !isset( $params[4] ) ) {
+ // Old log format - legacier
+ $newUserName = $params[3];
+ } else {
+ $newUserName = $params[4];
+ }
+
+ $title = Title::makeTitleSafe( NS_USER, $newUserName );
+ if ( $title ) {
+ return [ $title ];
+ }
+
+ return [];
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/includes/RenameuserSQL.php b/www/wiki/extensions/Renameuser/includes/RenameuserSQL.php
new file mode 100644
index 00000000..f8808e2e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/includes/RenameuserSQL.php
@@ -0,0 +1,411 @@
+<?php
+
+use MediaWiki\Auth\AuthManager;
+use MediaWiki\Session\SessionManager;
+
+/**
+ * Class which performs the actual renaming of users
+ */
+class RenameuserSQL {
+ /**
+ * The old username
+ *
+ * @var string
+ * @access private
+ */
+ public $old;
+
+ /**
+ * The new username
+ *
+ * @var string
+ * @access private
+ */
+ public $new;
+
+ /**
+ * The user ID
+ *
+ * @var integer
+ * @access private
+ */
+ public $uid;
+
+ /**
+ * The the tables => fields to be updated
+ *
+ * @var array
+ * @access private
+ */
+ public $tables;
+
+ /**
+ * tables => fields to be updated in a deferred job
+ *
+ * @var array
+ */
+ public $tablesJob;
+
+ /**
+ * Flag that can be set to false, in case another process has already started
+ * the updates and the old username may have already been renamed in the user table.
+ *
+ * @var bool
+ * @access private
+ */
+ public $checkIfUserExists;
+
+ /**
+ * User object of the user performing the rename, for logging purposes
+ *
+ * @var User
+ */
+ private $renamer;
+
+ /**
+ * Reason to be used in the log entry
+ *
+ * @var string
+ */
+ private $reason = '';
+
+ /**
+ * A prefix to use in all debug log messages
+ *
+ * @var string
+ */
+ private $debugPrefix = '';
+
+ /**
+ * Users with more than this number of edits will have their rename operation
+ * deferred via the job queue.
+ */
+ const CONTRIB_JOB = 500;
+
+ // B/C constants for tablesJob field
+ const NAME_COL = 0;
+ const UID_COL = 1;
+ const TIME_COL = 2;
+
+ /**
+ * Constructor
+ *
+ * @param string $old The old username
+ * @param string $new The new username
+ * @param int $uid
+ * @param User $renamer
+ * @param array $options Optional extra options.
+ * 'reason' - string, reason for the rename
+ * 'debugPrefix' - string, prefixed to debug messages
+ * 'checkIfUserExists' - bool, whether to update the user table
+ */
+ public function __construct( $old, $new, $uid, User $renamer, $options = [] ) {
+ $this->old = $old;
+ $this->new = $new;
+ $this->uid = $uid;
+ $this->renamer = $renamer;
+ $this->checkIfUserExists = true;
+
+ if ( isset( $options['checkIfUserExists'] ) ) {
+ $this->checkIfUserExists = $options['checkIfUserExists'];
+ }
+
+ if ( isset( $options['debugPrefix'] ) ) {
+ $this->debugPrefix = $options['debugPrefix'];
+ }
+
+ if ( isset( $options['reason'] ) ) {
+ $this->reason = $options['reason'];
+ }
+
+ $this->tables = []; // Immediate updates
+ $this->tablesJob = []; // Slow updates
+
+ // We still do the table updates here for MIGRATION_WRITE_NEW because reads might
+ // still be falling back.
+ if ( self::getActorMigrationStage() < MIGRATION_NEW ) {
+ $this->tables['image'] = [ 'img_user_text', 'img_user' ];
+ $this->tables['oldimage'] = [ 'oi_user_text', 'oi_user' ];
+ $this->tables['filearchive'] = [ 'fa_user_text', 'fa_user' ];
+
+ // If this user has a large number of edits, use the jobqueue
+ // T134136: if this is for user_id=0, then use the queue as the edit count is unknown.
+ if ( !$uid || User::newFromId( $uid )->getEditCount() > self::CONTRIB_JOB ) {
+ $this->tablesJob['revision'] = [
+ self::NAME_COL => 'rev_user_text',
+ self::UID_COL => 'rev_user',
+ self::TIME_COL => 'rev_timestamp',
+ 'uniqueKey' => 'rev_id'
+ ];
+ $this->tablesJob['archive'] = [
+ self::NAME_COL => 'ar_user_text',
+ self::UID_COL => 'ar_user',
+ self::TIME_COL => 'ar_timestamp',
+ 'uniqueKey' => 'ar_id'
+ ];
+ $this->tablesJob['logging'] = [
+ self::NAME_COL => 'log_user_text',
+ self::UID_COL => 'log_user',
+ self::TIME_COL => 'log_timestamp',
+ 'uniqueKey' => 'log_id'
+ ];
+ } else {
+ $this->tables['revision'] = [ 'rev_user_text', 'rev_user' ];
+ $this->tables['archive'] = [ 'ar_user_text', 'ar_user' ];
+ $this->tables['logging'] = [ 'log_user_text', 'log_user' ];
+ }
+ // Recent changes is pretty hot, deadlocks occur if done all at once
+ if ( wfQueriesMustScale() ) {
+ $this->tablesJob['recentchanges'] = [ 'rc_user_text', 'rc_user', 'rc_timestamp' ];
+ } else {
+ $this->tables['recentchanges'] = [ 'rc_user_text', 'rc_user' ];
+ }
+ }
+
+ Hooks::run( 'RenameUserSQL', [ $this ] );
+ }
+
+ protected function debug( $msg ) {
+ if ( $this->debugPrefix ) {
+ $msg = "{$this->debugPrefix}: $msg";
+ }
+ wfDebugLog( 'Renameuser', $msg );
+ }
+
+ /**
+ * Do the rename operation
+ * @return true
+ */
+ public function rename() {
+ global $wgAuth, $wgUpdateRowsPerJob;
+
+ // Grab the user's edit count first, used in log entry
+ $contribs = User::newFromId( $this->uid )->getEditCount();
+
+ $dbw = wfGetDB( DB_MASTER );
+ $dbw->startAtomic( __METHOD__ );
+
+ Hooks::run( 'RenameUserPreRename', [ $this->uid, $this->old, $this->new ] );
+
+ // Make sure the user exists if needed
+ if ( $this->checkIfUserExists && !self::lockUserAndGetId( $this->old ) ) {
+ $this->debug( "User {$this->old} does not exist, bailing out" );
+
+ return false;
+ }
+
+ // Rename and touch the user before re-attributing edits to avoid users still being
+ // logged in and making new edits (under the old name) while being renamed.
+ $this->debug( "Starting rename of {$this->old} to {$this->new}" );
+ $dbw->update( 'user',
+ [ 'user_name' => $this->new, 'user_touched' => $dbw->timestamp() ],
+ [ 'user_name' => $this->old, 'user_id' => $this->uid ],
+ __METHOD__
+ );
+ if ( self::getActorMigrationStage() >= MIGRATION_WRITE_BOTH ) {
+ $dbw->update( 'actor',
+ [ 'actor_name' => $this->new ],
+ [ 'actor_name' => $this->old, 'actor_user' => $this->uid ],
+ __METHOD__
+ );
+ }
+
+ // Reset token to break login with central auth systems.
+ // Again, avoids user being logged in with old name.
+ $user = User::newFromId( $this->uid );
+
+ if ( class_exists( SessionManager::class ) &&
+ is_callable( [ SessionManager::singleton(), 'invalidateSessionsForUser' ] )
+ ) {
+ $user->load( User::READ_LATEST );
+ SessionManager::singleton()->invalidateSessionsForUser( $user );
+ } else {
+ $authUser = $wgAuth->getUserInstance( $user );
+ $authUser->resetAuthToken();
+ }
+
+ // Purge user cache
+ $user->invalidateCache();
+
+ // Update ipblock list if this user has a block in there.
+ $dbw->update( 'ipblocks',
+ [ 'ipb_address' => $this->new ],
+ [ '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 );
+ $this->debug( "Updating logging table for {$this->old} to {$this->new}" );
+
+ $logTypesOnUser = SpecialLog::getLogTypesOnUser();
+
+ $dbw->update( 'logging',
+ [ 'log_title' => $newTitle->getDBkey() ],
+ [ 'log_type' => $logTypesOnUser,
+ 'log_namespace' => NS_USER,
+ 'log_title' => $oldTitle->getDBkey() ],
+ __METHOD__
+ );
+
+ // Do immediate re-attribution table updates...
+ foreach ( $this->tables as $table => $fieldSet ) {
+ list( $nameCol, $userCol ) = $fieldSet;
+ $dbw->update( $table,
+ [ $nameCol => $this->new ],
+ [ $nameCol => $this->old, $userCol => $this->uid ],
+ __METHOD__
+ );
+ }
+
+ /** @var RenameUserJob[] $jobs */
+ $jobs = []; // 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[self::NAME_COL]; // some *_user_text column
+ $userIDC = $params[self::UID_COL]; // some *_user column
+ $timestampC = $params[self::TIME_COL]; // some *_timestamp column
+
+ $res = $dbw->select( $table,
+ [ $timestampC ],
+ [ $userTextC => $this->old, $userIDC => $this->uid ],
+ __METHOD__,
+ [ 'ORDER BY' => "$timestampC ASC" ]
+ );
+
+ $jobParams = [];
+ $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;
+ // Unique column for slave lag avoidance
+ if ( isset( $params['uniqueKey'] ) ) {
+ $jobParams['uniqueKey'] = $params['uniqueKey'];
+ }
+
+ // 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 );
+ }
+
+ // Log it!
+ $logEntry = new ManualLogEntry( 'renameuser', 'renameuser' );
+ $logEntry->setPerformer( $this->renamer );
+ $logEntry->setTarget( $oldTitle );
+ $logEntry->setComment( $this->reason );
+ $logEntry->setParameters( [
+ '4::olduser' => $this->old,
+ '5::newuser' => $this->new,
+ '6::edits' => $contribs
+ ] );
+ $logid = $logEntry->insert();
+ // Include the log_id in the jobs as a DB commit marker
+ foreach ( $jobs as $job ) {
+ $job->params['logId'] = $logid;
+ }
+
+ // Insert any jobs as needed. If this fails, then an exception will be thrown and the
+ // DB transaction will be rolled back. If it succeeds but the DB commit fails, then the
+ // jobs will see that the transaction was not committed and will cancel themselves.
+ $count = count( $jobs );
+ if ( $count > 0 ) {
+ JobQueueGroup::singleton()->push( $jobs );
+ $this->debug( "Queued $count jobs for {$this->old} to {$this->new}" );
+ }
+
+ // Commit the transaction
+ $dbw->endAtomic( __METHOD__ );
+
+ $that = $this;
+ $dbw->onTransactionIdle( function () use ( $that, $dbw, $logEntry, $logid ) {
+ $dbw->startAtomic( __METHOD__ );
+ // Clear caches and inform authentication plugins
+ $user = User::newFromId( $that->uid );
+ $user->load( User::READ_LATEST );
+ // Call $wgAuth for backwards compatibility
+ if ( class_exists( AuthManager::class ) ) {
+ AuthManager::callLegacyAuthPlugin( 'updateExternalDB', [ $user ] );
+ } else {
+ global $wgAuth;
+ $wgAuth->updateExternalDB( $user );
+ }
+ // Trigger the UserSaveSettings hook, which is the replacement for
+ // $wgAuth->updateExternalDB()
+ $user->saveSettings();
+ Hooks::run( 'RenameUserComplete', [ $that->uid, $that->old, $that->new ] );
+ // Publish to RC
+ $logEntry->publish( $logid );
+ $dbw->endAtomic( __METHOD__ );
+ } );
+
+ $this->debug( "Finished rename for {$this->old} to {$this->new}" );
+
+ return true;
+ }
+
+ /**
+ * @param string $name Current wiki local user name
+ * @return integer Returns 0 if no row was found
+ */
+ private static function lockUserAndGetId( $name ) {
+ return (int)wfGetDB( DB_MASTER )->selectField(
+ 'user',
+ 'user_id',
+ [ 'user_name' => $name ],
+ __METHOD__,
+ [ 'FOR UPDATE' ]
+ );
+ }
+
+ /**
+ * Fetch the core actor table schema migration stage
+ * @return int MIGRATION_* constant
+ */
+ public static function getActorMigrationStage() {
+ global $wgActorTableSchemaMigrationStage;
+
+ return isset( $wgActorTableSchemaMigrationStage )
+ ? $wgActorTableSchemaMigrationStage
+ : ( is_callable( User::class, 'getActorId' ) ? MIGRATION_NEW : MIGRATION_OLD );
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/includes/SpecialRenameuser.php b/www/wiki/extensions/Renameuser/includes/SpecialRenameuser.php
new file mode 100644
index 00000000..090adeef
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/includes/SpecialRenameuser.php
@@ -0,0 +1,432 @@
+<?php
+
+/**
+ * Special page that allows authorised users to rename
+ * user accounts
+ */
+class SpecialRenameuser extends SpecialPage {
+ public function __construct() {
+ parent::__construct( 'Renameuser', 'renameuser' );
+ }
+
+ public function doesWrites() {
+ return true;
+ }
+
+ /**
+ * Show the special page
+ *
+ * @param mixed $par Parameter passed to the page
+ * @throws PermissionsError
+ * @throws ReadOnlyError
+ * @throws UserBlockedError
+ */
+ public function execute( $par ) {
+ global $wgContLang, $wgCapitalLinks;
+
+ $this->setHeaders();
+ $this->addHelpLink( 'Help:Renameuser' );
+
+ $out = $this->getOutput();
+ $out->addWikiMsg( 'renameuser-summary' );
+
+ $user = $this->getUser();
+ if ( !$user->isAllowed( 'renameuser' ) ) {
+ throw new PermissionsError( 'renameuser' );
+ }
+
+ if ( wfReadOnly() ) {
+ throw new ReadOnlyError;
+ }
+
+ if ( $user->isBlocked() ) {
+ throw new UserBlockedError( $this->getUser()->mBlock );
+ }
+
+ $this->useTransactionalTimeLimit();
+
+ $request = $this->getRequest();
+ $showBlockLog = $request->getBool( 'submit-showBlockLog' );
+ $usernames = explode( '/', $par, 2 ); // this works as "/" is not valid in usernames
+ $oldnamePar = trim( str_replace( '_', ' ', $request->getText( 'oldusername', $usernames[0] ) ) );
+ $oldusername = Title::makeTitle( NS_USER, $oldnamePar );
+ $newnamePar = isset( $usernames[1] ) ? $usernames[1] : null;
+ $newnamePar = trim( str_replace( '_', ' ', $request->getText( 'newusername', $newnamePar ) ) );
+ // Force uppercase of newusername, otherwise wikis
+ // with wgCapitalLinks=false can create lc usernames
+ $newusername = Title::makeTitleSafe( NS_USER, $wgContLang->ucfirst( $newnamePar ) );
+ $oun = is_object( $oldusername ) ? $oldusername->getText() : '';
+ $nun = is_object( $newusername ) ? $newusername->getText() : '';
+ $token = $user->getEditToken();
+ $reason = $request->getText( 'reason' );
+
+ $move_checked = $request->getBool( 'movepages', !$request->wasPosted() );
+ $suppress_checked = $request->getCheck( 'suppressredirect' );
+
+ $warnings = [];
+ if ( $oun && $nun && !$request->getCheck( 'confirmaction' ) ) {
+ Hooks::run( 'RenameUserWarning', [ $oun, $nun, &$warnings ] );
+ }
+
+ $out->addHTML(
+ Xml::openElement( 'form', [
+ 'method' => 'post',
+ 'action' => $this->getPageTitle()->getLocalURL(),
+ 'id' => 'renameuser'
+ ] ) .
+ Xml::openElement( 'fieldset' ) .
+ Xml::element( 'legend', null, $this->msg( 'renameuser' )->text() ) .
+ Xml::openElement( 'table', [ 'id' => 'mw-renameuser-table' ] ) .
+ "<tr>
+ <td class='mw-label'>" .
+ Xml::label( $this->msg( 'renameuserold' )->text(), 'oldusername' ) .
+ "</td>
+ <td class='mw-input'>" .
+ Xml::input( 'oldusername', 20, $oun, [ 'type' => 'text', 'tabindex' => '1' ] ) . ' ' .
+ "</td>
+ </tr>
+ <tr>
+ <td class='mw-label'>" .
+ Xml::label( $this->msg( 'renameusernew' )->text(), 'newusername' ) .
+ "</td>
+ <td class='mw-input'>" .
+ Xml::input( 'newusername', 20, $nun, [ 'type' => 'text', 'tabindex' => '2' ] ) .
+ "</td>
+ </tr>
+ <tr>
+ <td class='mw-label'>" .
+ Xml::label( $this->msg( 'renameuserreason' )->text(), 'reason' ) .
+ "</td>
+ <td class='mw-input'>" .
+ Xml::input(
+ 'reason',
+ 40,
+ $reason,
+ [ 'type' => 'text', 'tabindex' => '3', 'maxlength' => 255 ]
+ ) .
+ '</td>
+ </tr>'
+ );
+ if ( $user->isAllowed( 'move' ) ) {
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-input'>" .
+ Xml::checkLabel( $this->msg( 'renameusermove' )->text(), 'movepages', 'movepages',
+ $move_checked, [ 'tabindex' => '4' ] ) .
+ '</td>
+ </tr>'
+ );
+
+ if ( $user->isAllowed( 'suppressredirect' ) ) {
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-input'>" .
+ Xml::checkLabel(
+ $this->msg( 'renameusersuppress' )->text(),
+ 'suppressredirect',
+ 'suppressredirect',
+ $suppress_checked,
+ [ 'tabindex' => '5' ]
+ ) .
+ '</td>
+ </tr>'
+ );
+ }
+ }
+ if ( $warnings ) {
+ $warningsHtml = [];
+ foreach ( $warnings as $warning ) {
+ $warningsHtml[] = is_array( $warning ) ?
+ $this->msg( $warning[0] )->rawParams( array_slice( $warning, 1 ) )->escaped() :
+ $this->msg( $warning )->escaped();
+ }
+
+ $out->addHTML( "
+ <tr>
+ <td class='mw-label'>" . $this->msg( 'renameuserwarnings' )->escaped() . "
+ </td>
+ <td class='mw-input'>" .
+ '<ul class="error"><li>' .
+ implode( '</li><li>', $warningsHtml ) . '</li></ul>' .
+ '</td>
+ </tr>'
+ );
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-input'>" .
+ Xml::checkLabel(
+ $this->msg( 'renameuserconfirm' )->text(),
+ 'confirmaction',
+ 'confirmaction',
+ false,
+ [ 'tabindex' => '6' ]
+ ) .
+ '</td>
+ </tr>'
+ );
+ }
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-submit'>" .
+ Xml::submitButton(
+ $this->msg( 'renameusersubmit' )->text(),
+ [
+ 'name' => 'submit',
+ 'tabindex' => '7',
+ 'id' => 'submit'
+ ]
+ ) .
+ ' ' .
+ Xml::submitButton(
+ $this->msg( 'renameuser-submit-blocklog' )->text(),
+ [
+ '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', $out );
+
+ return;
+ }
+
+ if ( $request->getText( 'token' ) === '' ) {
+ # They probably haven't even submitted the form, so don't go further.
+ return;
+ } elseif ( $warnings ) {
+ # Let user read warnings
+ return;
+ } elseif ( !$request->wasPosted() || !$user->matchEditToken( $request->getVal( 'token' ) ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>", 'renameuser-error-request' );
+
+ return;
+ } elseif ( !is_object( $oldusername ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorinvalid', $request->getText( 'oldusername' ) ] );
+
+ return;
+ } elseif ( !is_object( $newusername ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorinvalid', $request->getText( 'newusername' ) ] );
+
+ return;
+ } elseif ( $oldusername->getText() === $newusername->getText() ) {
+ $out->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 ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorinvalid', $oldusername->getText() ] );
+
+ return;
+ }
+ if ( !is_object( $newuser ) || !User::isCreatableName( $newuser->getName() ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ '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_REPLICA );
+ $uid = $dbr->selectField( 'user', 'user_id',
+ [ '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 ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrordoesnotexist', $oldusername->getText() ] );
+
+ return;
+ }
+
+ if ( $newuser->idForName() !== 0 ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorexists', $newusername->getText() ] );
+
+ return;
+ }
+
+ // Give other affected extensions a chance to validate or abort
+ if ( !Hooks::run(
+ 'RenameUserAbort',
+ [ $uid, $oldusername->getText(), $newusername->getText() ]
+ ) ) {
+ return;
+ }
+
+ // Do the heavy lifting...
+ $rename = new RenameuserSQL(
+ $oldusername->getText(),
+ $newusername->getText(),
+ $uid,
+ $this->getUser(),
+ [ 'reason' => $reason ]
+ );
+ 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 ( $user->getId() === $uid ) {
+ $user->setName( $newusername->getText() );
+ }
+
+ // Move any user pages
+ if ( $request->getCheck( 'movepages' ) && $user->isAllowed( 'move' ) ) {
+ $dbr = wfGetDB( DB_REPLICA );
+
+ $pages = $dbr->select(
+ 'page',
+ [ 'page_namespace', 'page_title' ],
+ [
+ 'page_namespace' => [ NS_USER, NS_USER_TALK ],
+ $dbr->makeList( [
+ 'page_title ' . $dbr->buildLike( $oldusername->getDBkey() . '/', $dbr->anyString() ),
+ 'page_title = ' . $dbr->addQuotes( $oldusername->getDBkey() ),
+ ], LIST_OR ),
+ ],
+ __METHOD__
+ );
+
+ $suppressRedirect = false;
+
+ if ( $request->getCheck( 'suppressredirect' ) && $user->isAllowed( 'suppressredirect' ) ) {
+ $suppressRedirect = true;
+ }
+
+ $output = '';
+ $linkRenderer = $this->getLinkRenderer();
+ 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 = $linkRenderer->makeKnownLink( $newPage );
+ $output .= Html::rawElement(
+ 'li',
+ [ 'class' => 'mw-renameuser-pe' ],
+ $this->msg( 'renameuser-page-exists' )->rawParams( $link )->escaped()
+ );
+ } else {
+ $success = $oldPage->moveTo(
+ $newPage,
+ false,
+ $this->msg(
+ 'renameuser-move-log',
+ $oldusername->getText(),
+ $newusername->getText() )->inContentLanguage()->text(),
+ !$suppressRedirect
+ );
+ if ( $success === true ) {
+ # oldPage is not known in case of redirect suppression
+ $oldLink = $linkRenderer->makeLink( $oldPage, null, [], [ 'redirect' => 'no' ] );
+
+ # newPage is always known because the move was successful
+ $newLink = $linkRenderer->makeKnownLink( $newPage );
+
+ $output .= Html::rawElement(
+ 'li',
+ [ 'class' => 'mw-renameuser-pm' ],
+ $this->msg( 'renameuser-page-moved' )->rawParams( $oldLink, $newLink )->escaped()
+ );
+ } else {
+ $oldLink = $linkRenderer->makeKnownLink( $oldPage );
+ $newLink = $linkRenderer->makeLink( $newPage );
+ $output .= Html::rawElement(
+ 'li', [ 'class' => 'mw-renameuser-pu' ],
+ $this->msg( 'renameuser-page-unmoved' )->rawParams( $oldLink, $newLink )->escaped()
+ );
+ }
+ }
+ }
+ if ( $output ) {
+ $out->addHTML( Html::rawElement( 'ul', [], $output ) );
+ }
+ }
+
+ // Output success message stuff :)
+ $out->wrapWikiMsg( "<div class=\"successbox\">$1</div><br style=\"clear:both\" />",
+ [ 'renameusersuccess', $oldusername->getText(), $newusername->getText() ] );
+ }
+
+ /**
+ * @param Title $username
+ * @param string $type
+ * @param OutputPage &$out
+ */
+ protected function showLogExtract( $username, $type, &$out ) {
+ # Show relevant lines from the logs:
+ $logPage = new LogPage( $type );
+ $out->addHTML( Xml::element( 'h2', null, $logPage->getName()->text() ) . "\n" );
+ LogEventsList::showLogExtract( $out, $type, $username->getPrefixedText() );
+ }
+
+ /**
+ * Return an array of subpages beginning with $search that this special page will accept.
+ *
+ * @param string $search Prefix to search for
+ * @param int $limit Maximum number of results to return (usually 10)
+ * @param int $offset Number of results to skip (usually 0)
+ * @return string[] Matching subpages
+ */
+ public function prefixSearchSubpages( $search, $limit, $offset ) {
+ if ( !class_exists( 'UserNamePrefixSearch' ) ) { // check for version 1.27
+ return [];
+ }
+ $user = User::newFromName( $search );
+ if ( !$user ) {
+ // No prefix suggestion for invalid user
+ return [];
+ }
+ // Autocomplete subpage as user list - public to allow caching
+ return UserNamePrefixSearch::search( 'public', $search, $limit, $offset );
+ }
+
+ protected function getGroupName() {
+ return 'users';
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/maintenance/cleanupArchiveUserText.php b/www/wiki/extensions/Renameuser/maintenance/cleanupArchiveUserText.php
new file mode 100644
index 00000000..40ccaae7
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/maintenance/cleanupArchiveUserText.php
@@ -0,0 +1,67 @@
+<?php
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ $IP = __DIR__ . '/../../..';
+}
+
+require_once "$IP/maintenance/Maintenance.php";
+
+/**
+ * @ingroup Maintenance
+ */
+class CleanupArchiveUserText extends Maintenance {
+ public function __construct() {
+ parent::__construct();
+ $this->mDescription = 'Update the archive table where users were ' .
+ 'previously renamed, but their archive contributions were not';
+
+ $this->requireExtension( 'Renameuser' );
+ }
+
+ public function execute() {
+ if ( RenameuserSQL::getActorMigrationStage() >= MIGRATION_NEW ) {
+ $this->output( "archive.ar_user_text is no longer used.\n" );
+ return;
+ }
+
+ $dbw = wfGetDB( DB_MASTER );
+ do {
+ $res = $dbw->select(
+ [ 'archive', 'user' ],
+ [ 'DISTINCT ar_user_text', 'user_name', 'ar_user' ],
+ [
+ 'ar_user_text <> user_name',
+ 'ar_user = user_id',
+ ],
+ __METHOD__,
+ [ 'LIMIT' => 50 ]
+ );
+ $results = 0;
+ foreach ( $res as $row ) {
+ $results++;
+ $this->output( "User:{$row->ar_user_text} => User:{$row->user_name} " );
+ $dbw->update(
+ 'archive',
+ [ 'ar_user_text' => $row->user_name ],
+ [
+ 'ar_user_text' => $row->ar_user_text,
+ 'ar_user' => $row->ar_user,
+ ],
+ __METHOD__,
+ [ 'LIMIT' => 50 ]
+ );
+ $affected = $dbw->affectedRows();
+ $this->output( "$affected rows\n" );
+ wfWaitForSlaves();
+ }
+ } while ( $results === 50 );
+ }
+
+ public function getDbType() {
+ return Maintenance::DB_ADMIN;
+ }
+}
+
+$maintClass = 'CleanupArchiveUserText';
+require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/www/wiki/extensions/Renameuser/maintenance/renameUserCleanup.php b/www/wiki/extensions/Renameuser/maintenance/renameUserCleanup.php
new file mode 100644
index 00000000..4adffe7e
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/maintenance/renameUserCleanup.php
@@ -0,0 +1,350 @@
+<?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@wikimedia.org>
+ */
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ $IP = __DIR__ . '/../../..';
+}
+require_once "$IP/maintenance/Maintenance.php";
+
+class RenameUserCleanup extends Maintenance {
+ public function __construct() {
+ parent::__construct();
+ $this->addDescription( '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->setBatchSize( 1000 );
+
+ $this->requireExtension( 'Renameuser' );
+ }
+
+ public function execute() {
+ if ( RenameuserSQL::getActorMigrationStage() >= MIGRATION_NEW ) {
+ $this->output( "Core xx_user_text fields are no longer used, no updates should be needed.\n" );
+ return;
+ }
+
+ $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 );
+
+ $this->output( "Done!\n" );
+ }
+
+ /**
+ * @param User $olduser
+ * @param User $newuser
+ */
+ public function checkUserExistence( $olduser, $newuser ) {
+ if ( !$newuser->getId() ) {
+ $this->error( 'No such user: ' . $this->getOption( 'newuser' ), true );
+ }
+ if ( $olduser->getId() ) {
+ $this->output( 'WARNING!!: Old user still exists: ' . $this->getOption( 'olduser' ) . "\n" );
+ $this->output( 'We\'ll only re-attribute edits that have the new user uid (or 0) ' );
+ $this->output( 'or the uid specified by the caller, and the old user name.' );
+ $this->output( 'Proceed anyway? [N/y] ' );
+
+ $stdin = fopen( 'php://stdin', 'rt' );
+ $line = fgets( $stdin );
+ fclose( $stdin );
+
+ if ( $line[0] !== 'Y' && $line[0] !== 'y' ) {
+ $this->output( "Exiting at users request\n" );
+ }
+ }
+ }
+
+ /**
+ * @param User $olduser
+ * @param User $newuser
+ */
+ public function checkRenameLog( $olduser, $newuser ) {
+ $dbr = wfGetDB( DB_REPLICA );
+
+ $oldTitle = Title::makeTitle( NS_USER, $olduser->getName() );
+
+ $result = $dbr->select( 'logging', '*',
+ [ '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
+ if ( class_exists( CommentStore::class ) ) {
+ $commentStore = CommentStore::getStore();
+ $commentQuery = $commentStore->getJoin( 'log_comment' );
+ } else {
+ $commentStore = null;
+ $commentQuery = [
+ 'tables' => [],
+ 'fields' => [ 'log_comment' => 'log_comment' ],
+ 'joins' => [],
+ ];
+ }
+ $result = $dbr->select(
+ [ 'logging' ] + $commentQuery['tables'],
+ [ 'log_title', 'log_timestamp' ] + $commentQuery['fields'],
+ [
+ 'log_type' => 'renameuser',
+ 'log_action' => 'renameuser',
+ 'log_namespace' => NS_USER,
+ 'log_title' => $olduser->getName(),
+ ],
+ __METHOD__,
+ [],
+ $commentQuery['joins']
+ );
+ if ( !$result || !$result->numRows() ) {
+ $this->output( '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' ) {
+ $this->output( "Exiting at user's request\n" );
+ exit( 1 );
+ }
+ } else {
+ foreach ( $result as $row ) {
+ $comment = $commentStore
+ ? $commentStore->getComment( 'log_comment', $row )->text
+ : $row->log_comment;
+ $this->output( 'Found possible log entry of the rename, please check: ' .
+ $row->log_title . ' with comment ' . $comment .
+ " on $row->log_timestamp\n" );
+ }
+ }
+ } else {
+ foreach ( $result as $row ) {
+ $this->output( '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. Proceed anyways? [N/y] ';
+
+ $stdin = fopen( 'php://stdin', 'rt' );
+ $line = fgets( $stdin );
+ fclose( $stdin );
+
+ if ( $line[0] !== 'Y' && $line[0] !== 'y' ) {
+ $this->output( "Exiting at users request\n" );
+ exit( 1 );
+ }
+ }
+ }
+
+ /**
+ * @param User $olduser
+ * @param User $newuser
+ * @param int $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 string $table
+ * @param string $usernamefield
+ * @param string $useridfield
+ * @param string $timestampfield
+ * @param User $olduser
+ * @param User $newuser
+ * @param int $uid
+ */
+ public function updateTable( $table, $usernamefield, $useridfield,
+ $timestampfield, $olduser, $newuser, $uid
+ ) {
+ $dbw = wfGetDB( DB_MASTER );
+
+ $contribs = $dbw->selectField(
+ $table,
+ 'count(*)',
+ [
+ $usernamefield => $olduser->getName(),
+ $useridfield => $uid
+ ],
+ __METHOD__
+ );
+
+ if ( $contribs === 0 ) {
+ $this->output( "No edits to be re-attributed from table $table for uid $uid\n" );
+
+ return;
+ }
+
+ $this->output( "Found $contribs edits to be re-attributed from table $table for uid $uid\n" );
+ if ( $uid !== $newuser->getId() ) {
+ $this->output( 'If you proceed, the uid field will be set to that ' .
+ 'of the new user name (i.e. ' . $newuser->getId() . ") in these rows.\n" );
+ }
+
+ $this->output( 'Proceed? [N/y] ' );
+
+ $stdin = fopen( 'php://stdin', 'rt' );
+ $line = fgets( $stdin );
+ fclose( $stdin );
+
+ if ( $line[0] !== 'Y' && $line[0] !== 'y' ) {
+ $this->output( "Skipping at user's request\n" );
+ return;
+ }
+
+ $selectConds = [ $usernamefield => $olduser->getName(), $useridfield => $uid ];
+ $updateFields = [ $usernamefield => $newuser->getName(), $useridfield => $newuser->getId() ];
+
+ while ( $contribs > 0 ) {
+ $this->output( 'Doing batch of up to approximately ' . $this->mBatchSize . "\n" );
+ $this->output( 'Do this batch? [N/y] ' );
+
+ $stdin = fopen( 'php://stdin', 'rt' );
+ $line = fgets( $stdin );
+ fclose( $stdin );
+
+ if ( $line[0] !== 'Y' && $line[0] !== 'y' ) {
+ $this->output( "Skipping at user's request\n" );
+ return;
+ }
+
+ $this->beginTransaction( $dbw, __METHOD__ );
+ $result = $dbw->select(
+ $table,
+ $timestampfield,
+ $selectConds,
+ __METHOD__,
+ [
+ 'ORDER BY' => $timestampfield . ' DESC',
+ 'LIMIT' => $this->mBatchSize
+ ]
+ );
+
+ if ( !$result ) {
+ $this->output( "There were rows for updating but now they are gone. Skipping.\n" );
+ $this->rollbackTransaction( $dbw, __METHOD__ );
+
+ return;
+ }
+
+ $result->seek( $result->numRows() - 1 );
+ $row = $result->fetchObject();
+ $timestamp = $dbw->addQuotes( $row->$timestampfield );
+ $updateCondsWithTime = array_merge( $selectConds, [ "$timestampfield >= $timestamp" ] );
+ $success = $dbw->update(
+ $table,
+ $updateFields,
+ $updateCondsWithTime,
+ __METHOD__
+ );
+
+ if ( $success ) {
+ $rowsDone = $dbw->affectedRows();
+ $this->commitTransaction( $dbw, __METHOD__ );
+ } else {
+ $this->rollbackTransaction( $dbw, __METHOD__ );
+ $this->error( "Problem with the update, rolling back and exiting\n", true );
+ }
+
+ // $contribs = User::edits( $olduser->getId() );
+ $contribs = $dbw->selectField( $table, 'count(*)', $selectConds, __METHOD__ );
+ $this->output( "Updated $rowsDone edits; $contribs edits remaining to be re-attributed\n" );
+ }
+ }
+}
+
+$maintClass = 'RenameUserCleanup';
+require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/www/wiki/extensions/Renameuser/phpcs.xml b/www/wiki/extensions/Renameuser/phpcs.xml
new file mode 100644
index 00000000..7dd11fce
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/phpcs.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<ruleset>
+ <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamComment" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamName" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturn" />
+ <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
+ <exclude name="MediaWiki.Files.ClassMatchesFilename.WrongCase" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
+ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
+ </rule>
+ <rule ref="Generic.Files.LineLength">
+ <exclude-pattern>Renameuser.alias.php</exclude-pattern>
+ </rule>
+ <file>.</file>
+ <arg name="extensions" value="php,php5,inc" />
+ <arg name="encoding" value="utf8" />
+ <exclude-pattern>vendor</exclude-pattern>
+</ruleset>
diff --git a/www/wiki/extensions/Renameuser/renameUserCleanup.php b/www/wiki/extensions/Renameuser/renameUserCleanup.php
new file mode 100644
index 00000000..10041c5b
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/renameUserCleanup.php
@@ -0,0 +1,256 @@
+<?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@wikimedia.org>
+ */
+
+$IP = getenv( 'MW_INSTALL_PATH' );
+if ( $IP === false ) {
+ $IP = __DIR__ . '/../..';
+}
+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', '*',
+ [ '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', '*',
+ [ '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(*)',
+ [ $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 = [ $usernamefield => $olduser->getName(), $useridfield => $uid ];
+ $updateFields = [ $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 );
+ }
+ $this->beginTransaction( $dbw, __METHOD__ );
+ $result = $dbw->select( $table, $timestampfield, $selectConds, __METHOD__,
+ [ 'ORDER BY' => $timestampfield . ' DESC', 'LIMIT' => $this->mBatchSize ] );
+ if ( !$result ) {
+ print "There were rows for updating but now they are gone. Skipping.\n";
+ $this->rollbackTransaction( $dbw, __METHOD__ );
+
+ return ( 0 );
+ }
+ $result->seek( $result->numRows() - 1 );
+ $row = $result->fetchObject();
+ $timestamp = $row->$timestampfield;
+ $updateCondsWithTime = array_merge( $selectConds, [ "$timestampfield >= $timestamp" ] );
+ $success = $dbw->update( $table, $updateFields, $updateCondsWithTime, __METHOD__ );
+ if ( $success ) {
+ $rowsDone = $dbw->affectedRows();
+ $this->commitTransaction( $dbw, __METHOD__ );
+ } else {
+ print "Problem with the update, rolling back and exiting\n";
+ $this->rollbackTransaction( $dbw, __METHOD__ );
+ 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;
diff --git a/www/wiki/extensions/Renameuser/specials/SpecialRenameuser.php b/www/wiki/extensions/Renameuser/specials/SpecialRenameuser.php
new file mode 100644
index 00000000..00143779
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/specials/SpecialRenameuser.php
@@ -0,0 +1,428 @@
+<?php
+
+/**
+ * Special page that allows authorised users to rename
+ * user accounts
+ */
+class SpecialRenameuser extends SpecialPage {
+ public function __construct() {
+ parent::__construct( 'Renameuser', 'renameuser' );
+ }
+
+ public function doesWrites() {
+ return true;
+ }
+
+ /**
+ * Show the special page
+ *
+ * @param mixed $par Parameter passed to the page
+ * @throws PermissionsError
+ * @throws ReadOnlyError
+ * @throws UserBlockedError
+ */
+ public function execute( $par ) {
+ global $wgContLang, $wgCapitalLinks;
+
+ $this->setHeaders();
+
+ $out = $this->getOutput();
+ $out->addWikiMsg( 'renameuser-summary' );
+
+ $user = $this->getUser();
+ if ( !$user->isAllowed( 'renameuser' ) ) {
+ throw new PermissionsError( 'renameuser' );
+ }
+
+ if ( wfReadOnly() ) {
+ throw new ReadOnlyError;
+ }
+
+ if ( $user->isBlocked() ) {
+ throw new UserBlockedError( $this->getUser()->mBlock );
+ }
+
+ $this->useTransactionalTimeLimit();
+
+ $request = $this->getRequest();
+ $showBlockLog = $request->getBool( 'submit-showBlockLog' );
+ $usernames = explode( '/', $par, 2 ); // this works as "/" is not valid in usernames
+ $oldnamePar = trim( str_replace( '_', ' ', $request->getText( 'oldusername', $usernames[0] ) ) );
+ $oldusername = Title::makeTitle( NS_USER, $oldnamePar );
+ $newnamePar = isset( $usernames[1] ) ? $usernames[1] : null;
+ $newnamePar = trim( str_replace( '_', ' ', $request->getText( 'newusername', $newnamePar ) ) );
+ // Force uppercase of newusername, otherwise wikis
+ // with wgCapitalLinks=false can create lc usernames
+ $newusername = Title::makeTitleSafe( NS_USER, $wgContLang->ucfirst( $newnamePar ) );
+ $oun = is_object( $oldusername ) ? $oldusername->getText() : '';
+ $nun = is_object( $newusername ) ? $newusername->getText() : '';
+ $token = $user->getEditToken();
+ $reason = $request->getText( 'reason' );
+
+ $move_checked = $request->getBool( 'movepages', !$request->wasPosted() );
+ $suppress_checked = $request->getCheck( 'suppressredirect' );
+
+ $warnings = [];
+ if ( $oun && $nun && !$request->getCheck( 'confirmaction' ) ) {
+ Hooks::run( 'RenameUserWarning', [ $oun, $nun, &$warnings ] );
+ }
+
+ $out->addHTML(
+ Xml::openElement( 'form', [
+ 'method' => 'post',
+ 'action' => $this->getPageTitle()->getLocalURL(),
+ 'id' => 'renameuser'
+ ] ) .
+ Xml::openElement( 'fieldset' ) .
+ Xml::element( 'legend', null, $this->msg( 'renameuser' )->text() ) .
+ Xml::openElement( 'table', [ 'id' => 'mw-renameuser-table' ] ) .
+ "<tr>
+ <td class='mw-label'>" .
+ Xml::label( $this->msg( 'renameuserold' )->text(), 'oldusername' ) .
+ "</td>
+ <td class='mw-input'>" .
+ Xml::input( 'oldusername', 20, $oun, [ 'type' => 'text', 'tabindex' => '1' ] ) . ' ' .
+ "</td>
+ </tr>
+ <tr>
+ <td class='mw-label'>" .
+ Xml::label( $this->msg( 'renameusernew' )->text(), 'newusername' ) .
+ "</td>
+ <td class='mw-input'>" .
+ Xml::input( 'newusername', 20, $nun, [ 'type' => 'text', 'tabindex' => '2' ] ) .
+ "</td>
+ </tr>
+ <tr>
+ <td class='mw-label'>" .
+ Xml::label( $this->msg( 'renameuserreason' )->text(), 'reason' ) .
+ "</td>
+ <td class='mw-input'>" .
+ Xml::input(
+ 'reason',
+ 40,
+ $reason,
+ [ 'type' => 'text', 'tabindex' => '3', 'maxlength' => 255 ]
+ ) .
+ '</td>
+ </tr>'
+ );
+ if ( $user->isAllowed( 'move' ) ) {
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-input'>" .
+ Xml::checkLabel( $this->msg( 'renameusermove' )->text(), 'movepages', 'movepages',
+ $move_checked, [ 'tabindex' => '4' ] ) .
+ '</td>
+ </tr>'
+ );
+
+ if ( $user->isAllowed( 'suppressredirect' ) ) {
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-input'>" .
+ Xml::checkLabel(
+ $this->msg( 'renameusersuppress' )->text(),
+ 'suppressredirect',
+ 'suppressredirect',
+ $suppress_checked,
+ [ 'tabindex' => '5' ]
+ ) .
+ '</td>
+ </tr>'
+ );
+ }
+ }
+ if ( $warnings ) {
+ $warningsHtml = [];
+ foreach ( $warnings as $warning ) {
+ $warningsHtml[] = is_array( $warning ) ?
+ $this->msg( $warning[0] )->rawParams( array_slice( $warning, 1 ) )->escaped() :
+ $this->msg( $warning )->escaped();
+ }
+
+ $out->addHTML( "
+ <tr>
+ <td class='mw-label'>" . $this->msg( 'renameuserwarnings' )->escaped() . "
+ </td>
+ <td class='mw-input'>" .
+ '<ul class="error"><li>' .
+ implode( '</li><li>', $warningsHtml ) . '</li></ul>' .
+ '</td>
+ </tr>'
+ );
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-input'>" .
+ Xml::checkLabel(
+ $this->msg( 'renameuserconfirm' )->text(),
+ 'confirmaction',
+ 'confirmaction',
+ false,
+ [ 'tabindex' => '6' ]
+ ) .
+ '</td>
+ </tr>'
+ );
+ }
+ $out->addHTML( "
+ <tr>
+ <td>&#160;
+ </td>
+ <td class='mw-submit'>" .
+ Xml::submitButton(
+ $this->msg( 'renameusersubmit' )->text(),
+ [
+ 'name' => 'submit',
+ 'tabindex' => '7',
+ 'id' => 'submit'
+ ]
+ ) .
+ ' ' .
+ Xml::submitButton(
+ $this->msg( 'renameuser-submit-blocklog' )->text(),
+ [
+ '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', $out );
+
+ return;
+ }
+
+ if ( $request->getText( 'token' ) === '' ) {
+ # They probably haven't even submitted the form, so don't go further.
+ return;
+ } elseif ( $warnings ) {
+ # Let user read warnings
+ return;
+ } elseif ( !$request->wasPosted() || !$user->matchEditToken( $request->getVal( 'token' ) ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>", 'renameuser-error-request' );
+
+ return;
+ } elseif ( !is_object( $oldusername ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorinvalid', $request->getText( 'oldusername' ) ] );
+
+ return;
+ } elseif ( !is_object( $newusername ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorinvalid', $request->getText( 'newusername' ) ] );
+
+ return;
+ } elseif ( $oldusername->getText() === $newusername->getText() ) {
+ $out->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 ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorinvalid', $oldusername->getText() ] );
+
+ return;
+ }
+ if ( !is_object( $newuser ) || !User::isCreatableName( $newuser->getName() ) ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ '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',
+ [ '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 ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrordoesnotexist', $oldusername->getText() ] );
+
+ return;
+ }
+
+ if ( $newuser->idForName() !== 0 ) {
+ $out->wrapWikiMsg( "<div class=\"errorbox\">$1</div>",
+ [ 'renameusererrorexists', $newusername->getText() ] );
+
+ return;
+ }
+
+ // Give other affected extensions a chance to validate or abort
+ if ( !Hooks::run(
+ 'RenameUserAbort',
+ [ $uid, $oldusername->getText(), $newusername->getText() ]
+ ) ) {
+ return;
+ }
+
+ // Do the heavy lifting...
+ $rename = new RenameuserSQL(
+ $oldusername->getText(),
+ $newusername->getText(),
+ $uid,
+ $this->getUser(),
+ [ 'reason' => $reason ]
+ );
+ 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 ( $user->getId() === $uid ) {
+ $user->setName( $newusername->getText() );
+ }
+
+ // Move any user pages
+ if ( $request->getCheck( 'movepages' ) && $user->isAllowed( 'move' ) ) {
+ $dbr = wfGetDB( DB_SLAVE );
+
+ $pages = $dbr->select(
+ 'page',
+ [ 'page_namespace', 'page_title' ],
+ [
+ '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 ( $request->getCheck( 'suppressredirect' ) && $user->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',
+ [ 'class' => 'mw-renameuser-pe' ],
+ $this->msg( 'renameuser-page-exists' )->rawParams( $link )->escaped()
+ );
+ } else {
+ $success = $oldPage->moveTo(
+ $newPage,
+ false,
+ $this->msg(
+ '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, [], [ 'redirect' => 'no' ] );
+
+ # newPage is always known because the move was successful
+ $newLink = Linker::linkKnown( $newPage );
+
+ $output .= Html::rawElement(
+ 'li',
+ [ 'class' => 'mw-renameuser-pm' ],
+ $this->msg( 'renameuser-page-moved' )->rawParams( $oldLink, $newLink )->escaped()
+ );
+ } else {
+ $oldLink = Linker::linkKnown( $oldPage );
+ $newLink = Linker::link( $newPage );
+ $output .= Html::rawElement(
+ 'li', [ 'class' => 'mw-renameuser-pu' ],
+ $this->msg( 'renameuser-page-unmoved' )->rawParams( $oldLink, $newLink )->escaped()
+ );
+ }
+ }
+ }
+ if ( $output ) {
+ $out->addHTML( Html::rawElement( 'ul', [], $output ) );
+ }
+ }
+
+ // Output success message stuff :)
+ $out->wrapWikiMsg( "<div class=\"successbox\">$1</div><br style=\"clear:both\" />",
+ [ 'renameusersuccess', $oldusername->getText(), $newusername->getText() ] );
+ }
+
+ /**
+ * @param $username Title
+ * @param $type
+ * @param $out OutputPage
+ */
+ protected function showLogExtract( $username, $type, &$out ) {
+ # Show relevant lines from the logs:
+ $logPage = new LogPage( $type );
+ $out->addHTML( Xml::element( 'h2', null, $logPage->getName()->text() ) . "\n" );
+ LogEventsList::showLogExtract( $out, $type, $username->getPrefixedText() );
+ }
+
+ /**
+ * Return an array of subpages beginning with $search that this special page will accept.
+ *
+ * @param string $search Prefix to search for
+ * @param int $limit Maximum number of results to return (usually 10)
+ * @param int $offset Number of results to skip (usually 0)
+ * @return string[] Matching subpages
+ */
+ public function prefixSearchSubpages( $search, $limit, $offset ) {
+ if ( !class_exists( 'UserNamePrefixSearch' ) ) { // check for version 1.27
+ return [];
+ }
+ $user = User::newFromName( $search );
+ if ( !$user ) {
+ // No prefix suggestion for invalid user
+ return [];
+ }
+ // Autocomplete subpage as user list - public to allow caching
+ return UserNamePrefixSearch::search( 'public', $search, $limit, $offset );
+ }
+
+ protected function getGroupName() {
+ return 'users';
+ }
+}
diff --git a/www/wiki/extensions/Renameuser/tests/phan/config.php b/www/wiki/extensions/Renameuser/tests/phan/config.php
new file mode 100644
index 00000000..f2660b8a
--- /dev/null
+++ b/www/wiki/extensions/Renameuser/tests/phan/config.php
@@ -0,0 +1,3 @@
+<?php
+
+return require __DIR__ . '/../../vendor/mediawiki/mediawiki-phan-config/src/config.php';