Compare commits
258 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
384fdfa2bf | ||
![]() |
7f40072416 | ||
![]() |
e00a3b1c57 | ||
![]() |
95976e0082 | ||
![]() |
00af3f2598 | ||
![]() |
2b415b36b5 | ||
![]() |
1cf9ae8247 | ||
![]() |
548a1f177c | ||
![]() |
645c945994 | ||
![]() |
4212d24b49 | ||
![]() |
7d145662fa | ||
![]() |
7cc5575eaa | ||
![]() |
945f54a773 | ||
![]() |
d4dae78b27 | ||
![]() |
e307850555 | ||
![]() |
790e23f9bb | ||
![]() |
7fa71f5e78 | ||
![]() |
6666f47f3b | ||
![]() |
46ebf43828 | ||
![]() |
c68abe1641 | ||
![]() |
f9aa4a74b3 | ||
![]() |
d4132dab01 | ||
![]() |
228317e7c6 | ||
![]() |
c1d095e381 | ||
![]() |
120ae2bac0 | ||
![]() |
fb464fbd13 | ||
![]() |
6a8d6116e1 | ||
![]() |
35ea80cb36 | ||
![]() |
b7bf249857 | ||
![]() |
0a533b36f5 | ||
![]() |
5be2c8ed72 | ||
![]() |
71ace6a83c | ||
![]() |
6024bfd83b | ||
![]() |
5ade4bf529 | ||
![]() |
81fe64aea5 | ||
![]() |
32d5ef59fa | ||
![]() |
b0e2a7c59a | ||
![]() |
89e7ebc584 | ||
![]() |
908d2f68a2 | ||
![]() |
95800b51f3 | ||
![]() |
bb3429ecff | ||
![]() |
e5d96719d8 | ||
![]() |
fcb9c19544 | ||
![]() |
20f33b07f3 | ||
![]() |
309914b267 | ||
![]() |
571a707b3b | ||
![]() |
20b9a568e2 | ||
![]() |
4dc3f4fc3e | ||
![]() |
6fac0091ec | ||
![]() |
0c3861304e | ||
![]() |
9f53a1eba9 | ||
![]() |
2dc00fa1ae | ||
![]() |
ca10b2089e | ||
![]() |
fdcc307d8e | ||
![]() |
9d46bcf5c7 | ||
![]() |
b8a91c6731 | ||
![]() |
e51c7662d1 | ||
![]() |
18e42f349b | ||
![]() |
ddd94477cf | ||
![]() |
95f9a48ac4 | ||
![]() |
5aefac796c | ||
![]() |
4f60431795 | ||
![]() |
b11635777b | ||
![]() |
f42092ec06 | ||
![]() |
a131b2a47b | ||
![]() |
6e2d039150 | ||
![]() |
b04514e353 | ||
![]() |
de739003d4 | ||
![]() |
ea143f6b66 | ||
![]() |
70cc5ee193 | ||
![]() |
234c4f6622 | ||
![]() |
2b3ff2324d | ||
![]() |
4817b0112c | ||
![]() |
371c9a0a44 | ||
![]() |
b4321e9f90 | ||
![]() |
2af4934cbd | ||
![]() |
f260a7ad76 | ||
![]() |
73ed304e2c | ||
![]() |
e9f8e17919 | ||
![]() |
3de3b235c6 | ||
![]() |
82ae323231 | ||
![]() |
3ceddd3f31 | ||
![]() |
82788a63ed | ||
![]() |
d5dca87239 | ||
![]() |
192f38dc4c | ||
![]() |
02766fdc0c | ||
![]() |
896045f848 | ||
![]() |
f7f3af5657 | ||
![]() |
e81fb24586 | ||
![]() |
3bb49646fe | ||
![]() |
cba65cdeb6 | ||
![]() |
e70a6bb4d0 | ||
![]() |
2668446cd7 | ||
![]() |
27e579e3c3 | ||
![]() |
e745e56085 | ||
![]() |
a3c92f6e07 | ||
![]() |
81dd4ee4a6 | ||
![]() |
b317d2566e | ||
![]() |
0ca704c7d1 | ||
![]() |
e4a9083d8f | ||
![]() |
3b8629ad9b | ||
![]() |
30eace5dec | ||
![]() |
c73ace56c4 | ||
![]() |
3837153bab | ||
![]() |
9d10a949e5 | ||
![]() |
6cdaa361c1 | ||
![]() |
8d97dcf311 | ||
![]() |
3491a9442a | ||
![]() |
bc2d5f0861 | ||
![]() |
0fefd2e406 | ||
![]() |
a9e0eb0470 | ||
![]() |
49dc2d232e | ||
![]() |
7272a4fe24 | ||
![]() |
7b876b0f90 | ||
![]() |
6ae0c0aa22 | ||
![]() |
8c7c249651 | ||
![]() |
36e83792c1 | ||
![]() |
61466f70ba | ||
![]() |
99f2c7ba2d | ||
![]() |
5fca35e35f | ||
![]() |
ce614727d6 | ||
![]() |
75db448a5a | ||
![]() |
269e7c36bd | ||
![]() |
f84ae1f8ef | ||
![]() |
df0b2b361e | ||
![]() |
c5e00ee3b6 | ||
![]() |
5084678417 | ||
![]() |
d8a1838713 | ||
![]() |
8148b88bae | ||
![]() |
7732497d2d | ||
![]() |
d7c0807c42 | ||
![]() |
5252232b28 | ||
![]() |
6669533173 | ||
![]() |
55222dbe20 | ||
![]() |
5693157a1c | ||
![]() |
af94bd010e | ||
![]() |
8f65502105 | ||
![]() |
939c1791d7 | ||
![]() |
d1e5935ae9 | ||
![]() |
faa762e357 | ||
![]() |
27be1253e4 | ||
![]() |
1fb733a3c0 | ||
![]() |
cb9dd2cf8a | ||
![]() |
399a755106 | ||
![]() |
e6fe7c3cf1 | ||
![]() |
93713bc81a | ||
![]() |
9b4e4189a5 | ||
![]() |
da6d68679d | ||
![]() |
eec13d3ccb | ||
![]() |
319a4b66aa | ||
![]() |
feba1f3c24 | ||
![]() |
c165625db0 | ||
![]() |
6525c264a5 | ||
![]() |
360c4907c9 | ||
![]() |
41b7af419d | ||
![]() |
93bc80de36 | ||
![]() |
29a475b729 | ||
![]() |
dbb386dbb9 | ||
![]() |
24163541fd | ||
![]() |
82ccf3218d | ||
![]() |
f308cea87b | ||
![]() |
a2996eeefb | ||
![]() |
8396437cb8 | ||
![]() |
2c0c4ead96 | ||
![]() |
6da935060e | ||
![]() |
883a510682 | ||
![]() |
f3049b7661 | ||
![]() |
abf2440fb5 | ||
![]() |
c11ae3ecae | ||
![]() |
1e63860107 | ||
![]() |
77131eeea6 | ||
![]() |
8ab0432154 | ||
![]() |
bca86c48d8 | ||
![]() |
f5533155c5 | ||
![]() |
0fa91e1521 | ||
![]() |
d3a7eae103 | ||
![]() |
de1c326168 | ||
![]() |
5f36ec60c7 | ||
![]() |
ef2b6c3fd0 | ||
![]() |
89245e3162 | ||
![]() |
1197d1f083 | ||
![]() |
7c85a64698 | ||
![]() |
d3ceff2c1e | ||
![]() |
4a10ec1289 | ||
![]() |
411f61584b | ||
![]() |
c66687bbbf | ||
![]() |
f8a7b3b2e5 | ||
![]() |
41f7bedf63 | ||
![]() |
8a19c65553 | ||
![]() |
3db945f043 | ||
![]() |
f06b30754b | ||
![]() |
ef9a18dbb3 | ||
![]() |
2e50eb98f2 | ||
![]() |
624fd9ceb3 | ||
![]() |
f4e07cd2d1 | ||
![]() |
ef040d9bb9 | ||
![]() |
55c537d3b5 | ||
![]() |
43cdd9c995 | ||
![]() |
bda50ee63e | ||
![]() |
f96c7296ee | ||
![]() |
5d9db4f295 | ||
![]() |
5d956844d0 | ||
![]() |
bd7ada4a6a | ||
![]() |
9e0ab4d3d9 | ||
![]() |
703f4f3a4f | ||
![]() |
d088656a2d | ||
![]() |
b1299f8bd2 | ||
![]() |
6d5dab5383 | ||
![]() |
a8244c9811 | ||
![]() |
f17afc4434 | ||
![]() |
9b9d57a8a6 | ||
![]() |
ff99752901 | ||
![]() |
aefb07ef4b | ||
![]() |
6da0d445a7 | ||
![]() |
7fdbc8e9cc | ||
![]() |
66cf8c80f0 | ||
![]() |
627050be10 | ||
![]() |
78f9e4eb57 | ||
![]() |
40acd85a7b | ||
![]() |
0ff4291766 | ||
![]() |
b10d6f6018 | ||
![]() |
5589be458c | ||
![]() |
230dd8ddb8 | ||
![]() |
488e0fc623 | ||
![]() |
5a335d1876 | ||
![]() |
56f21a2611 | ||
![]() |
a5ef8a5409 | ||
![]() |
0010a6f08b | ||
![]() |
740e0fa273 | ||
![]() |
e4cb919476 | ||
![]() |
8f657f7205 | ||
![]() |
b91882cf5d | ||
![]() |
dc265d8e8a | ||
![]() |
7b7a5455fc | ||
![]() |
4801c07cf7 | ||
![]() |
864b0cc7fa | ||
![]() |
e75e848e87 | ||
![]() |
13547b297b | ||
![]() |
3f11979c0c | ||
![]() |
586ac172c3 | ||
![]() |
3c27b9799f | ||
![]() |
94b628b088 | ||
![]() |
7fba6c11a9 | ||
![]() |
0c89ceb943 | ||
![]() |
1ff50713fd | ||
![]() |
b7143c57e4 | ||
![]() |
509057a276 | ||
![]() |
acfbf607fe | ||
![]() |
98f63e8ba2 | ||
![]() |
7e02f8ac63 | ||
![]() |
fb1d8ca60e | ||
![]() |
ec21c8a9f9 | ||
![]() |
51f7098006 | ||
![]() |
0fc60b9ea5 | ||
![]() |
d6745e9a0b | ||
![]() |
3b34ef2a5d | ||
![]() |
15ee4e44b0 | ||
![]() |
060173d240 |
100 changed files with 7614 additions and 688 deletions
8
.eslintrc.json
Normal file
8
.eslintrc.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"root": true,
|
||||
"extends": [
|
||||
"wikimedia/client-es5",
|
||||
"wikimedia/jquery",
|
||||
"wikimedia/mediawiki"
|
||||
]
|
||||
}
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,5 +1,8 @@
|
|||
.svn
|
||||
*~
|
||||
*.kate-swp
|
||||
.*.swp
|
||||
.idea
|
||||
node_modules/
|
||||
/composer.lock
|
||||
/vendor/
|
||||
/.eslintcache
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/ContributionScores
|
||||
defaultbranch=master
|
||||
track=1
|
||||
defaultrebase=0
|
12
.phpcs.xml
Normal file
12
.phpcs.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
|
||||
<exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
|
||||
<exclude name="MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage" />
|
||||
<exclude name="PSR12.Properties.ConstantVisibility.NotFound" />
|
||||
<exclude name="Squiz.Scope.MethodScope.Missing" />
|
||||
</rule>
|
||||
<file>.</file>
|
||||
<arg name="extensions" value="php" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
1
CODE_OF_CONDUCT.md
Normal file
1
CODE_OF_CONDUCT.md
Normal file
|
@ -0,0 +1 @@
|
|||
The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct).
|
|
@ -5,246 +5,275 @@
|
|||
* @file
|
||||
* @ingroup Extensions
|
||||
*/
|
||||
// @codingStandardsIgnoreFile
|
||||
|
||||
$specialPageAliases = array();
|
||||
$specialPageAliases = [];
|
||||
|
||||
/** English (English) */
|
||||
$specialPageAliases['en'] = array(
|
||||
'ContributionScores' => array( 'ContributionScores' ),
|
||||
);
|
||||
$specialPageAliases['en'] = [
|
||||
'ContributionScores' => [ 'ContributionScores' ],
|
||||
];
|
||||
|
||||
/** Arabic (العربية) */
|
||||
$specialPageAliases['ar'] = array(
|
||||
'ContributionScores' => array( 'نتائج_المساهمة' ),
|
||||
);
|
||||
$specialPageAliases['ar'] = [
|
||||
'ContributionScores' => [ 'نتائج_المساهمة' ],
|
||||
];
|
||||
|
||||
/** Aramaic (ܐܪܡܝܐ) */
|
||||
$specialPageAliases['arc'] = array(
|
||||
'ContributionScores' => array( 'ܦܠܛ̈ܐ_ܕܫܘܬܦܘ̈ܬܐ' ),
|
||||
);
|
||||
$specialPageAliases['arc'] = [
|
||||
'ContributionScores' => [ 'ܦܠܛ̈ܐ_ܕܫܘܬܦܘ̈ܬܐ' ],
|
||||
];
|
||||
|
||||
/** Egyptian Spoken Arabic (مصرى) */
|
||||
$specialPageAliases['arz'] = array(
|
||||
'ContributionScores' => array( 'نتايج_المساهمه' ),
|
||||
);
|
||||
/** Egyptian Arabic (مصرى) */
|
||||
$specialPageAliases['arz'] = [
|
||||
'ContributionScores' => [ 'نتايج_المساهمه' ],
|
||||
];
|
||||
|
||||
/** Assamese (অসমীয়া) */
|
||||
$specialPageAliases['as'] = array(
|
||||
'ContributionScores' => array( 'বৰঙনিৰ_মূল্যায়ন' ),
|
||||
);
|
||||
$specialPageAliases['as'] = [
|
||||
'ContributionScores' => [ 'বৰঙনিৰ_মূল্যায়ন' ],
|
||||
];
|
||||
|
||||
/** Avaric (авар) */
|
||||
$specialPageAliases['av'] = [
|
||||
'ContributionScores' => [ 'Очки_вклада' ],
|
||||
];
|
||||
|
||||
/** Bashkir (башҡортса) */
|
||||
$specialPageAliases['ba'] = array(
|
||||
'ContributionScores' => array( 'Өлөш_мәрәйҙәре' ),
|
||||
);
|
||||
$specialPageAliases['ba'] = [
|
||||
'ContributionScores' => [ 'Өлөш_мәрәйҙәре' ],
|
||||
];
|
||||
|
||||
/** Western Balochi (بلوچی رخشانی) */
|
||||
$specialPageAliases['bgn'] = [
|
||||
'ContributionScores' => [ 'شراکتانی_امتیاز_ئان' ],
|
||||
];
|
||||
|
||||
/** Banjar (Bahasa Banjar) */
|
||||
$specialPageAliases['bjn'] = array(
|
||||
'ContributionScores' => array( 'Skor_sumbangan' ),
|
||||
);
|
||||
$specialPageAliases['bjn'] = [
|
||||
'ContributionScores' => [ 'Skor_sumbangan' ],
|
||||
];
|
||||
|
||||
/** Bengali (বাংলা) */
|
||||
$specialPageAliases['bn'] = [
|
||||
'ContributionScores' => [ 'অবদানের_স্কোর' ],
|
||||
];
|
||||
|
||||
/** Breton (brezhoneg) */
|
||||
$specialPageAliases['br'] = array(
|
||||
'ContributionScores' => array( 'Skor_Degasadennoù' ),
|
||||
);
|
||||
$specialPageAliases['br'] = [
|
||||
'ContributionScores' => [ 'Skor_Degasadennoù' ],
|
||||
];
|
||||
|
||||
/** Bosnian (bosanski) */
|
||||
$specialPageAliases['bs'] = array(
|
||||
'ContributionScores' => array( 'DoprinosiBodovi' ),
|
||||
);
|
||||
$specialPageAliases['bs'] = [
|
||||
'ContributionScores' => [ 'DoprinosiBodovi' ],
|
||||
];
|
||||
|
||||
/** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄) */
|
||||
$specialPageAliases['cdo'] = array(
|
||||
'ContributionScores' => array( '貢獻分數' ),
|
||||
);
|
||||
$specialPageAliases['cdo'] = [
|
||||
'ContributionScores' => [ '貢獻分數' ],
|
||||
];
|
||||
|
||||
/** German (Deutsch) */
|
||||
$specialPageAliases['de'] = array(
|
||||
'ContributionScores' => array( 'Beitragspunkte' ),
|
||||
);
|
||||
$specialPageAliases['de'] = [
|
||||
'ContributionScores' => [ 'Beitragspunkte' ],
|
||||
];
|
||||
|
||||
/** Zazaki (Zazaki) */
|
||||
$specialPageAliases['diq'] = array(
|
||||
'ContributionScores' => array( 'SqoréDekerdışan' ),
|
||||
);
|
||||
$specialPageAliases['diq'] = [
|
||||
'ContributionScores' => [ 'SqoréDekerdışan' ],
|
||||
];
|
||||
|
||||
/** Esperanto (Esperanto) */
|
||||
$specialPageAliases['eo'] = array(
|
||||
'ContributionScores' => array( 'Poentaro_de_kontribuoj', 'Kontribuatingoj' ),
|
||||
);
|
||||
$specialPageAliases['eo'] = [
|
||||
'ContributionScores' => [ 'Poentaro_de_kontribuoj', 'Kontribuatingoj' ],
|
||||
];
|
||||
|
||||
/** Estonian (eesti) */
|
||||
$specialPageAliases['et'] = array(
|
||||
'ContributionScores' => array( 'Kaastööpunktid' ),
|
||||
);
|
||||
$specialPageAliases['et'] = [
|
||||
'ContributionScores' => [ 'Kaastööpunktid' ],
|
||||
];
|
||||
|
||||
/** Persian (فارسی) */
|
||||
$specialPageAliases['fa'] = array(
|
||||
'ContributionScores' => array( 'امتیازهای_مشارکت' ),
|
||||
);
|
||||
$specialPageAliases['fa'] = [
|
||||
'ContributionScores' => [ 'امتیازهای_مشارکت' ],
|
||||
];
|
||||
|
||||
/** Finnish (suomi) */
|
||||
$specialPageAliases['fi'] = array(
|
||||
'ContributionScores' => array( 'Muokkauspisteet' ),
|
||||
);
|
||||
$specialPageAliases['fi'] = [
|
||||
'ContributionScores' => [ 'Muokkauspisteet' ],
|
||||
];
|
||||
|
||||
/** Galician (galego) */
|
||||
$specialPageAliases['gl'] = array(
|
||||
'ContributionScores' => array( 'Puntuación_das_contribucións' ),
|
||||
);
|
||||
$specialPageAliases['gl'] = [
|
||||
'ContributionScores' => [ 'Puntuación_das_contribucións' ],
|
||||
];
|
||||
|
||||
/** Hebrew (עברית) */
|
||||
$specialPageAliases['he'] = array(
|
||||
'ContributionScores' => array( 'דירוג_תרומות' ),
|
||||
);
|
||||
$specialPageAliases['he'] = [
|
||||
'ContributionScores' => [ 'דירוג_תרומות' ],
|
||||
];
|
||||
|
||||
/** Haitian (Kreyòl ayisyen) */
|
||||
$specialPageAliases['ht'] = array(
|
||||
'ContributionScores' => array( 'PwentajKontribisyon' ),
|
||||
);
|
||||
$specialPageAliases['ht'] = [
|
||||
'ContributionScores' => [ 'PwentajKontribisyon' ],
|
||||
];
|
||||
|
||||
/** Hungarian (magyar) */
|
||||
$specialPageAliases['hu'] = array(
|
||||
'ContributionScores' => array( 'Szerkesztési_pontok' ),
|
||||
);
|
||||
$specialPageAliases['hu'] = [
|
||||
'ContributionScores' => [ 'Szerkesztési_pontok' ],
|
||||
];
|
||||
|
||||
/** Interlingua (interlingua) */
|
||||
$specialPageAliases['ia'] = array(
|
||||
'ContributionScores' => array( 'Scores_de_contributiones' ),
|
||||
);
|
||||
$specialPageAliases['ia'] = [
|
||||
'ContributionScores' => [ 'Scores_de_contributiones' ],
|
||||
];
|
||||
|
||||
/** Indonesian (Bahasa Indonesia) */
|
||||
$specialPageAliases['id'] = array(
|
||||
'ContributionScores' => array( 'Skor_kontribusi', 'SkorKontribusi' ),
|
||||
);
|
||||
$specialPageAliases['id'] = [
|
||||
'ContributionScores' => [ 'Skor_kontribusi', 'SkorKontribusi' ],
|
||||
];
|
||||
|
||||
/** Italian (italiano) */
|
||||
$specialPageAliases['it'] = array(
|
||||
'ContributionScores' => array( 'PunteggiContributi' ),
|
||||
);
|
||||
$specialPageAliases['it'] = [
|
||||
'ContributionScores' => [ 'PunteggiContributi' ],
|
||||
];
|
||||
|
||||
/** Japanese (日本語) */
|
||||
$specialPageAliases['ja'] = array(
|
||||
'ContributionScores' => array( '貢献スコア', '貢献得点' ),
|
||||
);
|
||||
$specialPageAliases['ja'] = [
|
||||
'ContributionScores' => [ '貢献スコア', '貢献得点' ],
|
||||
];
|
||||
|
||||
/** Khmer (ភាសាខ្មែរ) */
|
||||
$specialPageAliases['km'] = array(
|
||||
'ContributionScores' => array( 'ពិន្ទុអ្នករួមចំណែក' ),
|
||||
);
|
||||
$specialPageAliases['km'] = [
|
||||
'ContributionScores' => [ 'ពិន្ទុអ្នករួមចំណែក' ],
|
||||
];
|
||||
|
||||
/** Korean (한국어) */
|
||||
$specialPageAliases['ko'] = array(
|
||||
'ContributionScores' => array( '기여점수' ),
|
||||
);
|
||||
$specialPageAliases['ko'] = [
|
||||
'ContributionScores' => [ '기여점수' ],
|
||||
];
|
||||
|
||||
/** Colognian (Ripoarisch) */
|
||||
$specialPageAliases['ksh'] = array(
|
||||
'ContributionScores' => array( 'MetmaacherZahle' ),
|
||||
);
|
||||
$specialPageAliases['ksh'] = [
|
||||
'ContributionScores' => [ 'MetmaacherZahle' ],
|
||||
];
|
||||
|
||||
/** Ladino (Ladino) */
|
||||
$specialPageAliases['lad'] = array(
|
||||
'ContributionScores' => array( 'Resultados_de_ajustamientos' ),
|
||||
);
|
||||
$specialPageAliases['lad'] = [
|
||||
'ContributionScores' => [ 'Resultados_de_ajustamientos' ],
|
||||
];
|
||||
|
||||
/** Luxembourgish (Lëtzebuergesch) */
|
||||
$specialPageAliases['lb'] = array(
|
||||
'ContributionScores' => array( 'Score_vun_de_Kontributiounen' ),
|
||||
);
|
||||
$specialPageAliases['lb'] = [
|
||||
'ContributionScores' => [ 'Score_vun_de_Kontributiounen' ],
|
||||
];
|
||||
|
||||
/** Northern Luri (لۊری شومالی) */
|
||||
$specialPageAliases['lrc'] = [
|
||||
'ContributionScores' => [ 'نئرخ_ھومیاری' ],
|
||||
];
|
||||
|
||||
/** Minangkabau (Baso Minangkabau) */
|
||||
$specialPageAliases['min'] = array(
|
||||
'ContributionScores' => array( 'SkorJariah' ),
|
||||
);
|
||||
$specialPageAliases['min'] = [
|
||||
'ContributionScores' => [ 'SkorJariah' ],
|
||||
];
|
||||
|
||||
/** Macedonian (македонски) */
|
||||
$specialPageAliases['mk'] = array(
|
||||
'ContributionScores' => array( 'БодувањеНаПридонесите' ),
|
||||
);
|
||||
$specialPageAliases['mk'] = [
|
||||
'ContributionScores' => [ 'БодувањеНаПридонесите' ],
|
||||
];
|
||||
|
||||
/** Malayalam (മലയാളം) */
|
||||
$specialPageAliases['ml'] = array(
|
||||
'ContributionScores' => array( 'സേവനസ്കോറുകൾ' ),
|
||||
);
|
||||
$specialPageAliases['ml'] = [
|
||||
'ContributionScores' => [ 'സേവനസ്കോറുകൾ' ],
|
||||
];
|
||||
|
||||
/** Marathi (मराठी) */
|
||||
$specialPageAliases['mr'] = array(
|
||||
'ContributionScores' => array( 'योगदानप्राविण्य' ),
|
||||
);
|
||||
$specialPageAliases['mr'] = [
|
||||
'ContributionScores' => [ 'योगदानप्राविण्य' ],
|
||||
];
|
||||
|
||||
/** Norwegian Bokmål (norsk bokmål) */
|
||||
$specialPageAliases['nb'] = array(
|
||||
'ContributionScores' => array( 'Bidragspoeng' ),
|
||||
);
|
||||
$specialPageAliases['nb'] = [
|
||||
'ContributionScores' => [ 'Bidragspoeng' ],
|
||||
];
|
||||
|
||||
/** Low Saxon (Netherlands) (Nedersaksies) */
|
||||
$specialPageAliases['nds-nl'] = array(
|
||||
'ContributionScores' => array( 'Biedragentelling' ),
|
||||
);
|
||||
$specialPageAliases['nds-nl'] = [
|
||||
'ContributionScores' => [ 'Biedragentelling' ],
|
||||
];
|
||||
|
||||
/** Dutch (Nederlands) */
|
||||
$specialPageAliases['nl'] = array(
|
||||
'ContributionScores' => array( 'Gebruikersscores', 'Bijdragenscores' ),
|
||||
);
|
||||
$specialPageAliases['nl'] = [
|
||||
'ContributionScores' => [ 'Gebruikersscores', 'Bijdragenscores' ],
|
||||
];
|
||||
|
||||
/** Polish (polski) */
|
||||
$specialPageAliases['pl'] = array(
|
||||
'ContributionScores' => array( 'Punkty_za_edycje' ),
|
||||
);
|
||||
$specialPageAliases['pl'] = [
|
||||
'ContributionScores' => [ 'Punkty_za_edycje' ],
|
||||
];
|
||||
|
||||
/** Russian (русский) */
|
||||
$specialPageAliases['ru'] = array(
|
||||
'ContributionScores' => array( 'Очки_вклада' ),
|
||||
);
|
||||
$specialPageAliases['ru'] = [
|
||||
'ContributionScores' => [ 'Очки_вклада' ],
|
||||
];
|
||||
|
||||
/** Sanskrit (संस्कृतम्) */
|
||||
$specialPageAliases['sa'] = array(
|
||||
'ContributionScores' => array( 'योगदानप्राप्ताङ्क' ),
|
||||
);
|
||||
$specialPageAliases['sa'] = [
|
||||
'ContributionScores' => [ 'योगदानप्राप्ताङ्क' ],
|
||||
];
|
||||
|
||||
/** Sicilian (sicilianu) */
|
||||
$specialPageAliases['scn'] = array(
|
||||
'ContributionScores' => array( 'PunteggiContribuzione' ),
|
||||
);
|
||||
$specialPageAliases['scn'] = [
|
||||
'ContributionScores' => [ 'PunteggiContribuzione' ],
|
||||
];
|
||||
|
||||
/** Slovak (slovenčina) */
|
||||
$specialPageAliases['sk'] = array(
|
||||
'ContributionScores' => array( 'SkórePríspevkov' ),
|
||||
);
|
||||
$specialPageAliases['sk'] = [
|
||||
'ContributionScores' => [ 'SkórePríspevkov' ],
|
||||
];
|
||||
|
||||
/** Serbian Cyrillic (српски (ћирилица)) */
|
||||
$specialPageAliases['sr-ec'] = [
|
||||
'ContributionScores' => [ 'ОценеДоприноса' ],
|
||||
];
|
||||
|
||||
/** Serbian Latin (srpski (latinica)) */
|
||||
$specialPageAliases['sr-el'] = [
|
||||
'ContributionScores' => [ 'OceneDoprinosa' ],
|
||||
];
|
||||
|
||||
/** Swedish (svenska) */
|
||||
$specialPageAliases['sv'] = array(
|
||||
'ContributionScores' => array( 'Bidragspoäng' ),
|
||||
);
|
||||
$specialPageAliases['sv'] = [
|
||||
'ContributionScores' => [ 'Bidragspoäng' ],
|
||||
];
|
||||
|
||||
/** Thai (ไทย) */
|
||||
$specialPageAliases['th'] = array(
|
||||
'ContributionScores' => array( 'คะแนนการเขียน' ),
|
||||
);
|
||||
$specialPageAliases['th'] = [
|
||||
'ContributionScores' => [ 'คะแนนการเขียน' ],
|
||||
];
|
||||
|
||||
/** Tagalog (Tagalog) */
|
||||
$specialPageAliases['tl'] = array(
|
||||
'ContributionScores' => array( 'Mga_puntos_ng_ambag' ),
|
||||
);
|
||||
$specialPageAliases['tl'] = [
|
||||
'ContributionScores' => [ 'Mga_puntos_ng_ambag' ],
|
||||
];
|
||||
|
||||
/** Turkish (Türkçe) */
|
||||
$specialPageAliases['tr'] = array(
|
||||
'ContributionScores' => array( 'KatkıSkorları', 'KatkıPuanları' ),
|
||||
);
|
||||
$specialPageAliases['tr'] = [
|
||||
'ContributionScores' => [ 'KatkıSkorları', 'KatkıPuanları' ],
|
||||
];
|
||||
|
||||
/** Ukrainian (українська) */
|
||||
$specialPageAliases['uk'] = array(
|
||||
'ContributionScores' => array( 'Очки_внеску' ),
|
||||
);
|
||||
$specialPageAliases['uk'] = [
|
||||
'ContributionScores' => [ 'Очки_внеску', 'Очки_вклада' ],
|
||||
];
|
||||
|
||||
/** Simplified Chinese (中文(简体)) */
|
||||
$specialPageAliases['zh-hans'] = array(
|
||||
'ContributionScores' => array( '贡献得分' ),
|
||||
);
|
||||
$specialPageAliases['zh-hans'] = [
|
||||
'ContributionScores' => [ '贡献得分' ],
|
||||
];
|
||||
|
||||
/** Traditional Chinese (中文(繁體)) */
|
||||
$specialPageAliases['zh-hant'] = array(
|
||||
'ContributionScores' => array( '貢獻分數' ),
|
||||
);
|
||||
$specialPageAliases['zh-hant'] = [
|
||||
'ContributionScores' => [ '貢獻分數' ],
|
||||
];
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* Magic words for extension.
|
||||
*/
|
||||
|
||||
$magicWords = array();
|
||||
$magicWords = [];
|
||||
|
||||
/** English (English) */
|
||||
$magicWords['en'] = array(
|
||||
'cscore' => array( 0, 'cscore' ),
|
||||
);
|
||||
$magicWords['en'] = [
|
||||
'cscore' => [ 0, 'cscore' ],
|
||||
];
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* This is a backwards-compatibility shim, generated by:
|
||||
* https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
|
||||
*
|
||||
* Beginning with MediaWiki 1.23, translation strings are stored in json files,
|
||||
* and the EXTENSION.i18n.php file only exists to provide compatibility with
|
||||
* older releases of MediaWiki. For more information about this migration, see:
|
||||
* https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
|
||||
*
|
||||
* This shim maintains compatibility back to MediaWiki 1.17.
|
||||
*/
|
||||
$messages = array();
|
||||
if ( !function_exists( 'wfJsonI18nShim9e08550f702d6269' ) ) {
|
||||
function wfJsonI18nShim9e08550f702d6269( $cache, $code, &$cachedData ) {
|
||||
$codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
|
||||
foreach ( $codeSequence as $csCode ) {
|
||||
$fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
|
||||
if ( is_readable( $fileName ) ) {
|
||||
$data = FormatJson::decode( file_get_contents( $fileName ), true );
|
||||
foreach ( array_keys( $data ) as $key ) {
|
||||
if ( $key === '' || $key[0] === '@' ) {
|
||||
unset( $data[$key] );
|
||||
}
|
||||
}
|
||||
$cachedData['messages'] = array_merge( $data, $cachedData['messages'] );
|
||||
}
|
||||
|
||||
$cachedData['deps'][] = new FileDependency( $fileName );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
$GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 'wfJsonI18nShim9e08550f702d6269';
|
||||
}
|
|
@ -1,88 +0,0 @@
|
|||
<?php
|
||||
/** \file
|
||||
* \brief Contains setup code for the Contribution Scores Extension.
|
||||
*/
|
||||
|
||||
# Not a valid entry point, skip unless MEDIAWIKI is defined
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
echo "Contribution Scores extension";
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
$wgExtensionCredits['specialpage'][] = array(
|
||||
'path' => __FILE__,
|
||||
'name' => 'Contribution Scores',
|
||||
'url' => 'https://www.mediawiki.org/wiki/Extension:Contribution_Scores',
|
||||
'author' => 'Tim Laqua',
|
||||
'descriptionmsg' => 'contributionscores-desc',
|
||||
'version' => '1.17.0'
|
||||
);
|
||||
|
||||
$dir = dirname( __FILE__ ) . '/';
|
||||
|
||||
define( 'CONTRIBUTIONSCORES_MAXINCLUDELIMIT', 50 );
|
||||
$wgContribScoreReports = null;
|
||||
|
||||
// These settings can be overridden in LocalSettings.php.
|
||||
$wgContribScoreIgnoreBlockedUsers = false; // Set to true to exclude bots from the reporting.
|
||||
$wgContribScoreIgnoreBots = false; // Set to true to exclude blocked users from the reporting.
|
||||
$wgContribScoresUseRealName = false; // Set to true to use real user names when available. Only for MediaWiki 1.19 and later.
|
||||
$wgContribScoreDisableCache = false; // Set to true to disable cache for parser function and inclusion of table.
|
||||
|
||||
$wgAutoloadClasses['ContributionScores'] = $dir . 'ContributionScores_body.php';
|
||||
$wgSpecialPages['ContributionScores'] = 'ContributionScores';
|
||||
$wgSpecialPageGroups['ContributionScores'] = 'wiki';
|
||||
|
||||
$wgMessagesDirs['ContributionScores'] = __DIR__ . '/i18n';
|
||||
$wgExtensionMessagesFiles['ContributionScores'] = $dir . 'ContributionScores.i18n.php';
|
||||
$wgExtensionMessagesFiles['ContributionScoresAlias'] = $dir . 'ContributionScores.alias.php';
|
||||
$wgExtensionMessagesFiles['ContributionScoresMagic'] = $dir . 'ContributionScores.i18n.magic.php';
|
||||
|
||||
$wgHooks['ParserFirstCallInit'][] = 'efContributionScores_Setup';
|
||||
|
||||
function efContributionScores_Setup( &$parser ) {
|
||||
$parser->setFunctionHook( 'cscore', 'efContributionScores_Render' );
|
||||
return true;
|
||||
}
|
||||
|
||||
function efContributionScores_Render( &$parser, $usertext, $metric = 'score' ) {
|
||||
global $wgContribScoreDisableCache;
|
||||
|
||||
if ( $wgContribScoreDisableCache ) {
|
||||
$parser->disableCache();
|
||||
}
|
||||
|
||||
$user = User::newFromName( $usertext );
|
||||
$dbr = wfGetDB( DB_SLAVE );
|
||||
|
||||
if ( $user instanceof User && $user->isLoggedIn() ) {
|
||||
global $wgLang;
|
||||
|
||||
if ( $metric == 'score' ) {
|
||||
$res = $dbr->select( 'revision',
|
||||
'COUNT(DISTINCT rev_page)+SQRT(COUNT(rev_id)-COUNT(DISTINCT rev_page))*2 AS wiki_rank',
|
||||
array( 'rev_user' => $user->getID() ) );
|
||||
$row = $dbr->fetchObject( $res );
|
||||
$output = $wgLang->formatNum( round( $row->wiki_rank, 0 ) );
|
||||
} elseif ( $metric == 'changes' ) {
|
||||
$res = $dbr->select( 'revision',
|
||||
'COUNT(rev_id) AS rev_count',
|
||||
array( 'rev_user' => $user->getID() ) );
|
||||
$row = $dbr->fetchObject( $res );
|
||||
$output = $wgLang->formatNum( $row->rev_count );
|
||||
|
||||
} elseif ( $metric == 'pages' ) {
|
||||
$res = $dbr->select( 'revision',
|
||||
'COUNT(DISTINCT rev_page) AS page_count',
|
||||
array( 'rev_user' => $user->getID() ) );
|
||||
$row = $dbr->fetchObject( $res );
|
||||
$output = $wgLang->formatNum( $row->page_count );
|
||||
} else {
|
||||
$output = wfMessage( 'contributionscores-invalidmetric' )->text();
|
||||
}
|
||||
} else {
|
||||
$output = wfMessage( 'contributionscores-invalidusername' )->text();
|
||||
}
|
||||
|
||||
return $parser->insertStripItem( $output, $parser->mStripState );
|
||||
}
|
|
@ -1,251 +0,0 @@
|
|||
<?php
|
||||
/** \file
|
||||
* \brief Contains code for the ContributionScores Class (extends SpecialPage).
|
||||
*/
|
||||
|
||||
/// Special page class for the Contribution Scores extension
|
||||
/**
|
||||
* Special page that generates a list of wiki contributors based
|
||||
* on edit diversity (unique pages edited) and edit volume (total
|
||||
* number of edits.
|
||||
*
|
||||
* @ingroup Extensions
|
||||
* @author Tim Laqua <t.laqua@gmail.com>
|
||||
*/
|
||||
class ContributionScores extends IncludableSpecialPage {
|
||||
public function __construct() {
|
||||
parent::__construct( 'ContributionScores' );
|
||||
}
|
||||
|
||||
/// Generates a "Contribution Scores" table for a given LIMIT and date range
|
||||
/**
|
||||
* Function generates Contribution Scores tables in HTML format (not wikiText)
|
||||
*
|
||||
* @param $days int Days in the past to run report for
|
||||
* @param $limit int Maximum number of users to return (default 50)
|
||||
* @param $title Title (default null)
|
||||
* @param $options array of options (default none; nosort/notools)
|
||||
* @return Html Table representing the requested Contribution Scores.
|
||||
*/
|
||||
function genContributionScoreTable( $days, $limit, $title = null, $options = 'none' ) {
|
||||
global $wgContribScoreIgnoreBots, $wgContribScoreIgnoreBlockedUsers, $wgContribScoresUseRealName;
|
||||
|
||||
$opts = explode( ',', strtolower( $options ) );
|
||||
|
||||
$dbr = wfGetDB( DB_SLAVE );
|
||||
|
||||
$userTable = $dbr->tableName( 'user' );
|
||||
$userGroupTable = $dbr->tableName( 'user_groups' );
|
||||
$revTable = $dbr->tableName( 'revision' );
|
||||
$ipBlocksTable = $dbr->tableName( 'ipblocks' );
|
||||
|
||||
$sqlWhere = "";
|
||||
$nextPrefix = "WHERE";
|
||||
|
||||
if ( $days > 0 ) {
|
||||
$date = time() - ( 60 * 60 * 24 * $days );
|
||||
$dateString = $dbr->timestamp( $date );
|
||||
$sqlWhere .= " {$nextPrefix} rev_timestamp > '$dateString'";
|
||||
$nextPrefix = "AND";
|
||||
}
|
||||
|
||||
if ( $wgContribScoreIgnoreBlockedUsers ) {
|
||||
$sqlWhere .= " {$nextPrefix} rev_user NOT IN (SELECT ipb_user FROM {$ipBlocksTable} WHERE ipb_user <> 0)";
|
||||
$nextPrefix = "AND";
|
||||
}
|
||||
|
||||
if ( $wgContribScoreIgnoreBots ) {
|
||||
$sqlWhere .= " {$nextPrefix} rev_user NOT IN (SELECT ug_user FROM {$userGroupTable} WHERE ug_group='bot')";
|
||||
}
|
||||
|
||||
$sqlMostPages = "SELECT rev_user,
|
||||
COUNT(DISTINCT rev_page) AS page_count,
|
||||
COUNT(rev_id) AS rev_count
|
||||
FROM {$revTable}
|
||||
{$sqlWhere}
|
||||
GROUP BY rev_user
|
||||
ORDER BY page_count DESC
|
||||
LIMIT {$limit}";
|
||||
|
||||
$sqlMostRevs = "SELECT rev_user,
|
||||
COUNT(DISTINCT rev_page) AS page_count,
|
||||
COUNT(rev_id) AS rev_count
|
||||
FROM {$revTable}
|
||||
{$sqlWhere}
|
||||
GROUP BY rev_user
|
||||
ORDER BY rev_count DESC
|
||||
LIMIT {$limit}";
|
||||
|
||||
$sql = "SELECT user_id, " .
|
||||
"user_name, " .
|
||||
"user_real_name, " .
|
||||
"page_count, " .
|
||||
"rev_count, " .
|
||||
"page_count+SQRT(rev_count-page_count)*2 AS wiki_rank " .
|
||||
"FROM $userTable u JOIN (($sqlMostPages) UNION ($sqlMostRevs)) s ON (user_id=rev_user) " .
|
||||
"ORDER BY wiki_rank DESC " .
|
||||
"LIMIT $limit";
|
||||
|
||||
$res = $dbr->query( $sql );
|
||||
|
||||
$sortable = in_array( 'nosort', $opts ) ? '' : ' sortable';
|
||||
|
||||
$output = "<table class=\"wikitable contributionscores plainlinks{$sortable}\" >\n" .
|
||||
"<tr class='header'>\n" .
|
||||
Html::element( 'th', array(), $this->msg( 'contributionscores-rank' )->text() ) .
|
||||
Html::element( 'th', array(), $this->msg( 'contributionscores-score' )->text() ) .
|
||||
Html::element( 'th', array(), $this->msg( 'contributionscores-pages' )->text() ) .
|
||||
Html::element( 'th', array(), $this->msg( 'contributionscores-changes' )->text() ) .
|
||||
Html::element( 'th', array(), $this->msg( 'contributionscores-username' )->text() );
|
||||
|
||||
$altrow = '';
|
||||
$user_rank = 1;
|
||||
|
||||
$lang = $this->getLanguage();
|
||||
foreach ( $res as $row ) {
|
||||
// Use real name if option used and real name present.
|
||||
if ( $wgContribScoresUseRealName && $row->user_real_name !== '' ) {
|
||||
$userLink = Linker::userLink(
|
||||
$row->user_id,
|
||||
$row->user_name,
|
||||
$row->user_real_name
|
||||
);
|
||||
} else {
|
||||
$userLink = Linker::userLink(
|
||||
$row->user_id,
|
||||
$row->user_name
|
||||
);
|
||||
}
|
||||
|
||||
$output .= Html::closeElement( 'tr' );
|
||||
$output .= "<tr class='{$altrow}'>\n<td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( round( $user_rank, 0 ) ) . "\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( round( $row->wiki_rank, 0 ) ) . "\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( $row->page_count ) . "\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( $row->rev_count ) . "\n</td><td class='content'>" .
|
||||
$userLink;
|
||||
|
||||
# Option to not display user tools
|
||||
if ( !in_array( 'notools', $opts ) ) {
|
||||
$output .= Linker::userToolLinks( $row->user_id, $row->user_name );
|
||||
}
|
||||
|
||||
$output .= Html::closeElement( 'td' ) . "\n";
|
||||
|
||||
if ( $altrow == '' && empty( $sortable ) ) {
|
||||
$altrow = 'odd ';
|
||||
} else {
|
||||
$altrow = '';
|
||||
}
|
||||
|
||||
$user_rank++;
|
||||
}
|
||||
$output .= Html::closeElement( 'tr' );
|
||||
$output .= Html::closeElement( 'table' );
|
||||
|
||||
$dbr->freeResult( $res );
|
||||
|
||||
if ( !empty( $title ) )
|
||||
$output = Html::rawElement( 'table',
|
||||
array(
|
||||
'style' => 'border-spacing: 0; padding: 0',
|
||||
'class' => 'contributionscores-wrapper',
|
||||
'lang' => htmlspecialchars( $lang->getCode()),
|
||||
'dir' => $lang->getDir()
|
||||
),
|
||||
"\n" .
|
||||
"<tr>\n" .
|
||||
"<td style='padding: 0px;'>{$title}</td>\n" .
|
||||
"</tr>\n" .
|
||||
"<tr>\n" .
|
||||
"<td style='padding: 0px;'>{$output}</td>\n" .
|
||||
"</tr>\n"
|
||||
);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function execute( $par ) {
|
||||
$this->setHeaders();
|
||||
|
||||
if ( $this->including() ) {
|
||||
$this->showInclude( $par );
|
||||
} else {
|
||||
$this->showPage();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when being included on a normal wiki page.
|
||||
* Cache is disabled so it can depend on the user language.
|
||||
* @param $par
|
||||
*/
|
||||
function showInclude( $par ) {
|
||||
$days = null;
|
||||
$limit = null;
|
||||
$options = 'none';
|
||||
|
||||
if ( !empty( $par ) ) {
|
||||
$params = explode( '/', $par );
|
||||
|
||||
$limit = intval( $params[0] );
|
||||
|
||||
if ( isset( $params[1] ) ) {
|
||||
$days = intval( $params[1] );
|
||||
}
|
||||
|
||||
if ( isset( $params[2] ) ) {
|
||||
$options = $params[2];
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $limit ) || $limit < 1 || $limit > CONTRIBUTIONSCORES_MAXINCLUDELIMIT ) {
|
||||
$limit = 10;
|
||||
}
|
||||
if ( is_null( $days ) || $days < 0 ) {
|
||||
$days = 7;
|
||||
}
|
||||
|
||||
if ( $days > 0 ) {
|
||||
$reportTitle = $this->msg( 'contributionscores-days' )->numParams( $days )->text();
|
||||
} else {
|
||||
$reportTitle = $this->msg( 'contributionscores-allrevisions' )->text();
|
||||
}
|
||||
$reportTitle .= " " . $this->msg( 'contributionscores-top' )->numParams( $limit )->text();
|
||||
$title = Xml::element( 'h4', array( 'class' => 'contributionscores-title' ), $reportTitle ) . "\n";
|
||||
$this->getOutput()->addHTML( $this->genContributionScoreTable( $days, $limit, $title, $options ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the special page
|
||||
*/
|
||||
function showPage() {
|
||||
global $wgContribScoreReports;
|
||||
|
||||
if ( !is_array( $wgContribScoreReports ) ) {
|
||||
$wgContribScoreReports = array(
|
||||
array( 7, 50 ),
|
||||
array( 30, 50 ),
|
||||
array( 0, 50 )
|
||||
);
|
||||
}
|
||||
|
||||
$out = $this->getOutput();
|
||||
$out->addWikiMsg( 'contributionscores-info' );
|
||||
|
||||
foreach ( $wgContribScoreReports as $scoreReport ) {
|
||||
list( $days, $revs ) = $scoreReport;
|
||||
if ( $days > 0 ) {
|
||||
$reportTitle = $this->msg( 'contributionscores-days' )->numParams( $days )->text();
|
||||
} else {
|
||||
$reportTitle = $this->msg( 'contributionscores-allrevisions' )->text();
|
||||
}
|
||||
$reportTitle .= " " . $this->msg( 'contributionscores-top' )->numParams( $revs )->text();
|
||||
$title = Xml::element( 'h2', array( 'class' => 'contributionscores-title' ), $reportTitle ) . "\n";
|
||||
$out->addHTML( $title );
|
||||
$out->addHTML( $this->genContributionScoreTable( $days, $revs ) );
|
||||
}
|
||||
}
|
||||
}
|
26
Gruntfile.js
Normal file
26
Gruntfile.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* eslint-env node, es6 */
|
||||
module.exports = function ( grunt ) {
|
||||
'use strict';
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-eslint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
banana: {
|
||||
all: 'i18n'
|
||||
},
|
||||
eslint: {
|
||||
options: {
|
||||
cache: true
|
||||
},
|
||||
all: [
|
||||
'**/*.{js,json}',
|
||||
'!node_modules/**',
|
||||
'!vendor/**'
|
||||
]
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'eslint', 'banana' ] );
|
||||
grunt.registerTask( 'default', 'test' );
|
||||
};
|
2
README
Normal file
2
README
Normal file
|
@ -0,0 +1,2 @@
|
|||
The Contribution Scores extension polls the wiki database to locate contributors with the highest contribution volume.
|
||||
The extension is intended to add a fun metric for contributors to see how much they are helping out.
|
25
composer.json
Normal file
25
composer.json
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"require-dev": {
|
||||
"mediawiki/mediawiki-codesniffer": "45.0.0",
|
||||
"mediawiki/minus-x": "1.1.3",
|
||||
"php-parallel-lint/php-console-highlighter": "1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "1.4.0"
|
||||
},
|
||||
"scripts": {
|
||||
"fix": [
|
||||
"minus-x fix .",
|
||||
"phpcbf"
|
||||
],
|
||||
"test": [
|
||||
"parallel-lint . --exclude vendor --exclude node_modules",
|
||||
"@phpcs",
|
||||
"minus-x check ."
|
||||
],
|
||||
"phpcs": "phpcs -sp --cache"
|
||||
},
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": true
|
||||
}
|
||||
}
|
||||
}
|
64
extension.json
Normal file
64
extension.json
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"name": "ContributionScores",
|
||||
"author": "Tim Laqua",
|
||||
"url": "https://www.mediawiki.org/wiki/Extension:Contribution_Scores",
|
||||
"descriptionmsg": "contributionscores-desc",
|
||||
"version": "1.26.1",
|
||||
"type": "specialpage",
|
||||
"requires": {
|
||||
"MediaWiki": ">= 1.34.0"
|
||||
},
|
||||
"SpecialPages": {
|
||||
"ContributionScores": "ContributionScores"
|
||||
},
|
||||
"AutoloadClasses": {
|
||||
"ContributionScores": "src/ContributionScores.php"
|
||||
},
|
||||
"Hooks": {
|
||||
"ParserFirstCallInit": "ContributionScores::onParserFirstCallInit"
|
||||
},
|
||||
"MessagesDirs": {
|
||||
"ContributionScores": [
|
||||
"i18n"
|
||||
]
|
||||
},
|
||||
"ExtensionMessagesFiles": {
|
||||
"ContribScoreAlias": "ContributionScores.alias.php",
|
||||
"ContribScoreMagic": "ContributionScores.i18n.magic.php"
|
||||
},
|
||||
"config": {
|
||||
"ContribScoreReports": {
|
||||
"value": null,
|
||||
"description": "Each array defines a report - 7,50 is \"past 7 days \" and \"LIMIT 50 \" - Can be omitted."
|
||||
},
|
||||
"ContribScoreIgnoreBlockedUsers": {
|
||||
"value": false,
|
||||
"description": "Set to true to exclude blocked users from the reporting."
|
||||
},
|
||||
"ContribScoreIgnoreBots": {
|
||||
"value": false,
|
||||
"description": "Set to true to exclude bots users from the reporting."
|
||||
},
|
||||
"ContribScoreIgnoreUsernames": {
|
||||
"value": [],
|
||||
"description": "Array of usernames to exclude from the reporting."
|
||||
},
|
||||
"ContribScoresUseRealName": {
|
||||
"value": false,
|
||||
"description": "Set to true to use real user names when available."
|
||||
},
|
||||
"ContribScoreDisableCache": {
|
||||
"value": false,
|
||||
"description": "Set to true to disable cache for parser function and inclusion of table."
|
||||
},
|
||||
"ContribScoreUseRoughEditCount": {
|
||||
"value": false,
|
||||
"description": "Set to true to use the rough number of edits in user table, for performance issue."
|
||||
},
|
||||
"ContribScoreCacheTTL": {
|
||||
"value": 30,
|
||||
"description": "Cache the contribution scores data, in minutes."
|
||||
}
|
||||
},
|
||||
"manifest_version": 2
|
||||
}
|
|
@ -4,7 +4,8 @@
|
|||
"Meno25",
|
||||
"Mido",
|
||||
"OsamaK",
|
||||
"ترجمان05"
|
||||
"ترجمان05",
|
||||
"ديفيد"
|
||||
]
|
||||
},
|
||||
"contributionscores": "نتائج المساهمات",
|
||||
|
@ -14,6 +15,7 @@
|
|||
"contributionscores-days": "{{PLURAL:$1||اليوم الماضي|اليومان الماضيان|ال$1 أيام الماضية|ال$1 يومًا الماضية|ال$1 يوم الماضية}}",
|
||||
"contributionscores-allrevisions": "كل الوقت",
|
||||
"contributionscores-score": "النتيجة",
|
||||
"contributionscores-rank": "الرتبة",
|
||||
"contributionscores-pages": "الصفحات",
|
||||
"contributionscores-changes": "تغييرات",
|
||||
"contributionscores-username": "اسم المستخدم",
|
||||
|
|
9
i18n/atj.json
Normal file
9
i18n/atj.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Benoit Rochon"
|
||||
]
|
||||
},
|
||||
"contributionscores-pages": "Masinahikana",
|
||||
"contributionscores-username": "Icinikasowin"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Alp Er Tunqa",
|
||||
"Mousa"
|
||||
]
|
||||
},
|
||||
|
@ -11,7 +12,7 @@
|
|||
"contributionscores-days": "سون {{PLURAL:$1|گون|$1 گون}}",
|
||||
"contributionscores-allrevisions": "بوتون زامانلار",
|
||||
"contributionscores-score": "امتیاز",
|
||||
"contributionscores-pages": "صحیفهلر",
|
||||
"contributionscores-pages": "صفحهلر",
|
||||
"contributionscores-changes": "دَییشمهلر",
|
||||
"contributionscores-username": "آد",
|
||||
"contributionscores-invalidusername": "گئچرسیز ایستیفادهچی آدی",
|
||||
|
|
|
@ -2,16 +2,18 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Assele",
|
||||
"Haqmar"
|
||||
"Haqmar",
|
||||
"Sagan"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Индергән өлөштәрҙе баһалау",
|
||||
"contributionscores-desc": "Мәғлүмәттәр базаһынан [[Special:ContributionScores|иң ҙур өлөш индергән ҡатнашыусыларҙы]] билдәләй",
|
||||
"contributionscores-info": "Баһа түбәндәге өлөштәрҙе ҡушыу аша иҫәпләнә:\n* 1 мәрәй — һәр айырым битте мөхәррирләү өсөн;\n* 2 * ( (дөйөм үҙгәртеүҙәр һаны) - (барыһы төрлө биттәр) ) айырмаһының тамыры.\nБаһаны иҫәпләгән ваҡытта, шулай итеп, дөйөм үҙгәртеүҙәр һанына ҡарағында үҙгәртеүҙәрҙең төрлөлөгө ҙурыраҡ йоғонто яһай.",
|
||||
"contributionscores-top": "(Тәүге $1)",
|
||||
"contributionscores-days": "Һуңғы {{PLURAL:$1|1=көн|$1 көн}}",
|
||||
"contributionscores-days": "{{PLURAL:$1|1=Һуңғы көн}}",
|
||||
"contributionscores-allrevisions": "Бөтәһе",
|
||||
"contributionscores-score": "Баһа",
|
||||
"contributionscores-rank": "Ранг",
|
||||
"contributionscores-pages": "Биттәр",
|
||||
"contributionscores-changes": "Үҙгәртеүҙәр",
|
||||
"contributionscores-username": "Ҡатнашыусы исеме",
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"DCLXVI"
|
||||
"DCLXVI",
|
||||
"StanProg"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Потребителска класация",
|
||||
"contributionscores-top": "(Най-добрите $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Последния ден|Последните $1 дни}}",
|
||||
"contributionscores-allrevisions": "Всички редакции",
|
||||
"contributionscores-allrevisions": "За всички времена",
|
||||
"contributionscores-score": "Точки",
|
||||
"contributionscores-pages": "Страници",
|
||||
"contributionscores-changes": "Редакции",
|
||||
|
|
8
i18n/bgn.json
Normal file
8
i18n/bgn.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ibrahim khashrowdi"
|
||||
]
|
||||
},
|
||||
"contributionscores-username": "کار زوروکین نام"
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Aftab1995",
|
||||
"Aftabuzzaman",
|
||||
"Bellayet",
|
||||
"Wikitanvir",
|
||||
"Aftab1995"
|
||||
"আফতাবুজ্জামান"
|
||||
]
|
||||
},
|
||||
"contributionscores": "অনুদানের স্কোর",
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
},
|
||||
"contributionscores": "Skor an degasadennoù",
|
||||
"contributionscores-desc": "Furchal a ra er bank roadennoù evit kavout [[Special:ContributionScores|kementadoù brasañ a zegasadennoù an implijerien]]",
|
||||
"contributionscores-info": "Setu penaos e vez jedet ar poenterezh :\n*Ur (1) poent evit pep pajenn kemmet\n*Gwrizienn garrez (an niver hollek a gemmoù graet) - (niver a bajennoù disheñvel) * 2\nLakaat a ra ar formulenn-se al liesseurted war wel kentoc'h eget ar c'hementad.\nE berr gomzoù e talvez da jediñ an niver a bajennoù disheñvel kemmet en ur sellet a-dostoc'h ouzh ar c'hementadoù bras a gemmoù a seller outo evel pajennoù zo gwelloc'h an danvez anezho.",
|
||||
"contributionscores-info": "Da gentañ-penn e vuzul ar poenterezh an unpajennoù bet kemmet, en ur gemer e kont ar c'hementadoù kemmoù brasañ.",
|
||||
"contributionscores-top": "(An $1 uhelañ)",
|
||||
"contributionscores-days": "E-kerzh an {{PLURAL:$1|devezh|$1 devezh}} diwezhañ",
|
||||
"contributionscores-allrevisions": "A-viskoazh",
|
||||
|
|
|
@ -2,16 +2,19 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"CERminator",
|
||||
"KWiki"
|
||||
"KWiki",
|
||||
"Srdjan m",
|
||||
"Srđan"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Rezultat doprinosa",
|
||||
"contributionscores-desc": "Upit u wiki bazu podataka za najveći [[Special:ContributionScores|količinski korisnički doprinos]]",
|
||||
"contributionscores-info": "Rezultati se računaju na slijedeći naćin:\n*Jedan (1) bod za svaku pojedinu stranicu koja se uredi\n*Drugi korijen od (ukupno načinjenih promjena) - (ukupno pojedinih stranica) * 2\nRezultati koji se dobiju na ovaj način naglašavaju raznolikost uređivanja više od količine uređivanja.\nU osnovi, ovaj rezultat mjeri naročito broj uređivanja pojedinačnih stranica, sa utjecajem velike količine uređivanja - smatra se da utječe na bolji kvalitet stranice.",
|
||||
"contributionscores-info": "Ovaj rezultat prvenstveno mjeri broj uređivanja pojedinačnih stranica, uzimajući u obzir velike količine uređivanja.",
|
||||
"contributionscores-top": "(Najboljih $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Posljednji $1 dan|Posljednja $1 dana|Posljednjih $1 dana}}",
|
||||
"contributionscores-allrevisions": "Svo vrijeme",
|
||||
"contributionscores-score": "Rezultat",
|
||||
"contributionscores-rank": "Rang",
|
||||
"contributionscores-pages": "Stranice",
|
||||
"contributionscores-changes": "Izmjene",
|
||||
"contributionscores-username": "Korisničko ime",
|
||||
|
|
|
@ -3,19 +3,21 @@
|
|||
"authors": [
|
||||
"Jordi Roqué",
|
||||
"SMP",
|
||||
"Solde"
|
||||
"Solde",
|
||||
"Toniher"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Punts de contribució",
|
||||
"contributionscores-desc": "Valora les edicions en cerca dels [[Special:ContributionScores|usuaris amb més volum de contribucions]]",
|
||||
"contributionscores-info": "La puntuació es calcula de la manera següent:\n* Un punt per cada pàgina diferent editada, més\n*El doble de l'arrel quadrada de: el total d'edicions fetes menys el total de pàgines diferents editades.\nAquesta fórmula premia la diversitat d'edicions més que no el seu volum.\nBàsicament, mesura el nombre de pàgines diferents editades, amb consideració per els alts volums d'edició considerats de pàgines de més qualitat.",
|
||||
"contributionscores-info": "La puntuació mesura el nombre de pàgines úniques editades, amb consideració de les edicions d'alt volum.",
|
||||
"contributionscores-top": "($1 millors)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Últim dia|Últims $1 dies}}",
|
||||
"contributionscores-allrevisions": "Des de sempre",
|
||||
"contributionscores-score": "Puntuació",
|
||||
"contributionscores-rank": "Classificació",
|
||||
"contributionscores-pages": "Pàgines",
|
||||
"contributionscores-changes": "Canvis",
|
||||
"contributionscores-username": "Nom d'usuari",
|
||||
"contributionscores-invalidusername": "Nom d'usuari no vàlid",
|
||||
"contributionscores-invalidmetric": "Mètrica invàlida"
|
||||
"contributionscores-invalidmetric": "Mètrica no vàlida"
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
},
|
||||
"contributionscores": "Къинхьегаман мах хадор",
|
||||
"contributionscores-top": "(диканаш $1)",
|
||||
"contributionscores-days": "ТӀаьхьарлерачу {{PLURAL:$1|дийнахь|$1 деношкахь}}",
|
||||
"contributionscores-days": "ТӀаьххьарлерачу {{PLURAL:$1|дийнахь}}",
|
||||
"contributionscores-allrevisions": "Массо нисдарш",
|
||||
"contributionscores-score": "Мах хадор",
|
||||
"contributionscores-pages": "АгӀонаш",
|
||||
|
|
8
i18n/csb.json
Normal file
8
i18n/csb.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Kirsan"
|
||||
]
|
||||
},
|
||||
"contributionscores-username": "Pòzwa brëkòwnika"
|
||||
}
|
9
i18n/cy.json
Normal file
9
i18n/cy.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Robin Owain"
|
||||
]
|
||||
},
|
||||
"contributionscores-score": "Sgor",
|
||||
"contributionscores-changes": "Newidiadau"
|
||||
}
|
|
@ -4,7 +4,8 @@
|
|||
"Byrial",
|
||||
"Christian List",
|
||||
"Kaare",
|
||||
"Peter Alberti"
|
||||
"Peter Alberti",
|
||||
"Saederup92"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Bidragspoint",
|
||||
|
@ -14,6 +15,7 @@
|
|||
"contributionscores-days": "Sidste {{PLURAL:$1|dag|$1 dage}}",
|
||||
"contributionscores-allrevisions": "Gennem tiden",
|
||||
"contributionscores-score": "Point",
|
||||
"contributionscores-rank": "Rang",
|
||||
"contributionscores-pages": "Sider",
|
||||
"contributionscores-changes": "Ændringer",
|
||||
"contributionscores-username": "Brugernavn",
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
]
|
||||
},
|
||||
"contributionscores": "Statistik zu Benutzern",
|
||||
"contributionscores-desc": "Ergänzt eine [[Special:ContributionScores|Spezialseite]] zum Abfragen der Datenbank des Wikis bezüglich der Benutzer mit den meisten Beiträgen",
|
||||
"contributionscores-desc": "Erweitert das Wiki um eine [[Special:ContributionScores|Spezialseite]] zum Ermitteln der Benutzer mit den meisten Beiträgen",
|
||||
"contributionscores-info": "In die Bewertung fließen hauptsächlich einmalig bearbeitete Seiten unter Berücksichtigung einer hohen Bearbeitungszahl ein.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Letzter Tag|Letzte $1 Tage}}",
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Erdemaslancan",
|
||||
"Mirzali",
|
||||
"Marmase"
|
||||
"Marmase",
|
||||
"Mirzali"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Skorê iştıraqan",
|
||||
|
@ -11,12 +11,12 @@
|
|||
"contributionscores-info": "Ebe pawıtışê hecmê tedqiqê berzi ra, puwan raveri pelanê bêemsalanê vurniyayeyan senceno.",
|
||||
"contributionscores-top": "(Tewr Gırde $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Roca peyêne|$1 Rocê peyêni}}",
|
||||
"contributionscores-allrevisions": "Çaxan de hemi",
|
||||
"contributionscores-score": "Skor",
|
||||
"contributionscores-rank": "Rate",
|
||||
"contributionscores-allrevisions": "Her dem",
|
||||
"contributionscores-score": "Puwan",
|
||||
"contributionscores-rank": "Rêze",
|
||||
"contributionscores-pages": "Peli",
|
||||
"contributionscores-changes": "Vurnayışi",
|
||||
"contributionscores-username": "Nameyê karberi",
|
||||
"contributionscores-invalidusername": "Şahtiyaye namey karberi",
|
||||
"contributionscores-invalidmetric": "Şahtiyaye metrik"
|
||||
"contributionscores-invalidusername": "Nameyê karberiyo nêvêrde",
|
||||
"contributionscores-invalidmetric": "Metriko nêvêrde"
|
||||
}
|
||||
|
|
12
i18n/el.json
12
i18n/el.json
|
@ -4,15 +4,15 @@
|
|||
"Consta",
|
||||
"Crazymadlover",
|
||||
"Omnipaedista",
|
||||
"ZaDiak",
|
||||
"Protnet"
|
||||
"Protnet",
|
||||
"ZaDiak"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Αποτελέσματα Συνεισφοράς",
|
||||
"contributionscores-desc": "Εξετάζει την βάση δεδομένων βίκι για τον σημαντικότερο [[Special:ContributionScores|όγκο συνεισφορών χρήστη]]",
|
||||
"contributionscores-info": "Το σκορ μετρά κυρίως επεξεργασίες μοναδικών σελίδων, λαμβάνοντας υπ' όψιν και τον υψηλό όγκο επεξεργασίας.",
|
||||
"contributionscores": "Βαθμολογίες συνεισφοράς",
|
||||
"contributionscores-desc": "Εξετάζει την βάση δεδομένων του wiki για τον υψηλότερο [[Special:ContributionScores|όγκο συνεισφορών χρήστη]]",
|
||||
"contributionscores-info": "Η βαθμολογία μετρά πρωτίστως μοναδικές σελίδες που έχουν τύχει επεξεργασίας, λαμβάνοντας υπ' όψιν και τον υψηλό όγκο επεξεργασίας.",
|
||||
"contributionscores-top": "(Πρώτοι $1)",
|
||||
"contributionscores-days": "Τελευταίες {{PLURAL:$1|ημέρα|$1 ημέρες}}",
|
||||
"contributionscores-days": "{{PLURAL:$1|Τελευταία ημέρα|Τελευταίες $1 ημέρες}}",
|
||||
"contributionscores-allrevisions": "Όλων των εποχών",
|
||||
"contributionscores-score": "Βαθμολογία",
|
||||
"contributionscores-rank": "Κατάταξη",
|
||||
|
|
34
i18n/en.json
34
i18n/en.json
|
@ -1,18 +1,18 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": []
|
||||
},
|
||||
"contributionscores": "Contribution scores",
|
||||
"contributionscores-desc": "Polls the wiki database for highest [[Special:ContributionScores|user contribution volume]]",
|
||||
"contributionscores-info": "The score primarily measures unique pages edited, with consideration for high edit volume.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "Last {{PLURAL:$1|day|$1 days}}",
|
||||
"contributionscores-allrevisions": "All time",
|
||||
"contributionscores-score": "Score",
|
||||
"contributionscores-rank": "Rank",
|
||||
"contributionscores-pages": "Pages",
|
||||
"contributionscores-changes": "Changes",
|
||||
"contributionscores-username": "Username",
|
||||
"contributionscores-invalidusername": "Invalid username",
|
||||
"contributionscores-invalidmetric": "Invalid metric"
|
||||
}
|
||||
"@metadata": {
|
||||
"authors": []
|
||||
},
|
||||
"contributionscores": "Contribution scores",
|
||||
"contributionscores-desc": "Polls the wiki database for highest [[Special:ContributionScores|user contribution volume]]",
|
||||
"contributionscores-info": "The score primarily measures unique pages edited, with consideration for high edit volume.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "Last {{PLURAL:$1|day|$1 days}}",
|
||||
"contributionscores-allrevisions": "All time",
|
||||
"contributionscores-score": "Score",
|
||||
"contributionscores-rank": "Rank",
|
||||
"contributionscores-pages": "Pages",
|
||||
"contributionscores-changes": "Changes",
|
||||
"contributionscores-username": "Username",
|
||||
"contributionscores-invalidusername": "Invalid username",
|
||||
"contributionscores-invalidmetric": "Invalid metric"
|
||||
}
|
||||
|
|
|
@ -2,19 +2,22 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Michawiki",
|
||||
"Mirin",
|
||||
"Robin van der Vliet",
|
||||
"Yekrats"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Poentaro de Kontribuoj",
|
||||
"contributionscores-desc": "Informmendas la vikian datumbazon por la plej [[Special:ContributionScores|oftaj kontribuantoj]]",
|
||||
"contributionscores-info": "Poentaroj estas donataj jene:\n*Unu (1) poento por ĉiu unika paĝo redaktata\n*Kvadrata Radiko de (Tutaj Faritaj Redaktoj) - (Tutaj Unikaj Paĝoj) * 2\nPoentaroj kalkulitaj laŭ ĉi tiu maniero pezos redaktan diversecon super redaktan volumon.\nBaze, ĉi tiu poentaro mezuras ĉefe unikajn paĝojn redaktitajn, kun konsidero por altaj redakto-volumon - supozita esti pli altkvalita paĝo.",
|
||||
"contributionscores-info": "La poentaroj precipe mezuras la nombrojn de unikaj redaktitaj paĝoj, kun konsiderado pri grandega kvanto de redaktoj.",
|
||||
"contributionscores-top": "(Plej alta $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Lasta tago|Lastaj $1 tagoj}}",
|
||||
"contributionscores-allrevisions": "Ĉiame",
|
||||
"contributionscores-score": "Poentaro",
|
||||
"contributionscores-rank": "Rango",
|
||||
"contributionscores-pages": "Paĝoj",
|
||||
"contributionscores-changes": "Ŝanĝoj",
|
||||
"contributionscores-username": "Salutnomo",
|
||||
"contributionscores-invalidusername": "Nevalida salutnomo",
|
||||
"contributionscores-username": "Uzantnomo",
|
||||
"contributionscores-invalidusername": "Nevalida uzantnomo",
|
||||
"contributionscores-invalidmetric": "Nevalida parametro"
|
||||
}
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
"Fitoschido",
|
||||
"Ihojose",
|
||||
"Imre",
|
||||
"Sanbec",
|
||||
"Macofe"
|
||||
"Macofe",
|
||||
"Sanbec"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Puntuaciones de contribuciones",
|
||||
"contributionscores-desc": "Encuesta la base de datos del wiki para el mas alto [[Special:ContributionScores|volumen de contribuciones del usuario]]",
|
||||
"contributionscores-desc": "Sondea la base de datos del wiki para el más alto [[Special:ContributionScores|volumen de contribuciones del usuario]]",
|
||||
"contributionscores-info": "Básicamente, la puntuación mide las páginas únicas editadas, teniendo en cuenta el alto volumen de ediciones.",
|
||||
"contributionscores-top": "($1 más activos)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Último día|Últimos $1 días}}",
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Better"
|
||||
]
|
||||
},
|
||||
"contributionscores-days": "Úrtimus $1 dias"
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Alirezaaa",
|
||||
"Ebraminio",
|
||||
"Huji",
|
||||
"Mjbmr",
|
||||
"Reza1615",
|
||||
"Tofighi",
|
||||
"ZxxZxxZ",
|
||||
"Alirezaaa"
|
||||
"ZxxZxxZ"
|
||||
]
|
||||
},
|
||||
"contributionscores": "امتیاز مشارکت",
|
||||
|
|
11
i18n/fi.json
11
i18n/fi.json
|
@ -1,20 +1,25 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"01miki10",
|
||||
"Crt",
|
||||
"Nike",
|
||||
"Pxos",
|
||||
"Pyscowicz",
|
||||
"Str4nd",
|
||||
"Stryn"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Muokkauspisteet",
|
||||
"contributionscores-info": "Pisteet lasketaan seuraavalla kaavalla:\n* Yksi piste jokaisesta muokatusta sivusta\n* Neliöjuuri (muokkausten määrä) - (muokatut sivut) * 2\n\nNäin laskettuna pisteet painottavat monipuolisuutta määrän sijaan. Käytännössä pisteet mittaavat muokattujen sivujen määrää, ottaen huomioon muutosten suuren määrän.",
|
||||
"contributionscores-info": "Pistemäärä kuvaa ensisijaisesti muokattujen sivujen lukumäärää, mutta ottaa huomioon myös suuren muokkausmäärän yleisesti.",
|
||||
"contributionscores-top": "(top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Viime päivä|Viimeiset $1 päivää}}",
|
||||
"contributionscores-allrevisions": "Koko ajalta",
|
||||
"contributionscores-score": "Pisteet",
|
||||
"contributionscores-rank": "Sija",
|
||||
"contributionscores-pages": "Sivuja",
|
||||
"contributionscores-changes": "Muutoksia",
|
||||
"contributionscores-username": "Käyttäjätunnus",
|
||||
"contributionscores-invalidusername": "Virheellinen käyttäjätunnus"
|
||||
"contributionscores-username": "Käyttäjänimi",
|
||||
"contributionscores-invalidusername": "Virheellinen käyttäjänimi",
|
||||
"contributionscores-invalidmetric": "Virheellinen muuttuja"
|
||||
}
|
||||
|
|
8
i18n/fit.json
Normal file
8
i18n/fit.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Pyscowicz"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Mookkauspisteet"
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
},
|
||||
"contributionscores": "Pointage des contributions",
|
||||
"contributionscores-desc": "Scrute la base de données wiki pour les plus importants [[Special:ContributionScores|volumes de contribution des utilisateurs]]",
|
||||
"contributionscores-info": "Le score mesure en priorité les pages uniques modifiées, en prenant en compte les gros volumes de modification.",
|
||||
"contributionscores-info": "Le pointage mesure en priorité les pages uniques modifiées, en prenant en compte les gros volumes de modification.",
|
||||
"contributionscores-top": "(Les $1 plus élevés)",
|
||||
"contributionscores-days": "Dans {{PLURAL:$1|le dernier jour|les derniers $1 jours}}",
|
||||
"contributionscores-allrevisions": "Tout le temps",
|
||||
|
@ -21,6 +21,6 @@
|
|||
"contributionscores-pages": "Pages",
|
||||
"contributionscores-changes": "Changements",
|
||||
"contributionscores-username": "Nom d’utilisateur",
|
||||
"contributionscores-invalidusername": "Nom d’utilisateur invalide",
|
||||
"contributionscores-invalidusername": "Nom d’utilisateur incorrect",
|
||||
"contributionscores-invalidmetric": "Métrique incorrecte"
|
||||
}
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"PiefPafPier",
|
||||
"Robin van der Vliet",
|
||||
"Robin0van0der0vliet",
|
||||
"Snakesteuben"
|
||||
]
|
||||
},
|
||||
"contributionscores-username": "Meidoggernamme"
|
||||
"contributionscores-username": "Meidochnamme"
|
||||
}
|
||||
|
|
|
@ -17,6 +17,6 @@
|
|||
"contributionscores-pages": "Páxinas",
|
||||
"contributionscores-changes": "Cambios",
|
||||
"contributionscores-username": "Nome de usuario",
|
||||
"contributionscores-invalidusername": "Nome de usuario inválido",
|
||||
"contributionscores-invalidusername": "Nome de usuario non válido",
|
||||
"contributionscores-invalidmetric": "Métrica inválida"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
"authors": [
|
||||
"Ansumang",
|
||||
"Kaustubh",
|
||||
"Sfic",
|
||||
"Siddhartha Ghai"
|
||||
]
|
||||
},
|
||||
|
@ -10,7 +11,7 @@
|
|||
"contributionscores-desc": "[[Special:ContributionScores|सदस्य योगदान संख्या]]के अनुसार विकि डाटाबेस दर्शाता हैं",
|
||||
"contributionscores-top": "(पहले $1)",
|
||||
"contributionscores-days": "आखिरी {{PLURAL:$1|$1 दिन}}",
|
||||
"contributionscores-allrevisions": "सभी अवतरण",
|
||||
"contributionscores-allrevisions": "हर समय",
|
||||
"contributionscores-score": "गुण",
|
||||
"contributionscores-pages": "पृष्ठ",
|
||||
"contributionscores-changes": "बदलाव",
|
||||
|
|
10
i18n/hr.json
10
i18n/hr.json
|
@ -3,19 +3,21 @@
|
|||
"authors": [
|
||||
"Dalibor Bosits",
|
||||
"Ex13",
|
||||
"MaGa",
|
||||
"SpeedyGonsales"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Najbolji suradnici",
|
||||
"contributionscores-desc": "Šalje upit bazi podataka za najveći [[Special:ContributionScores|broj suradničkih doprinosa]]",
|
||||
"contributionscores-info": "Rezultat se dobiva kao suma slijedećih stavki:\n*1 bod za svaku stranicu koju ste uređivali\n* (kvadratni) korijen iz (broja ukupnih uređivanja) - (broja stranica koje ste uređivali) * 2\n\nRezultat dobiven na ovaj način daje veću težinu broju uređivanja različitih stranica nego ukupnom broju uređivanja. U osnovi, ovakav rezultat mjeri prvenstveno broj različitih stranica koje ste uređivali, uzimajući u obzir broj uređivanja, jer veći broj uređivanja na nekom članku daje kvalitetniji članak.",
|
||||
"contributionscores-top": "(Najboljih $1)",
|
||||
"contributionscores-info": "U prvom planu rezultat mjeri jedinstvene izmijenjene stranice, uzimajući u obzir veliku količinu uređivanja.",
|
||||
"contributionscores-top": "(najboljih $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Zadnji dan|Zadnjih $1 dana}}",
|
||||
"contributionscores-allrevisions": "Sva uređivanja",
|
||||
"contributionscores-allrevisions": "Sve vrijeme",
|
||||
"contributionscores-score": "Rezultat",
|
||||
"contributionscores-rank": "Mjesto",
|
||||
"contributionscores-pages": "Stranica",
|
||||
"contributionscores-changes": "Uređivanja",
|
||||
"contributionscores-username": "Ime suradnika",
|
||||
"contributionscores-username": "Suradničko ime",
|
||||
"contributionscores-invalidusername": "Nevaljano suradničko ime",
|
||||
"contributionscores-invalidmetric": "Nevaljana metrika"
|
||||
}
|
||||
|
|
|
@ -4,16 +4,18 @@
|
|||
"Dani",
|
||||
"Dj",
|
||||
"Glanthor Reviol",
|
||||
"Shirayuki"
|
||||
"Shirayuki",
|
||||
"Tacsipacsi"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Szerkesztési pontszám",
|
||||
"contributionscores-desc": "Megjeleníti a [[Special:ContributionScores|szerkesztő közreműködéseinek súlyát]] a wiki adatbázisa alapján",
|
||||
"contributionscores-info": "A pontszámok az alábbi módon vannak kiszámolva:\n\n* 1 pont minden egyedi lap szerkesztése után\n* (az összes szerkesztés) – (az összes egyedi lap) négyzetgyöke × 2\n\nAz így számolt pontszámok a szerkesztés sokszínűségét mutatják a szerkesztés mennyisége helyett. Alapjában véve a pontszám az egyedi szerkesztett lapok számát mutatja, figyelembe véve a nagy szerkesztési számokat – feltételezve a jobb minőségű lapokat.",
|
||||
"contributionscores-info": "A pontszámok alapvetően az egyedi szerkesztett lapok számát mutatja, figyelembe véve a nagy szerkesztési számokat.",
|
||||
"contributionscores-top": "(legjobb $1)",
|
||||
"contributionscores-days": "Utolsó {{PLURAL:$1|nap|$1 nap}}",
|
||||
"contributionscores-allrevisions": "Összes szerkesztés",
|
||||
"contributionscores-score": "Pontszám",
|
||||
"contributionscores-rank": "Helyezés",
|
||||
"contributionscores-pages": "Oldalak",
|
||||
"contributionscores-changes": "Változtatások",
|
||||
"contributionscores-username": "Felhasználónév",
|
||||
|
|
14
i18n/id.json
14
i18n/id.json
|
@ -2,16 +2,18 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"IvanLanin",
|
||||
"Rex"
|
||||
"Rex",
|
||||
"William Surya Permana"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Skor kontribusi",
|
||||
"contributionscores-desc": "Menghitung [[Special:ContributionScores|jumlah kontribusi pengguna]] terbanyak di basis data wiki",
|
||||
"contributionscores-info": "Skor dihitung dengan cara berikut:\n* Satu (1) poin untuk setiap halaman tunggal yang disunting\n* Akar kuadrat dari (total suntingan) - (total halaman tunggal) * 2\nSkor dihitung dengan cara ini untuk menghasilkan jumlah tertimbang penyuntingan berbanding volume suntingan.\nPada dasarnya, skor ini menghitung jumlah halaman tunggal yang disunting, dengan pertimbangan di mana volume suntingan yang tinggi - diasumsikan sebagai halaman dengan kualitas lebih tinggi.",
|
||||
"contributionscores-top": "($1 tertinggi)",
|
||||
"contributionscores": "Nilai kontribusi",
|
||||
"contributionscores-desc": "Menghitung [[Special:ContributionScores|volume kontribusi pengguna]] terbanyak di basis data wiki",
|
||||
"contributionscores-info": "Nilai ini secara garis besar mengukur halaman unik yang disunting, dengan pertimbangan volume suntingan yang tinggi.",
|
||||
"contributionscores-top": "($1 teratas)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Hari|$1 hari}} terakhir",
|
||||
"contributionscores-allrevisions": "Sepanjang masa",
|
||||
"contributionscores-score": "Skor",
|
||||
"contributionscores-score": "Nilai",
|
||||
"contributionscores-rank": "Peringkat",
|
||||
"contributionscores-pages": "Halaman",
|
||||
"contributionscores-changes": "Perubahan",
|
||||
"contributionscores-username": "Nama pengguna",
|
||||
|
|
|
@ -6,11 +6,12 @@
|
|||
},
|
||||
"contributionscores": "Contes de contribution",
|
||||
"contributionscores-desc": "Calcula li funde de data del wiki por max alt [[Special:ContributionScores|volúmine de contribution de usator]]",
|
||||
"contributionscores-info": "Contes es calculat quam seque:\n*Un (1) punctu por chascun págine unic redactet\n*Fonte de quadrat de (total de redactiones fat) - (total unique pages) * 2\nContes calculat in ti diversitá de redaction in pesa maniere súper de volúmine de redaction.\nBasicmen, ti conte mesura primarimen págines unic redactet, che consideration por alt volúmine de redaction - suposit esser un págine de alt qualitá.",
|
||||
"contributionscores-info": "Li calcul primarimen mesura págines unic redactet, considerant li alt volume de redactiones.",
|
||||
"contributionscores-top": "(Prim $1)",
|
||||
"contributionscores-days": "Ultim {{PLURAL:$1|die|$1 dies}}",
|
||||
"contributionscores-allrevisions": "Omni témpor",
|
||||
"contributionscores-score": "Conte",
|
||||
"contributionscores-rank": "Classification",
|
||||
"contributionscores-pages": "Págines",
|
||||
"contributionscores-changes": "Changes",
|
||||
"contributionscores-username": "Nómine de usator",
|
||||
|
|
8
i18n/ig.json
Normal file
8
i18n/ig.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ukabia"
|
||||
]
|
||||
},
|
||||
"contributionscores-username": "Ahàǹjìème"
|
||||
}
|
12
i18n/io.json
Normal file
12
i18n/io.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Joao Xavier"
|
||||
]
|
||||
},
|
||||
"contributionscores-days": "Lasta {{PLURAL:$1|dio|$1 dii}}",
|
||||
"contributionscores-score": "Nombro di punti",
|
||||
"contributionscores-pages": "Pagini",
|
||||
"contributionscores-changes": "Modifikuri",
|
||||
"contributionscores-username": "Uzeronomo"
|
||||
}
|
|
@ -2,7 +2,8 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"S.Örvarr.S",
|
||||
"Snævar"
|
||||
"Snævar",
|
||||
"Sveinn í Felli"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Framleggjandastig",
|
||||
|
@ -12,7 +13,10 @@
|
|||
"contributionscores-days": "{{PLURAL:$1|Síðasta $1 daginn|Síðustu $1 dagana}}",
|
||||
"contributionscores-allrevisions": "Allan tímann",
|
||||
"contributionscores-score": "Stigafjöldi",
|
||||
"contributionscores-rank": "Sæti",
|
||||
"contributionscores-pages": "Síður",
|
||||
"contributionscores-changes": "Breytingar",
|
||||
"contributionscores-username": "Notandanafn"
|
||||
"contributionscores-username": "Notandanafn",
|
||||
"contributionscores-invalidusername": "Ógilt notandanafn",
|
||||
"contributionscores-invalidmetric": "Ógild mæling"
|
||||
}
|
||||
|
|
18
i18n/jv.json
18
i18n/jv.json
|
@ -1,20 +1,24 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Diki Ananta",
|
||||
"Meursault2004",
|
||||
"Pras"
|
||||
"NoiX180",
|
||||
"Pras",
|
||||
"Sumbukompor"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Skor Kontribusi",
|
||||
"contributionscores-desc": "Nglakokaké polling (angkèt) ing basis data kanggo [[Special:ContributionScores|volume kontribusi panganggo]]",
|
||||
"contributionscores": "Bijining pasumbang",
|
||||
"contributionscores-desc": "Nglakokaké polling (angkèt) ing basis data kanggo [[Special:ContributionScores|volume kontribusi naraguna]]",
|
||||
"contributionscores-info": "Skoré diétung kaya mangkéné:\n* Biji siji (1) per kaca unik sing disunting\n* Oyot (bs. Indonesia ''akar'') saka (Gunggungé Suntingan) - (Gunggungé Kaca-KAca Unik) * 2\nSkor sing diétung miturut cara iki bisa nyerminaké divèrsitas suntingan sadhuwuring volume suntingan.\nSacara dhasar, skor iki utamané ngétung kaca-kaca unik sing disunting, karo mélu nimbangaké volume suntingan dhuwur - diasumsèkaké kwalitas kacané luwih dhuwur.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|dina|$1 dina}} pungkasan",
|
||||
"contributionscores-allrevisions": "Kabèh Révisi",
|
||||
"contributionscores-allrevisions": "Sasuwéné wektu",
|
||||
"contributionscores-score": "Skor",
|
||||
"contributionscores-pages": "Kaca-kaca",
|
||||
"contributionscores-rank": "Rangking",
|
||||
"contributionscores-pages": "Kaca",
|
||||
"contributionscores-changes": "Owah-owahan",
|
||||
"contributionscores-username": "Jeneng panganggo",
|
||||
"contributionscores-invalidusername": "Jeneng panganggo ora sah",
|
||||
"contributionscores-username": "Jeneng naraguna",
|
||||
"contributionscores-invalidusername": "Jeneng naraguna ora sah",
|
||||
"contributionscores-invalidmetric": "Metrik ora sah"
|
||||
}
|
||||
|
|
20
i18n/kab.json
Normal file
20
i18n/kab.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Belkacem77"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Agmuḍ n uttekki",
|
||||
"contributionscores-desc": "Ad yesleḍ taffa n isefka n iwikiyen ɣef [[Special:ContributionScores|tesmekta n ittekkiyen n iseqdacen]]",
|
||||
"contributionscores-info": "Agmuḍ ad yektil di tazwara isebtar isufen yettwasnifel, ɣas ulama ddeqs n tesmekta n usinifel i yellan.",
|
||||
"contributionscores-top": "($1 imezwura)",
|
||||
"contributionscores-days": "Deg {{PLURAL:$1|wass aneggaru|$1 n wussan ineggura}}",
|
||||
"contributionscores-allrevisions": "Si tazwara",
|
||||
"contributionscores-score": "Agmuḍ",
|
||||
"contributionscores-rank": "Amḍiq",
|
||||
"contributionscores-pages": "Isebtar",
|
||||
"contributionscores-changes": "Asnifel",
|
||||
"contributionscores-username": "Isem n useqdac",
|
||||
"contributionscores-invalidusername": "Yir isem n useqdac",
|
||||
"contributionscores-invalidmetric": "Yir asekkat"
|
||||
}
|
12
i18n/kiu.json
Normal file
12
i18n/kiu.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Mirzali"
|
||||
]
|
||||
},
|
||||
"contributionscores-score": "Puwan",
|
||||
"contributionscores-rank": "Rêze",
|
||||
"contributionscores-pages": "Peli",
|
||||
"contributionscores-changes": "Vurnayışi",
|
||||
"contributionscores-username": "Namê karberi"
|
||||
}
|
12
i18n/kjp.json
Normal file
12
i18n/kjp.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Rul1902"
|
||||
]
|
||||
},
|
||||
"contributionscores-score": "အ်ုဏါင်းဏေဝ်ႋ",
|
||||
"contributionscores-rank": "အ်ုထေါဟ်",
|
||||
"contributionscores-pages": "လိက်မေံၜၠါ်လ်ုဖး",
|
||||
"contributionscores-changes": "မ်ုအင်းလယ်လ်ုဖး",
|
||||
"contributionscores-username": "ဆ်ုသုံႋဆာႋမိင်"
|
||||
}
|
|
@ -1,12 +1,19 @@
|
|||
{
|
||||
"@metadata": [],
|
||||
"contributionscores": "Үлес беру есептері",
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Arystanbek"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Үлес қосу санағы",
|
||||
"contributionscores-info": "Есептер келесі дей саналады:\n*1 ұпай әрбір түзетілген бірегей бет үшін\n*Мынаның шаршы түбірі (Барлық Істелінген Түзетулер) ‒ (Барлық Бірегей Беттер) * 2\nОсы тәсілмен саналған есептер түзету ауқымындағы өңдеу әркелкілігінің салмағын өлшейді. Негізінде, бұл есеп алдымен түзетілген біркелкі беттерді өлшейді, жоғарғы өңдеу ауқымымен бірге — жоғары сапалы бет жағдайымен есептеп.",
|
||||
"contributionscores-top": "(Жоғарғы $1)",
|
||||
"contributionscores-days": "Соңғы $1 күнде",
|
||||
"contributionscores-allrevisions": "Барлық нұсқалар",
|
||||
"contributionscores-score": "Есеп",
|
||||
"contributionscores-days": "Соңғы {{PLURAL:$1|күнде|$1 күнде}}",
|
||||
"contributionscores-allrevisions": "Барлық уақытта",
|
||||
"contributionscores-score": "Ұпай",
|
||||
"contributionscores-rank": "Орны",
|
||||
"contributionscores-pages": "Беттер",
|
||||
"contributionscores-changes": "Өзгерістер",
|
||||
"contributionscores-username": "Қатысушы аты"
|
||||
"contributionscores-username": "Қатысушы есімі",
|
||||
"contributionscores-invalidusername": "Жарамсыз қатысушы есімі",
|
||||
"contributionscores-invalidmetric": "Дұрыс емес метрик"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"@metadata": [],
|
||||
"@metadata": {
|
||||
"authors": []
|
||||
},
|
||||
"contributionscores": "Üles berw esepteri",
|
||||
"contributionscores-info": "Esepter kelesi deý sanaladı:\n*1 upaý ärbir tüzetilgen biregeý bet üşin\n*Mınanıñ şarşı tübiri (Barlıq İstelingen Tüzetwler) ‒ (Barlıq Biregeý Better) * 2\nOsı täsilmen sanalğan esepter tüzetw awqımındağı öñdew ärkelkiliginiñ salmağın ölşeýdi. Negizinde, bul esep aldımen tüzetilgen birkelki betterdi ölşeýdi, joğarğı öñdew awqımımen birge — joğarı sapalı bet jağdaýımen eseptep.",
|
||||
"contributionscores-top": "(Joğarğı $1)",
|
||||
|
|
|
@ -12,8 +12,9 @@
|
|||
"contributionscores-days": "{{PLURAL:$1|ថ្ងៃ|$1 ថ្ងៃ}}ចុងក្រោយ",
|
||||
"contributionscores-allrevisions": "គ្រប់ពេល",
|
||||
"contributionscores-score": "ពិន្ទុ",
|
||||
"contributionscores-pages": "ទំព័រនានា",
|
||||
"contributionscores-changes": "បំលាស់ប្តូរនានា",
|
||||
"contributionscores-rank": "ចំណាត់ថ្នាក់",
|
||||
"contributionscores-pages": "ទំព័រ",
|
||||
"contributionscores-changes": "បន្លាស់ប្ដូរ",
|
||||
"contributionscores-username": "អត្តនាម",
|
||||
"contributionscores-invalidusername": "អត្តនាមមិនត្រឹមត្រូវ"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
"authors": [
|
||||
"Hym411",
|
||||
"Priviet",
|
||||
"Revi",
|
||||
"Shirayuki",
|
||||
"아라"
|
||||
]
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Purodha"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Metmaacher ier Beidräsch verjlesche",
|
||||
"contributionscores": "Metmaacher ier Beijdrähsch verjlesche",
|
||||
"contributionscores-desc": "Fingk de Metmaacher met de [[Special:ContributionScores|miihßte Beidrääsch]].",
|
||||
"contributionscores-info": "En de Houpsaach zälle de einzel ongerscheidlijje veränderte Sigge med enem Zohschlaach för wann vill Änderonge jemaat woodte.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
|
@ -14,7 +14,7 @@
|
|||
"contributionscores-rank": "Rang",
|
||||
"contributionscores-pages": "Sigge",
|
||||
"contributionscores-changes": "Änderonge",
|
||||
"contributionscores-username": "Metmaacher Name",
|
||||
"contributionscores-invalidusername": "Verkeehte Metmaacher-Name",
|
||||
"contributionscores-username": "Metmaacher_Nahme",
|
||||
"contributionscores-invalidusername": "Verkeehte Metmaacher_Nahme",
|
||||
"contributionscores-invalidmetric": "Onjöltesch Mohß"
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Balyozxane",
|
||||
"George Animal"
|
||||
]
|
||||
},
|
||||
"contributionscores-allrevisions": "Hemû dem",
|
||||
"contributionscores-pages": "Rûpel",
|
||||
"contributionscores-changes": "Guhartin",
|
||||
"contributionscores-username": "Navê bikarhêner"
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
]
|
||||
},
|
||||
"contributionscores": "Bewäertung vun den Ännerungen",
|
||||
"contributionscores-desc": "Ufro un d'Wiki-Datebank no den héichste [[Special:ContributionScores|Benotzerscoren]]",
|
||||
"contributionscores-desc": "Ufro un d'Wiki-Datebank no den héchste [[Special:ContributionScores|Benotzerscoren]]",
|
||||
"contributionscores-info": "D'Bewäertung moosst Zuel vu geännerte Säite a consideréiert d'Zuel vun den Ännerungen.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Leschten Dag|Lescht $1 Deeg}}",
|
||||
|
|
|
@ -8,11 +8,12 @@
|
|||
},
|
||||
"contributionscores": "Biedraaghuuegdjes",
|
||||
"contributionscores-desc": "Guuef 'n euverzich van [[Special:ContributionScores|gebroekers mit de meiste biedraag]] inne wiki.",
|
||||
"contributionscores-info": "Huuegdjes waere es vólg beraekendj:\n* Ein (1) pöntj veur edere apaart bewèrkdje pazjena\n* Wórtel van (totaal aantal gemaakdje bewèrkinger) - (totaal aantal apaarte pazjena's) × 2\nI huuegdjes die op dees wies beraekendj waere wäög divers bewèrkingsgedraag zwaorder es bewèrkingsvolume. In feite mèt dees huuegdje veurnamelik 't aantal apaarte pazjena's die zeen bewèrk, wiele 'n grót aantal bewèrkinger waal in ach wuuertj genaome, mit de aannaam det 't 'ne pazjena van 'n huuegere kwaliteit is.",
|
||||
"contributionscores-info": "Dees score mètj veurnamelik 't aantaal unieke pagina's det is bewirk, dewiel e groeat aantaal bewirkinge waal in ach weurt genómme.",
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Lesten daag|Leste $1 daag}}",
|
||||
"contributionscores-allrevisions": "Alle verzies",
|
||||
"contributionscores-score": "Puntje",
|
||||
"contributionscores-rank": "Rang",
|
||||
"contributionscores-pages": "Pagina's",
|
||||
"contributionscores-changes": "Bewèrkinger",
|
||||
"contributionscores-username": "Gebroeker",
|
||||
|
|
8
i18n/lij.json
Normal file
8
i18n/lij.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Giromin Cangiaxo"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Pontezzi contributi"
|
||||
}
|
8
i18n/lki.json
Normal file
8
i18n/lki.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Lakzon"
|
||||
]
|
||||
},
|
||||
"contributionscores-pages": "وةڵگةل"
|
||||
}
|
|
@ -5,8 +5,11 @@
|
|||
"Hugo.arg"
|
||||
]
|
||||
},
|
||||
"contributionscores-top": "(Top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Paskutinė diena|Paskutinės $1 dienos}}",
|
||||
"contributionscores-allrevisions": "Viso laiko",
|
||||
"contributionscores-score": "Rezultatas",
|
||||
"contributionscores-rank": "Rangas",
|
||||
"contributionscores-pages": "Puslapiai",
|
||||
"contributionscores-changes": "Pakeitimai",
|
||||
"contributionscores-username": "Naudotojo vardas",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
},
|
||||
"contributionscores": "Оцени за придонеси",
|
||||
"contributionscores-desc": "Презема податоци од викибазата за [[Special:ContributionScores|корисници со највеќе придонеси]]",
|
||||
"contributionscores-info": "Салдото е мерка што изразува уредувања на засебни страници, со оглед на големиот број на уредувања.",
|
||||
"contributionscores-info": "Салдото е мерка што изразува уредувања на одделни страници, со оглед на големиот број на уредувања.",
|
||||
"contributionscores-top": "(Најдобри $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Последниот ден|Последните $1 дена}}",
|
||||
"contributionscores-allrevisions": "На сите времиња",
|
||||
|
@ -16,5 +16,5 @@
|
|||
"contributionscores-changes": "Измени",
|
||||
"contributionscores-username": "Корисничко име",
|
||||
"contributionscores-invalidusername": "Неправилно корисничко име",
|
||||
"contributionscores-invalidmetric": "Грешна метрика"
|
||||
"contributionscores-invalidmetric": "Грешно мерило"
|
||||
}
|
||||
|
|
13
i18n/mni.json
Normal file
13
i18n/mni.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Awangba Mangang"
|
||||
]
|
||||
},
|
||||
"contributionscores-allrevisions": "ꯃꯇꯝ ꯄꯨꯂꯞ",
|
||||
"contributionscores-rank": "ꯊꯥꯛ",
|
||||
"contributionscores-pages": "ꯂꯃꯥꯏꯁꯤꯡ",
|
||||
"contributionscores-changes": "ꯑꯍꯣꯡꯕꯁꯤꯡ",
|
||||
"contributionscores-username": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯃꯃꯤꯡ",
|
||||
"contributionscores-invalidusername": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯃꯃꯤꯡ ꯌꯥꯎꯗꯦ"
|
||||
}
|
|
@ -9,11 +9,12 @@
|
|||
},
|
||||
"contributionscores": "योगदान संख्या",
|
||||
"contributionscores-desc": "[[Special:ContributionScores|सदस्य योगदान संख्येनुसार]] विकि डाटाबेस दर्शवितो",
|
||||
"contributionscores-info": "गुण खालीलप्रमाणे मोजले जातील:\n*प्रत्येक स्वतंत्र पानासाठी १ गुण\n*(एकूण संपादने) - (एकूण स्वतंत्र पाने) * 2 चे वर्गमूळ\nअशा प्रकारे मोजलेले गुण हे संपादन विविधतेला संपादन संख्येपेक्षा जास्त महत्व देतात. मुख्यत्वे, हे गुण जास्त संपादन संख्या मोजून स्वतंत्र पानांची संपादने काढतात.",
|
||||
"contributionscores-info": "गुण देतांना, प्राथमिकरित्या, अनन्य पानांचे संपादनासह,उच्च संपादन-आवाका लक्षात घेतल्या जातो.",
|
||||
"contributionscores-top": "(गुणानुक्रमे पहिले $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|शेवटचा दिवस|शेवटचे $1 दिवस}}",
|
||||
"contributionscores-allrevisions": "सर्व आवर्तने",
|
||||
"contributionscores-allrevisions": "सर्ववेळची",
|
||||
"contributionscores-score": "गुण",
|
||||
"contributionscores-rank": "गुणानुक्रम",
|
||||
"contributionscores-pages": "पाने",
|
||||
"contributionscores-changes": "बदल",
|
||||
"contributionscores-username": "सदस्यनाव",
|
||||
|
|
18
i18n/my.json
Normal file
18
i18n/my.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Dr Lotus Black",
|
||||
"Ninjastrikers"
|
||||
]
|
||||
},
|
||||
"contributionscores": "ပံ့ပို့မှု ရမှတ်များ",
|
||||
"contributionscores-top": "(ထိပ်ဆုံး $1)",
|
||||
"contributionscores-days": "နောက်ဆုံး {{PLURAL:$1|ရက်|$1 ရက်}}",
|
||||
"contributionscores-allrevisions": "တချိန်လုံး",
|
||||
"contributionscores-score": "ရမှတ်",
|
||||
"contributionscores-rank": "အဆင့်",
|
||||
"contributionscores-pages": "စာမျက်နှာများ",
|
||||
"contributionscores-changes": "အပြောင်းအလဲများ",
|
||||
"contributionscores-username": "အသုံးပြုသူအမည်",
|
||||
"contributionscores-invalidusername": "အသုံးပြုသူအမည် မမှန်ကန်ပါ"
|
||||
}
|
|
@ -1,9 +1,10 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Akapochtli",
|
||||
"Fluence"
|
||||
]
|
||||
},
|
||||
"contributionscores-changes": "Tlapatlaliztli",
|
||||
"contributionscores-username": "Tlatequitiltilīltōcāitl"
|
||||
"contributionscores-username": "Tequitiuhcatocaitll"
|
||||
}
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Danmichaelo",
|
||||
"Helland",
|
||||
"Jon Harald Søby",
|
||||
"Nghtwlkr"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Bidragspoeng",
|
||||
"contributionscores-desc": "Spør wikidatabasen etter det høyeste [[Special:ContributionScores|bidragsvolumet]]",
|
||||
"contributionscores-info": "Bidragspoeng regnes ut på følgende måte:\n* 1 poeng for hver unike side som er redigert\n* Kvadratrota av (totalt antall redigeringer) − (unike sider redigert) × 2\nPoeng som regnes ut på denne måte vekter redigeringsmangfold høyere enn redigeringsvolum.\nDette betyr i bunn og grunn at dette primært måler hvor mange unike sider som er redigert, med hensyn til høyt redigeringsvolum – antatt å føre til sider av høyere kvalitet.",
|
||||
"contributionscores-info": "Bidragspoeng måler primært hvor mange unike sider som er redigert, og tar høyt redigeringsvolum i betraktning.",
|
||||
"contributionscores-top": "(Topp $1)",
|
||||
"contributionscores-days": "Siste {{PLURAL:$1|dagen|$1 dager}}",
|
||||
"contributionscores-allrevisions": "Gjennom tidene",
|
||||
"contributionscores-score": "Poeng",
|
||||
"contributionscores-rank": "Rangering",
|
||||
"contributionscores-pages": "Sider",
|
||||
"contributionscores-changes": "Endringer",
|
||||
"contributionscores-username": "Brukernavn",
|
||||
|
|
13
i18n/ne.json
13
i18n/ne.json
|
@ -1,8 +1,17 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"RajeshPandey"
|
||||
"RajeshPandey",
|
||||
"पर्वत सुबेदी"
|
||||
]
|
||||
},
|
||||
"contributionscores-username": "प्रयोगकर्ता नाम"
|
||||
"contributionscores": "योगदान प्राप्ताङ्कहरू",
|
||||
"contributionscores-days": "अन्तिम {{PLURAL:$1|दिन|$1 दिनहरू}}",
|
||||
"contributionscores-allrevisions": "सबै समय",
|
||||
"contributionscores-score": "प्राप्ताङ्क",
|
||||
"contributionscores-rank": "क्रम",
|
||||
"contributionscores-pages": "पृष्ठहरू",
|
||||
"contributionscores-changes": "परिवर्तनहरू",
|
||||
"contributionscores-username": "प्रयोगकर्ता नाम",
|
||||
"contributionscores-invalidusername": "अबैध प्रयोगकर्ता नाम"
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
]
|
||||
},
|
||||
"contributionscores": "Puntatge de las contribucions",
|
||||
"contributionscores-desc": "Espia la banca de donadas wiki pels [[Special:ContributionScores|utilizaires contribuissent mai]]",
|
||||
"contributionscores-desc": "Espia la basa de donadas wiki pels [[Special:ContributionScores|utilizaires que contribuisson mai]]",
|
||||
"contributionscores-info": "La marca mesura en prioritat las paginas unicas modificadas, en prenent en compte los gròsses volums de modificacion.",
|
||||
"contributionscores-top": "(Melhor $1)",
|
||||
"contributionscores-days": "Dins {{PLURAL:$1|lo darrièr jorn|los darrièrs $1 jorns}}",
|
||||
|
|
8
i18n/pa.json
Normal file
8
i18n/pa.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"BukhariSaeed"
|
||||
]
|
||||
},
|
||||
"contributionscores-changes": "ਤਬਦੀਲੀਆਂ"
|
||||
}
|
|
@ -5,13 +5,15 @@
|
|||
"Derbeth",
|
||||
"Equadus",
|
||||
"McMonster",
|
||||
"Rail",
|
||||
"Railfail536",
|
||||
"Sp5uhe",
|
||||
"Wpedzich"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Punkty za edycje",
|
||||
"contributionscores-desc": "Wylicza [[Special:ContributionScores|punkty za edycje]] dla użytkowników",
|
||||
"contributionscores-info": "Punkty za edycje naliczane są następującą metodą:\n*1 punkt za każdą edytowaną unikalną stronę\n*pierwiastek kwadratowy z (ogólna liczba edycji) - (wszystkich unikalnych stron) * 2\nTaki sposób naliczania pozwala wyważyć różnorodność edycji względem liczby edycji. Zasadniczo wynik uzależniony jest od liczby edytowanych unikalnych stron z uwzględnieniem dużej liczby edycji – zakładając wyższą wartość tworzenia nowych artykułów.",
|
||||
"contributionscores-info": "Wynik jest uzależniony przede wszystkim od liczby edytowanych unikalnych stron z uwzględnieniem dużej liczby edycji – zakładając wyższą wartość tworzenia nowych artykułów.",
|
||||
"contributionscores-top": "($1 najlepszych)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Ostatni 1 dzień|Ostatnie $1 dni|Ostatnich $1 dni}}",
|
||||
"contributionscores-allrevisions": "Cała aktywność",
|
||||
|
|
11
i18n/pnb.json
Normal file
11
i18n/pnb.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Abbas dhothar",
|
||||
"BukhariSaeed"
|
||||
]
|
||||
},
|
||||
"contributionscores-days": "پچھلے{{PLURAL:$1|دن|$1 دناں}}",
|
||||
"contributionscores-changes": "تبدیلیاں",
|
||||
"contributionscores-username": "ورتن آلے دا ناں"
|
||||
}
|
|
@ -1,11 +1,15 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ahmed-Najib-Biabani-Ibrahimkhel"
|
||||
"Ahmed-Najib-Biabani-Ibrahimkhel",
|
||||
"Amjad Khan",
|
||||
"Baloch Khan"
|
||||
]
|
||||
},
|
||||
"contributionscores-days": "وروستۍ {{PLURAL:$1|ورځ|$1 ورځې}}",
|
||||
"contributionscores-allrevisions": "هر وخت",
|
||||
"contributionscores-score": "سکور (ګولونه)",
|
||||
"contributionscores-rank": "رتبه",
|
||||
"contributionscores-pages": "مخونه",
|
||||
"contributionscores-changes": "بدلونونه",
|
||||
"contributionscores-username": "کارن-نوم",
|
||||
|
|
|
@ -1,20 +1,24 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"!Silent",
|
||||
"Brunoy Anastasiya Seryozhenko",
|
||||
"Crazymadlover",
|
||||
"Eduardo.mps",
|
||||
"Giro720",
|
||||
"Luckas"
|
||||
"HenriqueCrang",
|
||||
"Luckas",
|
||||
"Opraco"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Pontuação de contribuições",
|
||||
"contributionscores-desc": "Inquire a base de dados wiki sobre os mais altos [[Special:ContributionScores|volumes de contribuição dos utilizadores]]",
|
||||
"contributionscores-info": "As pontuações são calculadas da seguinte forma:\n*1 ponto por cada página única editada\n*Raiz quadrada de (Total de Edições Feitas) - (Total de Páginas Únicas) * 2\nPontuações calculadas desta forma pesam a diversidade de edições relativamente ao volume de edições. Basicamente, esta pontuação mede primariamente páginas únicas editadas, com consideração pelo alto volume de edições - assumindo serem páginas de qualidade mais alta.",
|
||||
"contributionscores-top": "(Iniciais $1)",
|
||||
"contributionscores-days": "Últimos {{PLURAL:$1|día|$1 días}}",
|
||||
"contributionscores-info": "A pontuação mede, principalmente, as páginas únicas editadas, tendo em consideração o alto volume de edições.",
|
||||
"contributionscores-top": "(top $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Último dia|Últimos $1 dias}}",
|
||||
"contributionscores-allrevisions": "Desde sempre",
|
||||
"contributionscores-score": "Pontuação",
|
||||
"contributionscores-rank": "Classificação",
|
||||
"contributionscores-pages": "Páginas",
|
||||
"contributionscores-changes": "Mudanças",
|
||||
"contributionscores-username": "Nome de usuário",
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Fúlvio",
|
||||
"Hamilton Abreu",
|
||||
"Malafaya",
|
||||
"Waldir",
|
||||
"Vitorvicentevalente",
|
||||
"Fúlvio"
|
||||
"Waldir",
|
||||
"Waldyrious"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Pontuação de contribuições",
|
||||
|
|
|
@ -4,15 +4,16 @@
|
|||
"Jon Harald Søby",
|
||||
"JtFuruhata",
|
||||
"Kalan",
|
||||
"Liuxinyu970226",
|
||||
"Mormegil",
|
||||
"Purodha",
|
||||
"Raymond",
|
||||
"Shirayuki",
|
||||
"Liuxinyu970226"
|
||||
"Tacsipacsi"
|
||||
]
|
||||
},
|
||||
"contributionscores": "{{doc-special|ContributionScores}}",
|
||||
"contributionscores-desc": "Extension description displayed on [[Special:Version]].",
|
||||
"contributionscores-desc": "{{desc|url=//www.mediawiki.org/wiki/Extension:Contribution_Scores|name=Contribution Scores}}",
|
||||
"contributionscores-info": "see https://github.com/wikimedia/mediawiki-extensions-ContributionScores/blob/master/ContributionScores_body.php\n\n:COUNT(DISTINCT rev_page) AS page_count\n:COUNT(rev_id) AS rev_count\n:page_count+SQRT(rev_count-page_count)*2 AS wiki_rank",
|
||||
"contributionscores-top": "Second part of the headings of [[Special:ContributionScores]].\n\nPLURAL is supported, but not used by the English original message.\n\nParameters:\n* $1 - limit value. Default value: 50 or 10\n{{Identical|Top}}",
|
||||
"contributionscores-days": "Heading of [[Special:ContributionScores]].\n\nIf the number of days is not defined, {{msg-mw|Contributionscores-allrevisions}} is used.\n\nParameters:\n* $1 - number of days",
|
||||
|
|
8
i18n/qu.json
Normal file
8
i18n/qu.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"AlimanRuna"
|
||||
]
|
||||
},
|
||||
"contributionscores-days": "Qayna {{PLURAL:$1|p'unchaw|$1 p'unchawkuna}}"
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Ahonc",
|
||||
"Kaganer",
|
||||
"Kalan",
|
||||
"Lockal",
|
||||
"Okras",
|
||||
|
@ -11,9 +12,9 @@
|
|||
},
|
||||
"contributionscores": "Оценка вклада",
|
||||
"contributionscores-desc": "Определяет из базы данных [[Special:ContributionScores|участников с наибольшим числом правок]]",
|
||||
"contributionscores-info": "Оценка рассчитывается в первую очередь по количеству отредактированных уникальных страниц, с учётом большего объёма редактирования.",
|
||||
"contributionscores-info": "Оценка рассчитывается в первую очередь по количеству отредактированных уникальных страниц, с учётом величины сделанных изменений.",
|
||||
"contributionscores-top": "(лучшие $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|1=Последний день|Последний $1 день|Последние $1 дней|Последние $1 дня}}",
|
||||
"contributionscores-days": "{{PLURAL:$1|1=Последний день|Последний $1 день|Последние $1 дня|Последние $1 дней}}",
|
||||
"contributionscores-allrevisions": "За всё время",
|
||||
"contributionscores-score": "Оценка",
|
||||
"contributionscores-rank": "Ранг",
|
||||
|
|
|
@ -1,9 +1,22 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Aushulz"
|
||||
"Aushulz",
|
||||
"Pippinu",
|
||||
"Sarvaturi"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Punteggiu pî cuntribbuti",
|
||||
"contributionscores-desc": "Addumanna â basi di dati dâ wiki circannu l’utenti cu [[Special:ContributionScores|vulumi di cuntribbutu]] cchiù granni",
|
||||
"contributionscores-info": "Stu punteggiu misura principalmenti la quantità di pàggini canciati, tinennu macari cuntu dî vulumi dî canciamenti granni.",
|
||||
"contributionscores-top": "({{PLURAL:$1|Lu megghiu|Li $1 megghiu}})",
|
||||
"contributionscores-days": "Di {{PLURAL:$1|l’ùrtimu jornu|l’ùrtimi $1 jorna}}",
|
||||
"contributionscores-allrevisions": "Di sempri",
|
||||
"contributionscores-score": "Punteggiu",
|
||||
"contributionscores-rank": "Pusizzioni",
|
||||
"contributionscores-pages": "Pàggini",
|
||||
"contributionscores-changes": "Canciamenti"
|
||||
"contributionscores-changes": "Canciamenti",
|
||||
"contributionscores-username": "Nomu utenti",
|
||||
"contributionscores-invalidusername": "Nomu utenti nun vàlidu",
|
||||
"contributionscores-invalidmetric": "Mètrica nun vàlida"
|
||||
}
|
||||
|
|
12
i18n/sd.json
Normal file
12
i18n/sd.json
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Mehtab ahmed",
|
||||
"Tweety"
|
||||
]
|
||||
},
|
||||
"contributionscores-days": "گذريل {{PLURAL:$1|ڏينھن|$1 ڏينھن}}",
|
||||
"contributionscores-pages": "صفحا",
|
||||
"contributionscores-changes": "بدلاءَ",
|
||||
"contributionscores-username": "واپرائيندڙ-نانءُ"
|
||||
}
|
20
i18n/sh.json
Normal file
20
i18n/sh.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Vlad5250"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Ocjene za doprinose",
|
||||
"contributionscores-desc": "Preuzima podatke s wikibaze podataka za [[Special:ContributionScores|korisnike s najviše doprinosa]]",
|
||||
"contributionscores-info": "Saldo je mjera koja izražava uređivanja pojedinačnih stranica, uzimajući u obzir velike količine uređivanja.",
|
||||
"contributionscores-top": "(Najboljih $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Posljednji $1 dan|Posljednja $1 dana|Posljednjih $1 dana}}",
|
||||
"contributionscores-allrevisions": "Svih vremena",
|
||||
"contributionscores-score": "Ocjena",
|
||||
"contributionscores-rank": "Rang",
|
||||
"contributionscores-pages": "Stranice",
|
||||
"contributionscores-changes": "Izmjene",
|
||||
"contributionscores-username": "Korisničko ime",
|
||||
"contributionscores-invalidusername": "Nevaljano korisničko ime",
|
||||
"contributionscores-invalidmetric": "Nevaljana metrika"
|
||||
}
|
11
i18n/sk.json
11
i18n/sk.json
|
@ -2,16 +2,19 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Helix84",
|
||||
"Teslaton"
|
||||
"Luky001",
|
||||
"Teslaton",
|
||||
"Yardom78"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Skóre príspevkov",
|
||||
"contributionscores-desc": "Zisťuje naväčší [[Special:ContributionScores|objem používateľských príspevkov]] z databázy wiki",
|
||||
"contributionscores-info": "Skóre sa počíta nasledovne:\n*1 bod za každú jedinečnú stránku, ktorú používateľ upravoval\n*Odmocnina z (celkom úprav) - (celkom jedinečných stránok) * 2\nSkóre vypočítané týmto spôsobom vážia diverzitu úprav viac ako objem úprav. V podstate toto skóre meria najmä počet upravovaných jedinečných stránok s prihliadnutím na vysoký objem úprav; čo sa pokladá za stránku vyššej kvality.",
|
||||
"contributionscores-desc": "Získava údaje z databázy wiki o [[Special:ContributionScores|množstve používateľských príspevkov]]",
|
||||
"contributionscores-info": "Skóre primárne meria jedinečné editované stránky s ohľadom na veľké množstvo úprav.",
|
||||
"contributionscores-top": "(Najlepších $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Posledný $1 deň|Posledné $1 dni|Posledných $1 dní}}",
|
||||
"contributionscores-allrevisions": "Celá história",
|
||||
"contributionscores-allrevisions": "Celkom",
|
||||
"contributionscores-score": "Skóre",
|
||||
"contributionscores-rank": "Poradie",
|
||||
"contributionscores-pages": "Stránky",
|
||||
"contributionscores-changes": "Zmeny",
|
||||
"contributionscores-username": "Používateľské meno",
|
||||
|
|
|
@ -1,16 +1,23 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Acamicamacaraca",
|
||||
"Kizule",
|
||||
"Milicevic01",
|
||||
"Rancher",
|
||||
"Sasa Stefanovic",
|
||||
"Zoranzoki21",
|
||||
"Михајло Анђелковић"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Оцене доприноса",
|
||||
"contributionscores-desc": "Анкетира вики базу података за највиши [[Special:ContributionScores|волумен доприноса корисника]]",
|
||||
"contributionscores-info": "Резултат првенствено мери јединствене измењене странице, узимајући у обзир велику количину уређивања.",
|
||||
"contributionscores-top": "(првих $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Последњег дана|Последњих $1 дана}}",
|
||||
"contributionscores-days": "{{PLURAL:$1|1=Последњег дана|Последњих $1 дана}}",
|
||||
"contributionscores-allrevisions": "Свих времена",
|
||||
"contributionscores-score": "Оцена",
|
||||
"contributionscores-score": "Резултат",
|
||||
"contributionscores-rank": "Ранг",
|
||||
"contributionscores-pages": "Странице",
|
||||
"contributionscores-changes": "Измене",
|
||||
"contributionscores-username": "Корисничко име",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
]
|
||||
},
|
||||
"contributionscores-top": "(prvih $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Poslednjeg dana|Poslednjih $1 dana}}",
|
||||
"contributionscores-days": "{{PLURAL:$1|1=Poslednjeg dana|Poslednjih $1 dana}}",
|
||||
"contributionscores-allrevisions": "Svih vremena",
|
||||
"contributionscores-pages": "Stranice",
|
||||
"contributionscores-changes": "Izmene",
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"contributionscores-score": "Peunteun",
|
||||
"contributionscores-pages": "Kaca",
|
||||
"contributionscores-changes": "Parobahan",
|
||||
"contributionscores-username": "Landihan",
|
||||
"contributionscores-username": "Sandiasma",
|
||||
"contributionscores-invalidusername": "Pamaké teu cocog",
|
||||
"contributionscores-invalidmetric": "matrik teu cocog"
|
||||
}
|
||||
|
|
12
i18n/th.json
12
i18n/th.json
|
@ -1,16 +1,22 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Aefgh39622",
|
||||
"Ans",
|
||||
"Woraponboonkerd"
|
||||
]
|
||||
},
|
||||
"contributionscores": "คะแนนการแก้ไข",
|
||||
"contributionscores-desc": "จัดอันดับฐานข้อมูลของวิกิสำหรับ[[Special:ContributionScores|ผู้ใ้ช้ที่มีจำนวนการแก้ไขสูงสุด]]",
|
||||
"contributionscores-info": "วิธีการคิดคะแนนเป็นดังต่อไปนี้:\n* หนึ่ง (1) คะแนนต่อจำนวนหน้าที่เข้าร่วมแก้ไข (ชื่อของหน้าไม่ซ้ำกัน)\n* รากที่สองของจำนวนการแก้ไขทั้งหมด - จำนวนหน้าทั้งหมดที่ร่วมแก้ไข * 2\nคะแนนจะถูกคิดโดยให้น้ำหนักของการแก้ไขที่หลากหลายมากกว่าจำนวนการแก้ไข\nโดยทั่วไป คะแนนนี้ชี้วัดถึงจำนวนหน้าต่างๆ ที่เข้าร่วมแก้ไข โดยคำนึงถึงจำนวนการแก้ไขทั้งหมดด้วย จึงคาดการณ์ได้ว่าจะทำให้มีหน้าที่มีคุณภาพสูงขึ้น",
|
||||
"contributionscores-info": "คะแนนคิดจากจำนวนหน้าที่เข้าร่วมแก้ไข พร้อมพิจารณาปริมาณการแก้ไขเป็นหลัก",
|
||||
"contributionscores-top": "($1 อันดับแรก)",
|
||||
"contributionscores-days": "$1 {{PLURAL:$1|วัน|วัน}} ที่แล้ว",
|
||||
"contributionscores-allrevisions": "ตลอดเวลา",
|
||||
"contributionscores-score": "คะแนน",
|
||||
"contributionscores-rank": "การจัดอันดับ",
|
||||
"contributionscores-pages": "จำนวนหน้า",
|
||||
"contributionscores-changes": "จำนวนการเปลี่ยนแปลง",
|
||||
"contributionscores-changes": "การเปลี่ยนแปลง",
|
||||
"contributionscores-username": "ชื่อผู้ใช้",
|
||||
"contributionscores-invalidusername": "ชื่อผู้ใช้ไม่ถูกต้อง"
|
||||
"contributionscores-invalidusername": "ชื่อผู้ใช้ไม่ถูกต้อง",
|
||||
"contributionscores-invalidmetric": "เกณฑ์ชี้วัดไม่ถูกต้อง"
|
||||
}
|
||||
|
|
10
i18n/ti.json
Normal file
10
i18n/ti.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Joanmp17"
|
||||
]
|
||||
},
|
||||
"contributionscores-pages": "ገጻት",
|
||||
"contributionscores-changes": "ለውጥታት",
|
||||
"contributionscores-username": "ስም ተጠቃሚ"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Hedda",
|
||||
"Joseph",
|
||||
"Karduelis",
|
||||
"Mach",
|
||||
|
@ -8,13 +9,14 @@
|
|||
"Vito Genovese"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Katkı skorları",
|
||||
"contributionscores": "Katkı puanları",
|
||||
"contributionscores-desc": "En yüksek [[Special:ContributionScores|kullanıcı katkı hacmi]] için viki veritabanını sorgular",
|
||||
"contributionscores-info": "Skorlar aşağıdaki şekilde hesaplanmaktadır:\n*Değişiklik yapılan her farklı sayfa için bir (1) puan\n*(Yapılan toplam değişiklik) - (toplam farklı sayfa) * 2 işleminin karekökü\nBu şekilde hesaplanan skorlar, değişiklik sayısı ile değişiklik çeşitliliği arasında ağırlık kurmaktadır.\nTemel olarak bu skor, yüksek değişiklik sayısının yüksek kaliteli bir sayfa olduğu varsayımıyla değişiklik yapılan farklı sayfa sayısını ölçmektedir.",
|
||||
"contributionscores-top": "(En yüksek $1)",
|
||||
"contributionscores-info": "Puanlama, öncelikle yüksek düzenleme hacmi dikkate alınarak düzenlenmiş benzersiz sayfaları ölçer.",
|
||||
"contributionscores-top": "(Zirvedeki $1 kişi)",
|
||||
"contributionscores-days": "Son $1 {{PLURAL:$1|gün|gün}}",
|
||||
"contributionscores-allrevisions": "Tüm zamanlar",
|
||||
"contributionscores-score": "Puan",
|
||||
"contributionscores-rank": "Sıralama",
|
||||
"contributionscores-pages": "Sayfalar",
|
||||
"contributionscores-changes": "Değişiklikler",
|
||||
"contributionscores-username": "Kullanıcı adı",
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Ерней",
|
||||
"Ильнар"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Кертем билгеләү",
|
||||
"contributionscores-desc": "Хәтердән [[Special:ContributionScores|иң зур тәрҗемә ясаучы кулланучыларны]] билгели.",
|
||||
"contributionscores-info": "Билгеләр кую астагы критерийларга туры килү нәтиҗәсендә билгеләнә:\n* 1 Һәрбер аерым бер тәрҗемә өчен билге\n* 2 Гомуми тәрҗемәләр һәм һәрбер аерым бит аермасының тамыр асты\nШуның нәтиҗәсендә сезнең тәрҗемәләрегезгә тагын да зуррак билге куела.",
|
||||
"contributionscores-info": "Билгеләр кую, беренче чиратта, үзгәртелгән мәкаләләр санына һәм аларның күләменә карап бирелә.",
|
||||
"contributionscores-top": "(Иң әйбәт $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Соңгы $1 көн өчен}}",
|
||||
"contributionscores-allrevisions": "Барлык үзгәртүләр",
|
||||
"contributionscores-score": "Билге",
|
||||
"contributionscores-pages": "Битләр саны",
|
||||
"contributionscores-changes": "Үзгәртүләр",
|
||||
"contributionscores-days": "Соңгы {{PLURAL:$1|$1 көн өчен}}",
|
||||
"contributionscores-allrevisions": "Бөтен вакыт өчен",
|
||||
"contributionscores-score": "Бәя",
|
||||
"contributionscores-rank": "Ранг",
|
||||
"contributionscores-pages": "Битләр",
|
||||
"contributionscores-changes": "Төзәтмәләр",
|
||||
"contributionscores-username": "Кулланучы исеме",
|
||||
"contributionscores-invalidusername": "Кулланучының исеме дөрес түгел",
|
||||
"contributionscores-invalidmetric": "Ялгыш билгеләү"
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Candalua"
|
||||
"Candalua",
|
||||
"Fierodelveneto"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Puntegi contributi",
|
||||
"contributionscores": "Ponteji contribusion",
|
||||
"contributionscores-desc": "Intèroga el database de la wiki par el pi grando [[Special:ContributionScores|volume de contributi utente]]",
|
||||
"contributionscores-info": "I punti i vien calcolà come segue:\n*Un (1) punto par ogni diversa pagina modificà\n*Raìsa quadrata de (Tute le modifiche fate) - (Total de le pagine modificà) * 2\nFasendo i conti in sta maniera pesa piassè la diversità de le modifiche rispeto al nùmaro dei contributi.\nIn sostansa, sto puntegio el tien conto sopratuto de le diverse pagine modificà, tegnendo in considerazion anca un alto volume de modifiche - che fa pensar a na pi alta qualità de la pagina modificà.",
|
||||
"contributionscores-top": "(Ultimi $1)",
|
||||
"contributionscores-days": "{{PLURAL:$1|Ultimo zòrno|Ultimi $1 zòrni}}",
|
||||
"contributionscores-allrevisions": "Tute le revision",
|
||||
"contributionscores-score": "Puntegio",
|
||||
"contributionscores-pages": "Pagine",
|
||||
"contributionscores-pages": "Pàjine",
|
||||
"contributionscores-changes": "Canbiamenti",
|
||||
"contributionscores-username": "Nome utente",
|
||||
"contributionscores-invalidusername": "Nome utente mia valido",
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Minh Nguyen",
|
||||
"Phjtieudoc",
|
||||
"Vinhtantran"
|
||||
]
|
||||
},
|
||||
|
@ -13,7 +14,7 @@
|
|||
"contributionscores-allrevisions": "Từ trước đến nay",
|
||||
"contributionscores-score": "Điểm số",
|
||||
"contributionscores-pages": "Trang",
|
||||
"contributionscores-changes": "Các thay đổi",
|
||||
"contributionscores-changes": "Thay đổi",
|
||||
"contributionscores-username": "Tên người dùng",
|
||||
"contributionscores-invalidusername": "Tên người dùng không hợp lệ",
|
||||
"contributionscores-invalidmetric": "Chuẩn đo không hợp lệ"
|
||||
|
|
|
@ -1,18 +1,22 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Moon0319",
|
||||
"PhiLiP",
|
||||
"Roy17",
|
||||
"Shinjiman",
|
||||
"Shirayuki"
|
||||
"Shirayuki",
|
||||
"Yueman"
|
||||
]
|
||||
},
|
||||
"contributionscores": "貢獻分數",
|
||||
"contributionscores-desc": "根據響wiki數據庫畀出最高嘅[[Special:ContributionScores|用戶貢獻容量]]",
|
||||
"contributionscores-info": "分數會用下面嘅計法去計:\n*每一個唯一一版編輯過嘅有1分\n*(總編輯數)-(總唯一頁數)嘅平方根 * 2\n響呢方面計嘅分數會睇編輯多樣性同編輯量相比。 基本噉講,呢個分數係會依主要嘅唯一編輯過嘅頁,同埋考慮高編輯量 - 假設係一篇高質量嘅文章。",
|
||||
"contributionscores-info": "呢個分數係會依主要嘅唯一編輯過嘅頁,同埋考慮高編輯量。",
|
||||
"contributionscores-top": "(最高$1名)",
|
||||
"contributionscores-days": "最近$1日",
|
||||
"contributionscores-allrevisions": "全部修訂",
|
||||
"contributionscores-allrevisions": "有史以來",
|
||||
"contributionscores-score": "分數",
|
||||
"contributionscores-rank": "等級",
|
||||
"contributionscores-pages": "版",
|
||||
"contributionscores-changes": "更改",
|
||||
"contributionscores-username": "用戶名",
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Cwlin0416",
|
||||
"Kly",
|
||||
"LNDDYL",
|
||||
"Liuxinyu970226",
|
||||
"Mark85296341",
|
||||
"PhiLiP",
|
||||
"Shinjiman",
|
||||
"Shirayuki",
|
||||
"Simon Shek",
|
||||
"Cwlin0416",
|
||||
"Liuxinyu970226",
|
||||
"LNDDYL"
|
||||
"Simon Shek"
|
||||
]
|
||||
},
|
||||
"contributionscores": "貢獻分數",
|
||||
"contributionscores-desc": "調查 Wiki 資料庫中 [[Special:ContributionScores|貢獻最多的使用者]]",
|
||||
"contributionscores-desc": "調查 Wiki 資料庫中[[Special:ContributionScores|貢獻最多的使用者]]",
|
||||
"contributionscores-info": "此分數主要以編輯個別頁面數量計算並考慮編輯次數。",
|
||||
"contributionscores-top": "(前 $1 名)",
|
||||
"contributionscores-days": "最近 {{PLURAL:$1|天|$1 天}}",
|
||||
|
|
8
i18n/zh-hk.json
Normal file
8
i18n/zh-hk.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Liuxinyu970226"
|
||||
]
|
||||
},
|
||||
"contributionscores-username": "用戶名稱"
|
||||
}
|
6332
package-lock.json
generated
Normal file
6332
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
13
package.json
Normal file
13
package.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "ContributionScores",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-config-wikimedia": "0.28.2",
|
||||
"grunt": "1.6.1",
|
||||
"grunt-banana-checker": "0.13.0",
|
||||
"grunt-eslint": "24.3.0"
|
||||
}
|
||||
}
|
436
src/ContributionScores.php
Normal file
436
src/ContributionScores.php
Normal file
|
@ -0,0 +1,436 @@
|
|||
<?php
|
||||
/** \file
|
||||
* \brief Contains code for the ContributionScores Class (extends SpecialPage).
|
||||
*/
|
||||
|
||||
use MediaWiki\MediaWikiServices;
|
||||
|
||||
/// Special page class for the Contribution Scores extension
|
||||
/**
|
||||
* Special page that generates a list of wiki contributors based
|
||||
* on edit diversity (unique pages edited) and edit volume (total
|
||||
* number of edits.
|
||||
*
|
||||
* @ingroup Extensions
|
||||
* @author Tim Laqua <t.laqua@gmail.com>
|
||||
*/
|
||||
class ContributionScores extends IncludableSpecialPage {
|
||||
const CONTRIBUTIONSCORES_MAXINCLUDELIMIT = 50;
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct( 'ContributionScores' );
|
||||
}
|
||||
|
||||
public static function onParserFirstCallInit( Parser $parser ) {
|
||||
$parser->setFunctionHook( 'cscore', [ self::class, 'efContributionScoresRender' ] );
|
||||
}
|
||||
|
||||
public static function efContributionScoresRender( $parser, $usertext, $metric = 'score' ) {
|
||||
global $wgContribScoreDisableCache, $wgContribScoreUseRoughEditCount;
|
||||
|
||||
if ( $wgContribScoreDisableCache ) {
|
||||
$parser->getOutput()->updateCacheExpiry( 0 );
|
||||
}
|
||||
|
||||
$user = User::newFromName( $usertext );
|
||||
$loadBalancer = MediaWikiServices::getInstance()->getDBLoadBalancer();
|
||||
$dbr = $loadBalancer->getConnection( DB_REPLICA );
|
||||
|
||||
if ( $user instanceof User && $user->isRegistered() ) {
|
||||
global $wgLang;
|
||||
$revVar = $wgContribScoreUseRoughEditCount ? 'user_editcount' : 'COUNT(rev_id)';
|
||||
|
||||
$revWhere = ActorMigration::newMigration()->getWhere( $dbr, 'rev_user', $user );
|
||||
if ( $metric == 'score' ) {
|
||||
$row = $dbr->selectRow(
|
||||
[ 'revision' ] + $revWhere['tables'],
|
||||
[ 'wiki_rank' => "COUNT(DISTINCT rev_page)+SQRT($revVar-COUNT(DISTINCT rev_page))*2" ],
|
||||
$revWhere['conds'],
|
||||
__METHOD__,
|
||||
[],
|
||||
$revWhere['joins']
|
||||
);
|
||||
$output = $wgLang->formatNum( round( $row->wiki_rank, 0 ) );
|
||||
} elseif ( $metric == 'changes' ) {
|
||||
$row = $dbr->selectRow(
|
||||
[ 'revision' ] + $revWhere['tables'],
|
||||
[ 'rev_count' => $revVar ],
|
||||
$revWhere['conds'],
|
||||
__METHOD__,
|
||||
[],
|
||||
$revWhere['joins']
|
||||
);
|
||||
$output = $wgLang->formatNum( $row->rev_count );
|
||||
} elseif ( $metric == 'pages' ) {
|
||||
$row = $dbr->selectRow(
|
||||
[ 'revision' ] + $revWhere['tables'],
|
||||
[ 'page_count' => 'COUNT(DISTINCT rev_page)' ],
|
||||
$revWhere['conds'],
|
||||
__METHOD__,
|
||||
[],
|
||||
$revWhere['joins']
|
||||
);
|
||||
$output = $wgLang->formatNum( $row->page_count );
|
||||
} else {
|
||||
$output = wfMessage( 'contributionscores-invalidmetric' )->text();
|
||||
}
|
||||
} else {
|
||||
$output = wfMessage( 'contributionscores-invalidusername' )->text();
|
||||
}
|
||||
return $parser->insertStripItem( $output, $parser->getStripState() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Function fetch Contribution Scores data from database
|
||||
*
|
||||
* @param int $days Days in the past to run report for
|
||||
* @param int $limit Maximum number of users to return (default 50)
|
||||
* @return array Data including the requested Contribution Scores.
|
||||
*/
|
||||
public static function getContributionScoreData( $days, $limit ) {
|
||||
global $wgContribScoreIgnoreBots, $wgContribScoreIgnoreBlockedUsers, $wgContribScoreIgnoreUsernames,
|
||||
$wgContribScoreUseRoughEditCount;
|
||||
|
||||
$loadBalancer = MediaWikiServices::getInstance()->getDBLoadBalancer();
|
||||
$dbr = $loadBalancer->getConnection( DB_REPLICA );
|
||||
|
||||
$revQuery = ActorMigration::newMigration()->getJoin( 'rev_user' );
|
||||
$revQuery['tables'] = array_merge( [ 'revision' ], $revQuery['tables'] );
|
||||
|
||||
$revUser = $revQuery['fields']['rev_user'];
|
||||
$revUsername = $revQuery['fields']['rev_user_text'];
|
||||
|
||||
$sqlWhere = [];
|
||||
|
||||
if ( $days > 0 ) {
|
||||
$date = time() - ( 60 * 60 * 24 * $days );
|
||||
$sqlWhere[] = 'rev_timestamp > ' . $dbr->addQuotes( $dbr->timestamp( $date ) );
|
||||
}
|
||||
|
||||
$sqlVars = [
|
||||
'rev_user' => $revUser,
|
||||
'page_count' => 'COUNT(DISTINCT rev_page)'
|
||||
];
|
||||
if ( $wgContribScoreUseRoughEditCount ) {
|
||||
$revQuery['tables'][] = 'user';
|
||||
$revQuery['joins']['user'] = [ 'LEFT JOIN', [ "$revUser != 0", "user_id = $revUser" ] ];
|
||||
$sqlVars['rev_count'] = 'user_editcount';
|
||||
} else {
|
||||
$sqlVars['rev_count'] = 'COUNT(rev_id)';
|
||||
}
|
||||
|
||||
if ( $wgContribScoreIgnoreBlockedUsers ) {
|
||||
$sqlWhere[] = "{$revUser} NOT IN " .
|
||||
$dbr->buildSelectSubquery( [
|
||||
'block',
|
||||
'block_target'
|
||||
],
|
||||
'bt_user',
|
||||
'bt_user <> 0',
|
||||
__METHOD__,
|
||||
[],
|
||||
[
|
||||
'block_target' => [ 'JOIN', [
|
||||
'bl_target=bt_id'
|
||||
] ]
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
if ( $wgContribScoreIgnoreBots ) {
|
||||
$sqlWhere[] = "{$revUser} NOT IN " .
|
||||
$dbr->buildSelectSubquery( 'user_groups', 'ug_user', [
|
||||
'ug_group' => 'bot',
|
||||
'ug_expiry IS NULL OR ug_expiry >= ' . $dbr->addQuotes( $dbr->timestamp() )
|
||||
], __METHOD__ );
|
||||
}
|
||||
|
||||
if ( count( $wgContribScoreIgnoreUsernames ) ) {
|
||||
$listIgnoredUsernames = $dbr->makeList( $wgContribScoreIgnoreUsernames );
|
||||
$sqlWhere[] = "{$revUsername} NOT IN ($listIgnoredUsernames)";
|
||||
}
|
||||
|
||||
if ( $dbr->unionSupportsOrderAndLimit() ) {
|
||||
$order = [
|
||||
'GROUP BY' => 'rev_user',
|
||||
'ORDER BY' => 'page_count DESC',
|
||||
'LIMIT' => $limit
|
||||
];
|
||||
} else {
|
||||
$order = [ 'GROUP BY' => 'rev_user' ];
|
||||
}
|
||||
|
||||
$sqlMostPages = $dbr->selectSQLText(
|
||||
$revQuery['tables'],
|
||||
$sqlVars,
|
||||
$sqlWhere,
|
||||
__METHOD__,
|
||||
$order,
|
||||
$revQuery['joins']
|
||||
);
|
||||
|
||||
if ( $dbr->unionSupportsOrderAndLimit() ) {
|
||||
$order['ORDER BY'] = 'rev_count DESC';
|
||||
}
|
||||
|
||||
$sqlMostRevs = $dbr->selectSQLText(
|
||||
$revQuery['tables'],
|
||||
$sqlVars,
|
||||
$sqlWhere,
|
||||
__METHOD__,
|
||||
$order,
|
||||
$revQuery['joins']
|
||||
);
|
||||
|
||||
$sqlMostPagesOrRevs = $dbr->unionQueries( [ $sqlMostPages, $sqlMostRevs ], false );
|
||||
$res = $dbr->select(
|
||||
[
|
||||
'u' => 'user',
|
||||
's' => new Wikimedia\Rdbms\Subquery( $sqlMostPagesOrRevs ),
|
||||
],
|
||||
[
|
||||
'user_id',
|
||||
'user_name',
|
||||
'user_real_name',
|
||||
'page_count',
|
||||
'rev_count',
|
||||
'wiki_rank' => 'page_count+SQRT(rev_count-page_count)*2',
|
||||
],
|
||||
[],
|
||||
__METHOD__,
|
||||
[
|
||||
'ORDER BY' => 'wiki_rank DESC',
|
||||
'LIMIT' => $limit,
|
||||
],
|
||||
[
|
||||
's' => [
|
||||
'JOIN',
|
||||
'user_id=rev_user'
|
||||
]
|
||||
]
|
||||
);
|
||||
$ret = iterator_to_array( $res );
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/// Generates a "Contribution Scores" table for a given LIMIT and date range
|
||||
|
||||
/**
|
||||
* Function generates Contribution Scores tables in HTML format (not wikiText)
|
||||
*
|
||||
* @param int $days Days in the past to run report for
|
||||
* @param int $limit Maximum number of users to return (default 50)
|
||||
* @param string|null $title The title of the table
|
||||
* @param array $options array of options (default none; nosort/notools)
|
||||
* @return string Html Table representing the requested Contribution Scores.
|
||||
*/
|
||||
function genContributionScoreTable( $days, $limit, $title = null, $options = 'none' ) {
|
||||
global $wgContribScoresUseRealName, $wgContribScoreCacheTTL;
|
||||
|
||||
$opts = explode( ',', strtolower( $options ) );
|
||||
|
||||
$sortable = in_array( 'nosort', $opts ) ? '' : ' sortable';
|
||||
|
||||
$output = "<table class=\"wikitable contributionscores plainlinks{$sortable}\" >\n" .
|
||||
"<tr class='header'>\n" .
|
||||
Html::element( 'th', [], $this->msg( 'contributionscores-rank' )->text() ) .
|
||||
Html::element( 'th', [], $this->msg( 'contributionscores-score' )->text() ) .
|
||||
Html::element( 'th', [], $this->msg( 'contributionscores-pages' )->text() ) .
|
||||
Html::element( 'th', [], $this->msg( 'contributionscores-changes' )->text() ) .
|
||||
Html::element( 'th', [], $this->msg( 'contributionscores-username' )->text() );
|
||||
|
||||
$cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
|
||||
$data = $cache->getWithSetCallback(
|
||||
$cache->makeKey( 'contributionscores', 'data-' . (string)$days ),
|
||||
$wgContribScoreCacheTTL * 60,
|
||||
function () use ( $days ) {
|
||||
// Use max limit, as limit doesn't matter with performance.
|
||||
// Avoid purge multiple times since limit on transclusion can be vary.
|
||||
return self::getContributionScoreData( $days, self::CONTRIBUTIONSCORES_MAXINCLUDELIMIT );
|
||||
} );
|
||||
|
||||
$lang = $this->getLanguage();
|
||||
|
||||
$altrow = '';
|
||||
$user_rank = 1;
|
||||
|
||||
foreach ( $data as $row ) {
|
||||
if ( $user_rank > $limit ) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Use real name if option used and real name present.
|
||||
if ( $wgContribScoresUseRealName && $row->user_real_name !== '' ) {
|
||||
$userLink = Linker::userLink(
|
||||
$row->user_id,
|
||||
$row->user_name,
|
||||
$row->user_real_name
|
||||
);
|
||||
} else {
|
||||
$userLink = Linker::userLink(
|
||||
$row->user_id,
|
||||
$row->user_name
|
||||
);
|
||||
}
|
||||
|
||||
$output .= Html::closeElement( 'tr' );
|
||||
$output .= "<tr class='{$altrow}'>\n" .
|
||||
"<td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( $user_rank ) .
|
||||
"\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( round( $row->wiki_rank, 0 ) ) .
|
||||
"\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( $row->page_count ) .
|
||||
"\n</td><td class='content' style='padding-right:10px;text-align:right;'>" .
|
||||
$lang->formatNum( $row->rev_count ) .
|
||||
"\n</td><td class='content'>" .
|
||||
$userLink;
|
||||
|
||||
# Option to not display user tools
|
||||
if ( !in_array( 'notools', $opts ) ) {
|
||||
$output .= Linker::userToolLinks( $row->user_id, $row->user_name );
|
||||
}
|
||||
|
||||
$output .= Html::closeElement( 'td' ) . "\n";
|
||||
|
||||
if ( $altrow == '' && empty( $sortable ) ) {
|
||||
$altrow = 'odd ';
|
||||
} else {
|
||||
$altrow = '';
|
||||
}
|
||||
|
||||
$user_rank++;
|
||||
}
|
||||
$output .= Html::closeElement( 'tr' );
|
||||
$output .= Html::closeElement( 'table' );
|
||||
|
||||
// Transcluded on a normal wiki page.
|
||||
if ( !empty( $title ) ) {
|
||||
$output = Html::rawElement( 'table',
|
||||
[
|
||||
'style' => 'border-spacing: 0; padding: 0',
|
||||
'class' => 'contributionscores-wrapper',
|
||||
'lang' => htmlspecialchars( $lang->getCode() ),
|
||||
'dir' => $lang->getDir()
|
||||
],
|
||||
"\n" .
|
||||
"<tr>\n" .
|
||||
"<td style='padding: 0px;'>{$title}</td>\n" .
|
||||
"</tr>\n" .
|
||||
"<tr>\n" .
|
||||
"<td style='padding: 0px;'>{$output}</td>\n" .
|
||||
"</tr>\n"
|
||||
);
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function execute( $par ) {
|
||||
$this->setHeaders();
|
||||
|
||||
if ( $this->including() ) {
|
||||
$this->showInclude( $par );
|
||||
} else {
|
||||
$this->showPage();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when being included on a normal wiki page.
|
||||
* Cache is disabled so it can depend on the user language.
|
||||
* @param string|null $par A subpage give to the special page
|
||||
*/
|
||||
function showInclude( $par ) {
|
||||
$days = null;
|
||||
$limit = null;
|
||||
$options = 'none';
|
||||
|
||||
if ( !empty( $par ) ) {
|
||||
$params = explode( '/', $par );
|
||||
|
||||
$limit = intval( $params[0] );
|
||||
|
||||
if ( isset( $params[1] ) ) {
|
||||
$days = intval( $params[1] );
|
||||
}
|
||||
|
||||
if ( isset( $params[2] ) ) {
|
||||
$options = $params[2];
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $limit ) || $limit < 1 || $limit > self::CONTRIBUTIONSCORES_MAXINCLUDELIMIT ) {
|
||||
$limit = 10;
|
||||
}
|
||||
if ( $days === null || $days < 0 ) {
|
||||
$days = 7;
|
||||
}
|
||||
|
||||
if ( $days > 0 ) {
|
||||
$reportTitle = $this->msg( 'contributionscores-days' )->numParams( $days )->text();
|
||||
} else {
|
||||
$reportTitle = $this->msg( 'contributionscores-allrevisions' )->text();
|
||||
}
|
||||
$reportTitle .= ' ' . $this->msg( 'contributionscores-top' )->numParams( $limit )->text();
|
||||
$title = Xml::element( 'h4',
|
||||
[ 'class' => 'contributionscores-title' ],
|
||||
$reportTitle
|
||||
) . "\n";
|
||||
$this->getOutput()->addHTML( $this->genContributionScoreTable(
|
||||
$days,
|
||||
$limit,
|
||||
$title,
|
||||
$options
|
||||
) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the special page
|
||||
*/
|
||||
function showPage() {
|
||||
global $wgContribScoreReports;
|
||||
|
||||
if ( !is_array( $wgContribScoreReports ) ) {
|
||||
$wgContribScoreReports = [
|
||||
[ 7, 50 ],
|
||||
[ 30, 50 ],
|
||||
[ 0, 50 ]
|
||||
];
|
||||
}
|
||||
|
||||
$out = $this->getOutput();
|
||||
$out->addWikiMsg( 'contributionscores-info' );
|
||||
|
||||
foreach ( $wgContribScoreReports as $scoreReport ) {
|
||||
[ $days, $revs ] = $scoreReport;
|
||||
if ( $days > 0 ) {
|
||||
$reportTitle = $this->msg( 'contributionscores-days' )->numParams( $days )->text();
|
||||
} else {
|
||||
$reportTitle = $this->msg( 'contributionscores-allrevisions' )->text();
|
||||
}
|
||||
$reportTitle .= ' ' . $this->msg( 'contributionscores-top' )->numParams( $revs )->text();
|
||||
$title = Xml::element( 'h2',
|
||||
[ 'class' => 'contributionscores-title' ],
|
||||
$reportTitle
|
||||
) . "\n";
|
||||
$out->addHTML( $title );
|
||||
$out->addHTML( $this->genContributionScoreTable( $days, $revs ) );
|
||||
}
|
||||
}
|
||||
|
||||
public function maxIncludeCacheTime() {
|
||||
global $wgContribScoreDisableCache, $wgContribScoreCacheTTL;
|
||||
return $wgContribScoreDisableCache ? 0 : $wgContribScoreCacheTTL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
protected function getGroupName() {
|
||||
return 'wiki';
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue