jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/373257 )

Change subject: New Wikidata Build - 2017-08-23T10:00:01+0000
......................................................................


New Wikidata Build - 2017-08-23T10:00:01+0000

Change-Id: I3b427e2571deb04a158406bac61ec38854ed06ba
---
M composer.lock
M extensions/ArticlePlaceholder/i18n/ba.json
M extensions/Constraints/README.md
M extensions/Constraints/api/CheckConstraints.php
M extensions/Constraints/i18n/ast.json
M extensions/Constraints/i18n/he.json
M extensions/Constraints/i18n/it.json
M extensions/Constraints/i18n/pt.json
M extensions/Constraints/i18n/zh-hans.json
M extensions/Constraints/includes/Constraint.php
M 
extensions/Constraints/includes/ConstraintCheck/Helper/ConstraintParameterParser.php
M extensions/Constraints/tests/phpunit/Api/CheckConstraintsTest.php
M extensions/Wikibase/client/i18n/fa.json
M extensions/Wikibase/lib/i18n/tay.json
M extensions/Wikibase/repo/i18n/ast.json
M extensions/Wikibase/repo/i18n/be-tarask.json
M extensions/Wikibase/repo/i18n/hu.json
M extensions/Wikibase/repo/i18n/tay.json
M vendor/composer/installed.json
19 files changed, 180 insertions(+), 237 deletions(-)

Approvals:
  WMDE-leszek: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/composer.lock b/composer.lock
index 33933ad..bdd133f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -763,12 +763,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git";,
-                "reference": "3be2a23579f66dc0ec7ea5ac9109f7f8767347f3"
+                "reference": "3a283d051dff04a580bd6c74a0dbae35593eb733"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/3be2a23579f66dc0ec7ea5ac9109f7f8767347f3";,
-                "reference": "3be2a23579f66dc0ec7ea5ac9109f7f8767347f3",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/3a283d051dff04a580bd6c74a0dbae35593eb733";,
+                "reference": "3a283d051dff04a580bd6c74a0dbae35593eb733",
                 "shasum": ""
             },
             "require": {
@@ -797,7 +797,7 @@
             ],
             "description": "Provides a special page with Wikibase information 
about a certain topic, with invitation to create an article for the topic",
             "homepage": 
"https://www.mediawiki.org/wiki/Extension:ArticlePlaceholder";,
-            "time": "2017-08-22 06:35:22"
+            "time": "2017-08-23 06:59:10"
         },
         {
             "name": "propertysuggester/property-suggester",
@@ -973,7 +973,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints";,
-                "reference": "8bd6518a9c8797bd1b1bccff4f79f9939f314c7a"
+                "reference": "e64a5b34579b6fb575f5617a654299f6d47a950c"
             },
             "require": {
                 "php": ">=5.5.9",
@@ -1033,7 +1033,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/1202/";
             },
-            "time": "2017-08-22 09:22:02"
+            "time": "2017-08-23 08:58:25"
         },
         {
             "name": "wikibase/data-model",
@@ -1546,12 +1546,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "c3c3fd17dc8d57e85a57a99698c5e4b3daf2fbc5"
+                "reference": "e162d71a55fe71aa775485af62bbc9f0d4952fe6"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c3c3fd17dc8d57e85a57a99698c5e4b3daf2fbc5";,
-                "reference": "c3c3fd17dc8d57e85a57a99698c5e4b3daf2fbc5",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e162d71a55fe71aa775485af62bbc9f0d4952fe6";,
+                "reference": "e162d71a55fe71aa775485af62bbc9f0d4952fe6",
                 "shasum": ""
             },
             "require": {
@@ -1628,7 +1628,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2017-08-22 07:26:04"
+            "time": "2017-08-23 07:44:57"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/ArticlePlaceholder/i18n/ba.json 
b/extensions/ArticlePlaceholder/i18n/ba.json
index 52df19c..b720bcc 100644
--- a/extensions/ArticlePlaceholder/i18n/ba.json
+++ b/extensions/ArticlePlaceholder/i18n/ba.json
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Айбикә"
+                       "Айбикә",
+                       "Ләйсән"
                ]
        },
        "articleplaceholder-abouttopic": "Тема тураһында",
@@ -10,6 +11,5 @@
        "articleplaceholder-abouttopic-article-exists-error": "Бындай атамалы 
тема бар",
        "articleplaceholder-abouttopic-lua-entity": "Төп нигеҙ",
        "articleplaceholder-abouttopic-lua-reference": "Иҫкәрмә",
-       "articleplaceholder-abouttopic-lua-qualifier": "Квалификатор",
-       "articleplaceholder-abouttopic-lua-identifier": "Идентификатор"
+       "articleplaceholder-abouttopic-lua-identifier": "Тышҡы сығанаҡтар"
 }
diff --git a/extensions/Constraints/README.md b/extensions/Constraints/README.md
index 8541988..5ff3655 100644
--- a/extensions/Constraints/README.md
+++ b/extensions/Constraints/README.md
@@ -64,8 +64,13 @@
 
   * If you have a SPARQL endpoint, configure it in 
`WBQualityConstraintsSparqlEndpoint`.
 
+  * Alternatively, to check “format” constraints without running a full SPARQL 
server,
+    you can use the [minisparql] server.
+
 * Run `php maintenance/runScript.php 
extensions/WikibaseQualityConstraints/maintenance/ImportConstraintStatements.php`.
 
+[minisparql]: https://github.com/lucaswerkmeister/minisparql
+
 ### Gadget
 
 The extension includes a gadget that checks constraints on entity pages and 
displays violations on statements.
diff --git a/extensions/Constraints/api/CheckConstraints.php 
b/extensions/Constraints/api/CheckConstraints.php
index 0155a21..e345017 100644
--- a/extensions/Constraints/api/CheckConstraints.php
+++ b/extensions/Constraints/api/CheckConstraints.php
@@ -342,20 +342,10 @@
                        $typeItemId = 
$checkResult->getConstraint()->getConstraintTypeItemId();
 
                        $title = $this->entityTitleLookup->getTitleForId( 
$checkResult->getPropertyId() );
-                       try {
-                               $statementGuid = 
$this->statementGuidParser->parse( $constraintId );
-                               // constraint statement
-                               $typeLabel = 
$this->entityIdLabelFormatter->formatEntityId( new ItemId( $typeItemId ) );
-                               // TODO link to the statement when possible 
(T169224)
-                               $link = $title->getFullUrl() . '#' . 
$this->config->get( 'WBQualityConstraintsPropertyConstraintId' );
-                       } catch ( StatementGuidParsingException $e ) {
-                               // constraint template on talk page
-                               $typeLabel = htmlspecialchars( $typeItemId );
-                               if ( !$title->canHaveTalkPage() ) {
-                                       throw new MWException( 'Properties 
namespace must define a talk namespace' );
-                               }
-                               $link = 
$title->getTalkPageIfDefined()->getFullUrl();
-                       }
+                       $statementGuid = $this->statementGuidParser->parse( 
$constraintId );
+                       $typeLabel = 
$this->entityIdLabelFormatter->formatEntityId( new ItemId( $typeItemId ) );
+                       // TODO link to the statement when possible (T169224)
+                       $link = $title->getFullUrl() . '#' . 
$this->config->get( 'WBQualityConstraintsPropertyConstraintId' );
 
                        $result = [
                                'status' => $checkResult->getStatus(),
diff --git a/extensions/Constraints/i18n/ast.json 
b/extensions/Constraints/i18n/ast.json
index a637d4c..fab6bc5 100644
--- a/extensions/Constraints/i18n/ast.json
+++ b/extensions/Constraints/i18n/ast.json
@@ -32,15 +32,16 @@
        "wbqc-potentialissues-long": "Esta declaración tien posibles 
incidencies.",
        "wbqc-badparameters-short": "Parámetros incorreutos",
        "wbqc-badparameters-long": "Esta declaración de torga tien dellos 
parámetros inválidos.",
+       "wbqc-parameterissues-short": "Incidencies avanzaes",
        "wbqc-problems-short": "Problemes",
        "wbqc-problems-long": "Esta declaración tien dellos problemes.",
+       "wbqc-constrainttypehelp-long": "Páxina d'ayuda pa esta triba de torga",
        "wbq-subextension-name-wbqc": "Torgues",
        "wbqc-violation-header-parameters": "Parámetros:",
        "wbqc-violations-group": "Torgues",
        "wbqc-violation-message": "La comprobación de torgues señaló una 
violación. Fai click nel iconu pa más información.",
        "wbqc-violation-message-not-yet-implemented": "Por razones téuniques, 
la comprobación de la torga «$1» inda nun ta desendolcada.",
        "wbqc-violation-message-security-reason": "Por motivos de seguridá, nun 
ye posible comprobar la torga «$1» nesti momentu. Tamos trabayando n'una 
solución.",
-       "wbqc-violation-message-value-needed": "Les propiedaes cola torga «$1» 
han tener un valor.",
        "wbqc-violation-message-value-needed-of-type": "Les propiedaes cola 
torga «$1» han tener valores de tipu «$2».",
        "wbqc-violation-message-parameter-needed": "Les propiedaes cola torga 
«$1» necesiten un parámetru «$2».",
        "wbqc-violation-message-target-entity-must-exist": "La entidá de destín 
tien d'esistir.",
@@ -52,9 +53,8 @@
        "wbqc-violation-message-conflicts-with-claim": "Una entidá nun habría 
de tener declaraciones pa $1 si tamién tien una declaración pa $2 con valor 
$3.",
        "wbqc-violation-message-diff-within-range": "La diferencia ente $3 ($4) 
y $1 ($2) habría de tar ente $5 y $6 ([$5; $6]).",
        "wbqc-violation-message-diff-within-range-property-must-exist": "La 
propiedá definida nos parámetros tien d'esistir.",
-       "wbqc-violation-message-diff-within-range-property-needs value": "La 
propiedá definida nos parámetros tien de tener un valor.",
        "wbqc-violation-message-diff-within-range-must-have-equal-types": "La 
propiedá definida nos parámetros tien de tener un valor del mesmu tipu qu'esta 
propiedá.",
-       "wbqc-violation-message-format": "El valor de $1 ($2) tien de coincidir 
col patrón $3.",
+       "wbqc-violation-message-format": "El valor de $1 ($2) tien de coincidir 
cola espresión regular $3.",
        "wbqc-violation-message-inverse": "$1 habría de tener tamién la 
declaración inversa $2 $3.",
        "wbqc-violation-message-item": "Una entidá con $1 habría de tener 
tamién {{PLURAL:$3|0=una declaración $2|1=una declaración $2 $5|una declaración 
pa $2 con un valor de los siguientes:$4}}.",
        "wbqc-violation-message-multi-value": "Esta propiedá tendría de 
contener valores múltiples. Esto ye, tendría d'haber más d'una declaración 
utilizando esta propiedá.",
diff --git a/extensions/Constraints/i18n/he.json 
b/extensions/Constraints/i18n/he.json
index a47a92e..1e0807f 100644
--- a/extensions/Constraints/i18n/he.json
+++ b/extensions/Constraints/i18n/he.json
@@ -80,7 +80,8 @@
        "wbqc-violation-message-diff-within-range-rightopen": "ההבדל בין $3 
(כעת: $4) ו{{GRAMMAR:תחילית|$1}} (כעת: $2) אמור להיות לא פחות מ־$5 ([$5; ∞)).",
        "wbqc-violation-message-diff-within-range-property-must-exist": 
"המאפיין שמוגדר בפרמטרים צריך להתקיים.",
        "wbqc-violation-message-diff-within-range-must-have-equal-types": 
"למאפיין שהוגדר בפרמטרים צריך להיות ערך מאותו הסוג כמו למאפיין הזה.",
-       "wbqc-violation-message-format": "הערך של $1 (כעת: $2) אמור להתאים 
לתבנית $3.",
+       "wbqc-violation-message-format": "הערך של $1 (כעת: $2) אמור להתאים 
לביטוי הרגולרי $3.",
+       "wbqc-violation-message-format-clarification": "הערך $2 עבור המאפיין $1 
 אמור להתאים לתבנית \"$4\" (ביטוי רגולרי: $3)",
        "wbqc-violation-message-inverse": "ל{{GRAMMAR:תחילית|$1}} אמורה להיות 
גם הקביעה ההפוכה $2 $3.",
        "wbqc-violation-message-item": "לישות עם $1 אמורה להיות גם 
{{PLURAL:$3|0=הקביעה $2.|1=הקביעה $2 $5.|הקביעה עבור $2 עם אחד מהערכים הבאים: 
$4}}",
        "wbqc-violation-message-mandatory-qualifier": "בקביעת 
ה{{GRAMMAR:תחילית|$1}} הזאת חסר המבחין $2.",
diff --git a/extensions/Constraints/i18n/it.json 
b/extensions/Constraints/i18n/it.json
index 7dd7943..39c454e 100644
--- a/extensions/Constraints/i18n/it.json
+++ b/extensions/Constraints/i18n/it.json
@@ -40,7 +40,6 @@
        "wbqc-violation-message": "Il controllo del vincolo ha rilevato una 
violazione. Si prega di fare clic sull'icona per ulteriori informazioni.",
        "wbqc-violation-message-not-yet-implemented": "Per motivi tecnici, il 
controllo per il vincolo di \"$1\" non è ancora stato implementato.",
        "wbqc-violation-message-security-reason": "Per motivi di sicurezza, il 
controllo per il vincolo di \"$1\" non è possibile al momento. Stiamo lavorando 
a una soluzione.",
-       "wbqc-violation-message-value-needed": "Proprietà con vincolo \"$1\" 
devono avere un valore.",
        "wbqc-violation-message-value-needed-of-type": "Proprietà con vincolo 
\"$1\" devono avere valori di tipo \"$2\".",
        "wbqc-violation-message-value-needed-of-types-2": "Proprietà con 
vincolo \"$1\" devono avere valori di tipo \"$2\" o \"$3\".",
        "wbqc-violation-message-parameter-needed": "Proprietà con il vincolo 
\"$1\" necessitano di un parametro \"$2\".",
@@ -63,9 +62,9 @@
        "wbqc-violation-message-diff-within-range-leftopen": "La differenza tra 
$3 ($4) e $1 ($2) non dovrebbe essere superiore a $5 ((−∞; $5]).",
        "wbqc-violation-message-diff-within-range-rightopen": "La differenza 
tra $3 ($4) e $1 ($2) non dovrebbe essere inferiore a $5 ([$5; ∞)).",
        "wbqc-violation-message-diff-within-range-property-must-exist": "La 
proprietà definita nei parametri deve esistere.",
-       "wbqc-violation-message-diff-within-range-property-needs value": "La 
proprietà definita nei parametri deve avere un valore.",
        "wbqc-violation-message-diff-within-range-must-have-equal-types": "La 
proprietà definita nei parametri deve avere un valore dello stesso tipo di 
questa proprietà.",
-       "wbqc-violation-message-format": "Il valore per $1 ($2) corrispondere 
al modello $3.",
+       "wbqc-violation-message-format": "Il valore per $1 ($2) dovrebbe 
corrispondere all'espressione regolare $3.",
+       "wbqc-violation-message-format-clarification": "Il valore per $1 ($2) 
dovrebbe corrispondere a \"$4\" (espressione regolare: $3).",
        "wbqc-violation-message-inverse": "$1 dovrebbe avere anche la 
dichiarazione inversa $2 $3.",
        "wbqc-violation-message-multi-value": "Questa proprietà dovrebbe 
contenere valori multipli. Cioè, ci dovrebbe essere più di una dichiarazione 
che utilizza questa proprietà.",
        "wbqc-violation-message-one-of": "Il valore per $1 deve essere 
{{PLURAL:$2|1=$4.|2=$4 o $5.|uno dei seguenti:$3}}",
diff --git a/extensions/Constraints/i18n/pt.json 
b/extensions/Constraints/i18n/pt.json
index 096b8de..0d77186 100644
--- a/extensions/Constraints/i18n/pt.json
+++ b/extensions/Constraints/i18n/pt.json
@@ -89,7 +89,8 @@
        "wbqc-violation-message-diff-within-range-rightopen": "A diferença 
entre $3 ($4) e $1 ($2) deveria ser igual ou superior a $5 ([$5; ∞)).",
        "wbqc-violation-message-diff-within-range-property-must-exist": "A 
propriedade definida nos parâmetros tem de existir.",
        "wbqc-violation-message-diff-within-range-must-have-equal-types": "A 
propriedade definida nos parâmetros tem de ter um valor do mesmo tipo que esta 
propriedade.",
-       "wbqc-violation-message-format": "O valor da propriedade $1 ($2) 
deveria coincidir com o padrão $3.",
+       "wbqc-violation-message-format": "O valor de $1 ($2) deveria coincidir 
com a expressão regular $3.",
+       "wbqc-violation-message-format-clarification": "O valor de $1 ($2) 
deveria coincidir com \"$4\" (expressão regular: $3).",
        "wbqc-violation-message-inverse": "$1 também deveria ter a declaração 
inversa $2 $3.",
        "wbqc-violation-message-item": "Uma entidade com $1 também deveria ter 
{{PLURAL:$3|0=uma declaração $2.|1=uma declaração $2 $5.|uma declaração para $2 
com um dos seguintes valores:$4}}",
        "wbqc-violation-message-mandatory-qualifier": "Falta um qualificador $2 
a esta declaração $1.",
diff --git a/extensions/Constraints/i18n/zh-hans.json 
b/extensions/Constraints/i18n/zh-hans.json
index dce4084..b345076 100644
--- a/extensions/Constraints/i18n/zh-hans.json
+++ b/extensions/Constraints/i18n/zh-hans.json
@@ -87,7 +87,8 @@
        "wbqc-violation-message-diff-within-range-rightopen": 
"$3($4)和$1($2)之间的差异不应小于$5([$5; ∞))。",
        "wbqc-violation-message-diff-within-range-property-must-exist": 
"参数中定义的属性必须存在。",
        "wbqc-violation-message-diff-within-range-must-have-equal-types": 
"参数中定义的属性必须有一个与此属性类型相同的值。",
-       "wbqc-violation-message-format": "$1的值($2)应匹配模式$3。",
+       "wbqc-violation-message-format": "$1的值($2)应匹配正则表达式$3。",
+       "wbqc-violation-message-format-clarification": 
"$1的值($2)应匹配“$4”(正则表达式:$3)。",
        "wbqc-violation-message-inverse": "$1也应当拥有相反声明$2 $3。",
        "wbqc-violation-message-item": "具有$1的实体也应拥有{{PLURAL:$3|0=声明$2。|1=声明$2 
$5。|声明$2,并使用以下值之一:$4}}",
        "wbqc-violation-message-mandatory-qualifier": "此$1声明缺少限定符$2。",
diff --git a/extensions/Constraints/includes/Constraint.php 
b/extensions/Constraints/includes/Constraint.php
index 7d2c48d..eba32bf 100644
--- a/extensions/Constraints/includes/Constraint.php
+++ b/extensions/Constraints/includes/Constraint.php
@@ -81,14 +81,9 @@
        }
 
        /**
-        * There are two formats of constraint parameters that this method can 
return:
-        *
-        * 1. Statement parameters were imported from constraint statements by 
{@link UpdateConstraintsTableJob}.
-        *    They are lists of snak array serializations, indexed by property 
ID serialization.
-        * 2. Template parameters were imported from constraint templates on 
property talk pages.
-        *    They are plain strings (e. g. 'Q5,Q6,Q7') indexed by template 
parameters (e. g. 'item', 'property').
-        *
-        * Support for template parameters will soon be removed.
+        * The constraint parameters, imported from the qualifiers of the 
constraint statement.
+        * Contains lists of snak array serializations, indexed by property ID 
serialization.
+        * (The import is done by {@link UpdateConstraintsTableJob}.)
         *
         * @return array
         */
diff --git 
a/extensions/Constraints/includes/ConstraintCheck/Helper/ConstraintParameterParser.php
 
b/extensions/Constraints/includes/ConstraintCheck/Helper/ConstraintParameterParser.php
index c6a54e2..30cab37 100644
--- 
a/extensions/Constraints/includes/ConstraintCheck/Helper/ConstraintParameterParser.php
+++ 
b/extensions/Constraints/includes/ConstraintCheck/Helper/ConstraintParameterParser.php
@@ -148,8 +148,24 @@
                }
        }
 
-       private function parseClassParameterFromStatement( array 
$constraintParameters ) {
+       /**
+        * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
+        * @param string $constraintTypeItemId used in error messages
+        * @throws ConstraintParameterException if the parameter is invalid or 
missing
+        * @return string[] class entity ID serializations
+        */
+       public function parseClassParameter( array $constraintParameters, 
$constraintTypeItemId ) {
+               $this->checkError( $constraintParameters );
                $classId = $this->config->get( 'WBQualityConstraintsClassId' );
+               if ( !array_key_exists( $classId, $constraintParameters ) ) {
+                       throw new ConstraintParameterException(
+                               wfMessage( 
'wbqc-violation-message-parameter-needed' )
+                                       ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
+                                       ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $classId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
+                                       ->escaped()
+                       );
+               }
+
                $classes = [];
                foreach ( $constraintParameters[$classId] as $class ) {
                        $classes[] = $this->parseEntityIdParameter( $class, 
$classId )->getSerialization();
@@ -161,25 +177,20 @@
         * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
         * @param string $constraintTypeItemId used in error messages
         * @throws ConstraintParameterException if the parameter is invalid or 
missing
-        * @return string[] class entity ID serializations
+        * @return string 'instance' or 'subclass'
         */
-       public function parseClassParameter( array $constraintParameters, 
$constraintTypeItemId ) {
+       public function parseRelationParameter( array $constraintParameters, 
$constraintTypeItemId ) {
                $this->checkError( $constraintParameters );
-               $classId = $this->config->get( 'WBQualityConstraintsClassId' );
-               if ( array_key_exists( $classId, $constraintParameters ) ) {
-                       return $this->parseClassParameterFromStatement( 
$constraintParameters );
-               } else {
+               $relationId = $this->config->get( 
'WBQualityConstraintsRelationId' );
+               if ( !array_key_exists( $relationId, $constraintParameters ) ) {
                        throw new ConstraintParameterException(
                                wfMessage( 
'wbqc-violation-message-parameter-needed' )
                                        ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
-                                       ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $classId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
+                                       ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $relationId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
                                        ->escaped()
                        );
                }
-       }
 
-       private function parseRelationParameterFromStatement( array 
$constraintParameters ) {
-               $relationId = $this->config->get( 
'WBQualityConstraintsRelationId' );
                $this->requireSingleParameter( $constraintParameters, 
$relationId );
                $relationEntityId = $this->parseEntityIdParameter( 
$constraintParameters[$relationId][0], $relationId );
                $instanceId = $this->config->get( 
'WBQualityConstraintsInstanceOfRelationId' );
@@ -197,27 +208,6 @@
                                                ->rawParams( 
$this->constraintParameterRenderer->formatItemIdList( [ $instanceId, 
$subclassId ], Role::CONSTRAINT_PARAMETER_VALUE ) )
                                                ->escaped()
                                );
-               }
-       }
-
-       /**
-        * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
-        * @param string $constraintTypeItemId used in error messages
-        * @throws ConstraintParameterException if the parameter is invalid or 
missing
-        * @return string 'instance' or 'subclass'
-        */
-       public function parseRelationParameter( array $constraintParameters, 
$constraintTypeItemId ) {
-               $this->checkError( $constraintParameters );
-               $relationId = $this->config->get( 
'WBQualityConstraintsRelationId' );
-               if ( array_key_exists( $relationId, $constraintParameters ) ) {
-                       return $this->parseRelationParameterFromStatement( 
$constraintParameters );
-               } else {
-                       throw new ConstraintParameterException(
-                               wfMessage( 
'wbqc-violation-message-parameter-needed' )
-                                       ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
-                                       ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $relationId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
-                                       ->escaped()
-                       );
                }
        }
 
@@ -248,12 +238,6 @@
                );
        }
 
-       private function parsePropertyParameterFromStatement( array 
$constraintParameters ) {
-               $propertyIdString = $this->config->get( 
'WBQualityConstraintsPropertyId' );
-               $this->requireSingleParameter( $constraintParameters, 
$propertyIdString );
-               return $this->parsePropertyIdParameter( 
$constraintParameters[$propertyIdString][0], $propertyIdString );
-       }
-
        /**
         * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
         * @param string $constraintTypeItemId used in error messages
@@ -263,9 +247,7 @@
        public function parsePropertyParameter( array $constraintParameters, 
$constraintTypeItemId ) {
                $this->checkError( $constraintParameters );
                $propertyId = $this->config->get( 
'WBQualityConstraintsPropertyId' );
-               if ( array_key_exists( $propertyId, $constraintParameters ) ) {
-                       return $this->parsePropertyParameterFromStatement( 
$constraintParameters );
-               } else {
+               if ( !array_key_exists( $propertyId, $constraintParameters ) ) {
                        throw new ConstraintParameterException(
                                wfMessage( 
'wbqc-violation-message-parameter-needed' )
                                        ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
@@ -273,6 +255,9 @@
                                        ->escaped()
                        );
                }
+
+               $this->requireSingleParameter( $constraintParameters, 
$propertyId );
+               return $this->parsePropertyIdParameter( 
$constraintParameters[$propertyId][0], $propertyId );
        }
 
        private function parseItemIdParameter( PropertyValueSnak $snak, 
$parameterId ) {
@@ -292,8 +277,29 @@
                }
        }
 
-       private function parseItemsParameterFromStatement( array 
$constraintParameters ) {
+       /**
+        * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
+        * @param string $constraintTypeItemId used in error messages
+        * @param bool $required whether the parameter is required (error if 
absent) or not ([] if absent)
+        * @throws ConstraintParameterException if the parameter is invalid or 
missing
+        * @return ItemIdSnakValue[] array of values
+        */
+       public function parseItemsParameter( array $constraintParameters, 
$constraintTypeItemId, $required ) {
+               $this->checkError( $constraintParameters );
                $qualifierId = $this->config->get( 
'WBQualityConstraintsQualifierOfPropertyConstraintId' );
+               if ( !array_key_exists( $qualifierId, $constraintParameters ) ) 
{
+                       if ( $required ) {
+                               throw new ConstraintParameterException(
+                                       wfMessage( 
'wbqc-violation-message-parameter-needed' )
+                                               ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
+                                               ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $qualifierId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
+                                               ->escaped()
+                               );
+                       } else {
+                               return [];
+                       }
+               }
+
                $values = [];
                foreach ( $constraintParameters[$qualifierId] as $parameter ) {
                        $snak = $this->snakDeserializer->deserialize( 
$parameter );
@@ -315,31 +321,21 @@
        /**
         * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
         * @param string $constraintTypeItemId used in error messages
-        * @param bool $required whether the parameter is required (error if 
absent) or not ([] if absent)
         * @throws ConstraintParameterException if the parameter is invalid or 
missing
-        * @return ItemIdSnakValue[] array of values
+        * @return PropertyId[]
         */
-       public function parseItemsParameter( array $constraintParameters, 
$constraintTypeItemId, $required ) {
+       public function parsePropertiesParameter( array $constraintParameters, 
$constraintTypeItemId ) {
                $this->checkError( $constraintParameters );
-               $qualifierId = $this->config->get( 
'WBQualityConstraintsQualifierOfPropertyConstraintId' );
-               if ( array_key_exists( $qualifierId, $constraintParameters ) ) {
-                       return $this->parseItemsParameterFromStatement( 
$constraintParameters );
-               } else {
-                       if ( $required ) {
-                               throw new ConstraintParameterException(
-                                       wfMessage( 
'wbqc-violation-message-parameter-needed' )
-                                               ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
-                                               ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $qualifierId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
-                                               ->escaped()
-                               );
-                       } else {
-                               return [];
-                       }
-               }
-       }
-
-       private function parsePropertiesParameterFromStatement( array 
$constraintParameters ) {
                $propertyId = $this->config->get( 
'WBQualityConstraintsPropertyId' );
+               if ( !array_key_exists( $propertyId, $constraintParameters ) ) {
+                       throw new ConstraintParameterException(
+                               wfMessage( 
'wbqc-violation-message-parameter-needed' )
+                                       ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
+                                       ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $propertyId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
+                                       ->escaped()
+                       );
+               }
+
                $parameters = $constraintParameters[$propertyId];
                if ( count( $parameters ) === 1 &&
                        $this->snakDeserializer->deserialize( $parameters[0] ) 
instanceof PropertyNoValueSnak
@@ -352,27 +348,6 @@
                        $properties[] = $this->parsePropertyIdParameter( 
$parameter, $propertyId );
                }
                return $properties;
-       }
-
-       /**
-        * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
-        * @param string $constraintTypeItemId used in error messages
-        * @throws ConstraintParameterException if the parameter is invalid or 
missing
-        * @return PropertyId[]
-        */
-       public function parsePropertiesParameter( array $constraintParameters, 
$constraintTypeItemId ) {
-               $this->checkError( $constraintParameters );
-               $propertyId = $this->config->get( 
'WBQualityConstraintsPropertyId' );
-               if ( array_key_exists( $propertyId, $constraintParameters ) ) {
-                       return $this->parsePropertiesParameterFromStatement( 
$constraintParameters );
-               } else {
-                       throw new ConstraintParameterException(
-                               wfMessage( 
'wbqc-violation-message-parameter-needed' )
-                                       ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
-                                       ->rawParams( 
$this->constraintParameterRenderer->formatPropertyId( $propertyId, 
Role::CONSTRAINT_PARAMETER_PROPERTY ) )
-                                       ->escaped()
-                       );
-               }
        }
 
        /**
@@ -411,18 +386,6 @@
                }
        }
 
-       private function parseRangeParameterFromStatement( array 
$constraintParameters, $configKey ) {
-               $minimumId = $this->config->get( 'WBQualityConstraintsMinimum' 
. $configKey . 'Id' );
-               $maximumId = $this->config->get( 'WBQualityConstraintsMaximum' 
. $configKey . 'Id' );
-               $this->requireSingleParameter( $constraintParameters, 
$minimumId );
-               $this->requireSingleParameter( $constraintParameters, 
$maximumId );
-               $parseFunction = $configKey === 'Date' ? 
'parseValueOrNoValueOrNowParameter' : 'parseValueOrNoValueParameter';
-               return [
-                       $this->$parseFunction( 
$constraintParameters[$minimumId][0], $minimumId ),
-                       $this->$parseFunction( 
$constraintParameters[$maximumId][0], $maximumId )
-               ];
-       }
-
        /**
         * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
         * @param string $constraintTypeItemId used in error messages
@@ -451,11 +414,9 @@
                }
                $minimumId = $this->config->get( 'WBQualityConstraintsMinimum' 
. $configKey . 'Id' );
                $maximumId = $this->config->get( 'WBQualityConstraintsMaximum' 
. $configKey . 'Id' );
-               if ( array_key_exists( $minimumId, $constraintParameters ) &&
-                       array_key_exists( $maximumId, $constraintParameters )
+               if ( !array_key_exists( $minimumId, $constraintParameters ) ||
+                       !array_key_exists( $maximumId, $constraintParameters )
                ) {
-                       return $this->parseRangeParameterFromStatement( 
$constraintParameters, $configKey );
-               } else {
                        throw new ConstraintParameterException(
                                wfMessage( 
'wbqc-violation-message-range-parameters-needed' )
                                        ->rawParams(
@@ -467,6 +428,14 @@
                                        ->escaped()
                        );
                }
+
+               $this->requireSingleParameter( $constraintParameters, 
$minimumId );
+               $this->requireSingleParameter( $constraintParameters, 
$maximumId );
+               $parseFunction = $configKey === 'Date' ? 
'parseValueOrNoValueOrNowParameter' : 'parseValueOrNoValueParameter';
+               return [
+                       $this->$parseFunction( 
$constraintParameters[$minimumId][0], $minimumId ),
+                       $this->$parseFunction( 
$constraintParameters[$maximumId][0], $maximumId )
+               ];
        }
 
        /**
@@ -494,12 +463,6 @@
                }
        }
 
-       private function parseNamespaceParameterFromStatement( array 
$constraintParameters ) {
-               $namespaceId = $this->config->get( 
'WBQualityConstraintsNamespaceId' );
-               $this->requireSingleParameter( $constraintParameters, 
$namespaceId );
-               return $this->parseStringParameter( 
$constraintParameters[$namespaceId][0], $namespaceId );
-       }
-
        /**
         * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
         * @param string $constraintTypeItemId used in error messages
@@ -509,17 +472,12 @@
        public function parseNamespaceParameter( array $constraintParameters, 
$constraintTypeItemId ) {
                $this->checkError( $constraintParameters );
                $namespaceId = $this->config->get( 
'WBQualityConstraintsNamespaceId' );
-               if ( array_key_exists( $namespaceId, $constraintParameters ) ) {
-                       return $this->parseNamespaceParameterFromStatement( 
$constraintParameters );
-               } else {
+               if ( !array_key_exists( $namespaceId, $constraintParameters ) ) 
{
                        return '';
                }
-       }
 
-       private function parseFormatParameterFromStatement( array 
$constraintParameters ) {
-               $formatId = $this->config->get( 
'WBQualityConstraintsFormatAsARegularExpressionId' );
-               $this->requireSingleParameter( $constraintParameters, $formatId 
);
-               return $this->parseStringParameter( 
$constraintParameters[$formatId][0], $formatId );
+               $this->requireSingleParameter( $constraintParameters, 
$namespaceId );
+               return $this->parseStringParameter( 
$constraintParameters[$namespaceId][0], $namespaceId );
        }
 
        /**
@@ -531,9 +489,7 @@
        public function parseFormatParameter( array $constraintParameters, 
$constraintTypeItemId ) {
                $this->checkError( $constraintParameters );
                $formatId = $this->config->get( 
'WBQualityConstraintsFormatAsARegularExpressionId' );
-               if ( array_key_exists( $formatId, $constraintParameters ) ) {
-                       return $this->parseFormatParameterFromStatement( 
$constraintParameters );
-               } else {
+               if ( !array_key_exists( $formatId, $constraintParameters ) ) {
                        throw new ConstraintParameterException(
                                wfMessage( 
'wbqc-violation-message-parameter-needed' )
                                        ->rawParams( 
$this->constraintParameterRenderer->formatItemId( $constraintTypeItemId, 
Role::CONSTRAINT_TYPE_ITEM ) )
@@ -541,10 +497,23 @@
                                        ->escaped()
                        );
                }
+
+               $this->requireSingleParameter( $constraintParameters, $formatId 
);
+               return $this->parseStringParameter( 
$constraintParameters[$formatId][0], $formatId );
        }
 
-       private function parseExceptionParameterFromStatement( array 
$constraintParameters ) {
+       /**
+        * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
+        * @throws ConstraintParameterException if the parameter is invalid
+        * @return EntityId[]
+        */
+       public function parseExceptionParameter( array $constraintParameters ) {
+               $this->checkError( $constraintParameters );
                $exceptionId = $this->config->get( 
'WBQualityConstraintsExceptionToConstraintId' );
+               if ( !array_key_exists( $exceptionId, $constraintParameters ) ) 
{
+                       return [];
+               }
+
                return array_map(
                        function( $snakSerialization ) use ( $exceptionId ) {
                                return $this->parseEntityIdParameter( 
$snakSerialization, $exceptionId );
@@ -556,20 +525,15 @@
        /**
         * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
         * @throws ConstraintParameterException if the parameter is invalid
-        * @return EntityId[]
+        * @return string|null 'mandatory' or null
         */
-       public function parseExceptionParameter( array $constraintParameters ) {
+       public function parseConstraintStatusParameter( array 
$constraintParameters ) {
                $this->checkError( $constraintParameters );
-               $exceptionId = $this->config->get( 
'WBQualityConstraintsExceptionToConstraintId' );
-               if ( array_key_exists( $exceptionId, $constraintParameters ) ) {
-                       return $this->parseExceptionParameterFromStatement( 
$constraintParameters );
-               } else {
-                       return [];
-               }
-       }
-
-       private function parseConstraintStatusParameterFromStatement( array 
$constraintParameters ) {
                $constraintStatusId = $this->config->get( 
'WBQualityConstraintsConstraintStatusId' );
+               if ( !array_key_exists( $constraintStatusId, 
$constraintParameters ) ) {
+                       return null;
+               }
+
                $mandatoryId = $this->config->get( 
'WBQualityConstraintsMandatoryConstraintId' );
                $this->requireSingleParameter( $constraintParameters, 
$constraintStatusId );
                $snak = $this->snakDeserializer->deserialize( 
$constraintParameters[$constraintStatusId][0] );
@@ -586,21 +550,6 @@
                                        ->rawParams( 
$this->constraintParameterRenderer->formatItemIdList( [ $mandatoryId ], 
Role::CONSTRAINT_PARAMETER_VALUE ) )
                                        ->escaped()
                        );
-               }
-       }
-
-       /**
-        * @param array $constraintParameters see {@link 
\WikibaseQuality\Constraint::getConstraintParameters()}
-        * @throws ConstraintParameterException if the parameter is invalid
-        * @return string|null 'mandatory' or null
-        */
-       public function parseConstraintStatusParameter( array 
$constraintParameters ) {
-               $this->checkError( $constraintParameters );
-               $constraintStatusId = $this->config->get( 
'WBQualityConstraintsConstraintStatusId' );
-               if ( array_key_exists( $constraintStatusId, 
$constraintParameters ) ) {
-                       return 
$this->parseConstraintStatusParameterFromStatement( $constraintParameters );
-               } else {
-                       return null;
                }
        }
 
@@ -672,25 +621,25 @@
        public function parseSyntaxClarificationParameter( array 
$constraintParameters, Language $language ) {
                $syntaxClarificationId = $this->config->get( 
'WBQualityConstraintsSyntaxClarificationId' );
 
-               if ( array_key_exists( $syntaxClarificationId, 
$constraintParameters ) ) {
-                       $languageCodes = $language->getFallbackLanguages();
-                       array_unshift( $languageCodes, $language->getCode() );
-
-                       $syntaxClarifications = 
$this->parseMultilingualTextParameter(
-                               $constraintParameters[$syntaxClarificationId],
-                               $syntaxClarificationId
-                       );
-
-                       foreach ( $languageCodes as $languageCode ) {
-                               if ( array_key_exists( $languageCode, 
$syntaxClarifications ) ) {
-                                       return 
$syntaxClarifications[$languageCode];
-                               }
-                       }
-
-                       return null;
-               } else {
+               if ( !array_key_exists( $syntaxClarificationId, 
$constraintParameters ) ) {
                        return null;
                }
+
+               $languageCodes = $language->getFallbackLanguages();
+               array_unshift( $languageCodes, $language->getCode() );
+
+               $syntaxClarifications = $this->parseMultilingualTextParameter(
+                       $constraintParameters[$syntaxClarificationId],
+                       $syntaxClarificationId
+               );
+
+               foreach ( $languageCodes as $languageCode ) {
+                       if ( array_key_exists( $languageCode, 
$syntaxClarifications ) ) {
+                               return $syntaxClarifications[$languageCode];
+                       }
+               }
+
+               return null;
        }
 
 }
diff --git a/extensions/Constraints/tests/phpunit/Api/CheckConstraintsTest.php 
b/extensions/Constraints/tests/phpunit/Api/CheckConstraintsTest.php
index ac8b104..8a97293 100644
--- a/extensions/Constraints/tests/phpunit/Api/CheckConstraintsTest.php
+++ b/extensions/Constraints/tests/phpunit/Api/CheckConstraintsTest.php
@@ -13,7 +13,6 @@
 use Wikibase\DataModel\Entity\ItemIdParser;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Services\Lookup\InMemoryEntityLookup;
-use Wikibase\DataModel\Services\Statement\StatementGuidParser;
 use Wikibase\DataModel\Services\Statement\StatementGuidValidator;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Statement\Statement;
@@ -135,7 +134,7 @@
                                '',
                                $entityIdParser,
                                new StatementGuidValidator( $entityIdParser ),
-                               new StatementGuidParser( $entityIdParser ),
+                               $repo->getStatementGuidParser(),
                                $constraintChecker,
                                $constraintParameterRenderer,
                                $repo->getApiHelperFactory( 
RequestContext::getMain() ),
@@ -239,11 +238,11 @@
        }
 
        private function givenPropertyHasViolation( PropertyId $propertyId ) {
-               self::$checkerMap['violationConstraint'] = new FakeChecker( 
CheckResult::STATUS_VIOLATION );
+               self::$checkerMap['Q1234'] = new FakeChecker( 
CheckResult::STATUS_VIOLATION );
                self::$constraintLookupContents[] = new Constraint(
-                       'some guid',
+                       'P1234$6a4d1930-922b-4c2e-b6e1-9a06bf04c2f8',
                        $propertyId,
-                       'violationConstraint',
+                       'Q1234',
                        []
                );
        }
diff --git a/extensions/Wikibase/client/i18n/fa.json 
b/extensions/Wikibase/client/i18n/fa.json
index 9122e29..46e8fa2 100644
--- a/extensions/Wikibase/client/i18n/fa.json
+++ b/extensions/Wikibase/client/i18n/fa.json
@@ -115,7 +115,8 @@
        "wikibase-otherprojects": "در دیگر پروژه‌ها",
        "wikibase-otherprojects-beta-message": "نوار کناری سایر پروژه‌ها",
        "wikibase-otherprojects-beta-description": "یک قسمت 
«{{int:wikibase-otherprojects}}» به نوار کناری می‌افزاید که پیوندهایی به دیگر 
پروژه‌های ویکی‌مدیا واقع‌شده در داده‌های {{WBREPONAME}} می‌دهد.",
-       "echo-category-title-wikibase-action": "تماس با {{WBREPONAME}}",
+       "echo-category-title-wikibase-action": "{{PLURAL:$1|اتصال|اتصال}} با 
{{WBREPONAME}}",
+       "echo-pref-tooltip-wikibase-action": "هنگامی که صفحه‌ای که 
{{GENDER:|ساخته‌ام}} به یک آیتم {{WBREPONAME}} وصل شد، من را خبر کن.",
        "notification-header-page-connection": "صفحه <strong>$3</strong> به یک 
آیتم در {{WBREPONAME}} {{GENDER:$2|متصل شد}}.",
        "notification-link-text-view-item": "{{GENDER:$1|نمایش}} آیتم",
        "notification-subject-page-connection": "صفحه‌ای در {{SITENAME}} که شما 
{{GENDER:$3|ایجاد کردید}} به آیتم {{WBREPONAME}} {{GENDER:$2|متصل بود}}",
diff --git a/extensions/Wikibase/lib/i18n/tay.json 
b/extensions/Wikibase/lib/i18n/tay.json
index 0551b78..b28bdd3 100644
--- a/extensions/Wikibase/lib/i18n/tay.json
+++ b/extensions/Wikibase/lib/i18n/tay.json
@@ -1,8 +1,11 @@
 {
        "@metadata": {
                "authors": [
-                       "Akamycoco"
+                       "Akamycoco",
+                       "Translatealcd"
                ]
        },
-       "wikibase-sitelinks-wikipedia": "Wikipidia"
+       "wikibase-globedetails-longitude": "Cingtu’",
+       "wikibase-sitelinks-wikipedia": "Wikipidia",
+       "datatypes-type-wikibase-item": "Binkgan lmlamu’"
 }
diff --git a/extensions/Wikibase/repo/i18n/ast.json 
b/extensions/Wikibase/repo/i18n/ast.json
index 09ea881..dcec3a4 100644
--- a/extensions/Wikibase/repo/i18n/ast.json
+++ b/extensions/Wikibase/repo/i18n/ast.json
@@ -305,6 +305,7 @@
        "wikibase-api-unresolved-redirect": "La ID d'entidá proporcionada 
refierse a una redireición, lo que nun tien sofitu nesti contestu.",
        "wikibase-api-illegal-entity-remove": "Les entidaes nun pueden 
desaniciase dando una clave <var>remove</var> de nivel superior.",
        "wikibase-api-illegal-id-or-site-page-selector": "Tienes de dar o un 
<var>id</var> d'entidá, o una combinación de <var>site</var> y <var>page</var>, 
pero non les dos.",
+       "wikibase-api-illegal-ids-or-sites-titles-selector": "Tienes de dar o 
los «id» del elementu o pares de «sitios» y «títulos» pa la páxina 
correspondientes",
        "wikibase-api-no-such-entity": "Nun s'alcontró nenguna entidá con ID 
«$1».",
        "wikibase-api-no-such-sitelink": "Nun pudo alcontrase l'enllaz a «$1» 
al intentar editar insinies.",
        "wikibase-api-not-recognized-datatype": "Esperábase un tipu de datu, 
pero falta o nun se reconoció.",
diff --git a/extensions/Wikibase/repo/i18n/be-tarask.json 
b/extensions/Wikibase/repo/i18n/be-tarask.json
index d4a1601..49ce0f1 100644
--- a/extensions/Wikibase/repo/i18n/be-tarask.json
+++ b/extensions/Wikibase/repo/i18n/be-tarask.json
@@ -21,7 +21,7 @@
        "wikibase-addreference": "дадаць зноску",
        "wikibase-save-inprogress": "Захаваньне…",
        "wikibase-remove-inprogress": "Выдаленьне…",
-       "wikibase-statementlistview-add": "дадаць",
+       "wikibase-statementlistview-add": "дадаць значэньне",
        "wikibase-statementgrouplistview-add": "дадаць",
        "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": "На 
іншых мовах",
        
"wikibase-entitytermsview-entitytermsforlanguagelistview-configure-link-label": 
"Наладзіць",
@@ -77,7 +77,6 @@
        "wikibase-undo-badpage": "Благая вэрсія: вэрсія $2 не належыць да 
[[$1]].",
        "wikibase-undo-firstrev": "Скасаваньне стварэньня старонкі немагчымае",
        "wikibase-undo-nocontent": "Немагчыма загрузіць зьмест вэрсіі $2 
старонкі $1",
-       "wikibase-propertyedittool-counter-pending-tooltip": "{{PLURAL:$1|Адно 
значэньне яшчэ не захаванае|$1 значэньні яшчэ не захаваныя|$1 значэньняў яшчэ 
не захавана}}",
        "wikibase-disambiguation-title": "Неадназначнасьць для «$1»",
        "wb-special-newitem-new-item-notification": "Новы прадмет «$1» створаны 
і перанакіроўвае на ўласную старонку. Вярнуцца — $2.",
        "wikibase-aliases-input-help-message": "Каб гэтую сутнасьць лягчэй было 
знайсьці, Вы можаце ўвесьці тут яе сынонімы.",
@@ -89,7 +88,6 @@
        "wikibase-statementview-rank-normal": "Звычайны ранг",
        "wikibase-statementview-rank-deprecated": "Састарэлы ранг",
        "wikibase-statementview-references-counter": 
"$1{{PLURAL:$2|0=|$3+$2$4}} {{PLURAL:$1|крыніца|крыніцы|крыніцаў}}",
-       "wikibase-statementview-referencesheading-pendingcountertooltip": 
"{{PLURAL:$1|$1 зноска яшчэ не захаваная|$1 зноскі яшчэ не захаваныя|$1 зносак 
яшчэ не захаваныя}}",
        "wikibase-snakview-property-input-placeholder": "уласьцівасьць",
        "wikibase-snakview-unsupportedsnaktype": "Злучнік тыпу «$1». Апрацоўка 
падобнага злучніка яшчэ не падтрымліваецца.",
        "wikibase-snakview-choosesnaktype": "Выберыце тып значэньня.",
@@ -191,7 +189,6 @@
        "wikibase-entitieswithoutlabel-legend": "Атрымасьць сьпіс аб’ектаў бязь 
метак",
        "wikibase-entitieswithoutlabel-label-language": "Код мовы:",
        "wikibase-entitieswithoutlabel-label-type": "Тып:",
-       "wikibase-entitieswithoutlabel-label-alltypes": "усе",
        "wikibase-entitieswithoutlabel-submit": "Знайсьці",
        "wikibase-entitieswithoutlabel-invalid-language": "«$1» — няслушны код 
мовы.",
        "wikibase-entitieswithoutlabel-invalid-type": "«$1» ня ёсьць слушным 
тыпам аб’екта.",
diff --git a/extensions/Wikibase/repo/i18n/hu.json 
b/extensions/Wikibase/repo/i18n/hu.json
index c778939..27b4914 100644
--- a/extensions/Wikibase/repo/i18n/hu.json
+++ b/extensions/Wikibase/repo/i18n/hu.json
@@ -27,9 +27,9 @@
        "wikibase-addreference": "forrás hozzáadása",
        "wikibase-save-inprogress": "Mentés…",
        "wikibase-remove-inprogress": "Törlés...",
-       "wikibase-statementlistview-add": "hozzáadás",
+       "wikibase-statementlistview-add": "érték hozzáadása",
        "wikibase-statementlistview-add-tooltip": "Új érték hozzáadása",
-       "wikibase-statementgrouplistview-add": "hozzáadás",
+       "wikibase-statementgrouplistview-add": "állítás hozzáadása",
        "wikibase-statementgrouplistview-add-tooltip": "Új állítás hozzáadása",
        "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": 
"További nyelveken",
        
"wikibase-entitytermsview-entitytermsforlanguagelistview-configure-link-label": 
"Konfigurálás",
@@ -70,7 +70,7 @@
        "wikibase-entitytermsview-input-help-message": "Írj be egy címkét, 
rövid leírást és más neveket nyelvenként ehhez az elemhez.",
        "wikibase-statementsection-statements": "Állítások",
        "wikibase-sitelinks": "Ehhez a fogalomhoz kapcsolt lapok listája",
-       "wikibase-sitelinks-counter": "$1{{PLURAL:$2|0=|$3+$2$4}} bejegyzés",
+       "wikibase-sitelinks-counter": "$1 bejegyzés",
        "wikibase-sitelinks-empty": "Ehhez a fogalomhoz nincs kapcsolt lap.",
        "wikibase-sitelinks-special": "Más wikiken",
        "wikibase-remove": "törlés",
@@ -87,7 +87,6 @@
        "wikibase-undo-firstrev": "A lap létrehozását nem lehet visszavonni.",
        "wikibase-undo-nocontent": "Nem sikerült betölteni a(z) „$1” lap $2. 
változatának tartalmát",
        "wikibase-summary-generated": "Összefoglaló (az automatikusan generált 
összefoglalót fogja kiegészíteni):",
-       "wikibase-propertyedittool-counter-pending-tooltip": 
"{{PLURAL:$1|Egy|$1}} érték még nincs elmentve",
        "wikibase-disambiguation-title": "Egyértelműsítés: „$1”",
        "wb-special-newitem-new-item-notification": "Az új elem ($1) létrejött; 
átirányítottuk a böngészőt az elem lapjára. Vissza az $2 lapra.",
        "wikibase-aliases-input-help-message": "Az elem könnyebb megtalálása 
érdekében megadhatsz alternatív neveket is.",
@@ -101,8 +100,7 @@
        "wikibase-statementview-rank-tooltip-normal": "Érvényes, azonban 
esetleg korábbi érték",
        "wikibase-statementview-rank-deprecated": "Elavult rang",
        "wikibase-statementview-rank-tooltip-deprecated": "Tudottan hibás 
érték, azonban (korábban) általánosan elfogadott",
-       "wikibase-statementview-references-counter": 
"$1{{PLURAL:$2|0=|$3+$2$4}} {{PLURAL:$1|hivatkozás|hivatkozás}}",
-       "wikibase-statementview-referencesheading-pendingcountertooltip": "$1 
forráshivatkozás még nincs elmentve",
+       "wikibase-statementview-references-counter": "$1 hivatkozás",
        "wikibase-snakview-property-input-placeholder": "tulajdonság",
        "wikibase-snakview-unsupportedsnaktype": "„$1” típusú snak. Az ilyen 
snakokat jelenleg még nem támogatjuk.",
        "wikibase-snakview-choosesnaktype": "Válassz egy értéktípust.",
@@ -338,7 +336,7 @@
        "apihelp-wbgetentities-param-redirects": "Az átirányítások 
feloldandók-e.\nHa „no”, akkor az átirányításokat törölt lapokként kezeli.",
        "apihelp-wbgetentities-param-languages": "Alapértelmezés szerint minden 
elérhető nyelven visszaadja az értékeket.\nEz a paraméter lehetővé teszi a 
szűrésüket egy vagy több nyelvre a megfelelő nyelvkód(ok) megadásával.",
        "apihelp-wbgetentities-example-10": "Az „<var>enwiki</var>” wiki 
„<var>Berlin</var>” lapjához tartozó elem lekérése angol nyelvi 
tulajdonságokkal",
-       "apihelp-wblinktitles-description": "Két különböző wikin lévő szócikk 
összekapcsolása egy Wikibase-elemmel.",
+       "apihelp-wblinktitles-description": "Két különböző wikin lévő lap 
összekapcsolása egy Wikibase-elemmel.",
        "apihelp-wblinktitles-param-bot": "A szerkesztés botszerkesztésnek 
jelölése. Csak akkor van hatása, ha a felhasználó tagja a „{{int:group-bot}}” 
csoportnak.",
        "apihelp-wblinktitles-example-1": "Egy „Hydrogen” angol lapról kiinduló 
link hozzáadása a „Wasserstoff” német lapra.",
        "apihelp-wbmergeitems-description": "Több elem összevonása.",
@@ -407,10 +405,10 @@
        "apihelp-wbsetreference-param-summary": "A szerkesztési 
összefoglaló.\nElé kerül egy automatikusan generált megjegyzés. Az automatikus 
megjegyzés és az összefoglaló együttes hossza legfeljebb 260 bájt (az ékezetes 
karakterek két bájtot foglalnak el). A limitet túllépő összefoglaló vége le 
lesz vágva.",
        "apihelp-wbsetreference-param-baserevid": "A módosítás alapjául 
szolgáló lapváltozat azonosítója (oldid-je).\nA szerkesztési ütközések 
felismerésére szolgál.",
        "apihelp-wbsetreference-param-bot": "A szerkesztés botszerkesztésnek 
jelölése. Csak akkor van hatása, ha a felhasználó tagja a „{{int:group-bot}}” 
csoportnak.",
-       "apihelp-wbsetsitelink-description": "Egy wikiszócikk társítása egy 
Wikibase-elemmel vagy egy létező társítás eltávolítása.",
+       "apihelp-wbsetsitelink-description": "Egy wikilap társítása egy 
Wikibase-elemmel vagy egy létező társítás eltávolítása.",
        "apihelp-wbsetsitelink-param-baserevid": "A módosítás alapjául szolgáló 
lapváltozat azonosítója (oldid-je).\nA szerkesztési ütközések felismerésére 
szolgál.",
        "apihelp-wbsetsitelink-param-summary": "A szerkesztési 
összefoglaló.\nElé kerül egy automatikusan generált megjegyzés. Az automatikus 
megjegyzés és az összefoglaló együttes hossza legfeljebb 260 bájt (az ékezetes 
karakterek két bájtot foglalnak el). A limitet túllépő összefoglaló vége le 
lesz vágva.",
        "apihelp-wbsetsitelink-param-bot": "A szerkesztés botszerkesztésnek 
jelölése. Csak akkor van hatása, ha a felhasználó tagja a „{{int:group-bot}}” 
csoportnak.",
-       "apihelp-wbsetsitelink-param-linksite": "Az összekapcsolandó cikk 
wikijének azonosítója",
-       "apihelp-wbsetsitelink-param-linktitle": "Az összekapcsolandó cikk 
címe. Ha üres, vagy a <var>linktitle</var> és a <var>badges</var> paraméter is 
hiányzik, a kapcsolat megszüntetése."
+       "apihelp-wbsetsitelink-param-linksite": "Az összekapcsolandó lap 
wikijének azonosítója",
+       "apihelp-wbsetsitelink-param-linktitle": "Az összekapcsolandó lap címe. 
Ha üres, vagy a <var>linktitle</var> és a <var>badges</var> paraméter is 
hiányzik, a kapcsolat megszüntetése."
 }
diff --git a/extensions/Wikibase/repo/i18n/tay.json 
b/extensions/Wikibase/repo/i18n/tay.json
index 34774d6..bbca4bf 100644
--- a/extensions/Wikibase/repo/i18n/tay.json
+++ b/extensions/Wikibase/repo/i18n/tay.json
@@ -6,12 +6,15 @@
                        "Akamycoco"
                ]
        },
+       "wikibase-entity-item": "binkgan lmlamu’",
        "wikibase-edit": "Smr’zyut miru’",
+       "wikibase-save": "cucun",
        "wikibase-add": "tnwang",
        "wikibase-label-empty": "Ini’ srhgiy smi na’ qinlaq lalu’",
        "wikibase-description-empty": "Ini’ naha’ inblayqiy pinqzyu’ smi’ kay’ 
na’",
        "wikibase-sitelinks-special": "Bzinah na wangcan",
        "wikibase-statementview-rank-normal": "Mtnaq kwara’ iyat spzyang krahu’ 
na kinkrahu’ na sinpngan niya’",
        "wikibase-itembytitle-submit": "Hhkangi’",
+       "wikibase-gotolinkedpage-lookup-item": "Binkgan lmlamu’ ID:",
        "wikibase-itemdisambiguation-submit": "Hhkangi’"
 }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index f177162..4d8fdd6 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -125,12 +125,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-ArticlePlaceholder.git";,
-            "reference": "3be2a23579f66dc0ec7ea5ac9109f7f8767347f3"
+            "reference": "3a283d051dff04a580bd6c74a0dbae35593eb733"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/3be2a23579f66dc0ec7ea5ac9109f7f8767347f3";,
-            "reference": "3be2a23579f66dc0ec7ea5ac9109f7f8767347f3",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-ArticlePlaceholder/zipball/3a283d051dff04a580bd6c74a0dbae35593eb733";,
+            "reference": "3a283d051dff04a580bd6c74a0dbae35593eb733",
             "shasum": ""
         },
         "require": {
@@ -141,7 +141,7 @@
             "jakub-onderka/php-parallel-lint": "0.9.2",
             "wikibase/wikibase-codesniffer": "^0.1.0"
         },
-        "time": "2017-08-22 06:35:22",
+        "time": "2017-08-23 06:59:10",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1387,12 +1387,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "c3c3fd17dc8d57e85a57a99698c5e4b3daf2fbc5"
+            "reference": "e162d71a55fe71aa775485af62bbc9f0d4952fe6"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/c3c3fd17dc8d57e85a57a99698c5e4b3daf2fbc5";,
-            "reference": "c3c3fd17dc8d57e85a57a99698c5e4b3daf2fbc5",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e162d71a55fe71aa775485af62bbc9f0d4952fe6";,
+            "reference": "e162d71a55fe71aa775485af62bbc9f0d4952fe6",
             "shasum": ""
         },
         "require": {
@@ -1426,7 +1426,7 @@
             "jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
             "wikibase/wikibase-codesniffer": "^0.1.0"
         },
-        "time": "2017-08-22 07:26:04",
+        "time": "2017-08-23 07:44:57",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1776,7 +1776,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints";,
-            "reference": "8bd6518a9c8797bd1b1bccff4f79f9939f314c7a"
+            "reference": "e64a5b34579b6fb575f5617a654299f6d47a950c"
         },
         "require": {
             "php": ">=5.5.9",
@@ -1792,7 +1792,7 @@
             "satooshi/php-coveralls": "master-dev",
             "wikibase/wikibase-codesniffer": "^0.1.0"
         },
-        "time": "2017-08-03 16:09:11",
+        "time": "2017-08-23 08:58:25",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {

-- 
To view, visit https://gerrit.wikimedia.org/r/373257
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3b427e2571deb04a158406bac61ec38854ed06ba
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to