WikidataBuilder has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/323682

Change subject: New Wikidata Build - 2016-11-27T10:00:01+0000
......................................................................

New Wikidata Build - 2016-11-27T10:00:01+0000

Change-Id: I25eb68b0f222c9f0b02b7579362c8153345d202c
---
M composer.lock
M extensions/ExternalValidation/i18n/pt.json
M extensions/MediaInfo/i18n/pt.json
M extensions/Wikibase/client/includes/Store/Sql/DirectSqlStore.php
M extensions/Wikibase/client/includes/WikibaseClient.php
M extensions/Wikibase/client/tests/phpunit/includes/Api/PageTermsTest.php
M 
extensions/Wikibase/client/tests/phpunit/includes/Store/Sql/DirectSqlStoreTest.php
M extensions/Wikibase/lib/i18n/nb.json
M extensions/Wikibase/lib/i18n/sv.json
M extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php
M extensions/Wikibase/lib/includes/TermIndexEntry.php
M 
extensions/Wikibase/lib/tests/phpunit/Interactors/TermIndexSearchInteractorTest.php
M extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
M extensions/Wikibase/lib/tests/phpunit/Store/BufferingTermLookupTest.php
M extensions/Wikibase/lib/tests/phpunit/Store/EntityTermLookupTest.php
M 
extensions/Wikibase/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php
M extensions/Wikibase/lib/tests/phpunit/Store/Sql/TermSqlIndexTest.php
M extensions/Wikibase/lib/tests/phpunit/Store/TermPropertyLabelResolverTest.php
M extensions/Wikibase/lib/tests/phpunit/TermIndexEntryTest.php
M extensions/Wikibase/repo/i18n/be-tarask.json
M extensions/Wikibase/repo/i18n/eu.json
M extensions/Wikibase/repo/i18n/fr.json
M extensions/Wikibase/repo/i18n/gl.json
M extensions/Wikibase/repo/i18n/he.json
M extensions/Wikibase/repo/i18n/it.json
M extensions/Wikibase/repo/i18n/pt.json
M extensions/Wikibase/repo/i18n/uk.json
M extensions/Wikibase/repo/i18n/zh-hans.json
M extensions/Wikibase/repo/includes/Store/Sql/SqlStore.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/LabelDescriptionDuplicateDetectorTest.php
M vendor/composer/installed.json
31 files changed, 337 insertions(+), 244 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata 
refs/changes/82/323682/1

diff --git a/composer.lock b/composer.lock
index b0772a6..95699ad 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1267,7 +1267,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityExternalValidation";,
-                "reference": "10ce1f4549dc3bcaae7ec8cb1af6fc22f535514f"
+                "reference": "76a3c709d986ceebda6391dc1be38cf915d5e8a9"
             },
             "require": {
                 "data-values/common": ">=0.1 <0.4",
@@ -1319,7 +1319,7 @@
             "support": {
                 "issues": 
"https://phabricator.wikimedia.org/project/profile/1203/";
             },
-            "time": "2016-11-21 15:55:42"
+            "time": "2016-11-25 21:56:38"
         },
         {
             "name": "wikibase/internal-serialization",
@@ -1436,7 +1436,7 @@
             "source": {
                 "type": "git",
                 "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo";,
-                "reference": "90b82546ca3971d79fa24b21a641747cb82ec469"
+                "reference": "467cbdc87e6e25db5a7cee8a43e8a53ef6bb36db"
             },
             "require": {
                 "php": ">=5.5.0",
@@ -1482,7 +1482,7 @@
                 "issues": "https://phabricator.wikimedia.org/";,
                 "irc": "irc://irc.freenode.net/wikidata"
             },
-            "time": "2016-10-25 12:33:42"
+            "time": "2016-11-25 21:56:28"
         },
         {
             "name": "wikibase/quality",
@@ -1585,12 +1585,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "bec3312b78e3fac35c01486875ae3c78c468d1d5"
+                "reference": "3469b1112cbb0a2fcc8f64a79b035b7394a77aec"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/bec3312b78e3fac35c01486875ae3c78c468d1d5";,
-                "reference": "bec3312b78e3fac35c01486875ae3c78c468d1d5",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/3469b1112cbb0a2fcc8f64a79b035b7394a77aec";,
+                "reference": "3469b1112cbb0a2fcc8f64a79b035b7394a77aec",
                 "shasum": ""
             },
             "require": {
@@ -1664,7 +1664,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2016-11-25 08:08:36"
+            "time": "2016-11-25 21:56:03"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/ExternalValidation/i18n/pt.json 
b/extensions/ExternalValidation/i18n/pt.json
index 1e81a08..599a6a3 100644
--- a/extensions/ExternalValidation/i18n/pt.json
+++ b/extensions/ExternalValidation/i18n/pt.json
@@ -6,27 +6,53 @@
                        "Hamilton Abreu"
                ]
        },
-       "wbqev-crosscheck-explanation-general": "Esta página especial executa 
verificações cruzadas entre os elementos no Wikidata e bases de dados externas. 
Pode verificar as bases de dados que utilizamos na página especial.",
-       "wbqev-crosscheck-form-entityid-label": "ID do item:",
+       "wbqev-desc": "Verificação cruzada de dados com a informação 
correspondente em bases de dados externas",
+       "wbqev-crosscheck": "Verificação cruzada com bases de dados externas",
+       "wbqev-crosscheck-explanation-general": "Esta página especial executa 
verificações cruzadas entre objetos Wikidata e bases de dados externas. Pode 
verificar as bases de dados que utilizamos na página especial.",
+       "wbqev-crosscheck-explanation-detail": "Para rever um objeto, introduza 
o seu identificador. Os valores de cada propriedade verificável são comparados 
com o valor na base de dados e o resultado é apresentado aqui. Adicionalmente, 
verificamos se existem referências em falta ou se estas podem ser adicionadas 
na forma da base de dados que afirma o mesmo facto.",
+       "wbqev-crosscheck-form-section": "Verificação cruzada de objeto",
+       "wbqev-crosscheck-form-entityid-label": "Identificador do objeto:",
        "wbqev-crosscheck-form-submit-label": "Verificar",
-       "wbqev-crosscheck-not-existent-entity": "Entidade inexistente!",
+       "wbqev-crosscheck-invalid-entity-id": "O identificador da entidade é 
inválido!",
+       "wbqev-crosscheck-not-existent-entity": "A entidade não existe!",
        "wbqev-crosscheck-result-headline": "Resultado para",
+       "wbqev-crosscheck-empty-result": "A entidade introduzida não tem 
declarações que possam ser submetidas a verificação cruzada com nenhuma base de 
dados suportada.",
        "wbqev-crosscheck-result-table-header-references": "Referências",
+       "wbqev-crosscheck-result-table-header-local-value": "Valor Wikidata",
        "wbqev-crosscheck-result-table-header-external-value": "Valores 
externos",
+       "wbqev-crosscheck-result-table-header-external-source": "Fonte externa",
        "wbqev-crosscheck-result-table-header-status": "Estado",
        "wbqev-crosscheck-status-match": "Correspondência",
-       "wbqev-crosscheck-status-partial-match": "Potencial correspondência",
+       "wbqev-crosscheck-status-partial-match": "Possível correspondência",
+       "wbqev-crosscheck-status-mismatch": "Discordância",
        "wbqev-crosscheck-status-references-missing": "em falta",
+       "wbqev-crosscheck-status-references-stated": "declarada",
        "wbqev-externaldbs": "Lista de bases de dados externas",
+       "wbqev-externaldbs-instructions": "Todas as bases de dados que são 
suportadas para verificação cruzada contra entidades Wikidata estão listadas 
abaixo.",
        "wbqev-externaldbs-overview-headline": "Bases de dados",
        "wbqev-externaldbs-name": "Nome",
-       "wbqev-externaldbs-id": "ID",
+       "wbqev-externaldbs-id": "Identificador",
+       "wbqev-externaldbs-import-date": "Data de importação",
+       "wbqev-externaldbs-language": "Língua dos dados",
+       "wbqev-externaldbs-source-urls": "Os URL fonte",
        "wbqev-externaldbs-size": "Tamanho",
        "wbqev-externaldbs-license": "Licença",
+       "wbqev-externaldbs-no-databases": "Não existem bases de dados 
disponíveis para verificação cruzada.",
+       "apihelp-wbqevcrosscheck-description": "Módulo API para verificação 
cruzada de entidades Wikibase contra dados externos.",
+       "apihelp-wbqevcrosscheck-param-entities": "Os identificadores das 
entidades que devem ser submetidas a verificação cruzada. Obrigatório, a menos 
que sejam fornecidas alegações.",
+       "apihelp-wbqevcrosscheck-param-properties": "Filtro opcional para fazer 
a verificação cruzada só das declarações com os identificadores de propriedade 
fornecidos. Isto só funciona se forem fornecidas entidades.",
+       "apihelp-wbqevcrosscheck-param-claims": "Os identificadores das 
alegações que devem ser submetidas a verificação cruzada. Obrigatório, a menos 
que sejam fornecidas entidades.",
+       "apihelp-wbqevcrosscheck-examples-1": "Realizar a verificação cruzada 
de todas as declarações do objeto com o identificador Q76.",
+       "apihelp-wbqevcrosscheck-examples-2": "Realizar a verificação cruzada 
de todas as declarações do objeto com o identificador Q76 e do objeto com o 
identificador Q567.",
+       "apihelp-wbqevcrosscheck-examples-3": "Realizar a verificação cruzada 
de todas as declarações do objeto com o identificador Q76 e do objeto com o 
identificador Q567 que usa a propriedade com o identificador P19.",
+       "apihelp-wbqevcrosscheck-examples-4": "Realizar a verificação cruzada 
de todas as declarações do objeto com o identificador Q76 e do objeto com o 
identificador Q567 que usa a propriedade com o identificador P19 ou P31.",
+       "apihelp-wbqevcrosscheck-examples-5": "Realizar a verificação cruzada 
da alegação com o identificador global único (GUID) 
Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F.",
        "wbq-subextension-name-wbqev": "Validação externa",
+       "wbqev-violation-header-external-source": "Fonte externa:",
+       "wbqev-violation-header-local-value": "Valor Wikidata:",
        "wbqev-violation-header-external-values": "Valores externos:",
        "wbqev-violation-short-message": "Este valor não coincide com um valor 
em $1. Por favor, clique o ícone para mais informação.",
-       "wbqev-violation-long-message-external-values": "{{PLURAL:$2|O valor 
definido|Os valores definidos}} na fonte externa {{PLURAL:$2|é|são}} $1.",
-       "wbqev-violation-long-message-solve-issue": "Para resolver este 
problema, por favor, verifique atentamente qual o valor correto e adicione uma 
referência.",
+       "wbqev-violation-long-message-external-values": "{{PLURAL:$2|O valor 
declarado|Os valores declarados}} na fonte externa {{PLURAL:$2|é|são}} $1.",
+       "wbqev-violation-long-message-solve-issue": "Para resolver este 
problema, por favor, verifique atentamente qual é o valor correto e adicione 
uma referência.",
        "wbqev-violation-mark-as-exception": "Marcar como exceção"
 }
diff --git a/extensions/MediaInfo/i18n/pt.json 
b/extensions/MediaInfo/i18n/pt.json
index 300c573..54802fd 100644
--- a/extensions/MediaInfo/i18n/pt.json
+++ b/extensions/MediaInfo/i18n/pt.json
@@ -1,8 +1,10 @@
 {
        "@metadata": {
                "authors": [
-                       "Vitorvicentevalente"
+                       "Vitorvicentevalente",
+                       "Hamilton Abreu"
                ]
        },
-       "wikibase-entity-mediainfo": "informação multimédia"
+       "wikibase-entity-mediainfo": "informação multimédia",
+       "wikibasemediainfo-desc": "Extensão Wikibase para gerir metadados 
estruturados de ficheiros multimédia"
 }
diff --git a/extensions/Wikibase/client/includes/Store/Sql/DirectSqlStore.php 
b/extensions/Wikibase/client/includes/Store/Sql/DirectSqlStore.php
index 2cfde46..922e232 100644
--- a/extensions/Wikibase/client/includes/Store/Sql/DirectSqlStore.php
+++ b/extensions/Wikibase/client/includes/Store/Sql/DirectSqlStore.php
@@ -19,6 +19,7 @@
 use Wikibase\DataModel\Services\Lookup\RedirectResolvingEntityLookup;
 use Wikibase\DataModel\Services\Term\PropertyLabelResolver;
 use Wikibase\Lib\Changes\EntityChangeFactory;
+use Wikibase\Lib\EntityIdComposer;
 use Wikibase\Lib\Store\CachingEntityRevisionLookup;
 use Wikibase\Lib\Store\CachingSiteLinkLookup;
 use Wikibase\Lib\Store\EntityChangeLookup;
@@ -59,6 +60,11 @@
         * @var EntityIdParser
         */
        private $entityIdParser;
+
+       /**
+        * @var EntityIdComposer
+        */
+       private $entityIdComposer;
 
        /**
         * @var string|bool The symbolic database name of the repo wiki or 
false for the local wiki.
@@ -159,6 +165,7 @@
         * @param EntityChangeFactory $entityChangeFactory
         * @param EntityContentDataCodec $contentCodec
         * @param EntityIdParser $entityIdParser
+        * @param EntityIdComposer $entityIdComposer
         * @param EntityNamespaceLookup $entityNamespaceLookup
         * @param string|bool $repoWiki The symbolic database name of the repo 
wiki or false for the
         * local wiki.
@@ -168,6 +175,7 @@
                EntityChangeFactory $entityChangeFactory,
                EntityContentDataCodec $contentCodec,
                EntityIdParser $entityIdParser,
+               EntityIdComposer $entityIdComposer,
                EntityNamespaceLookup $entityNamespaceLookup,
                $repoWiki = false,
                $languageCode
@@ -175,6 +183,7 @@
                $this->contentCodec = $contentCodec;
                $this->entityChangeFactory = $entityChangeFactory;
                $this->entityIdParser = $entityIdParser;
+               $this->entityIdComposer = $entityIdComposer;
                $this->entityNamespaceLookup = $entityNamespaceLookup;
                $this->repoWiki = $repoWiki;
                $this->languageCode = $languageCode;
@@ -352,7 +361,7 @@
                if ( $this->termIndex === null ) {
                        // TODO: Get StringNormalizer from WikibaseClient?
                        // Can't really pass this via the constructor...
-                       $this->termIndex = new TermSqlIndex( new 
StringNormalizer(), $this->repoWiki );
+                       $this->termIndex = new TermSqlIndex( new 
StringNormalizer(), $this->entityIdComposer, $this->repoWiki );
                }
 
                return $this->termIndex;
diff --git a/extensions/Wikibase/client/includes/WikibaseClient.php 
b/extensions/Wikibase/client/includes/WikibaseClient.php
index cd95980..9f0a255 100644
--- a/extensions/Wikibase/client/includes/WikibaseClient.php
+++ b/extensions/Wikibase/client/includes/WikibaseClient.php
@@ -511,6 +511,7 @@
                                $this->getEntityChangeFactory(),
                                $this->getEntityContentDataCodec(),
                                $this->getEntityIdParser(),
+                               $this->getEntityIdComposer(),
                                $this->getEntityNamespaceLookup(),
                                $repoDatabase,
                                $this->contentLanguage->getCode()
diff --git 
a/extensions/Wikibase/client/tests/phpunit/includes/Api/PageTermsTest.php 
b/extensions/Wikibase/client/tests/phpunit/includes/Api/PageTermsTest.php
index ecddfce..e61ae2a 100644
--- a/extensions/Wikibase/client/tests/phpunit/includes/Api/PageTermsTest.php
+++ b/extensions/Wikibase/client/tests/phpunit/includes/Api/PageTermsTest.php
@@ -184,7 +184,7 @@
                                        'termLanguage' => $lang,
                                        'termText' => $text,
                                        'entityType' => 
$entityId->getEntityType(),
-                                       'entityId' => $entityId->getNumericId()
+                                       'entityId' => $entityId
                                ) );
                        }
                }
diff --git 
a/extensions/Wikibase/client/tests/phpunit/includes/Store/Sql/DirectSqlStoreTest.php
 
b/extensions/Wikibase/client/tests/phpunit/includes/Store/Sql/DirectSqlStoreTest.php
index c13f1d6..a9d5f5c 100644
--- 
a/extensions/Wikibase/client/tests/phpunit/includes/Store/Sql/DirectSqlStoreTest.php
+++ 
b/extensions/Wikibase/client/tests/phpunit/includes/Store/Sql/DirectSqlStoreTest.php
@@ -13,6 +13,7 @@
 use Wikibase\DataModel\Services\Term\PropertyLabelResolver;
 use Wikibase\DirectSqlStore;
 use Wikibase\Lib\Changes\EntityChangeFactory;
+use Wikibase\Lib\EntityIdComposer;
 use Wikibase\Lib\Store\EntityChangeLookup;
 use Wikibase\Lib\Store\EntityNamespaceLookup;
 use Wikibase\Lib\Store\SiteLinkLookup;
@@ -40,6 +41,7 @@
                        ->getMock();
 
                $idParser = new BasicEntityIdParser();
+               $idComposer = new EntityIdComposer( [] );
 
                $contentCodec = 
WikibaseClient::getDefaultInstance()->getEntityContentDataCodec();
 
@@ -49,6 +51,7 @@
                        $entityChangeFactory,
                        $contentCodec,
                        $idParser,
+                       $idComposer,
                        $entityNamespaceLookup,
                        wfWikiID(),
                        'en'
diff --git a/extensions/Wikibase/lib/i18n/nb.json 
b/extensions/Wikibase/lib/i18n/nb.json
index ff4bb38..cb4b8d0 100644
--- a/extensions/Wikibase/lib/i18n/nb.json
+++ b/extensions/Wikibase/lib/i18n/nb.json
@@ -5,7 +5,8 @@
                        "Event",
                        "Jeblad",
                        "Macofe",
-                       "Cocu"
+                       "Cocu",
+                       "Jon Harald Søby"
                ]
        },
        "wikibase-lib-desc": "Felles funksjonalitet for Wikibase, det 
strukturerte datalageret",
@@ -14,16 +15,16 @@
        "wikibase-deletedentity-property": "Slettet egenskap",
        "wikibase-deletedentity-query": "Slettet spørring",
        "wikibase-error-unexpected": "Feil: $1.",
-       "wikibase-error-save-generic": "Det oppsto en feil under lagring. 
Endringene dine kunne ikke gjennomføres.",
-       "wikibase-error-remove-generic": "Det oppsto en feil under forsøket på 
fjerning. Endringene dine kunne ikke gjennomføres.",
-       "wikibase-error-save-connection": "Det oppsto en tilkoblingsfeil under 
lagringen. Endringene dine kunne ikke gjennomføres. Sjekk internettilkoblingen 
din.",
-       "wikibase-error-remove-connection": "Det oppsto en tilkoblingsfeil 
under fjerningen. Endringene dine kunne ikke gjennomføres. Sjekk 
internettilkoblingen din.",
-       "wikibase-error-save-timeout": "Vi har tekniske problemer. Din 
«lagre»-operasjon kunne ikke gjennomføres.",
-       "wikibase-error-remove-timeout": "Vi har tekniske problemer. Din 
«fjerne»-operasjon kunne ikke gjennomføres.",
+       "wikibase-error-save-generic": "Kunne ikke lagre på grunn av en feil.",
+       "wikibase-error-remove-generic": "Kunne ikke fjerne på grunn av en 
feil.",
+       "wikibase-error-save-connection": "Kunne ikke lagre på grunn av 
tilkoblingsfeil. Sjekk internettforbindelsen din.",
+       "wikibase-error-remove-connection": "Kunne ikke fjerne på grunn av en 
tilkoblingsfeil. Sjekk internettforbindelsen din.",
+       "wikibase-error-save-timeout": "Vi har tekniske problemer. Prøv igjen.",
+       "wikibase-error-remove-timeout": "Vi har tekniske problemer. Prøv 
igjen.",
        "wikibase-error-autocomplete-connection": "Kunne ikke spørre mot 
nettstedets API. Prøv igjen senere.",
        "wikibase-error-autocomplete-response": "Tjeneren svarte: $1",
-       "wikibase-error-ui-no-external-page": "Den angitte artikkelen ble ikke 
funnet på det tilhørende nettstedet.",
-       "wikibase-error-ui-edit-conflict": "En redigeringskollisjon oppsto. 
Kopier endringene dine, last siden på nytt, og lim inn og lagre endringene på 
nytt.",
+       "wikibase-error-ui-no-external-page": "Siden «$2» ble ikke funnet på 
«$1».",
+       "wikibase-error-ui-edit-conflict": "Samme verdi ble redigert i 
mellomtiden, så en redigeringskonflikt oppsto. Oppdater siden.",
        "wikibase-language-fallback-transliteration-hint": "$1 
(translitterert)",
        "wikibase-quantitydetails-amount": "Mengde",
        "wikibase-quantitydetails-upperbound": "Øvre grense",
@@ -67,8 +68,9 @@
        "wikibase-validator-bad-value": "Dataverdien er korrupt: $1",
        "wikibase-validator-bad-value-type": "Feil verditype $1, forventet $2",
        "wikibase-validator-bad-data-type": "Ugyldig datatype: $1",
-       "wikibase-validator-bad-url": "Feilformatert URL: $1",
-       "wikibase-validator-bad-url-scheme": "Ustøttet URL-skjema: $1",
+       "wikibase-validator-bad-url": "URL-er kan ikke inneholde visse tegn som 
mellomrom eller klammeparenteser: $1",
+       "wikibase-validator-url-scheme-missing": "URL-en har ikke en protokoll 
som «https://»: $1",
+       "wikibase-validator-bad-url-scheme": "URL-protokollen «$1» støttes 
ikke.",
        "wikibase-validator-unknown-unit": "Ukjent enhet: $1",
        "wikibase-validator-not-allowed": "Ulovlig verdi: $1",
        "wikibase-validator-no-validators": "Forbudt",
diff --git a/extensions/Wikibase/lib/i18n/sv.json 
b/extensions/Wikibase/lib/i18n/sv.json
index ffe497d..6409eb2 100644
--- a/extensions/Wikibase/lib/i18n/sv.json
+++ b/extensions/Wikibase/lib/i18n/sv.json
@@ -23,7 +23,7 @@
        "wikibase-error-autocomplete-connection": "Kunde inte fråga 
webbplatsens API. Försök igen senare.",
        "wikibase-error-autocomplete-response": "Servern svarade: $1",
        "wikibase-error-ui-no-external-page": "En sida \"$2\" kunde inte hittas 
på \"$1\".",
-       "wikibase-error-ui-edit-conflict": "Det finns en redigeringskonflikt. 
Vänligen spara dina ändringar lokalt, ladda om och spara igen.",
+       "wikibase-error-ui-edit-conflict": "Samma värde redigerades under tiden 
och orsakade en redigeringskonflikt. Vänligen ladda om sidan.",
        "wikibase-language-fallback-transliteration-hint": "$1 
(translittererad)",
        "wikibase-quantitydetails-amount": "Mängd",
        "wikibase-quantitydetails-upperbound": "Övre gräns",
diff --git a/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php 
b/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php
index 0585b56..3b996b5 100644
--- a/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php
+++ b/extensions/Wikibase/lib/includes/Store/Sql/TermSqlIndex.php
@@ -16,6 +16,7 @@
 use Wikibase\DataModel\Term\DescriptionsProvider;
 use Wikibase\DataModel\Term\LabelsProvider;
 use Wikibase\DataModel\Term\TermList;
+use Wikibase\Lib\EntityIdComposer;
 use Wikibase\Lib\Store\LabelConflictFinder;
 
 /**
@@ -43,6 +44,11 @@
        private $stringNormalizer;
 
        /**
+        * @var EntityIdComposer
+        */
+       private $entityIdComposer;
+
+       /**
         * @var int
         */
        private $maxConflicts = 500;
@@ -61,14 +67,16 @@
        );
 
        /**
-        * @since    0.4
+        * @since 0.4
         *
         * @param StringNormalizer $stringNormalizer
-        * @param string|bool      $wikiDb
+        * @param EntityIdComposer $entityIdComposer
+        * @param string|bool $wikiDb
         */
-       public function __construct( StringNormalizer $stringNormalizer, 
$wikiDb = false ) {
+       public function __construct( StringNormalizer $stringNormalizer, 
EntityIdComposer $entityIdComposer, $wikiDb = false ) {
                parent::__construct( $wikiDb );
                $this->stringNormalizer = $stringNormalizer;
+               $this->entityIdComposer = $entityIdComposer;
                $this->tableName = 'wb_terms';
        }
 
@@ -183,7 +191,7 @@
                $terms = [];
                $extraFields = [
                        'entityType' => $entity->getType(),
-                       'entityId' => $id->getNumericId(),
+                       'entityId' => $id,
                ];
 
                if ( $entity instanceof DescriptionsProvider ) {
@@ -766,7 +774,7 @@
                                }
 
                                if ( $key === 'term_entity_id' ) {
-                                       $value = (int)$value;
+                                       $value = $this->getEntityId( 
$obtainedTerm );
                                }
 
                                $matchingTerm[$this->termFieldMap[$key]] = 
$value;
@@ -779,6 +787,17 @@
        }
 
        /**
+        * @param object $termRow
+        * @return EntityId|null
+        */
+       private function getEntityId( $termRow ) {
+               if ( !isset( $termRow->term_entity_type ) || !isset( 
$termRow->term_entity_id ) ) {
+                       return null;
+               }
+               return $this->entityIdComposer->composeEntityId( 
$termRow->term_entity_type, $termRow->term_entity_id );
+       }
+
+       /**
         * @see TermIndex::clear
         *
         * @since 0.2
diff --git a/extensions/Wikibase/lib/includes/TermIndexEntry.php 
b/extensions/Wikibase/lib/includes/TermIndexEntry.php
index 589fe8e..68d417c 100644
--- a/extensions/Wikibase/lib/includes/TermIndexEntry.php
+++ b/extensions/Wikibase/lib/includes/TermIndexEntry.php
@@ -5,10 +5,8 @@
 use InvalidArgumentException;
 use MWException;
 use RuntimeException;
-use Wikibase\Client\WikibaseClient;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Term\Term;
-use Wikibase\Repo\WikibaseRepo;
 
 /**
  * Object representing a term index entry.
@@ -31,11 +29,6 @@
        const TYPE_ALIAS = 'alias';
        const TYPE_DESCRIPTION = 'description';
 
-       /**
-        * @var array
-        */
-       private $fields = array();
-
        private static $fieldNames = array(
                'entityType',
                'entityId',
@@ -45,6 +38,31 @@
        );
 
        /**
+        * @var string|null, one of self::TYPE_* constants
+        */
+       private $termType;
+
+       /**
+        * @var string|null
+        */
+       private $termLanguage;
+
+       /**
+        * @var string|null
+        */
+       private $termText;
+
+       /**
+        * @var EntityId|null
+        */
+       private $entityId;
+
+       /**
+        * @var string|null
+        */
+       private $entityType;
+
+       /**
         * @since 0.2
         *
         * @param array $fields
@@ -52,26 +70,25 @@
         * @throws MWException
         */
        public function __construct( array $fields = array() ) {
-               foreach ( $fields as $name => $value ) {
-                       switch ( $name ) {
-                               case 'termType':
-                                       $this->setType( $value );
-                                       break;
-                               case 'termLanguage':
-                                       $this->setLanguage( $value );
-                                       break;
-                               case 'entityId':
-                                       $this->setNumericId( $value );
-                                       break;
-                               case 'entityType':
-                                       $this->setEntityType( $value );
-                                       break;
-                               case 'termText':
-                                       $this->setText( $value );
-                                       break;
-                               default:
-                                       throw new MWException( 'Invalid term 
field provided' );
-                       }
+               $unexpectedFields = array_diff_key( $fields, array_flip( 
self::$fieldNames ) );
+               if ( $unexpectedFields ) {
+                       throw new MWException( 'Invalid term field provided' );
+               }
+
+               if ( array_key_exists( 'termType', $fields ) ) {
+                       $this->setType( $fields['termType'] );
+               }
+               if ( array_key_exists( 'termLanguage', $fields ) ) {
+                       $this->setLanguage( $fields['termLanguage'] );
+               }
+               if ( array_key_exists( 'entityId', $fields ) ) {
+                       $this->setEntityId( $fields['entityId'] );
+               }
+               if ( array_key_exists( 'entityType', $fields ) ) {
+                       $this->setEntityType( $fields['entityType'] );
+               }
+               if ( array_key_exists( 'termText', $fields ) ) {
+                       $this->setText( $fields['termText'] );
                }
        }
 
@@ -85,7 +102,7 @@
                        throw new MWException( 'Invalid term type provided' );
                }
 
-               $this->fields['termType'] = $termType;
+               $this->termType = $termType;
        }
 
        /**
@@ -94,7 +111,7 @@
         * @return string|null
         */
        public function getType() {
-               return array_key_exists( 'termType', $this->fields ) ? 
$this->fields['termType'] : null;
+               return $this->termType;
        }
 
        /**
@@ -107,7 +124,7 @@
                        throw new MWException( 'Language code can only be a 
string' );
                }
 
-               $this->fields['termLanguage'] = $languageCode;
+               $this->termLanguage = $languageCode;
        }
 
        /**
@@ -116,7 +133,7 @@
         * @return string|null
         */
        public function getLanguage() {
-               return array_key_exists( 'termLanguage', $this->fields ) ? 
$this->fields['termLanguage'] : null;
+               return $this->termLanguage;
        }
 
        /**
@@ -129,7 +146,7 @@
                        throw new MWException( 'Term text code can only be a 
string' );
                }
 
-               $this->fields['termText'] = $text;
+               $this->termText = $text;
        }
 
        /**
@@ -138,7 +155,7 @@
         * @return string|null
         */
        public function getText() {
-               return array_key_exists( 'termText', $this->fields ) ? 
$this->fields['termText'] : null;
+               return $this->termText;
        }
 
        /**
@@ -147,11 +164,21 @@
         * @throws MWException
         */
        private function setEntityType( $entityType ) {
+               if ( $this->entityId !== null ) {
+                       if ( $this->entityId->getEntityType() !== $entityType ) 
{
+                               throw new MWException(
+                                       'Cannot set entity type to "' . 
$entityType . '"" as it does not match the type of entity id: "' .
+                                       $this->entityId->getEntityType() . '"'
+                               );
+                       }
+                       return;
+               }
+
                if ( !is_string( $entityType ) ) {
                        throw new MWException( 'Entity type code can only be a 
string' );
                }
 
-               $this->fields['entityType'] = $entityType;
+               $this->entityType = $entityType;
        }
 
        /**
@@ -160,27 +187,15 @@
         * @return string|null
         */
        public function getEntityType() {
-               return array_key_exists( 'entityType', $this->fields ) ? 
$this->fields['entityType'] : null;
-       }
-
-       /**
-        * @param int $id
-        *
-        * @throws MWException
-        */
-       private function setNumericId( $id ) {
-               if ( !is_int( $id ) ) {
-                       throw new MWException( 'Numeric ID can only be an 
integer' );
+               if ( $this->entityId !== null ) {
+                       return $this->entityId->getEntityType();
                }
-
-               $this->fields['entityId'] = $id;
+               return $this->entityType;
        }
 
-       /**
-        * @return int|null
-        */
-       private function getNumericId() {
-               return array_key_exists( 'entityId', $this->fields ) ? 
$this->fields['entityId'] : null;
+       private function setEntityId( EntityId $id ) {
+               $this->entityId = $id;
+               $this->entityType = $id->getEntityType();
        }
 
        /**
@@ -190,28 +205,7 @@
         * @return EntityId|null
         */
        public function getEntityId() {
-               $entityType = $this->getEntityType();
-               $numericId = $this->getNumericId();
-
-               if ( $entityType !== null && $numericId !== null ) {
-                       // TODO: This does not belong to a value object. 
Introduce a TermIndexEntryFactory and
-                       // encapsulate all knowledge about numeric IDs there.
-                       if ( defined( 'WB_VERSION' ) ) {
-                               $entityIdComposer = 
WikibaseRepo::getDefaultInstance()->getEntityIdComposer();
-                       } elseif ( defined( 'WBC_VERSION' ) ) {
-                               $entityIdComposer = 
WikibaseClient::getDefaultInstance()->getEntityIdComposer();
-                       } else {
-                               throw new RuntimeException( 'Need either client 
or repo loaded' );
-                       }
-
-                       try {
-                               return $entityIdComposer->composeEntityId( 
$entityType, $numericId );
-                       } catch ( InvalidArgumentException $ex ) {
-                               wfLogWarning( 'Unsupported entity type "' . 
$entityType . '"' );
-                       }
-               }
-
-               return null;
+               return $this->entityId;
        }
 
        /**
@@ -224,19 +218,37 @@
         * @return int Returns 1 if $a is greater than $b, -1 if $b is greater 
than $a, and 0 otherwise.
         */
        public static function compare( self $a, self $b ) {
-               foreach ( self::$fieldNames as $n ) {
-                       $exists = array_key_exists( $n, $a->fields );
+               $aValues = self::getFieldValuesForCompare( $a );
+               $bValues = self::getFieldValuesForCompare( $b );
 
-                       if ( $exists !== array_key_exists( $n, $b->fields ) ) {
-                               return $exists ? 1 : -1;
-                       } elseif ( $exists && $a->fields[$n] !== $b->fields[$n] 
) {
-                               return $a->fields[$n] > $b->fields[$n] ? 1 : -1;
+               foreach ( self::$fieldNames as $n ) {
+                       $aDefined = $aValues[$n] !== null;
+                       $bDefined = $bValues[$n] !== null;
+
+                       if ( $aDefined !== $bDefined ) {
+                               return $aDefined ? 1 : -1;
+                       }
+                       if ( $aDefined ) {
+                               if ( $aValues[$n] !== $bValues[$n] ) {
+                                       return $aValues[$n] > $bValues[$n] ? 1 
: -1;
+                               }
                        }
                }
 
                return 0;
        }
 
+       private static function getFieldValuesForCompare( self $entry ) {
+               $entityId = $entry->getEntityId();
+               return [
+                       'entityType' => $entry->getEntityType(),
+                       'entityId' => $entityId !== null ? 
$entityId->getSerialization() : null,
+                       'termType' => $entry->getType(),
+                       'termLanguage' => $entry->getLanguage(),
+                       'termText' => $entry->getText(),
+               ];
+       }
+
        /**
         * @return Term
         * @throws MWException
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/Interactors/TermIndexSearchInteractorTest.php
 
b/extensions/Wikibase/lib/tests/phpunit/Interactors/TermIndexSearchInteractorTest.php
index 84100f6..711cd8c 100644
--- 
a/extensions/Wikibase/lib/tests/phpunit/Interactors/TermIndexSearchInteractorTest.php
+++ 
b/extensions/Wikibase/lib/tests/phpunit/Interactors/TermIndexSearchInteractorTest.php
@@ -66,7 +66,7 @@
                        'termText' => $text,
                        'termLanguage' => $languageCode,
                        'termType' => $termType,
-                       'entityId' => $entityId->getNumericId(),
+                       'entityId' => $entityId,
                        'entityType' => $entityId->getEntityType(),
                ) );
        }
diff --git a/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php 
b/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
index 63ccaab..5d6294d 100644
--- a/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/NoBadDependencyUsageTest.php
@@ -18,14 +18,14 @@
 
        public function testNoRepoUsageInLib() {
                // Increasing this allowance is forbidden
-               $this->assertStringNotInLib( 'WikibaseRepo' . '::', 2 );
-               $this->assertStringNotInLib( 'Wikibase\\Repo\\', 4 );
+               $this->assertStringNotInLib( 'WikibaseRepo' . '::', 1 );
+               $this->assertStringNotInLib( 'Wikibase\\Repo\\', 3 );
        }
 
        public function testNoClientUsageInLib() {
                // Increasing this allowance is forbidden
-               $this->assertStringNotInLib( 'WikibaseClient' . '::', 2 );
-               $this->assertStringNotInLib( 'Wikibase\\Client\\', 2 );
+               $this->assertStringNotInLib( 'WikibaseClient' . '::', 1 );
+               $this->assertStringNotInLib( 'Wikibase\\Client\\', 1 );
        }
 
        /**
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/Store/BufferingTermLookupTest.php 
b/extensions/Wikibase/lib/tests/phpunit/Store/BufferingTermLookupTest.php
index 3401d57..9e08ab9 100644
--- a/extensions/Wikibase/lib/tests/phpunit/Store/BufferingTermLookupTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/Store/BufferingTermLookupTest.php
@@ -66,21 +66,21 @@
                                'termLanguage' => 'en',
                                'termText' => 'Vienna',
                                'entityType' => 'item',
-                               'entityId' => 123
+                               'entityId' => new ItemId( 'Q123' ),
                        ) ),
                        'de' => new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'de',
                                'termText' => 'Wien',
                                'entityType' => 'item',
-                               'entityId' => 123
+                               'entityId' => new ItemId( 'Q123' ),
                        ) ),
                        'fr' => new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'fr',
                                'termText' => 'Vienne',
                                'entityType' => 'item',
-                               'entityId' => 123
+                               'entityId' => new ItemId( 'Q123' ),
                        ) ),
                );
 
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/Store/EntityTermLookupTest.php 
b/extensions/Wikibase/lib/tests/phpunit/Store/EntityTermLookupTest.php
index 12dc57d..e121ee2 100644
--- a/extensions/Wikibase/lib/tests/phpunit/Store/EntityTermLookupTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/Store/EntityTermLookupTest.php
@@ -127,28 +127,28 @@
        protected function getTermIndex() {
                $terms = array(
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'label',
                                'termLanguage' => 'en',
                                'termText' => 'New York City'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'label',
                                'termLanguage' => 'es',
                                'termText' => 'Nueva York'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'description',
                                'termLanguage' => 'en',
                                'termText' => 'largest city in New York and the 
United States of America'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'description',
                                'termLanguage' => 'de',
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php
 
b/extensions/Wikibase/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php
index 4cb42c7..2510482 100644
--- 
a/extensions/Wikibase/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php
+++ 
b/extensions/Wikibase/lib/tests/phpunit/Store/LanguageFallbackLabelDescriptionLookupTest.php
@@ -131,42 +131,42 @@
        private function getTermIndex() {
                $terms = array(
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'label',
                                'termLanguage' => 'en',
                                'termText' => 'New York City'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'label',
                                'termLanguage' => 'es',
                                'termText' => 'New York City'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 116,
+                               'entityId' => new ItemId( 'Q116' ),
                                'entityType' => 'item',
                                'termType' => 'description',
                                'termLanguage' => 'en',
                                'termText' => 'Big Apple'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 117,
+                               'entityId' => new ItemId( 'Q117' ),
                                'entityType' => 'item',
                                'termType' => 'label',
                                'termLanguage' => 'en',
                                'termText' => 'Berlin'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 118,
+                               'entityId' => new ItemId( 'Q118' ),
                                'entityType' => 'item',
                                'termType' => 'label',
                                'termLanguage' => 'zh-cn',
                                'termText' => '测试'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 118,
+                               'entityId' => new ItemId( 'Q118' ),
                                'entityType' => 'item',
                                'termType' => 'description',
                                'termLanguage' => 'zh-cn',
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/Store/Sql/TermSqlIndexTest.php 
b/extensions/Wikibase/lib/tests/phpunit/Store/Sql/TermSqlIndexTest.php
index 3a8d3ab..1d8ccc2 100644
--- a/extensions/Wikibase/lib/tests/phpunit/Store/Sql/TermSqlIndexTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/Store/Sql/TermSqlIndexTest.php
@@ -9,6 +9,7 @@
 use Wikibase\DataModel\Term\Fingerprint;
 use Wikibase\DataModel\Term\Term;
 use Wikibase\DataModel\Term\TermList;
+use Wikibase\Lib\EntityIdComposer;
 use Wikibase\StringNormalizer;
 use Wikibase\TermIndexEntry;
 use Wikibase\TermSqlIndex;
@@ -43,8 +44,7 @@
         * @return TermSqlIndex
         */
        public function getTermIndex() {
-               $normalizer = new StringNormalizer();
-               return new TermSqlIndex( $normalizer );
+               return new TermSqlIndex( new StringNormalizer(), new 
EntityIdComposer( [] ) );
        }
 
        public function termProvider() {
@@ -262,21 +262,21 @@
 
                $expectedTerms = array(
                        new TermIndexEntry( array(
-                               'entityId' => 999,
+                               'entityId' => new ItemId( 'Q999' ),
                                'entityType' => 'item',
                                'termText' => 'es un gato!',
                                'termLanguage' => 'es',
                                'termType' => 'description'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 999,
+                               'entityId' => new ItemId( 'Q999' ),
                                'entityType' => 'item',
                                'termText' => 'kittens!!!:)',
                                'termLanguage' => 'en',
                                'termType' => 'label'
                        ) ),
                        new TermIndexEntry( array(
-                               'entityId' => 999,
+                               'entityId' => new ItemId( 'Q999' ),
                                'entityType' => 'item',
                                'termText' => 'kitten-alias',
                                'termLanguage' => 'en',
diff --git 
a/extensions/Wikibase/lib/tests/phpunit/Store/TermPropertyLabelResolverTest.php 
b/extensions/Wikibase/lib/tests/phpunit/Store/TermPropertyLabelResolverTest.php
index 3fea28e..abcc6dd 100644
--- 
a/extensions/Wikibase/lib/tests/phpunit/Store/TermPropertyLabelResolverTest.php
+++ 
b/extensions/Wikibase/lib/tests/phpunit/Store/TermPropertyLabelResolverTest.php
@@ -4,6 +4,7 @@
 
 use HashBagOStuff;
 use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\Property;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Services\Term\PropertyLabelResolver;
@@ -61,28 +62,28 @@
                        new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'de',
-                               'entityId' => 1,
+                               'entityId' => new PropertyId( 'P1' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'Eins',
                        ) ),
                        new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'de',
-                               'entityId' => 2,
+                               'entityId' => new PropertyId( 'P2' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'Zwei',
                        ) ),
                        new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'de',
-                               'entityId' => 3,
+                               'entityId' => new PropertyId( 'P3' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'Drei',
                        ) ),
                        new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'de',
-                               'entityId' => 4,
+                               'entityId' => new PropertyId( 'P4' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'vier', // lower case
                        ) ),
@@ -91,28 +92,28 @@
                        new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'en',
-                               'entityId' => 1,
+                               'entityId' => new PropertyId( 'P1' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'One',
                        ) ),
                        new TermIndexEntry( array(
                                'termType' => 'label',
                                'termLanguage' => 'en',
-                               'entityId' => 2,
+                               'entityId' => new ItemId( 'Q2' ),
                                'entityType' => Item::ENTITY_TYPE, // not a 
property
                                'termText' => 'Two',
                        ) ),
                        new TermIndexEntry( array(
                                'termType' => 'alias', // not a label
                                'termLanguage' => 'en',
-                               'entityId' => 3,
+                               'entityId' => new PropertyId( 'P3' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'Three',
                        ) ),
                        new TermIndexEntry( array(
                                'termType' => 'description', // not a label
                                'termLanguage' => 'en',
-                               'entityId' => 4,
+                               'entityId' => new PropertyId( 'P4' ),
                                'entityType' => Property::ENTITY_TYPE,
                                'termText' => 'Four',
                        ) ),
diff --git a/extensions/Wikibase/lib/tests/phpunit/TermIndexEntryTest.php 
b/extensions/Wikibase/lib/tests/phpunit/TermIndexEntryTest.php
index 68779ce..14b1a26 100644
--- a/extensions/Wikibase/lib/tests/phpunit/TermIndexEntryTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/TermIndexEntryTest.php
@@ -4,6 +4,8 @@
 
 use MWException;
 use PHPUnit_Framework_TestCase;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\LegacyIdInterpreter;
 use Wikibase\DataModel\Term\Term;
 use Wikibase\TermIndexEntry;
@@ -25,7 +27,7 @@
                        [
                                [
                                        'entityType' => 'item',
-                                       'entityId' => 23,
+                                       'entityId' => new ItemId( 'Q23' ),
                                        'termType' => 
TermIndexEntry::TYPE_LABEL,
                                        'termLanguage' => 'en',
                                        'termText' => 'foo',
@@ -41,7 +43,7 @@
                        [
                                [
                                        'entityType' => 'item',
-                                       'entityId' => 23,
+                                       'entityId' => new ItemId( 'Q23' ),
                                ]
                        ],
                ];
@@ -53,14 +55,8 @@
        public function testConstructor( $fields ) {
                $term = new TermIndexEntry( $fields );
 
-               $entityId = null;
-               if ( isset( $fields['entityType'] ) && isset( 
$fields['entityId'] ) ) {
-                       // FIXME: This must be removed once we got rid of all 
legacy numeric ids.
-                       $entityId = 
LegacyIdInterpreter::newIdFromTypeAndNumber( $fields['entityType'], 
$fields['entityId'] );
-               }
-
                $this->assertEquals( isset( $fields['entityType'] ) ? 
$fields['entityType'] : null, $term->getEntityType() );
-               $this->assertEquals( $entityId, $term->getEntityId() );
+               $this->assertEquals( isset( $fields['entityId'] ) ? 
$fields['entityId'] : null, $term->getEntityId() );
                $this->assertEquals( isset( $fields['termType'] ) ? 
$fields['termType'] : null, $term->getType() );
                $this->assertEquals( isset( $fields['termLanguage'] ) ? 
$fields['termLanguage'] : null, $term->getLanguage() );
                $this->assertEquals( isset( $fields['termText'] ) ? 
$fields['termText'] : null, $term->getText() );
@@ -69,6 +65,11 @@
        public function testGivenInvalidField_constructorThrowsException() {
                $this->setExpectedException( MWException::class );
                new TermIndexEntry( [ 'fooField' => 'bar' ] );
+       }
+
+       public function 
testGivenEntityTypeMismatch_constructorThrowsException() {
+               $this->setExpectedException( MWException::class );
+               new TermIndexEntry( [ 'entityId' => new ItemId( 'Q222' ), 
'entityType' => 'property' ] );
        }
 
        public function testClone() {
@@ -86,7 +87,7 @@
        private function newInstance( array $extraFields = [] ) {
                return new TermIndexEntry( $extraFields + [
                                'entityType' => 'item',
-                               'entityId' => 23,
+                               'entityId' => new ItemId( 'Q23' ),
                                'termType' => TermIndexEntry::TYPE_LABEL,
                                'termLanguage' => 'en',
                                'termText' => 'foo',
@@ -114,12 +115,7 @@
                        ],
                        'other entity id' => [
                                $term,
-                               $this->newInstance( [ 'entityType' => 
'property', 'entityId' => 11 ] ),
-                               false
-                       ],
-                       'other entity type' => [
-                               $term,
-                               $this->newInstance( [ 'entityType' => 
'property' ] ),
+                               $this->newInstance( [ 'entityType' => 
'property', 'entityId' => new PropertyId( 'P11' ) ] ),
                                false
                        ],
                        'other language' => [
diff --git a/extensions/Wikibase/repo/i18n/be-tarask.json 
b/extensions/Wikibase/repo/i18n/be-tarask.json
index 62a2341..385e8a3 100644
--- a/extensions/Wikibase/repo/i18n/be-tarask.json
+++ b/extensions/Wikibase/repo/i18n/be-tarask.json
@@ -134,7 +134,7 @@
        "wikibase-newitem-fieldset": "Стварыць новы аб’ект",
        "wikibase-newitem-site": "Сайт першай злучанай старонкі",
        "wikibase-newitem-page": "Назва першай злучанай старонкі",
-       "wikibase-newitem-no-external-page": "Пазначаная старонка на адпаведным 
сайце ня знойдзеная.",
+       "wikibase-newitem-no-external-page": "Старонка «$2» ня знойдзеная на 
сайце «$1».",
        "wikibase-newitem-not-recognized-siteid": "Пададзены ідэнтыфікатар 
сайта не распазнаны.",
        "wikibase-newentity-language": "Мова:",
        "wikibase-newentity-label": "Метка:",
diff --git a/extensions/Wikibase/repo/i18n/eu.json 
b/extensions/Wikibase/repo/i18n/eu.json
index 44dbf35..610c21a 100644
--- a/extensions/Wikibase/repo/i18n/eu.json
+++ b/extensions/Wikibase/repo/i18n/eu.json
@@ -29,6 +29,7 @@
        "wikibase-statementgrouplistview-add-tooltip": "Gehitu adierazpen 
berria",
        "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": 
"Hizkuntza gehiagotan",
        
"wikibase-entitytermsview-entitytermsforlanguagelistview-configure-link-label": 
"Konfiguratu",
+       "wikibase-entitytermsforlanguagelistview-aliases": "Goitizenak",
        "wikibase-entitytermsforlanguagelistview-description": "Deskribapena",
        "wikibase-entitytermsforlanguagelistview-label": "Etiketa",
        "wikibase-entitytermsforlanguagelistview-language": "Hizkuntza",
@@ -36,18 +37,28 @@
        "wikibase-entitytermsforlanguagelistview-less": "Hizkuntza gutxiago",
        "wikibase-label-empty": "Ez da etiketarik zehaztu",
        "wikibase-label-edit-placeholder": "Sartu etiketa bat",
+       "wikibase-label-edit-placeholder-language-aware": "Idatzi etiketa bat 
$1-n",
        "wikibase-description-empty": "Ez dago difinituriko deskribapenik",
+       "wikibase-description-edit-placeholder": "idatzi deskribapena",
        "wikibase-description-edit-placeholder-language-aware": "sartu 
deskribapen bat $1-n",
+       "wikibase-aliases-edit-placeholder": "Idatzi goitizenen bat",
+       "wikibase-aliases-edit-placeholder-language-aware": "idatzi goitizenak 
$1-n",
        "wikibase-diffview-reference": "erreferentzia",
+       "wikibase-diffview-rank": "sailkapena",
+       "wikibase-diffview-qualifier": "kalifikatzaile",
        "wikibase-diffview-label": "etiketa",
+       "wikibase-diffview-alias": "goitizenak",
        "wikibase-diffview-description": "deskribapena",
        "wikibase-diffview-link": "loturak",
        "wikibase-sitelink-site-edit-placeholder": "wiki",
        "wikibase-sitelink-page-edit-placeholder": "orrialdea",
+       "wikibase-alias-edit-placeholder": "idatzi goitizen bat",
        "wikibase-statementsection-statements": "Adierazpenak",
        "wikibase-sitelinks-counter": "$1{{PLURAL:$2|0=|$3+$2$4}} 
{{PLURAL:$1|entry|sarrera}}",
        "wikibase-sitelinks-special": "Beste guneak",
        "wikibase-remove": "kendu",
+       "wikibase-move-up": "goratu",
+       "wikibase-move-down": "beheratu",
        "wikibase-propertypage-datatype": "Datu mota",
        "wikibase-propertypage-bad-datatype": "Datu mota ezezaguna:$1",
        "wikibase-statementview-rank-normal": "Eremu arrunta",
@@ -60,6 +71,7 @@
        "wikibase-snakformat-invalid-value": "Balio ez baliagarria.",
        "wikibase-snakformat-propertynotfound": "Propietatea ez da aurkitu.",
        "wikibase-entityselector-more": "gehiago",
+       "wikibase-entityselector-notfound": "Ez da bat datorren emaitzarik 
aurkitu.",
        "wikibase-validator-sitelink-conflict": "$1 lotura dagoeneko $2 
elementuak erabiltzen du. $2tik kendu egin dezakezu horri ez badagokio edo 
elementuak bateratu gai berdinaz ari badira.",
        "special-itembytitle": "Elementua tituluaren arabera",
        "wikibase-itembytitle-lookup-page": "Orria:",
@@ -76,6 +88,7 @@
        "wikibase-newentity-submit": "Sortu",
        "wikibase-setlabel-label": "Etiketa:",
        "wikibase-setlabeldescriptionaliases-description-label": 
"Deskribapena:",
+       "wikibase-setlabeldescriptionaliases-aliases-label": "Goitizenak:",
        "wikibase-modifyentity-id": "ID:",
        "wikibase-modifyterm-language": "Hizkuntza kodea:",
        "wikibase-entitieswithoutlabel-label-language": "Hizkuntza kodea:",
diff --git a/extensions/Wikibase/repo/i18n/fr.json 
b/extensions/Wikibase/repo/i18n/fr.json
index 0e9489e..1a5d1be 100644
--- a/extensions/Wikibase/repo/i18n/fr.json
+++ b/extensions/Wikibase/repo/i18n/fr.json
@@ -49,7 +49,8 @@
                        "Yasten",
                        "Dcausse",
                        "Urhixidur",
-                       "VIGNERON"
+                       "VIGNERON",
+                       "Derugon"
                ]
        },
        "wikibase-desc": "Référentiel de données structurées",
@@ -432,7 +433,7 @@
        "apihelp-wbformatvalue-param-datatype": "Le type de donnée de la 
valeur. C’est distinct du type de la valeur",
        "apihelp-wbformatvalue-param-datavalue": "La donnée à mettre en forme. 
Ce doit être une sérialisation JSON d’un objet DataValue.",
        "apihelp-wbformatvalue-param-options": "Les options que devrait 
utiliser la mise en forme. Fournies sous forme d’objet JSON.",
-       "apihelp-wbformatvalue-param-property": "Le propriété id auquel la 
valeur de donnée appartient, doit être utilisé à la place du paramètre de type 
de la donnée.",
+       "apihelp-wbformatvalue-param-property": "L'ID de propriété à laquelle 
la valeur de données appartient doit être utilisé à la place du paramètre 
<var>datatype</var>.",
        "apihelp-wbformatvalue-example-1": "Mettre en forme une valeur de 
chaîne simple.",
        "apihelp-wbformatvalue-example-2": "Mettre en forme une valeur de 
chaîne sous forme d’une URL en HTML.",
        "apihelp-wbgetclaims-description": "Obtenir les affirmations de 
Wikibase.",
@@ -467,12 +468,12 @@
        "apihelp-wbgetentities-example-10": "Obtenir l'élément de la page 
\"Berlin\" sur le site \"enwiki\", avec les attributs de langue en langue 
anglaise",
        "apihelp-wbgetentities-example-11": "Obtenir l'élément de la page 
\"Berlin\" sur le site \"enwiki\" après normalisation du titre de \"berlin\"",
        "apihelp-wbgetentities-example-12": "Récupérer les liens de site pour 
l'élément Q42",
-       "apihelp-wbgetentities-example-13": "Obtenir les entités avec l’ID Q42 
en affichant uniquement les liens de site de enwiki",
+       "apihelp-wbgetentities-example-13": "Obtenir les entités avec l’ID Q42 
en affichant uniquement les liens de site de \"enwiki\"",
        "apihelp-wblinktitles-description": "Associe deux articles sur deux 
wiki différents dans un élément de Wikibase.",
-       "apihelp-wblinktitles-param-tosite": "Un identifiant pour le site sur 
lequel réside la page.\nÀ utiliser avec 'totitle' pour faire un lien de site 
complet.",
-       "apihelp-wblinktitles-param-totitle": "Titre de la page à associer.\nÀ 
utiliser avec 'tosite' pour faire un lien de site complet.",
-       "apihelp-wblinktitles-param-fromsite": "Un identifiant pour le site sur 
lequel réside la page.\nÀ utiliser avec 'fromtitle' pour faire un lien de site 
complet.",
-       "apihelp-wblinktitles-param-fromtitle": "Titre de la page à 
associer.\nÀ utiliser avec 'fromsite' pour faire un lien de site complet.",
+       "apihelp-wblinktitles-param-tosite": "Un identifiant pour le site sur 
lequel réside la page.\nÀ utiliser avec <var>totitle</var> pour faire un lien 
de site complet.",
+       "apihelp-wblinktitles-param-totitle": "Titre de la page à associer.\nÀ 
utiliser avec <var>tosite</var> pour faire un lien de site complet.",
+       "apihelp-wblinktitles-param-fromsite": "Un identifiant pour le site sur 
lequel réside la page.\nÀ utiliser avec <var>fromtitle</var> pour faire un lien 
de site complet.",
+       "apihelp-wblinktitles-param-fromtitle": "Titre de la page à 
associer.\nÀ utiliser avec <var>fromsite</var> pour faire un lien de site 
complet.",
        "apihelp-wblinktitles-param-bot": "Marquer cette modification comme 
faite par robot. Cette marque d’URL sera respectée uniquement si l’utilisateur 
appartient au groupe « bot ».",
        "apihelp-wblinktitles-example-1": "Ajouter un lien \"Hydrogène\" à 
partir de la page en anglais vers \"Wasserstoff\" sur la page allemande",
        "apihelp-wbmergeitems-description": "Fusionne plusieurs éléments",
@@ -486,7 +487,7 @@
        "apihelp-wbmergeitems-example-3": "Fusionne les données de Q66 dans Q99 
en ignorant les conflits de liens de site",
        "apihelp-wbmergeitems-example-4": "Fusionne les données de Q66 dans Q99 
en ignorant les conflits de liens de site et de description",
        "apihelp-wbparsevalue-description": "Analyse les valeurs en utilisant 
un ValueParser.",
-       "apihelp-wbparsevalue-param-parser": "ID du ValueParser à utiliser. 
OBSOLÈTE, utiliser le paramètre datatype à la place.",
+       "apihelp-wbparsevalue-param-parser": "L'ID du ValueParser à utiliser. 
<span class=\"apihelp-deprecated\">Deprecated</span>. Utiliser le paramètre 
<var>datatype</var> à la place.",
        "apihelp-wbparsevalue-param-datatype": "Type de données de la valeur à 
analyser. Détermine l’analyseur à utiliser.",
        "apihelp-wbparsevalue-param-validate": "Indique s’il faut également 
valider les données transmises.",
        "apihelp-wbparsevalue-param-values": "Les valeurs à analyser",
@@ -548,9 +549,9 @@
        "apihelp-wbsetaliases-param-baserevid": "L’identifiant numérique pour 
la révision sur laquelle baser la modification.\nIl est utilisé pour détecter 
les conflits lors de l’enregistrement.",
        "apihelp-wbsetaliases-param-summary": "Résumé pour la 
modification.\nSera préfixé par un commentaire généré automatiquement. La 
taille limite du commentaire automatique avec le résumé est de 260 caractères. 
Notez bien que tout ce qui dépassera cette limite sera tronqué.",
        "apihelp-wbsetaliases-param-bot": "Marquer cette modification comme 
faite par robot. Cette marque d’URL sera respectée uniquement si l’utilisateur 
appartient au groupe « bot ».",
-       "apihelp-wbsetaliases-param-add": "Liste des alias à ajouter (peut être 
combiné avec des suppressions)",
-       "apihelp-wbsetaliases-param-remove": "Liste des alias à enlever (peut 
être combiné avec l’ajout)",
-       "apihelp-wbsetaliases-param-set": "Une liste d'alias qui remplacera la 
liste courante (les éléments de cette liste ne peuvent être ni complétés ni 
supprimés)",
+       "apihelp-wbsetaliases-param-add": "Liste des alias à ajouter (peut être 
combiné avec des <var>remove</var>)",
+       "apihelp-wbsetaliases-param-remove": "Liste des alias à enlever (peut 
être combiné avec <var>add</var>)",
+       "apihelp-wbsetaliases-param-set": "Une liste d'alias qui remplacera la 
liste actuelle (les éléments de cette liste ne peuvent être combinés ni avec 
<var>add</var> ni avec <var>remove</var>)",
        "apihelp-wbsetaliases-param-language": "La langue pour laquelle fixer 
les alias",
        "apihelp-wbsetaliases-example-1": "Fixer les alias anglais pour 
l’entité d’ID Q1 à Foo et Bar",
        "apihelp-wbsetaliases-example-2": "Ajouter Foo et Bar à la liste des 
alias anglais pour l’entité d’ID Q1",
@@ -628,7 +629,7 @@
        "apihelp-wbsetsitelink-param-summary": "Résumé de la 
modification.\nSera préfixé par un commentaire généré automatiquement. La 
taille limite du commentaire automatique ajouté au résumé est de 260 caractères 
pour l'ensemble. Notez bien que tout ce qui est au-delà de cette limite sera 
tronqué.",
        "apihelp-wbsetsitelink-param-bot": "Marquer cette modification comme 
faite par robot. Cette marque d’URL sera prise en compte uniquement si 
l’utilisateur appartient au groupe « bot ».",
        "apihelp-wbsetsitelink-param-linksite": "L'identifiant du site sur 
laquel l'article à relier réside.",
-       "apihelp-wbsetsitelink-param-linktitle": "Le titre de l'article à lier. 
Si ce paramètre est une chaîne vide, ou si linktitle et les badges ne sont pas 
simultanément définis, le lien sera supprimé.",
+       "apihelp-wbsetsitelink-param-linktitle": "Le titre de l'article à lier. 
Si ce paramètre est une chaîne vide, ou si le <var>linktitle</var> et les 
<var>badges</var> ne sont pas simultanément définis, le lien sera supprimé.",
        "apihelp-wbsetsitelink-param-badges": "Les Id des éléments à définir 
comme étant des badges. Ils remplaceront les actuels. Si ce paramètre n'est pas 
initialisé, les badges ne seront pas modifiés",
        "apihelp-wbsetsitelink-example-1": "Ajouter un lien de site vers la 
page en anglais « Hydrogen » pour l’élément ayant l’ID « Q42 », si le lien de 
site n’existe pas",
        "apihelp-wbsetsitelink-example-2": "Ajouter un lien de site vers 
l’article en anglais « Hydrogen » ayant l’ID « Q42 » si le lien de site 
n’existe pas. Ajoute aussi « Loves Oxygen » au résumé de la modification.",
diff --git a/extensions/Wikibase/repo/i18n/gl.json 
b/extensions/Wikibase/repo/i18n/gl.json
index de8c757..c758500 100644
--- a/extensions/Wikibase/repo/i18n/gl.json
+++ b/extensions/Wikibase/repo/i18n/gl.json
@@ -391,7 +391,7 @@
        "apihelp-wbformatvalue-param-datatype": "O tipo de dato do valor. Isto 
é diferente do tipo do valor",
        "apihelp-wbformatvalue-param-datavalue": "Datos a formatar. Isto ten 
que ser a serialización JSON dun obxecto DataValue.",
        "apihelp-wbformatvalue-param-options": "As opcións que o formatador 
debería usar. Proporcionadas como un obxecto JSON.",
-       "apihelp-wbformatvalue-param-property": "A propiedade id á que pertence 
o valor de dato, debería usarse no canto do parámetro do tipo de dato.",
+       "apihelp-wbformatvalue-param-property": "A propiedade ID á que pertence 
o valor de dato, debería usarse no canto do parámetro de <var>datatype</var> 
(tipo de dato).",
        "apihelp-wbformatvalue-example-1": "Formatea un valor dunha cadea 
simple de texto.",
        "apihelp-wbformatvalue-example-2": "Formatea un valor dunha cadea de 
texto como unha URL en HTML.",
        "apihelp-wbgetclaims-description": "Obtén afirmacións de Wikibase.",
@@ -426,12 +426,12 @@
        "apihelp-wbgetentities-example-10": "Obtén o elemento para a páxina 
\"Berlín\" no sitio \"enwiki\", cos atributos de idioma en inglés",
        "apihelp-wbgetentities-example-11": "Obtén o elemento da páxina 
\"Berlín\" no sitio \"enwiki\" despois de normalizar o título a \"berlín\"",
        "apihelp-wbgetentities-example-12": "Obter as ligazóns de sitio do 
elemento Q42",
-       "apihelp-wbgetentities-example-13": "Obter as entidades con 
identificador Q42 que só teñen ligazóns de sitio de enwiki",
+       "apihelp-wbgetentities-example-13": "Obter as entidades con 
identificador Q42 que só teñen ligazóns de sitio de \"enwiki\"",
        "apihelp-wblinktitles-description": "Asocia dous artigos en dúas wikis 
diferentes cun elemento Wikibase.",
-       "apihelp-wblinktitles-param-tosite": "Un identificador para o sitio no 
que reside a páxina.\nÚseo xunto con 'totitle' para crear unha ligazón completa 
ó sitio.",
-       "apihelp-wblinktitles-param-totitle": "Título da páxina a 
asociar.\nÚseo xunto con 'tosite' para crear unha ligazón completa ó sitio.",
-       "apihelp-wblinktitles-param-fromsite": "Un identificador para o sitio 
no que reside a páxina.\nÚseo xunto con 'fromtitle' para crear unha ligazón 
completa ó sitio.",
-       "apihelp-wblinktitles-param-fromtitle": "Título da páxina a 
asociar.\nÚseo xunto con 'fromsite' para crear unha ligazón completa ó sitio.",
+       "apihelp-wblinktitles-param-tosite": "Un identificador para o sitio no 
que reside a páxina.\nÚseo xunto con <var>totitle</var> para crear unha ligazón 
completa ó sitio.",
+       "apihelp-wblinktitles-param-totitle": "Título da páxina a 
asociar.\nÚseo xunto con <var>tosite</var> para crear unha ligazón completa ó 
sitio.",
+       "apihelp-wblinktitles-param-fromsite": "Un identificador para o sitio 
no que reside a páxina.\nÚseo xunto con <var>fromtitle</var> para crear unha 
ligazón completa ó sitio.",
+       "apihelp-wblinktitles-param-fromtitle": "Título da páxina a 
asociar.\nÚseo xunto con <var>fromsite</var> para crear unha ligazón completa ó 
sitio.",
        "apihelp-wblinktitles-param-bot": "Marcar esta edición como bot. Esta 
etiqueta de URL só será respectada se o usuario pertence ó grupo \"bot\".",
        "apihelp-wblinktitles-example-1": "Engadir unha ligazón \"Hydrogen\" da 
páxina en inglés a \"Wasserstoff\" na páxina en alemán",
        "apihelp-wbmergeitems-description": "Fusiona varios elementos.",
@@ -445,7 +445,7 @@
        "apihelp-wbmergeitems-example-3": "Fusiona datos desde Q66 en Q99 
ignorando calquera ligazón de sitio conflitiva",
        "apihelp-wbmergeitems-example-4": "Fusiona datos desde Q66 en Q99 
ignorando calquera ligazón de sitio ou descricións conflitivas",
        "apihelp-wbparsevalue-description": "Analiza valores usando un 
analizador de valores.",
-       "apihelp-wbparsevalue-param-parser": "Identificador do analizador de 
valores a usar. <span class=\"apihelp-deprecated\">Obsoleto</span>. Utilice o 
parámetro de tipo de datos no seu lugar.",
+       "apihelp-wbparsevalue-param-parser": "Identificador do analizador de 
valores a usar. <span class=\"apihelp-deprecated\">Obsoleto</span>. Utilice o 
parámetro <var>datatype</var> no seu lugar.",
        "apihelp-wbparsevalue-param-datatype": "Tipo de datos do valor a 
analizar. Determina o analizador a utilizar.",
        "apihelp-wbparsevalue-param-validate": "Se adicionalmente verificar os 
datos transmitidos.",
        "apihelp-wbparsevalue-param-values": "Valores a analizar",
@@ -507,9 +507,9 @@
        "apihelp-wbsetaliases-param-baserevid": "Identificador numérico para a 
revisión na que basear a edición.\nÚsase para detectar conflitos durante a 
gravación.",
        "apihelp-wbsetaliases-param-summary": "Resumo da edición.\nEngadirase 
un comentario xenerado automaticamente. O límite de lonxitude do autocomentario 
xunto co seu resumo é de 260 caracteres. Teña en conta que todo o que exceda 
dese límite non será tido en conta.",
        "apihelp-wbsetaliases-param-bot": "Marcar esta edición como bot. Esta 
etiqueta de URL só será respectada se o usuario pertence ó grupo \"bot\".",
-       "apihelp-wbsetaliases-param-add": "Lista de alias a engadir (pode 
combinarse con eliminar)",
-       "apihelp-wbsetaliases-param-remove": "Lista de alias a eliminar (pode 
combinarse con engadir)",
-       "apihelp-wbsetaliases-param-set": "Lista de alias que reemprazarán á 
lista actual (non pode ser combinada con engadir nin eliminar)",
+       "apihelp-wbsetaliases-param-add": "Lista de alias a engadir (pode 
combinarse con <var>remove</var>)",
+       "apihelp-wbsetaliases-param-remove": "Lista de alias a eliminar (pode 
combinarse con <var>add</var>)",
+       "apihelp-wbsetaliases-param-set": "Lista de alias que reemprazarán á 
lista actual (non pode ser combinada con <var>add</var> nin con 
<var>remove</var>)",
        "apihelp-wbsetaliases-param-language": "Idioma para o cal fixar os 
alias",
        "apihelp-wbsetaliases-example-1": "Fixar os alias en inglés para a 
entidade con identificador Q1 a Foo e Bar",
        "apihelp-wbsetaliases-example-2": "Engadir Foo e Bar á lista de alias 
en inglés para a entidade con identificador Q1",
diff --git a/extensions/Wikibase/repo/i18n/he.json 
b/extensions/Wikibase/repo/i18n/he.json
index 77acc38..ac2acbf 100644
--- a/extensions/Wikibase/repo/i18n/he.json
+++ b/extensions/Wikibase/repo/i18n/he.json
@@ -393,7 +393,7 @@
        "apihelp-wbformatvalue-param-datatype": "סוג הנתונים של הערך. זה שונה 
מסוג הערך",
        "apihelp-wbformatvalue-param-datavalue": "הנתונים שצריך לעצב. זו צריכה 
להיות הסדרת JSON של עצם DataValue.",
        "apihelp-wbformatvalue-param-options": "האפשרויות שהמעצב צריך להשתמש 
בהן. מסופק בתור עצם JSON.",
-       "apihelp-wbformatvalue-param-property": "מזהה המאפיין שערך הנתונים שייך 
אליו, אמור לשמש במקום פרמטר סוג הנתונים.",
+       "apihelp-wbformatvalue-param-property": "מזהה המאפיין שערך הנתונים שייך 
אליו, אמור לשמש במקום פרמטר <var>datatype</var>.",
        "apihelp-wbformatvalue-example-1": "עיצוב ערך מחרוזת פשוט.",
        "apihelp-wbformatvalue-example-2": "עיצוב ערך מחרוזת בתור URL ל־HTML",
        "apihelp-wbgetclaims-description": "קבלת טענות ויקיבייס.",
@@ -428,12 +428,12 @@
        "apihelp-wbgetentities-example-10": "לקבל את הפריט לדף \"Berlin\" באתר 
\"enwiki\", עם מאפייני שפה בשפה האנגלית",
        "apihelp-wbgetentities-example-11": "קבלת הפריט עבור הדף \"Berlin\" 
באתר \"enwiki\" אחרי נרמול הכותרת מ־\"berlin\"",
        "apihelp-wbgetentities-example-12": "קבלת קישורי אתר לפריט Q42",
-       "apihelp-wbgetentities-example-13": "קבלת ישויות עם מזהה Q42 והצגת 
קישורי אתר רק מ־enwiki",
+       "apihelp-wbgetentities-example-13": "קבלת ישויות עם מזהה Q42 והצגת 
קישורי אתר רק מ־\"enwiki\"",
        "apihelp-wblinktitles-description": "שיוך שני ערכים בשני אתרי ויקי 
שונים לפריט ויקיבייס.",
-       "apihelp-wblinktitles-param-tosite": "מזהה לאתר שהדף נמצא בו.\nיש 
להשתמש יחד עם 'totitle' כדי ליצור קישור אתר שלם.",
-       "apihelp-wblinktitles-param-totitle": "כותרת הדף לשיוך.\nיש להשתמש יחד 
עם 'tosite' כדי ליצור קישור אתר שלם.",
-       "apihelp-wblinktitles-param-fromsite": "מזהה לאתר שהדף נמצא בו.\nיש 
להשתמש יחד עם 'fromtitle' כדי ליצור קישור אתר שלם.",
-       "apihelp-wblinktitles-param-fromtitle": "כותרת הדף לשיוך.\nיש להשתמש 
יחד עם 'fromsite' כדי ליצור קישור אתר שלם.",
+       "apihelp-wblinktitles-param-tosite": "מזהה לאתר שהדף נמצא בו.\nיש 
להשתמש יחד עם <var>totitle</var> כדי ליצור קישור אתר שלם.",
+       "apihelp-wblinktitles-param-totitle": "כותרת הדף לשיוך.\nיש להשתמש יחד 
עם <var>tosite</var> כדי ליצור קישור אתר שלם.",
+       "apihelp-wblinktitles-param-fromsite": "מזהה לאתר שהדף נמצא בו.\nיש 
להשתמש יחד עם <var>fromtitle</var> כדי ליצור קישור אתר שלם.",
+       "apihelp-wblinktitles-param-fromtitle": "כותרת הדף לשיוך.\nיש להשתמש 
יחד עם <var>fromsite</var> כדי ליצור קישור אתר שלם.",
        "apihelp-wblinktitles-param-bot": "סימון העריכה בתור בוט. דגל ה־URL הזה 
יכובד רק אם המשתמש שייך לקבוצה \"bot\".",
        "apihelp-wblinktitles-example-1": "הוספת הקישור \"Hydrogen\" לדף האנגלי 
ל־\"Wasserstoff\" בדף הגרמני",
        "apihelp-wbmergeitems-description": "ממזג מספר רב של פריטים.",
@@ -447,7 +447,7 @@
        "apihelp-wbmergeitems-example-3": "מיזוג נתונים מ־Q66 ל־Q99 תוך כדי 
התעלמות מכל קישורי האתר המתנגשים",
        "apihelp-wbmergeitems-example-4": "מיזוג נתונים מ־Q66 ל־Q99 תוך כדי 
התעלמות מכל קישורי האתר והתיאורים המתנגשים",
        "apihelp-wbparsevalue-description": "פענוח ערכים באמצעות ValueParser.",
-       "apihelp-wbparsevalue-param-parser": "המזהה של ה־ValueParser שצריך 
להשתמש בו. <span class=\"apihelp-deprecated\">מיושן</span>. יש להשתמש בפרמטר 
datatype במקום זה.",
+       "apihelp-wbparsevalue-param-parser": "המזהה של ה־ValueParser שצריך 
להשתמש בו. <span class=\"apihelp-deprecated\">מיושן</span>. יש להשתמש בפרמטר 
<var>datatype</var> במקום זה.",
        "apihelp-wbparsevalue-param-datatype": "סוג הנתונים לפענוח. קובע האיזה 
מפענח להשתמש.",
        "apihelp-wbparsevalue-param-validate": "האם לעשות אימות נוסף על הנתונים 
המוכנסים.",
        "apihelp-wbparsevalue-param-values": "אילו ערכים לפענח",
@@ -509,9 +509,9 @@
        "apihelp-wbsetaliases-param-baserevid": "מזהה מספרי לגרסה שעליה יתבסס 
השינוי.\nזה משמש לזיהוי התנגשויות בזמן השמירה.",
        "apihelp-wbsetaliases-param-summary": "תקציר העריכה.\nלתחילתו תצורף 
הערה שמיוצרת אוטומטית. מגבלת האורך של ההערה האוטומטית יחד עם תקציר העריכה היא 
260 תווים. יש לשים לב לכך שכל דבר מעבר לכך ייחתך.",
        "apihelp-wbsetaliases-param-bot": "סימון העריכה בתור בוט. דגל ה־URL הזה 
יכובד רק אם המשתמש שייך לקבוצה \"bot\".",
-       "apihelp-wbsetaliases-param-add": "רשימת כינויים להוספה (אפשר לשלב עם 
הסרה)",
-       "apihelp-wbsetaliases-param-remove": "רשימת כינויים להסרה (אפשר לשלב עם 
הוספה)",
-       "apihelp-wbsetaliases-param-set": "רשימת כינויים שתחליף את הרשימה 
הנוכחית (לא ניתן לשלב עם הוספה או הסרה)",
+       "apihelp-wbsetaliases-param-add": "רשימת כינויים להוספה (אפשר לשלב עם 
<var>remove</var>)",
+       "apihelp-wbsetaliases-param-remove": "רשימת כינויים להסרה (אפשר לשלב עם 
<var>add</var>)",
+       "apihelp-wbsetaliases-param-set": "רשימת כינויים שתחליף את הרשימה 
הנוכחית (לא ניתן לשלב עם <var>add</var> או <var>remove</var>)",
        "apihelp-wbsetaliases-param-language": "השפה שבה יוגדרו הכינויים",
        "apihelp-wbsetaliases-example-1": "הגדרת הכינויים באנגלית לישות שהמזהה 
שלה הוא Q1 לערכים Foo ו־Bar",
        "apihelp-wbsetaliases-example-2": "הוספת Foo ו־Bar לרשימת הכינויים 
באנגלית לישות שהמזהה שלה הוא Q1",
diff --git a/extensions/Wikibase/repo/i18n/it.json 
b/extensions/Wikibase/repo/i18n/it.json
index a1e59b2..c08a683 100644
--- a/extensions/Wikibase/repo/i18n/it.json
+++ b/extensions/Wikibase/repo/i18n/it.json
@@ -379,7 +379,7 @@
        "apihelp-wbeditentity-example-11": "Aggiunge un'etichetta senza 
sovrascrivere se già presente",
        "apihelp-wbeditentity-example-12": "Rimuovi un'etichetta",
        "apihelp-wbformatvalue-description": "Formati DataValues.",
-       "apihelp-wbformatvalue-param-property": "ID proprietà a cui appartiene 
il valore dei dati, dovrebbe essere usato al posto del parametro tipo di dati.",
+       "apihelp-wbformatvalue-param-property": "ID proprietà a cui appartiene 
il valore dei dati, dovrebbe essere usato al posto del parametro 
<var>datatype</var>.",
        "apihelp-wbgetclaims-description": "Ottiene asserzioni Wikibase.",
        "apihelp-wbgetclaims-example-1": "Ottieni asserzioni per l'elemento con 
ID Q42",
        "apihelp-wbgetclaims-example-2": "Ottieni asserzioni per l'elemento con 
ID Q42 e proprietà con ID P2",
@@ -393,11 +393,16 @@
        "apihelp-wbgetentities-example-4": "Ottieni entità con ID Q42 con tutti 
gli attributi disponibili in lingua inglese",
        "apihelp-wbgetentities-example-5": "Ottieni entità con ID Q42 con tutti 
gli attributi disponibili in tutte le lingue di riserva disponibili per la 
lingua ii",
        "apihelp-wbgetentities-example-6": "Ottieni entità con ID Q42 mostrando 
tutte le etichette in tutte le lingue disponibili",
+       "apihelp-wblinktitles-param-tosite": "Un identificatore per il sito in 
cui risiede la pagina.\nUtilizza insieme a <var>totitle</var> per creare un 
sitelink completo.",
+       "apihelp-wblinktitles-param-totitle": "Titolo della pagina da 
associare.\nUtilizza insieme a <var>tosite</var> per creare un sitelink 
completo.",
+       "apihelp-wblinktitles-param-fromsite": "Un identificatore per il sito 
in cui risiede la pagina.\nUtilizza insieme a <var>fromtitle</var> per creare 
un sitelink completo.",
+       "apihelp-wblinktitles-param-fromtitle": "Titolo della pagina da 
associare.\nUtilizza insieme a <var>fromsite</var> per creare un sitelink 
completo.",
        "apihelp-wbmergeitems-description": "Unisce più elementi.",
        "apihelp-wbmergeitems-param-fromid": "L'ID da cui unire",
        "apihelp-wbmergeitems-param-toid": "L'ID dove unire",
        "apihelp-wbmergeitems-example-1": "Unisce dati da Q42 in Q222",
        "apihelp-wbmergeitems-example-2": "Unisce dati da Q555 in Q3",
+       "apihelp-wbparsevalue-param-parser": "ID del ValueParser da utilizzare. 
<span class=\"apihelp-deprecated\">Deprecato</span>. Usa invece il parametro 
<var>datatype</var>.",
        "apihelp-wbparsevalue-param-values": "I valori da analizzare",
        "apihelp-wbremoveclaims-description": "Rimuove asserzioni Wikibase.",
        "apihelp-wbremovequalifiers-description": "Rimuove un qualificatore da 
un'asserzione.",
@@ -423,8 +428,9 @@
        "apihelp-wbsetaliases-param-site": "Un identificatore per il sito in 
cui risiede la pagina.\nUtilizza insieme a <var>title</var> per creare un 
sitelink completo.",
        "apihelp-wbsetaliases-param-title": "Titolo della pagina da 
associare.\nUtilizza insieme a <var>site</var> per creare un sitelink 
completo.",
        "apihelp-wbsetaliases-param-bot": "Contrassegna questa modifica come 
bot. Questo flag di URL sarà rispettato solo se l'utente appartiene al gruppo 
\"bot\".",
-       "apihelp-wbsetaliases-param-add": "Elenco degli alias da aggiungere 
(può essere combinato con remove)",
-       "apihelp-wbsetaliases-param-remove": "Elenco degli alias da rimuovere 
(può essere combinato con add)",
+       "apihelp-wbsetaliases-param-add": "Elenco degli alias da aggiungere 
(può essere combinato con <var>remove</var>)",
+       "apihelp-wbsetaliases-param-remove": "Elenco degli alias da rimuovere 
(può essere combinato con <var>add</var>)",
+       "apihelp-wbsetaliases-param-set": "Un elenco di alias che sostituirà 
l'elenco attuale (non può essere combinato né con <var>add</var> né con 
<var>remove</var>)",
        "apihelp-wbsetaliases-param-language": "La lingua per la quale 
impostare gli alias",
        "apihelp-wbsetclaim-description": "Crea o aggiorna un'intera 
dichiarazione o asserzione.",
        "apihelp-wbsetclaim-param-claim": "Serializzazione di dichiarazione o 
asserzione",
diff --git a/extensions/Wikibase/repo/i18n/pt.json 
b/extensions/Wikibase/repo/i18n/pt.json
index 2186a8b..193612e 100644
--- a/extensions/Wikibase/repo/i18n/pt.json
+++ b/extensions/Wikibase/repo/i18n/pt.json
@@ -397,7 +397,7 @@
        "apihelp-wbformatvalue-param-datatype": "O tipo de dados do valor. É 
diferente do tipo do valor.",
        "apihelp-wbformatvalue-param-datavalue": "Os dados a serem formatados. 
Tem de ser a seriação JSON de um objeto DataValue.",
        "apihelp-wbformatvalue-param-options": "As opções que o formatador deve 
usar. Fornecidas como um objeto JSON.",
-       "apihelp-wbformatvalue-param-property": "O identificador de propriedade 
ao qual o valor pertence. Deve ser usado em vez do parâmetro datatype.",
+       "apihelp-wbformatvalue-param-property": "O identificador de propriedade 
ao qual o valor pertence. Deve ser usado em vez do parâmetro 
<var>datatype</var>.",
        "apihelp-wbformatvalue-example-1": "Formatar um valor de texto 
simples.",
        "apihelp-wbformatvalue-example-2": "Formatar um valor de texto como um 
URL em HTML.",
        "apihelp-wbgetclaims-description": "Obtém alegações Wikibase.",
@@ -432,12 +432,12 @@
        "apihelp-wbgetentities-example-10": "Obter o objeto para a página 
\"Berlim\" no ''site'' \"enwiki\", com atributos de língua em inglês",
        "apihelp-wbgetentities-example-11": "Obter o objeto para a página 
\"Berlin\" no ''site'' \"enwiki\", após normalizar o título de \"berlin\"",
        "apihelp-wbgetentities-example-12": "Obter os ''links intersites'' do 
objeto Q42",
-       "apihelp-wbgetentities-example-13": "Obter as entidades com o 
identificador Q42, mostrando apenas os ''links intersites'' do ''site'' enwiki",
+       "apihelp-wbgetentities-example-13": "Obter as entidades com o 
identificador Q42, mostrando apenas os ''links intersites'' do ''site'' 
\"enwiki\"",
        "apihelp-wblinktitles-description": "Associa dois artigos em duas wikis 
diferentes com um objeto Wikibase.",
-       "apihelp-wblinktitles-param-tosite": "Um identificador para o ''site'' 
no qual a página reside.\nUsar em conjunto com 'totitle' para criar um ''link 
intersites'' completo.",
-       "apihelp-wblinktitles-param-totitle": "O título da página a ser 
associada.\nUsar em conjunto com 'tosite' para formar um ''link intersites'' 
completo.",
-       "apihelp-wblinktitles-param-fromsite": "Um identificador para o 
''site'' no qual a página reside.\nUsar em conjunto com 'fromtitle' para formar 
um ''link intersites'' completo.",
-       "apihelp-wblinktitles-param-fromtitle": "O título da página a ser 
associada.\nUsar em conjunto com 'fromsite' para formar um ''link intersites'' 
completo.",
+       "apihelp-wblinktitles-param-tosite": "Um identificador para o ''site'' 
no qual a página reside.\nUsar em conjunto com <var>totitle</var> para criar um 
''link intersites'' completo.",
+       "apihelp-wblinktitles-param-totitle": "O título da página a ser 
associada.\nUsar em conjunto com <var>tosite</var> para formar um ''link 
intersites'' completo.",
+       "apihelp-wblinktitles-param-fromsite": "Um identificador para o 
''site'' no qual a página reside.\nUsar em conjunto com <var>fromtitle</var> 
para formar um ''link intersites'' completo.",
+       "apihelp-wblinktitles-param-fromtitle": "O título da página a ser 
associada.\nUsar em conjunto com <var>fromsite</var> para formar um ''link 
intersites'' completo.",
        "apihelp-wblinktitles-param-bot": "Marcar esta edição como uma edição 
por robô. Esta etiqueta URL só será respeitada se o utilizador pertencer ao 
grupo \"robôs\".",
        "apihelp-wblinktitles-example-1": "Adicionar um ''link'' \"Hydrogen\" 
da página em inglês para \"Wasserstoff\" na página em alemão",
        "apihelp-wbmergeitems-description": "Faz a fusão de vários objetos.",
@@ -451,7 +451,7 @@
        "apihelp-wbmergeitems-example-3": "Funde os dados de Q66 nos de Q99, 
ignorando qualquer conflito nos ''links intersites''",
        "apihelp-wbmergeitems-example-4": "Funde os dados de Q66 nos de Q99, 
ignorando qualquer conflito nos ''links intersites'' e nas descrições",
        "apihelp-wbparsevalue-description": "Analisa os valores usando um 
analisador de valores (ValueParser)",
-       "apihelp-wbparsevalue-param-parser": "Identificador do analisador de 
valores a ser usado. <span class=\"apihelp-deprecated\">Obsoleto</span>. Use em 
vez deste parâmetro, o parâmetro datatype.",
+       "apihelp-wbparsevalue-param-parser": "Identificador do analisador de 
valores a ser usado. <span class=\"apihelp-deprecated\">Obsoleto</span>. Use em 
vez deste parâmetro, o parâmetro <var>datatype</var>.",
        "apihelp-wbparsevalue-param-datatype": "O tipo de dados do valor a ser 
analisado. Determina o analisador que será usado.",
        "apihelp-wbparsevalue-param-validate": "Indica se, adicionalmente, 
devem ser verificados os dados recebidos.",
        "apihelp-wbparsevalue-param-values": "Os valores a serem analisados",
@@ -513,9 +513,9 @@
        "apihelp-wbsetaliases-param-baserevid": "O identificador numérico da 
revisão na qual será baseada a modificação.\nÉ usado para detetar conflitos 
durante a gravação.",
        "apihelp-wbsetaliases-param-summary": "O resumo da edição.\nSerá 
antecedido por um comentário gerado automaticamente. O tamanho limite do 
comentário automático mais o resumo é 260 caracteres. Tudo o que exceder este 
limite será cortado.",
        "apihelp-wbsetaliases-param-bot": "Marcar esta edição como uma edição 
por robô. Esta etiqueta URL só será respeitada se o utilizador pertencer ao 
grupo \"robôs\".",
-       "apihelp-wbsetaliases-param-add": "Lista de nomes alternativos a serem 
adicionados (pode ser combinado com remove)",
-       "apihelp-wbsetaliases-param-remove": "Lista de nomes alternativos a 
serem removidos (pode ser combinado com add)",
-       "apihelp-wbsetaliases-param-set": "Uma lista de nomes alternativos que 
irá substituir a lista atual (não pode ser combinado com add nem remove)",
+       "apihelp-wbsetaliases-param-add": "Lista de nomes alternativos a serem 
adicionados (pode ser combinado com <var>remove</var>)",
+       "apihelp-wbsetaliases-param-remove": "Lista de nomes alternativos a 
serem removidos (pode ser combinado com <var>add</var>)",
+       "apihelp-wbsetaliases-param-set": "Uma lista de nomes alternativos que 
irá substituir a lista atual (não pode ser combinado com <var>add</var> nem 
<var>remove</var>)",
        "apihelp-wbsetaliases-param-language": "A língua para a qual os nomes 
alternativos serão definidos",
        "apihelp-wbsetaliases-example-1": "Definir os nomes alternativos para a 
entidade com o identificador Q1, como Foo e Bar",
        "apihelp-wbsetaliases-example-2": "Adicionar Foo e Bar à lista de nomes 
alternativos em inglês para a entidade com o identificador Q1",
@@ -601,5 +601,6 @@
        "apihelp-wbsetsitelink-example-4": "Remover o ''link intersites'' em 
alemão do artigo",
        "apihelp-wbsetsitelink-example-5": "Adicionar um ''link intersites'' 
para o artigo em polaco \"Wodór\" ao objeto que está ligado com o artigo em 
inglês \"Hydrogen\", com um emblema a apontar para o objeto com o identificador 
\"Q149\"",
        "apihelp-wbsetsitelink-example-6": "Alterar os emblemas do ''link'' 
para a página em polaco do objeto com o identificador \"Q42\", para dois 
emblemas com os identificadores \"Q2\" e \"Q149\" sem fornecer o título do 
''link''",
-       "apihelp-wbsetsitelink-example-7": "Alterar o ''link'' para a página em 
polaco do objeto com o identificador \"Q42\" sem alterar emblemas"
+       "apihelp-wbsetsitelink-example-7": "Alterar o ''link'' para a página em 
polaco do objeto com o identificador \"Q42\" sem alterar emblemas",
+       "apihelp-wbsetsitelink-example-8": "Alterar o ''link'' para a página em 
polaco com o identificador \"Q42\" e remover todos os seus emblemas"
 }
diff --git a/extensions/Wikibase/repo/i18n/uk.json 
b/extensions/Wikibase/repo/i18n/uk.json
index 7e0b194..8d08b52 100644
--- a/extensions/Wikibase/repo/i18n/uk.json
+++ b/extensions/Wikibase/repo/i18n/uk.json
@@ -401,7 +401,7 @@
        "apihelp-wbformatvalue-param-datatype": "Тип даних цього значення. Цей 
параметр має відрізняється від параметру для типу значення.",
        "apihelp-wbformatvalue-param-datavalue": "Дані для форматування. Це має 
бути JSON-серіалізація об'єкта DataValue.",
        "apihelp-wbformatvalue-param-options": "Опції, які форматувальник має 
використати. Надається як JSON-об'єкт.",
-       "apihelp-wbformatvalue-param-property": "Ідентифікатор властивості, до 
якої належить значення даних, має використовуватись замість параметра datatype",
+       "apihelp-wbformatvalue-param-property": "Ідентифікатор властивості, до 
якої належить значення даних, має використовуватись замість параметра 
<var>datatype</var>",
        "apihelp-wbformatvalue-example-1": "Форматувати просте рядкове 
значення.",
        "apihelp-wbformatvalue-example-2": "Форматувати рядкове значення як URL 
у HTML.",
        "apihelp-wbgetclaims-description": "Отримує записи з Вікібази.",
@@ -436,12 +436,12 @@
        "apihelp-wbgetentities-example-10": "Отримати елемент для сторінки 
«Berlin» на сайті «enwiki» з мовними атрибутами англійською мовою",
        "apihelp-wbgetentities-example-11": "Отримати елемент для сторінки 
«Berlin» на сайті «enwiki» після нормалізації назви з «berlin»",
        "apihelp-wbgetentities-example-12": "Отримати посилання на сайти для 
елемента Q42",
-       "apihelp-wbgetentities-example-13": "Отримати сутності з 
ідентифікатором Q42, показуючи лише посилання з enwiki",
+       "apihelp-wbgetentities-example-13": "Отримати сутності з 
ідентифікатором Q42, показуючи лише посилання з «enwiki»",
        "apihelp-wblinktitles-description": "Пов'язує дві статті в двох різних 
вікі з елементом Вікібази",
-       "apihelp-wblinktitles-param-tosite": "Ідентифікатор сайту, на якому 
розміщена сторінка.\nВикористовуйте разом із 'totitle', аби створити повноцінне 
посилання.",
-       "apihelp-wblinktitles-param-totitle": "Назва сторінки, яку треба 
прив'язати.\nВикористовуйте разом із 'tosite', аби створити повноцінне 
посилання.",
-       "apihelp-wblinktitles-param-fromsite": "Ідентифікатор сайту, на якому 
розміщена сторінка.\nВикористовуйте разом із 'fromtitle', аби створити 
повноцінне посилання.",
-       "apihelp-wblinktitles-param-fromtitle": "Назва сторінки, яку треба 
прив'язати.\nВикористовуйте разом із 'fromsite', аби створити повноцінне 
посилання.",
+       "apihelp-wblinktitles-param-tosite": "Ідентифікатор сайту, на якому 
розміщена сторінка.\nВикористовуйте разом із <var>totitle</var>, аби створити 
повноцінне посилання.",
+       "apihelp-wblinktitles-param-totitle": "Назва сторінки, яку треба 
прив'язати.\nВикористовуйте разом із <var>tosite</var>, аби створити повноцінне 
посилання.",
+       "apihelp-wblinktitles-param-fromsite": "Ідентифікатор сайту, на якому 
розміщена сторінка.\nВикористовуйте разом із <var>fromtitle</var>, аби створити 
повноцінне посилання.",
+       "apihelp-wblinktitles-param-fromtitle": "Назва сторінки, яку треба 
прив'язати.\nВикористовуйте разом із <var>fromsite</var>, аби створити 
повноцінне посилання.",
        "apihelp-wblinktitles-param-bot": "Позначити це як редагування бота. Ця 
позначка URL буде дійсною, лише якщо користувач належить до групи «бот».",
        "apihelp-wblinktitles-example-1": "Прив'язати сторінку «Hydrogen» 
англійській Вікіпедії до «Wasserstoff» у німецькій Вікіпедії",
        "apihelp-wbmergeitems-description": "Об'єднує декілька елементів.",
@@ -455,7 +455,7 @@
        "apihelp-wbmergeitems-example-3": "Об'єднує дані з Q66 у Q99, ігноруючи 
будь-які конфліктні посилання на сайти",
        "apihelp-wbmergeitems-example-4": "Об'єднує дані з  Q66 у Q99, 
ігноруючи будь-які конфліктні посилання на сайти та описи",
        "apihelp-wbparsevalue-description": "Аналізує значення, використовуючи 
ValueParser.",
-       "apihelp-wbparsevalue-param-parser": "Ідентифікатор ValueParser для 
використання. <span class=\"apihelp-deprecated\">Застарілий</span>. Натомість 
використовуйте параметр типу даних.",
+       "apihelp-wbparsevalue-param-parser": "Ідентифікатор ValueParser для 
використання. <span class=\"apihelp-deprecated\">Застарілий</span>. Натомість 
використовуйте параметр <var>datatype</var>.",
        "apihelp-wbparsevalue-param-datatype": "Тип даних значення для 
синтаксичного аналізу. Визначає який аналізатор використовувати.",
        "apihelp-wbparsevalue-param-validate": "Чи перевіряти додатково дані, 
що передаються.",
        "apihelp-wbparsevalue-param-values": "Значення для аналізу",
@@ -517,9 +517,9 @@
        "apihelp-wbsetaliases-param-baserevid": "Числовий ідентифікатор для 
перегляду базової модифікації.\nЦе використовується для виявлення конфліктів 
при збереженні.",
        "apihelp-wbsetaliases-param-summary": "Опис редагування.\nБуде доданий 
автоматичний попередній коментар. Ліміт довжини автоматичного коментаря разом з 
коментарем, введеним користувачем, становить 260 символів. Пам'ятайте, що все, 
що перевищує цей ліміт, буде обрізане.",
        "apihelp-wbsetaliases-param-bot": "Позначити це як редагування бота. Ця 
позначка URL буде дійсною, лише якщо користувач належить до групи «бот».",
-       "apihelp-wbsetaliases-param-add": "Список альтернативних назв, які 
треба додати (не можна використовувати разом із «remove»)",
-       "apihelp-wbsetaliases-param-remove": "Список альтернативних назв, які 
треба вилучити (не можна використовувати разом з «add»)",
-       "apihelp-wbsetaliases-param-set": "Список альтернативних назв, що 
замінять поточний список (не можна використовувати ані з «add», ані з 
«remove»)",
+       "apihelp-wbsetaliases-param-add": "Список альтернативних назв, які 
треба додати (не можна використовувати разом із <var>remove</var>)",
+       "apihelp-wbsetaliases-param-remove": "Список альтернативних назв, які 
треба вилучити (не можна використовувати разом з <var>add</var>)",
+       "apihelp-wbsetaliases-param-set": "Список альтернативних назв, що 
замінять поточний список (не можна використовувати ані з <var>add</var>, ані з 
<var>remove</var>)",
        "apihelp-wbsetaliases-param-language": "Мова, для якої мають бути 
встановлені альтернативні назви",
        "apihelp-wbsetaliases-example-1": "Встановити англомовні альтернативні 
назви Foo і Bar для сутності з ідентифікатором Q1",
        "apihelp-wbsetaliases-example-2": "Додати Foo і Bar до списку 
англомовних альтернативних назв для сутності з ідентифікатором Q1",
diff --git a/extensions/Wikibase/repo/i18n/zh-hans.json 
b/extensions/Wikibase/repo/i18n/zh-hans.json
index 91e1a81..a92295c 100644
--- a/extensions/Wikibase/repo/i18n/zh-hans.json
+++ b/extensions/Wikibase/repo/i18n/zh-hans.json
@@ -410,7 +410,7 @@
        "apihelp-wbformatvalue-param-datatype": "值的数据类型。这明显与数据值不同",
        "apihelp-wbformatvalue-param-datavalue": "要格式化的数据。这必须为数据类型对象的JSON序列化。",
        "apihelp-wbformatvalue-param-options": "格式化程序应使用的选项。以JSON对象提供。",
-       "apihelp-wbformatvalue-param-property": "数据值所属的属性ID,应在没有数据类型参数时使用。",
+       "apihelp-wbformatvalue-param-property": 
"数据值所属的属性ID,应在没有<var>datatype</var>参数时使用。",
        "apihelp-wbformatvalue-example-1": "格式化简单字符串值。",
        "apihelp-wbformatvalue-example-2": "在HTML中格式化一个字符串值作为URL。",
        "apihelp-wbgetclaims-description": "获取Wikibase声称。",
@@ -445,12 +445,12 @@
        "apihelp-wbgetentities-example-10": 
"获取在“enwiki”上的“Berlin”页面所在项,及英语中的语言属性",
        "apihelp-wbgetentities-example-11": 
"在标准化从“berlin”开始的标题后,获取在“enwiki”上的“Berlin”页面所在项",
        "apihelp-wbgetentities-example-12": "获取项Q42的网站链接",
-       "apihelp-wbgetentities-example-13": "获取ID为Q42的实体,只显示来自英语维基的网站链接",
+       "apihelp-wbgetentities-example-13": "获取ID为Q42的实体,只显示来自“enwiki”的网站链接",
        "apihelp-wblinktitles-description": "将两个不同wiki上的两个条目分配至一个Wikibase项中。",
-       "apihelp-wblinktitles-param-tosite": 
"存在对应页面的网站的标识符。\n与“totitle”一起使用以制作一个完整的网站链接。",
-       "apihelp-wblinktitles-param-totitle": 
"要结合的页面标题。\n与“tosite”一起使用以制作一个完整的网站链接。",
-       "apihelp-wblinktitles-param-fromsite": 
"存在对应页面的网站的标识符。\n与“fromtitle”一起使用以制作一个完整的网站链接。",
-       "apihelp-wblinktitles-param-fromtitle": 
"要结合的页面标题。\n与“fromsite”一起使用以制作一个完整的网站链接。",
+       "apihelp-wblinktitles-param-tosite": 
"存在对应页面的网站的标识符。\n与<var>totitle</var>一起使用以制作一个完整的网站链接。",
+       "apihelp-wblinktitles-param-totitle": 
"要结合的页面标题。\n与<var>tosite</var>一起使用以制作一个完整的网站链接。",
+       "apihelp-wblinktitles-param-fromsite": 
"存在对应页面的网站的标识符。\n与<var>fromtitle</var>一起使用以制作一个完整的网站链接。",
+       "apihelp-wblinktitles-param-fromtitle": 
"要结合的页面标题。\n与<var>fromsite</var>一起使用以制作一个完整的网站链接。",
        "apihelp-wblinktitles-param-bot": 
"将此编辑标记为机器人编辑。此URL标记将只在用户属于“bot”用户组时受尊重。",
        "apihelp-wblinktitles-example-1": 
"从英语页面添加链接“Hydrogen”至德语页面“Wasserstoff”。",
        "apihelp-wbmergeitems-description": "合并重复项。",
@@ -463,8 +463,8 @@
        "apihelp-wbmergeitems-example-2": "将数据从Q555合并至Q3",
        "apihelp-wbmergeitems-example-3": "将数据从Q66合并至Q99,忽略任何冲突的网站链接",
        "apihelp-wbmergeitems-example-4": "将数据从Q66合并至Q99,忽略任何冲突的网站链接和描述",
-       "apihelp-wbparsevalue-description": "使用ValueParser的解析值。",
-       "apihelp-wbparsevalue-param-parser": "要使用的ValueParser的ID。<span 
class=\"apihelp-deprecated\">已弃用</span>。请改用数据类型参数。",
+       "apihelp-wbparsevalue-description": "使用ValueParser解析值。",
+       "apihelp-wbparsevalue-param-parser": "要使用的ValueParser的ID。<span 
class=\"apihelp-deprecated\">已弃用</span>。请改用<var>datatype</var>参数。",
        "apihelp-wbparsevalue-param-datatype": "要解析的值的数据类型。确定解析器以使用。",
        "apihelp-wbparsevalue-param-validate": "是否另外验证传入数据。",
        "apihelp-wbparsevalue-param-values": "要解析的值",
@@ -526,9 +526,9 @@
        "apihelp-wbsetaliases-param-baserevid": "要修改的基础修订的数字标识符。\n这被用于保存时检测冲突。",
        "apihelp-wbsetaliases-param-summary": 
"编辑摘要。\n将按照自动生成的评论。自动评论与摘要的长度限制是260个字符。需要小心任何超出上述限定的东西将被裁剪掉。",
        "apihelp-wbsetaliases-param-bot": 
"将此编辑标记为机器人编辑。此URL标记将只在用户属于“bot”用户组时受尊重。",
-       "apihelp-wbsetaliases-param-add": "要加入的别名列表(可与移除结合)",
-       "apihelp-wbsetaliases-param-remove": "要移除的别名列表(可与加入结合)",
-       "apihelp-wbsetaliases-param-set": "将替换当前列表的别名列表(不能与加入或移除结合)",
+       "apihelp-wbsetaliases-param-add": "要加入的别名列表(可与<var>remove</var>结合)",
+       "apihelp-wbsetaliases-param-remove": "要移除的别名列表(可与<var>add</var>结合)",
+       "apihelp-wbsetaliases-param-set": 
"将替换当前列表的别名列表(不能与<var>add</var>或<var>remove</var>结合)",
        "apihelp-wbsetaliases-param-language": "用以设置别名的语言",
        "apihelp-wbsetaliases-example-1": "将ID为Q1的实体的英语别名设置为Foo和Bar",
        "apihelp-wbsetaliases-example-2": "为ID为Q1的实体加入Foo和Bar作为英语别名",
diff --git a/extensions/Wikibase/repo/includes/Store/Sql/SqlStore.php 
b/extensions/Wikibase/repo/includes/Store/Sql/SqlStore.php
index 7c77a22..351a10a 100644
--- a/extensions/Wikibase/repo/includes/Store/Sql/SqlStore.php
+++ b/extensions/Wikibase/repo/includes/Store/Sql/SqlStore.php
@@ -222,7 +222,7 @@
                //TODO: Get $stringNormalizer from WikibaseRepo?
                //      Can't really pass this via the constructor...
                $stringNormalizer = new StringNormalizer();
-               return new TermSqlIndex( $stringNormalizer );
+               return new TermSqlIndex( $stringNormalizer, 
$this->entityIdComposer );
        }
 
        /**
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/LabelDescriptionDuplicateDetectorTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/LabelDescriptionDuplicateDetectorTest.php
index 3591672..12e3acf 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/LabelDescriptionDuplicateDetectorTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/LabelDescriptionDuplicateDetectorTest.php
@@ -6,6 +6,7 @@
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\Property;
+use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\LabelDescriptionDuplicateDetector;
 use Wikibase\Lib\Tests\Store\MockTermIndex;
 use Wikibase\Repo\Validators\UniquenessViolation;
@@ -28,7 +29,7 @@
                $world[] = new TermIndexEntry( array(
                        'termType' => TermIndexEntry::TYPE_LABEL,
                        'termLanguage' => 'en',
-                       'entityId' => 42,
+                       'entityId' => new ItemId( 'Q42' ),
                        'entityType' => Item::ENTITY_TYPE,
                        'termText' => 'item label',
                ) );
@@ -36,7 +37,7 @@
                $world[] = new TermIndexEntry( array(
                        'termType' => TermIndexEntry::TYPE_DESCRIPTION,
                        'termLanguage' => 'en',
-                       'entityId' => 42,
+                       'entityId' => new ItemId( 'Q42' ),
                        'entityType' => Item::ENTITY_TYPE,
                        'termText' => 'item description',
                ) );
@@ -44,7 +45,7 @@
                $world[] = new TermIndexEntry( array(
                        'termType' => TermIndexEntry::TYPE_ALIAS,
                        'termLanguage' => 'en',
-                       'entityId' => 42,
+                       'entityId' => new ItemId( 'Q42' ),
                        'entityType' => Item::ENTITY_TYPE,
                        'termText' => 'item alias',
                ) );
@@ -52,7 +53,7 @@
                $world[] = new TermIndexEntry( array(
                        'termType' => TermIndexEntry::TYPE_LABEL,
                        'termLanguage' => 'en',
-                       'entityId' => 17,
+                       'entityId' => new PropertyId( 'P42' ),
                        'entityType' => Property::ENTITY_TYPE,
                        'termText' => 'property label',
                ) );
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index a64f0b4..cd330f6 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1406,12 +1406,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "bec3312b78e3fac35c01486875ae3c78c468d1d5"
+            "reference": "3469b1112cbb0a2fcc8f64a79b035b7394a77aec"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/bec3312b78e3fac35c01486875ae3c78c468d1d5";,
-            "reference": "bec3312b78e3fac35c01486875ae3c78c468d1d5",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/3469b1112cbb0a2fcc8f64a79b035b7394a77aec";,
+            "reference": "3469b1112cbb0a2fcc8f64a79b035b7394a77aec",
             "shasum": ""
         },
         "require": {
@@ -1444,7 +1444,7 @@
             "jakub-onderka/php-parallel-lint": "0.9.2",
             "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
         },
-        "time": "2016-11-25 08:08:36",
+        "time": "2016-11-25 21:56:03",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {
@@ -1593,7 +1593,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityExternalValidation";,
-            "reference": "10ce1f4549dc3bcaae7ec8cb1af6fc22f535514f"
+            "reference": "76a3c709d986ceebda6391dc1be38cf915d5e8a9"
         },
         "require": {
             "data-values/common": ">=0.1 <0.4",
@@ -1610,7 +1610,7 @@
             "phpunit/phpunit": "~3.7,>=3.7.37",
             "satooshi/php-coveralls": "dev-master"
         },
-        "time": "2016-11-21 15:55:42",
+        "time": "2016-11-25 21:56:38",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {
@@ -1655,7 +1655,7 @@
         "source": {
             "type": "git",
             "url": 
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseMediaInfo";,
-            "reference": "90b82546ca3971d79fa24b21a641747cb82ec469"
+            "reference": "467cbdc87e6e25db5a7cee8a43e8a53ef6bb36db"
         },
         "require": {
             "php": ">=5.5.0",
@@ -1669,7 +1669,7 @@
             "mediawiki/mediawiki-codesniffer": "0.6.0",
             "phpunit/phpunit": "~4.8"
         },
-        "time": "2016-10-25 12:33:22",
+        "time": "2016-11-25 21:56:28",
         "type": "mediawiki-extension",
         "installation-source": "source",
         "autoload": {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I25eb68b0f222c9f0b02b7579362c8153345d202c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to