Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,5 +1,7 @@
|
||||
.svn
|
||||
*~
|
||||
*.kate-swp
|
||||
.*.swp
|
||||
.idea
|
||||
node_modules/
|
||||
/composer.lock
|
||||
/vendor/
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
host=gerrit.wikimedia.org
|
||||
port=29418
|
||||
project=mediawiki/extensions/ContributionScores
|
||||
defaultbranch=master
|
||||
track=1
|
||||
defaultrebase=0
|
||||
1
.jshintignore
Normal file
1
.jshintignore
Normal file
@@ -0,0 +1 @@
|
||||
node_modules
|
||||
@@ -24,7 +24,7 @@ $specialPageAliases['arc'] = array(
|
||||
'ContributionScores' => array( 'ܦܠܛ̈ܐ_ܕܫܘܬܦܘ̈ܬܐ' ),
|
||||
);
|
||||
|
||||
/** Egyptian Spoken Arabic (مصرى) */
|
||||
/** Egyptian Arabic (مصرى) */
|
||||
$specialPageAliases['arz'] = array(
|
||||
'ContributionScores' => array( 'نتايج_المساهمه' ),
|
||||
);
|
||||
@@ -164,6 +164,11 @@ $specialPageAliases['lb'] = array(
|
||||
'ContributionScores' => array( 'Score_vun_de_Kontributiounen' ),
|
||||
);
|
||||
|
||||
/** Northern Luri (لۊری شومالی) */
|
||||
$specialPageAliases['lrc'] = array(
|
||||
'ContributionScores' => array( 'نئرخ_ھومیاری' ),
|
||||
);
|
||||
|
||||
/** Minangkabau (Baso Minangkabau) */
|
||||
$specialPageAliases['min'] = array(
|
||||
'ContributionScores' => array( 'SkorJariah' ),
|
||||
|
||||
@@ -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,47 +1,53 @@
|
||||
<?php
|
||||
/** \file
|
||||
* \brief Contains setup code for the Contribution Scores Extension.
|
||||
*/
|
||||
* \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";
|
||||
echo 'Contribution Scores extension';
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
$wgExtensionCredits['specialpage'][] = array(
|
||||
$wgExtensionCredits['specialpage'][] = [
|
||||
'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__ ) . '/';
|
||||
'version' => '1.25.0'
|
||||
];
|
||||
|
||||
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';
|
||||
// Set to true to exclude bots from the reporting.
|
||||
$wgContribScoreIgnoreBlockedUsers = false;
|
||||
|
||||
// Set to true to exclude blocked users from the reporting.
|
||||
$wgContribScoreIgnoreBots = false;
|
||||
|
||||
// Set to true to use real user names when available. Only for MediaWiki 1.19 and later.
|
||||
$wgContribScoresUseRealName = false;
|
||||
|
||||
// Set to true to disable cache for parser function and inclusion of table.
|
||||
$wgContribScoreDisableCache = false;
|
||||
|
||||
$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';
|
||||
$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;
|
||||
}
|
||||
|
||||
@@ -60,21 +66,20 @@ function efContributionScores_Render( &$parser, $usertext, $metric = 'score' ) {
|
||||
|
||||
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() ) );
|
||||
'COUNT(DISTINCT rev_page)+SQRT(COUNT(rev_id)-COUNT(DISTINCT rev_page))*2 AS wiki_rank',
|
||||
[ '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() ) );
|
||||
'COUNT(rev_id) AS rev_count',
|
||||
[ '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() ) );
|
||||
'COUNT(DISTINCT rev_page) AS page_count',
|
||||
[ 'rev_user' => $user->getID() ] );
|
||||
$row = $dbr->fetchObject( $res );
|
||||
$output = $wgLang->formatNum( $row->page_count );
|
||||
} else {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/** \file
|
||||
* \brief Contains code for the ContributionScores Class (extends SpecialPage).
|
||||
*/
|
||||
* \brief Contains code for the ContributionScores Class (extends SpecialPage).
|
||||
*/
|
||||
|
||||
/// Special page class for the Contribution Scores extension
|
||||
/**
|
||||
@@ -50,12 +50,14 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
}
|
||||
|
||||
if ( $wgContribScoreIgnoreBlockedUsers ) {
|
||||
$sqlWhere .= " {$nextPrefix} rev_user NOT IN (SELECT ipb_user FROM {$ipBlocksTable} WHERE ipb_user <> 0)";
|
||||
$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')";
|
||||
$sqlWhere .= " {$nextPrefix} rev_user NOT IN " .
|
||||
"(SELECT ug_user FROM {$userGroupTable} WHERE ug_group='bot')";
|
||||
}
|
||||
|
||||
$sqlMostPages = "SELECT rev_user,
|
||||
@@ -67,7 +69,7 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
ORDER BY page_count DESC
|
||||
LIMIT {$limit}";
|
||||
|
||||
$sqlMostRevs = "SELECT rev_user,
|
||||
$sqlMostRevs = "SELECT rev_user,
|
||||
COUNT(DISTINCT rev_page) AS page_count,
|
||||
COUNT(rev_id) AS rev_count
|
||||
FROM {$revTable}
|
||||
@@ -92,11 +94,11 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
|
||||
$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() );
|
||||
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() );
|
||||
|
||||
$altrow = '';
|
||||
$user_rank = 1;
|
||||
@@ -118,11 +120,16 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
}
|
||||
|
||||
$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'>" .
|
||||
$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
|
||||
@@ -145,22 +152,23 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
|
||||
$dbr->freeResult( $res );
|
||||
|
||||
if ( !empty( $title ) )
|
||||
if ( !empty( $title ) ) {
|
||||
$output = Html::rawElement( 'table',
|
||||
array(
|
||||
[
|
||||
'style' => 'border-spacing: 0; padding: 0',
|
||||
'class' => 'contributionscores-wrapper',
|
||||
'lang' => htmlspecialchars( $lang->getCode()),
|
||||
'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"
|
||||
"<tr>\n" .
|
||||
"<td style='padding: 0px;'>{$title}</td>\n" .
|
||||
"</tr>\n" .
|
||||
"<tr>\n" .
|
||||
"<td style='padding: 0px;'>{$output}</td>\n" .
|
||||
"</tr>\n"
|
||||
);
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
@@ -213,9 +221,17 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
} 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 ) );
|
||||
$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
|
||||
) );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -225,11 +241,11 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
global $wgContribScoreReports;
|
||||
|
||||
if ( !is_array( $wgContribScoreReports ) ) {
|
||||
$wgContribScoreReports = array(
|
||||
array( 7, 50 ),
|
||||
array( 30, 50 ),
|
||||
array( 0, 50 )
|
||||
);
|
||||
$wgContribScoreReports = [
|
||||
[ 7, 50 ],
|
||||
[ 30, 50 ],
|
||||
[ 0, 50 ]
|
||||
];
|
||||
}
|
||||
|
||||
$out = $this->getOutput();
|
||||
@@ -242,10 +258,17 @@ class ContributionScores extends IncludableSpecialPage {
|
||||
} 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";
|
||||
$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 ) );
|
||||
}
|
||||
}
|
||||
|
||||
protected function getGroupName() {
|
||||
return 'wiki';
|
||||
}
|
||||
}
|
||||
|
||||
28
Gruntfile.js
Normal file
28
Gruntfile.js
Normal file
@@ -0,0 +1,28 @@
|
||||
/*jshint node:true */
|
||||
module.exports = function ( grunt ) {
|
||||
'use strict';
|
||||
|
||||
grunt.loadNpmTasks( 'grunt-contrib-jshint' );
|
||||
grunt.loadNpmTasks( 'grunt-banana-checker' );
|
||||
grunt.loadNpmTasks( 'grunt-jsonlint' );
|
||||
|
||||
grunt.initConfig( {
|
||||
jshint: {
|
||||
all: [
|
||||
'*.js'
|
||||
]
|
||||
},
|
||||
banana: {
|
||||
all: 'i18n'
|
||||
},
|
||||
jsonlint: {
|
||||
all: [
|
||||
'**/*.json',
|
||||
'!node_modules/**'
|
||||
]
|
||||
}
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'test', [ 'jshint', 'jsonlint', '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.
|
||||
13
composer.json
Normal file
13
composer.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"jakub-onderka/php-parallel-lint": "0.9.2",
|
||||
"mediawiki/mediawiki-codesniffer": "0.7.2"
|
||||
},
|
||||
"scripts": {
|
||||
"fix": "phpcbf",
|
||||
"test": [
|
||||
"parallel-lint . --exclude vendor",
|
||||
"phpcs -p -s"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Mousa"
|
||||
"Mousa",
|
||||
"Alp Er Tunqa"
|
||||
]
|
||||
},
|
||||
"contributionscores": "چالیشماق امتیازلاری",
|
||||
@@ -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": "Ҡатнашыусы исеме",
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"authors": [
|
||||
"Bellayet",
|
||||
"Wikitanvir",
|
||||
"Aftab1995"
|
||||
"Aftab1995",
|
||||
"Aftabuzzaman"
|
||||
]
|
||||
},
|
||||
"contributionscores": "অনুদানের স্কোর",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
"Protnet"
|
||||
]
|
||||
},
|
||||
"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": "Κατάταξη",
|
||||
|
||||
32
i18n/en.json
32
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,7 +2,8 @@
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Michawiki",
|
||||
"Yekrats"
|
||||
"Yekrats",
|
||||
"Robin van der Vliet"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Poentaro de Kontribuoj",
|
||||
@@ -14,7 +15,7 @@
|
||||
"contributionscores-score": "Poentaro",
|
||||
"contributionscores-pages": "Paĝoj",
|
||||
"contributionscores-changes": "Ŝanĝoj",
|
||||
"contributionscores-username": "Salutnomo",
|
||||
"contributionscores-username": "Uzantnomo",
|
||||
"contributionscores-invalidusername": "Nevalida salutnomo",
|
||||
"contributionscores-invalidmetric": "Nevalida parametro"
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
]
|
||||
},
|
||||
"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}}",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Meursault2004",
|
||||
"Pras"
|
||||
"Pras",
|
||||
"NoiX180"
|
||||
]
|
||||
},
|
||||
"contributionscores": "Skor Kontribusi",
|
||||
"contributionscores": "Stan sumbangan",
|
||||
"contributionscores-desc": "Nglakokaké polling (angkèt) ing basis data kanggo [[Special:ContributionScores|volume kontribusi panganggo]]",
|
||||
"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)",
|
||||
|
||||
@@ -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": "Дұрыс емес метрик"
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"contributionscores-allrevisions": "គ្រប់ពេល",
|
||||
"contributionscores-score": "ពិន្ទុ",
|
||||
"contributionscores-pages": "ទំព័រនានា",
|
||||
"contributionscores-changes": "បំលាស់ប្តូរនានា",
|
||||
"contributionscores-changes": "បន្លាស់ប្ដូរ",
|
||||
"contributionscores-username": "អត្តនាម",
|
||||
"contributionscores-invalidusername": "អត្តនាមមិនត្រឹមត្រូវ"
|
||||
}
|
||||
|
||||
@@ -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ß"
|
||||
}
|
||||
|
||||
8
i18n/lki.json
Normal file
8
i18n/lki.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"@metadata": {
|
||||
"authors": [
|
||||
"Lakzon"
|
||||
]
|
||||
},
|
||||
"contributionscores-pages": "وةڵگةل"
|
||||
}
|
||||
@@ -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": "सदस्यनाव",
|
||||
|
||||
@@ -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}}",
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
"Crazymadlover",
|
||||
"Eduardo.mps",
|
||||
"Giro720",
|
||||
"Luckas"
|
||||
"Luckas",
|
||||
"HenriqueCrang"
|
||||
]
|
||||
},
|
||||
"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-top": "(Top $1)",
|
||||
"contributionscores-days": "Últimos {{PLURAL:$1|día|$1 días}}",
|
||||
"contributionscores-allrevisions": "Desde sempre",
|
||||
"contributionscores-score": "Pontuação",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -6,11 +6,12 @@
|
||||
},
|
||||
"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-days": "Соңгы {{PLURAL:$1|$1 көн өчен}}",
|
||||
"contributionscores-allrevisions": "Бөтен вакыт өчен",
|
||||
"contributionscores-score": "Билге",
|
||||
"contributionscores-rank": "Ранг",
|
||||
"contributionscores-pages": "Битләр саны",
|
||||
"contributionscores-changes": "Үзгәртүләр",
|
||||
"contributionscores-username": "Кулланучы исеме",
|
||||
|
||||
14
package.json
Normal file
14
package.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "grunt test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "0.4.5",
|
||||
"grunt-cli": "0.1.13",
|
||||
"grunt-contrib-jshint": "0.11.3",
|
||||
"grunt-jscs": "2.5.0",
|
||||
"grunt-jsonlint": "1.0.7",
|
||||
"grunt-banana-checker": "0.4.0"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user